Software Project Management
description
Transcript of Software Project Management
Software Project Management
Lecture 2Software Development Models
Software project management 2
Overview Introduction Technical plan Software process models Selecting process model(s)
Software project management 3
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 4
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 5
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 6
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 7
Project Risks Product uncertainty Process uncertainty Resource uncertainty
Software project management 8
Considerations for Project Approach Control systems Information systems General applications Specialized techniques Hardware environment Safety-critical systems Imprecise requirements
Software project management 9
Technical Plan Contents
Constraints Approach Implementation Implications
Software project management 10
Technical Plan - Constraints Character of the system to be
developed Risks and uncertainties of the
project User requirements concerning
implementation
Software project management 11
Technical Plan - Approach Selected methodology or process
model(s) Development methods Required software tools Target hardware/software
environment
Software project management 12
Technical Plan - Implementation Development environment Maintenance environment Training
Software project management 13
Technical Plan - Implications Project products and activities
effect on schedule duration and overall project effort
Financial report used to produce costings
Software project management 14
Software Process Models Waterfall Model V Model Spiral Model Prototyping Model
Software project management 15
Software Process Models (cont’d) Phased Development Model
incremental development model iterative development model
Operational Specification Model Transformation Model
Software project management 16
Waterfall ModelRequiremen
tsAnalysis
SystemDesign
Coding
TestingMaintenanc
e
Software project management 17
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 18
V ModelRequirements Analysis
System Design
Program Design
Coding
Unit andIntegration
Testing
System Testing
Maintenance
User Acceptance
Testing
Software project management 19
V Model (cont’d) Additional validation process
introduced Relate testing to analysis and
design Loop back in case of discrepancy
Software project management 20
Spiral Model (adapted from Boehm 1987)
Plan next phases
Determine objectives, alternatives and constraints
Evaluate alternatives; identify and resolve risks
Develop and verify next-level
product
Requirements plan
Development plan
Integration and Test
plan
Concept of operation
Risk analysis
Risk analysis
Risk analysis
PrototypePrototypePrototype
Software requirements
Requirements validation
System product design
Design validationAcceptance test
Integration and Test
Unit testing
Coding
Detailed design
Cumulative costProgress through steps
Software project management 21
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 22
Spiral Model (cont’d) Four major activities
Planning Risk analysis Engineering Evaluation
Software project management 23
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 24
Classification of Prototype Throw-away
After users agree the requirements of the system, the prototype will be discarded.
Evolutionary Modifications are based on the existing
prototype. Incremental
Functions will be arranged and built accordingly.
Software project management 25
Prototyping Model
Build prototype Usersatisfaction
YES
NOUser feedback
Software project management 26
Benefits of Prototyping Learning by doing Improved communication Improved user involvement Clarification of partially-known
requirements
Software project management 27
Prototyping Sequences Requirements gathering Quick design Prototype construction Customer evaluation Refinement Loop back to quick design for fine
tuning Product engineering
Software project management 28
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 29
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 30
Forms of Prototypes Mock-ups Simulated interaction Partial working model
Software project management 31
Prototype Products Human-computer interface System functionality
Software project management 32
Prototype Changes Three categories
Cosmetic (35%) screen layout
Local (60%) screen processing
Global (5%) multi-parts processing design review
Software project management 33
Phased Development Reduce cycle time Two parallel systems:
operational system (Release n) development system (Release n+1)
Two approaches incremental iterative
Software project management 34
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 35
Incremental Model (cont’d)Requirements Analysis
Arrange requiremen
ts in increments
Validate increme
nt
Design and develop
increment
Integrate incremen
tYES
NOSystem
OK?
Software project management 36
Iterative Model Deliver full system in the
beginning Enhance functionality in new
releases
Software project management 37
Iterative Model (cont’d)
Develop system
version n
Validate system
version n
YES
NODesign system
version n
Systemcomplete
n = n+1
Software project management 38
Combined Incremental and Iterative Model Every new release includes
extra functionality enhancement of existing functionality
Popularly used in software industry
Software project management 39
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 40
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 41
Advantages of Phased Development (cont’d) Capture early market Facilitate early training Can be temporarily abandoned Increase job satisfaction
Software project management 42
Disadvantages of Phased Development ‘Software breakage’ Reduced productivity
Software project management 43
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 44
Transformational Model Transform a specification into
delivered system Requires automated support Relies on formal specification
method
Software project management 45
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