You are on page 1of 2

Software Engineering by Sommerville (9th Edition)

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.

The two sets of requirements are different in nature. In particular, user requirements are abstract
statements of the system requirements for the end-user while system requirements are a more detailed
description of the functionality to be provided. When considering challenging software processes such
as extreme programming, requirements are developed incrementally according to user priorities and
requirement elicitation. This enables user input where users are part of the development team and help
make sure that the software engineering process is fulfilling the requirements they had in mind. Not
separating user and system requirements would make it extremely difficult to plan and implement the
coding required later to meet the end-users’ expectations.

2.6 Explain why change is inevitable in complex systems and give examples (apart from prototyping and
incremental deliver) of software process activities that help predict changes and make the software
being developed more resilient to change.

There are many reasons that change is inevitable in complex systems. As the software process
progresses system requirements change as the business procuring the system responds to external
pressures and management priorities. Therefore whatever software process model is user, it is essential
that it can accommodate changes to the software being developed.

System prototyping and incremental delivery help deal with change effectively. In addition, considering
change avoidance and change tolerance enables us to reduce the costs of dealing with change. Let us
consider a real example to get a better grasp of these concepts. Consider a mine producing oil in
Alberta’s oil sands. Changes in the price of oil, depletion of reserves, cash flow of the company and
market activities are just a few of the reasons of change in a complex software system put in place at the
mine to control the equipment. To help deal with these changes we should initially develop effective
prototyping models for the software to avoid the change. Furthermore, the system should be
dynamically designed to have an acceptable amount of change tolerance. Incremental delivery of the
software during mine start-up will allow any changes to be made before final delivery and ensure the
customers’ requirements are met.
2.9 What are the advantages of providing static and dynamic views of the software process as
in the Rational Unified Process?

There are several advantages of providing static and dynamic views of the software process as in the
Rational Unified Process (RUP). It is important to note that when we present both static and dynamic
views the phases of the development process are not associated with specific workflows. Thus, at least
in theory the RUP workflows may be active during all stages of the process. The RUP recognizes that the
single view is not adequate to describe the software process and therefore includes both dynamic and
static views. Another important aspect of the RUP is the separation of phases and workflows into
dynamic and static models respectively.

You might also like