GRAPHICAL REPRESENTATION OF
SOFTWARE MAINTENANCE COSTS
BASED ON RANGE OF
MAINTAINABILITY METRIC VALUES
C.V.S.R SYAVASYA
Department of CSE, Gitam University, Rushikonda, Visakhapatnam, Andhra Pradesh 530045, India
Abstract :
It is a need for every software in a company in maintaining software maintenance cost less. Moreover less maintainability cost is inturn benefiting the financial state of every software in future maintenance. The heart of software maintenance cost calculation is the metric values namely understandability, modifiability, testability values. All the three graphs are combined to form final software maintenance cost graph. In our research, the values of software maintenance cost which are obtained after detailed calculation by varying maintainability metric are presented graphically. We found three cases, wherein each case has its own graphical presentations of all the parameters combined to form single graphical presentation. In our paper , we obtain the graphical part software maintenance cost for each case. The main reason of implementing this paper is to make feasible view of all the results obtain after calculation.
Keywords: Understandability; Modifiability; Testability; Annual Change Traffic; SLOC
1. Introduction
Software maintenance is a modification process of current or existing software to correct faults or to upgrade the software. It is categorized into four categories namely: Adaptive, Constructive, Perfective, Preventive. Adaptive: modifying the system to cope with changes in the software environment. Perfective: implementing new or changed user requirements which concern functional enhancements to the software. Corrective: diagnosing and fixing errors, possibly ones found by users Preventive: increasing software maintainability or reliability to prevent problems in the future. Software companies look for maximum productivity while developing their products, but leave the maintenance stage in second place. This is an error, because, as much experience has revealed, this is the very stage which consumes the greater portion of resources, more than 60%. Apart from the obvious economic implications, if productivity in the maintenance stage is low, the persons employed to develop the project may need to invest much of their time in later maintenance.
Such is the experience which the authors have gleaned from previous projects and from the application of their estimating methods to real projects. Consequently, if a company wishes to take on further projects, it must include an entirely new team among its staff. This means at least a partial loss from the experience gathered by the first team, becoming unavailable for further projects. Furthermore, the new team would need to be trained in methods and tools used by the software company. This has implications for validation efforts.
Although the area of software maintenance has received less attention, when compared to new development. But by giving importance of software maintenance, a number of models have been introduced to estimate maintenance costs. The maintenance work of software covers, “error correction”, enhancing functionalities” and “reengineering”. One of the three models is applied in obtaining the calculation of software maintenance costs.
2. Release-Level Model:
In this model, instead of estimating cost of maintenance as a whole, it focuses on maintenance costs of “finger-ground level”. It means estimating the effort of planned set of management tasks or planned release. This approach usually involves usage of past releases and analyzing the changes to estimate the cost for next release. Sneed proposed a model called “manCost” for estimating software maintenance cost by applying different sub-models for different types of maintenance tasks. Sneed grouped maintenance tasks into four different types remained as four sub-models:
i) Error Correction: Finding the costs of error correction for a particular release.
iii) Functional Enhancements: These are the costs incurred for adding, modifying, deleting, improving software functionality.
The model treats this type same as new development. Where size can be measured by source lines of code and effort is estimated using quality, complexity etc.
iv) Technical Renovation: These are the costs incurred in technical improvements such as ‘performance’ and ‘optimization’.
2.1. Calculation of Maintenance Costs:
Maintenance costs vary widely from one application to another. Boehm’s maintenance cost estimation is made in terms of a quality called “Annual change traffic” (ACT). ACT is defined as the function that is, fraction of software products’s source undergoes change which is either addition or deletion.
ACT= (B*TT)/(BT*B)
Where,
B is the rate of coincidence of current project. A is the values assigned by company experts.
The following are the five steps to calculate software maintenance costs. They are as follows:
1) Maintainability Index:
This index is defined as a factor for measurement of maintainability of product. MMMAIN=ACT*MMDEV*IMAIN
Where MM MAIN is determined as that Maintenance cost determined in Man-Months. It is calculated by multiplication of all the three parameters namely ACT, Development cost in Man-Months, Maintainability Index. This Imain shows inverse degree of maintainability of the product that is, for high values index indicates low maintainability and for low values indicates high maintainability. Imain determines relationship between estimated maintenance costs and those characteristics which make a program more or less manageable or maintainable.
2) Maintainability Components:
Maintainability Index is divided into three components as: Understandability Index (IU), Modifiability Index (IM), Testability Index (IT). Maintenance Cost is expressed as,
MMMAIN=MMU+MMM+MMT We relate two parameters as, MMU=ACT*MMDEV*IU MMM=ACT*MMDEV*IM MMT=ACT*MMDEV*IT
Where MMDEV is development cost in Man-Months which is taken as constant as 57. Finally the formula for estimating software maintenance cost is determined as follows: MMMAIN=MMU+MMM+MMT=ACT*MMDEV(IU+IM+IT)
3) Maintainability Metric:
This model which is used in case studies considers three software characteristics.
XU: Understandability Metric: It is the relation between internal documentation and understanding cost. XM: Modifiability Metric: The number of lines without constant data for every 100 lines of code. XT: Testability Metric: The number of error testing lines for every 100 lines of code.
Hence, we use these three metrics to calculate Understandability Index, Modifiability Index, Testability Index. IU=a*eb*XU
IM=a*eb*XM IT=a*eb*XT
Where, a and b values are obtained by solving two equations from the case study. These values are calculated from the history table which is formed under the range of history table given in case study.
We derive a and b values from the following equations.
∑I’ui=a’N+b∑Xui
∑XuiIui=a’∑Xui+b∑X2ui
Here Xu value is varied based on the given range numerical value as 17 in the case study. By taking the range of starting value Xu, we can Iu can be calculated for different cases.
Here, we Find Understandability Metric only for case-1 and the obtained same result is forwarded to other two cases. This is because, the history table which is taken for IU in case-1 is from the case study which cannot be changed. Hence we vary Modifiability and Testability for all the three cases and finally calculate Final software maintenance costs.
3. Graph for Maintainability Index for case-1:
Graph for Understandability Index:
The above observed graph of understandability is drawn by taking Understandability Metric(Xu) values as X-axis and Understandability in Man-Months(MMu) as Y-axis.
In the graph, we observe that, as Xu value increases from 14 to 20, the MMu value is decreasing. Hence, at Xu value 20, we get less maintenance cost of 6.2 out of the range.
Here, the understandability graph which is drawn in case-1 is applied to remaining cases, therefore from case-2 to case-6, we draw from modifiability and testability and final consolidated graph.
MODIFIABILITY GRAPH FOR CASE-1
OBSERVATION:
The above observed graph of Modifiability is drawn by taking Modifiability Metric(Xu) values as X-axis and Modifiability in Man-Months(MMu) as Y-X-axis.
In the graph, we observe that, as Xm value increases from 14 to 20, the MMm value is decreasing. Hence, at Xm value 20, we get less maintenance cost of 8.3 out of the range 14-20.
Graph for Testability for case-1
OBSERVATION:
The above observed graph of Testability is drawn by taking Testability Metric(Xt) values as X-axis and Testability in Man-Months(MMt) as Y-axis.
In the graph, we observe that, as Xt value increases from 14 to 20, the MMt value is decreasing. Hence, at Xt value 20, we get less maintenance cost of 7.57 out of the range 14-20.
Here, the Understandability graph which is drawn in case-1 is applied to remaining cases, therefore from case-2 to case-6, we draw from modifiability and testability and final consolidated graph.
OBSERVATION:
The above observed graph of Final Maintenance Cost is drawn by taking Xu,Xm,Xt values as X-axis and Maintainability in Man-Months(MMmain) as Y-axis.
In the graph, we observe that, as Xu,Xm,Xt value increases from 14 to 20, the MMmain value is decreasing.
Hence, at Xt value 20, we get less maintenance cost of 22.07 out of the range 14-20.
Here, the Understandability graph which is drawn in case-1 is applied to remaining cases, therefore from case-2 to case-6, we draw from modifiability and testability and final consolidated graph.
MODIFIABILITY GRAPH FOR CASE-2
OBSERVATION:
The above observed graph of Modifiability is drawn by taking Modifiability Metric(Xm) values as X-axis and Modifiability in Man-Months(MMm) as Y-X-axis.
In the graph, we observe that, as Xm value increases from 14 to 20, the MMm value is decreasing. Hence, at Xm value 20, we get less maintenance cost of 2.63 out of the range 14-20.
Here, the Understandability graph which is drawn in case-1 is applied to remaining cases, therefore from case-2 to case-6, we draw from modifiability and testability and final consolidated graph.
TESTABILITY GRAPH FOR CASE-2
OBSERVATION:
The above observed graph of Testability is drawn by taking Testability Metric(Xt) values as X-axis and Testability in Man-Months(MMt) as Y-axis.
In the graph, we observe that, as Xt value increases from 14 to 20, the MMt value is decreasing. Hence, at Xt value 20, we get less maintenance cost of 8.05 out of the range 14-20.
Here, the Understandability graph which is drawn in case-1 is applied to remaining cases, therefore from case-2 to case-6, we draw from modifiability and testability and final consolidated graph.
OBSERVATION:
The above observed graph of Final Maintenance Cost is drawn by taking Xu,Xm,Xt values as X-axis and Maintainability in Man-Months(MMmain) as Y-axis.
In the graph, we observe that, as Xu,Xm,Xt value increases from 14 to 20, the MMmain value is decreasing.
Hence, at Xt value 20, we get less maintenance cost of 16.88 out of the range 14-20.
Here, the Understandability graph which is drawn in case-1 is applied to remaining cases, therefore from case-2 to case-6, we draw from modifiability and testability and final consolidated graph.
OBSERVATION:
The above observed graph of Modifiability is drawn by taking Modifiability Metric(Xm) values as X-axis and Modifiability in Man-Months(MMm) as Y-X-axis.
In the graph, we observe that, as Xm value increases from 14 to 20, the MMm value is decreasing. Hence, at Xm value 20, we get less maintenance cost of 3.5 out of the range 14-20.
Here, the Understandability graph which is drawn in case-1 is applied to remaining cases, therefore from case-2 to case-6, we draw from modifiability and testability and final consolidated graph.
X AXIS: Xu,Xm,Xt
Y AXIS: MMmain
TESTABILITY GRAPH FOR CASE-3
OBSERVATION:
The above observed graph of Testability is drawn by taking Testability Metric(Xt) values as X-axis and Testability in Man-Months(MMt) as Y-axis.
In the graph, we observe that, as Xt value increases from 14 to 20, the MMt value is decreasing. Hence, at Xt value 20, we get less maintenance cost of 9.8 out of the range 14-20.
Here, the Understandability graph which is drawn in case-1 is applied to remaining cases, therefore from case-2 to case-6, we draw from modifiability and testability and final consolidated graph.
OBSERVATION:
The above observed graph of Final Maintenance Cost is drawn by taking Xu,Xm,Xt values as X-axis and Maintainability in Man-Months(MMmain) as Y-axis.
In the graph, we observe that, as Xu,Xm,Xt value increases from 14 to 20, the MMmain value is decreasing.
Hence, at Xt value 20, we get less maintenance cost of 19.5 out of the range 14-20.
Here, the Understandability graph which is drawn in case-1 is applied to remaining cases, therefore from case-2 to case-6, we draw from modifiability and testability and final consolidated graph.
4. Conclusion
maintenance stage in a software project. For this reason a factor for indicating the maintainability of a software product must be a part of the calculation of this estimation. This factor is called maintainability index. The interdependence between this index and a set of software metrics, which represent maintainability characteristics, is of great interest. The main element of this research is historical data from previous projects, an indispensable element for all activities including making estimations. In this paper the problems of estimating the cost of the maintenance process have been solved with our model, using data collected from previous projects.
References
[1] Deutsche Post DHL, ―Deutsche Post DHL - investors’ factbook MAIL - facts & figures, 2010. [Online]. Available: http://investors.dp-dhl.de/ reports/2010/factbook/the-segments/mail-facts-figures.html
[2] J. Martin, Software Maintenance: The Problem and Its Solution. Prentice-Hall, 1983.
[3] B. W. Boehm, ―Software engineering economics, IEEE Transactions on Software Engineering , no. 1, pp. 4–21, 1984.
[4] B. W. Boehm and P. N. apaccio, ―Understanding and controlling software costs, IEEE Transactions on Software Engineering , vol. 14, no. 10, pp.
[5] F. Niessink and H. van Vliet, ―Predicting maintenance effort with function points, in Software Maintenance . IEEE, 1997, p. 32. [6] N. Chapin, J. Hale, K. Khan, J. Ramil, and W. Tan, ―Types of software evolution and software maintenance,‖ Journal of software
maintenance and evolution: Research and Practice , vol. 13, no. 1, pp. 3–30, 2001.
[7] M. Jørgensen, ―Experience with the accuracy of software maintenance task effort prediction models,‖ IEEE Transactions on Software Engi- neering , vol. 21, no. 8, pp. 674–681, 1995.
[8] M. Polo, M. Piattini, and F. Ruiz, Advances in software maintenance management: technologies and solutions . Idea Group Inc (IGI), 2003.
[9] A. D. Lucia, M. D. Penta, S. Stefanucci, and G. Ventuni, ―Early effort estimation of massive maintenance processes.‖ IEEE, 2003, pp. 234– 237.
[10] J. Koskinen, H. Lahtonen, and T. Tilus, ―Software maintenance cost estimation and modernization support,‖ Tech. Rep., 2003. [Online]. Available: http://users.jyu.fi/ koskinen/smcems.pdf
AUTHOR BIOGRAPHY