Ivica Crnkovic
Mälardalen University
Department of Computer Engineering
[email protected]
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 1, 10/3/2015
Development Process and Product Life Cycle
Business Idea
Development
Product production
Services
Development process
Product Lifecycle
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 2, 10/3/2015
Process
 A series of steps involving activities, constraints, resources
 Process Characteristics

The process describes the major activities

Each process activity has entry and exit criteria
Input

Process activity
exit criteria
Output
The activities are organized in sequences
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 3, 10/3/2015
Software Development process - Basic activities
 Requirements analysis and definition
 System design
 Program design
 Program implementation (writing the programs)
 Testing
 System delivery
 Maintenance
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 4, 10/3/2015
Waterfall model
REQUIREMENTS
ANALYSIS
SYSTEM
DESIGN
PROGRAM
DESIGN
IMPLEMENTATION
TESTING
OPERATION
& MAINTENANCE
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 5, 10/3/2015
Waterfall model - characteristics
REQUIREMENTS
ANALYSIS
Requirement specification documents
SYSTEM
DESIGN
Functional specifications and
overall system specification
PROGRAM
DESIGN
Design specifications
IMPLEMENTATION
Code modules
TESTING
Error reports
Mdh/IDt, Ivica Crnkovic ©
Test
documentation
OPERATION
& MAINTENANCE
SE Course - Development Process
Page 6, 10/3/2015
Waterfall model documents (SE - Ian Sommerville)
Activity
Requirements analysis
Requirements definition
System specification
Architectural design
Interface design
Detailed design
Coding
Unit testing
Module testing
Integration testing
System testing
Acceptance testing
Mdh/IDt, Ivica Crnkovic ©
Output documents
Feasibility study, Outline requirements
Requirements document
Functional specification, A cceptance test plan
Draft user manual
Architectural specification, System test plan
Interface specification, Integration test plan
Design specification, Unit test plan
Program code
Unit test report
Module test report
Integration test report, Final user manual
System test report
Final system plus documentation
SE Course - Development Process
Page 7, 10/3/2015
Waterfall model - Features
 Very well distinguished process (easy to understand)
 Every steps in the model completes with a MILESTONE
 A milestone is defined as a completion of set of documents
 When the documents are approved the next step can be taken
 Well defined inputs and outputs of the activities

Interfaces between the phases are well defined
 Precisely define different roles of developers
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 8, 10/3/2015
Waterfall model - characteristics
What are negative characteristics of the model?
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 9, 10/3/2015
The software process in reality
MAINTENANCE
REQUIREMENTS
ANALYSIS
SYSTEM
DESIGN
DELIVERY
PROGRAM
DESIGN
SYSTEM
TESTING
INTEGRATION
TESTING
Mdh/IDt, Ivica Crnkovic ©
PROGRAM
IMPLEMENTATION
UNIT
TESTING
SE Course - Development Process
Page 10, 10/3/2015
Waterfall model - a salmon model?
REQUIREMENTS
ANALYSIS
SYSTEM
DESIGN
PROGRAM
DESIGN
Costs to fix
the problem
IMPLEMENTATION
TESTING
OPERATION
& MAINTENANCE
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 11, 10/3/2015
Where the waterfall model works fine?
 Fine:

Established procedures and technologies

Not too much requirements changes

Well organized projects with precisely defined roles

“Repeatable” projects

Big projects not time and budget critical
What are characteristics of today's development?
How does Waterfall model fit for them?
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 12, 10/3/2015
Requirements on the development process today
 Requirements

Time-to market

User Interfaces

Possibility for integration with other products

Using standard and de-facto standard solutions

Using already existing components (COTS = commercial off the
shelf)
 Permanent change of technologies

Development tools, development and target platforms, hardware,
etc.
 Requirements changes during the entire development process
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 13, 10/3/2015
Waterfall model fitness
 Requirements
 Waterfall model

Time-to market

Not good - too long time to the final
result

User Interfaces

Prototypes usually used

Possibility for integration with
other products

Not good - the problems can be
found too late

Using standard and de-facto
standard solutions

Good, predicable results

Using already existing
components (COTS =
commercial off the shelf)

