Software metrics is the rather misleading collective term used to describe the wide range of activities concerned with measurement in software engineering. These activities range from producing numbers that characterise properties of software code (these are the classic software metrics) through to models that help predict software resource requirements and software quality. The subject also includes the quantitative aspects of quality control and assurance - and this covers activities like recording and monitoring defects during development and testing. Although there are assumed to be many generic benefits of software metrics (see for example the books [DeMarco 1982, Gilb 1987, Fenton and Pfleeger 1996, Jones 1991]), it is fair to say that the most significant is to provide information to support managerial decision making during software development and testing. With this focus we provide here a dispassionate assessment of the impact of software metrics (both industrially and academically) and the direction we feel the subject might now usefully take.
We begin our assessment of the status of software metrics with a necessary look at its history in Section 2. It is only in this context that we can really judge its successes and failures. These are described in Section 3. If we judge the entire software metrics subject area by the extent to which the level of metrics activity has increased in industry then it has been a great success. However, the increased industrial activity is not related to the increased academic and research activity. The metrics being practised are essentially the same basic metrics that were around in the late 1960s. In other words these are metrics based around LOC (or very similar) size counts, defect counts, and crude effort figures (in person months). Industrialists have accepted the simple metrics and rejected the esoteric because they are easy to understand and relatively simple to collect. Our objective is to use primarily these simple metrics to build management decision support tools that combine different aspects of software development and testing and enable managers to make many kinds of predictions, assessments and trade-offs during the software life-cycle. Most of all our objective is to handle the key factors largely missing from the usual metrics models: uncertainty and combining different (often subjective) evidence. In Section 4 we explain why traditional (largely regression-based) models are inadequate for this purpose. In Section 5 we explain how the exciting technology of Bayesian nets (which is hidden to users) helps us meet our objective.
To go back to our resources section click here.[papers/_private/copyright_notice.html]
Last modified: July 28, 1999.