Unit 1 Process Models
Unit 1 Process Models
Unit 1 Process Models
The waterfall model is the oldest paradigm for software engineering. When
requirements are well defined and reasonably stable it leads to a linear
fashion. The waterfall model considers that one phase starts after the
completion of the previous phase. That is the output of one phase will act
as input for the next phase. The phases do not overlap with each other in
the waterfall model.
The phases of the waterfall model can be seen in the below diagram:
Let’s see each of them clearly:
1. Communication
Before any technical work can commence, it is critically important to
communicate and collaborate with customers and other stakeholders.
The intent is to understand the stakeholders’ objectives for the project
and gather the requirements that help define software features and
functions.
2. Planning
Any complicated journey can be simplified by using maps. A software
project is a complicated journey and the planning activity creates a
map that guides the team as well as simplifies the software project
journey.
3. Modeling
Modeling in simple terms means creating a design before
approaching the bigger task. In terms of software engineering, a
software engineer does the same thing by creating models to better
understand requirements and the design that will achieve those
requirements.
4. Construction
After the design is ready we need to build the project based on the
design. The construction activity combines code generation(manual
or automated) using any desired programming language and testing
that is required to uncover all errors present in the code or the
system.
5. Deployment
In the deployment phase, the complete software or partially
completed software needs to be delivered to the customer who
evaluates the delivered product and gives their feedback.
Advantages:
Disadvantages:
2. V Model
The team first moves down the left side of the V to refine the problem
requirements.
Once code is generated, the team moves up the right side of the V,
performing a series of tests that validate each of the models created as the
team moved down the left side.
3. Incremental Model
Example:
Advantages:
Disadvantages:
Prototyping:
Usually, objectives defined by the customer are general but do not have
details like input, processing, or output requirement. The developer may be
unsure of the efficiency of an algorithm, adaptability of the operating system
or the form of human-machine interaction should take. In such scenarios, a
prototyping paradigm may offer the best approach.
Going ahead, planning quickly and modeling (software layout visible to the
customers/end-user) occurs.
Prototyping Advantages:
Prototyping Disadvantages:
1. The customer cries foul and demands that “a few fixes” be applied to
make the prototype a working product, due to that software quality
suffers as a result.
3. Customer and developer both must agree that the prototype is built to
serve as a mechanism for defining requirements.
Spiral Model
The spiral model can be adapted to apply throughout the entire life cycle of
an application, from concept development to maintenance.
Disadvantages:
1. It is not widely used and can be a bit costly to use.
2. Risk analysis requires highly specific expertise.
3. The project’s success is highly dependent on the risk analysis phase.
4. Doesn’t work well for smaller projects.
5. It demands considerable risk assessment expertise and relies on this
expertise for success.
6. It may be difficult to convince customers that the evolutionary
approach is controllable.