TORONTO METROPOLITAN UNIVERSITY

Course Outline (W2026)

COE692: Software Design and Architecture

Instructor(s)Dr. Faezeh Ensan [Coordinator]
Office: ENG324
Phone: (416) 979-5000 x 554904
Email: fensan@torontomu.ca
Office Hours: Tuesdays, 3:30 pm - 4:30 pm
Calendar DescriptionIntroduces students to issues, techniques, strategies, representations, and patterns used to implement software systems with an emphasis on the design and implementation of system-level software, large architectural models for System-On-Chip systems, Electronic-Design-Automation tool flows, and embedded systems.
PrerequisitesCOE 428, COE 528, CPS 510
Antirequisites

None

Corerequisites

None

Compulsory Text(s):
  1. Essential Software Architecture (2nd Edition), Ian Gorton, Springer; 2011 edition
Reference Text(s):
  1. Software Architecture in Practice (3nd Edition), Bass, Len, Paul Clements, and Rick Kazman. Addison-Wesley Professional; 2012
  2. Object-Oriented Software Engineering. Using UML, Patterns, and Java. Bruegge, Bernd, and Allen H. Dutoit. Learning 5.6 (2009): 7.
  3. Microservices Design & Development. From Design to Deployment. Chris Richardson, Floyd Smith. NGINX, Inc. 2016.
Learning Objectives (Indicators)  

At the end of this course, the successful student will be able to:

  1. Develop practical understanding of various software architecture types and be able to make design decisions under varying design circumstances. (1d)
  2. Understand and reason about software architecture qualities such as availability, modifiability, performance, security, testability, ad usability. (4a)
  3. Lead an architectural design process by adopting architectural tactics and patterns. (4b), (6a)
  4. Be able to document a software architecture and be familiar with architecture design languages such as ADDL. (7c)
  5. Systematically account for economic impact of software architecture design when making architectural design decisions. (11a)

NOTE:Numbers in parentheses refer to the graduate attributes required by the Canadian Engineering Accreditation Board (CEAB).

Course Organization

3.0 hours of lecture per week for 13 weeks
2.0 hours of lab per week for 12 weeks
0.0 hours of tutorial per week for 12 weeks

Teaching AssistantsWill be announced.
Course Evaluation
Theory
Midterm 35 %
Final 25 %
Quiz 5 %
In-Class activities (Extra 5%) 5 %
Laboratory
Lab 35 %
TOTAL:100 %

Note: In order for a student to pass a course, a minimum overall course mark of 50% must be obtained. In addition, for courses that have both "Theory and Laboratory" components, the student must pass the Laboratory and Theory portions separately by achieving a minimum of 50% in the combined Laboratory components and 50% in the combined Theory components. Please refer to the "Course Evaluation" section above for details on the Theory and Laboratory components (if applicable).


ExaminationsMidterm will be on Week 7 of the course (in-person, closed book).
 Quiz will be on  Week 10 of the course.
 Final exam will be in the exam period of the winter semester (The exam format will be announced in D2L).
Other Evaluation InformationAny use of generative AI tools, such as ChatGPT, must be limited to grammar checking and language correctness. Other uses (such as generating diagrams, descriptions, explanations, etc.) are strictly prohibited. Failure to stay within these limits will be considered a breach of Policy 60.
 
 
 Labs are organized in the form of one project. In the first lab, students will become familiar with the development environment. In the second lab, they will define their own project, with each group working on a different subject.
 
 Students must work in groups of two for their labs. If there is a single student left without a partner, they may work alone.
 Your group mate must either be in the same section as you or in a section handled by the same TA as your section.
 
 Lab marking will be divided into two types:
 
     Individual Marking: Each person in a group must submit their own work and will be graded accordingly.
     Group Marking: The group will submit the work collectively, and all members will receive the same grade based on the group submission.
 
 Lab assignments must be submitted before 11:59 PM on the day before the next scheduled lab. A penalty of 20% will be applied for submissions up to 8 hours late. Assignments submitted more than 8 hours late will not be accepted and will receive a grade of 0.
 
 You will have 8 in-class activities, each worth 1 mark. You can earn up to 5 extra marks by attending these activities. To be eligible to participate, you must be present in the class.
 
 
Teaching MethodsLectures will be in DCC204 on Tuesdays, 12 pm - 3:00 PM.
 
 
Other InformationFor this course, students must have access to the following resources:
 A Windows 10 or macOS X computer with a minimum of:
 
     Intel Core i5 processor or equivalent
     8 GB RAM
     20 GB of available storage space after all applications are installed
 
 

Course Content

Week

Hours

Chapters /
Section

Topic, description

1

3

Introduction to Software Architecture
 Introduction to the course
 Development Environment (Web servers and Application Servers)


2

3

Software Middleware
 


3-4

6

software architecture quality attributes
 Software Architecture and Requirements
 
 Introduction to the course running example (The library management web application)


5

3

MVC and n-Tier Architecture Styles


6

3

Analyzing architectures and software qualities of case studies


7

3

Midterm


8-9

6

More on Architecture styles (Microservice Architecture)


10

3

Quiz
 Event Driven Architectures


11-12

3

Software Deployment
 
 


13

3

Course Review


Laboratory(L)/Tutorials(T)/Activity(A) Schedule

Week

L/T/A

Description

2-3

L

Development Environment Setup (Apache Tomcat, Java Netbeans, and HTML).
 Designing a simple Web Application.

4-5

L

Project specification by UML diagrams.
 Designing a more advanced Web application by Servlets, and forms.

6-8

L

Employing n-Tier Architecture for creating a Web application for the specified project.

9-10

L

Employing Microservice architecture for creating a Web application for the specified project.

11-13

L

Deploying all microservices related to the specified project on Google Cloud.

University Policies & Important Information

Students are reminded that they are required to adhere to all relevant university policies found in their online course shell in D2L and/or on the Senate website

Refer to the Departmental FAQ page for furhter information on common questions.

Important Resources Available at Toronto Metropolitan University

Lab Safety (if applicable)

Students are to strictly adhere and follow:

  1. The Lab Safety information/guidelines posted in the respective labs,
  2. provided in their respective lab handouts, and
  3. instructions provided by the Teaching Assistants/Course instructors/Technical Staff.

During the lab sessions, to avoid tripping hazards, the area around the lab stations should not be surrounded by bags, backpacks etc, students should place their bags, backpacks etc against the walls of the labs and/or away from their lab stations in such a way that it avoids tripping hazards.

Accessibility

Academic Accommodation Support

Academic Accommodation Support (AAS) is the university's disability services office. AAS works directly with incoming and returning students looking for help with their academic accommodations. AAS works with any student who requires academic accommodation regardless of program or course load.

Academic Accommodations (for students with disabilities) and Academic Consideration (for students faced with extenuating circumstances that can include short-term health issues) are governed by two different university policies. Learn more about Academic Accommodations versus Academic Consideration and how to access each.

Wellbeing Support

At Toronto Metropolitan University, we recognize that things can come up throughout the term that may interfere with a student’s ability to succeed in their coursework. These circumstances are outside of one’s control and can have a serious impact on physical and mental well-being. Seeking help can be a challenge, especially in those times of crisis.

If you are experiencing a mental health crisis, please call 911 and go to the nearest hospital emergency room. You can also access these outside resources at anytime:

If non-crisis support is needed, you can access these campus resources:

We encourage all Toronto Metropolitan University community members to access available resources to ensure support is reachable. You can find more resources available through the Toronto Metropolitan University Mental Health and Wellbeing website.