alternative software life cycle models by edward r. corner vol. 2, chapter 8, pp. 289-299 presented...

18
Alternative Alternative Software Life Software Life Cycle Models Cycle Models By Edward R. Corner By Edward R. Corner vol. 2, chapter 8, pp. vol. 2, chapter 8, pp. 289-299 289-299 Presented by: Gleyner Presented by: Gleyner Garden Garden EEL6883 EEL6883 Software Engineering II Software Engineering II

Upload: dorcas-davidson

Post on 15-Jan-2016

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Alternative Alternative Software Life Cycle Software Life Cycle

ModelsModelsBy Edward R. CornerBy Edward R. Corner

vol. 2, chapter 8, pp. 289-299vol. 2, chapter 8, pp. 289-299

Presented by: Gleyner Presented by: Gleyner GardenGarden

EEL6883EEL6883

Software Engineering II Software Engineering II

Page 2: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Feel free to interrupt!Feel free to interrupt!

Page 3: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

IntroductionIntroduction The classic waterfall The classic waterfall

model that we are model that we are familiar with was familiar with was developed around 1970 developed around 1970 by Dr. Winston Royceby Dr. Winston Royce

Many different models Many different models have been proposed since have been proposed since thenthen

They all exist to help cope They all exist to help cope with the great complexity with the great complexity and expense of software and expense of software products, and to help products, and to help create a product that create a product that meets the user’s needs meets the user’s needs and expectationsand expectations

Page 4: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

DefinitionDefinition NotNot a definition of process followed by a a definition of process followed by a

software development organizationsoftware development organization NotNot a methodology a methodology IsIs a reference model for a software a reference model for a software

development process that provides:development process that provides: a common basis for standards, and where these a common basis for standards, and where these

standards belong with respect to the modelstandards belong with respect to the model a description of major functions involved in a description of major functions involved in

software developmentsoftware development insight towards the important aspects or insight towards the important aspects or

features necessary for common understanding features necessary for common understanding and focusand focus

Page 5: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Alternative ModelsAlternative Models

Rapid, Throwaway Prototype:Rapid, Throwaway Prototype: Gomaa and Scott made it popular in 1981Gomaa and Scott made it popular in 1981 Focuses on ensuring product meets user’s Focuses on ensuring product meets user’s

needsneeds Goal is to improve the quality of requirements Goal is to improve the quality of requirements

specifications by providing a “quick and dirty” specifications by providing a “quick and dirty” partial implementation during requirements partial implementation during requirements phasephase

Use of this implementation by the users can Use of this implementation by the users can expose miscommunications in the requirement expose miscommunications in the requirement specificationsspecifications

Page 6: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Alternative ModelsAlternative Models Incremental Development:Incremental Development:

Constructing a partially implemented, yet Constructing a partially implemented, yet useful build and then incrementally added useful build and then incrementally added functionalityfunctionality

Requirements can be defined for each Requirements can be defined for each increment in advance, or during increment in advance, or during development between incrementsdevelopment between increments

If done correctly, can increase reliability and If done correctly, can increase reliability and decrease riskdecrease risk

Requires a very flexible system architecture, Requires a very flexible system architecture, and especially if the overall end-result is not and especially if the overall end-result is not fully planning forfully planning for

Page 7: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Alternative ModelsAlternative Models

Evolutionary Prototypes:Evolutionary Prototypes: Views the software life cycle as a set of Views the software life cycle as a set of

prototypes that are evolved through iterative prototypes that are evolved through iterative experimentation and refinementexperimentation and refinement

Intended to addresses customer satisfactionIntended to addresses customer satisfaction Sort of a mixture of Rapid Prototyping and Sort of a mixture of Rapid Prototyping and

Incremental Development, without the need Incremental Development, without the need for a full understanding of requirementsfor a full understanding of requirements

Hard to scale up to large systemsHard to scale up to large systems Expensive to use for complex mission-critical Expensive to use for complex mission-critical

applicationsapplications

Page 8: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Alternative ModelsAlternative Models

Reusable Software:Reusable Software: Reduce costs by incorporating existing Reduce costs by incorporating existing

designs, programs, modules, and data designs, programs, modules, and data into new software productsinto new software products

Compatible with all life cycle modelsCompatible with all life cycle models Avoid reinventing the wheelAvoid reinventing the wheel Less schedule needed, since code is Less schedule needed, since code is

already written, and less bugs to fix, already written, and less bugs to fix, since software has been “proven”since software has been “proven”

Page 9: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Alternative ModelsAlternative Models

Automated Software Synthesis:Automated Software Synthesis: Automated transformation of formal Automated transformation of formal

requirements into operational coderequirements into operational code Relies heavily on automated tools (Relies heavily on automated tools (veryvery

smart compilers)smart compilers)

Page 10: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Evaluation of Alternative Evaluation of Alternative Life Cycle ModelsLife Cycle Models

