The object model is represented graphically with object class diagrams containing the object classes and their relationships. Each application-domain concept from the real world that is important to the application should be modeled as an object class. Classes are arranged into hierarchies sharing common structure and behavior and are associated with other classes. Classes define the attributes carried by each object instance and the operations that each object performs or undergoes.
The object class diagram should adhere to OMT's notation and exploit the capabilities of OMT, such as links and associations, inheritence (generalization and specialization), and aggregation. The attributes and operations need not be included in this diagram, as they will be described below in the object class specifications.
The dynamic model includes event trace diagrams describing scenarios. An event is an external stimulus from one object to another, which occurs at a particular point in time. An event is a one-way transmission of information from one object to another. A scenario is a sequence of events that occurs during one particular execution of a system. Each basic execution of the system should be represented as a scenario (this may correspond to the scenarios in your HCI mockup).
The dynamic model is represented graphically by state diagrams. A state corresponds to the interval between two events received by an object and describes the "value" of the object for that time period. A state is an abstraction of an object's attribute values and links, where sets of values are grouped together into a state according to properties that affect the general behavior of the object. Each state diagram shows the state and event sequences permitted in a system for one object class. State diagrams also refer to other models: actions correcpond to functions in the functional model; events correspond to operations on objects in the object model.
The state diagram should adhere to OMT's notation and exploit the capabilities of OMT, such as transition guards, actions and activities, nesting (state and event generalization), and concurrency.
The functional model is represented graphically with multiple data flow diagrams, which show the flow of values from external inputs, through operations and internal data stores, to external outputs. Data flow diagrams show the dependencies between values and the computation of output values from input values and functions. Functions are invoked as actions in the dynamic model and are shown as operations on objects in the object model.
The data flow diagram should adhere to OMT's notation and exploit the capabilities of OMT, such as nesting, control flows, and constraints.
Object classes are specified by their attributes and the behavior of their operations. Each object class specification must include both the attributes of the objects and the signature and transformation for each operation as well as any constraints on its application. The signature defines the interface to the operations (arguments and their types). The transformation defines the effect of the operation (output values as functions of input values and any side effects on operand objects). Each transformation must be described as a mathematic function by one of the following: mapping of inputs to outputs, table of I/O values, equations specifying outputs in terms of inputs, pre- and post-conditions, pseudocode, or natural language. The constraint should describe when the transformation is valid and what exceptions arise when it is not. The description should be an external specification, including only changes visible outside of the operation, and thus excluding any implementation details.
This specification should be organized by object class. Thus, this section might be organized as follows:
Object Class <class name>
...
Operation <operation name>:
Outputs: <list of outputs>
Transformation: <list of transformations from inputs to outputs>
Constraints: <list of constraints that must be observed for a valid transformation, exceptions, etc.>
NOTE: if desired, the test cases can be grouped with the design entity to which they apply, else a cross reference listing of some sort should be provided.