COSMIC Function Points. RECOMMENDED
Some of the key benefits of the COSMIC FP standard are:
- COSMIC Sizing is based on principles of software design. As a standard, no tuning is needed when applied to different types of software (custom coding, middleware, web apps, multi-layered software, system software, embedded systems or data warehouse projects).
- COSMIC gives us a definition of a single function point, each movement of a data group Entry, Exit, Read, Write counts as 1 CFP.
- CFP can be accurately measured from incomplete requirements which makes them suited to Agile and various forms of scaled Agile work.
- CFP are faster and easier to learn than IFPUG FP. (1/3 of the number pages for the entire methodology syllabus)
- COSMIC FP can be determined automatically to a higher degree of precision than IFPUG via automated requirements analysis.
To learn more about COSMIC Sizing we recommend The Guide to Software Sizing by Charles Symons
IFPUG Function Points
Having said that COSMIC FP are preferable over traditional IFPUG FP, the latter benefits from larger volumes of published and available benchmark data. The IFPUG sizing methodology was designed in the 1970’s when software design was less layered and segregated that it is nowadays. The standards remains largely unchanged from its initial concept. We like IFPUG FP, but we prefer COSMIC FP. Simple Function Points is an approximation of IFPUG FP adopted by the organisation in 2019. ScopeMaster estimates both IFPUG and Simple FP.
Counting Function Points Manually
Up until now, counting function points has been a laborious manual process You need to read the requirements and then record the function point counts on paper, or in a spreadsheet. Accurate and consistent counts are achieved only if the count is performed by certified and experienced function point specialist. On average a certified measurer can measure up to 2000 FP/ week, this is the equivalent of about $2m worth of software. SLOW, ACCURATE
Estimating Function Point Size
Using some rules of thumb, estimated FP counts can be achieved by looking at a number of contributory factors. If your application is predominantly a database type application, you can count the number of database tables of data being maintained by the application. You then multiply the number of tables by 27-30 for an IFPUG estimation. This is just one of many useful rules of thumb and should be not be relied upon for anything but a high level size. Counting speed: 5,000 – 50,000 FP / person week FAST, INACCURATE
Backfiring Function Points from Lines of Code
Most software language have published averages for lines of code per function point. For example 50 lines of Java is, on average, equivalent to one function point. Counting the lines of code and dividing by this number is called “backfiring”. This is useful after the code has been written. You need to be careful with this approach especially when using large volumes of pre-written frameworks which may need to be excluded from a custom code count. Counting speed: up to 5,000 FP / person week. FAST, INACCURATE, MISLEADING
Automated Function Point Count from Code
It is now possible to automate function point counting from code. The Cast Software company have developed software that will perform a reliable Automated Function Point count based on existing application code. It takes some effort to prepare the code so that it can be interpreted, thereafter a reliable count can be achieved. This is far superior to the backfiring approach. It has the added benefit of providing deep insight into the application code. FAST, CONSISTENT, ACCURATE