Product Metrics
It describes the characteristics of the product such as size, complexity, design features, performance, efficiency, reliability, portability, etc.
Product metrics are concerned with characteristics of the software itself.
Classes of Product Metrics
Product metrics fall into two classes:
- Dynamic Metrics: These are collected by dimensions made of a program in execution. Dynamic metrics are usually rather directly related to software quality attributes. I t is fairly easy to measure the execution time required for particular functions and to evaluate the time required to start-up a system. These relate directly to the system’s efficiency. Similarly, the number of system failures and the type of failure can be logged and related directly to the consistency of the software.
- Static Metrics: These are collected by dimensions made of representations of the system such as the design, program or documentation. Static metrics, on the other hand, have an indirect relationship with quality attributes. A large number of these metrics have been proposed, and many experiments have tried to obtain and validate the relationship between these metrics and system complexity, understandability and maintainability.
Areas of Product Metrics
- Metrics for Analysis Model: These metrics address various aspects of the analysis model and include:
- Functionality Delivered: Provides an roundabout measure of the functionality that is packaged within the software.
- System Size: measure of the overall size of the system defined in terms of information available as part of the analysis model.
- Specification Quality: provides an indication of the specificity and completeness of a requirements specification.
- Metrics for Design Model: These metrics quantity design attributes in a manner that allows a software engineer to contact design quality. Metrics include:
- Architectural Metrics: provide an indication of the quality of the architectural design.
- Component-level Metrics: measure the complexity of software components and other characteristics that have a attitude on quality.
- Interface Design Metrics: focus primarily on usability.
- Specialized OO Design Metrics: measure characteristics of classes and their communication and collaboration characteristics.
- Metrics for Source Code: These metrics measure the source code and can be used to access its complexity, maintainability, and testability, among other characteristics:
- Halstead Metrics: Controversial but nonetheless attractive, these metrics provide unique measurements of a computer program.
- Complexity Metrics: calculate the logical complexity of source code.
- Length Metrics: Provide an suggestion of the size of the software.
- Metrics for Testing: These metrics assist in the design of effective test cases and evaluate the efficacy of testing:
- Statement and Branch Coverage Metrics: Lead to the design of test cases that provide program coverage.
- Defect-Related Metrics: focus on bugs found, rather than on the tests themselves.
- Testing Effectiveness: present a real-time indication of the effectiveness of tests that have been performed.
- In-Process Metrics: process related metrics that can be determined as a testing conducted.