Professional Documents
Culture Documents
ENEL2SE-Ch02 Modeling The Process and Life Cycle SHORT
ENEL2SE-Ch02 Modeling The Process and Life Cycle SHORT
ENEL2SE-Ch02 Modeling The Process and Life Cycle SHORT
Modeling the
Process and Life Cycle
Contents
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.2
Chapter 2 Objectives
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.3
2.1 The Meaning of Process
• A process:
process a series of steps involving
activities, constrains, and resources that
produce an intended ouput of some kind
• A process involves a set of tools and
techniques
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.4
2.1 The Meaning of Process
Process Characteristics
• Prescribes all major process activities
• Uses resources, subject to set of constraints (such as
schedule)
• Produces intermediate and final products
• May be composed of subprocesses with hierarchy or
links
• Each process activity has entry and exit criteria
• Activities are organized in sequence, so timing is clear
• Each process guiding principles, including goals of each
activity
• Constraints may apply to an activity, resource or
product
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.5
2.1 The Meaning of Process
The Importance of Processes
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.6
2.2 Software Process Models
Reasons for Modeling a Process
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.7
2.2 Software Process Models
Software Life Cycle
• When a process involves building a software,
the process may be referred to as software
life cycle
1) Requirements analysis and definition
2) System (architecture) design
3) Program (detailed/procedural) design
4) Writing programs (coding/implementation)
5) Testing: unit, integration, system
6) System delivery (deployment)
– Maintenance
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.8
2.2 Software Process Models
Software Development Process Models
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.9
2.2 Software Process Models
1) Waterfall Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.10
2.2 Software Process Models
Waterfall Model (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.11
2.2 Software Process Models
Sidebar 2.1 Drawbacks of The Waterfall Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.12
2.2 Software Process Models
Waterfall Model with Prototype
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.13
2.2 Software Process Models
Waterfall Model with Prototype (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.14
2.2 Software Process Models
2) V Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.16
2.2 Software Process Models
3) Prototyping Model
• Allows repeated investigation of the requirements or design
• Reduces risk and uncertainty in the development
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.17
Prototyping Model
Advantages:
1) Users get a feel for the actual system.
2) Developers get to build something immediately.
3) Specifications can be developed incrementally.
Disadvantages:
1. Developers may make implementation compromises in
order to get a prototype working quickly.
2. The process in not visible (few documents that reflect every
version of the system).
3. Systems poorly structured.
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.18
2.2 Software Process Models
4) Operational Specification Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.19
2.2 Software Process Models
5) Transformational Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.20
2.2 Software Process Models
Transformational Model (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.21
2.2 Software Process Models
6) Phased Development: Increments and Iterations
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.22
2.2 Software Process Models
Phased Development: Increments and Iterations (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.23
2.2 Software Process Models
Phased Development: Increments and Iterations (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.24
2.2 Software Process Models
Phased Development: Increments and Iterations (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.25
Incremental Model
Advantages:
1) Customer value can be delivered with each increment so system functionality
is available earlier.
2) Early increments act as a prototype to help elicit requirements for later
increments.
3) Lower risk of overall project failure.
4) The highest priority system services tend to receive the most testing.
Disadvantages:
1. Increments should be relatively small (20,000 lines of code).
2. Can be difficult to map the customer’s requirements onto increments of the
right size.
3. Hard to identify common functions.
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.26
2.2 Software Process Models
7) Spiral Model
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.27
2.2 Software Process Models
Spiral Model (continued)
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.28
Spiral Model
Advantages:
1) Risks are explicitly assessed and resolved throughout the process.
2) Software engineers can start working on the project earlier rather than
wading through a lengthy early design process.
Disadvantages:
1) Requires highly skilled people in risk analysis and planning.
2) Requires more time, and is more expensive.
3) Estimates of budget and time are harder to judge at the beginning of the
project since the requirements evolve through the process.
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.29
2.2 Software Process Models
8) Agile Methods
• Emphasis on flexibility in producing software quickly
and capably
• Agile manifesto (platform)
1. Value individuals and interactions over process and tools
2. Prefer to invest time in producing working software
rather than in producing comprehensive documentation
3. Focus on customer collaboration rather than contract
negotiation
4. Concentrate on responding to change rather than on
creating a plan and then following it
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.30
2.2 Software Process Models
Agile Methods: Examples of Agile Process
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.31
2.2 Software Process Models
Agile Methods: Extreme Programming
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.32
Which software process model is best?
Ans.:
a) Depends on the project circumstances and requirements.
b) Combinations of models are used sometimes to get the benefits of
more than one model.
Criteria for evaluating models:
1. Risk management.
2. Quality / cost control.
3. Visibility of progress.
4. Early system functionality.
5. Customer involvement and feedback.
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.33
2.3 Tools and Techniques for Process
Modeling
• Notation depends on what we want to
capture in the model
• The two major notation categories
1) Static model: depicts (represents) the process
2) Dynamic model: enacts (endorses) the process
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.34
2.3 Tools and Techniques for Process Modeling
Static Modeling: Lai Notation
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.35
2.3 Tools and Techniques for Process Modeling
Dynamic Modeling
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.36
2.2 Software Process Models
Agile Methods: Twelve Facets of XP
(Reading)
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.37
2.2 Software Process Models
Sidebar 2.2 When Extreme is Too Extreme?
(Reading)
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.38
2.2 Software Process Models
Sidebar 2.3 Collections of Process Models
(Reading)
• Development process is a problem-solving activity
• Curtis, Krasner, and Iscoe (1988) performed a field
study to determine which problem-solving factors to
captured in process model
• The results suggest a layered behavioral model as
supplement to the traditional model
• Process model should not only describe series of tasks,
but also should detail factors that contribute to a
project's inherent uncertainty and risk
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.39
2.3 Tools and Techniques for Process Modeling
Dynamic Modeling: System Dynamics
(Reading)
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.40
2.3 Tools and Techniques for Process Modeling
Sidebar 2.4 Process Programming
(Reading)
• A program to describe and enact the process
– Eliminate uncertainty
– Basis of an automated environment to produce software
• Does not capture inherent variability of underlying
development process
– Implementation environment, skill, experience,
understanding the customer needs
• Provides only sequence of tasks
• Gives no warning of impending problems
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.41
2.4 Practical Process Modeling
Marvel Case Studies
(Reading)
• Uses Marvel Process Language (MPL)
• Three constructs: classes, rules, tool
envelopes
• Three-part process description
1. rule-based specification of process behaviour
2. object-oriented definition of model’s
information process
3. set of envelopes to interface between Marvel and
external software tools
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 2.42