Uses of COSMIC functional size measurement
Almost everyone concerned with developing software, or with managing the development of some software, will at some time need to be able to estimate or measure its size. The key uses of software sizes, especially of a COSMIC functional size which can be measured and re-measured as a project proceeds are:
‘How big is it?’ is the first question that naturally springs to mind when a project manager is faced with a demand to estimate the cost of developing a new piece of software. If we can put a size measure on the requirements for a new piece of software then we have taken the first vital step towards estimating the cost and time that will be needed for its development. Several commercially-available project estimating tools will accept COSMIC functional sizes as input.
Project performance measurement
In practically any industry, the ability to measure performance is critical for understanding and improving performance. ‘Productivity’ for example, is usually defined as ‘the amount of product delivered divided by the effort needed’. For software development this is interpreted as ‘software functional size’/’project effort’.
'Software (functional) size', which indicates the amount of product to be delivered, is taken as our measure of project work-output, the ‘effort needed' as its input.
Other important software project development performance measures include:
'Speed of delivery' = 'Software size / elapsed time'
'Defect density' = Number of defects identified in a given period / 'software size'.
If you wish to compare your organization’s project performance measures against another organization’s, or against external benchmark performance measures, then clearly standardized software size measures are essential.
Project scope control
If a supplier gives an estimate to a customer for the cost of a new development, and the customer then adds in new requirements or drops some of them, the supplier will wish to respond by either adapting the cost estimate or by negotiating about the scope of the customer’s requirements. Either way, the ability to measure a size of the software and/or of any proposed changes based on the requirements is a critical parameter for both parties in the negotiations.
Software asset valuation
Most large organizations, whether in the private or public sectors have now accumulated vast amounts of software. Putting a size on this asset or parts of it can be valuable when it comes to estimating the replacement cost. Some organizations, especially in financial services, use a size measure to help value their asset so that it can appear on the organization’s balance sheet.
Software contract Control
If your job is to control a software supply contract, then it can be critically important to be able to size the software for all the purposes described above.
Quality control of software requirements
The process of measuring a functional size of a statement of requirements provides a very good check on the quality (clarity, completeness and consistency) of the requirements. If the requirements are unclear such that a functional size cannot be measured properly, then the developers will also face difficulties; they will have to make assumptions, which may or not be correct.
Basis for test case planning
The process of measuring a COSMIC functional size of the requirements of a piece of software involves identifying the ‘functional processes’ of the software (see the Introductory Examples). A list of the functional processes of a piece of software is a very good basis for planning test cases.