For explaining all the OO design concepts which are passing an OO designers mind during design, I had to come up with an approach. So I haven chosen for "Starting by concept sketching and refining to final details" and doing that in steps.
So after the first step, we will start sketching the Class Diagram and refining it in steps based on the OO concepts until the Class Diagram contains the final details and is ready te be programmed.
Class Design Steps
Step 1 Determine actions from specification (Actions design)
Step 2 Determine classes from actions (Class Diagram without methods)
Step 3 Define methods (Class diagram with methods)
Step 4 Generalization (Class diagram with Generalized classes)
Step 5 Constructor Determination (Class Diagram with Factory classes)
Step 6 Composite Class Design (Class Diagram with Composite child classes)
Step 7 Design unit tests
These steps can be iterative to complete and check your design.
After you are fine with the design, the design is ready to be built.
Are all these separate steps needed?
The purpose of these steps is to give you a structured way to come to a good Class diagram.
When you have all the know-how of OO concepts (Class categories, OO principles and Patterns), and you can apply them directly on your class diagram, than it is not needed to follow these steps step by step.
This design method is especially created for making these "ABAP OO Design" blog posts, so probably here and there I will make some changes in the future.
The next blog post is about the first OO design step: