< Methods




Breaking a complex IT system or problem into smaller parts ensures its maintainability and robustness, and facilitates cooperation in large-scale software projects.


Create a model of your system by breaking it into components, and then defining relationships. You can define models from different perspectives (e.g. static, dynamic and physical views).


  • A ‘divide and conquer’ mindset.
  • An appropriate modelling technique, like UML.
  • Knowledge of some (not all) of the requirements.
  • Knowledge of the end system and what changes are expected in the future (variation points).

In practice

Large companies use a wide repertoire of techniques (e.g. UML, SysML, C4 Model), while smaller companies often use a subset of these techniques. The extent to which these techniques are used depends on the needs in a project and can differ for various parts of the software.

Phase(s) of use

In the following project phase(s) decomposition can be used:

  • Design