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:
- 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.