Maintainability metrics in software engineering

Software reliability is an essential connect of software quality, composed with functionality, usability, performance, serviceability, capability, installability, maintainability, and documentation. Software metrics software engineering definitions measure quantitative indication of extent, amount, dimension, capacity, or size of some attribute of a product or process. Maintainability is a multifaceted quality attribute each of the facets must be analyzed to objectively measure it. Software metrics are measures of the success of a software process. Calculate code metrics visual studio microsoft docs. Measurements of software maintainability semantic scholar. A measurement is an manifestation of the size, quantity, amount or dimension of a particular attributes of a product or process. As the technical dimension of maintainability is a quality attribute of a system similar to security or safety research on software maintenance adopted many ideas from the broader field of software quality.

A programming team will perform four types of maintenance on new deployments or enhancements. Assessing maintainability metrics in software architectures using. Measuring software maintainability is nontrivial and there exists no single metric to measure it accurately. Software metrics are valuable for many reasons, including measuring software performance, planning work items, measuring productivity, and many other uses. Software maintainability is defined as the ease with which a software system or a. Maintainability refers to the ease with which you can repair, improve and understand software code. Product metrics in software engineering geeksforgeeks. Software measurement is a titrate impute of a characteristic of a software product or the software process.

Master thesis a model for measuring maintainability based on. Maintainability and flexibility at the software level are of predominant importance to drive innovation at the business process level. Maintainability is itself a measure of the ease to modify code, higher maintainability means less time to make a change. Though frustrating, the quest of quantifying software reliability has never ceased.

The goal behind using precise metrics and measurement in software engineering is to identify and control what can affect software development and the project as a whole. 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. I find the visual studio code metrics to be quite decent for providing a quick maintainability metric. However, existing definitions of maintainability, such as the. Maintainability metrics for sbss download table researchgate. Number of errors metric quantitative measure of degree to which a system, component or process possesses a given attribute. Morris, bsee, msse, smieee, mincose, boeing technical fellow retired for systems reliability maintainability and testability and systems engineering. Mi and minc maintainability index virtual machinery. Maintainability and reliability work together is developing design solutions for a system. Software maintainability means the ease with which these operations can be carried out. The following list shows the code metrics results that visual studio calculates. Top 10 software development metrics to measure productivity.

Software maintainability is the degree of an application to. Regression testing has been widely used during software evolution to ensure that software changes do not bring new regression faults. In this context, objectoriented software maintainability oosm has been studied through years, and many researchers have proposed a large number of metrics to measure it. Morris consulting reliability maintainability, systems. Until now, we still have no good way of measuring software reliability.

Low defect counts are especially important for developing a reliable codebase. Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications. If you want to find out more about java metrics you can read our full tutorial here or you can read the individual sections on system and package level metrics, class level metrics and method level metrics. Complementarily, the software maintainability is considered a software attribute playing an important role in quality level. Various activities carried out during maintenance include the addition of new features, deletion of obsolete code, correction of errors, etc. Using metrics to evaluate software system maintainability ieee. Software reliability electrical and computer engineering. Modern software systems keep evolving to refine software functionality and maintainability, as well as fixing software flaws.

Kan discusses several metrics in each of three groups of software quality metrics. Software maintainability metrics help identify problem areas software maintainability requires more developer effort than any other phase of the development life cycle. Pdf relation between software metrics and maintainability. The results of the methods have been validated with the use of maintainability metrics results for the source code of the drs software system. Objective metrics can be computed by a single expert, but subjective metrics should be determined by a group of experts. Addition of new functionality or the adaptation of software to meet new requirements for the customer needs. Use maintainability analysis to assess the design for ease of maintenance, and collaborate with human factors engineering hfe smes to assess impacts to maintainers. He has over 35 years experience in reliability and maintainability of military and commercial aerospace and medical systems, and years of design experience in medical diagnostic.

The term software quality metrics illustrate the picture of measuring the software qualities by recording the number of defects or security loopholes present in the software. Measuring software maintainability quandary peak research. The software metrics study was initiated to propose metrics of the maintainability of the software produced by the mdsf project. Moreover, the decrease of the cost of maintenance is a basic aim of software quality. Classifying metrics for assessing objectoriented software. Kemerer, cyclomatic complexity density and software maintenance productivity, in ieee transactions on software engineering, vol. Specifically, using software development metrics contributes to the following. Collectively, they affect economic lifecycle costs of a system and its utility. Coding standards are a way to achieve high maintainability and are developed as a result of previous experiences, they arent universal and are dependent on developer preferences. Schneidewind is professor emeritus of information sciences in the department of information sciences and the software engineering group at the naval postgraduate school. Engage with the integrated logistics support ils ipt to help craft the maintenance strategy, and discuss levels of repair and sparing. Developing maintainable software software sustainability.

