CSE/ISE 308
Fall 2001
Stony Brook
Software Engineering
Annie Liu
Homework 4
Handout H4
Sept. 21, 2001
Due Oct. 2

Group Project Requirements Analysis; What I Did

This assignment has two parts, worth 90% and 10% of the grade, respectively. Printed/written copies of both parts are due on Tuesday Oct. 2.

Part I. Group Project Requirement Analysis.

Each group is asked to do requirement analysis and build UML class diagrams and use case diagrams for the group project. Below are a number of steps you should take to draw the diagrams (explained in more details in class), notes and tips, and what you should turn in.

1. Build classes

Identify things that you, as both user and developer for the system being built, need to talk about. These are the objects the system needs to handle.

Group and describe these objects using classes. For each class, identify a set of responsibilities. Make sure the the classes are clearly defined and the responsibilities are balanced.

For each class, provide attributes and operations needed to carry out responsibilities.

2. Build class relationships

Specify generalization relations. Abstract out common features for generalization; these are useful for balancing responsibilities.

Describe association relations for navigation, add multiplicities, and, if helpful for clarifying the relationship, add association names or role names; if the relation is a part/whole relation, indicate it as aggregation. If there is information particular about the association, use an association class.

Indicate dependency relations of one class using another in the argument signature of an operation. These can be omitted if methods have full signatures.

3. Build use cases

Identify actors that interact with a system or subsystem. Actors could be human beings, devices, data files, external systems, etc.

For each actor, consider primary ways it interact with the system; and consider exceptional ways it interact with the system.

Organize the behavior as use cases; apply include and extend relationships to factor common behavior and distinguish exceptional behavior.

You are required to draw complete class diagrams, i.e., identify and specify what you think are all the classes and relations in the system being built.

Note that, however, it is not necessary to draw all classes and relations in one diagram. In fact, it is preferred that you draw multiple diagrams grouping classes and relations that are closely related to each other. For example, suppose classes A and B are two main utility classes that are heavily related to the main part of the system that has classes C, D, and E, if classes A and B also use each other and two other utility classes F and G, then we can draw a diagram with A, B, C, D, and E, and another one with A, B, F, and G. Details of A and B can be exposed differently in the two diagrams.

You are also asked to draw class diagrams for existing systems that you plan to use (possibly with modification) as part of the system being built. For such systems, you only need to draw for the parts that your system needs to interact directly with.

You are asked to draw use case diagrams for all important use cases, i.e., those that are important for understanding the behavior of the system being built. Again, you don't need to draw all actors and all use cases in one diagram; you can present separate smaller diagrams.

Draw these diagrams using Rational Rose, which is installed on the NT machines in the Transaction Labs. Hand in printed (or written, only if you didn't succeed in using Rose) diagrams.

Part II. What I did.

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

Bonus.

1. Of course, requirement analysis needs to be based on the project description you have. You can see now that if you have a more precise project description, well thought out earlier, then requirement analysis is easier. If you do want to revise your project description, then state the problem and the fix, and add them (together with date of the addition) at the end of your project description page. Mention this in your handin, and you will get extra credit for improvements.

2. As in the Bonus part of Homework 1.