|
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- a cover
page listing your name, student ID, the course number and the
assignment number;
- 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.
|