Object Oriented Design

Tom Kelliher, CS 319

Nov. 18, 1998


From Last Time

  1. Modular decomposition, domain specific architectures.


  1. Object oriented design: object model, inheritance & polymorphism, identifying objects, concurrent objects, analysis example.


Read Ch. 23.

Object Oriented Design

  1. What is an object --- from the point of view of the application and a principles of programming point of view?

  2. What are the components of an object? Advantages of objects? Disadvantages?

The object oriented development process:

  1. Object oriented analysis: Develop an object oriented model of the application domain. These objects may not map into system objects.

  2. Object oriented design: Develop an object oriented model of a software system which implements the requirements. May or may not be structured around application domain objects.

  3. Object oriented programming: Implement a software design in an object oriented language, incorporating classes and inheritance.

The Object Model

  1. Distinguish between object and object classes.

  2. What is the object model?

  3. Passive vs. active objects.

Inheritance & Polymorphism

  1. What is inheritance? Advantages? Disadvantages?

  2. What is multiple inheritance? Advantages? Disadvantages?

  3. Why is it a bad idea to use inheritance during the design process?

  4. What is polymorphism? What is it good for? Advantages? Disadvantages?

Object Identification

How do we determine the objects in a system?

No one method works all the time.

  1. Grammatical analysis: From a natural language system description, identify nouns as objects and actions as operations.

  2. Tangible entities in application domain: These become the objects. Then, identify operations.

  3. Behavioral techniques: First, understand overall behavior. Assign behaviors to different parts of the system, identifying initiators and participators.

  4. Scenario-Based analysis: Analyze various system scenarios, identifying objects, attributes, operations.

Concurrent Objects

  1. Again, active vs. passive objects.

  2. The best way to control/service a sensor?


Begin the object oriented development of a soda machine controller:

  1. Analysis: What process should be used to identify objects?

  2. Identify the objects in the system.

Thomas P. Kelliher
Tue Nov 17 14:52:50 EST 1998
Tom Kelliher