Professional Documents
Culture Documents
CS 425/625 Software Engineering
CS 425/625 Software Engineering
CS 425/625 Software Engineering
Engineering
Software Processes
Based on Chapter 4 of the textbook [SE-8]
Ian Sommerville, Software Engineering, 8th Ed., Addison-
Wesley, 2006 and on Ch4 PPT presentation from
http://www.software-engin.com/
1
Outline
• Software Process Models
– Waterfall model
– Evolutionary development
– Component-based software engineering
– Incremental model
– Spiral model
• Software Process Activities
– Specification
– Design and implementation
– Validation
– Evolution
• The Rational Unified Process
• Computer-Aided Software Engineering
2
Software Process Models
• Software process = organized set of activities
aimed at building a software system
• Software process model = an abstract
representation of a software process
• Fundamental software process activities:
– Software specification
– Software design
– Software implementation
– Software validation
– Software evolution
3
Software Process Models: Waterfall..
• The Waterfall model [SE-8, Fig 4.1]
Requirements
definition
System and
software design
Implementation
and unit testing
Operation and
maintenance
4
Software Process Models: .Waterfall.
• Main characteristics:
– Also called classic software life cycle or
sequential model
– Process activities (phases/stages) are
clearly separated
– After a number of iterations, phases of the
life cycle (such as specification and
design) are “frozen”
5
Software Process Models: ..Waterfall
• Advantages:
– Organized approach, provides robust separation of
phases
– Reflects common engineering practice
• Disadvantages:
– Doesn’t cope well with changes required by the client
– Development teams might wait for each other
– A working version of the product is available only late
• Applicability:
– When requirements are well known and few changes
are likely to be needed
– Can be used also for parts of larger software systems
6
Software Process Models:
Evolutionary Development…
• Evolutionary Development model [SE-8, Fig 4.2]
Concurr ent
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
7
Software Process Models:
.Evolutionary Development..
• Main characteristics:
– The phases of the software construction are
interleaved
– Feedback from the user is used throughout the entire
process
– The software product is refined through many versions
8
Software Process Models:
..Evolutionary Development.
• Advantages:
– Deals constantly with changes
– Provides quickly an initial version of the system
– Involves all development teams
• Disadvantages:
– Quick fixes may be involved
– “Invisible” process, not well-supported by
documentation
– The system’s structure can be corrupted by
continuous change
9
Software Process Models:
…Evolutionary Development
• Disadvantages [cont’d]:
– Special tools and techniques may be necessary
– The client may have the impression the first version is
very close to the final product and thus be less patient
• Applicability:
– When requirements are not well understood
– When the client and the developer agree on a “rapid
prototype” that will be thrown away
– Good for small and medium-sized software systems
10
Software Process Models:
Component-based Software Engineering…
Development System
and integration validation
11
Software Process Models:
.Component-based Software Engineering..
• Main characteristics:
– Makes intensive use of existing reusable
components
– The focus is on integrating the components rather
than on creating them from the scratch
12
Software Process Models:
..Component-based Software Engineering.
• Advantages:
– Reduces considerably the software to be developed
“in-house”
– Allows faster delivery
– In principle, more reliable systems, due to using
previously tested components
13
Software Process Models:
…Component-based Software Engineering
• Disadvantages:
– Compromises in requirements are needed
– Less control over the system’s evolution
• Applicability:
– When there is a pool of existing components that
could satisfy the requirements of the new product
– Emerging trend: integration of web services from a
range of suppliers
14
Software Process Models:
Incremental Development…
• The Incremental model [SE-8, Fig 4.4]
15
Software Process Models:
.Incremental..
• Main characteristics:
– Hybrid model that combines elements of the
waterfall and evolutionary paradigms
– The specification, design, and implementation
phases are broken in smaller increments
16
Software Process Models:
..Incremental.
• Advantages:
– Provides better support for process iteration
– Reduces rework in the software construction process
– Some decisions on requirements may be delayed
– Allows early delivery of parts of the system
– Supports easier integration of sub-systems
– Lower risk of project failure
– Delivery priorities can be more easily set
17
Software Process Models:
...Incremental
• Disadvantages:
– Increments need be relatively small
– Mapping requirements to increments may not be
easy
– Common software facilities may be difficult to
identify
• Applicability:
– When it is possible to deliver the system “part-
by-part”
18
Software Process Models: Spiral Model..
• Boehm’s Spiral Model [SE-8, Fig 4.5]
Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analy sis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next-level product 19
.Software Process Models: Spiral Model.
• Main characteristics:
– Also a hybrid model that support process iteration
– The process is represented as a spiral, each loop in
the spiral representing a process phase
– Four sectors per loop: objective setting, risk
assessment and reduction, development and
validation, planning
– Risk is explicitly taken into consideration
20
Software Process Models: ..Spiral Model
• Advantages:
– Risk reduction mechanisms are in place
– Supports iteration and reflects real-world practices
– Systematic approach
• Disadvantages:
– Requires expertise in risk evaluation and reduction
– Complex, relatively difficult to follow strictly
– Applicable only to large systems
• Applicability:
– Internal development of large systems
21
Process Activities: Specification
• Requirements engineering [SE-8, Fig. 4.6]
Feasibility Requirements
study elicitation and
analysis
Requir ements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements
Requirements
document
22
Process Activities: Design &
Implementation
• A general model for design [SE-8, Fig 4.7]
Requirements
specifica
tion
Design acti
vities
Architectur
al Interface Component Data Algorithm
Abstract
design design design structur
e design
specifica
tion
design
Software Data
System Interface Component Algorithm
specifica
tion structure
architectur
e specifica
tion specifica
tion specifica
tion
specification
Design pr
oducts
23
Process Activities: Testing..
• The debugging process [SE-8, Fig 4.8]
24
Process Activities: .Testing.
• The testing process [SE-8, Fig 4.9]
25
Process Activities: ..Testing
• Testing phases in the SE process [SE-8, Fig. 4.10]
26
Process Activities: Evolution
• System evolution [SE-8, Fig 4.11]
Existing New
systems system
27
The Rational Unified Process.
• RUP phases [SE-8, Fig 4.12]
Phase iteration
28
.The Rational Unified Process
• RUP workflows [SE-8, Fig 4.13]
Workflow Description
Business modelling The business processes are modelled using business use cases.
Requirements Actors who interact with the system are identified and use cases are
developed to model the system requirements.
Analysis and design A design model is created and documented using architectural
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.
Test Testing is an iterative process that is carried out in conjunction with
implementation. System testing follows the completion of the
implementation.
Deployment A product release is created, distributed to users and installed in their
workplace.
Configuration and This supporting workflow managed changes to the system (see
change management Chapter 29).
Project management This supporting workflow manages the system development (see
Chapter 5).
Environment This workflow is concerned with making appropriate software tools
available to the software development team.
29
CASE
• Classification of CASE technology [SE-7, Fig 4.14]
CASE
technology
Analysis and
Programming Testing
design
30