Class will meet Monday & Wednesday, 10:30-11:50 am, in WeH 3412.
Some of the assignments will make use of tools that are part of the SCS software engineering environment. Most of these tools are accessible from any SCS SunOS machine. If you are an MSE student you will already have access to this environment. Other students should see the instructor after the first class to fill out an application form.
The tools themselves are located in a subdirectory of /usr/misc/.se-support (which should be a symbolic link from your local disk). You will also 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.
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.
There is also a virtual lounge for the MSE program. It is a place that you can wander into electronically and partake of discussion, or simply eavesdrop on what is going on. This Moose Lounge is still under construction and more will be added as the course progresses. You can get to the lounge from the web page and should feel free to look around.
The 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 Requirements & Specifications by Michael Jackson published by Addison-Wesley, 1995. We will also use a collection of supplementary readings. These will be sold at the bookstore at a price that covers their cost. You are expected to purchase these readings; it is not appropriate to use SCS copying accounts or copier numbers to avoid doing so.
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:
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 (time-stamped before the beginning of class) to Elizabeth (ebigelow@cs.cmu.edu) or turn in hard copy (14 point) 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 be five homework assignments. Each will count 10% of your grade. The first three 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 fourth assignment will give you some practice using formal models of software architectures. The fifth assignment will give you a chance to reflect upon architectures used in previous assignments and will be done individually.
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 [Sha+95] and the MSE studio. Your grade depends both on the quality of your design and analysis and on its presentation.
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 constructively participate in class discussions.
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 time allotted. 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.
[_private/stdbot.htm]