Bass player domotica software architect hardware hacker infrastructure engineer. One of the exit criteria of the engineering, manufacturing and development emd phase is demonstrating reliability, availability, maintainability, and sustainment features are included in the design of a. Software reliability is hard to achieve because the complexity of software turn to be high. Measurement is commonplace in other engineering field, but not in software engineering. Reliability, availability, and maintainability ram are three system attributes that are of tremendous interest to systems engineers, logisticians, and users. Since maintenance costs eclipse other software engineering. In the latter case, some methodology like the delphi method boeh81 should be used to derive conclusions from a set of evaluations. This paper proposes aspectoriented software maintainability metrics and a set of aspect.

Why is it important to measure maintainability and what are the best. In this chapter from his book on software quality engineering, stephen h. Taking coupling metrics into account during development of a software system can help to increase the systems maintainability and understandability 4. In addition to the software source code metrics, the gini coefficient was also used. The maintainability of software depends on a few different factors. Aim of this paper is providing a baseline for further. Maintainability measures how easily software can be maintained. Objectoriented metrics that predict maintainability, journal of systems and software, 232, pp. Software maintenance is a phase in the software development cycle that starts after the customer has received the product. Using metrics to evaluate software system maintainability, ieee computer, 1994, 278, pp. Computers and software are just as critical to engineering as a cnc machine is to your production capability. In software engineering, software maintenance is one of the most expensive and timeconsuming activities. A software metric is a measure of software characteristics which are measurable or countable. The software engineering community has proposed over two hundred software metrics.

Reliability, availability, and maintainability sebok. Review of software maintainability prediction and metrics, empirical software engineering and measurement, esem 2009. Maintainability index calculates an index value between 0 and 100 that represents the relative ease of maintaining the code. Within the software development process, many metrics are that are all connected. Customer satisfaction engineerings customer, not end user supplier defect rate often the supplier is whoever is supplying specs and info to engineering technical metrics. Software maintenance is an expensive activity that consumes a major portion of the cost of the total project. Software is more easily maintainable if it has highquality code that is readable and welldocumented, so keep good.

It relates to the size, consistency, structure, and complexity of the codebase. There exist metrics that can help developers measure and analyze the maintainability level of a project objectively. Although many companies have upward of 100 key performance indicators kpis, only a small number can be significantly improved upon with a stated initiative. We certainly cannot claim completeness in this study. Assessment of maintainability metrics for objectoriented.

However, quality measurement is not restricted to counting of defects or vulnerabilities but also covers other aspects of the qualities such as maintainability. In this paper, software metrics which have been proposed for maintainability were used. We quote the ieee standard glossary of software engineering terminology. The university of tennessees reliability and maintainability center rmc has started its six metric areas to best practices initiative. He also describes the key metrics used by several major software developers and discusses software metrics data collection. Maintainability means fixing, updating, servicing and to modify the system or update the software for performance improvements or for the correction of faults. Various research works are provided to support measuring the objectoriented software, but only few studies are set up to support measuring the aspectoriented software. Software maintainability is defined as the ease with which a software system or a component can be modified, to correct faults, improve performance or other attributes, or adapt to a changed environment. Reliability, availability, and maintainability the mitre.

The ease with which a software system or component can be modified to correct faults, improve performance or other attributes, or adapt to a changed environment. Why is it important to measure maintainability and what. That attribute can also be described as the fitness for purpose of a piece of software or how it compares to competitors in the marketplace as a. He is now doing research and publishing in software reliability and metrics with his consulting company computer research. Although crucial, regression testing can be extremely costly. The hypothesis is that maintainability decreases as the number of faults in a module increases.

In the context of software engineering, software quality refers to two related but distinct notions. Measuring software maintainability is nontrivial and there exists no single metric to. Maintainability has previously been described mainlyin two ways, either informally or as a function of directly measurable attributes. More formally, the ieee standard glossary of software engineering terminology defines maintainability as.

There are many others that have built on this work to refine cc density based metrics. Dynamic metrics are usually quite closely related to software quality attributes. Pdf how to effectively define and measure maintainability. Software maintainability free demo video explanation. For information about how to generate code metrics data in visual studio, see how to. In theory, metrics can help to improve the development process and provide companies with information that makes future projects more predictable, efficient, etc. Its objectives are to define the concept of maintainability, to describe the factors influencing it and to define criteria by which maintainability can be quantitatively. Ieee xplore, delivering full text access to the worlds highest quality technical literature in engineering and technology. Maintenance metrics for the object oriented paradigm, in proceedings of the first international software metrics symposium, ieee, pp. Bengtsson, p towards maintainability metrics on software architecture. Maintainability can be defined as the ease with which a software product can be modified to correct errors, to meet new requirements, to make future maintenance easier, or adapt to the changed environment. Software availability can be measured using the mean time between failures mtbf. Software engineering software reliability javatpoint.

3 210 33 91 142 734 544 219 350 649 1439 958 49 1186 1310 1243 1478 111 1230 506 1103 307 1509 788 480 484 328 453 1149 1348 906