411 REFERENCE · Wikibooks
Introduction to Software Engineering/Quality/Metrics
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
A software metric is a measure of some property of a piece of software or its specifications. Since quantitative measurements are essential in all sciences, there is a continuous effort by computer science practitioners and theoreticians to bring similar approaches to software development. The goal is obtaining objective, reproducible and quantifiable measurements, which may have numerous valuable applications in schedule and budget planning, cost estimation, quality assurance testing, software debugging, software performance optimization, and optimal personnel task assignments.
Common software measurements
Common software measurements include:
Balanced scorecard
Bugs per line of code
COCOMO
Code coverage
Cohesion
Comment densityDescriptive Information (DI) Metric Thresholds http://www.lsec.dnd.ca/qsd_current_version/eng_support/di/metrics.htm Land Software Engineering Centre 19 October 2010
Connascent software components
Coupling
Cyclomatic complexity
Function point analysis
Halstead Complexity
Instruction path length
Number of classes and interfaces
Number of lines of code
Number of lines of customer requirements
Program execution time
Program load time
Binary file|Program size (binary)
Robert Cecil Martin’s software package metrics
Weighted Micro Function Points
Limitations
As software development is a complex process, with high variance on both methodologies and objectives, it is difficult to define or measure software qualities and quantities and to determine a valid and concurrent measurement metric, especially when making such a prediction prior to the detail design. Another source of difficulty and debate is in determining which metrics matter, and what they mean.Kolawa Adam When, Why, and How: Code Analysis http://www.codeproject.com/KB/interviews/Code_Review.aspx The Code Project 19 October 2010
The practical utility of software measurements has thus been limited to narrow domains where they include:
Schedule
Size/Complexity
Cost
Quality
Common goal of measurement may target one or more of the above aspects, or the balance between them as indicator of team’s motivation or project performance.
Acceptance and Public Opinion
Some software development practitioners point out that simplistic measurements can cause more harm than good.Kaner Dr. Cem Software Engineer Metrics: What do they measure and how do we know? http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1.2542&rep=rep1&type=pdf Others have noted that metrics have become an integral part of the software development process.Binstock Andrew Integration Watch: Using metrics effectively http://www.sdtimes.com/link/34157 SD Times BZ Media 19 October 2010
Impact of measurement on programmers psychology have raised concerns for harmful effects to performance due to stress, performance anxiety, and attempts to cheat the metrics, while others find it to have positive impact on developers value towards their own work, and prevent them being undervalued.ProjectCodeMeter (2010) "ProjectCodeMeter Users Manual" page 65
Some argue that the definition of many measurement methodologies are imprecise, and consequently it is often unclear how tools for computing them arrive at a particular result,Rüdiger Lincke Jonas Lundberg Welf Löwe Comparing software metrics tools 2008 International Symposium on Software Testing and Analysis 2008 131–142 http://www.arisa.se/files/LLL-08.pdf while others argue that imperfect quantification is better than none (“You can’t control what you can't measure.”) DeMarco Tom Tom DeMarco Controlling Software Projects: Management, Measurement and Estimation 0-13-171711-1.
Evidence shows that software metrics are being widely used by government agencies, the US military, NASANASA Metrics Planning and Reporting Working Group (MPARWG) , IT consultants, academic institutionsUSC Center for Systems and Software Engineering , and commercial and academic development estimation software.
References
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