Contents Today What is Software Engineering 1? What is Software

advertisement
Contents
ˆ
Today
Introduction
ˆ What is Software Engineering?
ˆ Software Development Processes
ˆ Project Management
ˆ Requirements Engineering
ˆ Software Construction
ˆ Group processes
ˆ Quality Assurance
ˆ Software Management and Evolution
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
ˆ Software Development Processes
 What is that?
 The Waterfall Model
 The Spiral Model
 The V-Model
 Iterative and Incremental Development
 Agile Development
 CMM
 Systematic Process Improvement
2/9 - 08
What is Software Engineering 1?
“The establishment and use of sound engineering principles in order
to obtain economically software that is reliable and works efficiently
on real machines.”
NATO conference ‘68 in Garmisch
“ (1) The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of
software; that is, the application of engineering to software.
IEEE std 610.12-1990, 1990
(2) The study of approaches as in (1).” Glossary of Software
Engineering Terminology
Programvarukonstruktion - Jonny Pettersson, UmU
What is Software Engineering 2?
ˆ SWEBOK Knowledge Areas
ˆ Software requirements ˆ Software configuration management
ˆ Software design
ˆ Software engineering management
ˆ Software construction
ˆ Software engineering process
ˆ Software testing
ˆ Software engineering tools and
ˆ Software maintenance
ˆ SWEBOK Related Disciplines
ˆ Computer engineering
ˆ Computer science
ÎBig difference?
ˆ Management
ˆ Mathematics
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
2/9 - 08
What is Software Engineering 3?
COMPUTER
SCIENCE
Theories
Computer
Functions
ENGINEERING
PRINCIPLES
CUSTOMER
Proven
Techniques
Problem
SOFTWARE
ENGINEERING
Tools and
Techniques to
Solve Problems
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
methods
ˆ Software quality
ˆ Project management
ˆ Quality management
ˆ Software ergonomics
ˆ Systems engineering
Programvarukonstruktion - Jonny Pettersson, UmU
Why Do We Need SE?
ˆ Software is everywhere
ˆ Software becomes more and more complex
ˆ Software failures may harm our lives (see Risks Digest)
ˆ Software projects exceed budgets and schedules
ˆ ...
Î Software must be engineered like any other product
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
1
Elements of Software Engineering
The Message
ˆ Methods
 Technical “how to’s” to support software development
tasks
ˆ Languages
 Notations to support methods
Software Engineering is
software construction with
a big ‘E’
ˆ Tools
 Support for (the usage of) methods and languages
ˆ Processes
 Coordination and management of software development
tasks supported by methods, languages, and tools
ÎEconomically produce quality software
Programvarukonstruktion - Jonny Pettersson, UmU
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
Software Development Processes
A Scalable Process?
ˆ A “method” for constructing software
 Defined
 Repeatable
Requirements
Build first
version
ˆ Elements
 Phases and or disciplines
 Roles
 Activities
 Artefacts
(In overviews often only the first are listed)
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
Modify until client
is satisfied
development
2/9 - 08
Requirements
Analysis
Specification
The Spiral Model (‘88)
DETERMINE GOALS,
ALTERNATIVES,
CONSTRAINTS
Planning
tiv
na
er
Alt
Design
Budget3
tiv
na
es 3
s2
3
1
Devel
opm
plan ent
Inte
g
and ration
test
plan
Installation
Plan
Programvarukonstruktion - Jonny Pettersson, UmU
Risk analys
is
raints 2
Const
Requirements,
life-cycle plan
Testing
2/9 - 08
4
e
tiv
Co
na
ns
er
tra
Alte
Alt
int
rna
Budget2 Budget1 tives s1
start
PLAN
next
phase
EVALUATE
ALTERNATIVES
AND RISKS
Risk analysis
raints 3
Const
Coding
Budget4
raints 4
Const
es 4
er
Alt
Operation and
Maintenance
Operation
Programvarukonstruktion - Jonny Pettersson, UmU
The Waterfall Model (‘70)
Requirements
maintenance
Risk ana
lys
is2
Risk
analysis1
Prototype1
Prototype2
Prototype3
Prototype4
Simulations, models,
Concept
e benchmarks
nt
of operation
ar me
f t w i re
Detailed
So qu
design
re
Validated
s
nts
requireme
Code
Validated,
Unit test
ign
verified des
System
test
Acceptance
test
So
de ftw
si ar
gn e
2/9 - 08
DEVELOP AND TEST
2
Waterfall vs. Spiral Model
Waterfall Model
The V-Model
Spiral Model
sequence of phases
Complex, iterative model;
many integrated tasks
Management
Document driven
Risk driven
Quality Control
Natural milestone
after each phase
Continuous evaluation,
integrated into the model
Customer
interaction
No
Prototypes are built and
evaluated by customers
in every iteration
Risk
High (late feedback)
Low (risk analysis is
integrated in the model)
Usability
2/9 - 08
Small and/or low
risk projects
Testplan
Requirements
Model Complexity Simple, linear
Verification
Testplan
Specification
Large projects
System design
Focus on errors
in the
construction
ÎInspection
Programvarukonstruktion - Jonny Pettersson, UmU
Operation
Validation
Iterative and Incremental
Development
Component
design
Testplan
Testplan
Acceptance test
System- &
integration test
Unit test
Focus on errors
in the product
Coding
ÎTesting
Iterative Development in RUP
ˆ Waterfall model
 Strongly based on phases
 Stable documents
 “Easy” to manage
