180 likes | 290 Views
Function Points. An Introduction M. M. Pickard, PhD. Overview. Why? How? When?. Why?. What is the objective?. Why?. What is the objective? To more accurately estimate how big a proposed effort is and how long it will take to accomplish. How?. How can this be accomplished?. How?.
E N D
Function Points An Introduction M. M. Pickard, PhD
Overview • Why? • How? • When?
Why? • What is the objective?
Why? • What is the objective? • To more accurately estimate how big a proposed effort is and how long it will take to accomplish.
How? • How can this be accomplished?
How? • How can this be accomplished? • By using function points to estimate the size of an effort.
When? • When is the appropriate time to use this method?
When? • When is the appropriate time to use this method? • Early in the effort before code is written but after design.
Why function points? • Function points • can be counted or derived relatively early in the process • other basic size metrics like LOC can’t be counted until done
Function Points • Originated by IBM • Supported/developed by IFPUG • Based on theory that the size of an application is best measured in terms of the application’s functions • Independent of target language • Related web sites: www.ifpug.org & www.ifpug.com
Function Points • Concerned with visible external characteristics of the software: • inputs • outputs • inquiries • data files updated by the application • interfaces to other applications
Function Points • Concerned with visible external characteristics of the software: • inputs (External Inputs) • outputs (External Outputs) • inquiries (External Inquiries) • data files updated by the application (Internal Logical Files) • interfaces to other applications (External Interface Files)
Counting Function Points • Several steps: • Classify components • (EIs, EOs, EQs, ILFs, EIFs) • Rank each component’s complexity - low, average, high • Assign weight according to rank • Sum the weighted component totals to get Unadjusted Function Points (UFP)
Counting Function Points • Several steps (cont’d): • Determine Technical Complexity Factor • For each of 14 general characteristics, rate the application on a 0 to 5 scale of degree of influence (0 means no influence; 5 means strong influence) • TCF = 0.65 + 0.01 * (sum of 14 degrees of influence) • Calculate adjusted function points • FP = UFP * TCF • Voila!
Function Points • From IFPUG web site FAQ: • “Who else has done this? • IFPUG is currently supporting over 3000 software professionals in 34 countries world-wide. Membership is drawn from every major industry, including: aerospace, banking, finance, telecommunications, insurance, manufacturing, utilities, retailing,government, and computer systems development. “
Function Points • International Function Point Users Group (IFPUG) publications: • Function Point Counting Practices Manual (Release 4.1) - members only • Case studies, other.
Function Points • Capers Jones, metrics guru, regarding function points: • They are a good idea that make sense. • They work best for I/O intensive data processing applications. • They don’t necessarily work well for compute-intense applications • No accounting for algorithm complexity
Function Points • Albrecht & Gaffney, IBM, 1979, 1983 • Based on essential subjectivity • detailed guidelines • large user group • In practice worldwide • No explicit count of algorithms • Jones: published relationship of FP to LOC leads to the ability to derive LOC from FP (“backfiring”)