User’s needs are User’s needs are constantly evolvingconstantly evolving Creates new Creates new

requirements which requirements which must be met to meet must be met to meet expectationsexpectations

Project gets behind Project gets behind scheduleschedule

Waterfall example Waterfall example shows how shows how development is development is affectedaffected

Page 11: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Evaluation of Alternative Evaluation of Alternative Life Cycle ModelsLife Cycle Models

Shortfall is a measure of how far the system at a given time t, is from meeting Shortfall is a measure of how far the system at a given time t, is from meeting the actual requirements at time tthe actual requirements at time t

Lateness is a measure of the time that elapses between the appearance of a Lateness is a measure of the time that elapses between the appearance of a new requirement and its satisfactionnew requirement and its satisfaction

Adaptability is the rate at which the software solution can adapt to new Adaptability is the rate at which the software solution can adapt to new requirementsrequirements

Longevity is the time a system solution is adaptable to change and remains Longevity is the time a system solution is adaptable to change and remains viableviable

Inappropriateness captures the behavior of the shortfall over time (area Inappropriateness captures the behavior of the shortfall over time (area between needs and actual capabilitiesbetween needs and actual capabilities

Page 12: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Evaluation of Alternative Evaluation of Alternative Life Cycle ModelsLife Cycle Models

Rapid Prototyping:Rapid Prototyping: Increases likelihood Increases likelihood

that customers and that customers and developers are on the developers are on the same page at time t0same page at time t0

At t1 the delivered At t1 the delivered function is higher for function is higher for the rapid prototyping the rapid prototyping approachapproach

Shows overall, that Shows overall, that function is closer to function is closer to needs than the needs than the waterfall modelwaterfall model

Page 13: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Evaluation of Alternative Evaluation of Alternative Life Cycle ModelsLife Cycle Models

Incremental Development:Incremental Development: Deliberately built to satisfy Deliberately built to satisfy

fewer requirements initially, fewer requirements initially, but facilitates incorporation but facilitates incorporation of new requirements which of new requirements which increases adaptabilityincreases adaptability

Initial development time is Initial development time is reduced because of limited reduced because of limited functionalityfunctionality

Software can be enhanced Software can be enhanced more easily for a longer more easily for a longer period of timeperiod of time

Stair steps show series of Stair steps show series of well-defined, planned, well-defined, planned, discrete builds of the systemdiscrete builds of the system

Page 14: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Evaluation of Alternative Evaluation of Alternative Life Cycle ModelsLife Cycle Models

Evolutionary Prototypes:Evolutionary Prototypes: Number and frequency of Number and frequency of

operational prototypes is operational prototypes is increasedincreased

Initial prototype emerges Initial prototype emerges rapidly to provide a rapidly to provide a framework for the softwareframework for the software

Each prototype explores a Each prototype explores a new area of user need, new area of user need, while refining previous while refining previous functionfunction

More adaptableMore adaptable Not stepped because we Not stepped because we

are introducing new are introducing new functionality with more functionality with more refined old functionalityrefined old functionality

Page 15: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Evaluation of Alternative Evaluation of Alternative Life Cycle ModelsLife Cycle Models

Reusable Software:Reusable Software: Potential to Potential to

significantly decrease significantly decrease initial development initial development timetime

Only development Only development time is different heretime is different here

Page 16: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Evaluation of Alternative Evaluation of Alternative Life Cycle ModelsLife Cycle Models

Automated Software Automated Software Synthesis:Synthesis: Development time is Development time is

greatly reducedgreatly reduced Development costs are Development costs are

reduced so much that reduced so much that adapting old systems is adapting old systems is not as good as re-not as good as re-synthesizing the entire synthesizing the entire systemsystem

Low longevity, but very Low longevity, but very low shortfalllow shortfall

Page 17: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

Defining, Selecting, or Defining, Selecting, or Adapting a Life Cycle ModelAdapting a Life Cycle Model Life cycle model evaluation provides insight Life cycle model evaluation provides insight

as to how we might define, select, or adapt a as to how we might define, select, or adapt a life cycle model to improve our processlife cycle model to improve our process

Points that should affect selection:Points that should affect selection: Requirements volatility (likelihood that Requirements volatility (likelihood that

requirements will changerequirements will change The way that requirements change (big jumps, The way that requirements change (big jumps,

gradually)gradually) The longevity of the applicationThe longevity of the application The availability of resources to develop or effect The availability of resources to develop or effect

changes; it may be easier to get resources up front changes; it may be easier to get resources up front than to devote significant resources for than to devote significant resources for enhancementsenhancements

Page 18: Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II

ConclusionConclusion

It was a very good paper that It was a very good paper that describes and evaluates several describes and evaluates several different life cycle approachesdifferent life cycle approaches

I would have liked to know if he used I would have liked to know if he used any real data to get a general idea as any real data to get a general idea as to what the different evaluation plots to what the different evaluation plots looked likelooked like