Software Process Models
Software process models can be described as an abstract representation of any software process, having the following specifications –
- Products – A product can be described as the outcome of a process activity.
- Roles – Responsibilities of the people, or team involved in a process.
- Pre and Post Conditions – Statements that are true before and after the process respectively.
Types of Software Process Models
- Waterfall Model – It is a plan driven model having different or separate phases of software process activities. (requirements, design and implementation,validation, evolution).
- Incremental Development – The software is developed as a series of different versions or increments. Each version adds a specific functionality to the software.
- Integration and Configuration – Integrates and configures the already developed components to develop a final product. Avoids developing components from scratch.
It is not limited to use a single process model, a complex or large scale projects generally use multiple process models, customized to best suit their needs.
Waterfall model is the oldest of all software development process models, and also referred to as classic software lifecycle model. In the waterfall model, tasks are done sequentially, that is, one after another, where output of one is sent to the next task, just like the waterfall.
Advantages of model, includes many aspects along with clarity in describing the status of software development.
Some advantages of Waterfall Model are
- Requirements are specified at the first step.
- Requirements, design, code, and test must be completed before releasing the software.
- Sequential transfer of output of one step to the next step.
- Software development progress can be easily tracked.
Incremental model is a modification over the waterfall model. It is based on the idea that the process of software development can be made easier by dividing the software into smaller components or units and distributed among different teams that can be further divided and distributed incrementally and iteratively.
In incremental models, components have to be integrated and then tested as a whole in a final system test. This strategy welcomes some risk too that needs to be managed.
Some advantages of Incremental Model are
- Generates softwares quickly and early during the software life cycle.
- Requirements can be changed at a further stage too, that leads to more flexibility and affordability.
- Easier to debug error, as error casing smaller components can be identified and fixed, instead of the whole code.
Integration and Configuration Model
Integration and configuration model is based on reuse, where existing components are reused and integrated into a system or software, rather than developing the software from scratch. This model prevents reinventing the wheel, as already developed components are reused.
Existing components are configured to adapt the functionality of the software.
Some advantages of Integration and Configuration Model are
- Mature functionality, as already developed and maintained components are used, instead of the scratch.
- Faster and easier development.