SWEN440: Software Requirements and Architecture Engineering
Term: Spring 2020
Instructor:
Section 01
Larry Kiser, GOL 1557, llkiee@rit.edu Office Hours TBD
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
eliciting, analyzing, specifying, validating, and managing software
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.
Prerequisites: one term of co-op and one of the following courses:
4010-441/SWEN-342, or a design elective.
Corequisite: 4010-444/SWEN-444.
Course Topics:
The course will encompass a variety of concepts and topics,
among them are the following:
Elicitation techniques to gather functional and non-functional system requirements.
Requirements analysis, specification, validation, and management techniques.
Requirements engineering and software architecture design in agile projects.
Course Objectives:
By
the end of this course the successful student will be able to:
Apply the primary activities associated with requirements engineering and
contrast differing approaches for performing those activities.
Distinguish the difference between a customer's statement of needs and a formal
requirements specification document.
Identify system quality requirements that influence architecture design
decisions.
Apply requirements engineering principles in the development of a
requirements specification and a requirements management process for a
specified application.
Understand software architecture descriptions and patterns and use these to design
new software systems in response to key functional and quality
requirements.
Create software architecture documentation that satisfies the needs of clients
and developers.
Describe the need for a big picture view of software requirements and design.
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 a mid-term exam
and a comprehensive final exam. There will also be an
opportunity
for students to evaluate the requirements and architecture design of an existing system.
Projects:
There will be two team projects consisting of multiple phases:
Project 1: Propose, Specify and Design a project of your own
Project 2: Analyse and Propose an architecture for a provided goal.
Textbook(s):
Software
Requirements, 3rdEdition,
Karl Wiegers and Joy Beatty, Microsoft Press, 2013.
Software Architecture in Practice, 3rd Edition, by Len Bass, Paul Clements and Rick Kazman, Addison-Wesley, 2013,
ISBN 13: 978-0321815736
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. Students
who
attend all classes will automatically get 50% of the participation
grade. Students wishing to receive full credit for project team
participation must participate in all team meetings and contribute to a
fair share of the work. 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.
Grading
Pass/Fail
All students with a 70% overall grade can receive a pass grade as an alternative to a letter grade.
This decision does not need to be made until the end of the term.
Plus/Minus Grades
A final course grade is a combination of your grades on exams,
quizzes, class activities and team projects.
Component
Percentage of Final Grade
Mid Term Exam
17%
Final Exam
17%
Requirements Project
28%
Architecture Project -- individual work only
28%
Activities
10%
The numeric to letter grade conversion is as follows:
A
n >= 93.0
A-
n >= 90.0
B+
n >= 87.0
B
n >= 83.0
B-
n >= 80.0
C+
n >= 77.0
C
n >= 73.0
C-
n >= 70.0
D
n >= 60.0
F
n >= 0
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.