Software measurement

Software measurement is a quantified attribute (see also: measurement) of a characteristic of a software product or the software process. It is a discipline within software engineering. The process of software measurement is defined and governed by ISO Standard ISO 15939 (software measurement process).

Software size, functional measurement
The primary measurement of software is size, specifically functional size. The generic principles of functional size are described in the ISO/IEC 14143. Software size is principally measured in function points. It can also be measured in lines of code, or specifically, source lines of code (SLOC) which is functional code excluding comments. Whilst measuring SLOC is interesting, it is more an indication of effort than functionality. Two developers could approach a functional challenge using different techniques, and one might need only write a few lines of code, and the other might need to write many times more lines to achieve the same functionality. The most reliable method for measuring software size is code agnostic, from the user's point of view - in function points.

Measuring code
One method of software measurement is metrics that are analyzed against the code itself. These are called software metrics and including simple metrics, such as counting the number of lines in a single file, the number of files in an application, the number of functions in a file, etc. Such measurements have become a common software development practice.

Measuring software complexity, cohesion and coupling
There are also more detailed metrics that help measure things like software complexity, Halstead, cohesion, and coupling.