Next: Software Engineering II (50
Up: Lent Term 1998: Part
Previous: Programming in Java
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