Software metric
![]() | It has been suggested that Programming Complexity and Talk:Software metric be merged into this article. (Discuss) Proposed since June 2008. |
![]() | This article is written like a personal reflection, personal essay, or argumentative essay that states a Wikipedia editor's personal feelings or presents an original argument about a topic. (May 2008) |
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]
Software Metrices Measurement
I. The what and why of measurement
Measurement is an essential element of management; there is little chance of controlling what we can not measure. A. Measurement assigns numbers based on well defined meaning 1. Sometimes the environment must be modified In a software context, this can mean special compilers or development procedures that track various activities. B. Software metrics helps avoid pitfalls 1. Cost overruns Most project fail to separate design and coding costs. Doing so helps identify where problems exist. 2. Clarify goals Project goals are often fuzzy, and so it is difficult to quantify how well they have been achieved. C. Metrics can help answer certain question 1. What does each process activity cost? 2. How productive is the staff? 3. How “good” is code being developed? 4. How can the code under development be improved? D. Measurement is though for understanding, control, and improvement
II. The scope of software metrics
Software metrics is a term applied to a wide variety of measurement activities, under for a wide va- riety of reasons. Software metrics provides a means of measuring software; both under development and after a system is fielded. Software is an abstract construct, and measuring it is difficult. What, exactly, do you measure to get meaningful results? A. Cost and effort estimation Various models work to predict the cost and time to complete a project B. Productivity models and measures C. Data collection Consistent, meaningful data collection is difficult, and made more difficult by try to collect data across diverse projects. D. Quality models and measures Bad code is not worth much, even if lots of it is written quickly. E. Reliability modeling Just how reliable is the software? when can we expect the next failure? F. Performance evaluation How well does the system perform? Response and completion time, transactions processed, etc.
Common software metrics
Common software metrics include:
- Source lines of code
- Cyclomatic complexity
- Function point analysis
- Bugs per line of code
- Code coverage
- Number of lines of customer requirements.
- Number of classes and interfaces
- Robert Cecil Martin’s software package metrics
- Cohesion
- Coupling
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 metrics 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.
The Balanced scorecard is a one tool for managing a suite of metrics that address multiple performance perspectives.
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
References
- ^ DeMarco, Tom. Controlling Software Projects: Management, Measurement and Estimation. ISBN 0-13-171711-1.
External links
- 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.