Course Description
This course covers key drivers of software development project success - clear product requirements and an overall architecture design in response to those requirements.

Gathering and specifying software requirements is one of the most difficult aspects of software product development. This course will provide techniques for extracting/ eliciting architecturally significant requirements.

Given a set of software requirements, there are many ways to develop a product architecture that meets those requirements. This course will cover architecture styles for various types of software products, how to develop and document software architecture, and how to analyze proposed software architectures with respect to the software product requirements.

To properly create an architecture it is critical to understand how software and systems are put together. Which means you need to understand computers, networks, Operating Systems and how they all fit together. This class will also provide an introduction to those topics.

Prerequisites: one term of co-op and one of the following courses: SWEN-342, or a design elective.

Corequisite: SWEN-444.

Course Topics

The course will encompass a variety of concepts and topics, among them are the following:

Course Objectives
By the end of this course the successful student will be able to:
Method of Instruction

The course is a combination of projects, daily lectures, and in-class or homework activities. There will be assigned readings from the textbook and other materials. There will be 2 interim exams and a comprehensive final exam.

Textbooks - Recommended
  • Software Requirements, 3rd Edition, Karl Wiegers and Joy Beatty, Microsoft Press, 2013.
  • Software Architecture in Practice, 4th Edition, by Len Bass, Paul Clements and Rick Kazman, Addison-Wesley, 2021, ISBN 13: 978-0136886099
  • In-class materials and supplemental materials will be available on the course's myCourses site or on Wallace Library electronic books
Course Policies

Class Participation:

The participation grade evaluates attendance, in-class participation, and team participation. Attendance will periodically be taken, but you are expected to be present in all the class sessions. To receive full credit for in-class participation students must complete all quizzes and assignments on time, and contribute to the learning process in the classroom in a positive way.

Participate in class discussions. Stay off of your devices!! Demonstrate critical thinking by asking challenging questions, reflecting on and articulating your personal opinions, and critiquing the ideas of others. Initiate class discussion by offering and explaining your ideas and opinions, and providing relevant examples and anecdotes.

Project Participation:

Students are expected to actively contribute in team projects. Peer evaluations will be performed and an individual’s grade can increase or decrease the overall project grade based on these evaluations and instructor observations. A grade of ‘zero’ may be assigned to a project deliverable for any student who is clearly not engaged with their project team.

Attendance:

Come to class. You have one unexcused absence (slept in, car won't start, etc.) with no consequences. After that you may be penalized for unexcused absences:

Also, you will miss credit for activities that took place during classes that you were absent.

Make up exams will only be granted for very good reasons (job interviews known in advance, documented sickness, family emergencies, etc.) Heavy workload in other (maybe to you more important) courses is typically not a very good reason.
Typically late submissions will result in a 10% deduction. Late submissions after 1 week will not be accepted, unless special arrangements are made. Any adjustments to this policy may be applied in individual assignments.
Excused absences include documented illness, family emergencies, job interviews, or school related activities such as participation in an athletic team event. Contact the instructor to determine if an absence can be excused.

Be professional:

Practice common courtesy toward your classmates, your instructor, and guest speakers.
Grading Breakdown

A final course grade is a combination of your grades on exams, quizzes, class activities and team projects.

Component Percentage of Final Grade
App (Producer-Consumer) communications assignment 5%
Network client SMTP assignment 5%
Business Proposal and response assignment 10%
Exam 1 15%
Exam 2 15%
Final Exam 15%
Architecture Project (N-tier services) 30%
Quizzes 5%

The numeric to letter grade conversion is as follows:

Letter Grade Numeric Grade GPA Points
A93-1004.000
A-90-923.667
B+87-893.333
B83-863.000
B-80-822.667
C+77-792.333
C73-762.000
C-70-721.667
D60-691.000
FBelow 600.000

Note: The individual project grades may be adjusted in either direction from the team grade based on the assessment of your contribution by the instructor and your colleagues on the team.

* Please be aware that the myCourses grade-book feature will be used to communicate “raw” grades to you, but is NOT used for calculating final grades.