Prescriptive process models
Prescriptive process models prescribe a set of framework and other activities, quality assurance points, and software process-related elements. They define a workflow among these elements that shows their inter-relationship.
The process models described here are,
- Waterfall Model.
- Incremental Process Model.
- Evolutionary Process Model.
The Waterfall Model
The Waterfall model is also known as ‘Linear sequential model‘ or ‘Classic life cycle model‘. It is used in small projects where requirements are well defined and known before starting the project. Activities are carried out in a linear and systematic fashion.
The process starts with communication, where requirements are gathered from the customer and recorded.
Then goes to the planning stage where the cost and time constraints are estimated, a schedule is outlined and project tracking variables are defined.
Modelling is where a design based on the requirements and keeping the project constraints in mind is created. After this, code is generated and the actual building of the product is started in the construction phase.
Testing (unit testing, integration testing) is done after code completion in this phase.
Deployment is the last stage where the product is delivered, customer feedback is received and, support and maintenance for the product are provided.
Advantages of the waterfall model
- A simple model to use and implement.
- Easily understandable workflow.
- Easy to manage since requirements are known prior to the start of the project.
- Can be applied to projects where quality is preferred over cost.
Disadvantages of the waterfall model
- It may be difficult for the customer to provide all the specific requirements beforehand.
- Cannot be used for complex and object-oriented projects.
- Testing and customer evaluation are done at the last stages and hence the risk is high.
- Iteration of activities is not promoted which is unavoidable for certain projects.
- May lead to “blocking states” in which some project team members must wait for other members of the team to complete dependent tasks.
Incremental Process Model
The Incremental process model is also known as ‘Successive version model‘.
In the Incremental process model, a series of releases, called increments, are built and delivered to the customer. First, a simple working system(core product), that addresses basic requirements, is delivered. Customer feedback is recorded after each incremental delivery. Many increments are delivered, by adding more functions, until the required system is released. This model is used when a user demands a model of product with limited functionality quickly.
Advantages of incremental process model
- Flexible to change requirements.
- Changes can be done throughout the development stages.
- Errors are reduced since the product is tested by the customer in each phase.
- Working software available at the early stage of the process.
- Easy to test because of small iterations.
- The initial cost is lower.
Disadvantages of incremental process model
- Requires good planning and design.
- Modules and interfaces should be well defined.
- The total cost is high.
- Demands a complete planning strategy before commencement.
- Refining requirements in each iteration may affect system architecture.
- Breaking the problem into increments needs skilful management supervising.
Evolutionary Process Models
Evolutionary process models are opted when the requirements may tend to change and also when the complete sophisticated product delivery cannot be done before a given deadline, but the delivery of a limited version of it is possible.
In the incremental model, complete requirements are specified beforehand and these requirements are refined over time for each increment. The evolutionary model permits requirements, plans and estimates to evolve over time. Here we discuss prototyping and the spiral model.
Prototyping
In cases when the requirements are unclear and are likely to change or when the developer is doubtful about working of an algorithm, a solution is to build a prototype and find out what is actually needed. Hence, in this model, one or more prototypes are made with unrefined currently known requirements before the actual product is made.
A quick design is what occurs in a prototype model. The client evaluates the prototype and gives feedback and other requirements which are incorporated in the next prototype. This is repeated until the prototype becomes a complete product that is acceptable to the client. Some prototypes are built as “throwaways”, others are “evolutionary” in nature as they evolve into the actual system.
Advantages of prototyping
- Active involvement of the user.
- Errors are detected earlier.
- Feedback after each prototype helps in understanding the system better.
- Does not need to know detailed processes, input and output from the beginning.
Disadvantages of prototyping
- Multiple prototypes can slow down the process.
- Frequent changes can increase complexity.
- Unsatisfied client leads to multiple throwaways.
- The customer may not be interested or satisfied after evaluating the initial prototype.
Spiral Model
In spiral model, the software is developed through a series of increments. The diagram looks like a spiral with loops where each loop is a phase. Each phase is split into four sectors/quadrant.
The first circuit around the spiral might result in the development of a product specification. The subsequent passes around the spiral might be used to develop a prototype and then progressively more mature versions of the software.
Planning is where the objectives, alternatives and other constraints are determined. The alternatives are considered, risks in each alternative are analysed and prototypes are refined in the risk analysis sector. At the development quadrant level risks are known and it proceeds with developing and testing the product. In the assessment sector, customer evaluation of product developed is reviewed and the next phase is planned. This loop continues until acceptable software is built and deployed.
Hence, the spiral model follows an incremental process methodology and unlike other process models, it deals with the uncertainty by applying a series of risk analysis strategies throughout the process.
Advantages of spiral model
- Reduces risk.
- Recommended for complex projects.
- Changes can be incorporated at a later stage.
- Strong documentation helps in better management.
Disadvantages of spiral model
- Costly and not recommended for small projects.
- Demands risk assessment expertise.
- Looping is a complex process.
- Heavy documentation.