MSc-IT Study Material
January 2011 Edition

Computer Science Department, University of Cape Town
| MIT Notes Home | Edition Home |

Review

Questions

Review Question 1

What is a life cycle model?

A discussion of this question can be found at the end of this chapter.

Review Question 2

What are the activities of the generic software process?

A discussion of this question can be found at the end of this chapter.

Review Question 3

What features of the waterfall life cycle model separate it from other models?

A discussion of this question can be found at the end of this chapter.

Review Question 4

Describe the disadvantages of the waterfall model.

Answer to this question can be found at the end of this chapter.

Review Question 5

What are the main features of the prototyping life cycle model?

A discussion of this question can be found at the end of this chapter.

Review Question 6

What are the points of the Agile Manifesto?

A discussion of this question can be found at the end of this chapter.

Review Question 7

What is a CASE tool? Provide some examples of CASE tools. Try to also provide examples of tools that you may have used before.

A discussion of this question can be found at the end of this chapter.

Review Question 8

Describe some of the advantages of CASE?

A discussion of this question can be found at the end of this chapter.

Answers

Discussion of Review Question 1

A life cycle model, or software process model, is a description of the best practices for engineering and developing software. It is usually broken down into stages, describing the deliverables produced during each stage, and describing the order or iterative cycles of the stages, and when each stage would be appropriate to perform.

Discussion of Review Question 2

There are five generic activities:

  • Communication

  • Planning

  • Modeling

  • Construction

  • Deployment

Discussion of Review Question 3

The waterfall model breaks the system development process into a linear sequence of stages, each involving a specific activity. Each stage produces deliverables that become the inputs to the following stage. Once a stage has been completed it cannot be revisited — so decisions made in early stage are committed to and determine what happens at later stages.

Discussion of Review Question 4

The Waterfall model assumes that there is a full understanding and specification of the requirements at the beginning of the project, and that these requirements will not change during development. Since the deliverables at each stage is usually not software, it is easy for none-software related deliverables — and the bureaucracy surrounding these deliverables — to become the focus of the software development. Because of the linear nature of the model, problems identified in earlier stages become progressively more difficult and expensive to fix in later stages.

Discussion of Review Question 5

The prototyping model attempts to produce a small version of the final system that has only some of the final software's functionality. Prototype life cycle models allow for the developers and users to explore the uncertain requirements of the software system, and an analysis of the prototype can form the basis of a requirements specification for further development. Because prototypes are generated quickly and are incomplete, once the requirements are better understand the prototype is discarded and development restarted using another process model.

Discussion of Review Question 6

There are four points:

  • Individuals and interactions over process and tools.

  • Working software over comprehensive documentation.

  • Customer collaboration over contract negotiation.

  • Responding to change over following a plan.

Discussion of Review Question 7

CASE tools are software whose sole purpose is to support one or more aspects of software development.

Common examples include compilers and debuggers — if you are using Ubuntu or OS X, that will often be GCC for the compiler, and GDB for the debugger. There are also many CASE tools for planning and software costing, such as Microsoft Project. Other case tools include those for authoring help files, version control systems (such as Subversion, Bazaar, Mercurial and Git), code generators and program editors (such as Emacs, Visual Studio and XCode), and tools providing access to modelling techniques such as the UML (for example, ArgoUML).

Discussion of Review Question 8

Case tools allow for the faster development of various software models, and can sometimes even simulate portions of the software from these models. Some tools allow a central dictionary to be maintained where each model can take their components from. They can automatically check for consistency between various models, can provide a standard for notation and documentation, and can provide easy navigation between different portions of the models. They can support planning the activities of the software development life cycle, and can support the programmers directly with their development (by providing access to documentation, report generation, by keeping track of changes made to the source code, and so on).