SE Lecture 3
SE Lecture 3
ENGINEERING
Week5: Process Models
2/24/2020 2
Quick Quiz
• What are the five generic framework activities of any
process?
2/24/2020 3
Process Flow
2/24/2020 4
Process Flow
• A linear process flow executes each of the five framework
activities in sequence,
• beginning with communication and culminating with
deployment
• An iterative process flow repeats one or more of the
activities before proceeding to the Next.
• An evolutionary process flow executes the activities in a
“circular” manner. Each circuit through the five activities
leads to a more complete version of the software.
• A parallel process flow executes one or more activities in
parallel with other activities (e.g., modeling for one aspect
of the software might be executed in parallel with
construction of another aspect of the software).
2/24/2020 5
“Traditional” Process Models
• Traditional process models define a prescribed set of
process elements and a predictable process work flow.
2/24/2020 6
Traditional Process Models Types
• Some Current models
• Waterfall
• V-Model
• Incremental Model
• Evolutionary Models
• Prototyping model
• Spiral Model
• Concurrent Model
2/24/2020 7
The Waterfall Model
• Sometimes called the classic life cycle
• The Oldest
• A systematic, sequential approach to software
development that begins with customer specification of
requirements and progresses through planning, modeling,
construction, and deployment
2/24/2020 8
The Waterfall Model
• When: when the requirements for a problem are
well defined and stable.
• Pros: How we tend to plan and do things
naturally
• Cons:
• Not efficient when change occurs
• difficult for the customer to state all requirements
explicitly in the beginning
• No working version till the end
2/24/2020 9
The V-model
2/24/2020 10
The V-model
• A variation in the representation of the waterfall model.
• Focus on the relationship of quality assurance actions to
the actions associated with communication, modeling, and
early construction activities.
• The V-model provides a way of visualizing how
verification and validation actions are applied to earlier
engineering work.
2/24/2020 11
Incremental Process Models
incre m e nt # n
Co m m u n i c a t i o n
Pla nning
Mo de ling
a n a ly s is Co n s t ru c t i o n
d e s ig n
code De p l o y m e n t
t est d e l i v e ry
fe e d b a c k
d e liv e ry o f
n t h in cre me n t
incre m e nt # 2
Co m m u n i c a t i o n
Pla nning
Mo de ling
a n a ly s is Co n s t ru c t i o n
d e s ig n c ode De p l o y m e n t
t est d e l i v e ry
fe e d b a c k
d e liv e ry o f
incre m e nt # 1 2 n d in cre me n t
Co m m u n i c a t i o n
Pla nning
Mo de ling
a n a ly s is Co n s t ru c t i o n
d e s ig n c ode
d e liv e ry o f
De p l o y m e n t
t est d e l i v e ry
fe e d b a c k
1 s t in cre me n t
• When:
• When there is need to provide a limited set of software functionality to
users quickly and then refine and expand on that functionality in later
software releases.
• Team is not enough
• Deadline is early
2/24/2020 13
Incremental Process Models
2/24/2020 14
Activity: Incremental Process Models
• Make teams of 5
• Each group discuss the following
• “word-processing software developed using the incremental
paradigm, how would you divide functionality on different
increments. Plan for 3 increments:
• Summarize your work
• Share your findings as a team
2/24/2020 15
Evolutionary Process Model
• 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.
• product that evolves over time.
• Evolutionary models are iterative
2/24/2020 16
Evolutionary Model: Prototyping
• In English: A prototype is an early sample, model, or release
of a product built to test a concept or process or to act as a
thing to be replicated or learned from.
• What it is?
• It can be used as a process
• It can be used as a technique within any other process
• When:
• A customer defines a set of general objectives for software, with no
detailed requirements for functions and features.
• The developer is unsure of the efficiency of an algorithm
• The developer is unsure of the adaptability of an operating system.
• The developer is unsure of the form that human-machine
interaction should take.
2/24/2020 17
Evolutionary Model: Prototyping
2/24/2020 18
Evolutionary Model: Prototyping
• Prototyping begins with communication. You meet with other
stakeholders to define the overall objectives for the software,
identify whatever requirements are known, and outline areas
where further definition is mandatory. A prototyping iteration is
planned quickly, and modeling (in the form of a “quick design”)
occurs. A quick design focuses on a representation of those
aspects of the software that will be visible to end users (e.g.,
human interface layout or output display formats). The quick
design leads to the construction of a prototype. The prototype
is deployed and evaluated by stakeholders, who provide
feedback that is used to further refine requirements. Iteration
occurs as the prototype is tuned to satisfy the needs of
various stakeholders, while at the same time enabling you to
better understand what needs to be done
2/24/2020 19
Evolutionary Model: Prototyping
• Why?
• assists you and other stakeholders to better understand what is to
be built when requirements are fuzzy
• What happens to the first prototype?
1. It will be thrown away because it is barely usable
2. OR prototype slowly evolves into the actual system.
2/24/2020 20
Evolutionary Model: Prototyping
• Pros
• Likable by stakeholders and software engineers
• Good for feedback
• Cons:
• Stakeholders see what appears to be a working version of the software,
unaware that the prototype is held together haphazardly, unaware that in the
rush to get it working you haven’t considered overall software quality or long-
term maintainability. When informed that the product must be rebuilt so that high
levels of quality can be maintained, stakeholders cry foul and demand that “a
few fixes” be applied to make the prototype a working product. Too often,
software development management relents.
• As a software engineer, you often make implementation compromises in order
to get a prototype working quickly. An inappropriate operating system or
programming language may be used simply because it is available and known;
an inefficient algorithm may be implemented simply to demonstrate capability.
After a time, you may become comfortable with these choices and forget all the
reasons why they were inappropriate. The less-than-ideal choice has now
become an integral part of the system.
2/24/2020 21
The Spiral Model
• is an evolutionary software process model that couples
the iterative nature of prototyping with the controlled and
systematic aspects of the waterfall model.
• Cycle through stages of waterfall with increasingly larger
pieces of functionality
• During early iterations, the release might be a model or
prototype.
• Pros: Feedback focused. Stable project, risk drivin
• Cons: Not parallelizable
2/24/2020 22
The Spiral Model
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
construction
delivery
code
feedback test
2/24/2020 23
The Spiral Model
• The first circuit around the spiral might result in the
development of a product specification; subsequent passes
around the spiral might be used to develop a prototype and
then progressively more sophisticated versions of the
software. Each pass through the planning region results in
adjustments to the project plan. Cost and schedule are
adjusted based on feedback derived from the customer after
delivery. In addition, the project manager adjusts the
planned number of iterations required to complete the
software.
• Continuity: Later, a circuit around the spiral might be used to
represent a “product enhancement project.” In essence, the
spiral, when characterized in this way, remains operative
until the software is retired.
2/24/2020 24
Other Models
• Concurrent Models
• Specialized process models:
• The Unified process UP
• Others
2/24/2020 25
•Questions?
•Comments!
•Concerns..
2/24/2020 26