Function Based Sizing in SEER-SEM - Galorath
Function Based Sizing in SEER-SEM - Galorath
Function Based Sizing in SEER-SEM - Galorath
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>SEER</strong> Technical Note: <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong> <strong>SEER</strong>-<strong>SEM</strong><br />
<strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong> <strong>SEER</strong> for<br />
Software (<strong>SEER</strong>-<strong>SEM</strong>)<br />
<strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong><br />
<strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> is a system for siz<strong>in</strong>g software projects which is based on what the software does, rather<br />
than on the size of the source code. It breaks the software's operation down <strong>in</strong>to specific actions, or function<br />
po<strong>in</strong>ts, which can be categorized by type (data functions or transactional functions). This makes it possible to<br />
determ<strong>in</strong>e a software project's size based on the number of function po<strong>in</strong>ts of each type, along with the<br />
programm<strong>in</strong>g language (or <strong>Function</strong> Implementation Mechanism) used for development.<br />
The IFPUG function po<strong>in</strong>t count<strong>in</strong>g method, formalized by the International <strong>Function</strong> Po<strong>in</strong>t User's Group, is a<br />
widely-used <strong>in</strong>dustry standard, and has been recognized as an ISO/EIC standard software metric. <strong>SEER</strong>-<strong>SEM</strong><br />
uses either IFPUG or an expanded version of the IFPUG function based siz<strong>in</strong>g method, known as <strong>SEER</strong> <strong>Function</strong><br />
<strong>Based</strong> <strong>Siz<strong>in</strong>g</strong>, with a more detailed breakdown of function po<strong>in</strong>t types, along with the ability to capture<br />
functions not covered by the basic IFPUG method.<br />
What <strong>SEER</strong>-<strong>SEM</strong> <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> Can Do for You<br />
<strong>SEER</strong>-<strong>SEM</strong>'s <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> is designed to make software siz<strong>in</strong>g easier. You don't need detailed<br />
specifications, and you don't need tra<strong>in</strong><strong>in</strong>g <strong>in</strong> function count<strong>in</strong>g. If you have only general specifications, and a<br />
generally reasonable description of how the f<strong>in</strong>ished software will function, you can still produce a highly<br />
useful size estimate.<br />
<strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> uses the ma<strong>in</strong> IFPUG function categories decomposed <strong>in</strong>to simple categories such as<br />
<strong>in</strong>put screens, pr<strong>in</strong>ted reports, and menus. It tells you what to enter <strong>in</strong> pla<strong>in</strong>, straightforward language,<br />
organiz<strong>in</strong>g the <strong>in</strong>puts <strong>in</strong> a coherent, logical format.<br />
In addition to all of the IFPUG function categories, <strong>SEER</strong>-<strong>SEM</strong>'s <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong>cludes an optional<br />
additional category: Internal <strong>Function</strong>s. All IFPUG function categories (except for Internal Logical Files) cross<br />
the application boundary; they do someth<strong>in</strong>g (<strong>in</strong>put, output, or storage) which moves data <strong>in</strong> or out of the<br />
program. Internal functions, on the other hand, manipulate data strictly with<strong>in</strong> the application boundary; they<br />
are common <strong>in</strong> embedded systems, as well as <strong>in</strong> applications which <strong>in</strong>volve processes such as data reduction,<br />
data analysis, monitor<strong>in</strong>g, data compression, and encryption, among others.<br />
The Internal <strong>Function</strong>s category allows <strong>SEER</strong>-<strong>SEM</strong> to capture functions (and therefore size) not <strong>in</strong>cluded <strong>in</strong> the<br />
IFPUG categories, extend<strong>in</strong>g its capacity to accurately estimate software size.<br />
<strong>Function</strong> Po<strong>in</strong>t Background<br />
<strong>Function</strong> Po<strong>in</strong>ts measure functional software size <strong>in</strong> a way that is <strong>in</strong>dependent of how the software was<br />
implemented; this is sometimes referred to as a <strong>Function</strong>al Size Measure (FSM). <strong>Function</strong> Po<strong>in</strong>ts were first<br />
publicly <strong>in</strong>troduced <strong>in</strong> 1979 by Alan Albrecht of IBM, as a means of measur<strong>in</strong>g software functionality. The<br />
Albrecht method was formalized by the International <strong>Function</strong> Po<strong>in</strong>t User Group (IFPUG), establish<strong>in</strong>g a<br />
standard set of rules and count<strong>in</strong>g practices. The IFPUG FSM is now one of five recognized ISO/IEC standard<br />
software metrics.<br />
ISO/IEC <strong>Function</strong>al Size Standards<br />
ISO/IEC 20926:2009 Software and systems eng<strong>in</strong>eer<strong>in</strong>g -- Software measurement -- IFPUG<br />
functional size measurement method 2009<br />
ISO/IEC 24570:2005 Software eng<strong>in</strong>eer<strong>in</strong>g -- NESMA functional size measurement method<br />
version 2.1 -- Def<strong>in</strong>itions and count<strong>in</strong>g guidel<strong>in</strong>es for the application of<br />
Page 1
<strong>SEER</strong> Technical Note: <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong> <strong>SEER</strong>-<strong>SEM</strong><br />
ISO/IEC 19761:2003<br />
ISO/IEC 20968:2002<br />
ISO/IEC 29881:2008<br />
<strong>Function</strong> Po<strong>in</strong>t Analysis<br />
Software eng<strong>in</strong>eer<strong>in</strong>g -- COSMIC-FFP -- A functional size measurement<br />
method<br />
Software eng<strong>in</strong>eer<strong>in</strong>g -- Mk II <strong>Function</strong> Po<strong>in</strong>t Analysis -- Count<strong>in</strong>g<br />
Practices Manual<br />
Information technology -- Software and systems eng<strong>in</strong>eer<strong>in</strong>g -- FiSMA<br />
1.1 functional size measurement method<br />
<strong>Function</strong>al Size Measures offer a way to quantitatively compare different software systems, regardless of how<br />
they were implemented. This allows you to functionally compare a ma<strong>in</strong>frame system with a web-based<br />
system or one developed <strong>in</strong> COBOL versus Java. It gives companies a way to quantify their software portfolio<br />
assets.<br />
<strong>Function</strong>al Size Measures are done by count<strong>in</strong>g (or sometimes estimat<strong>in</strong>g) well def<strong>in</strong>ed types of key functional<br />
components, generally categorized as data or transactions. This process <strong>in</strong>volves def<strong>in</strong><strong>in</strong>g an application<br />
boundary <strong>in</strong> order to differentiate <strong>in</strong>ternal versus external data and <strong>in</strong>put versus output transaction types.<br />
<strong>SEER</strong>-<strong>SEM</strong> supports all the ISO/IEC standard functional size measures for estimation. <strong>SEER</strong>-<strong>SEM</strong> has also<br />
expanded on the IFPUG functional size measure to better support the estimation processes. This expanded<br />
treatment of the IFPUG FSM is referred to as <strong>SEER</strong> <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong>.<br />
IFPUG <strong>Function</strong>al Size Measure<br />
The IFPUG FSM breaks down <strong>in</strong>to five function count categories:<br />
Transactional Types<br />
o External Inputs (EI)<br />
o External Outputs (EO)<br />
o External Inquiries (EQ)<br />
Data Types<br />
o External Interface Files (EIF)<br />
o Internal Logical Files (ILF)<br />
<strong>Function</strong> Category Def<strong>in</strong>itions<br />
Internal Logical File (ILF). An Internal Logical File is a user-identifiable set of logically related data or control<br />
<strong>in</strong>formation used and ma<strong>in</strong>ta<strong>in</strong>ed by the application. Internal Logical Files might be accessed by an<br />
application's External Inputs, External Outputs, External Inquiries, or Internal <strong>Function</strong>s.<br />
External Interface File (EIF). An External Interface File is data needed by the system to perform required<br />
functions: a user-identifiable group of logically related data (related at such a level that an experienced user<br />
would identify it as fulfill<strong>in</strong>g a specific application user requirement) or control <strong>in</strong>formation used by the<br />
application but ma<strong>in</strong>ta<strong>in</strong>ed by another application. External Interface Files might be used by an application's<br />
External Outputs, External Inquiries, or Internal <strong>Function</strong>s.<br />
External Input (EI). An External Input is any function or transaction that moves data <strong>in</strong>to an application.<br />
Generally, this data is used to update an Internal Logical File <strong>in</strong> the application. An External Input should be<br />
considered unique if the logical design requires <strong>in</strong>put process<strong>in</strong>g different from other External Inputs.<br />
External Output (EO). An External Output is any function or transaction that formats data and moves data out<br />
of the application boundary. External Outputs should be generated by the application <strong>in</strong> a format that can be<br />
used by an external source. Generally, an External Output is generated based on an Internal Logical File or an<br />
External Interface File. An External Output should be considered unique if the logical design requires<br />
process<strong>in</strong>g logic different from other External Outputs.<br />
External Inquiry (EQ). An External Inquiry is a unique request that results <strong>in</strong> the retrieval of data. An External<br />
Inquiry request does not update or change any of the software's Internal Logical Files. An External Inquiry<br />
Page 2
<strong>SEER</strong> Technical Note: <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong> <strong>SEER</strong>-<strong>SEM</strong><br />
response does not conta<strong>in</strong> derived data; it simply retrieves exist<strong>in</strong>g <strong>in</strong>formation. An External Inquiry should be<br />
considered unique if the logical design requires process<strong>in</strong>g logic different from other External Inquiries.<br />
When count<strong>in</strong>g, each ILF, EIF, EI, EO and EQ is classified as simple average or complex. For the transactional<br />
counts, the complexity is based on the number of file types and data fields are <strong>in</strong>volved <strong>in</strong> the transactions.<br />
For data counts, complexity is based on the number of record types and data types.<br />
<strong>SEER</strong>-<strong>SEM</strong> Extensions of the IFPUG <strong>Function</strong> <strong>Siz<strong>in</strong>g</strong> Metric<br />
<strong>SEER</strong>-<strong>SEM</strong>’s <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> is consistent with IFPUG standards, but offers an additional count type for<br />
Internal <strong>Function</strong>s. This extension allows function based siz<strong>in</strong>g for software types which have algorithmic<br />
processes that are not reflected <strong>in</strong> the transactional or data function counts. Use of this extension <strong>in</strong> <strong>SEER</strong>-<br />
<strong>SEM</strong> is purely optional, and does not have be considered if you are already us<strong>in</strong>g IFPUG standard counts.<br />
Internal <strong>Function</strong>s are def<strong>in</strong>ed as follows:<br />
Internal <strong>Function</strong>s (IF). Internal <strong>Function</strong>s are basic processes performed by a program, such as data<br />
reduction, data analysis, monitor<strong>in</strong>g, data compression, encryption, and application-specific calculations.<br />
Internal <strong>Function</strong>s have the same weight<strong>in</strong>g as Internal Logical Files. When us<strong>in</strong>g the <strong>SEER</strong>-<strong>SEM</strong> extended<br />
function based siz<strong>in</strong>g, calculation of unadjusted function po<strong>in</strong>ts are calculated us<strong>in</strong>g these weight<strong>in</strong>gs:<br />
Low Average High Total<br />
External Inputs x 3 x 4 x 6<br />
External Outputs x 4 x 5 x 7<br />
External Inquiries x 3 x 4 x 6<br />
Internal Logical Files x 7 x 10 x 15<br />
External Interface Files x 5 x 7 x 10<br />
Internal <strong>Function</strong>s x 5 x 7 x 10<br />
Unadjusted <strong>Function</strong> Po<strong>in</strong>ts<br />
∑ of above<br />
Relation Between <strong>Function</strong> Counts and Unadjusted <strong>Function</strong> Po<strong>in</strong>ts<br />
<strong>SEER</strong>-<strong>SEM</strong> also decomposed functional siz<strong>in</strong>g <strong>in</strong>to its component parts so non-function po<strong>in</strong>t tra<strong>in</strong>ed persons<br />
can understand them and perform analysis and tradeoffs with specific <strong>in</strong>formation, such as add one report or<br />
remove one screen. In the context of plann<strong>in</strong>g for a new system, functions often need to be estimated <strong>in</strong>stead<br />
of count<strong>in</strong>g. The <strong>SEER</strong> <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> detailed breakout supports the estimation process by help<strong>in</strong>g you<br />
identify the types of th<strong>in</strong>gs that need to be considered. It also guides those who may not be tra<strong>in</strong>ed or<br />
experienced function po<strong>in</strong>t counters <strong>in</strong> establish<strong>in</strong>g a credible function count.<br />
The detailed function base siz<strong>in</strong>g <strong>in</strong>puts are rolled up <strong>in</strong>to the function counts. As you can see <strong>in</strong> the table<br />
above, functional counts are weighted, then totaled <strong>in</strong>to unadjusted function po<strong>in</strong>ts. <strong>SEER</strong>-<strong>SEM</strong> uses the<br />
unadjusted function po<strong>in</strong>ts for estimation. <strong>SEER</strong> <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> counts are comparable to IFPUG counts<br />
and thus may be used to estimate IFPUG function po<strong>in</strong>ts for benchmark<strong>in</strong>g and other purposes without<br />
requir<strong>in</strong>g IFPUG tra<strong>in</strong><strong>in</strong>g.<br />
Unadjusted <strong>Function</strong> Po<strong>in</strong>ts (UFP)<br />
<strong>Function</strong> Counts (EI, EO, EQ, ILF, EIF)<br />
Detail <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> (e.g. screens, reports...)<br />
UFP, <strong>Function</strong> Counts, and <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong><br />
Page 3
<strong>SEER</strong> Technical Note: <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong> <strong>SEER</strong>-<strong>SEM</strong><br />
Enter<strong>in</strong>g <strong>Function</strong> Po<strong>in</strong>ts <strong>in</strong>to <strong>SEER</strong>-<strong>SEM</strong><br />
<strong>SEER</strong>-<strong>SEM</strong> allows function counts to be entered at two levels:<br />
Level<br />
<strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> tab<br />
Parameters tab<br />
The <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> Tab<br />
Description<br />
This unique w<strong>in</strong>dow allows detailed entries on the basis of specific<br />
function po<strong>in</strong>t categories. If you use the <strong>Function</strong> tab, UFPs are<br />
automatically calculated and carried <strong>in</strong>to the Parameter tab.<br />
<strong>Function</strong>s (Classic): as a total number of unadjusted function po<strong>in</strong>ts<br />
(UFPs); this is a metric that normally is accumulated from more<br />
detailed function po<strong>in</strong>t counts.<br />
You can also enter functions <strong>in</strong> the parameter tab us<strong>in</strong>g Proxy <strong>Siz<strong>in</strong>g</strong>;<br />
<strong>SEER</strong>-<strong>SEM</strong> <strong>in</strong>cludes several function based siz<strong>in</strong>g proxies,<br />
represent<strong>in</strong>g the most widely-used function-count<strong>in</strong>g methods.<br />
When you enter size <strong>in</strong> the <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> tab, these <strong>in</strong>puts will be weighted <strong>in</strong>to a computed unadjusted<br />
function po<strong>in</strong>t count that will be visible <strong>in</strong> the <strong>SEER</strong>-<strong>SEM</strong> Parameters tab. The weights used to compute unadjusted<br />
function po<strong>in</strong>ts are the standard IFPUG weights.<br />
Detailed <strong>Function</strong><br />
<strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong>puts<br />
roll up to <strong>Function</strong><br />
Counts.<br />
Weighted function<br />
counts roll up to<br />
Unadjusted<br />
<strong>Function</strong> Po<strong>in</strong>ts<br />
(UFP) <strong>in</strong> the<br />
Parameters w<strong>in</strong>dow.<br />
<strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> Inputs<br />
FBS <strong>Siz<strong>in</strong>g</strong> Relationships<br />
You can enter detailed or category <strong>in</strong>puts <strong>in</strong> the <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> tab. For each <strong>in</strong>put, the <strong>in</strong>put dialog<br />
box displays a def<strong>in</strong>ition for the <strong>in</strong>put and, when appropriate, examples and a guide to determ<strong>in</strong><strong>in</strong>g<br />
complexity. You can <strong>in</strong>clude notes (with descriptive text and both file and Internet l<strong>in</strong>ks) with each <strong>in</strong>put.<br />
Page 4
<strong>SEER</strong> Technical Note: <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong> <strong>SEER</strong>-<strong>SEM</strong><br />
EXTERNAL INPUTS (EI)<br />
o Input Screens<br />
o Interactive Inputs<br />
o Hardware Inputs<br />
o Batch Input Streams<br />
EXTERNAL OUTPUTS (EO)<br />
o Screen Reports<br />
o Pr<strong>in</strong>ted Reports<br />
o Media Outputs<br />
o Software Outputs<br />
o Hardware Outputs<br />
EXTERNAL INQUIRIES (EQ)<br />
o Request/Response<br />
o Menus<br />
o Context Sensitive Help<br />
o Embedded Computer Inquiries<br />
EXTERNAL INTERFACE FILES (EIF)<br />
o Reference Data<br />
o Fixed Messages<br />
o Shared Data Files<br />
INTERNAL LOGICAL FILES (ILF)<br />
o Application Data Groups<br />
o Data Tables<br />
o Data Base Files<br />
INTERNAL FUNCTIONS<br />
Note: Each <strong>in</strong>put has three entries for low, average or high complexity. This resembles the least, likely and<br />
most <strong>in</strong>puts commonly used <strong>in</strong> many <strong>SEER</strong>-<strong>SEM</strong> parameters. The function <strong>in</strong>puts, however, represent<br />
complexity, while the parameter least, likely, most <strong>in</strong>puts represent probability.<br />
<strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> Tab<br />
Page 5
<strong>SEER</strong> Technical Note: <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong> <strong>SEER</strong>-<strong>SEM</strong><br />
Detailed FBS Input<br />
<strong>Function</strong> Count Input<br />
Page 6
<strong>SEER</strong> Technical Note: <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong> <strong>SEER</strong>-<strong>SEM</strong><br />
The Parameters Tab: Classic <strong>Function</strong>s and <strong>Function</strong> Proxies<br />
The Parameters tab <strong>in</strong>cludes two basic ways of enter<strong>in</strong>g function counts, which can be used as an alternative<br />
to <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong>: the <strong>Function</strong>s (Classic) <strong>in</strong>puts, and function-based proxies:<br />
<strong>Function</strong>s (Classic) Inputs<br />
The <strong>Function</strong>s (Classic) parameter category represents the total effective functions, measured <strong>in</strong> unadjusted<br />
function po<strong>in</strong>ts (UFPs). If you enter UFPs directly <strong>in</strong>to the Parameter tab, you can use any count<strong>in</strong>g method<br />
that ultimately conforms to IFPUG's standard measure of an unadjusted function po<strong>in</strong>t.<br />
Note: When you select the New or Pre-exist<strong>in</strong>g <strong>in</strong>puts under <strong>Function</strong>s (Classic) , you will be given the option<br />
to enter more detailed <strong>in</strong>puts <strong>in</strong> the <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> tab. If you choose to enter <strong>Function</strong>s (Classic) data<br />
<strong>in</strong> the Parameters tab, your entries will overwrite the correspond<strong>in</strong>g <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong>puts.<br />
Other <strong>Function</strong>-<strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> Inputs<br />
<strong>SEER</strong>-<strong>SEM</strong> <strong>in</strong>cludes several other functional size measures that can be used for estimat<strong>in</strong>g. These are accessed<br />
through the proxy <strong>in</strong>puts. Users may also def<strong>in</strong>e their own functional size measure to be used for estimat<strong>in</strong>g.<br />
Proxy<br />
COSMIC <strong>Function</strong> Po<strong>in</strong>ts<br />
COSMIC FP Data Movements<br />
Mark II <strong>Function</strong> Po<strong>in</strong>ts<br />
Metric - Fast <strong>Function</strong> Po<strong>in</strong>ts<br />
Metric - <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong><br />
Metric - Unadjusted <strong>Function</strong><br />
Po<strong>in</strong>ts<br />
Description<br />
A standardized method of measur<strong>in</strong>g software size for bus<strong>in</strong>ess<br />
application and real-time software, and hybrids of these.<br />
COSMIC <strong>Function</strong> Po<strong>in</strong>t count comb<strong>in</strong><strong>in</strong>g all four data movement<br />
counts <strong>in</strong>to a s<strong>in</strong>gle <strong>in</strong>put.<br />
This proxy allows for direct <strong>in</strong>put of function po<strong>in</strong>ts that are<br />
compliant with Mark II <strong>Function</strong> Po<strong>in</strong>t Analysis (MkII FPA).<br />
A simplified version of function po<strong>in</strong>ts. You do not need to<br />
determ<strong>in</strong>e complexity; you simply count the number of each type<br />
of function po<strong>in</strong>t.<br />
The <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> proxy allows for direct <strong>in</strong>put of IFPUGstandard<br />
function po<strong>in</strong>ts <strong>in</strong>to the Parameter w<strong>in</strong>dow.<br />
The Unadjusted <strong>Function</strong> Po<strong>in</strong>ts proxy lets you enter size data<br />
directly as Unadjusted <strong>Function</strong> Po<strong>in</strong>ts.<br />
For all of these functional size metrics, <strong>in</strong>puts are <strong>in</strong> the standard <strong>SEER</strong>-<strong>SEM</strong> least, likely, most format. Proxy<br />
function counts are translated <strong>in</strong>to unadjusted function po<strong>in</strong>ts.<br />
<strong>SEER</strong>-<strong>SEM</strong> Proxy <strong>Function</strong> Inputs<br />
Estimation us<strong>in</strong>g <strong>Function</strong>al Size Measures <strong>in</strong> <strong>SEER</strong>-<strong>SEM</strong><br />
<strong>Function</strong>al siz<strong>in</strong>g equates functions to "effort units” as well as factors for the phase at estimate, platform,<br />
application and complexity. Once a functional size measure is summarized as unadjusted function po<strong>in</strong>ts<br />
(UFP), it is then converted <strong>in</strong>to an effective size, S e , as follows:<br />
Se = Lx x (AdjFactor x UFP) (Entropy/1.2)<br />
L x is the effort units. AdjFactor is the product of the complexity, count phase, platform and application<br />
adjustments. Entropy ranges from 1.04 to 1.2, depend<strong>in</strong>g on the type of software be<strong>in</strong>g evaluated.<br />
Page 7
<strong>SEER</strong> Technical Note: <strong>Function</strong> <strong>Based</strong> <strong>Siz<strong>in</strong>g</strong> <strong>in</strong> <strong>SEER</strong>-<strong>SEM</strong><br />
Effort Units are based on analysis of actual project data conta<strong>in</strong><strong>in</strong>g both UFP measures and actual effort.<br />
Effort Units are specific to <strong>SEER</strong>-<strong>SEM</strong>’s size / effort relationships.<br />
Note <strong>SEER</strong>-<strong>SEM</strong> will also estimate the number of l<strong>in</strong>es of code from functional siz<strong>in</strong>g (found on the software<br />
metrics report) but that is a different number than the effective effort units. Effort units analysis is published<br />
by <strong>Galorath</strong> and should not be confused with number of l<strong>in</strong>es of code.<br />
Page 8