Title: SE2: Software Design and Architecture.
Term:Spring 2017
ID: CS446, SE464, ECE452, CS646
WWW: http://www.cs.uwaterloo.ca/~ijdavis/teaching/2017spring/cs446/index.html
Email:
Piazza: https://piazza.com/uwaterloo.ca/spring2017/cs446
Lectures: Monday & Wednesday & Friday: 12:30:1:20 (section 2) and 1:30-2:20 (Section 1), MC 2038

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:

Schedule

There will be four written assignments, each also involving an in class presentation. Each of these assignments will be worth 5% of the final mark. There will also be an oral walk-through of work done, and a final evaluation of the delivered software worth 30% of the course mark. A midterm if held will be worth 10%, and the final exam 40% or 50% if students elect to not have a midterm. Marked materials can be picked up in class.

The student must pass the final exam and all pass/fail assignments to pass the course.

Grad student assessment: No marking distinction will made between graduate and undergraduate students. However, graduate students will be expected to present one architectural case study to both sections of this course. The presentation constitutes part of their final deliverable.

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.