Software process simulation for reliability management

https://doi.org/10.1016/S0164-1212(99)00010-2Get rights and content

Abstract

This paper describes the use of a process simulator to support software project planning and management. The modeling approach here focuses on software reliability, but is just as applicable to other software quality factors, as well as to cost and schedule factors. The process simulator was developed as a part of a decision support system for assisting project managers in planning or tailoring the software development process, in a quality driven manner. The original simulator was developed using the system dynamics approach. As the model evolved by applying it to a real software development project, a need arose to incorporate the concepts of discrete event modeling. The system dynamics model and discrete event models each have unique characteristics that make them more applicable in specific situations. The continuous model can be used for project planning and for predicting the effect of management and reliability engineering decisions. It can also be used as a training tool for project managers. The discrete event implementation is more detailed and therefore more applicable to project tracking and control. In this paper the structure of the system dynamics model is presented. The use of the discrete event model to construct a software reliability prediction model for an army project, the Crusader, is described in detail.

Section snippets

Overview

The concept of process modeling and simulation was first applied to the software development process by Abdel-Hamid (Abdel-Hamid et al., 1991). Others (Madachy, 1996, Tvedt, 1996) have produced models as well, but there is little evidence that they have been successfully applied to real software development projects. The models described in this paper bring two new contributions to the software process modeling and simulation work. First, the modeling approach emphasizes software reliability,

Software process modeling and simulation

Developing a model of the software development process involves the identification of entities, factors, variables, interactions and operations that are present in that process and are relevant to the intended use of the model. The entities include mainly people (developers, managers, customers, etc.), but can also include facilities, computer equipment, software tools, documentation and work instructions. Factors relevant to a general software development process include the application

Comparison to other approaches

Simulator presented here can be used for tracking the quality and reliability of the software throughout the development process. Reliability prediction and estimation models such as reliability growth models and prediction models have a similar goal. The difference is that the reliability growth models are analytical, address only the system testing phase, and each has unrealistic assumptions that restrict their applicability. The modeling and simulation approach addresses all the development

System dynamics process model description

The following model was developed to support project planning for the purpose of evaluating software reliability engineering strategies. It is a generic model intended for use in high level decision making. The model represents the initial work performed by the authors in software process modeling and simulation and is part of a decision support system for software reliability engineering strategy selection and assessment (Rus, 1998).

The main components of the model correspond to the production

Discussion on system dynamics model

The model described above was executed with assumed parameter values for each of the factors identified. By changing these factors individually the corresponding impact on the outputs of the model (cost, schedule and quality) can be evaluated. The model is implemented with building blocks derived from the generic ProductionPhase block by adding details specific to each development phase while maintaining the common features and architecture. As a result, the model is modular, extensible,

Discrete event model application

The discrete event model implementation of the software process was developed to support a specific project, Crusader. The Crusader is a large army development project. There are two vehicles, called Segments, in each Crusader System. The system consists of the Self-propelled Howitzer (SPH) and the Re-supply Vehicle (RSV). The software is being developed using object-oriented analysis and design (OOA/D) and Rational Rose CASE tool. An incremental software life cycle approach is being used, with

Prototype discrete event model description

The initial model being developed captures the process for Preliminary Design. The structure of the model, developed using Extend V4.0, is described below. The prototype discrete event model represents the Crusader Software Development Process, and it is being piloted on a single CSCI, which will be called Module X here. This discrete event model is actually a hybrid model that also incorporates system dynamics concepts, using feedback loops. The main purpose of the model is to predict, track,

Conclusions and future work

A dynamic model of the software development process allows answer questions such as: “How much time and effort will it take to complete the Preliminary Design phase for Module X?”, “How many defects are going to be generated during that phase? How will that affect product reliability?”. “How much will the effort increase if defect prevention practices are used? How will that shorten system testing time?”. These questions are very difficult to answer using methods currently available in

Ioana Rus is a Ph.D. candidate in the Department of Computer Science and Engineering at Arizona State University. She received her Master in Computer Science degree from Arizona State University and Bachelors of Science from Polytechnical Institute Cluj, Romania. Her research interests include software process improvement, process modeling, software quality and reliability, artificial intelligence, and neural networks. She is a member of the IEEE Computer Society and ACM.

James S. Collofello is

References (12)

  • Abdel-Hamid, T., Madnick, S.E., 1991. Software Project Dynamics An Integrated Approach. Prentice-Hall, Englewood...
  • B.W Boehm

    Software engineering economics

    IEEE Transactions on Software Engineering

    (1984)
  • Boehm, B.W., Hoh, 1996. Identifying quality-requirements conflicts. IEEE Software...
  • Jones, C., 1986. The SPR feature point method. Software Productivity...
  • Extend – Performance modeling for decision support, 1995. User's Manual, Imagine...
  • Lakey, P., Neufelder, A.M., 1996. System and Software Reliability Assurance Notebook, Produced for Rome Laboratory by...
There are more references available in the full text version of this article.

Cited by (48)

  • When cost-effective design strategies are not enough: Evidence from an experimental study on the role of redundant goals

    2015, Omega (United Kingdom)
    Citation Excerpt :

    Ruohomaki [31] analysed simulation-based training (SBT) and its accompanying learning processes, and encouraged educators and researchers to use it. SBT was found effective in many fields, such as: medical training [5,9,27], software engineering [28,13], flight training and improving decision making under stress [30,1], general management training [32] and project management training [36–38]. Simulations of project networks have always been encouraged due to limitations of analytical analyses (e.g., [29]).

View all citing articles on Scopus

Ioana Rus is a Ph.D. candidate in the Department of Computer Science and Engineering at Arizona State University. She received her Master in Computer Science degree from Arizona State University and Bachelors of Science from Polytechnical Institute Cluj, Romania. Her research interests include software process improvement, process modeling, software quality and reliability, artificial intelligence, and neural networks. She is a member of the IEEE Computer Society and ACM.

James S. Collofello is a professor in the Department of Computer Science and Engineering at Arizona State University. He received his Doctor of Philosophy degree in Computer Science from Northwestern University, Master of Science in Mathematics and Computer Science from Northern Illinois University, and Bachelors of Science in Mathematics and Computer Science from Northern Illinois University. His teaching and research interests are in software quality assurance, software reliability, safety, and maintainability, software testing, software error analysis, and software project management. He is a member of the IEEE Computer Society and ACM.

Peter B. Lakey received his MS in Engineering Management from University of Missouri-Rolla, MBA from Washington University, and his BSEE from Northwestern University. He joined McDonnell Douglas (now Boeing) in 1990 as a Reliability Engineer. As an engineer in the Software Engineering Process Group (SEPG), Mr. Lakey has been responsible for developing tools and processes that can be used by internal customers to improve software product quality. His main responsibility now is for managing a Software Reliability Support subcontract with United Defense in Minneapolis on a large Army program called the Crusader.

View full text