|
SWEN440: Software Requirements and Architecture
Engineering
|
Term:
Spring 2018
Meeting Times:
Section 01 – TR 2:00 PM – 3:20 PM, GOL (70) –
1550
Instructor:
Robert Kuehl, GOL 1551, rbkvse@ rit.edu,
office hours daily 1:30 - 2:00 PM by appointment.
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. Class 3,
Credit 3
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.
- System quality attributes and tactics.
- Software architecture design patterns.
- Software architecture design evaluation techniques.
- Application program interface design.
- Software architecture design specification.
- 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 of their
choosing.
Projects:
There will be a team project consisting of two phases:
- Elicit
and analyze the requirements for an external stakeholder, and document
their requirements in a software requirements document.
- Design and document an architecture that meets the needs
for a given software requirements specification.
Textbook(s):
- Software
Requirements, 3rd Edition,
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.
Attendance:
Come to class. We have 42 scheduled sessions. Missing one
session is equivalent to half a weeks worth of classes or 3% of the
quarter. Most sessions contain class team work that requires all team
members to be present to gain full benefit. You have one unexcused
absence (slept in, car won't start, etc.) with no consequences. After
that the following cumulative scale applies for additional unexcused
absences:
- One unexcused absence - 40% of participation grade
- Two unexcused absences - 20% of participation grade
- Three or more unexcused absences - 0% of participation grade
- Three
late arrivals will be considered as one absence – it is your
responsibility to notify the instructor the day you arrived late and
missed attendance call.
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.
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, guest speakers, and
especially in interaction with project sponsors.
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 |
Mid Term Exam |
20% |
Final Exam |
20% |
Requirements Project |
25% |
Architecture Project |
25% |
Quizzes, Activities, Participation |
10% |
The numeric to letter grade conversion 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.