Software Systems Design
| Course Code | COMP-246 |
|---|---|
| Lecture hours per week | 2 |
| Lab hours per week | 2 |
| Course Availability | Open |
| Description | Software Systems Design is the third course in the software engineering sequence, following Software Engineering Fundamentals and Software Requirements Engineering. This project-based course focuses on transforming a defined set of requirements specifications into a complete software design. Students are introduced to component-level software design principles, concepts and tasks, and apply design practices to software architecture, APIs, interfaces, components, data layers and user interfaces. These concepts are examined in the context of web and mobile applications, with emphasis on modularity, reusability, software design patterns, architectural frameworks, security-aware design, maintainability and iterative Agile-based development practices. Students also explore the responsible use of AI-assisted design and development tools, including generative AI and large language models, to support requirements interpretation, design analysis, UML modelling, documentation and design refinement where appropriate. The main deliverable is a complete three-part team-based software design specification document that serves as the term project. In addition to written submissions, each team presents a summary of its project at the end of the course. |
