Session 3 - Process Models

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 43

Session -3

A Generic Process
Model
Recap for session -2
• Software Engineering Definition - IEEE
• A Layered Technology
• Software Process
• Process framework Activities
• Umbrella Activities
• Software Engineering Practice
• Software Myths
Agenda for session -3
• A Generic Process Model
• Prescriptive Process models
1. Waterfall Model.
2. Incremental Process Model.
3. Evolutionary Process Model.
• Prototyping
• Spiral Model

4. Concurrent model
A Generic Process
Model
Software process
Process framework
Process framework

Umbrella
Umbrella activities
activities

framework activity #1 framework activity #2


SE action #1.1 SE action #2.1
 work tasks work tasks
task  work products task  work products
sets QA points 
 milestones
sets  QA points
milestones

SE action #1.2 SE action #2.2


work tasks work tasks
task  work products task  work products
sets  QA points sets  QA points
 
milestones milestones

The Generic process model is an abstraction of the software


development process. It specifies the stages and order of a process. 4
Process Flow: How the framework activities, actions,
tasks occur within each framework activity

5
Identifying a Task Set
• A task set defines the actual work to be done to
accomplish the objectives of a software engineering
action.
• A list of the task to be accomplished
• A list of the work products to be produced
• A list of the quality assurance filters to be applied
Prescriptive Process
models
Prescriptive Process
models
The name 'prescriptive' is given because the model prescribes a set of
activities, actions, tasks, quality assurance and change the mechanism for
every project.

What is the prescriptive process model?

A prescriptive process model is a model that describes "how to do"


according to a certain software process system. A prescriptive model
prescribes how a new software system should be developed
Prescriptive Process models

• Waterfall Model.
• Incremental Process Model.
• Evolutionary Process Model.
• Concurrent model

9
Prescriptive Process models
Waterfall Model
• Oldest software lifecycle model & best understood by
upper management

• Used when requirements are well understood and risk


is low

• Work flow is in a linear fashion (i.e., sequential)

• Used often with well-defined adaptations or


enhancements to current software
10
Waterfall Model

Communication
Project initiation Planning
Requirement gathering Estimating
Scheduling Modeling
Tracking Analysis Construction
Design Code Deployment
Test Delivery
Support
Feedback
Waterfall Model
Problems
• Real projects rarely follow sequential flow.
• Difficult for customers to state all requirements explicitly and
up front
• Requires customer patience because a working version of the
program doesn't occur until the final phase
• Doesn't support iteration, so changes can cause confusion
and Leads to “blocking states”.
Useful
• Where requirements are fixed and is to proceed to completion
in a linear manner.

12
Cons in Water fall model
• Real projects rarely follow the sequential flow that the
model proposes

• It is often difficult for the customer to state all requirements


explicitly

• The customer must have patience. A working version of the


program(s) will not be available until late in the project time
span
Advantages of waterfall
model
• waterfall model is simple and easy to understand,
implement, and use.
• All the requirements are known at the beginning of
the project, hence it is easy to manage.
• It avoids overlapping of phases because each phase
is completed at once.
• This model works for small projects because the
requirements are understood very well.
• This model is preferred for those projects where
the quality is more important as compared to the
cost of the project.
Disadvantages of the
waterfall model

• This model is not good for complex and object


oriented projects.
• It is a poor model for long projects.
• The problems with this model are uncovered, until
the software testing.
• The amount of risk is high.
The V-Model
The V-Model
• The V-model provides a way of visualizing how
verification and validation actions are applied to
earlier engineering work

• V- model means Verification and Validation model.


Just like the waterfall model, the V-Shaped life
cycle is a sequential path of execution of processes.
Each phase must be completed before the next
phase begins
The V-Model
Advantages of V-model:
• Simple and easy to use.

• 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.

• Defects are found at early stage.

• Works well for small projects where requirements are easily


understood.
The V-Model
Disadvantages of V-model:

• 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.
The V-Model
When to use the V-model:

• The V-shaped model should be used for small to medium


sized projects where requirements are clearly defined and
fixed.
• The V-Shaped model should be chosen when ample
technical resources are available with needed technical
expertise.
Prescriptive Process models-
Cont:-
Incremental Process Model
• Combines elements of linear and parallel process flows.
• It delivers a series of releases, called increments that provide
progressively more functionality for the customer as each is
delivered
• The first increment is often a core product.
• The plan addresses the modification of the core product to
better meet the needs of the customer and the delivery of
additional feature and functionality.
• It focuses on the delivery of an operational product with
each increment.

21
Incremental Process Model
• It is useful when staffing is unavailable for a complete
implementation.
• Increments can be planned to manage technical risks.

Communication
features
Software functionality and

Planning
Modeling (analysis, design)
Construction (code, test)
Deployment ( delivery, feedback)

Delivery of nth Increment

Delivery of 2nd Increment

Delivery of 1st Increment


22
Project calendar Time
Incremental Process
Model
Advantages of Incremental model:
• Generates working software quickly and early
during the software life cycle.
• This model is more flexible – less costly to change
scope and requirements.
• It is easier to test and debug during a smaller
iteration.
• In this model customer can respond to each built.
• Lowers initial delivery cost.
• Easier to manage risk because risky pieces are
identified and handled during it’d iteration.
Incremental Process
Model
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.
• Total cost is higher than waterfall.
Incremental Process
Model
When to use the Incremental model:
• 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
Evolutionary Process Model
• Software, like Complex systems evolve over a period of time
-Business and product requirements often change as
development proceeds.
- tight market deadlines make completion of a comprehensive
software product impossible, but a limited version must be
introduced to meet competitive or business pressure
- a set of core product or system requirements is well
understood, but the details of product or system extensions have
yet to be defined.
• Evolutionary models are iterative.
• Evolutionary Process Model produce an increasingly more
complete version of the software with each iteration.
• Specification, development and validation are interleaved.
26
Prescriptive Process models

