Software Process Improvement Strategies
Software Process Improvement Strategies
email: dietmarp@[Link]
Spring 2008
An Effective Process …
• provides guidelines for efficient development of quality software
• reduces risk and increases predictability
• promotes common vision and culture
Process Impact
(source: Rombach)
Life-Cycles Measurement
Processes
Reuse
Processes
Moderator
developer
Roles
assurer
Module
Quality
A = Approve
Tester
Activities S = Support
Module C = Consult
development
R
Module I = Inform
R
coding
Module
review S, R S A
Module
R I
testing
Test
Specification
Protocol
[Link] Data Upgrade
/ Tool-Upgrade
• a hierarchy of activities
Customer Data
• the control flow between activities
[Link] Test (Target) Data Delta
APS TSPA(fromP3)
[Link] DataUpgrade
Test
Protocol / Tool-Upgrade
Specification
Customer Data
Model world
Descriptive Prescriptive
process modeling process modeling
model
INF5180 – Spring 2008 Part 07: Processes and Process Modeling
- TSPA
- Customer Data (by Customer Data Delta)
- Possibly Integration Test (Host)
- Input complete
Input products and
- APS - Hardware available
- Conformance Test Cases
- Regression Test Cases
- APS and Customer Data loaded
- Test time available
entry conditions
Activity Description
Process Analysis
• The number of products is higher
(approx. twice as high) than the
number of processes.
• The complexity of product flow
interfaces of processes is relatively
high (most of the processes access
more then a dozen of products).
• Most of processes are undertaken by
several roles (partly over five roles).
• Most of roles are involved in
execution of more then a third of the
whole process.
30 Processes
Page 21 Copyright 2008 © Dietmar Pfahl
66 Products
42 Resources process
Views
view
view
view
Entire process
view
model
Artifacts view
Activities view
Process view
Product-Flow View
Refinement
Control-Flow View
Join/Split symbols:
AND (x), OR (+), XOR(⊕)
nil (empty).
Process View
Attributes View
(e.g. developer)
Process-user
Hypertext-View (EPG)
Consistency Checking
• Process models should be complete and
correct representations of reality.
• Consistency checking has been partly
automated in SPEARMINT.
• Methodological prerequisites:
– Process meta-model
– Consistency rules
Integrate
System test
Product
PROGRAM SPECIFICATIONS
CODING SPECIFICATIONS
The SAGE
Software CODING
SHAKEDOWN
CODING
USAGE
Code
Requirements Deliver
Test
System
Requirements
Testing
Analysis
Integration
System Design Testing
Unit
Object Testing
Design
Implemen-
tation
Testing
System
Testing
System
Requirements
Is validated by Operation
Analysis
precedes
Software
Requirements Client
Elicitation Acceptance
System
Requirements Integration
Analysis & Test
Component
Preliminary Integration
Design & Test
Implementation
INF5180 – Spring 2008 Part 07: Processes and Process Modeling
Sawtooth Model
Client
Developer
System
Integration
& Test
Requirements
Analysis Integration
& Test
System
Design
Implementation
Sharktooth Model
Client
Manager
Design System
Review Integration
& Test
Developer
Requirements
Analysis Component
Integration
& Test
System
Design
Unit
Object Test
Design
Implementation
INF5180 – Spring 2008 Part 07: Processes and Process Modeling
Prototyping: Overview
• Idea:
– Concentration on the development of an executable version of the system that
fulfills a limited number of requirements
– User interfaces are often simplified or performance requirements are reduced
– A primary goal is to collect experiences from first prototypes (e.g., regarding unclear
requirements, difficult design aspects)
– Getting first versions of the final product is usually not a goal
– Prototyping follows other process models
• Prerequisites:
– High level of experience with the used development techniques
– Technical infrastructure for prototype creation must be available
Prototyping
Advantages Disadvantages
• Can be applied without having yet a clear idea of (all) • Risk that “side effects“ are
the properties of the final product not sufficiently considered
– especially non-functional
• Misunderstandings between developer and customer requirements such as
can be detected early (and thus mitigated) reliability or safety
• Inconsistent requirements are (somewhat) earlier to • Risk that customer considers
detect prototype as first version of
• Comprehensive version & configuration management is the system that will be
not necessary (Æ prototype should be thrown away) evolved
– prototype should NOT be
• Risk of project failure is reduced (e.g., developing a seen as a first version of
product that does not satisfy the customer expectations) the system
• In some cases, prototypes are suitable for evaluating
business models
Project
Project
Start
Start
Problem Used
description
INF5180 – Spring 2008 system
Part 07: Processes and Process Modeling
Customer Usable
requirements system
Developer Ausführbares
Executable
requirements System
system
System
design
Unit Executable
requirements units
Unit
design
Unit
Page 56 Copyright 2008 © Dietmar Pfahl
code
Unified Process
• Family: Iterative Enhancement • Characteristics:
– use case driven
• Origin:
– architecture-centric
– Ivar Jacobson, James
Rumbaugh, Grady Booch, 1998 • Provides only rudimentary
instructions
• Defines process framework
• Refined version:
that is adaptable to
– Rational Unified Process (Ph.
– various application domains Kruchten)
– different organizations
– different competence levels
– different project sizes
Business modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Change & Configuration Mgmt
Project Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
Iterations
Page 59 Copyright 2008 © Dietmar Pfahl
Level of influence
Cost of changes
Customer
involvement
Management
involvement
Level of influence
Cost of changes
Customer
involvement
Management
involvement
Process Standards
Change Plan
established
7
12
Change Plan
established
1 2 3 4 11 13
Project Offer Project Project Acceptance Project
approved tendered contracted defined declared closed
System Delivery
5 specified performed 10
Auftragnehmer
Contractor
System System
6 70
Page drafted integrated 9 Copyright 2008 © Dietmar Pfahl
Kapitel 4.2
V-Model:
Project
Management (PM)
Sub-Model
Activity Types:
• Management-related
– Initialization/Finalization
– Periodically Required
• Placement/Procurement-related
• Planning-related
• Resource-related
Page 72 Copyright 2008 © Dietmar Pfahl
INF5180 – Spring 2008 Part 07: Processes and Process Modeling
V-Model: “Handling”
Project (Refinement)
Management (PM)
Sub-Model
PM1:
Project
Initialization
V-Model:
System
Development (SD)
Sub-Model
V-Model:
System
Development (SD)
Sub-Model
SD2:
System
Design
V-Model:
System
Development (SD)
Sub-Model
SD2:
System
Design
“Handling”
Page 76 (Refinement)
Copyright 2008 © Dietmar Pfahl
INF5180 – Spring 2008 Part 07: Processes and Process Modeling
”Light-Weight” Processes
(Evolutionary Development)
Extreme Programming
• Origin: Kent Beck, Ward Cunningham, Ron Jeffries (end of 1990s)
• Idea: “light weight” process model, agile process
• Characteristic:
– “Minimum” of accompanying measures (documentation, modeling , …)
– Team orientation (e.g., common responsibility for all development artifacts)
– Small teams (12-14 persons)
– Involvement of user/client at an early stage
– Social orientation
• Scope: Prototype projects, small projects, low criticality of the results
Extreme Planning
Programming:
Overview
1. User stories (something like use cases) are
written by the customer.
2. Complex stories are broken down into Iterative Phase
simpler ones (like a WBS).
3. Stories are used to estimate the required
amount of work.
4. Stories are used to create acceptance
tests.
5. A release plan is devised that determines
which stories will be available in which
release.
6. Don’t hesitate to
change what doesn’t work. [Link]
Extreme
Programming:
Planning
1. Each release is preceded by
a release planning
meeting.
2. Each day begins with a
stand-up meeting to share
problems and concerns.
3. CRC cards are used for
design. [XP and CRC were
created by the same person,
Kent Beck.]
4. Spike solutions are done to
assess risks.
5. The customer is always
available.
Extreme
Programming:
Iterative Phase
1. All code must pass unit tests,
which are coded before the
code being tested (test-driven
design).
2. Refactoring is done
constantly.
3. Integration is done by one
pair.
4. Integration is done frequently.
5. Optimization is done last.
Mobile-D
Defined by VTT for the
mobile phone industry in
Finland
Scrum
[Link]
INF5180 – Spring 2008 Part 07: Processes and Process Modeling
400
350
300
250 Estimates
Linear
200
Support Time
100
50
25.09.2006 26.09.2006 27.09.2006 28.09.2006 29.09.2006 02.10.2006 03.10.2006 04.10.2006 05.10.2006 06.10.2006
MUCH STRUCTURE
Low Strict
Communication
Informal Formal
Number of check points
Few Many
Experience
Much Little
MUCH STRUCTURE
LITTLE STRUCTURE
Small Big
Age (team)
High Low
Problem complexity
Little Big
Demand for precision
Little Big
Project length
Short Long
Page 95 Copyright 2008 © Dietmar Pfahl
Alistair Cockburn
• One of the initiators behind The Agile Alliance
• Known for the books Writing effective Use-cases and Agile Software
Development
• Has published a series of articles about Object orientation, Use-cases and
”human-oriented methods”.
• Started the company Humans and Technology where he now works as
consultant.
• Quotation from article in Crosstalk, October 2002*:
– Being agile is a declaration of prioritizing for project maneuverability with
respect to shifting requirements, shifting technology, and a shifting
understanding of the situation. Other priorities that might override agility include
predictability, cost, schedule, process-accreditation, or use of specific tools.
*) [Link]
INF5180 – Spring 2008 Part 07: Processes and Process Modeling
AC – Localising ”sweet-spot”
Planning is ”bad” and should be minimized
AC – Project categorizing
“Any one
methodology is likely
to be appropriate for
only one of the boxes it y
gil
on one of the planes. ofA
e
Thus, at least 150 or gre
De
so methodologies
are needed!”