190 likes | 295 Views
Function Points. Synthetic measure of program size used to estimate size early in the project Easier (than lines of code) to calculate from requirements Standards at the International Function Point Users Group (IFPUG) www.ifpug.org. FP Rules: #FPs depends on:. External Inputs
E N D
Function Points • Synthetic measure of program size used to estimate size early in the project • Easier (than lines of code) to calculate from requirements • Standards at the International Function Point Users Group (IFPUG) www.ifpug.org
FP Rules: #FPs depends on: • External Inputs • External Outputs • External Queries • Internal Logical Files • External Interface Files
FP Rules: #FPs depends on: • External Inputs • Screens, forms, dialogs, controls • User or other program adds, deletes, modifies data • Any input that requires processing logic • External Outputs • External Queries • Internal Logical Files • External Interface Files
FP Rules: #FPs depends on: • External Inputs • External Outputs • Screens, reports, dialog boxes, control signals generated for end user or other program • External Queries • Internal Logical Files • External Interface Files
FP Rules: #FPs depends on: • External Inputs • External Outputs • External Queries • I/O combinations in which an input results in a simple output • Queries retrieve data with no formatting. Output is formatted • Internal Logical Files • External Interface Files
FP Rules: #FPs depends on: • External Inputs • External Outputs • External Queries • Internal Logical Files • Major logical groups of end-user data completely controlled by the program • Might be a flat file, a database table, or a collection of other data • External Interface Files
FP Rules: #FPs depends on: • External Inputs • External Outputs • External Queries • Internal Logical Files • External Interface Files • Files controlled by other programs
FP results • Certified counters vary by 10% • Untrained counters vary by much more • The multipliers may or may not be useful (some research indicates unadjusted FPs are more closely correlated with effort) • The LOC have on average a range of 3x wrt FPs
COCOMO • COCOMO COnstructive COst MOdel • Model to help reason about the cost and schedule implications of decisions • Project Budgets • Scheduling • Planning • Risk Management Decisions
3 Types of COCOMO Estimates • Basic • good for quick estimate of software costs • Does not account for differences in hardware constraints, personnel quality and experience, or use of modern tools and techniques • Early Design Model • High level model • Used to explore architectural alternatives or incremental development strategies • Post-Architecture Model • Detailed model • Used once the project is ready to sustain a fielded system
3 classes of projects • Organic projects • "small" teams • with "good" experience • working with "less than rigid" requirements • Semi-detached projects • "medium" teams • with mixed experience • working with a mix of rigid and less than rigid requirements • Embedded projects • developed within a set of "tight" constraints (hardware, software, operational, ...)
Basic COCOMO Equations Effort Applied (in person-months) = a* (KLOC)b Development Time (in months) = c * (Effort Applied)d People required = Effort Applied / Development Time
Intermediate COCOMO • Development effort is function of program size and "cost drivers" • Subjective assessment of product, hardware, personnel and project attributes. • Product attributes (required reliability, size of database, product complexity) • Hardware attributes (performance and memory constraints) • Personnel attributes • Analyst capability • Software engineering capability • Applications experience • Virtual machine experience • Programming language experience • Project attributes (use of tools and methods)
Intermediate COCOMO Cost Drivers • 15 attributes • Rated on 6-point scale (very low to extra high) • Effort multipliers (from 0.9 to 1.4) from table • Intermediate Cocomo formula: E=a (KLoC)b * EAF • E: effort applied in person-months • KLoC: estimated number of thousands of lines of code for the project • EAF: factor calculated above
COCOMO II: Post Architecture PM = 2.45*EAF*(SLOC/1000)^PDM = 2.50*(PM)^TST = PM/DMPM - person-months needed for projectEAF - effort adjustment factor (0.6-1.4)SLOC - source lines of codeP - project complexity (1.04-1.24)DM - duration time in months for projectT - sloc-dependent coefficient (0.32-0.38)ST - average staffing necessary