Deening and Measuring Maintainability

Maintainability is a measure of the ease with which a software system can be maintained. In this paper we propose a quantitative deenition of maintainability, and discuss means to estimate the maintainability of a software system on the basis of a static analysis of its deliverables. Such an estimation eeort is useful inasmuchas it allows us to predict the maintainability of a software system at delivery time. All the quantitative studies that have been carried out in the past two decades indicate that maintenance has a staggering nancial impact on the software industry, and that it is a drain on human resources. Typical studies provide that on average a software organization spends sixty percent (60 %) of its man-month resources on software maintenance, and forty percent (40 %) on the development of new applications. Because of the increasing reliance on software in various application domains, new applications are being put into operation at a faster rate than older applications are phased out; as a result, the relative impact of maintenance is expected to increase in the future {although at a more moderate rate than was initially feared. This state of aaairs, as well as this trend, are clearly cause for concern. The key to dealing with this concern is to identify the factors that aaect the costs of maintenance, quantify them, and endeavor to control them in the framework of software maintenance management. In keeping with this premise, the Canadian Space Agency is sponsoring a research project at the University of Ottawa 10, 11, 12, 13], with the objective of deening a measure of maintainability and investigating means to evaluate it. The Canadian Space Agency participates in the Space Station program by providing the Mobile Servicing System; part of this system is the Manipulator Development Simulation Facility, which the agency is contracting out to private software rms. The intent of the agency is to impose maintainability requirements on future deliveries of software that is contracted out. To do so, the agency must provide a deenition of maintainability (as part of the requirements speciication), as well as means to estimate the maintainability of a software deliverable at delivery time (as part of acceptance testing). In the next section we analyse the costs of software maintenance, identify the major controllable cost factors, and discuss how these can be controlled in the case of the MDSF project within CSA. In section 3 we …

[1]  Richard A. Kemmerer,et al.  Complexity measures for assembly language programs , 1985, J. Syst. Softw..

[2]  M A Branch,et al.  Software maintenance management , 1986 .

[3]  Dennis G. Kafura,et al.  The Use of Software Complexity Metrics in Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[4]  John Stephen Davis,et al.  A Study of the Applicability of Complexity Measures , 1988, IEEE Trans. Software Eng..

[5]  Glenford J Myers,et al.  Reliable software through composite design , 1975 .

[6]  David N. Card,et al.  Measuring software design complexity , 1988, J. Syst. Softw..

[7]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[8]  Paul W. Oman,et al.  Using metrics to evaluate software system maintainability , 1994, Computer.

[9]  H. Dieter Rombach Design measurement: some lessons learned , 1990, IEEE Software.

[10]  Darrel C. Ince,et al.  Design metrics and software maintainability: An experimental investigation , 1991, J. Softw. Maintenance Res. Pract..

[11]  Anker Helms Jørgensen,et al.  A methodology for measuring the readability and modifiability of computer programs , 1980, BIT.

[12]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[13]  H. Dieter Rombach,et al.  A Controlled Expeniment on the Impact of Software Structure on Maintainability , 1987, IEEE Transactions on Software Engineering.

[14]  S. Henry,et al.  A model based on software quality factors which predicts maintainability , 1988, Proceedings. Conference on Software Maintenance, 1988..

[15]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[16]  Sallie M. Henry,et al.  Predicting source-code complexity at the design stage , 1990, IEEE Software.

[17]  Scott N. Woodfield,et al.  The effect of modularization and comments on program comprehension , 1981, ICSE '81.