Models in SE
Models in SE
Models in SE
Prescriptive Process
Waterfall Model
In a waterfall model, each phase must be completed fully before the next phase
can begin. This type of model is basically used for the project which is small and
there are no uncertain requirements.
In this model the testing starts only after the development is complete.
The waterfall model was the first process model to be introduced.
It is also referred to a linear sequential life cycle model.
Simple to understand and use.
In a waterfall model each phase must be completed before the next phase can
begin and there is no overlapping in the phases.
Waterfall model design
The waterfall approach the whole process of software development process of software
development is divided into separate phases.
In the waterfall model the outcome of one phases acts as the input for the next phases of
the waterfall model.
Requirement Gathering and analysis
All possible requirements of the system to be developed are captured in this phase and
documented in a requirements specification document.
System Design
System design is prepared.
System design helps in specifying hardware and system design requirements and also
helps in defining overall system architecture.
Implementation
With inputs from system design, the system is first developed in small programs called
units, which are integrated with the next phase.
Each unit is developed and tested for its functionality which is referred to as unit testing.
Advantages
Simple and easy to understand and use
Phases are processed and completed one at a time.
East to arrange tasks.
Disadvantages
Difficult to measure progress within stages.
No working software is produced until late during the life cycles.
V-Model
The V-Model is the SDLC model where execution of processes happens in a sequential
manner in V-shape.
It is an extension of the waterfall model and is based on the association of a testing phase
for each corresponding development stage.
This means that for every single phase in the development cycle there is a directly
associated testing phase.
This is highly disciplined model and the next phase only starts after completion of the
previous phase.
V-Model design
Under V-model
Under V Model the testing phase of the development phase is organized parallel.
Both the sides there are verification phases on one side and validation phases on the other
side of the V model.
Verification phases
Business Requirements Analysis
This is the first phase in the verification phase where the product
requirements are understood from the customer side.
System Design
Architectural design:
System design is divided in to modules taking on different functionality
(HLD).
Modular design:
Internal design for all the system modules are identified and also referred to
as LLD.
Unit tests can be designed at this stage based on the internal module designs.
Unit tests are essential part of any development process and help to eliminate
the maximum faults and errors.
Coding phase:
Suitable language is decided and performed.
Validation process
Unit testing:
Unit testing is the testing at the code level and designed in the module design
phase that is executed during the validation phases.
Its helps to eliminate bugs and all defects cannot be covered by unit testing.
Integration testing:
Integration testing is associated with the architectural design phase.
System check the entire functionality.
Most of the hardware compatibility issues can be uncovered during system
test execution.
Acceptance Testing
Acceptance testing is associated with the business requirement analysis phase
and involves testing the product .
It discovers the functional and nonfunctional issues.
V model applications
Requirements are well defined, clearly documented and fixed.
Product definition is stable.
Project is short.
Advantages
Phases are completed one at a time.
Works well for smaller projects where requirements are well understood.
Simple and easy to understand.
Disadvantages
Not a good model for complex projects
Poor model for long and ongoing projects.
Once an application is in the testing stage, it is difficult to go back and
change a functionality.
Iterative Model