3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Contents
Introduction
Introduction
Software Development Processes
Software Development Processes
Project Management
Requirements Engineering
Software Construction
Group processes
Quality Assurance
Software Management and Evolution
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Last Time - Software Development
Processes
What is Software Engineering?
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
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Today – Project Management
What is Project Management?
Cost Estimation
Project Planning and Scheduling
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
What is Project Management?
Planning
Evaluation
inp
ut t
o
Think first.
Check results.
produce
Activity
Result
improve
imp
ro
ve
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Project Management Activities
Project acquisition
Feasibility study (initial project planning)
Resource assessment
Option (and risk) analysis
Cost estimation
Project planning and scheduling
Work breakdown structure
Effort estimation and distribution
Resource assignment
Project tracking and control
Risk management
Reporting
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Project Resources
People
Required skills
Availability
Duration of tasks
Start date
Time
Budget
Office/lab space
…
Hardware and
software tools
Description
Availability
Duration of use
Delivery date
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Option Analysis
Compare different development
alternatives
Evaluate their risks
Select best alternative
Tools
Polar graph
Forms
Decision tree
...
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Polar Graphs
Portabilty Efficiency Schedule Reliability Cost Reuse Alternative A Alternative B Alternative C3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Analysis Example
Alternative A B C Relative efficiency 0.8 1 0.6 Tools investment 250.000 500.000 500.000 Schedule (years) 2 1.3 2 Staff utilization (%) 85 70 100 Risk 0.75 0.6 0.9 Cost (SEK) 7.500.000 8.500.000 7.000.0003/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Analysis Example (Polar Graph)
Staff utilisation Schedule Efficiency Cost Tools investment Risk Alternative A Alternative B Alternative C 0.5 1 y 5 M 0 1 1 0 100% 250K 2 y 500K
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Analysis Example (Forms)
Objectives Constraints Alternatives Risks Risk resolution strategy Results Plans CommitmentDevelop a software components catalogue
Within one year
Must support all existing component types Must cost less than 1 MSEK
Buy existing information retrieval (IR) software
Buy a database and develop the catalogue using the query language Develop a special-purpose catalogue
May be impossible within the given constraints Catalogue functionality may be inappropriate Develop a prototype to clarify requirements Commission a consultants report on existing IR systems Relax the time constraints
IR systems are too inflexible Identified requirements cannot be met
The prototype using a DBMS may be enhanced to a complete system Special-purpose catalogue development is not cost effective Develop the catalogue using the existing DBMS by enhancing the prototype and building a GUI
Fund further 12 months of development
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Analysis Example (Decision Tree)
Goal: Develop System X 3.8 MSEK 4.5 MSEK 2.75 MSEK 3.1 MSEK 4.9 MSEK 2.1 MSEK 4 MSEK 3.5 MSEK 5 MSEK Build Reuse Buy Contract Simple (0.3) Difficult (0.7) Minor changes (0.4) Major changes (0.6) Simple (0.2) Complex (0.8) Minor changes (0.3) Major changes (0.7) Without changes (0.6) With changes (0.4)
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Project Management
What is Project Management?
Cost Estimation
Project Planning and Scheduling
Running and Documenting a Project
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Cost Estimation
General approach
Decompose problem
Check for experiences/
data on sub problems
Make qualified estimations
(Make at least two
independent estimates)
General problems
What are good measures?
Do the estimates effect
the result?
Does the type of software
effect the result?
Does the project
environment effect the
result?
...
Î
Use empirical and historical data
Î
Algorithmic cost modelling
COCOMO (based on
LOC
)
FP (based on
function points
)
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
COCOMO
Constructive Cost Modelling [Boehm 81, Boehm 00]
Based on publicly available historical data of 63 TRW
projects
Basic assumptions:
Requirements change only slightly during the project
There is good project management
The historical data is representative
Assigning more resources to the project does NOT result in
linear decreasing development time
Basic model:
Effort = a KDSI
bKDSI = Kilo Delivered Source Instructions (≈ LOC - comments) The a and b factors vary depending on the type of project Effort is measured in PM (Person Months = 152h of work)
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
COCOMO Project Types
OM: Organic Mode projects
Small teams which are familiar with the type of
application
Development in a familiar environment
EM: Embedded Mode projects
Large and inexperienced teams
Many constraints
SDM: Semi Detached Mode projects
Between OM- and EM projects
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
COCOMO Basic Model
PM: Person Months
2.4 KDSI
1.05for OM projects
3 KDSI
1.12for SDM projects
3.6 KDSI
1.20for EM projects
TDEV: Time for DEVelopment
2.5 PM
0.38for OM projects
2.5 PM
0.35for SDM projects
2.5 PM
0.32for EM projects
N: Number of personnel
PM / TDEV
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
This is Too Simplistic!?
There are many cost drivers that effect
effort
Programming language
Development methods
Tools and environments
Experience and capabilities of the development
team
Available time
Requirements volatility
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
COCOMO Intermediate Model
Takes into account 15 cost drivers, which are ranked on a
scale from very low to extra high
Product attributes (e.g., required reliability)
Platform attributes (e.g., time/space constraints)
Personnel attributes (e.g., programming language experience)
Project attributes (e.g., tool usage)
PM: Person Months
3.2 KDSI
1.05× ΠCifor OM projects
3 KDSI
1.12× ΠCi for SDM projects
2.8 KDSI
1.20× ΠCi for EM projects
ΠCi ∈ [0.09..9.42]
TDEV and N as before
Cost Drivers
1.10 1.04 1.00 1.08 1.23 Required development schedule0.83 0.91 1.00 1.10 1.24
Application of software engineering methods 1.24 1.10 1.00 0.91 0.82 Use of software tools
Project attributes 1.14 1.07 1.00 0.95 Programming language experience 1.21 1.10 1.00 0.90 Virtual machine experience
0.70 0.86 1.00 1.17 1.42
Software engineer capability 1.29 1.13 1.00 0.91 0.82 Applications experience 1.46 1.19 1.00 0.86 0.71 Analyst capability
Personnel attributes 0.87 1.00 1.07 1.15
Required turnabout time 0.87 1.00 1.15 1.30
Volatility of the virtual machine environment
1.56 1.21 1.06 1.00
Memory constraints 1.00 1.11 1.30 1.66
Run-time performance constraints Platform attributes 1.65 1.30 1.15 1.00 0.85 0.70
Complexity of the product 0.94 1.00 1.08 1.16 Size of application database
1.40 1.15 1.00 0.88 0.75 Required software reliability
Product attributes Extra High Very High High Nomin al Low Very Low Ratings Cost Drivers
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Intermediate COCOMO Summary
Works quite well in practice
TRW data is publicly available
Needs KLOC as input
Problems:
Estimating KLOC in early project stages
Comparison of projects using different LOC counts
Outdated project data base for basic constants (70s)
Solutions:
Cross-check using an other estimation technique
Standardised LOC counts
Continuous model calibration
Use COCOMOII
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
COCOMO II
Stage 1: Application Composition (resolving high-risk issues)
Estimation base: Object points
Single standard project type
Stage 2: Early Design
(exploration of architectures and
concepts)
Estimation base: Function points or KLOC
Six project type factors
Stage 3: Post-architecture
(development has started)
Estimation base: Function points or KLOC
Six project type factors
Formulas more complicated; takes care of more variation
See simple
online tool
(
http://www.cms4site.ru/utility.php?utility=cocomoii
)
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Function (Feature) Points
Estimate functionality captured in requirements
Very detailed and complex counting rules (IFPUG)
# User inputs x (3,4,6) = … # User outputs x (4,5,7) = … # User inquiries x (3,4,6) = … # Files x (7,10,15) = … # External interfaces x (5,7,10) = … (# Algorithms x (3,4,6) = … ) ---Count-total … Feature points only
FP = Count-total x [ 0.65 + 0.01 x
Σ
F
i]
Adjustment factors (Fi ∈ {0,...,5}) i=1 143/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Project Management
What is Project Management?
Cost Estimation
Project Planning and Scheduling
Activity
Major work unit
Start and end dates
Consumes resources
Results in work products
(and milestones)
Define Work Breakdown Structure
Project function
Continue throughout the
project
Not bound to specific
phases
Project Phase 1 Phase 2 Phase N Step 1 Step 2 Step 1 Step 2 Step 1 Step 2 Activity 1 Activity 2 Activity 3 Activity 1Activity 2 Task 1Task 2
Task 3
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Schedule Activities
Almost all activities depend on the completion of
some other activities
Many activities can be performed in parallel
Track usage of resources
Organisation necessary to balance work-load,
costs, and duration
PERT chart (activity network/task graph)
Critical path
Project time-line (Gantt chart)
Resource table
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
PERT Charts
Program Evaluation and Review Technique
Graph
Nodes = activities/tasks and estimated duration
Edges = dependencies
Compute
Slack time = available time - estimated duration
Critical path
A path is critical when it contains an activity that,
if delayed, will cause a delay of the whole project.
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
PERT Chart “Syntax”
There is a nice tutorial at
http://www.getahead-direct.com/gwprpert.htm
© GetAhead
An Example PERT Chart
Designelectrical and pneumatic renovations
4 4d
5/4/00 5/9/00
Schedule down-time with production supervisor
5 2d
5/10/00 5/11/00
Renovate electrical and pneumatic
13 2d
5/17/00 5/18/00
Get final report from PSU
1 5d
4/27/00 5/3/00
Schedule contractor for electrical and pneumatic
8 1d
5/12/00 5/12/00
Inform PSU about pickup
7 2d
5/5/00 5/8/00
Remove old hardware
11 2d
5/15/00 5/16/00
Shut down production line
10 1d
5/12/00 5/12/00
Install new hardware
14 3d
5/19/00 5/23/00
Schedule truck to pickup hardware at PSU
6 1d
5/4/00 5/4/00
Get blueprints for old hardware 2 1d 4/27/00 4/27/00 Time-motion study of existing hardware 3 2d 5/4/00 5/5/00
Store old hardware (just in case)
12 10d
5/17/00 5/30/00
Transport hardware from PSU
9 2d
5/9/00 5/10/00
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Another Gantt Chart
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
A Resource Table
Can be (partly) generated from Gantt and or PERT
charts
Resource assignment
Useful for project tracking
Task name earliest latestStart earliest latestEnd ElapsedtimeResource 1Utilisationtime 1 Resource nUtilisationtime n
...
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Project Management
What is Project Management?
Cost Estimation
Project Planning and Scheduling
Running a Project
To know where you are you need
A (detailed) plan/goal
Measurements of project status
time in, e.g., weeks
progress
100% plan
actual
Example Effort Distribution
0 50 100 150 200 250 300 350 400 Lecture s Meeting s Plannin g Require ments GUI de sign Analysi s DesignTestingCoding
Presentatio ns Subcon tract Code su bc. Evaluat ion of proto
typeManual Final re port weekly reports and me eting m inutesOther 0 50 100 150 200 250
week35 week36 week37 week38 week39 week40 week41 week42 week43 week44
to tal ti me in h actual plan
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Risk Management
Risk management is concerned with
identifying risks and drawing up plans to
minimise their effect on a project
A risk is a probability that some adverse
circumstance will occur
Project risks affect schedule or resources
Product risks affect the quality or performance
of the software being developed
Business risks affect the organisation
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Risk Management Activities
Investigate potential risk factors
Risk
Likelihood of occurrence
Impact
Define mitigation strategies (i.e. be prepared)
What can be done to avoid the problem(s) in the first
place
What can be done to solve the problem(s) in case they
occur
Monitor risks
Determine if predicted risk occurs
Properly apply risk aversion steps
Collect info for future risk analysis
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Example
Assume
Risk = High staff turnover
Likelihood of occurrence = 70%
Impact = Increase project time by 15%, project cost by
12%
Mitigation strategy
Identify high turnover causes
Reduce causes before project starts
Develop techniques to assure work continuity in light of
turnover
• For example ...
• or ...
Risk Management
Risk management Risk assessment Risk control Risk identification Risk analysis Risk prioritisation Checklist Decomposition Assumption analysis Decision driver analysis System dynamics Performance models Cost models Network analysis Decision analysis Quality risk factor analysis Risk exposure Compound risk reduction Buying information Risk avoidance Risk transfer Risk reduction leverage Development process Risk element planning Risk plan integration Risk mitigation Risk monitoring and reporting Risk reassessmentRisk reduction Risk management planning Risk resolution
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Top Ten Project Risks
Staff deficiencies
Unrealistic schedules and budgets
Developing the wrong functions
Developing the wrong interface
Over-engineering
Requirements volatility
Externally developed items
Externally performed tasks
Performance problems
Assumptions on technology
See Jalote: An Integrated Approach to Software Engineering, Springer 1997.
The Project Plan
1 Introduction
1.1 Project overview
1.2 Project deliverables
1.3 Evolution of the SPMP
1.4 Reference Materials
1.5 Definitions and acronyms
2 Project Organisation
2.1 Process model
2.2 Organisational structure
2.3 Organisational boundaries and interfaces
2.4 Project responsibilities
3 Managerial Process
3.1 Management objectives and priorities
3.2 Assumptions, dependencies and constraints
3.3 Risk management
3.4 Monitoring and controlling mechanisms
3.5 Staffing plan
4 Technical Process
4.1 Methods, tools and techniques
4.2 Software documentation
4.3 Project support functions
5 Work Packages, Schedule, and
Budget
5.1 Work packages
5.2 Dependencies
5.3 Resource requirements
5.4 Budget and resource allocation
5.5 Schedule
According to ESA Std PSS-05-0
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
The Message
Without a detailed
plan you never know
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU
Summary
What is Project Management?
Cost Estimation
Project Planning and Scheduling
Running and Documenting a Project
3/9 - 08 Programvarukonstruktion - Jonny Pettersson, UmU