Software Development metrics are the measures to quantify and symbolise the different attributes and aspects of the Software Development Life Cycle.
They help to analyse the various elements of the software. Even they are fundamental requirements of software engineering.
Software metrics not only keep the development process on the right track but also make it easy to assure the delivery of a quality end product.
Development metrics are important because it is hard to make any improvement in the process if we are not able to measure what went wrong.
Software Development Metrics belongs to the following three categories:
1. Process Metrics
Process metrics are the data that tells about the different phases of the Software Development Life Cycle, the methods and the tools used and the company standards that were followed.
This metrics is calculated based on the quality achieved after so many repeated cycles performed by following an organized process. As it’s analysis requires to observe many cycles so it is a long term metrics.
Statistical Software Process Improvement requires error categorization and analysis:
- All errors and defects are categorised based on their origin.
- The cost required to correct each error and defect is recorded.
- The number of errors and defects in each category is calculated.
- Those categories are highlighted that cost mist expensive fir organisation to fix than the others.
- Plans are developed to improve the process for future cycles.
Defect Removal Efficiency can be calculated in terms of errors (bugs detected before release) and defects (bugs reported by the user after release)
DRE = E/(E+D)
2. Project Metrics
These metrics are used by the project manager and development team to find out the correct workflow for the project and the technical activities required to carry out for fulfilling the software requirements.
Project Metrics are calculated individually for each project as per it’s specifications. So, it’s a short term metrics.
The main purpose of these metrics is to minimize the development time by designing the workflow in such a way so that the delays can be prevented and mitigate the problem.
Even it also allows observing the quality of the software under development.
It involves metrics like:
- Effort or time spent in each task.
- Errors detected per review hour.
- Difference between the estimated date and actual date to reach a milestone.
- The number of changes done and their characteristics.
- Distribution of tasks among the team.
3. Product Metrics
Product Metrics focuses on analysing the quality of the deliverables. These metrics of various projects are combined to generate the process metrics.
Some product metrics:
- Measures involved in the analyses model.
- The complexity of the project’s design.
- The complexity of the internal algorithm.
- The complexity of the Architecture
- The complexity involved in the data flow.
We will discuss some software development life cycle metrics:
1. Size Metrics
It is regarded as the Lines of Code (LOC) in the software measure in thousands of delivered Source Code lines, denoted as KLOC.
It is the simplest metrics to calculate. The comments and blank lines are not counted in size metrics. But the count is dependent on the programming language used. Along with that, it does not give any idea about the size of the specifications in the software.
2. Function Point Count
It is the measure of the number of functionalities provided by the software. Function Point Count defines the size of the functional aspect of the software.
Each function point refers to a user’s or business requirement. It helps to know the capabilities of the software and the ways it can help the users and satisfy their needs.
Along with that it also tells about developers productivity, project burndown and software quality.
The function point count can be done using automated tools which use external outputs, external inputs, internal logical files, and external interfaces.
Even these metrics can be calculated manually but it is more time consuming and expensive than the automated one.
3. Complexity Metrics
The complexity of the program or its modules is the quantity of the maximum possible independent paths in that program or module.
Complexity Metrics is calculated by the control flow graph using the concept of graph theory.
Customers do experience the impact of complexity while operating the software in various ways:
1. Wastage of time in loading a function called.
2. Hard to understand the interface.
3. Having too many or sometimes not enough choices.
Complexity is calculated based on:
1. Time required to operate.
2. The number of components involved.
3. The number of ways components are connected.
4. The number of levels involved.
4. Quality Metrics
Quality metrics include data like the defects detected in the software during the testing process. Along with that the type of defects and the cause of their occurrence.
It also explains the impact the defects are having on the software working. The more severe the intensity of the defect will be, the less will be the quality of the product.
All these data help in the analyses of the quality of the product under development.
5. Defects Count
Defect count is one of the software development performance metrics that is calculated based on defects detected before delivery in the market and the defects detected after the installation at the client end.
Defect count also determines the quality of a software.
6. Resource Metrics
This software development metrics measure the resources used in the development process. The attributes considered under resources are efforts, time, various resources used.
1. Metrics should be analysed based on common sense and organisational sensitivity.
2. Regular feedback should be provided to the individuals or the team given the responsibility to collect metrics data.
3. Work with practitioners to find out the correct metrics to achieve the goals set.
4. Metrics should not threaten an individual or team.
5. The problem area detected in the metrics should not be considered negative. They are just areas to improve the quality of the product.
Software metrics helps in determining the quality of the design, complexity of the code and the amount of the efforts required.
Software Development metrics help in the decision-making process in the current software development industry where we want systematic measures to evaluate the quality of the development process and the product.