Things You'll Need:
- Competence in an object-oriented programming language such as C++ or Smalltalk
- Integrated development environment software such as MS Visual Studio
- Flow chart software such as Microsoft Visio
-
Step 1
Use abstraction to encapsulate complexity. Highlight the important aspects of the problem. Suppress the unimportant aspects of the problem. Structure the concepts in a way that leads to the best solution. Make wise structuring decisions now, because later it will be too late to undo the interpretation.
-
Step 2
Modularize around entities--for example, "Window," "Product" or "Robot"--not according to processes or interactions.
-
Step 3
Take one module at a time and define its range of behavior, the number of possible states it can have and its interfaces with other modules. This process converts a module into an object.
-
Step 4
Represent the analysis model in Step 3 with a data flow diagram using Microsoft Visio or another data flow chart software. Present it to the customer for feedback. Consider all alternative scenarios by asking "What if...?" questions. Repeat this step until perfect.
-
Step 5
Add object reuse and extensibility to the system. Reuse enhances efficiency and extensibility lets new systems adapt more easily to new designs and migration.
-
Step 6
Choose a programming language such as C++, Smalltalk or Eiffel to implement the system. Do a mock implementation at first, with extremely limited background functionality, so that the customer can do a test drive for last-minute modifications. If the design is sound, the last-minute programming changes will be painless.
-
Step 7
Proceed to the next phases of the software lifecycle that are beyond the scope of this article.











