©ian sommerville 2000 software engineering, 6th edition. chapter 3 slide 1 chapter 3 software...
TRANSCRIPT
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1
Chapter 3
Software Processes
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 2
Software Processes
Coherent sets of activities for specifying, designing, implementing and testing software systems
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 3
Objectives To introduce software process models To describe a number of different process models
and when they may be used To describe outline process models for
requirements engineering, software development, testing and evolution
To introduce CASE technology to support software process activities
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 4
Topics covered Software process models Process iteration Software specification Software design and implementation Software validation Software evolution Automated process support
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 5
The software process A structured set of activities required to develop a
software system• Specification
• Design
• Validation
• Evolution
A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 6
Generic software process models The waterfall model and V model
• Separate and distinct phases of specification and development
Evolutionary development• Specification and development are interleaved
Formal systems development• A mathematical system model is formally transformed to an
implementation
Reuse-based development• The system is assembled from existing components
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 7
Waterfall modelRequirements
definition
System andsoftware design
Implementationand unit testing
Integration andsystem testing
Operation andmaintenance
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 8
Waterfall model problems Inflexible partitioning of the project into distinct
stages
Difficult to accommodate changing customer requirements after the process is underway
Appropriate only when the requirements are well-understood
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 9
V Model
RequirementAnalysis
RequirementAnalysis
SystemDesign
SystemDesign
ProgramDesign
ProgramDesign
CodingCoding
Unit & Integr-ation Testing
Unit & Integr-ation Testing
SystemTesting
SystemTesting
AcceptanceTesting
AcceptanceTesting
Operation &Maintenance
Operation &Maintenance
Verify Design
Validate Requirement
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 10
Waterfall modelRequirements
definition
System andsoftware design
Implementationand unit testing
Integration andsystem testing
Operation andmaintenancePrototypingPrototyping
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 11
Evolutionary development Exploratory development
• Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements
Throw-away prototyping• Objective is to understand the system requirements. Should
start with poorly understood requirements
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 12
Evolutionary development
ValidationFinal
version
DevelopmentIntermediate
versions
SpecificationInitial
version
Outlinedescription
Concurrentactivities
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 13
Evolutionary development Problems
• Lack of process visibility
• Systems are often poorly structured
• Special skills (e.g. in languages for rapid prototyping) may be required
Applicability• For small or medium-size interactive systems
• For parts of large systems (e.g. the user interface)
• For short-lifetime systems
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 14
Formal systems development Based on the transformation of a mathematical
specification through different representations to an executable program
Transformations are ‘correctness-preserving’ so it is straightforward to show that the program conforms to its specification
Embodied in the ‘Cleanroom’ approach to software development
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 15
Formal systems development
Requirementsdefinition
Formalspecification
Formaltransformation
Integration andsystem testing
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 16
Formal transformations
R2Formal
specificationR3
Executableprogram
P2 P3 P4
T1 T2 T3 T4
Proofs of transformation correctness
Formal transformations
R1
P1
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 17
Formal systems development 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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 18
Reuse-oriented development Based on systematic reuse where systems are
integrated from existing components or COTS (Commercial-off-the-shelf) systems
Process stages• Component analysis• Requirements modification• System design with reuse• Development and integration
This approach is becoming more important but still limited experience with it
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 19
Reuse-oriented development
Requirementsspecification
Componentanalysis
Developmentand integration
System designwith reuse
Requirementsmodification
Systemvalidation
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 20
Topics covered Software process models Process iteration Software specification Software design and implementation Software validation Software evolution Automated process support
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 21
Process iteration Iteration means earlier stages are reworked in the
process for large systems
Iteration can be applied to any of the generic process models
Two (related) approaches• Incremental development
• Spiral development
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 22
Incremental development System development is decomposed into
increments and each delivers a proportion of the system.
Increments are developed based on their requirement priorities.
When the development of an increment is started, its requirement is fixed until the development of the next increment.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 23
Incremental development
Valida teincrement
Develop systemincrement
Design systemarchitecture
Integrateincrement
Valida tesystem
Define outline requirements
Assign requirements to increments
System incomplete
Finalsystem
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 24
Incremental development advantages
Some system functionalities are available earlier
Early increments help elicit requirements for later increments
Lower risk of overall project failure
The high priority system services receive more testing
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 25
Spiral model sectors Objective setting
• Specific objectives for the phase are identified
Risk assessment and reduction• Risks are assessed and activities put in place to reduce the key risks
Development and validation• A development model for the system is chosen which can be any
of the generic models
Planning• The project is reviewed and the next phase of the spiral is planned
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 26
Spiral model of the software process
Riskanalysis
Riskanalysis
Riskanalysis
Riskanalysis Proto-
type 1
Prototype 2Prototype 3
Opera-tionalprotoype
Concept ofOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Productdesign Detailed
design
CodeUnit test
IntegrationtestAcceptance
testService Develop, verifynext-level product
Evaluate alternativesidentify, resolve risks
Determine objectivesalternatives and
constraints
Plan next phase
Integrationand test plan
Developmentplan
Requirements planLife-cycle plan
REVIEW
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 27
Spiral development Process is represented as a spiral
Each loop in the spiral represents a phase in the process
No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required
Risks are explicitly assessed and resolved throughout the process
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 28
Topics covered Software process models Process iteration Software specification Software design and implementation Software validation Software evolution Automated process support
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 29
Software specification Define required services and constraints for
system development
Requirements engineering process (Ch. 6)• Feasibility study
• Requirements elicitation and analysis
• Requirements specification
• Requirements validation
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 30
The requirements engineering process
Feasibilitystudy
Requirementselicitation and
analysisRequirementsspecification
Requirementsvalidation
Feasibilityreport
Systemmodels
User and systemrequirements
Requirementsdocument
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 31
Topics covered Software process models Process iteration Software specification Software design and implementation Software validation Software evolution Automated process support
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 32
Software design and implementation
The process of converting the system specification into an executable system
Software design - design software structure
Implementation - translate structure into an executable program
The activities of design and implementation can be interleaved
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 33
Design process activities
Architecturaldesign
Abstractspecification
Interfacedesign
Componentdesign
Datastructuredesign
Algorithmdesign
Systemarchitecture
Softwarespecification
Interfacespecification
Componentspecification
Datastructure
specification
Algorithmspecification
Requirementsspecification
Design activities
Design products
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 34
Design methods Systematic approaches to developing a software
design (Ch. 7)
• Data-flow model
• Entity-relation-attribute model
• Structural model
• Object models
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 35
Topics covered Software process models Process iteration Software specification Software design and implementation Software validation Software evolution Automated process support
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 36
Software validation Validate user requirements and verify designs
(Ch. 8, 20)
Review processes and test system
• Testing is to execute system with test cases that are derived from the specification, or real user data
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 37
The testing process
Sub-systemtesting
Moduletesting
Unittesting
Systemtesting
Acceptancetesting
Componenttesting
Integration testing Usertesting
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 38
Topics covered Software process models Process iteration Software specification Software design and implementation Software validation Software evolution Automated process support
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 39
System evolution
Assess existingsystems
Define systemrequirements
Propose systemchanges
Modifysystems
Newsystem
Existingsystems
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 40
Topics covered Software process models Process iteration Software specification Software design and implementation Software validation Software evolution Automated process support
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 41
Automated process support (CASE)
CASE is software to support software development and evolution processes
Activity automation• Graphical editors for system model development
• Graphical UI builder for user interface construction
• Debuggers to support program fault finding
• :
• :
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 42
CASE classification Functional perspective
• Tools are classified according to their specific function (Editing, Planning, etc.)
Process perspective• Tools are classified according to process activities that
are supported (Design, Prototyping, Testing, etc.) Integration perspective
• Tools are classified according to their organization into integrated units (Version management, system building tools)
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 43
Key points Software processes are the activities involved in
producing and evolving a software system. They are represented in a software process model
General activities are specification, design and implementation, validation and evolution
Generic process models describe the organisation of software processes
Iterative process models describe the software process as a cycle of activities
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 44
Key points Requirements engineering is the process of developing
a software specification Design and implementation processes transform the
specification to an executable program Validation involves checking that the system meets to
its specification and user needs Evolution is concerned with modifying the system after
it is in use CASE technology supports software process activities