A software Process is a set of activities that are used to specify, design, implement and test software applications.
These activities are used in the implementation and maintenance of various software applications and though the sequence of activities might differ, these activities are usually used in the software process.
What are the activities in a software process ?
The activities in a software process are:
- Specification: this is used to describe what you want the system to do. It includes the defining the business need and gathering the stakeholder requirements that would be used to define the software features needed to fulfill that business need.
- Design and implementation : this is used to describe how you want the application to look, how the software features should work, how the software should be built to fulfill the stated requirements and how the software would be implemented in the organization so that it can be used.
- Validation : this is used to test the software application to confirm that it works as expected, to ensure that it fulfills the stated requirements and validate that it does not break any existing software application.
- Evolution : this is the maintenance of the software application after it has been implemented. It includes managing the system to ensure that it remains functional and implementing new features to accommodate changing customer needs.
What is a Software Process Model ?
A Software Process Model is a visual representation of a software process. It is used to show the set of activities in the software process, their sequence of those activities and the relationship between the activities.
Are there different types of Software Process Models ?
There are different types of Software Process Models and some of them are:
- Waterfall model
- Incremental model
- Spiral model
- Iterative model
- Agile model
- Waterfall Model: The waterfall model is process model that is used to break down the project activities into linear sequential phases, where each phase is dependent on the deliverables of the previous phase. It is commonly used in high risk projects like engineering projects.
- Incremental model: The incremental build model is a software process model that involves designing, implementing and testing small pieces of the software solution incrementally until you have a complete product.
- Spiral model: The spiral model, is software development process model which looks like a spiral with many loops. It is used in managing high risk projects and is delivered in phases that are called loops.
- Iterative Model: the iterative life cycle model is used in exploratory projects where there is little or not information on the needed requirements. Due to the limited requirements, the Development team would start with a basic set of features that would increasingly become more complex as the project matures until it is completed.
- Agile model: the Agile method are set of methods and practices which are based Agile Manifesto principles. It is used to enable the Agile Development team to innovate and quickly adapt to the changing needs of the organization and its customers.