Criteria for software maintainability

Software complexity is widely regarded as an important determinant of software maintenance costs boehm 1981. Please help to improve this article by introducing more precise citations. Citeseerx document details isaac councill, lee giles, pradeep teregowda. What is more, the software complexity of a given system is one of the main longterm. For each measurement area, the threshold measurement values are provided that are required for eligibility of certification at the level of. Software that is written without maintainability in mind requires about four times as much effort to maintain than it did to develop. Fuzzy layered approach for maintainability evaluation of. Maintainability the ability to identify and fix a fault within a software component is what the maintainability characteristic addresses. The maintainability index is calculated with certain formulae from linesofcode measures, mccabe measures and halstead complexity measures. What characteristics or features make code maintainable. Software maintainability is defined in the ieee standard glossary of software engineering terminology as 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. Nevertheless, many criteria are likely to be stable for quite some time. For this reason, many applications are replaced simply because the overhead to modify them becomes prohibitive. Maintainability testing shall use a model of the maintainability requirements of the softwaresystem.

For determining the weight values for each selected maintainability criteria, swara a decision making approach is used. The importance of maintaining software updates the main benefits of maintaining software updates are that security remains on point, usability is firing on all cylinders, and your software is compatible with other all the software you use. A short, nonexhaustive list of the areas upon which. Maintainability means fixing, updating, servicing and to modify the system or update the software for performance improvements or for the correction of faults. In other software quality models this characteristic is referenced as supportability. Scalability how well the software system is able to expand its processing capabilities upward and outward to support business growth. With maintainable software, it is easy to modify parts of the software, meet user or customer requirements in a shorter time and manage the software efficiently. Fuzzy layered approach for maintainability evaluation of object oriented software system neha goel, sanjay kumar dubey, prof. During the system development life cycle sdlc this phase requires more development effort than any other phase. The criteria used by these 20% to check for maintainability differed significantly and ranged from objectorientation, cyclomatic complexity 18 limited numbers of lines per method, descriptive identifier naming, down to service oriented architectures or omgs modeldriven architecture. For example, maintainability but each of the factors is to be measured to check for the content and the quality control. This model classifies all software requirements into 11 software quality factors. Maintainability assessment for software by using a hybrid fuzzy multi criteria analysis approach. What one person considers maintainable may be very different to anothers view in some respects but some qualities i think it should include are.

The software metrics study was initiated to propose metrics of the maintainability of the software produced by the mdsf project. Maintainability are the relative costs of fixing, updating, extending, operating and servicing an entity over its lifetime. Maintainability is a requirement of the cei and swci specifications. Reliability, availability, maintainability ram study, on. Introduction many resources are spent on software maintenance. Maintainability how easily faults in the software system can be found and fixed. Real world modelling independence ofspecification modelling which. The maintainability testing shall be specified in terms of the effort required to effect a change under each of the following four categories. Materiel systems also include, but are not limited to. Aqclab maintainability evaluation and certification iso. Measuring software maintainability is nontrivial as there is no single metric to state if one application is more maintainable than the other and there is no single tool that can analyze your code repository and provide you with an accurate answer either. Aqclab maintainability evaluation and certification. 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 worthwhile product. In general any software development manager is familiar with this definition of effort as it applies to creating software.

Approximately 75 percent of the cost is related to software maintenance. Materiel systems also include, but are not limited to, standalone or embedded automatic data pro. We measure and analyze your source code based on isoiec 25010. Reliability, availability, maintainability ram study, on reciprocating compressors api 618. One of the challenges in applying software test automation successfully in your projects is to select a most appropriate automated testing tool or framework. Maintainability and reliability work together is developing design solutions for a system. Developing maintainable software software sustainability. Maintenance in spl should be more complex that in systems not. The software maintainability index mi is a singlevalue indicator for the maintainability of a software system.

Reliability and maintainability definitions rmqsi knowledge. The ease with which maintenance of a functional unit can be performed in accordance with prescribed requirements. Maintainability is the most demanded characteristic nowadays by software clients that look for maintainable software that can be adapted to meet changes in business needs in an easy and simple way. How to effectively define and measure maintainability.

