Dictionary - "a plan or protocol for carrying out or accomplishing something"
A design (noun) is a plan on how to implement something. A blueprint..
To design (verb) means to create according to plan.
B. Object-Oriented Design
We view a program as a collection of nearly independent objects interacting for a common purpose. We focus on the data that the program manipulates and decompose the program into objects. An object is an instance of a class. A class is a grouping of objects with similar characteristics. An object has identity (or name), state and behavior.
C. Object-Oriented Design Process
The steps in object-oriented design (OOD) are the following:
1. Identify the High-Level Objects (really classes)
a). Usually some obvious one.
b). To find other objects - develop scenarios. By "walking" through scenario we may realize the need for additional objects. We pretend to be a user and run the program in our mind.
2. Determine Each Classes' Responsibilities
Describe each class in terms of its responsibilities. There are two - state and behavior.
Make sure to use complete sentences that are clear to the reader. Don't just list nouns, e. g., "tape identification" but include a verb such as "Keep track of tape identifciation data."
State - the information an object maintains.
The state becomes the collective information held by the data members of, for example, a C++/Java class.
Behavior - the operations an object can perform.
The behavior becomes the member functions in, for example, a C++ /Java class.
Common member functions are constructors for creating objects, assessor functions for accessing portions of the state, functions that set or manipulate the state and display functions.
3. Determine How a Class Collaborates with Other Classes
Describe how objects interact or work together (collaborations).
______________
Reference: Wirfs-Brock, Rebecca, Brian Wilkerson, and Lauren Wiener, Designing Object-Oriented Software, Prentice Hall.1990.