Home

What's New

Course Overview

Adding & Dropping the Course

Academic Honesty

Reading Materials

Course Schedule

Assessment & Assignments

Computing

Assignment 3

A UML Model of the Architecture of a Chat System

Due Monday, May 13, at the beginning of discussion. If you cannot attend discussion, then make arrangements with Joe or Eric to drop off your assignment with one of them before discussion. This assignment contributes 12% toward your final course grade.

Summary

Keeping with the chat system theme of the assignments in this course, in this assignment you will define a UML model for the architecture of a distributed chat system.

Chat System Description

Your UML model should be based on the same description of the chat system that was used in Assignment 2, with the following exceptions:

1. A Chat Client registers and unregisters for a Chat Room by interacting with the Registration Database rather than with the Chat Room. While a Chat Client is registered for a particular Chat Room, the Chat Client may login and logout with the Chat Room any number of times. A Chat Room allows a Chat Client to post messages to the Chat Room only if the Chat Client is registered for that room and currently logged in.

2. The "Buddy Alarm" component will not be used in this assignment and should be ignored.

Diagrams

Construct the following diagrams for your model of the chat system architecture:

  1. A UML class diagram of all the important classes you can identify for the chat system, and the associations between those classes. This diagram will include not only the classes that will be used to represent components in your architecture, but other relevant classes as well. An example of something you might choose to model as a class but not as an architectural component is a chat message. The definitions of each class should include all attributes and operations that you feel are appropriate for the class.
  2. An informal C2-style architectural diagram for the chat system. The names of the components in this diagram will be the same as the names of classes in the UML class diagram you construct in #1 that you have selected to represent components in the architecture. To simpify things, we are providing such a diagram for your use if you like. That diagram is available here.
  3. A UML class diagram defining interfaces for the classes you have selected to represent the components in your architecture. You may include these interface definitions either in the class diagram of #1 or in a separate class diagram. Remember that any class that will support one of these interfaces must itself define all the operations that are defined in the interface.
  4. A UML class diagram defining classes for the connectors of your architecture. You may include these interface definitions either in the class diagram of #1 or in a separate class diagram.
  5. A UML class diagram depicting the architectural configuration for the chat system. This diagram should be structurally similar to the informal diagram you created in #2, and it will depict the classes representing the architectural components and connectors, the interfaces supported by those classes, and the dependencies those classes have on the interfaces.
  6. At least two UML collaboration diagrams, each depicting a different interaction scenario among instances of the classes representing the architectural components and connectors. The scenarios you depict need not be very elaborate; you should aim for depicting about 6-12 individual interactions within each diagram.
  7. At least one UML state machine diagram depicting the high-level state transitions of a class representing a component in your architecture. This diagram need not be very elaborate; you should aim for abstracting the state-transition behavior of the chosen class in around 3-10 states (not counting initial states or final states). It should include, where appropriate, annotations on the state transitions (triggers, guards, etc.) that are consistent with your other diagrams.

Deliverables

You will turn in a report containing

  1. a cover page listing your name, student ID, the course number and the assignment number;
  2. the collection of diagrams.

To complete the assignment, you may use any UML or diagramming tool you have access to and are familiar with, including (but not limited to) Rational Rose, Argo/UML, Rhapsody, Together/J, MS PowerPoint or MS Word. You may NOT turn in hand-drawn diagrams. Whichever tool you use, you should ensure that you use valid UML syntax in all the UML diagrams.

In evaluating your work, 50% of the credit will be earned for the quality of the architecture and adherence to the C2 architectural style, and 50% for use of valid UML syntax and for attaining consistency between the different diagrams you create.


Copyright (C)2002 The Regents of the University of California. All Rights Reserved Worldwide.
Department of Information and Computer Science, University of California, Irvine.