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. We can advise you on the design and development of maintainable software that will benefit both. 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. Modifiability how easily changes to the system can be developed and deployed in an efficient and cost effective manner.
Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes. 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. Software engineering is a detailed study of engineering to the design, development and maintenance of software. 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. The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software, that is, the application of engineering to software. Software maintenance in software engineering is the modification of a software product after. 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. In telecommunication and several other engineering fields, the term maintainability has the following meanings. New terms are being generated and new meanings are being adopted for existing terms. Reliability, availability, and maintainability the mitre. This standard provides requirements for establishing a maintainability program and guidelines for the preparation of a maintainability program plan. What is the ieee definition of software engineering answers.
Ieee 829 is also known as the ieee standard for software and system test documentation. Nonfunctional requirement examples requirements quest. Join ieee reliability society the reliability society is a technical society within the ieee, the worlds leading association for the advancement of technology. 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. 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. However, one study indicated that over 80% of maintenance effort is used for noncorrective actions. Problems arise when a software generally exceeds timelines, budgets, and reduced levels of quality. Another definition, coined by gerald weinberg in quality software. Januaryfebruary 2003 ieee software 37 other authors have proposed quality models as a basis for software evaluation, but most of these proposals deal with measuring custom software instead of selecting software packages. 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. Ability of a computer program to be retained in its original form, and to be restored to that form in case of a failure. Additionally, the ram attributes impact the ability to perform the intended mission and affect overall mission success. We are a volunteer group of professionals engaged in assuring reliability in the engineering disciplines of hardware, software, and human factors.
International journal of advanced research in computer and. Maintainability how easily faults in the software system can be found and fixed. Software maintainability predicts changes or failures that may occur in software after it has been deployed. 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 maintainability of software depends on a few different factors. 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. Ieee standard glossary of software engineering terminology ieee std 61 0. Methods of defining an srs are described by the ieee institute of electrical and electronics engineers specification 8301998. 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. The impact of maintainability on componentbased software systems.
Software is a general term for the various kinds of program s used to operate computer s and related devices. Scalability how well the software system is able to expand its processing capabilities upward and outward to support business growth. Ieee standard glossary of software engineering terminology. This standard defines the activities and tasks of software maintenance, and provides maintenance planning requirements. Measuring and monitoring maintainability is a must for mission critical applications. Maintainability is a multifaceted quality attribute each of the facets must be analyzed to objectively measure it. Pair programming also means both participants wont be distracted by. The study was targeted at the software quality attribute of maintainability as opposed to the process of software maintenance.
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. It stands for all the modifications and updations done after the delivery of software product. Why is it important to measure maintainability and. The problem of maintaining software is widely acknowledged in industry, and much has been written on how maintainability can be facilitated by e. The entity uses procedures, people, software, data and infrastructure to. Metrics for assessing a software systems maintainability ieee xplore. From the software engineering definition by the ieee, which are the main characteristics included in the definition. Maintainability requirements address the user concern for how easy it is to upkeep and repair the system. The maintainability index is calculated with certain formulae from linesofcode measures, mccabe measures and halstead complexity measures. Developing maintainable software software sustainability institute.
Software reliability engineering sre is the quantitative study of the operational behavior of softwarebased systems with respect to user requirements concerning reliability ieee95. 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 following tasks are required to be incorporated into the maintainability program. 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. Reliability, availability, maintainability and safety. How to effectively define and measure maintainability. Deep learning approach for software maintainability. More formally, the ieee standard glossary of software engineering.
The maintainability definition according to ieee glossary of software engineering is a. The process for managing and executing software maintenance activities is described. Reliability, availability, and maintainability sebok. Developing maintainable software software sustainability. The ieee defines software engineering in the following way. The institute of electrical and electronics engineers ieee sponsors an organization devoted to reliability in engineering known as the ieee reliability society ieee rs. Definition of criteria to identify maintainability problems and elaboration of guidelines for improving them are needed to guide software engineers and. Maintainability and flexibility at the software level are of predominant importance to. Ieee is the trusted voice for engineering, computing, and technology information around the globe. Its main purpose is to modify and update software application after delivery to correct faults and to improve performance. Software sustainment under secretary of defense for. Ieee standards for stationary battery maintenance and. Cs 319 software engineering midterm study guide flashcards. Also for each definition there is a reference of ieee or iso mentioned in brackets.
This paper discusses the third topic since it is the real key to the development of maintainable 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. There are two components to the system availability formula. Measurements of software maintainability semantic scholar.
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. Software maintenance consists of correcting faults. Terms systematic, disciplined, quantifieable in the. There are number of reasons, why modifications are required, some of them are briefly mentioned below. Software maintenance is widely accepted part of sdlc now a days. How to calculate and improve system availability fiix. In the context of software engineering, software quality refers to two related but distinct notions. Ieee develops many different standards, such as ieee 802 and ieee 802. Software maintenance required for extra effort than any. 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.
A control module includes processes for handling a conceptual data object not directly implementable. Software maintainability free demo video explanation. Using quality models in software package selection ieee. 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. The ieee 1219 standard was superseded in june 2010 by p14764.
It focuses on guidance for the technical processes for software engineering as presented in isoiec ieee 12207. To know with the basic definitions of software testing and quality assurance this is the best glossary compiled by erik van veenendaal. As a result, they focus mainly on internal attributes and their implications instead of external attributes, as is our aim. Software maintainability is important because it is approximately 75% of the cost related to a project. Availability is the ratio of time a system or component is functional to the total time it is required or expected to function. Market conditions policies, which changes over the time, such as taxation and. Measuring software maintainability is nontrivial and there exists no single metric to measure it accurately. Such permission of the ieee does not in any way imply ieee endorsement of any of reliasoft corporations products or services. Things like compliance with coding standards that includes software maintainability. 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. 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.
Software maintainability what it means and how to achieve it abstract. 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. The ieee standard glossary of software engineering terminology defines software maintenance as follows. 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. When the real world changes, the software requires alteration wherever possible. Ieee in computing is widely popular for the development of standards for computer networking and its suite of services. Closely related concepts in the software engineering domain are evolvability, modifiability, technical debt, and code smells. 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. 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. The process of testing to determine the maintainability of a software product.
The basis for the maintenance process and its activities is consistent with isoiec ieee 12207. Software engineering was introduced to address the issues of lowquality software projects. The standard also addresses maintenance activities prior to delivery of. Ieee 829 defines the standards for software analysis and citations. 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. 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. Bring new developers on board your project more formally, the ieee standard glossary of software engineering terminology defines maintainability as.
Manageabilityhow efficiently and easily a software system can be monitored and maintained to keep the system performing, secure, and running smoothly. A survey of key factors affecting software maintainability. In engineering, maintainability is the ease with which a product can be maintained in order to. Internal or personal use of this material is permitted. Rac96 both kinds of modeling techniques are based on observing and accumulating. Reliability, availability, and maintainability ram are three system attributes that are of tremendous interest to systems engineers, logisticians, and users. Collectively, they affect economic lifecycle costs of a system and its utility. Thus, producing software that is easy to maintain may potentially save large costs. Software maintenance is a part of software development life cycle. More formally, the ieee standard glossary of software engineering terminology defines maintainability as. Ieee standard for software maintenance ieee std 12191998. 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. Software maintainability is defined as the degree to which an application is understood, repaired, or enhanced.
Analyzability quantification model of object oriented. A particular architecture of structured modular design using. Maintainability is defined as the ease with which changes can be made to a software system. This material is posted here with permission of the ieee. Software maintainability estimation in agile software development. Management, 2015 reliability and maintainability symposium, january, 2015. In software engineering, these activities are known as software maintenance cf. This part of isoiec ieee 24748 is a guideline for the application of isoiec ieee 12207. Problem understanding the ieee definition of software. The term hardware describes the physical aspects of computers and related devices. Analyzability quantification model of object oriented design. Use of this standard is not restricted by size, complexity, criticality, or application of the software product. There exist metrics that can help developers measure and analyze the maintainability level of a project objectively. Gives the standard definition of software reliability engineering, and others.
The purpose of software maintenance is defined in the international standard for software maintenance. The standard definition of reliability is the probability of zero. Below describe some of the factors and the range of impact on software. This perception is perpetuated by users submitting. The objective of software maintenance is to modify existing software while preserving its integrity. Keep your code clean with these essential tips for software quality. Maintainability definition of maintainability by the free. Maintainability is the ease with which faults in a software system can be found and fixed. 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. What is reliability, availability and serviceability ras. Maintainability definition of maintainability by the. 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. Parameters such as operating speed, response time, availability, portability, maintainability, footprint, security and speed of recovery from adverse events are evaluated. Foreword this foreword is not a part of ieee std 610.
247 1129 1353 68 723 73 796 1104 1604 983 818 1164 1418 1635 151 1203 1541 311 1143 947 1187 1550 1047 868 627 542 398 278 23 587 506 1075