The Object Design Document is an extension of the Requirements Analysis Document and expands the Object Models, Functional Models and the Dynamic Models from the Requirements Analysis phase, each with additional notation of detail.
The Object Design Document is different from the Requirements Analysis Document because the viewpoint of the document shifts from the client to the developers and it includes implementation and optimizations details with respect to the chosen hardware and software platforms.
1.0 System Model
1.1 Object Model
1.1.1 Models
<< Needed: Extended object models with descriptive text. The extended object model is the object model from the requirements analysis plus new classes, new associations, and new attributes found during object design.
1.1.2 Data Dictionary
<< Needed: Updated data dictionaries.
1.2 Dynamic Model
<< Needed: Extended dynamic models with descriptive text. <
1.3 Functional Model
<< Needed: Extended functional models with descriptive text. < return_type, input/output_parameters and side effects (See section 2.0 Class Interfaces).
2.0 Class Interfaces
<
<
Here is the template for the specification of a class:
Here is an example for a class Building:
class Building: Place
Building defines a physical structure in the city. It is possible tocreate an instance of a building; add an occupant; read the name, theoccupants, and the number of floors; and find the shortest path fromthis building to another.
Building (char* name, Location& loc, int number_of_floors) Constructor for Building, initializes name, location, and number_of_floors requires name!= NULL and number_of_floor 0 loc is a valid location modifies none ensures Returns a properly initialized building.
void Add_Occupant (Occupant& person) Adds person as an occupant of this building requires person!= NULL modifies person ensures person is in the occupant list of this building
char* Get_Name () Returns the name of this building requires this building has been properly initialized modifies none ensures name of the building is returned
Occupant* Get_Occupants () Returns all the occupants of this building requires this building has been properly initialized modifies none ensures complete list of occupants is returned
int Get_Floors () Returns the number of floors in this building requires this building has been properly initialized modifies none ensures number of floor of the building is returned
Path Shortest_Path (Building& other) Determines the shortest path from this building to other requires this building and other have been properly initialized and the location of the other building is reachable from the location of this building modifies none ensures shortest path from this building to other is returned