Not good, COTS may not fit to the
design model
 Permanent change of
technologies.

Not good - unpredictable problems
arise too late
 Requirements changes during
the entire development process

Not good - a lot of overhead for
updating the documentation
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 14, 10/3/2015
The waterfall model with prototyping
REQUIREMENTS
ANALYSIS
Validate
SYSTEM
DESIGN
Verify
PROGRAM
DESIGN
IMPLEMENTATION
PROTOTYPING
TESTING
OPERATION
& MAINTENANCE
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 15, 10/3/2015
V Model
REQUIREMENTS
ANALYSIS
Validate requirements
OPERATION
& MAINTENANCE
ACCEPTANCE
TESTING
SYSTEM
DESIGN
Verify design
PROGRAM
DESIGN
SYSTEM
TESTING
UNIT & INTEGRATION TESTING
CODING
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 16, 10/3/2015
V Model - document produced
Acceptance test
description
REQUIREMENTS
ANALYSIS
RS
OPERATION
& MAINTENANCE
Validate requirements
SYSTEM
DESIGN
Verify design
System design
test description
SD, FS
ACCEPTANCE
TESTING
SYSTEM
TESTING
PROGRAM
DESIGN
DS, Code
Module test
description & code
UNIT & INTEGRATION TESTING
CODING
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Test analysis report
Page 17, 10/3/2015
Development Process - discussion
Functionality
The actual system
capabilities
Customers
requirements
Shortfall
Lateness
t0
Mdh/IDt, Ivica Crnkovic ©
t1
t2
t3
t4
SE Course - Development Process
t5
time
Page 18, 10/3/2015
Development Process - discussion
Functionality
customers requirements
The actual system
capabilities
How to push the curve
to the left?
Waterfall model
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
time
Page 19, 10/3/2015
Development Process - shorter life cycles
Functionality
Functionality
Incremental development
Mdh/IDt, Ivica Crnkovic ©
Rapid prototyping
SE Course - Development Process
Page 20, 10/3/2015
Evolutionary development
C o ncurr ent
acti v it ies
Ou t li ne
d es crip ti on
Mdh/IDt, Ivica Crnkovic ©
S p eci ficat ion
Ini ti al
v ersi on
Develo pm ent
Int erm edi at e
v ersi on s
Vali dat io n
F i nal
v ersi on
SE Course - Development Process
Page 21, 10/3/2015
Prototyping model used in combination with Waterfall model
LIST OF
REVISIONS
revise
prototype
LIST OF
REVISIONS
LIST OF
REVISIONS
user/
customer
review
PROTOTYPE
REQUIREMENTS
PROTOTYPE
DESIGN
PROTOTYPE
SYSTEM
DELIVERED
SYSTEM
SYSTEM
REQUIREMENTS
(sometimes informal
or incomplete)
Mdh/IDt, Ivica Crnkovic ©
TEST
SE Course - Development Process
Page 22, 10/3/2015
Evolutionary development
 Exploratory prototyping

Objective is to work with customers and to evolve a final system
from an initial outline specification. Should start with wellunderstood requirements
 Throw-away prototyping

Objective is to understand the system requirements. Should start
with poorly understood requirements
Ev o lu ti on ary
p ro to ty pi ng
Del i vered
s ys tem
Ou t li ne
R equ irem ent s
Th row-away
P ro to ty pi ng
Mdh/IDt, Ivica Crnkovic ©
Execut able P rot ot yp e +
S y st em S peci ficat io n
SE Course - Development Process
Page 23, 10/3/2015
Evolutionary prototyping
Develo p ab st ract
s pecifi cat io n
B u il d p ro to ty pe
s ys tem
Us e prot ot yp e
s ys tem
N
Del iv er
s ys tem
Mdh/IDt, Ivica Crnkovic ©
YE S
S y st em
adeq uat e?
SE Course - Development Process
Page 24, 10/3/2015
Throw-away prototyping
Ou t li ne
requ irem en ts
S p eci fy
s ys tem
Ev alu at e
p ro to ty pe
Dev elo p
p ro to ty pe
Reus abl e
com p on ent s
Develo p
s oft ware
Mdh/IDt, Ivica Crnkovic ©
Vali dat e
s ys tem
SE Course - Development Process
Del i vered
s oft ware
s ys tem
Page 25, 10/3/2015
DEVELOPERS
The phased development model
Development systems
Build Release 1
Build Release 2
Build Release 3
USERS
Time
Use Release 1
Use Release 2
Use Release 3
Production systems
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 26, 10/3/2015
The incremental and iterative models
INCREMENTAL DEVELOPMENT
ITERATIVE DEVELOPMENT
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 27, 10/3/2015
Evolutionary development - characteristics
 Problems

