The process of modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment ieee 90a. More formally, the ieee standard glossary of software engineering terminology defines maintainability as. The authors define metrics for measuring the maintainability of a target software system and discuss how those metrics can be combined into a single index of. In some cases, maintainability involves a system of continuous improvement learning from the past in order to improve the ability to maintain systems, or improve reliability of systems based on maintenance experience. Software maintenance is a part of software development life cycle. In engineering, maintainability is the ease with which a product can be maintained in order to. The formal definition of software maintenance given by ieee 1998 is modification of a software product after delivery to correct faults, to improve the performance or other attributes, or to adapt to a modified environment. Software maintainability estimation in agile software development. This definition implies that software maintainability depends on various. We can advise you on the design and development of maintainable software that will benefit both. Methods of defining an srs are described by the ieee institute of electrical and electronics engineers specification 8301998.
Ieee gives software engineering definition as the application of a systematic, disciplined quantifiable approach to the development, operation and maintenance of software that is the application of engineering to software. As a result, they focus mainly on internal attributes and their implications instead of external attributes, as is our aim. There are number of reasons, why modifications are required, some of them are briefly mentioned below. Nonfunctional requirement examples requirements quest. Problem understanding the ieee definition of software. This part of isoiec ieee 24748 is a guideline for the application of isoiec ieee 12207. 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. Measuring software maintainability is nontrivial and there exists no single metric to measure it accurately. Foreword this foreword is not a part of ieee std 610.
Problems arise when a software generally exceeds timelines, budgets, and reduced levels of quality. Thus, producing software that is easy to maintain may potentially save large costs. Developing maintainable software software sustainability. Maintainability and flexibility at the software level are of predominant importance to.
Developing maintainable software software sustainability institute. Using quality models in software package selection ieee. Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes a common perception of maintenance is that it merely involves fixing defects. Maintainability requirements address the user concern for how easy it is to upkeep and repair the system.
Software maintenance in software engineering is the modification of a software product after. The author proposes a technique called control and definition modularization cdm, which derives a systematic program layout from a given structure chart using the concepts of control and definition modules. Deep learning approach for software maintainability. Atml standards and integration with maintainability minimalv2. Gives the standard definition of software reliability engineering, and others. Internal or personal use of this material is permitted. Software maintenance is widely accepted part of sdlc now a days. This perception is perpetuated by users submitting. The ieee standard glossary of software engineering terminology defines software maintenance as follows. Analyzability quantification model of object oriented design. 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. Software maintenance the process of modifying a software system after delivery to correct faults, improve performance or adapt it to a changed environment ieee definition actual changesupdates to the software code.
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. Software engineering is a detailed study of engineering to the design, development and maintenance of software. In the context of software engineering, software quality refers to two related but distinct notions. What is reliability, availability and serviceability ras. Ability of a computer program to be retained in its original form, and to be restored to that form in case of a failure. The standard definition of reliability is the probability of zero. There exist metrics that can help developers measure and analyze the maintainability level of a project objectively. This material is posted here with permission of the ieee.
Software maintenance required for extra effort than any. Join ieee reliability society the reliability society is a technical society within the ieee, the worlds leading association for the advancement of technology. From the software engineering definition by the ieee, which are the main characteristics included in the definition. Below describe some of the factors and the range of impact on software. This standard provides requirements for establishing a maintainability program and guidelines for the preparation of a maintainability program plan. A survey of key factors affecting software maintainability. Software maintainability is defined as the degree to which an application is understood, repaired, or enhanced. Ieee 829 defines the standards for software analysis and citations.
Cs 319 software engineering midterm study guide flashcards. Manageabilityhow efficiently and easily a software system can be monitored and maintained to keep the system performing, secure, and running smoothly. Pair programming also means both participants wont be distracted by. Maintainability is the ease with which faults in a software system can be found and fixed. Ieee standards for stationary battery maintenance and. Ieee 829 is a standard for software testing by the institute of electrical and electronics engineers ieee that specifies all the stages of software testing and documentation at each stage. Things like compliance with coding standards that includes software maintainability. This standard defines the activities and tasks of software maintenance, and provides maintenance planning requirements.
Parameters such as operating speed, response time, availability, portability, maintainability, footprint, security and speed of recovery from adverse events are evaluated. Software maintenance is defined in the ieee standard for software maintenance, ieee 1219 ieee 1219, as the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment. 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. Keep your code clean with these essential tips for software quality.
The maintainability definition according to ieee glossary of software engineering is the ease with which a software system or component can be modified to correct faults, get better performance or other attributes, or adapt to a change environment6,23. It focuses on guidance for the technical processes for software engineering as presented in isoiec ieee 12207. Definition of criteria to identify maintainability problems and elaboration of guidelines for improving them are needed to guide software engineers and. Maintainability is defined as the ease with which changes can be made to a software system. A read is counted each time someone views a publication summary such as the title, abstract, and list of authors, clicks on a figure, or views or downloads the fulltext. The process for managing and executing software maintenance activities is described. Ieee is the trusted voice for engineering, computing, and technology information around the globe. The problem of maintaining software is widely acknowledged in industry, and much has been written on how maintainability can be facilitated by e. Reliability, availability, and maintainability sebok. Software maintainability what it means and how to achieve it abstract. 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. The objective of software maintenance is to modify existing software while preserving its integrity.
Ieee in computing is widely popular for the development of standards for computer networking and its suite of services. Software maintainability predicts changes or failures that may occur in software after it has been deployed. When the real world changes, the software requires alteration wherever possible. The standard also addresses maintenance activities prior to delivery of. Maintainability definition of maintainability by the free. It stands for all the modifications and updations done after the delivery of software product. The maintainability index is calculated with certain formulae from linesofcode measures, mccabe measures and halstead complexity measures. Measurements of software maintainability semantic scholar. Software maintainability or simply maintainability is defined as the ease with which a software system or component can be modified to correct faults, improve performance or other attributes, or.
The institute of electrical and electronics engineers ieee sponsors an organization devoted to reliability in engineering known as the ieee reliability society ieee rs. The maintainability definition according to ieee glossary of software engineering is a. The ieee 1219 standard was superseded in june 2010 by p14764. The term hardware describes the physical aspects of computers and related devices. Maintainabilitythe 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 ieee 1990. Ieee 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. Additionally, the ram attributes impact the ability to perform the intended mission and affect overall mission success. The reliability society provides a professional home for specialty engineering communities or disciplines covering not only reliability engineering, but also integrity, system safety, prognostics and health management phm testability, system security, human system interface his, human factors hf, maintainability, and supportability engineering disciplines, software engineering with a.
Metrics for assessing a software systems maintainability ieee xplore. We are a volunteer group of professionals engaged in assuring reliability in the engineering disciplines of hardware, software, and human factors. Availability is the ratio of time a system or component is functional to the total time it is required or expected to function. There are two components to the system availability formula.
How to effectively define and measure maintainability. Software is a general term for the various kinds of program s used to operate computer s and related devices. Rac96 both kinds of modeling techniques are based on observing and accumulating. Terms systematic, disciplined, quantifieable in the. Ieee standard for software maintenance ieee std 12191998. Software maintenance consists of correcting faults.
The impact of maintainability on componentbased software systems. The maintainability of software depends on a few different factors. May 28, 2017 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. The process of testing to determine the maintainability of a software product. Software sustainment under secretary of defense for. Scalability how well the software system is able to expand its processing capabilities upward and outward to support business growth. What is the ieee definition of software engineering answers. Software maintainability is important because it is approximately 75% of the cost related to a project. Why is it important to measure maintainability and. Software reliability engineering sre is the quantitative study of the operational behavior of softwarebased systems with respect to user requirements concerning reliability ieee95. Maintainability definition of maintainability by the.
Market conditions policies, which changes over the time, such as taxation and. In software engineering, these activities are known as software maintenance cf. The ieee defines software engineering in the following way. The following tasks are required to be incorporated into the maintainability program. Also for each definition there is a reference of ieee or iso mentioned in brackets. Software engineering was introduced to address the issues of lowquality software projects.
Reliability, availability, and maintainability ram are three system attributes that are of tremendous interest to systems engineers, logisticians, and users. Another definition 2 for software maintainability is as the ease with which a software system or component can be modified to correct faults, improve performance or other attributes, or adapt to. The entity uses procedures, people, software, data and infrastructure to. Modifiability how easily changes to the system can be developed and deployed in an efficient and cost effective manner. Collectively, they affect economic lifecycle costs of a system and its utility. To know with the basic definitions of software testing and quality assurance this is the best glossary compiled by erik van veenendaal. How to calculate and improve system availability fiix. A particular architecture of structured modular design using. Ieee standard glossary of software engineering terminology. Ieee and its members inspire a global community to innovate for a better tomorrow through highly cited publications, conferences, technology standards, and professional and educational activities.
Management, 2015 reliability and maintainability symposium, january, 2015. A control module includes processes for handling a conceptual data object not directly implementable. Railway applications specification and demonstration of reliability, availability, maintainability and safety rams this international standard defines rams in terms of reliability, availability, maintainability and safety and their interaction. Since it deals with the degree to which an application may be understood, repaired, or enhanced, it also takes into account the overall cost of the project. Bring new developers on board your project more formally, the ieee standard glossary of software engineering terminology defines maintainability as. The purpose of software maintenance is defined in the international standard for software maintenance.
More formally, the ieee standard glossary of software engineering. This paper discusses the third topic since it is the real key to the development of maintainable software. Measuring and monitoring maintainability is a must for mission critical applications. Such permission of the ieee does not in any way imply ieee endorsement of any of reliasoft corporations products or services. Closely related concepts in the software engineering domain are evolvability, modifiability, technical debt, and code smells. Software engineering is the application of a systematic, disciplined, quantifiable approach to the design, development, operation, and maintenance of software, and the study of these approaches.
Maintainability how easily faults in the software system can be found and fixed. The basis for the maintenance process and its activities is consistent with isoiec ieee 12207. However, one study indicated that over 80% of maintenance effort is used for noncorrective actions. Ieee standard glossary of software engineering terminology ieee std 61 0. International journal of advanced research in computer and. Another definition, coined by gerald weinberg in quality software.
Attendance at the symposium is a unique opportunity for the system safety engineer to learn new and innovative ideas proposed by complimentary disciplines and how these ideas can be leveraged to enhance their own system safety efforts. Use of this standard is not restricted by size, complexity, criticality, or application of the software product. Maintainability is a multifaceted quality attribute each of the facets must be analyzed to objectively measure it. 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. Ieee 829 is also known as the ieee standard for software and system test documentation. Software maintainability free demo video explanation. The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software, that is, the application of engineering to software. Jul 18, 2019 higher maintainability can be achieved with a variety of strategies, such as better training and knowledge transfer, maintenance checklists, improved troubleshooting, smarter inventory management, and a bigger focus on a modular design.
Its main purpose is to modify and update software application after delivery to correct faults and to improve performance. Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes. The study was targeted at the software quality attribute of maintainability as opposed to the process of software maintenance. Ieee develops many different standards, such as ieee 802 and ieee 802. Reliability, availability, and maintainability the mitre. Analyzability quantification model of object oriented.
1313 632 1022 551 1528 426 1236 97 1531 533 564 446 914 937 30 1102 1396 1342 70 1343 631 96 1481 368 1246 1574 1176 81 1218 937 475 479 691 1174 276 239 714 129 201 298 1449 1098 956