ⓘ Software metric

                                     

ⓘ Software metric

A software metric is a standard of measure of a degree to which a software system or process possesses some property. Even if a metric is not a measurement, often the two terms are used as synonyms. 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.

                                     

1. Common software measurements

Common software measurements include:

  • Coupling
  • Comment density
  • Number of lines of code
  • DSQI design structure quality index
  • Halstead Complexity
  • Balanced scorecard
  • Instruction path length
  • Program size binary
  • Cyclomatic complexity McCabes complexity
  • Function Points and Automated Function Points, an Object Management Group standard
  • Code coverage
  • Weighted Micro Function Points
  • Defect removal rate
  • Bugs per line of code
  • Constructive Cost Model
  • Cohesion
  • Program load time
  • Defect density - defects found in a component
  • CISQ automated quality characteristics measures
  • Connascent software components
  • Program execution time
  • Maintainability index
  • Defect potential - expected number of defects in a particular component
  • ABC Software Metric
                                     

2. 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:

  • Software development effort estimation
  • Software sizing
  • Software quality
  • Programming complexity
  • Scheduling

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.

                                     

3. 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 cant 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.



                                     
  • communication path Router metrics used by a router to make routing decisions Software metric a measure of some property of a piece of software or its specifications
  • The ABC software metric was introduced by Jerry Fitzpatrick in 1997 to overcome the drawbacks of the LOC. The metric defines an ABC score as a triplet
  • Various software package metrics are used in modular programming. They have been mentioned by Robert Cecil Martin in his 2002 book Agile software development:
  • of size. Software size is typically sized in SLOC, Function Point or Agile story points. Software development effort estimation Software metric Project
  • centre ran the Safety - Critical Systems Club SCSC and the Software Reliability Metrics Club. Since August 2016 the Safety - Critical Systems Club has
  • The OMG Structured Metrics Metamodel SMM specification defines a standard Metrics Metamodel. It is a publicly available specification from the Object
  • analyzed against the code itself. These are called software metrics and including simple metrics such as counting the number of lines in a single file
  • developed his Laws of Software Evolution from his research. He and his co - Author Les Belady explored numerous possible Software Metrics in their oft - cited
  • analysis through an array of visuals, documentation, and metric tools. It was built to help software developers comprehend, maintain, and document their source
  • tests such as software reviews Historically, the structure, classification and terminology of attributes and metrics applicable to software quality management
  • John A. Clark 2004 Metrics are fitness functions too Proceedings of the 10th International Symposium on Software Metrics 2004. 10th International
  • into account source code, static and dynamic characteristics e.g., software metrics as well as related processes of their development and evolution. It