Software process and process models in Software Engineering - Time & Space Complexity
When we look at software processes and their models, we want to understand how the time to complete a project changes as the project size grows.
We ask: How does the effort or steps needed grow when the software gets bigger or more complex?
Analyze the time complexity of a simple software development process model.
// Example: Waterfall Model steps
1. Requirements gathering
2. System design
3. Implementation
4. Testing
5. Deployment
6. Maintenance
This model follows a fixed sequence of steps to develop software from start to finish.
Look for repeated work or loops in the process.
- Primary operation: Each phase is done once in order.
- How many times: Each step runs once per project, no loops inside the model.
As the project size grows, each step takes more time, but the number of steps stays the same.
| Project Size (n) | Approx. Effort |
|---|---|
| Small (10 features) | Effort grows a little |
| Medium (100 features) | Effort grows about 10 times |
| Large (1000 features) | Effort grows about 100 times |
Pattern observation: Effort grows roughly proportional to project size, but steps remain fixed.
Time Complexity: O(n)
This means the total effort grows in direct proportion to the size or complexity of the software.
[X] Wrong: "The number of process steps grows as the project gets bigger."
[OK] Correct: The steps in a process model are fixed; what changes is how much work each step requires.
Understanding how process steps relate to project size helps you explain project planning and effort estimation clearly.
"What if the process model included repeated testing cycles? How would that affect the time complexity?"