Course overview
This course will provide the fundamentals skills to students to convert a well-defined set of requirements into a well-designed solution for the customer. Students will cover design principles, methodologies, modelling, and tools to allow them to create well founded and rigorous software. Students will have a strong foundation of design which they will be able to apply to their programming skills.
- Software Design Fundamentals
- Design Decisions and Documentation
- Software Design in Context
Course learning outcomes
- Explain key software design principles and methodologies used in the development of well-structured software solutions
- Develop a high-level system design based on a given set of requirements
- Construct a detailed component structure using techniques of composition, decomposition and abstraction
- Validate the system design by systematically comparing it against the original requirements