|
Department
of Computer Science and Software Engineering
|
CSSE
574 |
Software Architecture and Design |
Fall Term 2013-14 |
Course Syllabus |
Any course changes will be in red, below.
Instructor: Steve
Chenoweth, Associate Professor
Email: chenowet@rose-hulman.edu
Phone(s):
812-877-8974 (office), 937-657-3885 (cell)
When: |
Mondays from 5:00 p.m. to 8:30 p.m., beginning September 16, 2013 |
Where: |
Interactive Intelligence, 7601 Interactive Way, Indianapolis, IN 46268.
|
Office Hours:
�
I
expect to be here shortly before class each week, and can stay after class.
�
By
appointment (see contact numbers, above)
Prerequisites:
Software development and/or maintenance experience, and
ability write and communicate effectively (this will make this course more
meaningful).
Course Description:
The architecture and design of complete software systems,
building on components and patterns. Topics include architectural principles
and alternatives, design documentation, abstract and detailed design, and
tactics for achieving quality attributes.
Course Outcomes:
Students who complete this course should be able to:
1. Describe and apply
Object-Oriented Design (OOD) principles starting with domain models, and
addressing architecture, component design, integration, and refactoring.
2. Recognize the differences
between problems and solutions and deal with their interactions.
3. Apply fundamental design
methods, patterns and strategies in the creation of a software system and its
supporting artifacts.
4. Demonstrate key decision-making
activities necessary when selecting patterns, creating frameworks, and
partitioning software for systems.
5. Evaluate designs for feasibility
and soundness.
6. Describe fundamental ingredients
of successful software product lines.
7. Analyze the quality attributes,
economics and other global properties of existing designs and systems.
Course Texts (Both of Which We Provide!):
Applying UML and Patterns: An Introduction to
Object-Oriented Analysis and Design and Iterative Development (third edition) by Craig Larman, Prentice-Hall, 2004, ISBN 0-13-148906-2
Software
Architecture in Practice, 3/E, by Len Bass, Paul Clements, and Rick Kazman, all of the Software Engineering Institute. Addison Wesley Professional, 2012. ISBN:
0321815734.
Introduction:
This course is about the design of software systems,
including new projects and analyzing / redesigning existing systems.� A major goal is to provide practice using
state-of-the-art tactics to achieve structure and attributes which lead to
long-term efficiency and effectiveness of development.� The students typically work on a project
relevant to their work or otherwise of interest to them.� Students may take on roles on others'
systems, such as helping to detail a design, serving as a stakeholder, or participating
in testing.
Expectations:
Students will be expected to attend and participate in class.
Students will be required to use the course website on Angel to obtain relevant
information, and interact with instructor and other students. Announcements and
assignments will be conveyed via email and/or posted on the website. Students
will be expected to work on some assignments with other team members.
Assignments:
Homework / project assignments will be assigned regularly.
Unless otherwise requested, please post these on Angel. Homework and projects
are necessary instruments for tracking progress of students. A typical student
will work approximately 9 hours outside of lectures each week on this course
(depending on background). This is a demanding course covering a great deal of
material -- please avoid falling behind on the assignments. While this course
is demanding, it is also rewarding for those that want strong understanding of
software requires as a discipline.
Academic Integrity:
CSSE Honesty Policy (see
http://www.cs.rose-hulman.edu/index.php/courses-mainmenu-28/82-honesty-policy.html)
governs class and performance. Joint study is allowed (even encouraged) on some
items as expressed by the instructor; however, each student must produce his or
her solutions individually. Students must not collaborate on tests or homework
that is passed in unless directed by the instructor.
Attendance Policy:
Please contact the instructor in advance if you are going to
be absent from class. While work commitments and emergencies can constitute a
legitimate reason for missing a class, attendance is otherwise mandatory. If
you cannot make it to class, you are still responsible for all materials
covered in class as well as all announcements.
Technical Requirements:
You should have a laptop to bring to class and to use in
completing assignments. Special software beyond, say, email, MS Word and
PowerPoint, will NOT be required.
Course Evaluation and Feedback:
Please feel free to provide me
feedback about the course at any time. I
also recommend that you keep a "course evaluation log" somewhere to
make notes that you can use for the course evaluation at both midterm and the
end of the course.
Course Average
Determination (possibly modified as discussed in first class session):
57%
|
Project
Work (8 milestones - see details below)
|
12%
|
Exam
1 |
12%
|
Exam
2 |
7% | Homeworks (2) Down from 20%, the rest adjusted to scale! |
12%
|
Class
Participation (including attendance) |
Team Project Work Breakdown (out of the above 50%):
40%
|
Project Artifacts
|
|
10%
|
Project Meeting/Discussion/Presentations
|
Course
Grade Division:
90-100 |
A |
85- 89 |
B+ |
80- 84 |
B |
75- 79 |
C+ |
70- 74 |
C |
65- 69 |
D+ |
60- 64 |
D |
0- 59 |
F |
Ethics and
Professional Practice:
You are expected to act honestly and professionally in this
course at all times, in a manner consistent with the school�s honor code.
Late Submissions:
Late assignments may receive a deduction (or not be accepted
at all), depending on the circumstances and the degree of lateness.
Exam Policy:
Exams will be take home, open book and notes. No exams will
be �dropped�. Giving a makeup exam for an unexcused absence is at the
discretion of the instructor. Any requests for regrading
must be made in writing by the beginning of the next class period after the
exams are returned.