Software metric
Encyclopedia
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
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

 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
    Balanced scorecard
    The Balanced Scorecard is a strategic performance management tool - a semi-standard structured report, supported by proven design methods and automation tools, that can be used by managers to keep track of the execution of activities by the staff within their control and to monitor the...

  • Bugs
    Software bug
    A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...

     per line of code
  • COCOMO
    COCOMO
    **********************************************************************************************The Constructive Cost Model is an algorithmic software cost estimation model developed by Barry W. Boehm...

  • Code coverage
    Code coverage
    Code coverage is a measure used in software testing. It describes the degree to which the source code of a program has been tested. It is a form of testing that inspects the code directly and is therefore a form of white box testing....

  • Cohesion
    Cohesion (computer science)
    In computer programming, cohesion is a measure of how strongly-related each piece of functionality expressed by the source code of a software module is...

  • Comment density
  • Connascent software components
  • Coupling
    Coupling (computer science)
    In computer science, coupling or dependency is the degree to which each program module relies on each one of the other modules.Coupling is usually contrasted with cohesion. Low coupling often correlates with high cohesion, and vice versa...

  • Cyclomatic complexity
    Cyclomatic complexity
    Cyclomatic complexity is a software metric . It was developed by Thomas J. McCabe, Sr. in 1976 and is used to indicate the complexity of a program. It directly measures the number of linearly independent paths through a program's source code...

     (McCabe's complexity)
  • Function point analysis
  • Halstead Complexity
    Halstead complexity measures
    Halstead complexity measures are software metrics introduced by Maurice Howard Halstead in 1977 as part of his treatise on establishing an empirical science of software development....

  • Instruction path length
    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 performance on a particular computer hardware...

  • Number of classes and interfaces
  • Number of lines of code
    Source lines of code
    Source lines of code is a software metric used to measure the size of a software program by counting the number of lines in the text of the program's source code...

  • Number of lines of customer requirements
  • Program execution time
  • Program load time
    Loader (computing)
    In computing, a loader is the part of an operating system that is responsible for loading programs. It is one of the essential stages in the process of starting a program, as it places programs into memory and prepares them for execution...

  • Program size (binary)
    Binary file
    A binary file is a computer file which may contain any type of data, encoded in binary form for computer storage and processing purposes; for example, computer document files containing formatted text...

  • Robert Cecil Martin
    Robert Cecil Martin
    Robert Cecil Martin, known colloquially as "Uncle Bob", is an American software consultant and author. Martin has been a software professional since 1970 and an international software consultant since 1990. In 2001, he initiated the meeting of the group that created Agile software development from...

    ’s software package metrics
    Software package metrics
    This article describes various software package metrics. They have been mentioned by Robert Cecil Martin in his Agile Software Development: Principles, Patterns, and Practices book ....

  • Weighted Micro Function Points
    Weighted Micro Function Points
    Weighted Micro Function Points is a modern software sizing algorithm invented by Logical Solutions in 2009 which is a successor to solid ancestor scientific methods as COCOMO, COSYSMO, maintainability index, cyclomatic complexity, function points, and Halstead complexity...


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 thus been limited to narrow domains where they include:
  • Schedule
  • Size/Complexity
  • Cost
    Cost
    In production, research, retail, and accounting, a cost is the value of money that has been used up to produce something, and hence is not available for use anymore. In business, the cost may be one of acquisition, in which case the amount of money expended to acquire it is counted as cost. In this...

  • Quality
    Software quality
    In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context:...



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. Others have noted that metrics have become an integral part of the software development process.
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.
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
Comparison of development estimation software
A comparison of notable Software development effort estimation software.-See also:* Software Sizing* Software metric* Software development effort estimation* Software parametric models* Cost estimation models...

.

See also

  • Computer science
    Computer science
    Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

  • Goal Question-Metric
    GQM
    GQM, the acronym for "goal, question, metric", is an approach to software metrics that has been promoted by Victor Basili of the University of Maryland, College Park and the Software Engineering Laboratory at the NASA Goddard Space Flight Center after supervising a Ph.D. thesis by Dr. David M....

  • Ohloh
    Ohloh
    Ohloh is a website which provides a web services suite and online community platform that aims to map the landscape of open source software development. It was founded by former Microsoft managers Jason Allen and Scott Collison in 2004 and joined by the developer Robin Luckey...

    : quantitative analysis of hundreds of open source projects
  • Programming complexity
    Programming Complexity
    Programming complexity is a term that encompasses numerous properties of a piece of software, all of which affect internal interactions. According to several commentators, there is a distinction between the terms complex and complicated. Complicated implies being difficult to understand but with...

  • Software crisis
    Software crisis
    Software crisis is the term used in early days of computing science. The term was used to describe the impact of rapid increases in computer power and the complexity of the problems that could be tackled. In essence, it refers to the difficulty of writing correct, understandable, and verifiable...

  • Software development effort estimation
    Software development effort estimation
    Software development efforts estimation is the process of predicting the most realistic use of effort required to develop or maintain software based on incomplete, uncertain and/or noisy input...

  • Software engineering
    Software engineering
    Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

  • Software package metrics
    Software package metrics
    This article describes various software package metrics. They have been mentioned by Robert Cecil Martin in his Agile Software Development: Principles, Patterns, and Practices book ....

  • Software quality
    Software quality
    In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context:...

  • Comparison of development estimation software
    Comparison of development estimation software
    A comparison of notable Software development effort estimation software.-See also:* Software Sizing* Software metric* Software development effort estimation* Software parametric models* Cost estimation models...

  • List of tools for static code analysis

External links

Covers a minimal set of essential metrics for a successful product delivery.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK