CSSE 577 – Software Architecture

Summer 2011

General course information

Meeting times and places

·       Tuesdays, Starting Tuesday, June 7, 5:30 - 9 PM (times to be adjusted as per class preference), through August 16, skipping only June 14.  Details will be on the class schedule.

·       At Beckman-Coulter, 5350 Lakeview Parkway South Drive, Indianapolis, IN 46268

 

Introduction

The skills and concepts you will learn in this course will provide the large-scale frame of reference for doing detailed design work. Since a significant number of software engineers also become software designer/architects, the course also provides specific skills for you to grow into this role in a software development organization. For example, businesses are very focused on getting the systematic savings of an integrated product line, where much of the development is shared across several products. How do you make that happen? Or, what does an architect do in interactions with clients, which lead to providing designs to satisfy their long-term needs?

Course Description

The official course description reads:  In this course, students are exposed to key software architecture principles, practices, technologies, and artifacts. Software architecture is an abstraction of system details that helps in managing the inherent complexity of software systems development. While the course focuses on the architecture design and management of software product lines, other topics include building on components and make/buy decisions, quality attribute optimization, alternative architectural styles, and architecture description languages (ADL). Students explore how software architecture provides opportunities for early evaluation of user needs, analysis of requirements and design, and prediction of system properties.

 

Prerequisite

Graduate standing or permission of instructor

 

Instructor

Steve Chenoweth

Email: chenowet@rose-hulman.edu

Phone(s):  812-877-8974 (office)      937-657-3885 (cell)

RHIT Office: Moench Hall, Room F220

 

Texts

Provided Texts

Software Architecture in Practice, Second Ed,

by Len Bass, Paul Clements, and Rick Kazman

(continued from CSSE 574, where this text was introduced).

AddisonWesley, 2003, ISBN 0-321-15495-9.

 

Software Product Lines,

by Paul Clements and Linda Northrop

Addison Wesley, 2001, ISBN 0-201-70332-7.

 

Learning Outcomes

Students who successfully complete this course should be able to:

  1. Describe basic software architecture styles, where and why each would be used based on an assessment of quality attributes.
  1. Show how the theory of software architecture leads to practices in managing the complexity of software systems development.
  2. Design a software product line, and be able to describe the savings and advantages of the overall process.
  3. Use components and make/buy decisions in the overall design of a system.
  4. Explain how architecture description languages (ADL) contribute to overall design.
  5. Match software architecture to user needs for a system, analyzing both the requirements and the design, and predicting system properties.

 

Course Evaluation and Feedback

Please feel free to provide feedback about the course at any time.

 

Grading

Examinations (2)                               30%                

Project Deliverables                           50%                

Project Mtgs./Class Participation       20%

             

Additional Information

 

This course is about the large-scale design of software systems.  A major goal is to provide practice using state-of-the-art tactics with tools and a structure which leads 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 and the course site 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 schedule on the website. Students may be expected to work on some assignments with other team members.

 

Assignments

 

Project assignments will be made each week. Unless otherwise requested, please post on Angel your journals with descriptions of what you did and code examples. 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. Except for software that you need to develop systems for your own organization, we require only email, MS Word, PowerPoint and PDF readers.

 

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 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.

 

 

Syllabus developed by Steve Chenoweth.