The 11 factors are grouped into three categories product operation, product revision, and product transition factors. Reducing the software development and maintenance costs is the main objective of objectoriented design. May 20 learn how and when to remove this template message in engineering, maintainability is the ease with which a. Developing maintainable software helps reduce technical debt. Ajay rana abstract a large number of software products enter the maintenance phase due to the growing application of information systems. 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 evaluated. Factors maintainability is a component of a more general concept, software quality, which is described in terms of a hierachy see figure 1 em87 of factors, criteria and metrics.

Addition of new functionality or the adaptation of software to meet new requirements for the customer needs. Therefore, measurements must be used to measure software quality, e. A definition of maintainability with a few examples. Restructuring the data and code of the software are implemented in preventive maintenance. Criteria based assessment mike jackson, steve crouch and rob baxter criteria based assessment is a quantitative assessment of the software in terms of sustainability, maintainability, and usability. We argue that the existing software design methodologies are not properly developed based on criteria for easy software maintenance at later stages. This is a very important parameter as the system is subjected to changes throughout the software life cycle. Criteriabased assessment mike jackson, steve crouch and rob baxter criteriabased assessment is a quantitative assessment of the software in terms of sustainability, maintainability, and usability.

Correctness, reliability, efficiency, integrity, usability. Pdf an approach based on maintainability criteria for building. It identifies a set of software measures based on correlations published in empirical studies. One example is software maintainability, which has been the subject of considerable research and is believed to be a critical determinant. Introduction and evaluation of maintainability of an. It is a challenging decision as you have many tools to choose from and a number of requirements to satisfy, and automated testing tools may have hidden problems you dont see or overlook at the time of making decision.

Maintainability is the measure of ability to successfully repair or fix the product after manufacturing, usually in the field, and over time. Modifiability how easily changes to the system can be developed and deployed in an efficient and cost effective manner. Software design for maintainability establish design criteria for maintainable software products to increase system availability and decrease overall development and operating costs benefits by designing software products that are maintainable we can update and enhance fielded software much faster and at lower cost. The value transformation staff have experience using scrum for embedded software projects as well as adaptations to the line management with great increases in efficacy. Preventive maintenance helps the software to become more scalable, stable, understandable, maintainable. Reliability, availability, and maintainability sebok. This document is a first step towards the construction of a maintainability prediction model. This maintenance acts as medicine to prevent the problems. An approach based on maintainability criteria for building aspectoriented software design model.

But software quality should not and cannot be a reactive action to external defects. It specifically focuses on the identification of equipment design. Collectively, they affect economic lifecycle costs of a system and its utility. In software engineering, these activities are known as software maintenance cf. These changes may be necessary for the correction of faults, adaptation of the system to a meet a new requirement, addition of new functionality, removal of existing functionality or corrected when errors or deficiencies occur and can be perfected, adapted or action taken to reduce further. Several models of software quality factors and their categorization have been suggested over the years.

Reliability, availability, and maintainability the mitre. Among primary maintainability criteria in software development methodology are. Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications. Measuring software maintainability is nontrivial and there exists no single metric to measure it accurately. Therefore, with a set of software design criteria for maintainability, software is believed to be more maintainable. This can inform highlevel decisions on specific areas for software improvement. Keywords software metrics, halstead measure, maintainability, modifiability, software architecture, software deterioration. Specific software ram tools can also be used as process reliability modelling, plant wide. Maintainability maintenance is the activity of modifying a software product after initial. Closely related concepts in the software engineering domain are evolvability, modifiability, technical debt, and code smells.

A measure of effort must include time, resources and expertise. The focus of this study is to evaluate software maintainability. Software quality is built from the ground up, with design and development methodologies, and with a special focus on testability, coverage, and. The classic model of software quality factors, suggested by mccall, consists of 11 factors mccall et al. Thus, producing software that is easy to maintain may potentially save large costs. Pdf how to effectively define and measure maintainability. Maintainability models describe the time necessary to return a failed repairable system to service. Criteria and guidelines to improve software maintainability in. The maintainability of a system can be measured in. Maintainability is impacted by code readability or complexity as well as modularization. Software maintainability is the degree of an application to repaired or enhanced it. They are usually the sum of a set of models describing different aspects of the maintenance process e. An entity with relatively low costs in these areas is considered maintainable whereas an entity with high costs may be considered unmaintainable or high maintenance. Maintainability design checklist the following is a maintainability design checklist for coal mining equipment.

