3. Software Process Models and Software Process Improvement
3. Software Process Models and Software Process Improvement
1
Software Processes
2
Topics covered
3
The software process
5
Plan-driven and agile processes
6
Software process models
7
Software process models
9
Waterfall model phases
10
Waterfall model problems
11
Incremental development
12
Incremental development benefits
14
Integration and configuration
15
Types of reusable software
16
Reuse-oriented software engineering
17
Key process stages
Requirements specification
Software discovery and evaluation
Requirements refinement
Application system configuration
Component adaptation and Integration
18
Advantages and disadvantages
19
Process activities
20
Process activities
21
The requirements engineering process
22
Software specification
23
Software design and implementation
24
A general model of the design process
25
Design activities
27
Software validation
28
Stages of testing
29
Testing stages
Component testing
Individual components are tested independently;
Components may be functions or objects or coherent
groupings of these entities.
System testing
Testing of the system as a whole. Testing of emergent properties
(e.g. usability, reliability, security, volume etc) is particularly
important.
Acceptance testing
Testing with customer data to check that the system meets the
customer’s needs.
30
Testing phases in a plan-driven software process (V-model)
30/10/2014 31
Software evolution
32
System evolution
33
Coping with change
34
Coping with change
35
Reducing the costs of rework
36
Coping with changing requirements
37
Software prototyping
38
Benefits of prototyping
39
The process of prototype development
40
Prototype development
41
Throw-away prototypes
42
Incremental delivery
43
Incremental development and delivery
Incremental development
Develop the system in increments and evaluate each
increment before proceeding to the development of the next
increment;
Normal approach used in agile methods;
Evaluation done by user/customer proxy.
Incremental delivery
Deploy an increment for use by end-users;
More realistic evaluation about practical use of software;
Difficult to implement for replacement systems as
increments have less functionality than the system being
replaced.
44
Incremental delivery
45
Incremental delivery advantages
46
Incremental delivery problems
47
Software Process improvement
48
Process improvement
49
Approaches to improvement
51
Process improvement activities
Process measurement
You measure one or more attributes of the software process
or product. These measurements forms a baseline that helps
you decide if process improvements have been effective.
Process analysis
The current process is assessed, and process weaknesses
and bottlenecks are identified. Process models (sometimes
called process maps) that describe the process may be
developed.
Process change
Process changes are proposed to address some of the
identified process weaknesses. These are introduced and the
cycle resumes to collect data about the effectiveness of the
changes. 52
Process measurement
53
Process metrics
54
CMMI (Capability maturity model
integration) levels
55
The SEI capability maturity model
Initial
Essentially uncontrolled
Repeatable
Product management procedures defined and used
Defined
Process management procedures and strategies
defined and used
Managed
Quality management strategies defined and used
Optimising
Process improvement strategies defined and used
56
Key points
57
Key points
59