Describe the alternatives that were considered during the design stage of the project. What were the considerations in choosing the best alternative strategy? Outline the design tools and techniques used for the project. You may draw any supporting structure charts and process design to support your description and import into the document.
Were CASE or object-oriented design techniques used for the project?
Below are approaches similar to what we apply in our developments.
* Algorithmic Design
It is a top-down design based on the functions performed by the system. It follows a "divide and conquer" strategy based on functions - more general functions are iteratively/recursively decomposed into more specific ones.
The primary design components correspond to processing steps in the execution sequence, similar to a recipe for cooking a meal.
* Object-oriented Design
This design is based on modeling classes and objects in the application domain. The classes and objects may or may not reflect the "real world".
It generally follows a "hierarchical data abstraction" strategy where the
design components are based on classes, objects, modules, and processes.
Operations are related to specific objects and/or classes of objects and groups of classes and objects are often combined into frameworks.
* Structured Design
This design is based on data structures input and output during system
operation. It generally follows a decomposition strategy based on data flow between processing components.
Its primary design components correspond to flow of data:
- Program structure is derived from data structure
- Data structure charts show decomposition of input/output streams
Ths method is often used as the basis for designing data processing systems.
Design tends to be overly dependent upon temporal ordering of processing phases, e.g., initialize, process, cleanup.
The design stage of a hypothetical work-related project is discussed.