1 s e c

advertisement
Kristian Sandahl, IDA
krisa@ida.liu.se
Processes suitable for many projects
Kristian Sandahl, IDA
krisa@ida.liu.se
Detailed processes for teams and individuals
document
whiteboard
Processes adapted to a certain project or
product
Atomic
Worldly
The SLC is made up by:
Software life-cycle model
Activities
Kristian Sandahl, IDA
krisa@ida.liu.se
= time for concept -> time for “unavailability”
feed-back
out
side-effects
Universal:
in
resources
analysis design implementation
The software life-cycle
Feed-back
Resource consumption
Output
Input
decide
T
write SRS
X
M
V
Inspect
Entry
Task
Verify
Exit
Measure
SRS
# defects
Iterative model: “RUP”
Spiral model
Incremental model
Waterfall model
Software life-cycle models
E
plan
Example:
itself
A process that exits
under certain criteria
Result: software items
Kristian Sandahl, IDA
krisa@ida.liu.se
Kristian Sandahl, IDA
krisa@ida.liu.se
ETVXM-architecture:
A process that verifies
Sequence of steps
Process levels
Kristian Sandahl
krs@ida.liu.se
Software processes
The effector process
Software process
1
Implementation
Implementation
Implementation
Design
Design
Requirements
Design
Concept
exploration
Test
Test
Test
The release
planning
problem
Incremental model
Installation
Installation
Installation
Kristian Sandahl, IDA
krisa@ida.liu.se
Rn
R2
R1
Kristian Sandahl, IDA
krisa@ida.liu.se
Replacement
de Facto reference model
Requirements
forward engineering
Design
manageable
fixed documents
Implementation
frequent checks by SQA
Test
people
easy to understand good for
Installation
beginners
Operation
good for short projects < 12
weeks
Maintenance
Concept
exploration
Waterfall model
k
ac
-b
ed
e
f
R8
dependsOn
legend
R11
R1
R3
R5
R2
R7
R4
R12
R10
R9
R13
R6
R14
Requirement dependencies
Does not mirror the reality
Kristian Sandahl, IDA
krisa@ida.liu.se
Kristian Sandahl, IDA
krisa@ida.liu.se
Little room for problem solving and creativity
Late changes are practically not feasible
Many changes ⇒ large overhead costs
to become involved
Requires much experience from the customer
One-step delivery
Static problems with the waterfall
model
analysis &
planning
decision point
design &
implementation
http://www.sei.cmu.edu/
cbs/spiral2000/
See:
Original goal: handle
risks
Involves early phases
in increments ⇒
the process is iterative
The original spiral model
resources
Kristian Sandahl, IDA
krisa@ida.liu.se
Kristian Sandahl, IDA
krisa@ida.liu.se
calender time
One dynamic problem with the
waterfall model
2
Usage-based verification
Dedicated use of ETVXM
Committed to formal specification
Incremental method
Cleanroom process model
See: http://www306.ibm.com/software/awdtools/rup/
Kristian Sandahl, IDA
krisa@ida.liu.se
Kristian Sandahl, IDA
krisa@ida.liu.se
RUP – Rational Unified Process
Concept
Design
Requirements
Kristian Sandahl, IDA
krisa@ida.liu.se
Kristian Sandahl, IDA
krisa@ida.liu.se
Test
Implementation
See: http://www.extremeprogramming.org/
eXtreme Programming
Test
(Rapid Application
exploration
Development)
Focus on feed-back
Design
Negative:
too early commitment Implementation
hard to obtain quality?
Sometimes called RAD
Prototypig
Daily Build
Values:
Communication
Simplicity
Feed-back
Courage
Respect
User stories are written
Make frequent small
releases
Move people around
Choose a system metaphor
Create spike solutions to
reduce risk
Some XP-rules
The MS way
Regression testing
Smoke tests
Kristian Sandahl, IDA
krisa@ida.liu.se
wherever possible
Kristian Sandahl, IDA
krisa@ida.liu.se
Refactor whenever and
often and the score is
published.
Acceptance tests are run
tests before it can be
released
Leave optimisation till last
No overtime
All code must pass all unit
programmed
Code the unit test first
All production code is pair
The customer is always
available
Frequent increment installation and test
Incremental method
Idea: to always be prepared to deliver
Synchronise and Stabilise
3
Incremental
design
Stories
Code and Tests
Shared code
Root-cause
analysis
Shrinking teams
Team
continuity
Pay-per-use
Negotiated
scope contract
Daily
deployment
Single code
base
From: Roginski & Zmuda: LiTH-IDA-Ex-06/014-SE
Weekly cycle
Continuous
integration
Test-first
programming
Energized work
Ten-minute
build
Informative
workspace
Pair
programming
Slack
Whole team
Incremental
deployment
Secondary praxis
Real customer
involvment
Quarterly cycle
Primary praxis
Sit together
XP 2005
Kristian Sandahl, IDA
krisa@ida.liu.se
Kristian Sandahl, IDA
krisa@ida.liu.se
Animate, simulate or just make a table of
An interested community voluntarily evolves
Kristian Sandahl, IDA
krisa@ida.liu.se
Output: calendar time for analysis & planning
implementation
Input: calendar time for design &
different numbers
Play with the dynamics of the waterfall model
The code is published
the code
All results are free to use
Success #1: Linux
”Software culture”
Exercise
Open source
4
Download