Professional Documents
Culture Documents
Lectures 2 & 3: Software Processes
Lectures 2 & 3: Software Processes
Software Processes
SoftwareEngineering,COMP201
Slide1
What is a Process ?
When we provide a service or create a product we always
follow a sequence of steps or a series of activities as a
process to accomplish a set of tasks, it is called process.
SoftwareEngineering,COMP201
Slide2
Software Processes
When the process involves the building of some product
we refer to the process as a life cycle
Software development process software life cycle
SoftwareEngineering,COMP201
Slide3
Therequirements
specificationwas
definedlikethis
Thedevelopers
understooditin
thatway
Thisishowthe
problemwas
solvedbefore.
Thisishowtheprogramis
describedbymarketing
Thatistheprogramafter
department
debugging
SoftwareEngineering,COMP201
Thisishowtheproblem
issolvednow
This,infact,iswhatthe
customerwanted;)
Slide4
Slide5
Evolutionary development
Reuse-based development
SoftwareEngineering,COMP201
Slide6
1. Waterfall Model
Requirements
definition
Systemand
softwaredesign
Implementation
andunittesting
Integr ationand
systemtesting
Operationand
maintenance
SoftwareEngineering,COMP201
Slide7
SoftwareEngineering,COMP201
Slide8
SoftwareEngineering,COMP201
Slide9
Slide10
2. Evolutionary development
Exploratory development
-
Throw-away prototyping
Evolutionary development
Concurr ent
activities
Outline
description
Specification
Initial
version
Development
Intermediate
versions
Validation
Final
version
SoftwareEngineering,COMP201
Slide12
Evolutionary development
Problems
Applicability
SoftwareEngineering,COMP201
Slide13
SoftwareEngineering,COMP201
Slide14
Requirements
definition
Formal
specification
Formal
transformation
SoftwareEngineering,COMP201
Integrationand
systemtesting
Slide15
Formal transformations
Formaltransformations
T1
Formal
specification
T2
R1
P1
T3
R2
P2
T4
Executable
program
R3
P3
P4
Proofsof transformationcorrectness
SoftwareEngineering,COMP201
Slide16
Problems
Need for specialised skills and training to apply the
technique
Difficult to formally specify some aspects of the
system such as the user interface
Applicability
Critical systems especially those where a safety or
security case must be made before the system is
put into operation
SoftwareEngineering,COMP201
Slide17
4. Reuse-oriented development
Component analysis
Requirements modification
System design with reuse
Development and integration
SoftwareEngineering,COMP201
Slide18
Reuse-oriented development
Requirements
specification
Component
analysis
Requirements
modification
Systemdesign
withreuse
Development
andintegration
SoftwareEngineering,COMP201
System
validation
Slide19
Process iteration
Incremental development
Spiral development
SoftwareEngineering,COMP201
Slide20
5. Incremental development
Slide21
Incremental development
Defineoutline
requirements
Developsystem
increment
Assignrequirements
toincrements
Valida te
increment
Designsystem
architecture
Integrate
increment
Valida te
system
Final
system
Systemincomplete
SoftwareEngineering,COMP201
Slide22
SoftwareEngineering,COMP201
Slide23
Extreme programming
Slide24
6. Spiral development
SoftwareEngineering,COMP201
Slide25
Risk
analysis
Evaluatealternatives
identify,resolverisks
Risk
analysis
Risk
analysis
REVIEW
Requirementsplan
Lifecycleplan
Development
plan
Plannextphase
Integration
andtestplan
Prototype3
Prototype2
Risk
analy sis Proto
type1
Conceptof
Operation
Opera
tional
protoype
Simulations,models,benchmarks
S/W
requirements
Requirement
validation
Product
design
Detailed
design
Code
Unittest
Design
V&V
Integr ation
test
Acceptance
test
Develop,verify
Service
nextlevelproduct
SoftwareEngineering,COMP201
Slide26
Objective setting
Planning
SoftwareEngineering,COMP201
Slide27
I. Software specification
The process of establishing what services are
required and the constraints on the systems operation
and development
Feasibility study
Requirements elicitation and analysis
Requirements specification
Requirements validation
SoftwareEngineering,COMP201
Slide28
Requirements
elicitationand
analysis
Requir ements
specification
Feasibility
report
Requirements
validation
System
models
Userandsystem
requirements
Requirements
document
SoftwareEngineering,COMP201
Slide29
Software design
Implementation
SoftwareEngineering,COMP201
Slide30
Architectural design
Abstract specification
Interface design
Component design
Data structure design
Algorithm design
SoftwareEngineering,COMP201
Slide31
Abstract
specifica
t ion
Interface
design
Component
design
Data
structur
e
design
Algorithm
design
System
architectur
e
Software
specifica
t ion
Interface
specifica
tion
Component
specifica
tion
Data
structur
e
specifica
t ion
Algorithm
specifica
tion
Designpr
oducts
SoftwareEngineering,COMP201
Slide32
Design methods
Systematic approaches to developing a
software design
Data-flow model
Entity-relation-attribute model
Structural model
Object models
SoftwareEngineering,COMP201
Slide33
SoftwareEngineering,COMP201
Slide34
Locate
error
Design
errorrepair
Repair
error
SoftwareEngineering,COMP201
Retest
program
Slide35
Slide36
Component
testing
Integrationtesting
SoftwareEngineering,COMP201
User
testing
Slide37
Testing stages
Unit testing
Module testing
Acceptance testing
System testing
Sub-system testing
Slide38
Testing phases
Requir ements
specification
System
specification
System
integration
testplan
Acceptance
testplan
Service
System
design
Acceptance
test
Detailed
design
Subsystem
integration
testplan
System
integrationtest
SoftwareEngineering,COMP201
Moduleand
unitcode
andtess
Subsystem
integrationtest
Slide39
IV Software evolution
Software is inherently flexible and can change.
As requirements change through changing business
circumstances, the software that supports the business
must also evolve and change
SoftwareEngineering,COMP201
Slide40
System evolution
Definesystem
requirements
Assessexisting
systems
Proposesystem
changes
Existing
systems
Modify
systems
New
system
SoftwareEngineering,COMP201
Slide41
Slide42
Case technology
Case technology has led to significant
improvements in the software process
though not the order of magnitude
improvements that were once predicted
Slide43
CASE classification
Classification helps us understand the different
types of CASE tools and their support for
process activities
Functional perspective
Process perspective
Integration perspective
Slide44
SoftwareEngineering,COMP201
Slide45
Reengineeringtools
Testingtools
Debuggingtools
Programanalysistools
Languageprocessing
tools
Methodsupporttools
Prototypingtools
Configuration
managementtools
Changemanagementtools
Documentationtools
Editingtools
Planningtools
Specification
Design
Activity-based classification
Implementation
Verification
and
Validation
CASE integration
Tools
Support individual process tasks such as design
consistency checking, text editing, etc.
Workbenches
Support a process phase such as specification or
design, Normally include a number of integrated
tools
Environments
Support all or a substantial part of an entire software
process. Normally include several integrated
workbenches
SoftwareEngineering,COMP201
Slide47
Tools, workbenches,
environments
CASE
technology
Tools
Editors
Compilers
Workbenches
File
comparators
Analysisand
design
Multimethod
workbenches
Environments
Integrated
environments
Programming
Singlemethod
workbenches
Testing
Generalpurpose
workbenches
SoftwareEngineering,COMP201
Processcentred
environments
Languagespecific
workbenches
Slide48
Key points
SoftwareEngineering,COMP201
Slide49
Key points
SoftwareEngineering,COMP201
Slide50