COSMIC

 

A group of experienced software measurement experts formed the Common Software Measurement International Consortium (COSMIC) to overcome some of the early issues with function point measurements. The COSMIC standard defines rules and principles for measuring software's functional size. The COSMIC method differs from the traditional function point method, as the focus is on data movements such as input, output, and data storage that characterize most software development efforts.

The main goal of the COSMIC method is to measure the functional user requirements of a piece of software, disregarding any technical or quality considerations. It focuses on the movement of data between users and the software system itself.

Here are the basic steps of the COSMIC method:

  1. Identify Functional Users: The first step in the COSMIC method is to identify the functional users of the software. These could be other software systems, hardware devices, or human users.

  2. Identify Data Movements: Next, you identify the different types of data movements, which are classified into four categories:

    • Entry: An object enters the system from an external user.

    • Exit: An object leaves the system to an external user.

    • Read: The system reads an object from its data storage.

    • Write: The system writes an object to its data storage.

  3. Identify Data Groups: Data groups are a group of data attributes that belong to the same object which is being manipulated by the software system. This could be, for example, a Customer or an Order in a business application.

  4. Measure the Functional Size: Each data movement is counted as one function point, regardless of the complexity or size of the data being moved. The total number of data movements gives the functional size of the software in COSMIC Function Points (CFP).

COSMIC Function Points can then be used in project estimation, performance measurement, productivity analysis, and other aspects of software project management. This method allows for comparison across different types of software systems and technologies, but, like other functional sizing methods, it requires expertise and experience to apply effectively.