Course pages 2012–13
Software and Interface Design
No. of lectures: 7
Suggested hours of supervisions: 2
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.
- Inception. Structured description of system usage and function.
- Elaboration. Development and evaluation of interactive prototypes.
- Construction. Use of source code as a design model.
- Transition. Testing and debugging techniques.
- Evaluation. Measurement with respect to design objectives.
- Iteration. Design process responses to uncertainty and requirements change.
At the end of the course, students should be able to undertake system design in a methodical manner, starting from a general system or product requirement, developing a design model, approaching model refinement and implementation in a manner that minimises risk, and using appropriate methods to identify and prevent faults.
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.).
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.