Modeling Software Development Processes

Modeling Software Development Processes

Gerhard Chroust (Kepler University Linz, Austria), Marco Kuhrmann (Technische University München, Germany) and Erwin Schoitsch (Austrian Research Centers – ARC, Austria)
DOI: 10.4018/978-1-60566-856-7.ch002


In this chapter the authors discuss the WHY and WHAT of modeling software development processes: defining the components of a software process and proposing 5-dimensional grid of attributes of existing models: strategy and path, levels, main subprocesses, components and aura. Specific process models, currently used or historically important, are described. This is followed by an extensive discussion of methods for and problems of modeling a software process, followed by a shorter discussion on the enactment of process models via software engineering environments. The chapter closes with a discussion of the human aspects concerning introduction and enactment of a process model.
Chapter Preview


The Need for a Defined Software Process

Information and Communication Technology (ICT) has become the no. 1 business driver of economy and the key to practically all human activities. The ongoing reduction of the size and the cost of computers together with increased speed and performance allows the implementation of functionalities completely unimaginable even a decade ago. This creates a demand for more software with higher sophistication and with higher quality. Additional requirements are shorter time-to-market together with flexibility and adaptability fo software with respect to answering user needs.

Since approximately 1970 (Royce, 1970) it is understood that the development of a software system is a multi-phase process. Each phase is concerned with contributing a different view and focus of the software artifact to be produced. In order to guarantee an orderly, systematic process this stepwise process should be defined and described by a so-called process model. Based on strong statistical evidence this has been supported by Watts Humphrey from the Software Engineering Institute (Humphrey, 1989) introducing the Capability Maturity Model (CMM). It claimed that a defined process model and its appropriate enactment was one of the key steps in order to reach a development capability beyond a certain basic level. Initially only big companies produced ’industrial’ software. Due to the multitude of procedures and rules existing in these companies (they often also produced hardware using an appropriate ’development process’), the introduction of a ’software development process’ was a somewhat natural innovation (Wang & King, 2000). The trend was intensified by the US Department of Defense’s requirement for software contractors to show (and prove) the appropriate level of capability in order to be awarded a contract.

The reduction of the size and the cost of computers (down to PDAs and sophisticated mobile phones) together with an equally dramatic increase in performance and storage has not only provided computers for everybody, but has also created business opportunities for numerous small and very small companies (SMEs), often consisting of one or a few persons, often start-up companies based on a single innovative idea. They profit from the low initial investment, the ability to offer and sell their product world wide via Internet without intermediator or sales organizations. Due to their small size they are able to provide high flexibility and customer-orientation.

Closer investigation of these small and medium companies shows (SPIRE Project Team, 1998) that they often have a highly chaotic, invention-driven production process and a disregard of the associated quality and management processes. As a consequence they cannot guarantee sustainable, verifiable quality, and business return on investment.

In this chapter we present the state-of-the-art of software development process models with respect to the various types, their components, the strategies they incorporate, giving examples of existing models. We discuss aspects of creating a process model and various human aspects, including issues of introduction of process models. It must be stressed that a software process model in itself is only useful if enacted properly. Therefore we discuss enactment of process models which leads to a short discussion of Software Engineering Environments (for details see Kuhrmann et al. (2010) in this book).

Prominent Process Models are listed in “Selected Process Models - Overview” with their references, therefore in the rest of the text no references to them are given.

Complete Chapter List

Search this Book: