Chapter 2 Process Models
Chapter 2 Process Models
Process Models
5
Waterfall Model
(Problems)
• Doesn't support iteration, so changes can cause
confusion
6
Incremental Model
(Diagram)
Increment #1
Communication
Planning
Modeling
Construction
Deployment
Increment #2
Communication
Planning
Modeling
Construction
Deployment
Increment #3
Communication
Planning
Modeling
Construction
Deployment
7
Incremental Model
(Description)
• Used when requirements are well understood
• Multiple independent deliveries are identified
• Work flow is in a linear (i.e., sequential) fashion within an increment
and is staggered between increments
• Iterative in nature; focuses on an operational product with each
increment
• Provides a needed set of functionality sooner while delivering optional
components later
• Useful also when staffing is too short for a full-scale development
8
Prototyping Model
(Diagram)
Quick
Planning
Communication
Start
Modeling
Quick Design
Deployment,
Delivery,
and Feedback
Construction
Of Prototype
9
Prototyping Model
(Description)
• Follows an evolutionary and iterative approach
• Used when requirements are not well understood
• Serves as a mechanism for identifying software requirements
• Focuses on those aspects of the software that are visible to the
customer/user
• Feedback is used to refine the prototype
10
Prototyping Model
(Potential Problems)
• The customer sees a "working version" of the software, wants to
stop all development and then buy the prototype after a "few
fixes" are made
11
Spiral Model
(Diagram)
Planning
Communication
Start Modeling
Start
Deployment Construction
12
Spiral Model
(Description)
• Follows an evolutionary approach
• Used when requirements are not well understood and risks are high
• Inner spirals focus on identifying software requirements and project
risks; may also incorporate prototyping
• Outer spirals take on a classical waterfall approach after requirements
have been defined, but permit iterative growth of the software
• Operates as a risk-driven model…a go/no-go decision occurs after each
complete spiral in order to react to risk determinations
• Requires considerable expertise in risk assessment
• Serves as a realistic model for large-scale software development
13
General Weaknesses of
Evolutionary Process Models
1) Prototyping poses a problem to project planning because of the uncertain
number of iterations required to construct the product
} }
}
Changed by C E() D()
Changed by B { {
X(g,h,I)
X(g,h,i)
} ---
Y()
18
Formal Methods Model
(Challenges)
• Development of formal methods is currently quite time-
consuming and expensive
19
The Unified Process
Background
• They eventually worked together on a unified method, called the Unified
Modelling Language (UML)
– UML is a robust notation for the modelling and development of object-
oriented systems
– UML became an industry standard in 1997
– However, UML does not provide the process framework, only the necessary
technology for object-oriented development
21
Background (continued)
• Consists of 5 phases:
1. inception,
2. elaboration,
3. construction,
4. transition,
5. production
22
Phases of the Unified Process
Inception Elaboration
planning
modeling
communication
construction
Construction
deployment
Production Transition
23
(1) - Inception Phase
• Encompasses both customer communication and planning
activities of the generic process
24
(2) - Elaboration Phase
• Encompasses both the planning and modelling activities of the generic
process
• Refines and expands the preliminary use cases
• Expands the architectural representation to include five views
– Use-case model
– Analysis model
– Design model
– Implementation model
– Deployment model
• Often results in an executable architectural baseline that represents a
first cut executable system
• The baseline demonstrates the viability of the architecture but does not
provide all features and functions required to use the system
25
(3) - Construction Phase
• Encompasses the construction activity of the generic process
• Analysis and design models from the previous phase are completed to reflect
the final version of the increment
• Use cases are used to derive a set of acceptance tests that are executed prior
to the next phase
26
(4) - Transition Phase
• Encompasses the last part of the construction activity and the first
part of the deployment activity of the generic process
• Software is given to end users for beta testing and user feedback
reports on defects and necessary changes
28
Unified Process Work Products
• Work products are produced in each of the first four phases of the
unified process
29
SOFTWARE ENGINEERING APPLICATION
30
DEVELOPMENT---- CHAPTER 2
Agile Process Models
– The prescriptive process models stress detailed definition, identification, and application
of process activates and tasks. Intent is to improve system quality, make projects more
manageable, make delivery dates and costs more predictable, and guide teams of
software engineers as they perform the work required to build a system.
– Unfortunately, there have been times when these objectives were not achieved. If
prescriptive models are applied strictly and without adaptation, they can increase the
level of organization.
– Agile process models emphasize project “agility (alertness)” and follow a set of
principles that lead to a more informal approach to software process. It emphasizes
maneuverability and adaptability. It is particularly useful when Web applications are
engineered.
• What are the unknowns? What data, functions, and features are
required to properly solve the problem?
• Myth 2: Until I get the program running, I have no way of assessing its quality.
• Reality: technical review are a quality filter that can be used to find certain classes of
software defects from the inception of a project.
• Many people recognize the fallacy of the myths. Regrettably, habitual attitudes and
methods foster poor management and technical practices, even when reality dictates a
better approach.