Professional Documents
Culture Documents
1
The software process
2
1
3
2
4
Software process models
5
The waterfall model
6
5
7
6
8
Incremental development
• Based on the idea of developing an initial implementation, exposing this to user comment
and evolving it through several versions until an adequate system has been developed
• Specification, development, and validation activities are interleaved rather than separate,
with rapid feedback across activities.
9
Incremental development benefits
10
9
11
10
12
Types of reusable software
13
Advantages and disadvantages
Advantages
Reduced costs and risks as less software is
developed from scratch
Faster delivery and deployment of system
Disadvantages
requirements compromises are inevitable so system
may not meet real needs of users
Loss of control over evolution of reused system
elements
15
13
Process activities
16
15
Process activities
17
Software specification
18
Requirement Engineering Activities
19
18
20
19
21
A general model of the design process
22
Design Inputs
23
22
Design activities
24
23
25
System implementation
26
Software validation
27
26
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 interactions between components
Showing that the system meets its functional and non functional
requirements
Testing of emergent properties.
Customer testing: Testing with real data to check that the system meets
the customer’s needs. (Alpha and Beta testing)
28
27
29
Software evolution
30
System evolution
31
30
32
31
33
Reducing the costs of rework
34
Software prototyping
36
34
Software prototyping
Qu Quick
i ck p l an
Modeling
Mo d e li n g
Q u ic k d e si g n
Quick design
Deployment
Deployment
D e live r y
delivery & Co n st r uct io n
& Fe e db ack Construction
feedback of
of
p r oprototype
t o t yp e
37
36
38
Prototype development
39
Throw-away prototypes
41
39
Incremental delivery
Rather than deliver the system as a single delivery, the development and
delivery is broken down into increments with each increment delivering
part of the required functionality.
increments are delivered and deployed for use in a real operational
environment
User requirements are prioritised and the highest priority requirements
are included in early increments.
Once the development of an increment is started, the requirements are
frozen though requirements for later increments can continue to evolve.
Experimenting with the system helps them clarify their requirements for
later system increments
Architectural design must be open and completed before the
implementation for the various increments commences.
42
41
Incremental delivery
43
Incremental delivery
44
Incremental delivery advantages
45
44
46
45
Process improvement
47
Process improvement
48
Approaches to improvement
49
48
50
49
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.
51
Process measurement
52
Software Engineering Institute (SEI)
Capability maturity levels
The SEI process maturity
framework identifies maturity
levels that essentially correspond
to the use of good software
engineering practice.
The maturity of a software
company processes reflects the
process management,
measurement and use of good
software engineering practice in
the company
53
52
54
53
55
The Rational Unified Process
56
RUP Phases
57
56
RUP iteration
58
57
59
Static workflows in the RUP - Core
Workflow Description
Business The business processes are modelled using business use cases.
modelling
Requirements Actors who interact with the system are identified and use cases
are developed to model the system requirements.
Analysis and A design model is created and documented using architectural
design models, component models, object models and sequence models.
Implementation The components in the system are implemented and structured into
implementation sub-systems. Automatic code generation from
design models helps accelerate this process.
60
Static workflows in the RUP – (Supporting
Management)
Workflow Description
Configuration and This supporting workflow managed changes to the
change system
management
Project This supporting workflow manages the system
management development
Environment This workflow is concerned with making appropriate
software tools available to the software development
team.
61
60
62
61
63