Software metric
   HOME

TheInfoList



OR:

In
software engineering Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
and development, a software metric is a standard of measure of a degree to which a
software system A software system is a system of intercommunicating software component, components based on software forming part of a computer system (a combination of Computer hardware, hardware and software). It "consists of a number of separate Computer progr ...
or process possesses some property. Even if a metric is not a measurement (metrics are functions, while measurements are the numbers obtained by the application of metrics), often the two terms are used as synonyms. Since quantitative measurements are essential in all sciences, there is a continuous effort by
computer science Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied 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 In engineering, debugging is the process of finding the Root cause analysis, root cause, workarounds, and possible fixes for bug (engineering), bugs. For software, debugging tactics can involve interactive debugging, control flow analysis, Logf ...
, software performance optimization, and optimal personnel task assignments.


Common software measurements

Common software measurements include: * ABC Software Metric *
Balanced scorecard A balanced scorecard is a strategy performance management tool – a well-structured report used to keep track of the execution of activities by staff and to monitor the consequences arising from these actions. The term 'balanced scorecard' prim ...
* Bugs per line of code *
Code coverage In software engineering, code coverage, also called test coverage, is a percentage measure of the degree to which the source code of a program is executed when a particular test suite is run. A program with high code coverage has more of its ...
* Cohesion * Comment density * Connascent software components * Constructive Cost Model * Coupling * Cyclomatic complexity (McCabe's complexity) * Cyclomatic complexity density * Defect density - defects found in a component * Defect potential - expected number of defects in a particular component * Defect removal rate * DSQI (design structure quality index) * Function Points and Automated Function Points, an
Object Management Group The Object Management Group (OMG®) is a computer industry Standards Development Organization (SDO), or Voluntary Consensus Standards Body (VCSB). OMG develops enterprise integration and modeling standards for a range of technologies. Busin ...
standard * Halstead Complexity *
Instruction path length In computer performance, the instruction path length is the number of machine code instructions required to execute a section of a computer program. The total path length for the entire program could be deemed a measure of the algorithm's perfor ...
* Maintainability index * Source lines of code - number of lines of code * Program execution time * Program load time * Program size (binary) * Weighted Micro Function Points * Cycle time (software) * First pass yield * Corrective Commit Probability


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. The practical utility of software measurements has therefore been limited to the following domains: * Scheduling * Software sizing * Programming complexity * Software development effort estimation * Software quality A specific measurement may target one or more of the above aspects, or the balance between them, for example as an indicator of team motivation or project performance. Additionally metrics vary between static and dynamic program code, as well as for object oriented software (systems).


Acceptance and public opinion

Some software development practitioners point out that simplistic measurements can cause more harm than good. Others have noted that metrics have become an integral part of the software development process. Impact of measurement on programmer 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. 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, while others argue that imperfect quantification is better than none (“You can’t control what you can't measure.”). Evidence shows that software metrics are being widely used by government agencies, the US military, NASA, IT consultants, academic institutions, and commercial and academic development estimation software.


Further reading

* J. Smith, ''Introduction to Linear Programming'', Acme Press, 2010. An introductory text. * Reijo M.Savola, ''Quality of security metrics and measurements, Computers & Security, Volume 37, September 2013, Pages 78-90.''


See also

* Goal Question-Metric * List of tools for static code analysis * Orthogonal Defect Classification *
Software engineering Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
* Software package metrics


References


External links


Software Metrics
(SQA.net)
Software Engineering Metrics: What do they measure and how do we knowNASA Standard NASA-STD-8739.8 (Software Assurance and Software Safety Standard)HIS Source Code Metrics
(''outdated but for reference''; related see AUTOSAR)
HIS Source Code Metrics version 1.3.1 01.04.2008
(''outdated but for reference''; related see AUTOSAR)
A framework for source code metricsNASA.govSonarQube Metric DefinitionsMetrics of Object Oriented Software
(2010) {{DEFAULTSORT:Software Metric * Metrics