Object Design Document

 

<<Project Name>>

15-612 Distributed Systems

Spring 1998

Carnegie Mellon University

Pittsburgh, PA 15213

 

 

 

 

 

 


Revision History:

<<version>> <<date>> <<writer>>

Preface:

Target Audience:

Client, Developers

NYEV Members:

Nelson Montalvo, Yenni Kwek, Eric Farng, Vincent Mak


1.0 System Model

1.1 Object Model

1.2 Dynamic Model

1.3 Functional Model

2.0 Class Interfaces

2.1 Campus Classes

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

class class_name: superclass_name

Class description

return_type operation_name (input_parameters)
requires
modifies
ensures


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

2.1 Campus Classes

<

2.2 Communication Classes

<

2.3 Database Classes

<

2.4 EMOC Classes

<

2.5 Tools Classes

<
<

2.6 UI Classes

<