Object Oriented Software Specification
This document focuses on the part of functionality that you allocated
to software. The functionality now has to be described in more detail.
Use both prose and software system modeling representations. For object
oriented analysis modeling develop at least the following models:
- Realization Diagrams. In the Logical View create a Realization
Diagram for each Use Case. This will provide a logical link (a trace) between
user requirements (use cases) and realizations (class diagrams and interaction
diagrams). For each realization show which diagrams (class diagrams, sequence
diagrams, collaboration diagrams) realize a give use case.
- Class Diagrams. Focus on each of the Use Cases. Identify classes
that might implement each of the use cases. Show the analysis level details
for each class. List all attributes and methods. Show main (relevant) associations
among classes. Name each association in a meaningful way. Show multiplicity.
- Class Diagrams (aggregation). The aggregation relationships may be
shown either in the same Class Diagram as associations, or in a separate diagram.
You need to decide what is more natural and what will make it easier to understand
and analyze. Show multiplicity information.
- Class Diagrams (generalization).Generalizations, similarly as aggregations,
can be shown either in the same Class Diagram as associations, or in a separate
diagram. Identify generalization relationships among your classes. This is
very helpful, since you don't need then to implement two full classes. Instead,
attributes and methods of the more general class will be inherited by the
more specific class.
- Sequence Diagrams. For all Use Cases develop Sequence Diagrams. Show
interaction among objects arranged in a time sequence. These diagrams show
examples of interactions and do not need to be exhaustive, but it is a good
idea to be as complete as possible.
- Collaboration Diagrams. Show sequences of messages that are passed
among classes. Enumerate each message with a sequence number. Remember that
external elements are also represented in this diagram. Show also data and
control flow among classes to the level of methods.
- State Transition Diagrams (STDs). Develop a state transition diagram
for each class that has "interesting" behavior. Remember that all
the events need to be specified eather elsewhere (in other diagrams) or in
the STD, and that all specified events must be used in the state diagrams.