COSMIC software sizing

From Wikipedia, the free encyclopedia
Jump to: navigation, search

The COSMIC method is an internationally standardized software sizing method. More specifically it is a method of measuring a ‘functional size’ of software. ‘COSMIC’ stands for the Common Software Measurement International Consortium, a grouping of software measurement experts from around the world who, in 1998, saw the need to improve on traditional function point methods.

The method developers describe it as a ‘second-generation’ method, since, in contrast to traditional function point methods, the COSMIC method is:

  • one of the first functional size measurement methods developed to conform to the standard ISO/IEC 14143/1:2003 on this subject (five other functional size measurement methods pre-dated the method and remain conformant to the standard)
  • designed based on fundamental principles of software engineering and measurement theory, using concepts so that it is easily applicable to business application, real-time and infrastructure software
  • completely ‘open’. All the method documentation (measurement manual, guidelines, case studies, etc.) can be down-loaded, free of charge, from [1]. The measurement manual is available in Arabic, Chinese, Dutch, English, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Turkish. The current version 4.0.1 of the measurement manual has been released early 2015.

The COSMIC method can be used (as per the aim of all other Software Functional Sizing methods):

  • to provide a measure of the size of a software development or enhancement project’s work-output that may be used to derive performance measures such as ‘productivity’ (= size/effort), etc. As the size measure depends only on the required functionality and is independent of any technology used, such measures can be used to compare performance across projects using different technologies
  • for use as the primary input to methods for estimating project effort. The ability to measure a software size from its requirements is especially valuable early in the life of a software project. Benchmark data to support COSMIC-based project estimating can be obtained from [2]

Given these economically important uses, it is vital to have a software size measurement method that is well-founded, reliable and easy to use. The COSMIC method is now in widespread use around the world.

Brief description of the method[edit]

See the COSMIC method documentation for the full definition of the method. In the following, terms in italics are defined precisely in the method Glossary. The method relies on the principle that the functional user requirements of any software consist of functional processes. Each functional process is triggered when a user of the software (a person, a hardware device or another piece of software) recognises an event and sends a message to start the process. The process is complete when the software has done all that is required to respond to the event.

Examples of triggering events and the corresponding software functional processes could be:

In a business application:

  • An order is received – Enter an order
  • An employee marries – Update a personnel record
  • End of month – Produce bank statements

In a real-time application

  • Tick of clock – Start the cycle to read instruments and adjust control of a process
  • Pilot command – Raise wheels on take-off
  • Receipt of dialing message – Establish telephone call

Software functional processes are further analysed into data movements. The count of data movements (in and out of the software, and to and from persistent storage) is taken as the measure of the functional size of the software, in units of ‘COSMIC Function Points’ (CFP).

COSMIC / traditional function points differences[edit]

From a pure size measurement point of view, the most important improvements of the COSMIC method compared with using traditional Function Points are as follows

  • The COSMIC method was designed to measure the functional requirements of software in the domains of business application, real-time and infrastructure software (e.g. operating systems, web components, etc.), in any layer of a multi-layer architecture and at any level of decomposition. Traditional Function Points were designed to measure only the functionality ‘seen’ by human users of business software in the application layer.
  • Traditional Function Points use a size scale with a limited range of possible sizes for each component. COSMIC functional processes are measured on a continuous size scale with a minimum of 2 CFP and no upper size limit. Modern software can have extremely large processes. Individual functional processes of roughly 100 CFP have been measured in avionics software systems and in public national insurance systems. Traditional Function Points can therefore give highly misleading sizes for certain types of software which means that great care must be taken when using these sizes for performance measurement or estimating
  • The COSMIC method gives a much finer measure of the size of any changes to be made to software than traditional function points. The smallest change that can be measured with the COSMIC method is 1 CFP.

Benefits of using the COSMIC method[edit]

Users of the COSMIC method have reported the following benefits, compared with using '1st generation' methods

  • Easy to learn and stable due to the principles-based approach, hence 'future proof' and cost-effective to implement;
  • Well-accepted by project staff due to the ease of mapping of the method’s concepts to modern software requirements documentation methods, and to its compatibility with modern software architectures;
  • Improves estimating accuracy, especially for larger software projects;
  • Possible to size requirements automatically that are held in CASE tools;
  • Reveals real performance improvement where using traditional function points has not indicated any improvement due to their inability to recognise how software processes have increased in size over time;
  • Sizing with COSMIC is an excellent way of controlling the quality of the requirements at all stages as they evolve.

See also[edit]

External links[edit]

  • The COSMIC website: [3] for general background information, news, etc., and for all standard downloadable documents in twelve languages
  • The COSMIC forum: [4]
  • The COSMIC International Standard (ISO/IEC 19761:2011), obtainable from [5]
  • The International Software Benchmarking Standards Group [6]
  • The Measurement Associations International Network [7]