next up previous contents
Next: Software Engineering II (50 Up: Lent Term 1998: Part Previous: Programming in Java

Software Engineering I (50 per cent only)

Lecturer: Dr R. Anderson (rja14@cl.cam.ac.uk)

No. of lectures: 6  

The software crisis.
Examples of large-scale project failure, such as the London Ambulance Service system. Intrinsic difficulties with software.

The software life cycle.
Getting the requirements right; requirements analysis methods; modular design; the role of prototyping; the waterfall, spiral and evolutionary models.

Critical software.
Examples of catastrophic failure; particular problems with real-time systems; the difficulty of achieving ultra-high reliability; verification and validation.

Quality assurance.
The contribution of reviews and testing; reliability growth models; software maintenance and configuration management; life cycle costs.

Tools.
The effect of high-level languages; object-oriented systems and object reuse; an overview of formal methods with some application examples; project planning tools; automated testing tools.

Large software systems.
The role of application domain knowledge; changing requirements; risk reduction versus due diligence; communications failure; organisational factors.

Recommended books:

Pressman, R.S. (1994). Software Engineering. McGraw-Hill.

Leveson, N. (1994). Safeware. Addison-Wesley.

Maguire, S. (1993). Writing Solid Code. Microsoft Press.

Further reading:

Brooks, F.P. (1975). The Mythical Man Month. Addison-Wesley.

Neumann, P. (1994). Computer-Related Risks. ACM Press.

Lyu, M.R. (1995). Handbook of Software Reliability Engineering. IEEE Computer Society Press.

Wiener, L.R. (1993). Digital Woes. Addison-Wesley.

Report of the Inquiry into the London Ambulance Service (SW Thames RHA, 40 Eastbourne Terrace, London W2 3QR, February 1993).



Christine Northeast
Sat Sep 27 09:31:14 BST 1997