Module Overview
Posted on September 27th, 2021
Part of Notes on Software Design
Since these are taken from a university module, we naturally have stuff like this.
Aims
The module aims to explore the role and nature of design in software development, to make use of industrially-relevant techniques and tools, and to develop (relatively) 'large scale' software.
We will also be expected to challenge and question the concepts and points we raise; design choices are subjective and even the module leaders may learn from our decisions.
Outcomes
- Use design strategies effectively to guide the production of solutions in a complex problem domain
- Select and apply contemporary design techniques to generate effective and usable software designs
- Use designs to construct non-trivial software systems
- Use experience gained during the design and development case-studies to discuss and critically evaluate the impact of design approaches on software qualities
- Discuss and evaluate current design techniques in particular development contexts, and the role of these techniques in addressing issues and trade-offs, that arise during the development of complex software systems
Assessment
Coursework 1 Design a case study (20%)
Coursework 2 Implementation and evaluation (30%)
Exam Critically analyse experience and techniques (50%)
Suggested Reading
- Head First Design Patterns (Freeman & Freeman, O' Reilly)
- Interaction Design (Jenny Preece, Yvonne Rogers, Helen Sharp)
- Designing Interfaces (Jennifer Tidwell, O'Reilly)
- Design Patterns: elements of reusable object oriented software (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides) 🎉
- Sprint : how to solve big problems and test new ideas in just five days (Jake Knapp)
- The Design of Everyday Things (Donald Norman)
- Patterns of Enterprise Application Architecture (Martin Fowler) 🎉