Lack of process visibility

Systems are often poorly structured

Special skills may be required (e.g. in languages for rapid
prototyping)
 Applicability

For small or medium-size interactive systems

For parts of large systems (e.g. the user interface)

For short-lifetime systems
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 28, 10/3/2015
The Spiral Model
DETERMINE GOALS,
ALTERNATIVES,
CONSTRAINTS
Risk analysis4
EVALUATE ALTERNATIVES
AND RISKS
Risk analysis3
Risk analysis2
Budget4
Budget3
Risk analysis1 ProtoBudget2 Budget1
Prototype1 type2
start
Requirements, Concept of
life-cycle plan operation
Prototype3
Prototype4
Detailed
design
Code
Unit test
PLAN
Mdh/IDt, Ivica Crnkovic ©
Implementation
plan
System
Acceptance test
test
DEVELOP AND TEST
SE Course - Development Process
Page 29, 10/3/2015
Phases of the spiral model
 Objective setting

Specific objectives for the project phase are identified
 Risk assessment and reduction

Key risks are identified, analysed and information is sought to
reduce these risks
 Development and validation

An appropriate model is chosen for the next phase of
development.
 Planning

The project is reviewed and plans drawn up for the next round of
the spiral
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 30, 10/3/2015
Template for a spiral round
 Objectives
 Constraints
 Alternatives
 Risks
 Risk resolution
 Results
 Plans
 Commitment
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 31, 10/3/2015
The operational specification model
Execute and
Revise
OPERATIONAL
SPECIFICATION
(problem-oriented)
TRANSFORMED
SPECIFICATION
(implementationoriented)
DELIVERED
SYSTEM
SYSTEM
REQUIREMENTS
(sometimes informal
or incomplete)
Mdh/IDt, Ivica Crnkovic ©
TEST
SE Course - Development Process
Page 32, 10/3/2015
The transformational model
Compare with
requirements;
update as needed
FORMAL DEVELOPMENT RECORD
Sequence of transformations
plus rationale for them
TRANSFORM N
.
.
FORMAL
SPECIFICATION
TRANSFORM 2
TRANSFORM 1
DELIVERED
SYSTEM
SYSTEM
REQUIREMENTS
(sometimes informal
or incomplete)
Mdh/IDt, Ivica Crnkovic ©
TEST
SE Course - Development Process
Page 33, 10/3/2015
Process model visibility
Process model
Waterfall model
Evolutionary
development
Formal
transformations
Reuse-oriented
development
Spiral model
Mdh/IDt, Ivica Crnkovic ©
Process visibility
activity produces some
Good visibility, each
deliverable
produce
Poor visibility, uneconomic to
documents during rapid iteration
Good visibility, documents must be produced
from each phase for the process to continue
to
Moderate visibility, it may be artificial
and
produce documents describing reuse
reusable components.
each segment and each ring
Good visibility,
of the spiral should produce some document.
SE Course - Development Process
Page 34, 10/3/2015
Key points
 Software engineering is concerned with the theories, methods
and tools for developing, managing and evolving software
products
 Software products consist of programs and documentation.
Product attributes are maintainability, dependability, efficiency
and usability
 The software process consists of those activities involved in
software development
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 35, 10/3/2015
Key points
 The waterfall model considers each process activity as a discrete
phase
 Evolutionary development considers process activities as
concurrent
 The spiral process model is risk-driven
 Process visibility involves the creation of deliverables from
activities
 Software engineers have ethical, social and professional
responsibilities
Mdh/IDt, Ivica Crnkovic ©
SE Course - Development Process
Page 36, 10/3/2015
Descargar

No Slide Title