Course Mechanics


Lectures

Class will meet Monday & Wednesday, 10:30-11:50 am, in WeH 4615-A.

Computing

The assignments will require the use of a PC running Windows 95 or NT, and a network connection to the dogbert server running in the MSE domain of the Microsoft Windows Network. If you do not have other access to such a PC, there will be some machines set aside for non-MSE students' use in the MSE cave. You will need an SCS account if you do not already have one. (See Shawn Hurley after class for an account application form.)

There are also some tools located in a subdirectory of /usr/misc/.se-support in the SCS Unix environment. You will find documentation for most of the tools in those subdirectories.

There is a class afs directory, /afs/cs/academic/class/15675. It contains various templates and other documents that will be helpful throughout the course.

Communication

You will need to read the course bulletin board cmu.cs.class.cs675 regularly. We welcome e-mail about the course at any time.

Course materials will also be made available via the WWW.

Readings

The required textbooks for this course are Software Architecture: Perspectives on an Emerging Discipline, by Mary Shaw and David Garlan, published by Prentice Hall in 1996, and Software Architecture in Practice, by Len Bass, Paul Clements, and Rick Kazman, published by Addison-Wesley in 1998. There is also a recommended text Software Requirements & Specifications, by Michael Jackson, published by Addison-Wesley in 1995. We will also use a collection of supplementary readings. You should plan to buy these from Heather Marko in WeH 8120 (x8-2568). (You are expected to purchase these readings; it is not appropriate to use SCS copying accounts or copier numbers to avoid doing so.)

Grading

The course grade will be determined as a combination of four factors. Please note that late submissions will be penalized. Grading factors are as follows:

Questions on Readings: (30%)

Each lecture will be accompanied by one or more readings, which we expect you to read before you come to class. To help you focus your thoughts on the main points of the reading we will assign one or two (ok, maybe sometimes 3) questions to be answered for each of the reading assignments. Each question should be addressed in less than a page, due at the beginning of the class for which it is assigned. You can e-mail your solutions (in plain text, time-stamped before the beginning of class) to Shawn (shawnh@cs.cmu.edu) or turn in hard copy at the beginning of class. Each of these will be graded on a OK/not-OK basis, and will count for about 1% of your grade. There will also be three formal specification assignments: for these the questions will be somewhat more involved, and you will be given about a week following the associated lecture to complete them. Each will cound 3% of your grade.

Assignments: (45%)

There will be five homework assignments. The first four will count 10% of your grade and the last 5%. The first four will be system-building exercises. Their purpose is to give you some experience using architectures to design and implement real systems. You will work in small groups to carry out each assignment. To help clarify your designs we will hold a brief, un-graded design review for most assignments during class a week before it is due. Groups will take turns presenting their preliminary designs and getting feedback from the class and instructors. The fifth assignment will give you a chance to reflect upon architectures used in previous assignments and will be done individually.

Project: (25%)

The course project is designed to give you experience with the architecture of a substantial software system. You design and analyze the architecture of a software system, document your work, and present the results to the rest of the class. Projects will be drawn from various sources as well as the MSE studio. Your grade will depend on both the quality of your design and analysis and on its presentation.

Instructors' judgment

The instructors reserve the right to raise or lower the quantitatively determined grade depending upon their judgment of your mastery of the material; this judgment will be based partially on your ability to participate constructively in class discussions.

A hint and plea about presentations

The presentations you make in this course are for the purpose of stimulating discussion. You can't have a discussion unless there's time for other people to talk, too. So if you have 15 minutes to work with, you can't plan 20 minutes of presentation material and still have a productive discussion. A good rule of thumb turns out to be: Plan for your presentation to fill 50% of the allotted time. Don't do this by cutting out all the content and only presenting vague generalities. Instead, take time to think about the most important technical issues and spend most of your time on them.