CSE/ISE 308
Fall 2001
Stony Brook
Software Engineering
Annie Liu
Homework 7
Handout H7
Oct. 16, 2001
Due Oct. 23

Group Project Organization and Deployment; What I Did

This assignment has two parts, worth 90% and 10% of the grade, respectively. Printed/written copies of both parts are due in class on Tuesday Oct. 23. Each group should hand in one copy for Part I, and each person should hand in individually Part II.

Part I. Group Project Organization and Deployment.

Each group is asked to build complete models of the system, organize them and if possible identify patterns (mechanisms and frameworks in particular), and finally build component diagrams and deployment diagrams and generate code.

First, make sure that all structural and behavioral aspects of the system being built are captured in your models, i.e., some diagrams and/or documentations. Use diagrams as much as possible.

Then, relate them precisely to each other. For example, a set of sequence and collaboration diagrams realizes a use case; a set of sequence and collaboration diagrams or an activity or state diagram models an operation. You may need to revise the diagrams as you relate them.

Next, identify design patterns and architectural patterns and capture them as mechanisms (modeled as collaborations, i.e., class diagrams and interaction diagrams) and frameworks, respectively. These patterns may be good for a range of problems and applications. If this is not possible, state explicitly and explain why.

Finally, build component diagrams and deployment diagrams for your system, let components realize your classes, and generate (Java) code from them that has all the elements from the class diagrams. If you have done a good job with your class diagrams, then after this code generation, you just need to fill in method bodies based on your activity or state diagrams, and you get a complete implementation.

The steps for modeling realization of use cases, operations, and mechanisms (i.e., design patterns) using collaborations are as discussed in lecture 13. The steps for modeling components and deployment are as discussed in lecture 14.

Again, as also mentioned in class, for each diagram, give it a name and summarize its purpose in your specification. Add documentation and/or notes also for any aspect that is not self-explanatory with only the pictures.

Render and organize these diagrams as much as possible using Rational Rose. Hand in printed (or written, only if you didn't succeed in using Rose) diagrams as well as associated specifications.

Note that documentation can be, and should be, rendered using Rose also, and that you are asked to print out not only the diagrams but also associated specifications; if you do not wish to print out associated specifications because you think they do not add more information than the diagrams alone, say so explicitly.

For printing specifications, which have large default fonts and wide space everywhere, you may print to a file, fitting more things into one page, printing them double-sided, etc. For example, you may easily fit 4 default pages into 1, print double-sided, and hand in 3 pages, rather than 24 pages, of specifications.

Part II. What I did.

Describe what you did for the course this week, as in Part III of Homework 1.

Bonus.

1. If you have any improvements to previous homeworks that are not in the requirement above, you may present them explicitly as improvements (exactly what were the problems and what are the fixes), and describe the changes (exactly what is the same and what is different). You could attach either complete new specifications or just the changed parts. You will get extra credit for such well-documented improvements.

2. As in the Bonus part of Homework 1.