Product metrics are software product measures at any stage of their development, from requirements to established systems. Product metrics are related to software features only.
Product metrics fall into two classes:
- Dynamic metrics that are collected by measurements made from a program in execution.
- Static metrics that are collected by measurements made from system representations such as design, programs, or documentation.
Dynamic metrics help in assessing the efficiency and reliability of a program while static metrics help in understanding, understanding and maintaining the complexity of a software system.
Dynamic metrics are usually quite closely related to software quality attributes. It is relatively easy to measure the execution time required for particular tasks and to estimate the time required to start the system. These are directly related to the efficiency of the system failures and the type of failure can be logged and directly related to the reliability of the software.
On the other hand, static matrices have an indirect relationship with quality attributes. A large number of these matrices have been proposed to try to derive and validate the relationship between the complexity, understandability, and maintainability. several static metrics which have been used for assessing quality attributes, given in table of these, program or component length and control complexity seem to be the most reliable predictors of understandability, system complexity, and maintainability.
Software Product Metrics :
|(1)||Fan-in/Fan-out||Fan-in is a measure of the number of functions that call some other function (say X). Fan-out is the number of functions which are called by function X. A high value for fan-in means that X is tightly coupled to the rest of the design and changes to X will have extensive knock-on effects. A high value for fan-out suggests that the overall complexity of the control logic needed to coordinate the called components.|
|(2)||Length of code||This is measure of the size of a program. Generally, the large the size of the code of a program component, the more complex and error-prone that component is likely to be.|
|(3)||Cyclomatic complexity||This is a measure of the control complexity of a program. This control complexity may be related to program understandability.||(4)||Length of identifiers||This is a measure of the average length of distinct identifier in a program. The longer the identifiers, the more understandable the the program.|
|(5)||Depth of conditional nesting||This is a measure of the depth of nesting of if statements in aa program. Deeply nested if statements are hard to understand and are potentially error-prone.|
|(6)||Fog index||This is a measure of the average length of words and sentences in documents. The higher the value for the Fog index, the more difficult the document may be to understand.|
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Software Engineering | Identifying Software Development Metrics
- Software Engineering | Halstead’s Software Metrics
- Metrics for the Design Model of the Product
- Software Engineering | Software Product
- Software Measurement and Metrics
- Difference between Software Engineering process and Conventional Engineering Processs
- Software Engineering | Requirements Engineering Process
- Software Engineering | Reverse Engineering
- Software Engineering | Introduction to Software Engineering
- Measuring Software Quality using Quality Metrics
- Software Engineering | Re-engineering
- Software Engineering | Role and Responsibilities of a software Project Manager
- Software Engineering | Software Project Management Plan (SPMP)
- Software Engineering | Schick-Wolverton software reliability model
- Software Engineering | Jelinski Moranda software reliability model
- Software Engineering | Responsibilities of Software Project Manager
- Software Engineering | Software Project Management Complexities
- Software Engineering | Software Quality Assurance (SQA) Set 2
- Software Engineering | Software Quality Assurance
- Software Engineering | Software Business and Development
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.