Decomposition and Views
November 2025
Decomposition
Decomposition can be important to break a problem down into smaller parts
A decomposition can be nested, having a hierarchy where each lower decomposition contains more and more details.
Functional Decomposition
Functional decompostion creates modules and places functions/requirements in them
Top-level functions are the ones listed in the requirements specification
Then, lower level designs can divide the functions into subfunctions assigned to smaller modules
Functional decomposition describes which modules call each other
Data-Oriented Decomposition
Data-oriented decomposition provides insight into data structure.
The high-level design describes the data structures.
With lower-level designs describing how they are used in modules and how real-world data matches the modelled data types.
Process-Oriented Decomposition
- Focuses on concurrent processes
- High level design focusses on tasks and assigns them to runtime processes
- High level design describes how tasks can coordinate
- Lower level design describes processes in more detail
Event-Oriented Decomposition
- Focuses on system events
- Assigns event handling responsiblity to modules
- High-level overview catlaogues the expected input events
- Lower level descriptions decompose the system into states and describe how events trigger state transformations
Object-Oriented Decomposition
- Assigns objects to modules
- High-level design identifies objects, object types and object relations
- Lower-level designs describe object attributes and operations
Modularity
- A modular design is defined as a design with atomic software units with well-defined inputs and outputs
- A software unit is well-defined if it is accurately specified and describes externally visible behaviour properly