Computer Laboratory

Course pages 2014–15

Software and Interface Design

Principal lecturer: Dr Alan Blackwell
Taken by: Part IA CST
Past exam questions
Information for supervisors (contact lecturer for access permission)

No. of lectures: 11
Suggested hours of supervisions: 4
Companion courses: Object-Oriented Programming, Programming in Java
This course is a prerequisite for the Group Project (Part IB).


This course introduces principles and methods for the design of software systems in professional contexts. The whole of the software development lifecycle is considered, but with special emphasis on techniques for requirements capture and testing of interactive systems.


  • Introduction. Design process overview: Inception phase, Elaboration phase, Construction phase, Transition phase (1 lecture).

  • Inception. Structured description of system usage and function (2 lectures).

  • Elaboration. Development and evaluation of interactive prototypes (2 lectures).

  • Construction. Use of source code as a design model (1 lecture).

  • Transition. Testing and debugging techniques (2 lectures).

  • Evaluation. Measurement with respect to design objectives (2 lectures).

  • Iteration. Design process responses to uncertainty and requirements change (1 lecture).


At the end of the course, students should be able to undertake design of an interactive system in a methodical manner, starting from a general requirement, analysing user needs, developing a design model, approaching iterative model refinement and implementation in a manner that minimises risk, and using appropriate methods to identify and prevent faults.

Recommended reading

Pressman, R.S. (2010). Software engineering. McGraw-Hill (7th international ed.). ISBN 9780073375977

Sharp, H., Rogers, Y. & Preece, J. (2007). Interaction design: beyond human-computer interaction. Wiley (2nd ed.).

Further reading

McConnell, S. (2004). Code complete: a practical handbook of software construction. Microsoft Press (2nd ed.).

Broy, M. & Denert, E. (ed.) (2002). Software pioneers: contributions to software engineering. Springer-Verlag.

Schon, D.A. (1990). Educating the reflective practitioner. Jossey-Bass.