04 - Software Development Methodologies

Class: CSCE-331


Notes:

When starting any new app or software development project, it's important to consider the various steps necessary for its final rollout. The steps needed for the software to function properly include, development, implementation/coding, testing, and regular maintenance.

No matter the type of software or app you're creating, a development and testing plan is an imperative aspect to the successful completion of any project.

We'll review the most popular development and software lifecycle management models below, along with their respective advantages and disadvantages.

8 Types of Software Development Models:

The Eight Types of Models in Software Engineering

1. Waterfall Model

Pasted image 20260125163119.png|450

The Waterfall Model is a linear sequential flow, often used with projects that have a defined set of requirements. Reflective of its name, the model's process flows steadily downwards through the phases of software implementation.

This model relies on the completion of the previous phase for the following to begin. Because the model does not support going back to previously completed phases, the Waterfall Model should be used with projects that do not anticipate unforeseen changes mid-development.

This approach was one of the earliest models used for software development.

Advantages and Disadvantages of Waterfall

2. V-Model

Pasted image 20260125163444.png|500

An extension of the Waterfall Model, the V-Model also functions as a sequential flow. However, instead of only moving linearly downward, the software development lifecycle bends upwards after the coding (for each of the testing phases).

For every phase in the downward sequence, there is a corresponding testing phase in the following upwards sequence. This model is used for projects where software requirements and tools are known upfront.

Advantages and Disadvantages of V-Model

3. Incremental Model

Built to mediate the shortcomings of the Waterfall Model, the Incremental Model consists of iterative and incremental development stages. The Incremental Model is essentially comprised of several mini Waterfall cycles.

This model divides the development into small sections/stages and it can allow the software developers to take advantage of learnings and insights gleaned from earlier development stages.

Advantages and Disadvantages of Incremental Model

4. RAD Model

Pasted image 20260125164057.png|350

Short for Rapid Application Development, the RAD Model is a modification of the Incremental Model. When implementing this model, several components are developed simultaneously as if they were smaller, individual projects. The different components are then assembled into working prototypes.

Advantages and Disadvantages of RAD

5. Agile Model

Pasted image 20260125164317.png|600

This model is rooted in process adaptability and user engagement with rapid delivery of functioning software components. It has both Iterative and Incremental features, as it breaks the product development into small incremental builds that are then provided in iterations.

The Agile Model relies on heavy collaboration between cross-functional teams and the customer/user.

Advantages and Disadvantages of Agile

6. Iterative Model

Pasted image 20260125164547.png|600

The Iterative Model relies on specifying and implementing individual parts of the software, rather than attempting to start with full specification requirements. Once a rough product is created within an iteration, it is then reviewed and improved in the next iteration and so on. The Iterative Model relies on the whole product being developed step-by-step (Design/Develop, Test, Implement).

Advantages and Disadvantages of Iterative Model

7. Spiral Model

Pasted image 20260125164809.png|600

The Spiral Model combines elements of both the Iterative and Waterfall development models, in efforts to combine advantages of top-down and bottom-up production. The Spiral Model has four phases - Identification, Design, Construct/Build, Evaluation and Risk Analysis. The software project repeatedly passes through these phases in iterations called spirals.

Advantages and Disadvantages of Spiral Model

8. Prototype Model

Pasted image 20260125165202.png|400

The Prototype Model relies on creating prototypes of the software applications or system software that are used to visualize various components of the software. This model is used to limit the gap of misunderstanding of requirements by providing ample collaboration and feedback with the user.

Advantages and Disadvantages of Prototype Model


Iterative Development Models

Take a mulligan

Prototyping

Spiral

Cleanroom