Software Process Models

Software process models can clearly express a set of activities for designing, implementing, and testing software systems. They are the conceptual representation of the development process. These models specify stages, represent the order of activities of the process and the sequence in which they are performed.

“The main aim of process models is to provide guidance for controlling and coordinating the tasks to achieve the end product and objectives as efficiently as possible.”

Types of Software Process Models-

Organizations perform their day-to-day work by utilizing software methodologies, frameworks and processes. There are many kinds of process models that meet various requirements. They are usually referred to as SDLC models (Software Development Life Cycle models). Some of the well-known models are as follows:

  1. Waterfall model.

In the waterfall model, activities follow a specific sequence and it works as per a planned schedule. The schedule is decided before actually starting the project. Phases are arranged in a linear order in the waterfall model.

The waterfall model is very easy to understand and is the first process model. A phase in this model needs to be completed before moving to the next phase. This is done to avoid overlapping among different phases. It follows a linear and a sequential flow. For moving to a new phase, previous phases must be complete. In software engineering design this model follows the typical approach.

2. V model.

The V model represents a methodology that extends the Waterfall Model. A typical V shape is developed by bending upwards after the coding phase, unlike the Waterfall model where it was unique and also linear. It highlights the relation between each phase of the software development life cycle and the associated phases in software testing. The horizontal axis represents time/project completeness and the y-axis represents a level of abstraction.

3. Incremental model.

The Incremental model is a method in which software is first carefully designed and then implemented. After implementation, it is tested incrementally until the final product is obtained. This process involves both the development and supporting aspects. It is declared as complete only when it satisfies all of the requirements.

Each iteration passes through requirements, designs, coding, and testing phases.

Functions are added to the formal release until the designed functions are fully implementable. It is a mixture of the Waterfall model and the Iterative Model.

4. Iterative model.

An iterative model does not start with a list full of specifications and requirements. It focuses first on user set features and then goes on with more complex and broader features.

It does this until a target is fully complete. So a project where code represents most of the documentation is a lightweight project but if the software is also specified it's a critical iterative project.

5. RAD (Rapid Application Development) model.

The Rapid Application Development (RAD) model follows iterative development with a little planned prototype. It is an incremental prototyping approach to software development. It puts less prominence on planning and more importance on an adaptive process. In RAD functional modules are developed in parallel for the fast delivery of the product.

The RAD model reduces development time and increases the reusability of components. When the application is placed into production, RAD results in a lower level of rejection. On contradictory it results in a sudden increase in expenditure than expected. Due to which RAD approach is more efficient while developing software that is driven by UI.

6. Spiral model.

The spiral model is a risk-driven process model which was introduced for tackling the shortcomings of the waterfall model. The name spiral itself says it is the model with many loops and, the exact number of loops is unknown. This model delivers projects in loops. Unlike other models, its steps aren’t activities but phases that address a problem that has a greater risk of causing an error.

Each loop of the spiral is called a phase of the development process. The project manager can vary the exact number of phases that are needed to develop the product depending upon the risk factors.

7. Agile model.

The Agile model refers to a specific set of methods and practices which depend on values expressed in the same manifesto. Manifesto represents a style of thinking that allows individuals to quickly respond to the changing needs of the industry and also eliminates risk.

So various frameworks are available such as canban, lean, scrum, etc. The main objective of this model is backed by the team's ability to develop and create a responsive environment.

Which model to choose?

It may seem difficult while choosing the right software process model for a project but, if we know our requirements well, it will be easier to select a model. Below are some of the factors that should be kept in mind while selecting an appropriate process model:

  1. Project requirements.

Take some time to go through the project requirements and clarify them by discussing them with your teammates. An answer to questions like will the requirements change during the development process? After each iterative session will the user need to specify requirements in detail?

2. Project complexity.

Having a clear idea of requirements is difficult in complex projects. The requirements in complex projects may suddenly change and the chance of delay is high. In such cases, you can choose the model based upon the frequency of monitoring your project.

3. Customer involvement.

An answer to questions like is there any need to consult the customers during the process? Do all users need to participate in each phase?

4. Project resources.

It involves the amount and availability of funds and other resources.

We hope you now have a better understanding of what are software models and how one should choose them. If you like reading this blog please give a clap and provide your feedback in the comments.

Thank you!

Written by: Yash Jadhav, Akash Dhadhiwal, Nikhil Ravulaparthy, Pratik Fandade, Adnan Sadar.

References:-

  1. https://en.wikipedia.org/wiki/Process_modeling
  2. https://www.tutorialspoint.com/sdlc/sdlc_quick_guide.htm
  3. https://www.visual-paradigm.com/guide/software-development-process/what-is-a-software-process-model/

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
YASH JADHAV

YASH JADHAV

Grounded and solution oriented software engineer.