13
©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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

962 sech04

  • Upload
    aldwal

  • View
    5.383

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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.

Page 2: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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.

Page 3: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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

Page 4: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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.

Page 5: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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.

Page 6: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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.

Page 7: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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

Page 8: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 8

Exercises 4.8

Design a process model for running system tests and recording their results.

Running program Recording result

Error occur

Input new data for test

Yes

No

System stop

Page 9: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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

Page 10: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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.

Page 11: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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?

Page 12: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 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.

Page 13: 962 sech04

©Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 13

End