COMP 2921: Software Architecture and Design

Students learn how to establish, define and manage the requirements for a software system. Students gain knowledge of fundamental concepts and methods of software design. Students learn how to use design notations of unified modeling language to develop design of a software product. Students are introduced to the design guidelines, quality, and evaluation criteria of software architecture. Students study how to design, generate, and modify software patterns and their use in software development.


After successfully completing this course, students will be able to:

  • Understand the concept of software design.
  • Explain the various models of software development.
  • Explain the need and role of software architecture.
  • Identify both functional and non-functional requirements of a software system.
  • Explain and develop object-oriented design.
  • Design a simple software architecture using UML modelling.
  • Construct various models of the design of a simple software system.
  • Articulate and evaluate overall architecture of a simple client/server system.
  • Understand the intellectual property rights of a software design.
  • Able to draw 4+1 model of the software.

Course outline

Module 1: Introduction to Software Development

Module 2: Introduction to Software Architecture

Module 3: Requirements Engineering

Module 4: Object-Oriented Software Design Concepts and UML Modelling

Module 5: Structural Modelling/Static Modelling

Module 6: Interaction Modelling

Module 7: Behavioural Modelling

Module 8: Client/Server Architecture

Module 9: Intellectual Property

Module 10: 4+1 Modelling

Required text and materials

Gomaa, H. (2011). Software modeling and design: UML cases, patterns, and software architectures. New York, NY: Cambridge University Press
ISBN: 9780521764148
Type: Textbook

Blaha, R., & Rumbaugh, J.R. (2004). Object-oriented modeling and design with UML (2nd ed.). Upper Saddle River, NJ: Pearson Education.
ISBN: 978-0-13-015920-5
Type: Textbook


Please be aware that due to COVID-19 safety guidelines all in-person exams have been suspended. As such, all final exams are currently being delivered through ProctorU, which has an approximate fee of $35 involved. There will be more information in your course shell, on how to apply, if your course has a final exam.

To successfully complete this course, students must achieve a passing grade of 50% or higher on the overall course, and 50% or higher on the final mandatory exam.

Assignment 1: Problem Set 1 10%
Assignment 2: Problem Set 1 10%
Quiz 1 10%
Quiz 2 10%
Assignment 3: Project 20%
Final Examination* 40%
Total 100%


Open Learning Faculty Member

An Open Learning Faculty Member is available to assist students. Primary communication is through the Learning Environment's "Mail" tool or by phone. Students will receive the necessary contact information at the start of the course.

Search To Top