Software Project Management - Software Engineering Group

Software Project Management
Lecture 2
Software Development Models
Overview




Introduction
Technical plan
Software process models
Selecting process model(s)
Software project management
2
Definitions

Software Process


the set of activities, methods, and practices
that are used in the production and
evolution of software
Software Process Model

one specific embodiment of a software
process architecture
(Humphrey 1990)
Software project management
3
Why Modelling?




To provide a common understanding
To locate any inconsistencies,
redundancies and omissions
To reflect the development goals and
provide early evaluation
To assist the development team to
understand any special situation
Software project management
4
Project Analysis

Methodologies




Object-Oriented Development (OOD)
Structured System Analysis and Design
Method (SSADM)
Jackson Structured Programming (JSP)
Technologies


application-building environments
knowledge-based system tools
Software project management
5
Project Characteristics





data oriented or control oriented
system?
general package or application specific?
a particular type of system for which
specific tools have been developed?
safety-critical system?
nature of the hardware/software
environment?
Software project management
6
Project Risks



Product uncertainty
Process uncertainty
Resource uncertainty
Software project management
7
Considerations for Project
Approach







Control systems
Information systems
General applications
Specialized techniques
Hardware environment
Safety-critical systems
Imprecise requirements
Software project management
8
Technical Plan

Contents




Constraints
Approach
Implementation
Implications
Software project management
9
Technical Plan - Constraints



Character of the system to be
developed
Risks and uncertainties of the project
User requirements concerning
implementation
Software project management
10
Technical Plan - Approach




Selected methodology or process
model(s)
Development methods
Required software tools
Target hardware/software environment
Software project management
11
Technical Plan Implementation



Development environment
Maintenance environment
Training
Software project management
12
Technical Plan - Implications

Project products and activities


effect on schedule duration and overall
project effort
Financial

report used to produce costings
Software project management
13
Software Process Models




Waterfall Model
V Model
Spiral Model
Prototyping Model
Software project management
14
Software Process Models
(cont’d)

Phased Development Model




incremental development model
iterative development model
Operational Specification Model
Transformation Model
Software project management
15
Waterfall Model
Requirements
Analysis
System
Design
Coding
Testing
Maintenance
Software project management
16
Waterfall Model (cont’d)






classical
one-shot approach
effective control
limited scope of iteration
long cycle time
not suitable for system of high
uncertainty
Software project management
17
V Model
Maintenance
Requirements
Analysis
User Acceptance
Testing
System Design
System Testing
Unit and
Integration Testing
Program Design
Coding
Software project management
18
V Model (cont’d)



Additional validation process introduced
Relate testing to analysis and design
Loop back in case of discrepancy
Software project management
19
Spiral Model
(adapted from Boehm 1987)
Cumulative cost
Progress through steps
Determine objectives,
alternatives and
constraints
Evaluate alternatives;
identify and resolve
risks
Risk
analysis
Risk
analysis
Risk
analysis
Prototype
Prototype
Requirements
plan
Concept of
operation
Development
plan
Requirements
validation
Integration and
Test plan
Plan next phases
Software project management
Software
requirements
System
product
design
Detailed
design
Coding
Design
validation
Acceptance
test
Prototype
Unit
testing
Integration
and Test
Develop and verify
next-level product
20
Spiral Model (cont’d)



Evolutionary approach
Iterative development combined with
risk management
Risk analysis results in “go, re-do,
no-go” decision
Software project management
21
Spiral Model (cont’d)

Four major activities




Planning
Risk analysis
Engineering
Evaluation
Software project management
22
Prototyping Model

Goals




meet (some) user requirements at an early
stage
reduce risk and uncertainty
verify a design or implementation approach
Should always answer specific
questions; goals must be identified
Software project management
23
Classification of Prototype

Throw-away


Evolutionary


After users agree the requirements of the
system, the prototype will be discarded.
Modifications are based on the existing
prototype.
Incremental

Functions will be arranged and built
accordingly.
Software project management
24
Prototyping Model
Build prototype
User
satisfaction
YES
NO
User feedback
Software project management
25
Benefits of Prototyping




Learning by doing
Improved communication
Improved user involvement
Clarification of partially-known
requirements
Software project management
26
Prototyping Sequences







Requirements gathering
Quick design
Prototype construction
Customer evaluation
Refinement
Loop back to quick design for fine tuning
Product engineering
Software project management
27
Benefits of Prototyping





Demonstration of the consistency and
completeness of a specification
Reduced need for documentation
Reduced maintenance costs
Feature constraint
Production of expected results for
testing real system
Software project management
28
Drawbacks of Prototyping






Users sometimes misunderstand the
role of the prototype
Lack of project standards possible
Lack of control
Additional expense
Machine efficiency
Close proximity of developers
Software project management
29
Forms of Prototypes



Mock-ups
Simulated interaction
Partial working model
Software project management
30
Prototype Products


Human-computer interface
System functionality
Software project management
31
Prototype Changes

Three categories

Cosmetic (35%)


Local (60%)


screen layout
screen processing
Global (5%)


multi-parts processing
design review
Software project management
32
Phased Development


Reduce cycle time
Two parallel systems:



operational system (Release n)
development system (Release n+1)
Two approaches


incremental
iterative
Software project management
33
Incremental Model



Break system into small components
Implement and deliver small
components in sequence
Every delivered component provides
extra functionality to user
Software project management
34
Incremental Model (cont’d)
Requirements
Analysis
Arrange
requirements
in increments
Design and
develop
increment
NO
Validate
increment
Integrate
increment
System
OK?
YES
Software project management
35
Iterative Model


Deliver full system in the beginning
Enhance functionality in new releases
Software project management
36
Iterative Model (cont’d)
Design system
version n
n = n+1
Develop system
version n
Validate system
version n
NO
System
complete
YES
Software project management
37
Combined Incremental and
Iterative Model

Every new release includes



extra functionality
enhancement of existing functionality
Popularly used in software industry
Software project management
38
Ranking the Increments





Rank by value to cost ratio
V = value to customer (score 1 -10)
C = cost (score 1- 10)
Value to cost ratio = V/C
Example: Table 4.1
Software project management
39
Advantages of Phased
Development





Early feedback
Less possible requirement changes
Early benefits for users
Improved cash flow
Easier to control and manage
Software project management
40
Advantages of Phased
Development (cont’d)




Capture early market
Facilitate early training
Can be temporarily abandoned
Increase job satisfaction
Software project management
41
Disadvantages of Phased
Development


‘Software breakage’
Reduced productivity
Software project management
42
Operational Specification
Model




Executable or translatable specification
Use executables to demonstrate system
behaviour
Resolve requirement uncertainties in
early stage
Merging functionality and system design
Software project management
43
Transformational Model



Transform a specification into delivered
system
Requires automated support
Relies on formal specification method
Software project management
44
References




Boehm, B. (1987) A sprial model of software
development and enhancement, Software
Engineering Project Management, p.128–142.
Hughes, B. and Cotterell, M. (1999) Software
Project Management, 2nd ed., McGraw Hill.
Humphrey, W. (1990) Managing the Software
Process, Addison-Wesley.
Pfleeger, S.L. (1998) Software Engineering
Theory and Practice, Prentice Hall
Software project management
45