Software Metric(s)

Source: Wikipedia: Software Metric


A software metric is a measure of some property of a piece of software or its specifications. Since quantitative methods have proved so powerful in the other sciences, computer science practitioners and theoreticians have worked hard to bring similar approaches to software development. Tom DeMarco stated, “You can’t control what you can't measure.”[1] Modern software development practitioners are likely to point out that naive and simplistic measurements can cause more harm than good.[2]

Common software measurements

Common software measurements include:

* Code coverage
* Cohesion
* Comment density[3]
* Coupling
* Cyclomatic complexity
* Function point analysis
* Instruction path length
* Program load time
* Number of classes and interfaces
* Number of lines of customer requirements.
* Program Size
* Robert Cecil Martin’s software package metrics
* Bugs per line of code
* Source lines of code or Program Length
* Execution Time

The definition of many of these measurements is often imprecise, and consequently it is often unclear how tools for computing them arrive at a particular result [4].
[edit] Limitations

It is very difficult to satisfactorily define or measure "how much" software there is in a program, especially when making such a prediction prior to the detail design. The practical utility of software measurements has thus been limited to narrow domains where they include:

* Schedule
* Size/Complexity
* Cost
* Quality

Too much emphasis on any one of these aspects of performance is likely to create an imbalance in the team’s motivations, leading to a dysfunctional project.[citation needed]

The Balanced scorecard is a one tool for managing a suite of measurements that address multiple performance perspectives.
[edit] See also

* Software development effort estimation
* Software engineering
* Computer science
* Software quality
* Software package metrics
* Goal Question-Metric
* Ohloh: quantitative analysis of hundreds of open source projects
* List of code quality management dashboards
* Software crisis

[edit] References

1. ^ DeMarco, Tom. Controlling Software Projects: Management, Measurement and Estimation. ISBN 0-13-171711-1.
2. ^ Dr. Cem Kaner, Software Engineer Metrics: What do they measure and how do we know?
3. ^ http://mip-site.lsec.dnd.ca/qsd_current_version/eng_support/di/metrics.htm Descriptive Information (DI) Metric thresholds
4. ^ Rüdiger Lincke, Jonas Lundberg, Welf Löwe: Comparing software metrics tools. ISSTA 2008: 131-142

[edit] External links

* "Minimal Essential Software Quality Metrics" by Vijayan Reddy. Covers a minimal set of essential metrics for a successful product delivery.
* Definitions of software metrics in .NET
* International Function Point Users Group
* What is FPA at Nesma website
* Estimating With Use Case Points by Mike Cohn. Describes the process to measure the size of an application modeled with UML, using use cases.
* OO & Agile Metrics Resources - includes workshop material on gaming metrics to improve their design
* Further defines the term Software Metrics with examples.
* Software Engineering Metrics: What do they measure and how do we know - An intellectually rigorous treatment of software engineering metrics


Other Related Links:

Software Metrics.com

  1. www.spr.com: The site for Software Productivity Research. Capers Jones articles and information about software estimation and planning tools for IT projects
  2. www.ifpug.org: International Function Point Users Group
  3. sunset.usc.edu/research/COCOMOII/index.html: The latest version and information about COCOMO
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License