Modeling the Performance of Software Processes Quantitatively
David Raffo · Journal of the Association for Information Systems · 1996
Despite the fact that software has become one of this countries major industries, difficulties still exist with delivering quality software within budget and on schedule [18].As a result, improving software processes is a major focus for many organizations.Software project managers are concerned with questions such as:• What development phases are essential?Which phases could be skipped or significantly minimized in order to reduce costs without sacrificing quality?• Are inspections worthwhile?• What is the value of applying tools to support development activities?Will these tools be worth the cost?• How do we predict the benefit associated with implementing a process change before a substantial commitment of resources and effort is made?Given a number of potential process changes, how do we prioritize these changes?These questions are examples of the general questions addressed by our research.These are:• How do we compare alternative software processes?• What is the impact of a potential process change on process performance?• How do we prioritize process changes?To evaluate these questions, quantitative models which deal with process level issues are required.We review several quantitative approaches that have been used to model software development projects.Although these modeling approaches do support certain project management decisions, process modeling is shown to be superior for addressing the process focused questions posed above.We then present a dynamic simulation based quantitative process model that has been used to predict the impact of a process improvements using a benchmark software process and the results from the study. Alternative Modeling ApproachesThree distinct approaches have been used to quantitatively model software development projects.They are Analytic Summary Models, Analytic Structural Models, and Process Models.Most existing quantitative models are analytic summary models (as defined in [11]) which focus on highlevel quantitative relationships between input and output parameters.These models support management decision making regarding issues relating to project planning and productivity such as expected manpower, schedule, and so forth.Some examples of models in this category are COCOMO [3] and SLIM [20] which are probably the most widely known models of this type.These models view the software process as a "black box" that is not specified in detail.As a result, these models do not capture many important details which are related to process changes.Analytic Structural Models are another class of models which have been used to capture the interrelations, dependencies, and structure of software development projects at a deeper, more detailed level than Analytic Summary Models.The best known example of this type of model is the systems dynamics model developed by Abdel-Hamid and Madnick [1].This work richly captures relationships between manpower,