chapter 13: software life cycle models omar meqdadi se 273 lecture 13 department of computer science...
TRANSCRIPT
![Page 1: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/1.jpg)
1
Chapter 13: Software Life Cycle Models
Omar MeqdadiSE 273 Lecture 13
Department of Computer Science and Software Engineering University of Wisconsin-Platteville
![Page 2: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/2.jpg)
2
Topics covered
Software process models Process iteration
![Page 3: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/3.jpg)
3
Generic software process models
The waterfall model Separate and distinct phases of specification and development
Evolutionary development Specification, development and validation are interleaved
Component-based software engineering The system is assembled from existing components
There are many variants of these models Example: formal development where a waterfall-like process is used
but the specification is a formal specification that is refined through several stages to an implementable design
![Page 4: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/4.jpg)
4
Waterfall model
Requirements
definition
System andsoftware design
Implementationand unit testing
Integration andsystem testing
Operation and
maintenance
![Page 5: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/5.jpg)
5
Waterfall model phases
Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance The main drawback of the waterfall model
The difficulty of accommodating change after the process is underway
One phase has to be complete before moving onto the next phase Inflexible partitioning of the project into distinct stages makes it
difficult to respond to changing customer requirements
![Page 6: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/6.jpg)
6
Waterfall model: applicability
Only appropriate when The requirements are well-understood
Few business systems have stable requirements Changes will be fairly limited during the design process
Large systems engineering projects where a system is developed at several sites
![Page 7: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/7.jpg)
7
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 and add
new features as proposed by the customer Throw-away prototyping
Objective is to understand the system requirements Should start with poorly understood requirements to clarify
what is really needed
![Page 8: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/8.jpg)
8
Evolutionary development
Concurrentactivities
ValidationFinal
version
DevelopmentIntermediate
versions
SpecificationInitial
version
Outlinedescription
![Page 9: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/9.jpg)
9
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
![Page 10: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/10.jpg)
10
Component-based software engineering
Based on systematic reuse 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 increasingly used as component standards have emerged
![Page 11: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/11.jpg)
11
Reuse-oriented development
Requirementsspecification
Componentanalysis
Developmentand integration
System designwith reuse
Requirementsmodification
Systemvalidation
![Page 12: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/12.jpg)
12
Process iteration
System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems
Iteration can be applied to any of the generic process models
Two (related) approaches Incremental delivery (see Chapter 11) Spiral development
![Page 13: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/13.jpg)
13
Spiral development
Process is represented as a spiral rather than as a sequence of activities with backtracking
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
![Page 14: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/14.jpg)
14
Spiral model of the software process
Riskanalysis
Riskanalysis
Riskanalysis
Riskanalysis Proto-
type 1
Prototype 2
Prototype 3Opera-tionalprotoype
Concept ofOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Productdesign Detailed
design
Code
Unit test
IntegrationtestAcceptance
testService Develop, verifynext-level product
Evaluate alternatives,identify, resolve risks
Determine objectives,alternatives and
constraints
Plan next phase
Integrationand test plan
Developmentplan
Requirements planLife-cycle plan
REVIEW
![Page 15: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/15.jpg)
15
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
![Page 16: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/16.jpg)
16
The Rational Unified Process
A modern process model derived from the work on the UML and associated process.
Normally described from 3 perspectives A dynamic perspective that shows phases over time A static perspective that shows process activities A proactive perspective that suggests good practice
![Page 17: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/17.jpg)
17
RUP phase model
Phase iteration
Inception Elaboration Construction Transition
![Page 18: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/18.jpg)
18
RUP phases
Inception Establish the business case for the system
Elaboration Develop an understanding of the problem domain and the
system architecture Construction
System design, programming and testing Transition
Deploy the system in its operating environment
![Page 19: Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville](https://reader036.vdocuments.mx/reader036/viewer/2022062320/56649f4a5503460f94c6bf3d/html5/thumbnails/19.jpg)
19
RUP good practice
Develop software iteratively Manage requirements Use component-based architectures Visually model software Verify software quality Control changes to software