Modular Decomposition
November 2025
Systems
A system is a large-scale piece of software, it often consists of numerous subsystems
Subsystems are independent components of a larger system, they are often made up of smaller modules.
Modules
A module is part of a (sub)system and can be developed independently from other modules.
Modules often have their own set of characteristics/operations to ensure minimal coupling.
- They may also provide services to other modules
- They may be upgraded/deployed individually
- Modules are not considered to be systmes
Decomposition
- Functional Decomposition
- Data-oriented Decomposition
- Process-Oriented Decomposition
- Event-Oriented Decomposition
- Object-Oriented Design
Modular Decomposition
Decomposing a system into modules facilitates the development process
As tasks can be identified, this allows planning to use those individual parts to perform estimations.
Work Assignment
A work-assignment view can be used to decompose a system’s design into work tasks that can be assigned to teams or individual
This is quite good for planning.
| ECS Element (Module) | Organizational Unit | |
| Segment | Subsystem | |
| Science Data Processing Segment (SDPS) | Client | Science Team |
| Interoperability | Prime Contractor Team 1 | |
| Ingest | Prime Contractor Team 2 | |
| Data Management | Data Team | |
| Data Processing | Data Team | |
| Data Server | Data Team | |
| Planning | Orbital Vehicle Team | |
| Flight Operations Segment (FOS) | Planning and Scheduling | Orbital Vehicle Team |
| Data Management | Database Team | |
| User Interface | User Interface Team | |
| ... | ... | ... |
Tasks
Tasks can be defined within subsystems or modules.
It’s defined as a manageable part of the development process that can be done by one person in a reasonable time
Task Types
- Faults - fixing the system
- Wishes - Adding new functionality
- Changes - improving existing functionality
- Extenstion - Implementing more of the specification
Tasks in Agile
In Agile, the list of tasks are refered to as the backlog
Under Scrum, this is defined at the start of the project, team members select a number of items from teh backlog to implement for each sprint
The backlog may change during the project, as new requirements can be introduced.
Project Management
Project management involves a number of activities and tools to assist in the process.
General Management Tools
- Plan definition
- Resource Management
- Timeline (Gantt Charts)
- Task management tools (such as JIRA)
- Fault mangement tools
- sometimes integrated with task management software
- can be used to provide insight into effort and decisions involved in the fix of a particular problem
- Help prioritise development and QA
- Help assess the overall quality of a
Release Candidateapplication
- Fault management tool example: Bugzilla
Source Code
Decomposition is not exclusive to planning and modelling activities
Several programming techniques use similar strategies
This is often common in procedural programming and related paradigms
Complex algorithms can often be divided into simpler pieces
Code that involves different concerns can be organised into separate modules