Software Architecture and Design - SE464

Overview

Software Architecture and Design (SE464) "Introduces students to the design, implementation, and evolution phases of software development. Software design processes, methods, and notation. Implementation of designs. Evolution of designs and implementations. Management of design activities." Course catalog.

Contact

This course will be fully virtual, with no in-person components.

Lectures are held asynchronously through Learn. The Tutorial slot, Fridays 10:30-11:20, is reserved for synchronous activities and office hours. Lab is not scheduled and students are expected to find time in open hours to complete their work.

Course material, announcements, and submissions will be handled through Learn.

We will use Piazza for course discussions.

Begin all email subjects with [SE464].

Do not to leave your questions until the last minute.

Teaching assistants

The course is assisted by:

  • Chien-Chih Chen joseph.chen@uwaterloo.ca

  • Aliasghar Iman aiman@uwaterloo.ca

Meetings by appointment.

Course expectations

It is expected that students watch all provided lectures and additional presentations, work through slides and reading materials, and complete the assignments and project. Lectures will often include hands-on activities; participation in these exercises is essential to succeed in the class. All material will be provided via Learn. Any material discussed in class or in the required videos and articles will be testable unless otherwise noted.

By the end of the course you should be able to:

  • propose and analyze software architectures.

  • explain the strengths and weaknesses of various architectural styles and design patterns / techniques.

  • communicate and rationalize architectural and design decisions.

  • ideate, justify, and implement software designs.

  • evaluate, compare, and contrast different architectures and designs.

Overview of topics

  • Software architecture, architectural styles, and architectural representations

  • Software design, design patterns, design representations

  • Software architecture and design conception, analysis, and communication

  • Architecture and design recovery / reverse engineering

  • Architecture and design visualization / understanding

  • Cloud / grid computing architectures

Course material

While the course does not have a required textbook, much of the materials will be sourced from the following texts; additional books are supplementary.

  • Robert C. Martin. Clean Architecture: A Craftsman’s Guide to Software Structure and Design. Available for purchase online.

  • Richard N. Taylor, Nenad Medvidovic, and Eric Dashofy. Software Architecture. Foundations, Theory, and Practice. Available in the library or for purchase (e.g., through Amazon.ca). Slides for this book are available online.

  • Ian Gorton. Essential Software Architecture. Available online or for purchase (e.g., through Amazon.ca). Slides for this book are available online.

  • Fred P. Brooks Jr. The Mythical Man Month. Available in the library or for purchase (e.g., through Amazon.ca).

  • Fred P. Brooks Jr. The Design of Design. Unfortunately not in the library but still available e.g. through Amazon.ca.

  • The Architecture of Open Source Applications. Available online.

  • Kai Qian, Xiang Fu, Lixin Tao, Chong-wei Xu. Software Architecture and Design Illuminated. Available for purchase online.

Course schedule

Lecture material is available through Learn.

This is a tentative schedule that will get adapted during the term.

Week   Class
1 Introduction, organization, and overview
2 Decomposition, Non-functional properties, Architecture
3 Design Patterns
4 Architectural Styles
5 Modeling, Notations
6 Frameworks
7 Programming Languages
8 Static Analysis and Type Systems
9 Architecture of Open-Source Applications
10 Dependency Injection, Cloud/REST Architectures
11 Service-oriented-Architectures, Microservices
12 Human Aspects
13 Outlook and summary

Assessment

Deliverable Date Format Value
Architecture & Design Background Quiz Sept 10 Learn 0%
Design Patterns Exercise Sept 24 Learn 5%
Design Assignment Oct 8 PEAR 20%
Architecture Assignment Nov 12 PEAR 25%
Reading/Participation Quizzes Several Learn 10%
Project Dec 3 Learn 20%
Final Exam TBD Written 20%

Details for the project, assignments, and reading/participation components will be provided separately.

PEAR assignments use the Peer Evaluation, Assessment and Review (PEAR) tool. Students submit their assignments and give feedback to peer assignments.

You must pass the final exam, project, and all assignments to pass the course.

No late submissions will be accepted.

Grades may be curved or adjusted at instructor’s discretion.

Policies