Two types Evolutionary Process Model

• Prototyping
• Spiral Model

27
Evolutionary Process Model
1. Prototyping
• It assists you and stakeholders to better understand what is to
built when requirements are fuzzy.
• Prototyping paradigm
-begins with communication.
- planned quickly and modelling occurs
- quick design focuses on a representation of those aspects of the
software that will be visible to end users.
• It serves as a mechanism for identifying software
requirements.

28
Prototyping
Model(Diagram)
Quick
Planning

Communication
Start

Modeling
Quick
Deployment,
Design
Delivery,
and
Feedback

Construction
Of Prototype
29
Prototyping Model
Problems
• Overall software quality or long-term maintainability is
not considered.
• As a Software Engineer make implementation
compromises in order to get a prototype working
quickly.
Useful
• The customer get feel for the actual system and
developers get to build something immediately
• Key here is all the stakeholders should agree that the
prototype is built to serve as a mechanism for defining
requirements.
Prototyping Model
Advantages of Prototype model:
• Users are actively involved in the development
• Since in this methodology a working model of the
system is provided, the users get a better
understanding of the system being developed.
• Errors can be detected much earlier.
• Quicker user feedback is available leading to better
solutions.
• Missing functionality can be identified easily
• Confusing or difficult functions can be identified
Prototyping Model
Disadvantages of Prototype model:
• Leads to implementing and then repairing way of building systems.
• Practically, this methodology may increase the complexity of the
system as scope of the system may expand beyond original plans.
• Incomplete application may cause application not to be used as the
full system was designed
• Incomplete or inadequate problem analysis.
When to use Prototype model:
• Prototype model should be used when the desired system needs to
have a lot of interaction with the end users.
• Typically, online systems, web interfaces have a very high amount
of interaction with end users, are best suited for Prototype model. It
might take a while for a system to be built that allows ease of use
and needs minimal training for the end user.
Evolutionary Process Model
2. Spiral development
• Originally proposed by Barry Boehm.
• It couples the iterative nature of prototyping with the
controlled and systematic aspects of water fall model.
• Process is represented as a spiral rather than as a
sequence of activities with backtracking.
• Each loop in the spiral represents a phase in the
process.
• No fixed phases such as specification or design - loops
in the spiral are chosen depending on what is required.
• Risks are explicitly assessed and resolved throughout
the process.
33
Spiral model
• It is a realistic approach to the development of large-
scale systems and software.
• The software evolves as the process progresses, the
developer and customer better understand and react
at each evolutionary level.
• It uses prototyping as a risk reduction mechanism.
• It demands considerable risk assessment expertise
and realise on this expertise for success.

34
Spiral Model (Diagram)
Planning

Communication

Start Modeling

Start

Deployment Construction

35
Spiral Model
Advantages of Spiral model:
• High amount of risk analysis hence, avoidance of
Risk is enhanced.
• Good for large and mission-critical projects.
• Strong approval and documentation control.
• Additional Functionality can be added at a later
date.
• Software is produced early in the software life cycle
.
Spiral Model
Disadvantages of Spiral model:
• Can be a costly model to use.
• Risk analysis requires highly specific expertise.
• Project’s success is highly dependent on the risk
analysis phase.
• Doesn’t work well for smaller projects.
Spiral Model
When to use Spiral model:
• When costs and risk evaluation is important
• For medium to high-risk projects
• Long-term project commitment unwise because of
potential changes to economic priorities
• Users are unsure of their needs
• Requirements are complex
Evolutionary development
• Problems
• Do not establish the max. speed of the evolution.
• Systems are often poorly structured;
• Special skills (e.g. in languages for rapid prototyping) may be
required.
• Project management and estimation technique do not fit
completely.

• Applicability
• For small or medium-size interactive systems;
• For parts of large systems (e.g. the user interface);
• For short-lifetime systems.

39
Concurrent Model
• The concurrent development model sometimes called
Concurrent Engineering.
• It allows team to represent iterative and concurrent elements of
any of the process models.
• All software engineering activities exist concurrently but
reside in different states.
• Concurrent modeling defines a series of events that will trigger
transitions from state to state for each of the activities.
• Concurrent modeling is applicable to all types of software
development and provide an accurate picture of the current
state of a project.

40
Concurrent Model cont…

Concurrent models are those models within which the various


activities of software development happen at the same time, for
faster development and a better outcome. The concurrent model
is also referred to as a parallel working model
One element of the concurrent process
model
https://www.1000sourcecodes.com/2012/05/software-engineering-concurrent.html

Inactive State of a s/w


Modeling Activity eng. activity

Under
Development

Awaiting Under
Changes Review

Under
Baselined
Revision

Done
Questions:
1. What Classic life cycle model.
2. Disadvantages of Incremental Process Model.
3. Main drawback of Prototyping Model.
4. Speciality in Spiral Model.
5. Need of Process models in Software development.
6. Advantages of Spiral model.
7. Disadvantages of Spiral model.
8. Advantages of Evolutionary model.
9. Disadvantages of Evolutionary model.
10. Specialty of Concurrent model.
11. Difference between Waterfall model and Spiral model.

You might also like