Process (Software Engineering)
A process is a series of activities to achieve a result.
Link to original
Software Process
A software process specifies:
- series of activities to build software
- methods and tools used during each activity
- roles of team members and stakeholders
- ways of making decisions
A software process paradigm is a generic software process, providing a set of assumptions, concepts, values and practices to approach software development.
A software process model is a representation of a software process from a particular perspective.
Link to original
Waterfall
Waterfall Model
Below is a model of a typical Waterfall process, each stage occurs one after the other and developers cannot go back in stages.
- It encourages stable goals, and setting out requirements and specifications early in development.
- It requires careful planning.
- Encourages clear, complete and correct documentation.
Below is an extended Waterfall model which allows developers to feedback into earlier stages in development.
We can also split up development between different teams in this case:
Changes in the Waterfall process can prove to be more expensive as entire components and corresponding work may have to be removed as requirements change:
In practice, we always need to permit revisiting the previous stage.
Link to original
Incremental development
Incremental Model
An incremental approach is cumulative and adds something to the previous version. Several versions of the software are produced until a complete solution is ready.
Incremental delivery is a process where each increment is delivered to the customer as a working end product.
Link to original
Iterative development
Iterative Model
An iterative approach refines the current solution to bring it closer to the final goal. It may be developed through repeated cycles.
Link to original











