Process (Software Engineering)

A process is a series of activities to achieve a result.

Link to original

Software Process

A software process specifies:

  • series of activities to build software
  • methods and tools used during each activity
  • roles of team members and stakeholders
  • ways of making decisions

A software process paradigm is a generic software process, providing a set of assumptions, concepts, values and practices to approach software development.

A software process model is a representation of a software process from a particular perspective.

Link to original

Waterfall

Waterfall Model

Below is a model of a typical Waterfall process, each stage occurs one after the other and developers cannot go back in stages.

  • It encourages stable goals, and setting out requirements and specifications early in development.
  • It requires careful planning.
  • Encourages clear, complete and correct documentation.

Below is an extended Waterfall model which allows developers to feedback into earlier stages in development.

We can also split up development between different teams in this case:

Changes in the Waterfall process can prove to be more expensive as entire components and corresponding work may have to be removed as requirements change:

In practice, we always need to permit revisiting the previous stage.

Link to original

Incremental development

Incremental Model

An incremental approach is cumulative and adds something to the previous version. Several versions of the software are produced until a complete solution is ready.

Incremental delivery is a process where each increment is delivered to the customer as a working end product.

Link to original

Iterative development

Iterative Model

An iterative approach refines the current solution to bring it closer to the final goal. It may be developed through repeated cycles.

Link to original