962 sech04

8,534 views
7,908 views

Published on

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,534
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
193
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

962 sech04

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

×