The maintainability testing shall be specified in terms of the effort required to effect a change under each of the following four categories. Maintainability assessment for software by using a hybrid. The maintainability of a system can be measured in. Maintainability maintenance is the activity of modifying a software product after initial. Measuring software maintainability is nontrivial and there exists no single metric to measure it accurately. For determining the weight values for each selected maintainability criteria, swara a decision making approach is used. 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. 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. In this study, three criteria called reliability, availability and maintainability ram have been employed to compare to future maintenance strategies. Introduction many resources are spent on software maintenance. A short, nonexhaustive list of the areas upon which. 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. Maintainability is a multifaceted quality attribute each of the facets must be analyzed to objectively measure it.
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. Reliasoft offers software blocksim and training that address the topic of system maintainability analysis. Software maintainability is the degree of an application to repaired or enhanced it. Collectively, they affect economic lifecycle costs of a system and its utility.
Fuzzy layered approach for maintainability evaluation of. Reliability, availability, and maintainability sebok. Software quality is the result of the user experience. An approach based on maintainability criteria for building aspectoriented software design model. For this reason, many applications are replaced simply because the overhead to modify them becomes prohibitive. 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. In general any software development manager is familiar with this definition of effort as it applies to creating software.
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. Increased software complexity means that maintenance and enhancement projects will take longer, will cost more, and will result in more errors. Addition of new functionality or the adaptation of software to meet new requirements for the customer needs. Maintainability assessment for software by using a hybrid fuzzy multi criteria analysis approach.
Thus, producing software that is easy to maintain may potentially save large costs. 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. Pdf an approach based on maintainability criteria for building. The 11 factors are grouped into three categories product operation, product revision, and product transition factors. Maintainability testing shall use a model of the maintainability requirements of the softwaresystem. Preventive maintenance helps the software to become more scalable, stable, understandable, maintainable.
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. Therefore, measurements must be used to measure software quality, e. Modifiability how easily changes to the system can be developed and deployed in an efficient and cost effective manner. Reliability and maintainability definitions rmqsi knowledge. 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. Maintainability the ability to identify and fix a fault within a software component is what the maintainability characteristic addresses.
Developing maintainable software software sustainability. Materiel systems also include, but are not limited to, standalone or embedded automatic data pro. The software maintainability index mi is a singlevalue indicator for the maintainability of a software system. Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications.
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. Please help to improve this article by introducing more precise citations. The maintainability index is computed by combining four traditional metrics. Software complexity is widely regarded as an important determinant of software maintenance costs boehm 1981. What one person considers maintainable may be very different to anothers view in some respects but some qualities i think it should include are. 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. 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.
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. Software that is written without maintainability in mind requires about four times as much effort to maintain than it did to develop. Materiel systems also include, but are not limited to. The software metrics study was initiated to propose metrics of the maintainability of the software produced by the mdsf project. 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. 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. What characteristics or features make code maintainable.
Because software performance affects the system ram performance requirements, software must be addressed in the overall ram requirements for the system. This maintenance acts as medicine to prevent the problems. Back to solutions software analysis based on international standards. Specific software ram tools can also be used as process reliability modelling, plant wide. Cqse blog why we dont use the software maintainability. Real world modelling independence ofspecification modelling which. May 20 learn how and when to remove this template message in engineering, maintainability is the ease with which a. 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. Aqclab maintainability evaluation and certification iso. Reliability, availability, maintainability ram study, on reciprocating compressors api 618. Maintainability design checklist the following is a maintainability design checklist for coal mining equipment. It was proposed by oman and hagemeister in the early nineties 1.
Maintainability is the ease with which a software product can be modified. A definition of maintainability with a few examples. In other software quality models this characteristic is referenced as supportability. The logical complexity of the source code has a strong correlation to the maintainability of the resultant software 8, 9. This model classifies all software requirements into 11 software quality factors. The criteria used by these 20% to check for maintainability differed significantly and ranged from objectorientation, cyclomatic. This definition implies that software maintainability depends on various. The ease with which maintenance of a functional unit can be performed in accordance with prescribed requirements. 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. Among primary maintainability criteria in software development methodology are. 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. Additionally, the ram attributes impact the ability to perform the intended mission and affect overall mission success. For each measurement area, the threshold measurement values are provided that are required for eligibility of certification at the level of. We measure and analyze your source code based on isoiec 25010.
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. 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. The focus of this study is to evaluate software maintainability. Criteria and guidelines to improve software maintainability in. Maintainability models describe the time necessary to return a failed repairable system to service. Reliasoft offers software blocksim and training that address. 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 how easily faults in the software system can be found and fixed. They are usually the sum of a set of models describing different aspects of the maintenance process e. During the system development life cycle sdlc this phase requires more development effort than any other phase.
Ajay rana abstract a large number of software products enter the maintenance phase due to the growing application of information systems. Maintainability is a requirement of the cei and swci specifications. Restructuring the data and code of the software are implemented in preventive maintenance. Citeseerx document details isaac councill, lee giles, pradeep teregowda. Software analysis based on international standards. Software product quality is a major concern for those that develop, maintain, enhance, acquire, or use software products or softwareintensive systems. Aqclab maintainability evaluation and certification.
Nonfunctional requirements maintainability nonfunctional requirements maintainability. We evaluated each metric according to the following list of criteria derived from bbkl78 and. Developing maintainable software helps reduce technical debt. Maintainability is defined as the ease with which changes can be made to a software system. 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. This is a very important parameter as the system is subjected to changes throughout the software life cycle. The wear or accumulated stress mechanisms that characterize hardware failures do not cause software failures.
Software metrics for predicting maintainability software metrics study. Nonfunctional requirement examples requirements quest. How to effectively define and measure maintainability. A factor is a toplevel expression of software status for management reporting. Maintainability is defined as the probability of performing a successful repair action within a given time. For example, maintainability but each of the factors is to be measured to check for the content and the quality control. Mission objectives include safety, mission success and sustainability criteria. Reliability, availability, and maintainability entrance criteria for test events 5. One example is software maintainability, which has been the subject of considerable research and is believed to be a critical determinant. It specifically focuses on the identification of equipment design. One of the challenges in applying software test automation successfully in your projects is to select a most appropriate automated testing tool or framework.
Why we dont use the software maintainability index. Nevertheless, many criteria are likely to be stable for quite some time. What is more, the software complexity of a given system is one of the main longterm. Maintainability maintenance is the activity of modifying a software product after initial delivery. Maintainability and reliability work together is developing design solutions for a system. 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. Also refers to the action of detecting and isolating failures or faults. 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. In software engineering, these activities are known as software maintenance cf. Software quality is built from the ground up, with design and development methodologies, and with a special focus on testability, coverage, and.
Software design criteria for maintainability mafiadoc. This document is a first step towards the construction of a maintainability prediction model. Maintainability means fixing, updating, servicing and to modify the system or update the software for performance improvements or for the correction of faults. Keywords software metrics, halstead measure, maintainability, modifiability, software architecture, software deterioration. Reducing the software development and maintenance costs is the main objective of objectoriented design. Maintenance in spl should be more complex that in systems not. Scalability how well the software system is able to expand its processing capabilities upward and outward to support business growth.
The hardware, software, or other documented means used to determine that a malfunction has occurred and to isolate the cause of the malfunction. Reliability, availability, and maintainability ram are three system attributes that are of tremendous interest to systems engineers, logisticians, and users. Reliability, availability, maintainability ram study, on. We argue that the existing software design methodologies are not properly developed based on criteria for easy software maintenance at later stages. Several models of software quality factors and their categorization have been suggested over the years. Fuzzy layered approach for maintainability evaluation of object oriented software system neha goel, sanjay kumar dubey, prof. Assessing software system maintainability using structural.
The classic model of software quality factors, suggested by mccall, consists of 11 factors mccall et al. Maintainability are the relative costs of fixing, updating, extending, operating and servicing an entity over its lifetime. This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. Pdf how to effectively define and measure maintainability. Reliability, availability, and maintainability the mitre.
Maintainability assessment for software by using a hybrid fuzzy multicriteria analysis approach. Maintainability is impacted by code readability or complexity as well as modularization. The maintainability index is calculated with certain formulae from linesofcode measures, mccabe measures and halstead complexity measures. Closely related concepts in the software engineering domain are evolvability, modifiability, technical debt, and code smells. Maintainability is the measure of ability to successfully repair or fix the product after manufacturing, usually in the field, and over time. Introduction and evaluation of maintainability of an. But software quality should not and cannot be a reactive action to external defects. Software quality is built from the ground up, with design and development methodologies, and with a special focus on testability, coverage, and flexibility. Aqclab offers a maintainability evaluation service conforming to isoiec 25000 that provides knowledge on the maintainability of your software. Approximately 75 percent of the cost is related to software maintenance. The standard definition of reliability is the probability of zero.
857 138 236 536 590 789 314 1065 982 1358 462 87 1448 1537 1000 1573 603 1323 1463 356 1022 1227 1624 1183 210 869 1464 352 400 477 15 957