SWE 621 Software Design & Architecture

Fall 2022Monday, 4:30pm-7:10pm, Horizon Hall 2014


Grades • Syllabus, Schedule, and Slides • Announcements, Assignments, Discussion (Piazza)

Course Overview

This course will provide a comprehensive introduction to software architecture and design, methods, processes, and notations. This course will explore design as the enumeration, evaluation, and selection of design alternatives to achieve quality attributes, including perspectives on design from risk minimization, domain modeling, abstraction, architectural styles, design patterns, and reuse.

Learning Outcomes

Required Textbooks

Course Staff

Instructor: Prof. Thomas LaToza (tlatoza@gmu.edu)
   Office hours by appointment.
Teaching Assistant: Naumi Varma (hvarma2@gmu.edu)
Office Hour: Wed 2-4pm<

Schedule

Preliminary Schedule, subject to change. Lecture titles link to lecture slides.

1. Course Overview, Design as Choice (8/22)

Required Readings: none

2. Design as Risk Minimization (8/29)

Required Readings: HWs: HW0 due

9/5 - NO CLASS - LABOR DAY

3. Design as Domain Modeling (9/12)(VIRTUAL CLASS)

Required Readings:

4. Design as Abstraction (9/19)

Required Readings: HWs: HW1 due

5. Notations for Design (9/26)

Required Readings:

6. Architectural Styles (10/3)

Required Readings: HWs: HW2 due

Midterm Exam (10/11) - MONDAY CLASSES MEET ON TUESDAY

7. Design for Change (10/17)

Required Reading:

8. Design Patterns (10/24)

Req Readings: HWs: HW3 due

9. Following a Design (10/31)

Req Readings:

10. Programming Styles (11/7)

Req Readings: from Lopes, Exercises in Programming Style: HWs: HW4 due

11. Design for Reuse (11/14)

Req Readings:

12. Design Ecosystems (11/21)

Req Readings: HWs: HW5 due

13. Review (11/28)

Req Reading: none HWs: Project report due

Final Exam: 12/12, 4:30pm - 7:15pm

Course Policies

Contacting

If you have a general question about an assignment or course content, first check piazza to see if someone has already answered your question. If not, post your question in piazza, where your question may be answered by other students or the course staff. For questions about grades, contact one of the TAs by email.

Office Hours

Office hours this semester are by appointment. Please email the instructor or course TA to make an appointment.

Readings

Weekly readings will be from the course textbook as well as from a number of classic software engineering papers. You should read the assigned readings before each class. Many of the readings are available online. For these readings, you will need to access the link either the Mason Library proxy server or Mason VPN.

Resources

The course website lists the sylabus, course schedule, and links to the lecture slides. Assignments and announcements as well as discussion will be posted on Piazza. Grades will be posted on Blackboard.

Exams

There will be a midterm exam and a comprehensive final exam. Both will be closed-book and in-class. Exams will cover material from the lectures as well as from the assigned readings.

Makeups

Unless arrangements are worked out in advance, missed exams cannot be made up. As some of the HW assignments involve peer evaluations where groups give and receive feedback with other groups, late HW submissions impact not only the groups themselves but other students in the course. Thus, 10% will be deducted for late HW assignments and late HW assignments will only be accepted for 24 hours after the due date. HW assignments submitted more than 24 hours late will receive a zero. If you’re worried about being busy around the time of a HW submission, please plan ahead and get started early.

In-Class Activities

As software architecture and design require achieving a mastery of design skills, each class will include an extended in-class group activity. Each activity will result in a small deliverable, often in the form of diagrams, sketches, or lists. In-class activities will each be worth 10 points and will be graded for participation as follows:

Satisfactory: put forth a good effort in accomplishing the activity's goals (10/10)
Needs improvement: substantially misunderstood the activity or did not make meaningful progress (5/10)
Not present: did not submit deliverable from activity (0/10)

To accomodate planned or unplanned absences, the three lowest scores (including absences) will be dropped.

Assignments

The assignments in the course will be in the form of a group project. You will select three competing open source applications that each offer an alternative architecture and design for the same underlying problem. Over the course of the semester, you will reverse engineer the architecture and design of each and compare and constrast the approaches taken.

You are allowed to work on the HWs collaboratively using one of two models:

  1. Work on and submit all HWs independently.
  2. Collaborate from start to finish on all HWs with at most two other students in SWE 621. You must submit one solution as a group for each HW. Additionally, each group member will separately submit a peer evaluation, describing the involvement of each group member (including themselves) in the HW assignment.

Note: You are NOT ALLOWED to include “guest names.” Every person listed as a collaborator must contribute. If someone is listed as a collaborator but did not contribute, all will be given a zero on the assignment and reported to the university honor committee.

Grading

In-Class Activities: 10%
HWs and project presentation: 40%
Mid-term exam: 20%
Final exam: 30%

Honor Code

Mason is an Honor Code university; please see the Office for Academic Integrity for a full description of the code and the honor committee process, and the Computer Science Department’s Honor Code Policies regarding programming assignments. The principle of academic integrity is taken very seriously and violations are treated gravely. What does academic integrity mean in this course? Essentially this: when you are responsible for a task, you will perform that task. When you rely on someone else’s work in an aspect of the performance of that task, you will give full credit in the proper, accepted form. Another aspect of academic integrity is the free play of ideas. Vigorous discussion and debate are encouraged in this course, with the firm expectation that all aspects of the class will be conducted with civility and respect for differing ideas, perspectives, and traditions. When in doubt (of any kind) please ask for guidance and clarification.

Accommodations for Disabilities

Disability Services at George Mason University is committed to providing equitable access to learning opportunities for all students by upholding the laws that ensure equal treatment of people with disabilities. If you are seeking accommodations for this class, please first visit http://ds.gmu.edu/ for detailed information about the Disability Services registration process. Then please discuss your approved accommodations with me. Disability Services is located in Student Union Building I (SUB I), Suite 2500. Email:ods@gmu.edu | Phone: (703) 993-2474

Privacy

Students must use their Mason email account to receive important University information, including communications related to this class. I will not respond to messages sent from or send messages to a non-Mason email address.

Other Useful Campus Resources

Writing Center
University Libraries
Counseling and Psychological Services (CAPS)
University Policies
GMU Academic Calendar