Uploaded by Farzam Ali

Process Models Software Engineering

advertisement
Process Models:
Perspective Process
Models
Lecture by Engr. Sidra
SDLC
 Software Development Life Cycle (SDLC) is a series of
steps that must be followed by a development team
to develop and maintain software
 Why the software life cycle is important:
 It provides visibility for the engaged parties
 It allows to control the project
 Predictable deliveries throughout an entire development
process
 Eliminating risks like going over budget or deadline breach
 The process goes on until all the requirements are met
Lecture by Engr. Sidra
SDLC Phases
Lecture by Engr. Sidra
Perspective Process Model
 Perspective process models define a prescribed set of process elements and a
predictable process work flow.
 They can be adapted and extended to create more specific processes.
 The most used, popular and important SDLC models are given below:
 Waterfall model
 V model
 Incremental model
 RAD model
 Iterative model
 Spiral model
 Prototype model
Lecture by Engr. Sidra
Waterfall Model
• The waterfall model is also called as 'Linear
sequential model' or 'Classic life cycle
model'.
• In this model, each phase is fully completed
before the beginning of the next phase.
• Each phase depends on the deliverables of
the previous one and corresponds to a
specialisation of tasks.
• Feedback is taken after each phase to
ensure that the project is on the right path.
• Testing
part
starts
only
development is complete.
• It is used for the small projects.
Lecture by Engr. Sidra
after
the
Waterfall Model - Application
• Requirements are very well documented, clear and
fixed.
• Product definition is stable.
• Technology is understood and is not dynamic.
• Ample resources with required
available to support the product.
• The project is short.
Lecture by Engr. Sidra
expertise
are
Advantages of waterfall model
 Simple and easy to understand and use
 All the requirements are known at the beginning of the project,
hence it is easy to manage.
 Easy to manage due to the rigidity of the model. Each phase has
specific deliverables and a review process.
 Phases are processed and completed one at a time.
 Works well for smaller projects where requirements are very well
understood.
Lecture by Engr. Sidra
Advantages of waterfall model
 Clearly defined stages.
 Well understood milestones.
 Easy to arrange tasks.
 Process and results are well documented.
 This model is preferred for those projects where the quality is more
important as compared to the cost of the project.
Lecture by Engr. Sidra
Disadvantages of Waterfall model
 This model is not good for complex and object oriented projects.
 Poor model for long and ongoing projects.
 No working software is produced until late during the life cycle.
 High amounts of risk and uncertainty.
 Not suitable for the projects where requirements are at a moderate
to high risk of changing. So, risk and uncertainty is high with this
process model.
Lecture by Engr. Sidra
Disadvantages of Waterfall model
 It is difficult to measure progress within stages.
 Cannot accommodate changing requirements.
 Adjusting scope during the life cycle can end a project.
 Integration is done as a "big-bang. at the very end, which doesn't
allow identifying any technological or business bottleneck or
challenges early.
 The problems with this model are uncovered, until the software
testing.
Lecture by Engr. Sidra
V-Model
 The V-model represents a development process
that may be considered an extension of the
waterfall model.
 It is also known as Verification and Validation
model.
 The V-Model demonstrates the relationships
between each phase of the development life
cycle and its associated phase of testing.
 Under the V-Model, the corresponding testing
phase of the development phase is planned in
parallel.
 So, there are Verification phases on one side of
the ‘V’ and Validation phases on the other side.
The Coding Phase joins the two sides of the VModel
 This is a highly-disciplined model and the next
phase starts only after completion of the
previous phase
Lecture by Engr. Sidra
V-Model - Applications
 Requirements are well defined, clearly documented and fixed.
 Product definition is stable.
 Technology is not dynamic and is well understood by the project
team.
 There are no ambiguous or undefined requirements.
 The project is short.
Lecture by Engr. Sidra
Advantages of V- Model
 This is a highly-disciplined model and Phases are completed one at a time.
 Works well for smaller projects where requirements are very well
understood.
 Simple and easy to understand and use.
 Easy to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process.
 Testing activities like planning, test designing happens well before coding.
This saves a lot of time. Hence higher chance of success over the waterfall
model.
 Proactive defect tracking – that is defects are found at early stage.
 Avoids the downward flow of the defects.
Lecture by Engr. Sidra
Disadvantages of V-Model
 High risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where requirements are at a moderate to high
risk of changing.
 Once an application is in the testing stage, it is difficult to go back and
change a functionality.
 Very rigid and least flexible.
 Software is developed during the implementation phase, so no early
prototypes of the software are produced.
 If any changes happen in midway, then the test documents along with
requirement documents has to be updated.
Lecture by Engr. Sidra
Incremental Model
 The incremental model combines the elements of waterfall model and they
are applied in an iterative fashion.
 In incremental model the whole requirement is divided into various builds.
Multiple development cycles take place here, making the life cycle
a “multi-waterfall” cycle. Cycles are divided up into smaller, more easily
managed modules.
 The first increment in this model is generally a core product.
 Each increment builds the product and submits it to the customer for any
suggested modifications.
 The next increment implements on the customer's suggestions and add
additional requirements in the previous increment.
 This
process
is
repeated
until
the
product
is
finished.
For example, the word-processing software is developed using the
incremental model.
Lecture by Engr. Sidra
Incremental Model
 In
the
diagram
when
we
work incrementally we are adding piece
by piece but expect that each piece is
fully finished.
 Thus keep on adding the pieces until it’s
complete.
 This means that the customer can
evaluate the system at early stage in the
development to see if it delivers what’s
required. If not, then only the current
increment has to be changed and,
possibly, new functionality defined for
later increments.
 By developing the software incrementally,
it is cheaper and easier to make changes
in the software as it is being developed.
Lecture by Engr. Sidra
Incremental Model - Example
 As in the image below a person has thought of the application. Then he started
building it and in the first iteration the first module of the application or product is
totally ready and can be demoed to the customers.
 Likewise in the second iteration the other module is ready and integrated with
the first module. Similarly, in the third iteration the whole product is ready and
integrated. Hence, the product got ready step by step.
Lecture by Engr. Sidra
Incremental V/S Waterfall Model
Compared
to
the
waterfall
model,
incremental
development
has
three
important benefits:
The cost of accommodating changing customer
requirements is reduced.
It’s easier to get customer feedback on the work
done during development
More rapid delivery of useful software is possible
even if all the functionality hasn’t been included.
Lecture by Engr. Sidra
Incremental Model - Applications
 This model can be used when the requirements of the complete
system are clearly defined and understood.
 Major requirements must be defined; however, some details can
evolve with time.
 There is a need to get a product to the market early.
 A new technology is being used
 Resources with needed skill set are not available
 There are some high risk features and goals.
Lecture by Engr. Sidra
Advantages of Incremental model
 It is easier to test and debug during the smaller iteration.
 The customers can respond to its functionalities after every
increment.
 Generates working software quickly and early during the software
life cycle.
 This model is more flexible – less costly to change scope and
requirements.
 Lowers initial delivery cost.
 Easier to manage risk because risky pieces are identified and
handled during iteration.
Lecture by Engr. Sidra
Disadvantages of Incremental model
 Needs good planning and design.
 Needs a clear and complete definition of the whole
system before it can be broken down and built
incrementally.
 The cost of the final product may cross the cost
estimated initially.
 The demands of customer for the additional
functionalities after every increment causes problem
during the system architecture.
Lecture by Engr. Sidra
Download