1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on...
-
date post
20-Dec-2015 -
Category
Documents
-
view
248 -
download
1
Transcript of 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on...
![Page 1: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/1.jpg)
1
CS 425/625 Software EngineeringCS 425/625 Software Engineering
Software Processes
Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software Engineering, 7th Ed., Addison-Wesley, 2004
and on Ch4 PPT presentation from http://www.software-engin.com/
September 14, 2005
![Page 2: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/2.jpg)
2
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
![Page 3: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/3.jpg)
3
Software Process Models
Software processSoftware process = organized set of activities aimed at = organized set of activities aimed at building a software systembuilding a software system
Software process modelSoftware process model = an abstract representation = an abstract representation of a software processof a software process
Fundamental software process activities:Fundamental software process activities: Software specificationSoftware specification Software design Software design Software implementationSoftware implementation Software validationSoftware validation Software evolutionSoftware evolution
![Page 4: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/4.jpg)
4
Software Process Models: Waterfall..
The Waterfall modelThe Waterfall model [SE-7, Fig 4.1][SE-7, Fig 4.1]
Requirementsdefinition
System andsoftware design
Implementationand unit testing
Integration andsystem testing
Operation andmaintenance
![Page 5: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/5.jpg)
5
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”
![Page 6: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/6.jpg)
6
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
![Page 7: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/7.jpg)
7
Software Process Models: Evolutionary Development…
Evolutionary Development model Evolutionary Development model [SE-7, Fig 4.2][SE-7, Fig 4.2]
ValidationFinal
version
DevelopmentIntermediate
versions
SpecificationInitial
version
Outlinedescription
Concurrentactivities
![Page 8: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/8.jpg)
8
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
Types of evolutionary development: Exploratory development Throw-away prototyping
![Page 9: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/9.jpg)
9
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
![Page 10: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/10.jpg)
10
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
![Page 11: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/11.jpg)
11
Software Process Models: Component-based Software Engineering…
CBSECBSE process model process model [SE-7, Fig 4.3][SE-7, Fig 4.3]
Requirementsspecification
Componentanalysis
Developmentand integration
System designwith reuse
Requirementsmodification
Systemvalidation
![Page 12: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/12.jpg)
12
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
![Page 13: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/13.jpg)
13
Software Process Models: ..Component-based Software Engineering.
Advantages:Advantages: Reduces considerably the software to be developed “in-house”Reduces considerably the software to be developed “in-house” Allows faster deliveryAllows faster delivery In principle, more reliable systems, due to using previously In principle, more reliable systems, due to using previously
tested componentstested components
![Page 14: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/14.jpg)
14
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
![Page 15: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/15.jpg)
15
Software Process Models: Incremental Development…
The Incremental model The Incremental model [SE-7, Fig 4.4][SE-7, Fig 4.4]
Valida teincrement
Develop systemincrement
Design systemarchitecture
Integrateincrement
Valida tesystem
Define outline requirements
Assign requirements to increments
System incomplete
Finalsystem
![Page 16: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/16.jpg)
16
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
![Page 17: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/17.jpg)
17
Software Process Models: ..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
![Page 18: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/18.jpg)
18
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”
![Page 19: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/19.jpg)
19
Software Process Models: Spiral Model..Software Process Models: Spiral Model..
Boehm’s Spiral Model [SE, Fig 4.5]
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
![Page 20: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/20.jpg)
20
Software Process Models: .Spiral Model.Software Process Models: .Spiral Model.
Main characteristics:Main characteristics: Also a hybrid model that support process iterationAlso a hybrid model that support process iteration The process is represented as a spiral, each loop in the spiral The process is represented as a spiral, each loop in the spiral
representing a process phaserepresenting a process phase Four sectors per loop: objective setting, risk assessment and Four sectors per loop: objective setting, risk assessment and
reduction, development and validation, planningreduction, development and validation, planning Risk is explicitly taken into considerationRisk is explicitly taken into consideration
![Page 21: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/21.jpg)
21
Software Process Models: ..Spiral ModelSoftware 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
![Page 22: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/22.jpg)
22
Process Activities: Specification Requirements engineering Requirements engineering [SE-7, Fig. 4.6][SE-7, Fig. 4.6]
Feasibilitystudy
Requirementselicitation and
analysisRequirementsspecification
Requirementsvalidation
Feasibilityreport
Systemmodels
User and systemrequirements
Requirementsdocument
![Page 23: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/23.jpg)
23
Process Activities: Design & ImplementationProcess Activities: Design & Implementation
A general model for design [SE-7, Fig 4.7]A general model for design [SE-7, Fig 4.7]
Architecturaldesign
Abstractspecification
Interfacedesign
Componentdesign
Datastructuredesign
Algorithmdesign
Systemarchitecture
Softwarespecification
Interfacespecification
Componentspecification
Datastructure
specification
Algorithmspecification
Requirementsspecification
Design activities
Design products
![Page 24: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/24.jpg)
24
Process Activities: Testing..
The debugging process [SE-7, Fig 4.8]The debugging process [SE-7, Fig 4.8]
Locateerror
Designerror repair
Repairerror
Re-testprogram
![Page 25: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/25.jpg)
25
Process Activities: .Testing.
The testing process [SE-7, Fig 4.0]The testing process [SE-7, Fig 4.0]
Testing phases in the sw. process [SE-7, Fig. 4.10]Testing phases in the sw. process [SE-7, Fig. 4.10]Component
testingSystemtesting
Acceptancetesting
![Page 26: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/26.jpg)
26
Process Activities: ..Testing
Testing phases in the sw. process [SE-7, Fig. 4.10]Testing phases in the sw. process [SE-7, Fig. 4.10]
Requirementsspecification
Systemspecification
Systemdesign
Detaileddesign
Module andunit codeand test
Sub-systemintegrationtest plan
Systemintegrationtest plan
Acceptancetest plan
ServiceAcceptance
testSystem
integration testSub-system
integration test
![Page 27: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/27.jpg)
27
Process Activities: Evolution
System evolutionSystem evolution [SE-7, Fig 4.11][SE-7, Fig 4.11]
Assess existingsystems
Define systemrequirements
Propose systemchanges
Modifysystems
Newsystem
Existingsystems
![Page 28: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/28.jpg)
28
The Rational Unified Process.
RUP phasesRUP phases [SE-7, Fig 4.12][SE-7, Fig 4.12]
Phase iteration
Inception Elaboration Construction Transition
![Page 29: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/29.jpg)
29
.The Rational Unified Process RUP workflowsRUP workflows [SE-7, Fig 4.13][SE-7, 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 aredeveloped to model the system requirements.
Analysis and design A design model is created and documented using architecturalmodels, component models, object models and sequence models.
Implementation The components in the system are implemented and structured intoimplementation sub-systems. Automatic code generation from designmodels helps accelerate this process.
Test Testing is an iterative process that is carried out in conjunction withimplementation. System testing follows the completion of theimplementation.
Deployment A product release is created, distributed to users and installed in theirworkplace.
Configuration andchange management
This supporting workflow managed changes to the system (seeChapter 29).
Project management This supporting workflow manages the system development (seeChapter 5).
Environment This workflow is concerned with making appropriate software toolsavailable to the software development team.
![Page 30: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.](https://reader036.fdocuments.net/reader036/viewer/2022062313/56649d415503460f94a1c2af/html5/thumbnails/30.jpg)
30
CASECASE Classification of CASE technology Classification of CASE technology [SE-7, Fig 4.14][SE-7, Fig 4.14]
Single-methodworkbenches
General-purposeworkbenches
Multi-methodworkbenches
Language-specificworkbenches
Programming TestingAnalysis and
design
Integratedenvironments
Process-centredenvironments
Filecomparators
CompilersEditors
EnvironmentsWorkbenchesTools
CASEtechnology