More Related Content
Similar to 962 sech04 (20)
962 sech04
- 1. Exercises 4.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.
• Anti-lock braking system: Safety-critical system so
method based on formal transformations with proofs
of equivalence between each stage, therefore
waterfall model is appropriate.
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1
- 2. • A virtual reality system to support software
maintenance :
• Virtual reality system, the system whose requirements
cannot be predicted in advance so exploratory
programming model is appropriate. (4.1.2) 68
• A university accounting system that replaces an
existing system :
• System whose requirements should be stable
because of existing system therefore waterfall model
is appropriate.
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 2
- 3. • An interactive system that allows railway
passengers to find train times from terminals
installed in stations.
• System with a complex user interface but which must
be stable and reliable. Should be based on throw-
away prototyping to find requirements then either
incremental development or waterfall model. (4.1.2) 68
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 3
- 4. Exercises 4.2
Explain why programs that are developed using
evolutionary development are likely to be difficult to
maintain.
• From an engineering and management perspective, the
evolutionary approach has two problems:
• The process is not visible: Managers need regular
deliverables to measure progress. If systems are developed
quickly, it is not cost-effective to produce documents that
reflect every version of the system.
• Systems are often poorly structured: continual change tends
to corrupt the software structure. Incorporating software
changes becomes increasingly difficult and costly.
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 4
- 5. Exercises 4.5
Suggest why it is important to make a distinction
between developing the user requirements and
developing system requirements in the requirements
engineering process.
• User requirements (high-level abstract requirements): are
statement, in a natural language plus diagrams, of what
services the system is expected to provide and the constraints
under which it must operate.
• System requirements (detailed description of what the system
should do, sometimes call a functional specification): set out
the system’s functions, services and operational constraints in
detail. The system requirements document should be precise
(exact). It should define exactly what is to be implemented. It
may be part of the contract between the system buyer and the
software developers.
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 5
- 6. Exercises 4.6
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.
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 6
- 7. Answer 4.6
1. Architectural design
2. Abstract specification
3. Interface design
4. Component design
5. Data structure design
6. Algorithm design
The diagram as show on page 77, 4.3.2 figure 4.7
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 7
- 8. Exercises 4.8
Design a process model for running system
tests and recording their results.
No
System stop
Running program Recording Error occur
result
Yes
Input new
data for test
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 8
- 9. Exercises 4.9
Explain why a software system that is used in real-
world environment must change or become
progressively less useful.
• Systems must change because as they are installed in an
environment the environment adapts to them and this
adaptation naturally generates new/different system
requirements. Furthermore, the system's environment is
dynamic and constantly generates new requirements as
a consequence (result) of changes to the business,
business goals and business policies. Unless the system
is adapted to reflect these requirements, its facilities will
become out-of-step with the facilities needed to support
the business and, hence, it will become less useful
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 9
- 10. Exercises 4.10
Suggest how a CASE technology classification
scheme may be helpful to managers responsible for
CASE system procurement
• A classification scheme can be helpful for system
procurement because it helps identify gaps in the CASE
tool coverage in an organization. Procurement may be
aimed at filling these gaps. Alternatively, a classification
scheme may be used to find tools which support a range
of activities - these may represent the most cost effective
purchases if funds are limited.
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 10
- 11. Exercises 4.12
Historically, the introduction of technology has
caused profound (deep) changes in the labour market
and, temporarily at least, displaced (replace) people
from jobs. Discuss whether the introduction of
advanced CASE technology is likely to have the
same consequences for software engineers. If you
don’t think it will, explain why not. If you think that it
will reduce job opportunities, is it ethical (moral) for
the engineers affected to passively (inactive) or
actively resist the introduction of this technology?
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 11
- 12. Ans:
• There are obviously (easy understand) different views
here and a lot depends on the development of CASE
technology in the future. A major difference between the
introduction of CASE technology and, for example, the
introduction of CAD technology which made draftsmen
redundant, is that the routine elements in the design and
development of software are relatively minor parts of the
whole development process. Therefore, savings are not
that large. However, if AI (Artificial Intelligent) technology
develops so that truly intelligent tools can be developed
than, obviously, this situation will change.
• By the way, new technology will change some job to
become redundant, but in the same time, it will create
new opportunity and new jobs for the new century.
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 12