When you can measure what you are speaking about, and express it in
numbers, you know something about it;
but when you cannot measure it, when you cannot express it in numbers,
your knowledge is of a meager and
( Lord Kelvin, Popular Lectures and Addresses, 1889 )
Software plays an important role in our life. We want products which affect our lives has quality attributes. We need quality software. In order to determine quality of software we must have some metrics to measure quality. The key point here is quality of the same product may be change. Software is not an exception. So if we determine quality attributes of the software we can also have more precise, predictable and repeatable control over the software development process and product. If software engineer know what will he/she do, then we can "measure" software more easly. Most of time we do not know exectly what is the problem. With only a small understanding of the desired software system, estimations of costs begin.
In the early days of computing, software costs represented a small percentage of the overall cost of a computer-based system. Therefore, a sizable error in estimates of software cost had relatively little impact. Today, software is the most expensive element in many computer-based systems. Therefore, a large cost-estimation can make the difference between profit and loss.
Software measurement enables us to estimate cost and effort devoted to project.
Software measurement enables us to determine quality of software.
Software measurement enables us to predict maintainability of software.
Software measurement enables us to validate the best practices of software development.
Area of software measurement in software engineering is active more than thirty years. There is a huge collection of researches, but still no a concrete software cost estimation model.
If we want to estimate cost-effort of a software project. We need to know the size of the software. One of the first software metric to measure the size of the software as length is the LOC ( Line of Code ) The LOC measure is used extensively in COCOMO , [Boehm 1981] cost estimation model. Another size metric is Function points (FP) [Albrecth 1979] reflects the user's view of a system's functionality and gives size as functionality. A unit ( the function point ) expresses the amount of information processing that an application offers the user. The unit is separate from the way in which the information processing is carried out technically.
Because software is a high-level notion made up of many different attributes, there can never be a single measure of software complexity. Most of the complexity metrics are also restricted to code. The best known are Halstead's Software Science [Halstead 1977] and McCabes's cyclomatic number [McCabe 1976] . Halstead defined a range of metrics based on the operators and operands in a program. McCabe's metrics is derived from the program's control flowgraph.
As object-oriented approaches to programming become widesperead object-oriented metrics are emerged.
Links on Software Measurement and Quality
Software Engineering Journals Most of them have a contents page
Links on Computer Science & Engineering