Maintainability assessment for software by using a hybrid. Software design criteria for maintainability mafiadoc. Software quality is the result of the user experience. It was proposed by oman and hagemeister in the early nineties 1. The criteria used by these 20% to check for maintainability differed significantly and ranged from objectorientation, cyclomatic. Maintainability is defined as the probability of performing a successful repair action within a given time. Cqse blog why we dont use the software maintainability. The logical complexity of the source code has a strong correlation to the maintainability of the resultant software 8, 9. Increased software complexity means that maintenance and enhancement projects will take longer, will cost more, and will result in more errors.

Reliasoft offers software blocksim and training that address the topic of system maintainability analysis. If you build a valuable product that works perfectly but is difficult to modify and adapt to new requirements, it will not survive in todays. The maintainability index is computed by combining four traditional metrics. Additionally, the ram attributes impact the ability to perform the intended mission and affect overall mission success. Software design criteria for maintainability modelling activities, simplicity of use this reduces training requirements and comprehensive supporting tools for example, uk government has adopted ssadm as a standard method for all it projects. Also refers to the action of detecting and isolating failures or faults. A factor is a toplevel expression of software status for management reporting. Maintainability is defined as the ease with which changes can be made to a software system. This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. Software quality is built from the ground up, with design and development methodologies, and with a special focus on testability, coverage, and flexibility.

Reliability, availability, and maintainability entrance criteria for test events 5. Because software performance affects the system ram performance requirements, software must be addressed in the overall ram requirements for the system. The standard definition of reliability is the probability of zero. In this study, three criteria called reliability, availability and maintainability ram have been employed to compare to future maintenance strategies. Software product quality is a major concern for those that develop, maintain, enhance, acquire, or use software products or softwareintensive systems. Reliability, availability, and maintainability ram are three system attributes that are of tremendous interest to systems engineers, logisticians, and users. 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 system. Maintainability maintenance is the activity of modifying a software product after initial delivery. Maintainability is the ease with which a software product can be modified. For manufacturing entities, many of the maintainability requirements are born out, at least in part, by the manufacturing and assembly environment of the customer organization. Maintainability is a multifaceted quality attribute each of the facets must be analyzed to objectively measure it. The paper presents a model for estimating the maintenance value for any project developed in agile environment, as maintainability of the software product plays a vital role for defining quality of the product. Software analysis based on international standards. Why we dont use the software maintainability index.

Reliability, availability, and maintainability ram or rma are system design attributes that have significant impacts on the sustainment or total life cycle costs lcc of a developed system. Software metrics for predicting maintainability software metrics study. Back to solutions software analysis based on international standards. Aqclab offers a maintainability evaluation service conforming to isoiec 25000 that provides knowledge on the maintainability of your software. Reliasoft offers software blocksim and training that address. The wear or accumulated stress mechanisms that characterize hardware failures do not cause software failures. We evaluated each metric according to the following list of criteria derived from bbkl78 and. This definition implies that software maintainability depends on various. Nonfunctional requirements maintainability nonfunctional requirements maintainability. Assessing software system maintainability using structural. The hardware, software, or other documented means used to determine that a malfunction has occurred and to isolate the cause of the malfunction.

Mission objectives include safety, mission success and sustainability criteria. 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. Maintainability assessment for software by using a hybrid fuzzy multicriteria analysis approach. Nonfunctional requirement examples requirements quest.

146 100 1044 1042 652 631 419 787 249 1145 1157 903 731 398 1303 1203 547 1339 929 495 67 1059 1011 985 1368 924 983 731 585 598 1 182 403 499 1206 1188 619 1195 567 407 1262 726 28 138 391 1256 1321 364