Quantitative methods anybody believed capable of producing goal, valid, reliable, and structured data. They apply in various fields of scientific knowledge. It is not surprising that similar methods use in software development as well. A peculiar result of this transfer is software metrics. Software quality metrics are an introduced numerical measure. They to single out and check definite properties of software or its specifications.
There are many different classifications interpreting metrics. They enjoy different perspectives and ranking the same characteristics according to various criteria. As a result, the same metrics somebody can group in different ways. A more or less universal classification of metrics is their division into:
Software evaluation metrics;
- Metrics of software development environment evaluation.
- Users can use metrics with different scales of evaluating software properties:
- Interval, and relative.
The nominal scale shows the presence or absence of some property in software.
An ordinal scale corresponds to metrics used for ranking particular characteristics. It is comparing them with some reference values. Measurements on this scale show the relative position of specific software.
The interval scale shows the interposition of programs. And how far apart they are from each other.
The relative scale allows placing programs in a certain way. And check their placement towards each other. There is a point from which you can measure the feature qualification. Also, it can show as far the estimates are from this point.
There are three types of metrics by their purpose:
Predictive ones serve to try to predict the troubles that the project may encounter. The second of them need to check the current state of the project. The third helps to avoid future problems. That of them the team has faced in current or already completed projects.
Predictive metrics can describe many different parameters:
- Expected scope of work;
- Planned budget;
- Project complexity factor;
- Complexity of project plan;
- Number of human resources;
- Total time margin, etc.
Advantages of Use a Software Quality Metric
Measurements provide data that help you:
- Ask the right questions;
- Understand the context, and make goal decisions.
The nature of software projects is dynamic. The ability to perform such measurements must exist at all times. And it applies to different parts of the changing product. A good metric has the following main characteristics:
1. It makes sense to the customer and the implementer. If at least one stakeholder does not see the metric as meaningful, it will not for use. Customers look to developers because they are experts in a software project. Customers should accept those metrics that will make sense to the developer.
2. It shows the quantitative correlation between process changes and progress. The only real goals and objectives of the organization are financial:
Increasing revenues, and increasing profits.
3. It is a goal, and its definition is unambiguous. Objectivity should translate into the form of numerical representation (e.g., numbers, percentages, fractions). It is as opposed to textual representation (e.g., excellent, good, true, poor). Uncertainty minimizes through using understandable units of measurement. Such as:
- Human months;
- Function points;
- Requirements that are not defined .
4. It shows trends. It is a relevant characteristic. Rarely does some metric lead to the performance of any particular action. Instead, the metric presents a view from some perspective. And interpreting this metric is the task of the decision-makers.
5. It is a natural byproduct of the process. No new work products or more activities get put in place for the sake of the metric. It leads out of the work processes themselves.
6. You can automate it. The most successful metrics are those for which information has been collected and presented. It is true because software tools need strict definitions for the data handled. When metrics state some problem, it is relevant to delve into all the symptoms. Metrics usually depict effects. A synthesis of many perspectives and inferences must follow to understand causes.
What Metrics to Choose?
All software metrics divides into two classes:
a) Metrics characterizing the most specific properties of programs. They are metrics of measuring software quality;
b) Metrics evaluating technical characteristics and factors of software development. They are metrics evaluating software development environment.
Several hundred software metrics exist in world practice. The existing program quality metrics grouped into six areas:
1) Measures of topological and information complexity of programs. They are using corresponding metrics and are indirect estimations of reliability;
2) Assessments of the functional reliability of software systems. They allow forecasting the occurrence of errors in the program. You can use reliability models;
3) Measurements of software performance and estimations of its efficiency improvement. It makes by detecting design errors;
4) Measurements of the level of language tools and evaluation of their application;
5) Measurements of perception and understanding of program texts. They are focusing on psychological factors essential for program maintenance and modification;
6) Measurements of programmers’ productivity. It needs to forecast the software development timeframe and work for software complexes.
Severity and Number of Bugs
Software quality assessment starts from the lowest level of the hierarchy. At the design stage, the values of the evaluation elements for each attribute of the software.
A software quality metric is a model for measuring the attribute with its quality. It is according to the definition of ISO/IES 9126-2. This standard allows you to define software quality the following types of measures:
- Measures of size in various units. They are number of functions, program size, amount of resources;
- Time measures, periods of real, processor, or calendar time. They are system operation time, component execution time, usage time;
- Effort measures productive time spent on project implementation. It is the productivity of individual project participants, collective labor intensity.
Event interval measures are the time between successive failures.
Metrics in software testing serve to check the degree of testability with data. They are no-failure operation, feasibility of functions, usability of user interfaces, database. It makes after software testing on a set of tests.
MTBF provides a hard-to-measure estimate of the damage caused by these threats. It determines the average time between the occurrence of security-damaging attacks.
The program evaluates by the number of lines. When comparing two programs, preference gives to the shorter one. It has fewer hidden errors and is easier to change. One is more expensive, although it takes more time for debugging and modification. You can use the length of the program as a property for comparison of programs.
QA Metrics Security
All information security metrics include:
- Incident management;
- Asset management;
- Risk management;
- Vulnerability management;
- Information security audits;
- Information security management and user management.
Users should determine the frequency of measurement, the acceptable and critical levels. That enables interpretation of the resulting values and the target dynamics. Depending on the meaning put into the metric, its target dynamics can be positive. It is a tolerance level above the critical level or a negative level below the critique.
Agile software development is a flexible approach to software development. That uses in small teams.
The entire project process divides into iterations. It is short cycles of two to three weeks. Each iteration solves a series of tasks:
- Requirements analysis;
- Testing, and documentation.
At the end of each iteration, the team analyzes the results and changes priorities for the next cycle. As a result, each series creates a mini-product or a separate part that goes on its own and is ready for launch.
The client, first of all, needs a working product, not beautiful presentations. That is why Agile focuses on making the product as ready for use as possible. It deals with neglecting technical documentation and reporting.
Thanks to the use of metrics, it is possible to track the moments of quality degradation. It is enough to find: its causes and identify the most trouble spots in the system. Besides, numerical indicators can help planning the expenditure of resources for further development.
Managing Software Quality
Before you start developing software, you must plan the requirements for it:
- Functionality (the software must meet the needs of the user – to perform functions);
- Efficiency (correlation between the quality of software functioning and its resource requirements);
- Mobility (portability, software portability for different architectures and platforms);
- Reliability (software must be fault-tolerant).
Development of software architecture must make before coding. During coding, it is necessary to follow compliance with the agreements. Documentation may develop with coding as well as after it. Thus, managing software quality performs during the whole software life cycle.
If implemented and interpreted, metrics can be a powerful tool for project managers.