Software Design and Architecture Week 2
Software Design and Architecture Week 2
18
The classic development.
to software life cycle suggests a systematic, sequential approach
A variation of waterfall model
The V-Model depicts the relationship of
quality assurance actions to
the actions associated with
communication, modeling and
early code construction
activates.
19
The Incremental Model
increment
#n
Co m m u n i c a t i o
n Planning
Modelin
g Co n s t ru c t i o n
analysis
code De p l o y m e n
design
test t
d e l i v e ry
fe e d b a c k
delivery of
increment # nth
increment
2
Co m m u n i c a t i o
n Planning
Modelin
g analysis Co n s t ru c t i o n
design code De p l o y m e n
test
t d e l i v e ry
fe e d b a c k
delivery of
increment # 2nd
1 increment
Co m m u n i c a t i o
n Planning
Modeling
analysi Co n s t ru c t i o n
s
design
code
test
De p l o y m e n
t d e l i v e ry delivery of
fe e d b a c k
1st
increment
20
project calendar
time
The Incremental Model
• When initial requirements are reasonably well defined, but the overall
scope of the development effort precludes a purely linear process. A
compelling need to expand a limited set of new functions to a later
system release.
• It combines elements of linear and parallel process flows. Each linear
sequence produces deliverable increments of the software.
• The first increment is often a core product with many supplementary
features. Users use it and evaluate it with more modifications to better
meet the needs.
21
Evolutionary Models
• Software system evolves over time as requirements often change as
development proceeds. Thus, a straight line to a complete end product is not
possible. However, a limited version must be delivered to meet competitive
pressure.
• Usually a set of core product or system requirements is well understood, but
the details and extension have yet to be defined.
• You need a process model that has been explicitly designed to
accommodate a product that evolved over time.
• It is iterative that enables you to develop increasingly more complete
version of the software. 22
Q u ick p lan
Quick
Com m u n ication plan
communication
Mo d e lin g
Modeling n
Q u ick d e sig
Quick design
Deployment
Deployment
De live ry
Construction
delivery &
& Fe e dback of Con
prototype
stru ction
feedback Construction
of
prototype
of prototype
24
Evolutionary Models: The Spiral
• It couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model
and is a risk-driven process model generator that is used to guide multi-stakeholder concurrent engineering of
software intensive systems.
• Two main distinguishing features: one is cyclic approach for incrementally growing a system’s degree of
definition and implementation while decreasing its degree of risk. The other is a set of anchor point milestones
for ensuring stakeholder commitment to feasible and mutually satisfactory system solutions.
• A series of evolutionary releases are delivered. During the early iterations, the release might be a model or
prototype. During later iterations, increasingly more complete version of the engineered system are produced.
• The first circuit in the clockwise direction might result in the 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 results in adjustments to the project plan. Cost and schedule are adjusted based on feedback. Also, the
number of iterations will be adjusted by project manager.
• 25
Evolutionary Models: The
Spiral planning
estimatio
n
schedulin
g risk
communicati analysis
on
modeli
ng
analysi
star s
t design
deployme
nt constructio
delivery n
feedback code
26
test
Three Concerns on
Evolutionary Processes
• First concern is that prototyping poses a problem to project planning because of
the uncertain number of cycles required to construct the product.
• Second, it does not establish the maximum speed of the evolution. If the
evolution occur too fast, without a period of relaxation, it is certain that
the process will fall into chaos. On the other hand if the speed is too
slow then productivity could be affected.
• Third, software processes should be focused on flexibility and extensibility
rather than on high quality. We should prioritize the speed of the
development over zero defects. Extending the development in order to reach
high quality could result in a late delivery of the product when the
opportunity niche has disappeared.
27
Concurrent Model
• Allow a software team to represent iterative and concurrent elements of any of
the process models. For example, the modeling activity defined for the spiral model
is accomplished by invoking one or more of the following actions: prototyping,
analysis and design.
• The Figure shows modeling may be in any one of the states at any given time. For
example, communication activity has completed its first iteration and in the awaiting
changes state. The modeling activity was in inactive state, now makes a transition into
the under development state. If customer indicates changes in requirements, the
modeling activity moves from the under development state into the awaiting changes
state.
• Concurrent modeling is applicable to all types of software development and provides an
accurate picture of the current state of a project. Rather than limiting software
engineering activities, actions and tasks to a sequence of events, it defines a process
network. Each activity, action or task on the network exists simultaneously with other
activities, actions or tasks. Events generated at one point trigger transitions among 28the
states.
Concurrent Model
non
e
Modeling
activity
Awaitin
g
chang
es
Under
review
Under
revisio
n
Baselined
Don
e
29
Still Other Process Models
Incep
inception
tion
constr
Release uction
software
increment tr ansition
31
pr od
uction
UP Work Products
Inception phase
►These slides are designed and adapted from slides provided by Software Engineering: A
Practitioner’s Approach, 7/e
►(McGraw-Hill2009) by Roger Pressman and Software Engineering 9/e Addison Wesley 2011
by Ian Sommerville