Software Process Model

 


First thing first what is a process model? Well it  is a set of actives which describes the arrangement of the phase and also the dependency of the phases on each other.

Take for instance design specification, testing and ultimately implementation are the most important parts of the model.

Every model has certain properties

  • Order of phase
  • Activity associated with each phase
  • Time limit
  • Team
  • Tools and methods

These model are used by organizations for routine works to make the project more robust and flexible. Obviously there is a difference in actual execution for every organization. A lot depends on the skills of the team, size of the company or size of the project.

The process model can also be customized as per customers need and demands.

Think of it as a physical product it is measured by its performance and appearance but the software is judged mainly by its performance. Contradactory to this now many companies are working on  performance as well as appearance or what we know as user-friendly GUI.

Let’s discuss some most important models and their limitations in industry

Waterfall Model

The waterfall model is the oldest approach, In this method, project activities have a sequential order (Linear sequence), which in simple terms is described as one phase does not start until the previous phase has been finished.  

Waterfall Model

This model shows common engineering practices. This model does not offers flexibility and one cannot add or remove stages as per need. Even if we can it costs a lot of money which of course will reflect in the overall costs. This model works fine in small scale project, but in big projects, this model is time-consuming and not cost effective.

Evolutionary Model

In this model you get a head start with the core of the system that is already clearly defined or the company have had some previous experience in the field. The customer tests the part and defines his new requirement at every step. Possible iteratations until the customer is satisfied.

Feedback is important in any software model, if the company is getting feedback at every step of development, then it is the easiest and fastest way to track error, and new version developed in this process will most likely be error free.

This is the main disadvantage of the waterfall model.  

                                                                     Evolution Model

This model is most appropriate for small systems or projects with a shorter lifetime. This method is used when the customer is not sure about their requirement at the starting time of the project. Customer opinion is important at every stage of  the development.

Disadvantage

  • Due to the uncertain requirements of customers, major parts can be rewritten during the process.
  • The code is poorly structured due to continuous changes.
  • All these uncertainites definitely increases cost. 

Incremental Model

This model tries to combine the waterfall model and the evolutionary model. As the name suggests this method of software development is designed, implement, and tested incrementally. This model also creates a serval version of the software and every step increasing functionally. For example, if you want to make tea, you are putting sugar, milk and tea one by one and in the end you have tea.

Customer is able to use the most essential part of software before delivery. This model is popular in the present time

Spiral Model:

Each process is in the loop of a spiral. Each loop has four part:

  • Objective
  • Risk assessment and risk reduction
  • Development and validation
  • Planning the next phase

Summary:

  • The evoluation and incremental model are good for small and medium sized project.
  • Waterfall and spiral model are used for large project such as compnay or where more then one person are working.

0 Comments