COSMIC (Functional Size Measurement)
COSMIC is a so-called second generation Functional Size Measurement (FSM) method. Like IFPUG FPA and NESMA FPA, the method is ISO certified. The method is developed and maintained by the COSMICON, which stands for COmmon Software Measurement International CONsortium. All COSMIC documents are publicly available and downloadable from the COSMIC website: 1
COSMIC is gaining more and more interest in the international metrics community and the number of organizations that have adopted the method is becoming increasibly larger. The first main advantage of COSMIC when compared with FPA is that the method is better applicable to size various new kinds of functional documentation and that it is applicable in the realtime software domain as well as the business application domain. FPA is only applicable in the business application domain. The second main advantage is that the number of size units (COSMIC Function points) per Functional Process is not limited to a certain amount, whereas in FPA there are size limits to the different function types.
In October 2007 version 3.0 of COSMIC has been released. The three COSMIC Method v3.0 documents are:
- ‘Documentation Overview and Glossary of Terms’, which gives an overview of all COSMIC method documentation and lists and defines all terms that are common to all COSMIC documents.
- ‘Method Overview’, which gives an introduction to the method for beginners and those interested in converting from ‘1st Generation’ FSM methods.
- ‘Measurement Manual’, which is the main reference document for practical use of the method.
A fourth document ‘Advanced and Related Topics’ dealing with subjects for experienced practitioners and on topics like conversion of sizes from other methods will be published before the end of 2007.
History of Functional Size Measurement
The idea of measuring a size of software in terms of its ‘functionality’ as opposed to its physical components was first put forward by Allan Albrecht of IBM in 1979 (Ref. 1). He proposed a method called ‘Function Point Analysis’ which has since evolved into the ‘IFPUG’ method. The definition of this method (Ref. 2) is now managed by the International Function Point Users Group.
Albrecht’s clever piece of lateral thinking laid the foundations for the subject of ‘functional size measurement’ (or ‘FSM’).
The IFPUG method actually has two components, firstly concerned with a measure of functional size and the second concerned with a measure of the contribution to overall size of 14 technical and quality factors. Albrecht’s original approach has been refined significantly over the last quarter-century, but its basic concepts are unchanged from the mid 1970’s. Nevertheless, the IFPUG method is still the most widely-used FSM method, albeit confined to the domain of business application software. For a fuller description of the IFPUG method, see ‘What are the advantages of the COSMIC-FFP method?’
Several developments from the Albrecht/IFPUG approach have been made to improve the size measure, or to extend its domain of applicability. The following are noteworthy.
Capers Jones published a method (Ref. 3) based closely on that of Albrecht, called ‘Feature Points’, with the aim of extending FSM to apply to scientific algorithms. The method has been largely abandoned due to the intrinsic difficulty of sizing mathematical algorithms
Charles Symons developed the ‘MkII Function Point Method’ (Ref. 4) which aimed to improve on Albrecht’s approach by better taking into account the internal complexity of ‘data-rich’ business application software.
Scott Whitmire of Boeing developed ‘3D Function Points’ (Ref. 5) to size business application and real-time software drawing on Albrecht’s general approach. Details of the method remain proprietary to Boeing
The Dutch Software Metrics Association (‘NESMA’) published a variant (Ref. 6) of the IFPUG method which aimed to simplify some of the sizing rules
The University of Québec, Montréal and others published (Ref. 7) the ‘Full Function Point Method’ which used the IFPUG rules for business application software and added extra components for sizing real-time software.
It will be seen that all of these methods can trace their roots back to Allan Albrecht’s original ideas. They are what we call ‘1st Generation’ FSM Methods.
Meanwhile, around 1994, a new Working Group 12 of the ISO/IEC Joint Technical Committee 1, Sub-Committee 7 (Software Engineering) was established to seek to establish an international standard for functional size measurement. WG/12 quickly decided that no existing method was suitable for adoption as the world standard, so set out to establish some basic principles of FSM. This work resulted in the publication of ISO/IEC 14143/1:1997, entitled ‘Information Technology – Software measurement – Functional size measurement – Definition of concepts’. Other standards and technical reports in the 14143 series cover subjects like conformance testing and verification of a candidate FSM Method and the definition of types of software domains for FSM.
In late 1998, some members of WG12 met informally in London and decided to develop a new FSM Method, starting from basic established software engineering principles. They were able to draw on the experience of the past 25 years of FSM and aimed to be compliant with ISO/IEC 14143/1:2003 from the outset. The method should be equally applicable to MIS/business software, to real-time and infrastructure software (e.g. as in operating system software) and to hybrids of these.
The meeting in London resulted in the foundation of ‘COSMIC’, the Common Software Measurement International Consortium. The first version of its method, ‘COSMIC-FFP v2.0,’ was published in October 1999, as the first, true ‘2nd Generation’ FSM Method. Extensive and successful field trials were carried out over 2000/2001 (Ref. 8). COSMIC published its latest definition of the method, v2.2, in January 2003.
As a result of a decision of ISO/IEC JTC1/SC7 to ‘let the market decide’, International Standards were published during 2002/3 for the COSMIC-FFP method (ISO/IEC 19761), the IFPUG method – for its functional size component (ISO/IEC 20926), the MkII FPA method (ISO/IEC 20968), and the NESMA (ISO/IEC 24570)methods.
References
1. Albrecht A.J., ‘Measuring Application Development Productivity’ in Proc. IBM Applications Development Symposium. GUIDE Int and Share Inc., IBM Corp., Monterey, CA Oct 14-17, 1979, p83.
2. IFPUG, 1999, “Function Points Counting Practices Manual – Release 4.1”, International Function Point Users Group (IFPUG), Wisconsin, USA, 1999.
3. Jones, T.C., ‘The SPR Feature Point Method’, Software Productivity Research Inc., 1986
4. Symons, C.R., ‘Function Point Analysis: Difficulties and Improvements’, IEEE Trans Software Eng., vol 14, no. 1, Jan 1988
5. Whitmire, S.A., ‘3D Function Points: Scientific and Real-time Extensions to Function Points’. Proceedings of the 1992 Pacific Northwest Software Quality Conference, 1992
6. NESMA, ‘Definitions and Counting Guidelines for the Application of Function Point Analysis. Nov 1997, (see www.nesma.org)
7. St-Pierre D., Maya M., Abran A., Desharnais J.-M., Bourque P., “Full Function Points: Counting Practices Manual”, Technical Report 1997-04, Université du Québec à Montréal, Montréal, Canada. (See www.lrgl.uqam.ca/ffp.html)
8. Abran, A., Symons, C., Oligny, S., ‘An Overview of COSMIC-FFP Field Trial Results’, 12th European Software Control and Metrics Conference – ESCOM 2001, April 2-4, London (England), 2001.
External links
nl:Functiepuntanalyse pt:Análise de pontos de função