180 likes | 301 Vues
This introduction to Function Points explores their role in accurately estimating the size and duration of software projects. Function Points measure the external functionalities of an application, allowing estimates to be made early in the development process, ideally after design and before coding begins. Originating from IBM and supported by IFPUG, this method helps software professionals assess complexities through a structured approach. It provides a reliable metric that is independent of programming languages, making it valuable across various industries.
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”)