Software development process models: a technique for evaluation and decision-making

2014-03-24T13:09:14Z (GMT) by Christian Dawson Ray Dawson
Process models are the bedrock on which all software development projects are based. Since the first process model was defined in the late 1950s, more contemporary processes have evolved to deal with even more complex projects in even more dynamic problem domains. Although there are many such process models now available for software engineers to follow, they can be classified according to one of five basic types. They differ in the level to which the process might be applied and also in the additional guidelines and philosophies they define. In this paper we define those five fundamental process types. The paper goes on to present a definitive technique for comparing such process models—the Functionality-Time graph. By combining this technique with a Functionality-Cost/Benefit graph, it helps to identify the key decision points in the software development process with respect to a software system's functionality. Such a hybrid technique helps project managers to recognise the point at which to draw closure on an existing system by showing potential losses if the project continues. By attempting to identify where they lie on the graphs defined in this paper, project managers can determine the consequences of decisions at different stages of the software life cycle. The hybrid graphs also provide an invaluable educational tool that help software engineers understand the development processes they adopt and clarifies the differences between them.