we design for people, hardware, software and data in an incremental prototyping process (Conger, 2008). We need to validate the design at each stage to make sure that we have done good so far.
Validation is the process of checking the design to make sure that it meets the requirements that been specified by end users or stakeholders (Thomas H, 2022). In ideal world, the validation process can be left until the development is finished, but in reality, we need to validate the design at each stage following the incremental approach.
The seven steps to performing an object-oriented design are (Conger, 2008):
Allocate objects to four subdomains, including human, hardware, software, or data.
Develop time-event diagrams for each set of cooperating processes and their objects.
Determine service objects to be used.
Develop Booch diagrams.
Define message communications.
Develop process diagram.
Develop package (i.e., module) specifications and prototype the application.
This text will talk a little bit about each step, and lists the possible validations for each step.
In the first step of object-oriented design, we need to allocate objects to four subdomains, including human, hardware, software, or data. The validation for this step is to make sure that we have identified all the objects that we need to design, and we have a clear understanding of the problem domain.
The second step is to develop time-event diagrams for each set of cooperating processes and their objects. The validation for this step is to make sure that we have identified all the processes that we need to design putting time dependencies into consideration, eg. functions that need to be executed in a specific order.
Thirdly, we need to determine service objects to be used. The validation for this step is to make sure that we have identified all the service objects that we need to design, and categorized them according to their functions as Synchronizing, Scheduling, and Multi Tasking objects.
Then, we need to develop Booch diagrams which lists all objects and their processes in the application including problem and solution domain objects. The validation for this step is to make sure that the Booch diagram is complete and correct, if during the diagram building we face any problems, we need to go back to the previous steps to fix them.
Next, we need to define message communications. We analyze every object and the messages that it needs to send/receive putting the type of object in mind. The validation for this step is to make sure that the input/output of every process is correct, and the messages are sent/received in the correct order.
Next, we need to develop the process diagram which defines the hardware environment and shows process assignments to the hardware. The validation of this process includes ensuring that processes are assigned to the right hardware; and analyzing every hardware and making sure that this hardware allows the processes that are assigned to it.
Next, we need to develop package (i.e., module) specifications and prototype the application. The validation for this step is to make sure that the design is complete and correct, and we can start to develop the application.