Abstract

If anything good can be said to have come from the Year 2000 systems problem, it is that it has created a heightened awareness of how-long lived most software is and how extensively software maintenance efforts span a system’s productive life. One of the most important maintenance processes deserving study is software evolution,described as the dynamic behavior, growth and change of software systems over their productive lives. Due to the difficulties in obtaining longitudinal data for empirical analysis of software evolution, little scientific knowledge is available about how software systems evolve and the consequences of different evolutionary patterns. Our objectives in this program of research are to identify software evolution profiles (or patterns of maintenance activities) and to link these evolution profiles to important maintenance outcomes such as software errors and costs. Traditionally, researchers classified software maintenance activities in three major categories: corrective, adaptive and enhancement. We expand this classification scheme to identify six enhancement subcategories related to major software functions (data handling, control flow, initialization, user interface, computation and module interface). After building software lifecycle maintenance profiles described by these classifications, we link these profiles to maintenance outcomes by developing a two-stage model. The first stage links software complexity to variables such as application size, maintenance team size, and the influence of purchased (vs. in-house) software applications; The second stage links software errors to software maintenance profiles, application usage and software complexity. We conducted an empirical study of the software lifecycle maintenance activities in a large Midwestern retailer, examining 21 batch applications over 31 months. Results indicate that lifecycle maintenance profiles do affect software outcomes. A significant portion of software errors can be explained by enhancements to control flow during the current time period, and enhancements to initializations and computations from the prior period. Our investigation of the effects of software lifecycle maintenance profiles, or evolutionary patterns, demonstrates the importance of increased understanding of software evolution. Continued work will include research on assessing the effects of maintenance profiles on maintenance costs as well as software errors. In addition, detailed examinations of a greater number of maintenance types and maintenance team characteristics, and incorporation of software stability measures, are expected to be completed.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call