COSMIC functional size measurement

From HandWiki
Short description: Method to measure software size

COSMIC functional size measurement is a method to measure a standard functional size of a piece of software. COSMIC is an acronym of COmmon Software Measurement International Consortium, a voluntary organization that has developed the method and is still expanding its use to more software domains.

The method

The "Measurement Manual" defines the principles, rules and a process for measuring a standard functional size of a piece of software. Functional size is a measure of the amount of functionality provided by the software, completely independent of any technical or quality considerations.[1] The generic principles of functional size are described in the ISO/IEC 14143 standard.[2] This method is also an International Standard by itself. The COSMIC[3] standard is the first of the old generation implementation of the ISO/IEC 14143 standard. There are also four first generation implementations:

  • ISO/IEC 20926 - IFPUG function points
  • ISO/IEC 20968 - Mk II function points
  • ISO/IEC 24570 - Nesma function points
  • ISO/IEC 29881 - FiSMA function points

These first generation functional size measurement methods consisted of rules that are based on empirical results. Part of the terminology that deals with users and requirements has overlap with similar terms in software engineering. They work well for the software domains the rules were designed for, but for other domains, the rules need to be altered or extended. Key elements of a second generation functional size measurement method are:

  • Adoption of all measurement concepts from the ISO metrology
  • A defined measurement unit
  • Fully compliant with ISO/IEC 14143
  • Preferably domain independent

The method is based on principles rather than rules that are domain independent.[4] The principles of the method are based on fundamental software engineering principles, which have been subsequently tested in practice.[5]

The method may be used to size software that is dominated by functionality to maintain data, rather than software that predominantly manipulates data. As a consequence of measuring the size, the method can be used to establish benchmarks of (and subsequent estimates) regarding the effort, cost, quality and duration of software work.

The method can be used in a wide variety of domains, like business applications, real-time software,[6] mobile apps,[7] infrastructure software and operating systems. The method breaks down the Functional User Requirements of the software into combinations of the four data movements types:

  • Entry (E)
  • Exit (X)
  • Read (R)
  • Write (W)

The function point count provides measurement of software size, which is the sum of the data movements for a given functional requirement. It may be used to estimate (and benchmark) software project effort, cost, duration, quality and maintenance work.[8][9]

The foundation of the method is the ISO/IEC 19761 standard, which contains the definitions and basic principles that are described in more detail in the COSMIC measurement manual.[3]

The applicability of the COSMIC functional size measurement method

Since the COSMIC method is based on generic software principles, these principles can be applied in various software domains. For a number of domains guidelines have been written to assist measurers to apply the COSMIC method in their domain:[10]

  • Real-time Software Real-time software "controls an environment by receiving data, processing them, and returning the results sufficiently quickly to affect the environment at that time".[11] The guideline describes how to use the generic principles in this environment.[12]
  • Service Oriented Architecture (SOA) This is a software architecture where services are provided to the other components by application components, through a communication protocol over a network. A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online. The guideline describes how to measure the functional size of distinct components.[13]
  • Data WareHouse and Big Data is a field that treats ways to analyze, systematically extract information from, or otherwise deal with data sets that are too large or complex to be dealt with by traditional data-processing application software. The guideline describes how to transform the principles in that field to a functional size.[14]
  • Business Application Software This is software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user. Examples of an application include a word processor, a spreadsheet, an accounting application, a web browser, an email client, a media player, a file viewer, a flight simulator or a photo editor. Business Application Software contrasts with system software, which is mainly involved with running the computer. The guideline describes how to deal with application specific features, like data storage and retrieval.[15]

To explain the use of the method a number of case studies have been developed. The method is of particular validity in the estimation of cost of software undertakings.[16]

The organization behind the method

The COSMIC organization commenced its work in 1998. Legally COSMIC is an incorporated not for profit organization under Canadian law. The organization grew informally to a global community of professionals. COSMIC is an open and democratic organization. The organization relies and will continue to rely on unpaid efforts by volunteers, who work on various aspects of the method, based on their professional interest.

