Problem 1
Explain why it is not necessary for a program to be completely free of defects before it is delivered to its customers.
Problem 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
Problem 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?
Problem 2
Explain why testing can only detect the presence of errors, not their absence.
Problem 3
Some people argue that developers should not be involved in testing their own code but that all testing should be the responsibility of a separate team. Give arguments for and against testing by the developers themselves.
Problem 4
You have been asked to test a method called 'catWhiteSpace' in a 'Paragraph' object that, within the paragraph, replaces sequences of blank characters with a single blank character. Identify testing partitions for this example and derive a set of tests for the 'catWhiteSpace' method.
Problem 4
Suggest why it is important to make a distinction between developing the user requirements and developing system requirements in the requirements engineering process.
Problem 5
What is regression testing? Explain how the use of automated tests and a testing framework such as JUnit simplifies regression testing.
Problem 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.
Problem 6
The MHC-PMS is constructed by adapting an off-the-shelf information system. What do you think are the differences between testing such a system and testing software that is developed using an object-oriented language such as Java?