Title: SE2: Software Design and Architecture.
ID: CS446, SE464, ECE452, CS646
WWW: http://www.cs.uwaterloo.ca/~ijdavis/teaching/2016winter/cs446/index.html
Email:
Piazza: https://piazza.com/uwaterloo.ca/winter2016/cs446
Lectures: Wednesday & Friday: 8:30-9:50, MC 2034

RoleNameEmailHoursLocation
InstructorDr Ian DavisTBDDC2133
TAOleksii Kononenko TBDTDB
TAMurphy Berzish TBDTDB
TAAdriaan LabuschagneTBDTDB

Course objective:

To introduce students to the management and implementation of software designs, architectures, and models. Representations of design/architecture. Software architectures and design plans. Design methods. Design state assessment. Design quality assurance. Design verification. Group design and implementation of an application.

Course expectations:

It is expected that students attend lectures and tutorials and complete the required assignments. Lectures will often include a hands-on activity; participation in these exercises is essential to succeed in the class. Slides will be provided via the course web page before class. Any material discussed in class, in the required readings, or in the posted videos 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.
  • Required text:None.
  • Required readings:Posted online.
  • Required viewings:Posted online.

Overview of topics:

  • Software architecture, architectural styles, & 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.
  • Introduction to Quantum Computing
  • Introduction to Operational Analysis
  • The DevOps philosophy

Course schedule / assessment:

#DeliverableDatesPresentedWeightTeam Bonus
0Initial QuestionnaireJan 6In classPass/Fail
1Join a four member teamJan 13Before or in classPass/Fail
2Project Proposal documentationJan 22 8amSubmissionPart of proposal
3Project ProposalJan 27 & 29To class5%
4Voting on best proposal presentationJan 30 8amSubmission2%
51st Status report on project12 Feb 8amSubmission1%
6Prototype documentation22 Feb 8amSubmissionPart of prototype
7Project Prototype presentationFeb 24th & 26thTo class5%
8Voting on best prototype presentationFeb 27 8amSubmission2%
92nd Status report on projectMar 7th 8amSubmission1%
10Project architecture and design documentationMar 28 8amSubmissionPart of Project
11Presentation of projectMar 30, Apr 1To class8%
12Voting on best project presentationApr 2 8amSubmission2%
13Project walk through/review/oral exam with TA'sTBDOne-on-one30%
14Project accepted to curated App StoreBefore final markAs App2%
Final Exam: Date set by registrarApril 20th7:30-10pm PAC 850%

The student must pass the final exam and all pass/fail assignments to pass the course. Any individual portion of a deliverable must be completed individually without collaboration of any kind. Marked materials can be picked up in class.

Grad student assessment: No distinction will made between graduate and undergraduate students. While addition work might be assigned, the central focus of this course is on completing an ambitious course project of each teams choosing. It is better that all students efforts be focused on the essential, than on the non-essential.

Late policy: No late work will be accepted without prior discussion and documentation.

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. [Check www.uwaterloo.ca/ academicintegrity/ for more information.]

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, www.adm.uwaterloo.ca/infosec/Policies/policy70.htm. 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 [check www.uwaterloo.ca/academicintegrity/] 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, www.adm.uwaterloo.ca/infosec/ Policies/policy71.htm. For typical penalties check Guidelines for the Assessment of Penalties, www.adm.uwaterloo.ca/ infosec/guidelines/penaltyguidelines.htm.

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 aground. A student who believes he/she has a ground for an appeal should refer to Policy 72 (Student Appeals) www.adm.uwaterloo.ca/infosec/Policies/policy72.htm.

Note for Students with Disabilities: The Office for Persons with Disabilities (OPD), 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 OPD at the beginning of each academic term.