The first generation functional size measurement methods consisted of rules that are based on empirical results. Some[who?] define their own terminology, which may have overlap with other terms in software engineering.[specify] They work well for the software domains the rules were designed for, but for other domains, the rules need to be altered or extended. Key elements of a second generation functional size measurement method are:

  • Adoption of all measurement concepts from the ISO metrology
  • A defined measurement unit
  • Fully compliant with ISO/IEC 14143
  • Preferably domain independent

The method is based on principles and rules that are domain independent. The principles of the method are based on fundamental software engineering principles, which have been subsequently tested in practice.[5]

References

  1. ISO (2011-06-19). "ISO/IEC 19761:2011". International Standards Organization. https://www.iso.org/standard/54849.html. 
  2. ISO/IEC JTC 1/SC 7 Software and systems engineering (2007-02-01). "ISO/IEC 14143". International Standards Organization. https://www.iso.org/standard/38931.html. 
  3. 3.0 3.1 COSMIC (2003-02-19). "ISO/IEC 19761". International Standards Organization. https://www.iso.org/standard/33899.html. 
  4. AVogelezang, Frank (2013). "What is a second-generation FSM method". http://thepriceofit.blogspot.com/2013/02/second-generation-FSM.html. 
  5. 5.0 5.1 Abran, Alain; Oligny, Serge; Symons, Charles (2011). "COSMIC Full Function Points (FFP) and the Worldwide Field Trials Strategy". Auerbach publications. http://www.ittoday.info/Articles/COSMIC_FPP/COSMIC_FPP.htm. 
  6. Olivier Guetta, Boubker Bouzid and Jori Le-Bihan (Renault) (2012-04-17). "Design of an FSM-tool for real-time embedded software requirements". Mathwork. https://www.mathworks.com/videos/design-of-a-functional-size-measurement-tool-for-real-time-embedded-software-requirements-expressed-using-a-simulink-model-92928.html. 
  7. Harold van Heeringen and Edwin van Gorp (2015-01-05). "Measure the Functional Size of a Mobile App: Using the COSMIC Functional Size Measurement Method". 2014 Joint Conference of the International Workshop on Software Measurement and the International Conference on Software Process and Product Measurement. IEEE. pp. 11–16. doi:10.1109/IWSM.Mensura.2014.8. 
  8. McConnell, Steve (2006). Software Estimation. Redmond, Wa: Microsoft Press. p. 200. ISBN 978-0735-605350. 
  9. Abran, Alain (2015). Software Project Estimation. Wiley. ISBN 978-1118-954089. 
  10. Flater, David (2016). "A Rational Foundation for Software Metrology". NIST. https://nvlpubs.nist.gov/nistpubs/ir/2016/NIST.IR.8101.pdf. 
  11. Martin, James (1965). Programming Real-time Computer Systems. Englewood Cliffs, NJ: Prentice-Hall Inc.. p. 4. ISBN 978-0-13-730507-0. https://archive.org/details/programmingrealt0000mart. 
  12. Symons, Charles; Lesterhuis, Arlan; Desharnais, Jean-Marc (2018). "COSMIC guideline for sizing Real-time software". COSMIC. https://cosmic-sizing.org/publications/guideline-for-sizing-real-time-software-v1-1-2/. 
  13. Fagg, Peter; Lesterhuis, Arlan; Rule, Grant (2018). "COSMIC guideline for sizing Service Oriented Architecture software". COSMIC. https://cosmic-sizing.org/publications/guideline-for-sizing-service-oriented-architecture-software-v1-1-1/. 
  14. Symons, Charles; Lesterhuis, Arlan (2018). "COSMIC guideline for sizing Data WareHouse and Big Data software". COSMIC. https://cosmic-sizing.org/publications/guideline-for-sizing-data-warehouse-and-big-data-software-v1-2/. 
  15. Symons, Charles; Lesterhuis, Arlan (2017). "Guideline for Sizing Business Application Software". COSMIC. https://cosmic-sizing.org/publications/guideline-sizing-business-application-software-2/. 
  16. "GAO COst Estimating And Assessment Guide GAO-09-3SP Best Practices for developing and managing Capital Program Costs". US Government Accountability Office. 2009. https://www.gao.gov/new.items/d093sp.pdf. 

External links

  • COSMIC website A public domain version of the COSMIC measurement manual and other technical reports
  • COSMIC Publications Public domain publications for the COSMIC method