Process Models



index
Disabled back button Next Section
printable version




Section 0: Module Objectives or Competencies
Course Objective or Competency Module Objectives or Competency
The student will be able to evaluate and assess the multitude of systems development methodologies available in order to select the best methodologies or portions of methodologies for the software development project under consideration. The student will be able to list and explain a variety of system development methodologies.
Students will learn to evaluate and assess the multitude of system development methodologies available.
Students will will be able to explain that some methodologies, combination of methodologies, or adaptation of methodologies are more appropriate for certain types of projects.
Students will be able to discuss some of the conveniences and shortcomings of commercial off-the-shelf software.


Section 1: Process Models

Some texts refer to these as process models, system development methodologies, or even life cycles.

All are techniques designed to combine analysis, design, and implementation into a single iterative and parallel process of activities.



Section 2: Waterfall Model
Waterfall 
				Model

Waterfall Model

Features

Many developers use the waterfall model with little or no iteration, which can lead to problems.

Modified Waterfall Model

In response to perceived problems with the pure waterfall model, many modified waterfall models have been introduced. The modified waterfall model uses the same phases as the pure waterfall model, but the phases are allowed to overlap when needed.

Modified Waterfall 
				Model

Modified Waterfall Model

Development approaches must incorporate iteration into the model, as well as periodic user walkthroughs. This is similar to the Incremental Approach below.



Section 3: Spiral Model
Spiral Model

Spiral Model

There are various representations of the Spiral Model – Google it! Here is another common version.

Spiral Model

Spiral Model

Features



Section 4: Prototyping
Prototyping

Prototyping

Prototyping is a method of quickly developing a version of the new system that allows users to interact, evaluate, and provide feedback.


Types of Prototypes


Here is a set of prototyping notes from another professor.



Section 5: Incremental Approach

The incremental approach involves dividing the project into various independent parts and developing these sub-parts at the same rate or even at different rate and integrating them when ready.

Incremental 
				Approach

Incremental Waterfall Approach

Features


Benefits

In addition to the benefits that arise from being a variation of the waterfall model, the incremental model has the following benefits:


Drawbacks

However, if the incremental model is inappropriate or misused, it has the following disadvantages:



Section 6: Iterative Approach
Iterative Approach

Iterative/Incremental Development

Iterative development does not necessarily refer to the development of independent parts, but rather each iteration refines what has been developed in previous iterations.

Iterative and incremental development are essential parts of the modified waterfall models, Rational Unified Process, Extreme Programming and generally the various agile software development frameworks.


Features

Incremental Model

Incremental Model


Advantages


Disadvantages



Section 7: Evolutionary Approach
Evolutionary 
				Approach

Evolutionary Development


Concurrent Activities

Concurrent 
				Activities

Concurrent Activities


Problems


Applicability



Section 8: Rapid Application Development
Rapid Application Development

Rapid Application Development

Rapid application development (RAD) is a software development process that builds usable systems quickly (less than six months) and without extensive planning by using prototyping and by providing a number of tools to help build graphical user interfaces that would normally take a large development effort.


Features



Section 9: Computer-Aided Software Engineering (CASE) Tools

Examples of CASE Usage Within the SDLC

Examples of CASE Usage Within the SDLC


Section 10: Agile Methodologies
Agile Methodologies

Agile Life Cycle


Additional Views of the Agile Approach

The 
				Agile Approach

The Agile Approach



The Agile Approach

The Agile Approach

The Agile Methodologies group argues that software development methodologies adapted from engineering generally do not fit with real-world software development.

Not Doing 
				Agile Development

Not Doing Agile Development


When to use Agile Methodologies

If your project is small and involves


Five Critical Factors that Distinguish Agile and Traditional Approaches

Five Critical Factors that Distinguish Agile and Traditional Approaches

Distinguishing Factors



Section 11: Object-Oriented
Object-Oriented

Phases of OOSAD-based development


Rational Unified Process



Section 12: Commercial Off-the-Shelf Software
Cost Vs Custom

Cost vs. Custom



Section 13: Predictive and Adaptive Approaches to the SDLC

There are two types of Systems Development Life Cycle approaches – predictive approaches and adaptive approaches.