ˆ Problems
 Incomplete/ volatile requirements
 Testing late
 No early prototypes
ˆ Solution
 Develop a solution for growing subsets of requirements
(Ö increments)
 Rework existing solutions (Ö iterations)
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
© IBM Rational
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
Agile Development
Rational Unified Process
lightweight
flexible
heavyweight
plan based
ˆ Movement against “big up front”
requirements or design
© IBM Rational
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
3
The Agile Manifesto
Agile vs. Traditional
Agile
Traditional
Low
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
High
Requirements volatility
Low/medium
Criticality of application
Medium/high
High
Project risk level
Low
That is, while there is value in the items on
the right, we value the items on the left more.
High
Volatility of
context/environment
Low
High
Overall team expertise
Low
Low
Staff turnover
High
Process overhead
High
See http://www.agilealliance.com/ for more details (e.g., the principles).
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
Low
2/9 - 08
Examples for Agile Processes
Programvarukonstruktion - Jonny Pettersson, UmU
Scrum
ˆ TDD
ˆ XP
ˆ Crystal
ˆ Scrum
ˆ…
2/9 - 08
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
Choice of process
The Message
What kind of process
do you think Ericsson
is using?
There is no
“one size fits all”
process
Programvarukonstruktion - Jonny Pettersson, UmU
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
4
Process Maturity Models
CMM Overview
ˆ CMM: Capability Maturity Model
5:
Level
ˆ Framework for process assessment and
improvement
ˆ Developed by the SEI 1986 (for the DoD)
ˆ Five maturity levels





4:
3:
Initial (ad-hoc process)
Repeatable (repeatable process)
Defined (well-defined, documented process)
Managed (predictable process)
Optimised (continuous process improvements)
2:
ˆ The DoD requires level 3 from all contractors
Current version: CMMI 1.2 (2006)
2/9 - 08
1:
Programvarukonstruktion - Jonny Pettersson, UmU
2/9 - 08
improve
“Just do it.”
in
Evaluation
Check results.
2/9 - 08
Activity
produce
reality
estimation
2/9 - 08
Median
3.5
$49,000-$1,202,000
$245,000
$490-$2,004
$1375
9-67%
35%
Yearly increase in error detection
effectivity
6-25%
22%
Yearly decrease in project schedule
15-23%
19%
Yearly decrease in error reports after
delivery
10-94%
39%
Return of Investment (ROI)
4-8.8:1
5:1
Software Engineering Institute, 1994 (CMU/SEI-94-TR-013)
2/9 - 08
Before
Costs
Time
Errors
1-9
Yearly increase in productivity
Programvarukonstruktion - Jonny Pettersson, UmU
improve
Data
Yearly costs in total
Key process areas
Initial
Result
Systematic Process Improvement
Pays Off
Yearly costs per developer
Repeatable:
Software configuration management
Software quality assurance
Software subcontract management
Software project tracking and oversight
Software project planning
Requirements management
to
put
Programvarukonstruktion - Jonny Pettersson, UmU
Number of years of process improvement
Defined:
Peer reviews
Intergroup coordination
Software product engineering
Integrated software management
Training program
Organization process definition
Organization process focus
After
Likelihood
Planning
Managed:
Quality management
Process measurement and analysis
Systematic Process Improvement
⇒ More Reliable Estimations
Systematic Process Improvement
Think first.
Optimized:
Process change management
Technology innovation
Defect prevention
Programvarukonstruktion - Jonny Pettersson, UmU
Programvarukonstruktion - Jonny Pettersson, UmU
Relative Costs of Development
Phases
2% 4%
1%
6%
5%
7%
Requirements
Specification
Planning
Design
Coding
Testing
Integration
Maintenance
8%
67%
For particularly long-lived
systems (e.g., software in
airplanes) this can be much
higher
Compiled data from 1976-1981, see [Schach 97]. Researchers assume that these numbers are still
valid. However, there are no recent empirical studies.
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
5
The Message
Summary
ˆ What is Software Engineering?
The more mature the process
and the more long-lived and
critical the product, the less
effort goes to coding
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
ˆ Software Development Processes
 What is that?
 The Waterfall Model
 The Spiral Model
 The V-Model
 Iterative and Incremental Development
 Agile Development
 CMM
 Systematic Process Improvement
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
Next time
ˆ
ˆ
Introduction
Software Development Processes
ˆ Project Management
ˆ Requirements Engineering
ˆ Software Construction
ˆ Group processes
ˆ Quality Assurance
ˆ Software Management and Evolution
2/9 - 08
Programvarukonstruktion - Jonny Pettersson, UmU
6
Download