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.
Learning outcomes
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 topics
- Module 1: Introduction to Software Architecture
- Module 2: Foundation of Software Architecture
- Module 3: Software Requirements
- Module 4: Introduction to Software Development
- Module 5: Programming Paradigms and Contexts of Software Architecture
- Module 6: UML Modelling – Structural Diagrams
- Module 7: UML Modelling – Behavioural Diagrams
- Module 8: Software Architecture Practices
- Module 9: Intellectual Property
- Module 10: Cloud and Mobile Software Architecture
Required text and materials
The following materials are required for this course:
- Fowler, M. (2004). UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd ed.). Addison-Wesley.
Type: Textbook. ISBN: 978-0-321-19368-1
Students require the following e-textbook, which can be purchased directly from the TRU bookstore site:
- Bass, L., Clements, P., & Kazman, R. (2022). Software Architecture in Practice (4th ed.). Addison-Wesley Professional.
Type: E-Textbook. ISBN: 9780136886020
Additional requirements
The following software is required for this course:
- Van der Wulp, M. (2011). ArgoUML (Version 0.34).
Assessments
Please be aware that should your course have a final exam, you are responsible for the fee to the online proctoring service, ProctorU, or to the in-person approved Testing Centre. Please contact exams@tru.ca with any questions about this.
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 | 10% |
Assignment 2 | 10% |
Quiz 1 | 5% |
Assignment 3 | 10% |
Assignment 4 | 10% |
Quiz 2 | 5% |
Assignment 5 | 10% |
Mandatory Final Exam | 40% |
Total | 100% |
Open Learning Faculty Member Information
An Open Learning Faculty Member is available to assist students. Students will receive the necessary contact information at the start of the course.