Lifecycle 2
-
Upload
piyush-raj-sinha -
Category
Documents
-
view
213 -
download
0
Transcript of Lifecycle 2
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 1/32
C o n q u e r i n g C o m p
l e x a n d
C h a n g i n g
S y s t e m s
O b j e c t - O r i e n
t e d S o f t w a r e
E n g i n e e r i n g Chapter 15,
Alternatives tothe Iterative Waterfalllifecycle model
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 2/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2
Outline
Software Life CycleA variety of software lifecycle models have been proposed over timeAll help manage the complexity of software developmentEach has advantages, disadvantagesPreviously, we looked at the Waterfall and Iterative WaterfallmodelsAlternatives include:
V-ModelBoehm’s Spiral Model Issue-based Development Model (Concurrent Development)
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 3/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3
Requirements
Software
What we intend
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 4/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4
How it should go: Our plan of attack
Requirements Analysis
Implementation
Design
Testing
Delivery and Installation
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 5/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5
Definitions
Software lifecycle modeling: Attempt to deal with complexityand change
Software lifecycle:
Set of activities and their relationships to each other to support thedevelopment of a software system
Software development methodology:A collection of techniques for building models - applied across thesoftware lifecycle
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 6/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6
Typical Software Lifecycle Questions
Which activities should I select for the software project?What are the dependencies between activities?
Does system design depend on analysis? Doesanalysis depend on design?
How should I schedule the activities?Should analysis precede design?
Can analysis and design be done in parallel?Should they be done iteratively?
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 7/32Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7
Requirements Process
System Allocation
Process
Concept Exploration
Process
Design Process
Implementation Process
Installation Process
Operation &
Support Process
Verification & Validation
Process
The Waterfall Model of the
Software Life Cycle
adapted from [Royce 1970]
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 8/32Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8
Requirements Process
System Allocation
Process
Concept Exploration
Process
Design Process
Implementation Process
Installation Process
Operation &
Support Process
Verification & Validation
Process
The IterativeWaterfall Model of the
Software Life Cycle
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 9/32Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9
V Model : Distinguishes between Development and Verification Activities
Level of Detail
Project Time
Low
High
SystemTesting
Problem with V-Model:Client’s Perception is the same as theDeveloper’s Perception
Client’s Understanding
Developer’s Understanding Requirements
Elicitation
Design
Object Design Unit Testing
Integration Testing
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 10/32Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10
Problems with V Model
The V model does not model iteration
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 11/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 11
Identify risksAssign priorities to risksDevelop a series of prototypes for the identified risks startingwith the highest risk.
Use a waterfall model for each prototype development(“cycle”) If a risk has successfully been resolved, evaluate the results of the “cycle” and plan the next round
If a certain risk cannot be resolved, terminate the projectimmediately
Spiral Model (Boehm) Deals with Iteration
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 12/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12
Spiral Model
Determine objec t ives,alternat ives, & constraints
Evaluate alternatives,identif y & resolve risks
Develop & ver if ynext level productPlan next phase
Requirements
Development
Integration
plan
plan
plan
Re quire me nts
Design
valida tion
valida tion
Software SystemProduct
Risk a naly sis
Risk a naly sis
Prototype1
Prototype2Prototype3
Risk a naly sis
Con cept of operation
RequirementsDesign
Code
Unit Te st
Integration & TestAcceptance
DetailedDesign
P1
P2
Te st
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 13/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13
Activities (“Rounds”) in Boehm’s Spiral Model
Concept of OperationsSoftware RequirementsSoftware Product DesignDetailed Design
CodeUnit TestIntegration and TestAcceptance TestImplementation
For each cycle go throughthese stepsDefine objectives, alternatives,constraints
Evaluate alternative, identifyand resolve risks
Develop, verify prototypePlan next “cycle”
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 14/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 14
Determine objec t ives,alternat ives, & constraints
Evaluate alternatives,identif y & resolve risks
Develop & ver if ynext level productPlan next phase
Requirements
Development
Integration
plan
plan
plan
Re quire me nts
Design
valida tion
valida tion
Software SystemProduct
Risk a naly sis
Risk a naly sis
Prototype1Prototype2 Prototype3
Risk a naly sis
Con cept of operation
RequirementsDesign
Code
Unit Te st
Integration & TestAcceptance
DetailedDesign
P1
P2
Te st
Determine Objectives, Alternatives and Constraints
ProjectStart
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 15/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15
Determine objec t ives,alternat ives, & constraints
Evaluate alternatives,identif y & resolve risks
Develop & ver if ynext level productPlan next phase
Requirements
Development
Integration
plan
plan
plan
Re quire me nts
Design
valida tion
valida tion
Software SystemProduct
Risk a naly sis
Risk a naly sis
Prototype1Prototype2
Prototype3
Risk a naly sis
Con cept of operation
RequirementsDesign
Code
Unit Te st
Integration & TestAcceptance
DetailedDesign
P1
P2
Te st
Evaluate Alternatives, Identify, resolve risks
BuildPrototype
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 16/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 16
Determine objec t ives,alternat ives, & constraints
Evaluate alternatives,identif y & resolve risks
Develop & ver if ynext level productPlan next phase
Requirements
Development
Integration
plan
plan
plan
Re quire me nts
Design
valida tion
valida tion
Software SystemProduct
Risk a naly sis
Risk a naly sis
Prototype1
Prototype2Prototype3
Risk a naly sis
Con cept of operation
RequirementsDesign
Code
Unit Te st
Integration & TestAcceptance
DetailedDesign
P1
P2
Te st
Develop & Verify Product
Concept of OperationActivity
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 17/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 17
Determine objec t ives,alternat ives, & constraints
Evaluate alternatives,identif y & resolve risks
Develop & ver if ynext level productPlan next phase
Requirements
Development
Integration
plan
plan
plan
Re quire me nts
Design
valida tion
valida tion
Software SystemProduct
Risk a naly sis
Risk a naly sis
Prototype1
Prototype2Prototype3
Risk a naly sis
Con cept of operation
RequirementsDesign
Code
Unit Te st
Integration & TestAcceptance
DetailedDesign
P1
P2
Te st
Prepare for Next Activity
Lifecycle ModelingProcess
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 18/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 18
Determine objec t ives,alternat ives, & constraints
Evaluate alternatives,identif y & resolve risks
Develop & ver if ynext level productPlan next phase
Requirements
Development
Integration
plan
plan
plan
Re quire me nts
Design
valida tion
valida tion
Software SystemProduct
Risk a naly sis
Risk a naly sis
Prototype1
Prototype2Prototype3
Risk a naly sis
Con cept of operation
RequirementsDesign
Code
Unit Te st
Integration & TestAcceptance
DetailedDesign
P1
P2
Te st
Start of Software Requirements Activity
Startof Round 2
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 19/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 19
Illustrative Prototype Develop the user interface with a set of storyboardsImplement them on a napkin or with a user interface builder(Visual C++, ....)Good for first dialog with client
Functional Prototype Implement and deliver an operational system with minimum
functionalityThen add more functionalityOrder identified by risk
Exploratory Prototype ("Hacking") Implement part of the system to learn more about the requirements.Good for understanding, exploring alternatives
Types of Prototypes used in the Spiral Model
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 20/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 20
Revolutionary Prototyping
Also called specification prototypingGet user experience with a throwaway version to get therequirements right, then build the whole system
Disadvantage: Users may have to accept that features in the prototypeare expensive to implement
User may be disappointed when some of the functionality and userinterface evaporates because it can not be made available in theimplementation environment
Evolutionary PrototypingThe prototype is used as the basis for the implementation of the
final systemAdvantage: Short time to marketDisadvantage: Can be used only if target system can be constructedin prototyping language
Types of Prototyping (Continued)
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 21/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 21
Prototyping vs Rapid Development
Revolutionary prototyping is sometimes called rapid prototypingRapid Prototyping is not a good term because it confuses
prototyping with rapid development Prototyping is a technical issue: It is a particular model inthe life cycle processRapid development is a management issue. It is aparticular way to control a project
Prototyping can go on forever if it is not restricted“Time - boxed” prototyping
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 22/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 22
The Limitations of the Waterfall and Spiral Models
Neither of these model deals well with frequent changeThe Waterfall model assume that once you are done with a phase,all issues covered in that phase are closed and cannot be reopenedThe Spiral model can deal with change between phases, but onceinside a phase, no change is allowed
What do you do if change is happening more frequently? (“Theonly constant is the change”)
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 23/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 23
An Alternative: Issue-Based Development
A system is described as a collection of issues
Issues are either closed or openClosed issues have a resolutionClosed issues can be reopened (Iteration!)
The set of closed issues is the basis of the system model
I1:Open
I2:Closed I3:Closed
A.I1:Open
A.I2:Open
SD.I1:Closed
SD.I2:Closed
SD.I3:Closed
Planning Requirements Analysis System Design
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 24/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 24
Waterfall Model: Analysis Phase
I1:Open
I2:Open I3:Open
A.I1:Open
A.I2:Open
SD.I1:Open
SD.I2:Open
SD.I3:OpenAnalysisAnalysis
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 25/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 25
Waterfall Model: Design Phase
I1:Closed
I2:Closed I3:Open
A.I1:Open
A.I2:Open
SD.I1:Open
SD.I2:Open
SD.I3:OpenAnalysis
Design
Analysis
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 26/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 26
Waterfall Model: Implementation Phase
I1:Closed
I2:Closed I3:Closed
A.I1:Closed
A.I2:Closed
SD.I1:Open
SD.I2:Open
SD.I3:Open
Implementation
Design
Analysis
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 27/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 27
Waterfall Model: Project is Done
I1:Closed
I2:Closed I3:Closed
A.I1:Closed
A.I2:Closed
SD.I1:Open
SD.I2:Open
SD.I3:Open
Implementation
Design
Analysis
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 28/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 28
Issue-Based Model: Analysis Phase
I1:Open
I2:Open I3:Open
A.I1:Open
A.I2:Open
SD.I1:Open
SD.I2:Open
SD.I3:Open
Analysis:80%
Design: 10%
Implemen-tation: 10%
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 29/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 29
Issue-Based Model: Design Phase
I1:Closed
I2:Closed I3:Open
A.I1:Open
A.I2:Open
SD.I1:Open
SD.I2:Open
SD.I3:Open
Analysis:40%
Design: 60%
Implemen-tation: 0%
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 30/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 30
Issue-Based Model: Implementation Phase
I1:Open
I2:Closed I3:Closed
A.I1:Open
A.I2:Closed
SD.I1:Open
SD.I2:Cosed
SD.I3:Open
Analysis:10%
Design: 10%
Implemen-tation: 60%
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 31/32
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 31
Issue-Based Model: Project is Done
I1:Closed
I2:Closed I3:Closed
A.I1:Closed
A.I2:Closed
SD.I1:Closed
SD.I2:Closed
SD.I3:Closed
Analysis:0%
Design: 0%
Implemen-tation: 0%
7/30/2019 Lifecycle 2
http://slidepdf.com/reader/full/lifecycle-2 32/32
Summary
A Software Life Cycle Model is a representation of thedevelopment process (as opposed to the system).Reviewed software life cycles
Waterfall, Iterative modelV-ModelBoehm’s Spiral Model Issue-based Development Model (Concurrent Development)