Syllabus
CSSE 477 - Software Architecture


Rose-Hulman Institute of Technology

Computer Science and Software Engineering Department

Fall Term
2011-12

 

Description: \\MyDocs\MyDocs\chenowet\Documents\RH\H - 2010-11 school year\Fall\CSSE377\Website\syllabus_377_files\image007.jpg

 

Left – Familiar architecture, to us.  How do we know if it’s “good” or not?

General Course Description

CSSE 377, Software Architecture and Design II
6th Period MTRF in O233.
Four Credit Hours.
Prerequisites: CSSE 230 , CSSE 371, CSSE 372 and CSSE 374.

This is a second course in the architecture and design of complete software systems, building on components and patterns.  Topics include architectural principles and alternatives, design documentation, and relationships between levels of abstraction.


Who should take it:

This course is being taught for the sixth time this fall.   It is a required part of the SE curriculum.

We also welcome anyone else who likes software design and is interested in learning more about it.

General description:

How to design systems which a team of developers can implement, and which will be successful in the real world.   Highlights include theory and practice of human interface design, creating systems which can evolve, choosing software sources and strategies, prototyping and documenting designs, and employing patterns for reuse.

Objectives, with some related notes:

Students who complete this course successfully should be able to:

  1. Design and build effective human-computer interfaces using standard methods and criteria. (Extending what’s in CSSE 371 on this subject).
  2. Describe the basic ingredients of successful software product lines – How to do multiple releases of software.
  3. Analyze the quality attributes, economics and other global properties of existing designs and systems, and gain experience building systems so as to have desirable global properties. This is the heart of software architecture.  Includes also make vs. buy decisions, and discussion of component selection.
  4. Create and document the overall design for a system and document this design using UML and other methodologies and notations. This elaborates on the ways to develop, prototype and document architectures.
  5. Practice the process by which architectures get created, in terms of technologies, economics, people and processes – Extends the project work of CSSE 374, looking at more patterns and new angles, including also some full-blown design methods like use of different architectural styles.
  6. Describe the basic structure and functioning of systems using Service Oriented Architecture (SOA).

These course objectives are based on the SEEK topics for bachelors of software engineering (BSSE) programs,[1] and are an integral part of Rose-Hulman’s BSSE core:[2]  The objectives for Interaction Design are furthermore designed to fulfill the ACM-IEEE Computer Science Curriculum objectives for Human-Computer Interaction (HCI).

Instructor

Steve Chenoweth

Office: F-220 (Top floor, back of Moench Hall by the chimney)

Office Hours: Stop by any time my door is open. I of course will not be there during my classes; during the spring term my regular classes meet: My schedule is next to the door.

Or, feel free to make an appointment.

Phone: 877-8974 (office)
937-657-3885              937-657-3885      (cell -- I check messages regularly)
RHIT Email: chenowet@rose-hulman.edu (checked most often during office hours)
RHIT web site: http://www.rose-hulman.edu/~chenowet/

Required and Recommended Texts –

These are the correct editions of both books.  I’ve heard that the soft-cover version of Bass’s book is not quite the same.

Probably everyone already has all the Interaction Design book.  We also use it in CSSE 371.  

 

Description: \\MyDocs\MyDocs\chenowet\Documents\RH\H - 2010-11 school year\Fall\CSSE377\Website\syllabus_377_files\image008.jpg

Required

Description: \\MyDocs\MyDocs\chenowet\Documents\RH\H - 2010-11 school year\Fall\CSSE377\Website\syllabus_377_files\image010.jpg

Recommended

1.  Required:  Software Architecture in Practice, 2/E, by Len Bass, Paul Clements, and Rick Kazman, all of the Software Engineering Institute.  ISBN: 0-321-15495-9.  Publisher: Addison Wesley Professional.  Copyright: 2003.  Format: Cloth; 560 pp. Published: 04/09/2003.

2.  Recommended:  Interaction Design, by Jennifer Preece, Yvonne Rogers, and Helen Sharp.  Wiley; 2 edition (March 23, 2007). ISBN: 0470018666.

à This second book also has a companion web site which we’ll be looking at -- http://www.id-book.com/ .  Note:  We will be covering sections from this book which you did not cover in CSSE 371.

Grade Composition

This is a very interesting field. Hopefully, there will be a lot of class discussion.  I may revise the grade composition, based on your vote, in the column shown at right!

Component

Steve’s  original

(last time)

Class vote

(last time)

Class vote

(your class!)

Participation

10%

15%

 15%

Projects (7)

30%

30%

30% 

Homeworks (9)

20%

20%

20% 

Biweekly Quizzes (4)

25%

20%

20% 

Term Paper (1)

15%

15%

15% 

The Nature of these Activities:

Class Participation will include the usual as well as daily quizzes, so speak up in class, please!

Homeworks will be described under Assignments (with the early ones detailed, later ones to follow). Some of these are smaller projects. For example, I expect to have shorter design projects, some papers and short case studies, and possibly projects to review key aspects of the architecture of a Senior Project from this year. Also, the presentation on a book chapter, which you do as a team, counts as HW9.

The Projects will be a series of short extensions to your 375 project, if appropriate, or other large system you can get a team of your colleagues to work with you on.  We will be testing for or adding architectural attributes.  Presentations summarizing all of these by each team will be during Week 10, as Project 7. 

The Quizzes will be four bi-weekly quizzes of ½ hour each. Notice that there are no additional Tests; however, these quizzes will test your knowledge of the reading material and class discussions rigorously (as in, Discussion Questions at the ends of the chapters which aren't too time-consuming will be fair game).

The Term Paper will be done as a team, like the project activities, on a software architecture topic of interest to you and the class.  Each team will present as well as turn in the paper, and the class will give peer evaluations based on their comprehension of what you say.

Attendance Policy

Attendance is mandatory. If you cannot make it to class or lab for some reason or other, you are still responsible for all materials covered in class as well as all announcements.

Academic Integrity

See the departmental statement on academic honesty. Dishonesty on homeworks or exams may result in a lowered course grade or a grade of an F in the course.

Classroom Integrity

Ok, I made this one up, but it has started to make sense.  The main point of being in class to learn what everyone else is learning in the class, and to support their learning as well, with your own activities and expressions of your own eagerness to learn.  The thing to avoid, we think, is the opposite – interfering with your classmates’ learning in some way.  Like, say, doing something unrelated on your computer while they are trying to listen or hold a team meeting.  So, please observe this new agenda on Classroom Integrity and support your fellow students!  Thanks…

Updated:  6 Mar, 2005;  21 Feb, 2006; Feb 28, 2007, Feb 26, 2009, 26 Aug, 2010, 7 Sep 2010, 22 Aug 2011 26 Aug 2011.


[1] See, for example, http://sites.computer.org/ccse/volume/FirstDraft.pdf, pp. 23 – 36.  SEEK is an ACM and IEEE Computer Society founded effort to set common guidelines for subjects studied in SE programs. 

[2] And so the selection of subject matter for 374 and 477 relies on the distribution of architecture and design-related topics in Rose-Hulman’s CS and SE curricula.  For example, significant OO design work is included in the CSSE 120 – 220 – 230 prerequisites for this course.  Topics in software requirements engineering and spec writing are covered in CSSE 371, which is required for both CS and SE majors.