A Study of Reasoning Processes in Software Maintenance Management

More resources are spent on maintaining software than for its development. Maintenance costs for large scale software systems can amount to somewhere between 40 and 67% of the total system life cycle cost. It is therefore important to manage maintenance costs, and to balance costs with benefits. Frequently this task is approached, at least in the literature, merely as a software cost estimation problem. Unfortunately, the creation of effort estimation models for maintenance – a primary requisite for cost calculation – has not yet been satisfactorily addressed. At the same time, project managers do not estimate costs first, but instead prioritize maintenance projects, trying to determine which projects to carry out (first) within their fixed budgets and resource capabilities. This essentially means that “cost estimation” is done qualitatively first before formal cost estimation techniques are employed. Recognizing the problems associated with standard, regression based estimation models, and focusing on the needs of software project managers, this research studied the process of project prioritization as an expert problem solving and decision making task, through concurrently taken (“think aloud”) protocols. Analysis of these protocols revealed that experts rarely make use of formal mathematical models to determine project priorities or resource needs, such as COCOMO or FPA, although project size is a key determinant of a project's priority. Instead, estimators qualitatively consider cost or value, urgency, and difficulty of a maintenance task, then prioritize projects accordingly, followed by a decision concerning further treatment of the problem. The process employs case based reasoning and the use of heuristics. While different experts may use different strategies, there exists great overlap in their overall prioritization procedure.

[1]  Fred J. Heemstra Software cost estimation models , 1990, Proceedings of the 5th Jerusalem Conference on Information Technology, 1990. 'Next Decade in Information Technology'.

[2]  E. B. Swanson,et al.  Software maintenance management , 1980 .

[3]  James R. Hamrick,et al.  Modeling Software Behavior in Terms of a Formal Life Cycle Curve: Implications for Software Maintenance , 1984, IEEE Transactions on Software Engineering.

[4]  Elizabeth C. Hirschman,et al.  Judgment under Uncertainty: Heuristics and Biases , 1974, Science.

[5]  Stephen S. Yau,et al.  Some Stability Measures for Software Maintenance , 1980, IEEE Trans. Software Eng..

[6]  Cynthia Mathis Beath,et al.  Departmentalization in software development and maintenance , 1990, CACM.

[7]  H. E. Dunsmore,et al.  Software engineering metrics and models , 1986 .

[8]  Anneliese Amschler Andrews,et al.  Identification of Dynamic Comprehension Processes During Large Scale Maintenance , 1996, IEEE Trans. Software Eng..

[9]  T. Govindaraj,et al.  Fault Diagnosis in a Large Dynamic System: Experiments on a Training Simulator , 1986, IEEE Transactions on Systems, Man, and Cybernetics.

[10]  Iris Vessey,et al.  Expertise in Debugging Computer Programs: An Analysis of the Content of Verbal Protocols , 1986, IEEE Transactions on Systems, Man, and Cybernetics.

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

[12]  Izak Benbasat,et al.  Process Tracing Methods in Decision Support Systems Research: Exploring the Black Box , 1987, MIS Q..

[13]  Norman F. Schneidewind,et al.  The State of Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[14]  Rajiv D. Banker,et al.  Software complexity and maintenance costs , 1993, CACM.

[15]  Tom DeMarco,et al.  Controlling Software Projects: Management, Measurement, and Estimates , 1986 .

[16]  Bill Curtis,et al.  Measuring the Psychological Complexity of Software Maintenance Tasks with the Halstead and McCabe Metrics , 1979, IEEE Transactions on Software Engineering.

[17]  Tom DeMarco,et al.  Controlling software projects : management, measurement & estimation , 1982 .

[18]  Allen Newell,et al.  Human Problem Solving. , 1973 .

[19]  Christian Wagner,et al.  A New Way To Create Winning Product Ideas , 1994 .

[20]  Magne Jørgensen,et al.  Experience With the Accuracy of Software Maintenance Task Effort Prediction Models , 1995, IEEE Trans. Software Eng..

[21]  Siu Leung Chung,et al.  An Economic Model to Estimate Software Rewriting and Replacement Times , 1996, IEEE Trans. Software Eng..

[22]  K. A. Ericsson,et al.  Verbal reports as data. , 1980 .

[23]  Gary W. Dickson,et al.  Problem solving for effective systems analysis: an experimental exploration , 1983, CACM.

[24]  Rajiv D. Banker,et al.  A model to evaluate variables impacting the productivity of software maintenance projects , 1991 .

[25]  Richard North,et al.  The Real Cost , 1986 .

[26]  Michael J. Prietula,et al.  Software-Effort Estimation: An Exploratory Study of Expert Performance , 1991, Inf. Syst. Res..

[27]  Michael J. Prietula,et al.  Examining the Feasibility of a Case-Based Reasoning Model for Software Effort Estimation , 1992, MIS Q..

[28]  Caroline Wagner,et al.  Problem solving and diagnosis , 1993 .

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