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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.