next up previous contents
Next: Unix Tools Up: Michaelmas Term 2003: Part Previous: Numerical Analysis I   Contents


Software Engineering and Design

(For those who have not previously attended a Software Engineering course.)

Lecturer: Dr A.F. Blackwell

No. of lectures: 12

This course is a prerequisite for the Group Project.


Aims


This course aims to provide students with a practical set of skills for the development of usable, reliable and maintainable software systems. It assumes basic programming skills in Java, describing how these can be deployed in the construction of larger programs. Systematic design processes are described, suitable for use where a development team must create a product that will meet customers' needs. These include issues related to usability and relevance to the context of use. Some specialised problems related to safety-critical systems and real-time systems are discussed, with the help of case histories of software failure to illustrate what can go wrong. Finally a range of alternative planning and management methods for software projects are contrasted.


Lectures


Objectives


At the end of the course, students should understand the ways in which writing programs that are usable, reliable and maintainable differs from the programming exercises they have engaged in so far. They should be able to undertake design of a moderately complex application in a systematic way: researching user requirements, decomposing and analysing system architecture, implementing that design so that it will be reliable and maintainable, and evaluating alternatives at various project phases from prototyping to commissioning. They should be able to select and manage appropriate organisational structures when asked to do so. They should be prepared for the organisational aspects of their Group project (in the case of Part II (General) students) or the design elements of their project and dissertation (in the case of Diploma students).


Recommended books


* Pressman, R.S. (2001). Software engineering (European ed.). McGraw-Hill.
* McConnell, S. (1993). Code complete: a practical handbook of software construction. Microsoft Press.
Fowler, M. (2000). UML distilled. Addison-Wesley (2nd ed.).
Preece, J., Sharp, H. & Rogers, Y. (2002). Interaction design: beyond human-computer interaction. Wiley.


Further reading:


Borenstein, N.S. (1991). Programming as if people mattered. Princeton.
Brooks, F.P. (1975). The mythical man month. Addison-Wesley.
Neumann, P. (1994). Computer-related risks. ACM Press.
Simon, H.A. (1996). The sciences of the artificial. MIT Press.
Schon, D.A. (1990). Educating the reflective practitioner. Jossey-Bass.
Finkelstein, A. (1993). Report of the inquiry into the London Ambulance Service.
http://www.cs.ucl.ac.uk/staff/A.Finkelstein/las.html
Finkelstein, A. & Shattock, M. (2001). CAPSA and its implementation. Cambridge University Reporter.
http://www.admin.cam.ac.uk/reporter/2001-02/weekly/5861/



next up previous contents
Next: Unix Tools Up: Michaelmas Term 2003: Part Previous: Numerical Analysis I   Contents
Christine Northeast
Thu Sep 4 15:29:01 BST 2003