CS5033: Software Architecture and Design
This module is offered in 2024-25.
Aims
This module introduces students to the concepts of software architecture and design as aids to developing good quality software. It covers: Architecture description (architecture elements, architecture styles, architecture documentation); Architecture design (processes for architecture design and evaluation); Software design (principles, patterns, anti-patterns, design documentation and evaluation); Architecture and design-driven implementation; and Ethical considerations in software architecture and design.
Learning Outcomes
On successful completion of this module, the student should be more able to:
- explain the relevance of software architecture and design to different software development methodologies;
- list the key elements of software architecture and design;
- identify the architecture styles and design patterns of existing software systems;
- specify the software architecture and design given non-trivial system descriptions; and
- implement systems conformant with software architecture and design specifications.
Syllabus
- Architecture description: architecture elements, architecture styles, architecture documentation.
- Architecture design: processes for architecture design and evaluation.
- Software design: principles, patterns, anti-patterns, design documentation and evaluation.
- Architecture and design-driven implementation.
- Ethical considerations in software architecture and design.
Compulsory Elements
This module has the following compulsory elements in addition to those common to all modules (mark of 4 in each assessment component):
- attend at least 70% of all tutorials and guest lectures