Development strategies designed to solve actual problems in an industry setting.

Software process models.

Malsha Samarakoon
3 min readDec 2, 2020

Before studying software process models, you should get to know about the characteristics of software processes. Understandability, visibility, supportability, acceptability and reliability are the most common characteristics.

Now let's discuss main software process models..

Waterfall model

Requirement Gathering and analysis

  • System Design
  • Implementation
  • Integration and Testing
  • Deployment of system
  • Maintenance

In the waterfall model there is a very clear compartmentalization of work. So it is easier to schedule the task. As documentations are provided in each phase, it is easier to maintain the quality of the product.

But at later stages, accommodating change is difficult. So it is difficult to respond to customers changing requirements. In the waterfall model, it is impossible to get one phase perfected. Therefore it is not suitable for large projects.

Incremental development

Here, the initial implementation is developing while exposing to user comments. So it can be refined through many versions until finishing the overall system. Specification, development, and validation are the main activities here.

In incremental development, it is very easy to get customer feedback on the development work. So it can develop useful software for the customer. And also the cost of accommodating changes is also reduced in incremental development.

But the As the system is developing quickly, the process is not visible to the managers to measure the process of the system. And system structure tends to degrade as new increments are added.

Incremental development is used for small or medium-size systems or parts of large systems and also short lifetime systems.

Reuse oriented model

The system is derived from the existing systems or components.

It can reduce the software to be developed. Reduce failure of the project and reduce the cost. Delivery can be done faster from reuse oriented model. But sometimes the system may not meet the real need of user. And also control of the system also may be lost as new versions of the components emerged.

Agile model

One of the most important models among others. It is a practice that promotes continuous iteration of development and testing throughout the SDLC. Here, both development and testing activities are processed concurrently. It encourages flexible responses to change.

Core values:

  1. Individual and team interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan

There are many more Software process models…

--

--