Department of Computer Science and Software Engineering
CSSE574 Software Architecture and Design
Fall Term 2013-14
Any course changes will be in red below.
Instructor: Steve Chenoweth, Associate Professor
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
- I expect to be here shortly before class each week, and can stay after class.
- By appointment (see contact numbers, above) .
Software development and/or maintenance experience, and ability write and communicate effectively (this will make this course more meaningful).
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.
Students who complete this course should be able to:
- Describe and apply Object-Oriented Design (OOD) principles starting with domain models, and
- address architecture, component design, integration, and refactoring.
- Recognize the differences between problems and solutions and deal with their interactions.
- Apply fundamental design methods, patterns and strategies in the creation of a software system and its supporting artifacts.
- Demonstrate key decision-making activities necessary when selecting patterns, creating frameworks, and partitioning software for systems.
- Evaluate designs for feasibility and soundness.
- Describe fundamental ingredients of successful software product lines.
- 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.
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.
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.
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.
CSSE Honesty Policy (review the policy) 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.
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.
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 or 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
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 assignments may receive a deduction (or not be accepted at all), depending on the circumstances and the degree of lateness.
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.