Page 71 -
P. 71
54 Chapter 2 Software processes
FURTHER RE ADING
Managing Software Quality and Business Risk. This is primarily a book about software management
but it includes an excellent chapter (Chapter 4) on process models. (M. Ould, John Wiley and Sons
Ltd, 1999.)
Process Models in Software Engineering. This is an excellent overview of a wide range of software
engineering process models that have been proposed. (W. Scacchi, Encyclopaedia of Software
Engineering, ed. J.J. Marciniak, John Wiley and Sons, 2001.) http://www.ics.uci.edu/~wscacchi/
Papers/SE-Encyc/Process-Models-SE-Encyc.pdf.
The Rational Unified Process—An Introduction (3rd edition). This is the most readable book
available on the RUP at the time of this writing. Krutchen describes the process well, but
I would like to have seen more on the practical difficulties of using the process. (P. Krutchen,
Addison-Wesley, 2003.)
E XERCISES
2.1. Giving reasons for your answer based on the type of system being developed, suggest the
most appropriate generic software process model that might be used as a basis for managing
the development of the following systems:
A system to control anti-lock braking in a car
A virtual reality system to support software maintenance
A university accounting system that replaces an existing system
An interactive travel planning system that helps users plan journeys with the lowest
environmental impact
2.2. Explain why incremental development is the most effective approach for developing business
software systems. Why is this model less appropriate for real-time systems engineering?
2.3. Consider the reuse-based process model shown in Figure 2.3. Explain why it is essential to
have two separate requirements engineering activities in the process.
2.4. Suggest why it is important to make a distinction between developing the user
requirements and developing system requirements in the requirements engineering
process.
2.5. Describe the main activities in the software design process and the outputs of these
activities. Using a diagram, show possible relationships between the outputs of these
activities.
2.6. Explain why change is inevitable in complex systems and give examples (apart from
prototyping and incremental delivery) of software process activities that help predict changes
and make the software being developed more resilient to change.