Academic Integrity

  • In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. [See the academic integrity site for more information.]

  • Turnitin.com: Text matching software (Turnitin®) will be used to screen assignments in this course. Turnitin® is used to verify that all materials and sources in assignments are documented. Students’ submissions are stored on a U.S. server, therefore students must be given an alternative (e.g., scaffolded assignment or annotated bibliography), if they are concerned about their privacy and/or security. Students will be given due notice, in the first week of the term and/or at the time assignment details are provided, about arrangements and alternatives for the use of Turnitin® in this course. It is the responsibility of the student to notify the instructor if they, in the first week of term or at the time assignment details are provided, wish to submit the alternate assignment.

Grievance

  • A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4.

  • When in doubt please be certain to contact the department’s administrative assistant who will provide further assistance.

Discipline

  • A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for his/her actions.

  • A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about "rules" for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate Associate Dean.

  • For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline.

  • For typical penalties check Guidelines for the Assessment of Penalties.

Appeals

  • A decision made or penalty imposed under Policy 70 (Student Petitions and Grievances) (other than a petition) or Policy 71 (Student Discipline) may be appealed if there is a ground.

  • A student who believes he/she has a ground for an appeal should refer to Policy 72, Student Appeals.

Note for Students with Disabilities

AccessAbility Services, located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with the AccessAbility Services at the beginning of each academic term.

Intellectual Property

Students should be aware that this course contains the intellectual property of their instructor, TA, and/or the University of Waterloo. Intellectual property includes but is not limited to:

  • Lecture content, spoken and written (and any audio/video recording thereof);

  • Lecture handouts, presentations, and other materials prepared for the course (e.g., PowerPoint slides);

  • Questions or solution sets from various types of assessments (e.g., assignments, quizzes, tests, final exams); and

  • Work protected by copyright (e.g., any work authored by the instructor or TA or used by the instructor or TA with permission of the copyright owner).

Course materials and the intellectual property contained therein, are used to enhance a student’s educational experience. However, sharing this intellectual property without the intellectual property owner’s permission is considered a violation of intellectual property rights. For this reason, it is necessary to ask the instructor, TA, and/or the University of Waterloo for permission before uploading and sharing the intellectual property of others online (e.g., to an online repository).

Permission from an instructor, TA, or the University is also necessary before sharing the intellectual property of others from completed courses with students taking the same/similar courses in subsequent terms/years. In many cases, instructors might be happy to allow distribution of certain materials. However, doing so without expressed permission is considered a violation of intellectual property rights.

Please alert the instructor if you become aware of intellectual property belonging to others (past or present) circulating, either through the student body or online. The intellectual property rights owner deserves to know (and may have already given their consent).

Writing and Communication Centre

The Writing and Communication Centre (WCC) works with students in all faculties to help you consider your audience, clarify your ideas, develop your voice, and write in the style appropriate to your discipline. WCC staff offer one-on-one support for writing papers, delivering presentations, citing research, and revising for clarity and coherence. Group appointments for team-based projects, presentations, and papers are also available.

You can pre-book appointments with WCC staff, or visit us at one of our drop-in locations for quick questions and feedback from WCC peer tutors. To book an appointment and to see drop-in appointment hours, visit https://www.uwaterloo.ca/wcc.

Please note that communication specialists guide you to see your work as readers would. They can teach you revising skills and strategies, but will not change or correct your work for you. Please bring hard copies of your assignment instructions and any notes or drafts to your appointment.

Coronavirus Information

This resource provides updated information on COVID-19 and guidance for accommodations due to COVID-19.

Mental Health Support

All of us need a support system. We encourage you to seek out mental health supports when they are needed. Please reach out to Campus Wellness and Counselling Services.

We understand that these circumstances can be troubling, and you may need to speak with someone for emotional support. Good2Talk is a post-secondary student helpline based in Ontario, Canada that is available to all students.

Territorial Acknowledgement

We acknowledge that we live and work on the traditional territory of the Attawandaron (Neutral), Anishinaabeg, and Haudenosaunee peoples. The University of Waterloo is situated on the Haldimand Tract, the land promised to the Six Nations that includes ten kilometres on each side of the Grand River.

Acknowledgments

Thanks to Derek Rayside, Reid Holmes, and Krzysztof Czarnecki for sharing their experience and materials from previous iterations of this and a similar course, CS 446, Winter 2014.

PDF version for easier printing (if you absolutely have to) or if you prefer looking at PDFs.