Divide Software Problem
A step in project assessment process is to break down your software problem into smaller parts. You can represent each part as a separate application or component.
Smaller components:
- Facilitate separation of concerns. 
- Are easier to work with. 
- Enable parallel development. 
- Promote reuse. 
When assessing a component for reuse, consider whether the component is:
- Reusable as is. 
- Reusable with slight variations. 
- Expected to be volatile. 
If you have access to System Composer™, you can use that software to graphically represent software components as you decompose the software problem and design a software architecture. For more information, see Author Architecture Models (System Composer).
As part of the decomposition process, identify data and execution dependencies, such as ports, function-call interfaces, and parameters that require tuning and signal data that must be measured during program execution.