Creating a hybrid Functional-OO Design

  1. Do a functional decomposition and draw a structure chart.
  2. Using the Data Model from the Analysis phase, identify entities which are good candidates for data abstraction. (E.g., the Board in the Traffic Jam puzzle).
  3. Write an initial definition for the ADT (abstraction, structure, elements).
  4. Using the Structure Chart, identify the modules which will become the operations which act on the ADT. (E.g., Update_Board). Add the list of these operations to the ADT definition.
  5. Revise the module names in the structure chart by prefixing the ADT name to the module names. (E.g., Update_Board becomes Board.Update).
  6. Complete the ADT definition and code it in your implementation language.
  7. Write module headers for all the remaining modules in the structure chart (those which are NOT operations on some ADT). Code these in your implementation language.
  8. Compile the design.