40
Selecting Software Development Life Cycles Adapted from Chapter 4, Futrell

Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

SelectingSoftware Development

Life Cycles

Adapted fromChapter 4, Futrell

Page 2: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Examples of Software Life Cycle Models

�“Classical” Waterfall�Waterfall with feedback�V-Shaped�Prototyping�Incremental�Spiral�Rapid Application Development�Combination

Page 3: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

“Classic” Waterfall Model

Systemsengineering

Maintenance

Analysis

Design

Code

Testing• Classical engineering approach• Associated with DOD-STD-2167A• Explicit start and end points to phases• Clearly defined milestones

Page 4: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

V&V Activities

V&V Activities

DevelopmentalTest

V&V Activities

V&V Activities

V&V Activities

Waterfall Model with Feedback

SystemRequirements

SoftwareRequirements

V&V Activities

PreliminaryDesign

DetailedDesign

Code andDebug

Test andPre-operations

OperationsandMaintenance

Page 5: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Strengths of the Waterfall Model

� It is easy to understand� It is easy to use (when applied to a project for which it is

suited)� It is easy to track the progress of the project using a timeline

or Gantt chart -- the completion of each phase is used as amilestone

� Allows for tight control -- defines quality control procedures� The model is well known by non-software customers and

end-users and is used by other organizations to trackprojects not related to software development

Page 6: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Weaknesses of the Waterfall Model

� It does not easily handle concurrent events -- developmentteams are delayed waiting on others

� It does not handle iterations among phases-- the sequentialflow is not always realistic

� The user is involved only in the beginning of the process,while gathering requirements, and at the end, duringacceptance testing

� Customers can rarely state all requirements at the beginningof the project

�The customer does not get to “see” the product untillate in the life cycle

� The model is not equipped to handle dynamic changes inrequirements over the life cycle -- deliverables are “frozen”

Page 7: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Project Requirements and Planning

Product Requirements

and SpecificationAnalysis

Architectural orHigh-Level Design

Detailed Design

Coding

Production,Operation, and

Maintenance

System Testing

Integration and Testing

Unit Testing

V-Shaped Model

Page 8: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Strengths of the V-Shaped Model

� The model is easy to understand� It is easy to use (when applied to a project for which it is

suited)� It is easy to track the progress of the project using a

timeline or Gantt chart -- the completion of each phase isused as a milestone

� The model emphasizes planning for verification andvalidation of the product in the early stages of productdevelopment

� The model encourages verification and validation of therequirements and design, not just the code of the product

Page 9: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Weaknesses of the V-Shaped Model

� The model does not easily handle concurrent events� It does not handle iterations of phases� The model is not equipped to handle dynamic changes in

requirements throughout the life cycle� The model is not equipped to handle dynamic changes in

requirements over the life cycle� The requirements are tested too late in the cycle to make

changes without affecting the schedule for the projectThe V-Shaped model may be modified to overcome these

weaknesses by including iteration loops to handle thechanging of requirements beyond the Analysis phase.

Page 10: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Prototyping Model

� Plan to throw one away� In most projects, the first system built is barely usable. It may be too slow, too big, awkward to

use, or all three. There is no alternative but to start again, starting but smarter, and build aredesigned version…

� The management question, therefore, is not whether to build a pilot system and throw it away.You will do that. The only question is whether to plan in advance to deliver a throwaway tocustomers.

- Fred Brooks, The Mythical Man-Month, 1975 p. 116

� Promising Attacks on the Conceptual Essence� The hardest single part of building a software system is deciding precisely what to build. No

other part of the conceptual work is as difficult as establishing the detailed technical requirements,including all the interfaces to people, to machines, and to other software systems. No other partof the work so cripples the resulting system If done wrong. No other part is more difficult torectify later.

� Therefore, the most important function that the software builder performs for the client is theiterative extraction and refinement of the product requirements. For the truth is, the client doesnot know what he wants.

- Fred Brooks, “No Silver Bullet, 1986

Page 11: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

ProjectPlan

RapidAnalysis

DatabaseCreation

UserInterface

Functions

Prototype Iteration

Design Derivation

Tuning

Operation and Maintenance

UserApproval

Evolutionary Rapid Prototyping Model

Page 12: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Strengths of the Rapid Prototyping Model

�The end user can “see” the system requirements asthey are being gathered by the project team --customers get early interaction with system

�There is less room for confusion, miscommunicationor misunderstanding in the definition of the systemrequirements, leading to a more accurate endproduct -- customer and developer have abaseline to work against

�The model allows for flexible design anddevelopment

Page 13: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Weaknesses of the Rapid Prototyping Model

� If the users cannot be involved during the rapid prototypeiteration phase of the life cycle, this can have adverse effectson the final product

� The rapid prototype is a partial system during the prototypeiteration phase. If the project is risky and may not becompleted, the end user will be left with only a partial system

� The customer may expect “look and feel” of the prototype� The customer may want to have prototype delivered rather

than waiting for full, well engineered version� If the prototyping language or environment is not consistent

with the production language or environment, there can bedelays in full implementation of the production system

� Quality can suffer

Page 14: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Go, no godecision

Toward a completed system

Next level prototypeEngineered system

Initialrequirementsgathering andproject planning

Customerevaluation

Initialsoftwareprototype

Risk analysis based oninitial requirements

Risk analysisbasedon customerreaction

Planning based oncustomer comments

Risk analysis

EngineeringCustomer evaluation

Planning

• Partitions process into four distinct quadrants• Emphasizes evolutionary development• Accommodates 1980s paradigms• Stresses formal risk analysis

Spiral ModelSpiral Model

Page 15: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Evolutionary Spiral Model

Source: Software Productivity Consortium Evolutionary Spiral Process Model Guidebook

1. Understand Context

3. Plan Development

2. Analyze Risks

4. Develop Product5. Manage and Plan

Define/Refine Approach- Stakeholders- Objectives- Alternatives- Constraints

Develop/UpdateEstimate of the

Situation

Perform RiskAnalysis

ReviewRisk AnalysisPlan RiskAversion

Evaluate RiskAversion

Review Alternative

Plan andSchedule

Developand VerifyProduct

Monitor andReview

Place ProductUnder Change

Control

ReviewProgress

Update Spiral Plan

Commit toProceed

ReviewContext

Commit toRisk Aversion

Strategy

Commit toPlan

ReviewTechnicalProduct

Page 16: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Strengths of the Spiral Model

� The model embraces the waterfall model while allowing foriteration throughout the phases of that model

� It is driven by risk analysis and is ideal for those projectswhich represent a medium to high risk

� The users see the product early, via the proof of conceptand rapid prototypes in the development life cycle

� The users are closely tied to the development efforts� All of the money needed for the project need not be

allocated up front� The model handles changes in requirements by allowing for

iteration through the Analysis & Design phase and ExecutePhase

Page 17: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Weaknesses of the Spiral Model

� If the project is low risk, this model can be an expensive life cyclemodel -- much time is spent evaluating the risk after each iterationwithin the model and considerable risk assessment expertise isrequired

� It may require unrealistic overhead for small projects� The creation of a prototype may not always be the appropriate type of

product development� It hasn’t been used as widely as linear sequential� The lack of a good prototyping tool or technique can make this model

clumsy to use� Adaptations of the model include:

Replacement of the prototypes with an increment of a productIteration within one of the spirals of the model illustrated by a two headed

arrowReplacement of the prototypes with rapid application development product

iteration

Page 18: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

RequirementsPlanning

UserDescription

Construction

CutOver

TIME

Dev

elop

men

t Effo

rt

User Community

Rapid Application Development (RAD) Model

Page 19: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

RAD Model

businessmodelingbusinessmodeling

datamodeling

datamodeling

processmodelingprocess

modeling

applicationgeneration

applicationgeneration

testing &turnover

testing &turnover

businessmodelingbusinessmodeling

datamodeling

datamodeling

processmodelingprocess

modeling

applicationgeneration

applicationgeneration

testing &turnover

testing &turnover

TIME

Deadline

Team 1

Team 2

Page 20: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Strengths of the RAD Model

�The model has shown reduced cycle time dueto the use of powerful development tools

�The end user is involved throughout the lifecycle

�The system is developed by a project teamfamiliar with the problem domain; thus itcontinues to build upon this expertise

�can deliver a full product in a short time period

Page 21: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Weaknesses of the RAD Model

� If the users cannot be involved consistentlythroughout the life cycle, this can have adverse effectson the final product

�This model requires highly skilled and well-traineddevelopers in the use of the chosen development toolsto achieve the rapid turnaround time

� It can require more people� It requires a system that can be properly modularized� It can fail if reusable components are not available

Page 22: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Incremental Model

� One of the Evolutionary Models� Combines elements of the linear sequential

model and prototyping� Requirements of the system are prioritized� The first increment is the delivery of the core

product, providing only the highest priorityrequirements

� Subsequent iterations expand on this core(enhancement maintenance)

Page 23: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Incremental Model

System/informationengineering

analysisanalysis designdesign codecode testtest delivery of1st increment

analysisanalysis designdesign codecode testtest delivery of2nd increment

analysisanalysis designdesign codecode testtest

delivery of3rd increment

TIME

Page 24: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Strengths of the Incremental Model

� The costs of developing a system can be reduced by definingsmaller incremental releases with reduced function

� The duration of the development cycle can be reduced with thismodel, allowing the product to be released quicker, perhaps inresponse to a market window

� Delivers a usable working product quickly� Keeps all teams working� The use of this model on a project with new technology can

allow the user to adjust to the system in smaller incrementalsteps rather than leaping to a major new product

This model is often combined with other models, such as thespiral model.

Page 25: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Weaknesses of the Incremental Model

�The model does not allow for iteration withineach increment

�The definition of a complete, fully functionalsystem must be done early in the life cycle toallow for the definition of the increments

�Allow you to “design yourself into a corner”�It works best with an even distribution of

different priority features�It requires good planning and design

Page 26: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Virus Backup Outside Procurement andIntegration

Fixes V-Shaped

Disk Doublespace Waterfall

File Recovery Spiral

Memory Management Prototype

Release Vxx.xx Incremental

Microsoft Product Release using CombinedModels

Page 27: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Combination Model

Preliminary requirements gathering

Spiral modelPrototyping 4GTRequirementsanalysis

Design

Coding

Testing

Prototyping:n-th iteration

4GT

Spiral modeln -th iteration

4GT

Maintenance

Operational system

Page 28: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Selecting a Life Cycle ModelExamine project characteristic categoriesExamine project characteristic categories::

•Uncertainty of Requirements•Requirements, Functional needs of the application •Project Team, Availability of Resources•User Community•Project Type, complexity of project•Cost of Application•Cost of Future Upgrades•Discrete / Gradual Requirements Change, Volume•Ease of Use of life cycle, Reuse•Longevity of the application•Product technology•Risk

Page 29: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Requirements Waterfall V-Shaped Prototype Spiral RAD Incremental

Are the requirements easily defined and/or well known?

Yes Yes No No Yes No

Can the requirements be defined early in the cycle?

Yes Yes No No Yes Yes

Will the requirements change often in the cycle?

No No Yes Yes No No

Is there a need to demonstrate the requirements to achieve definition?

No No Yes Yes Yes No

Is a prrof of concept required to demonstrate capability?

No No Yes Yes Yes No

Selecting a Life Cycle ModelProject Characteristic Category MatrixRequirements

Page 30: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Project Team Waterfall V-Shaped Prototype Spiral RAD Incremental

Are the majority of team members new to the problem domain for the project?

No No Yes Yes No No

Are the majority of team members new to the technology domain for the project?

Yes Yes No Yes No Yes

Are the majority of team memebers new to the tools to be used on the project?

Yes Yes No Yes No No

Are the team members subject to reassignment during the life cycle?

No No Yes Yes No Yes

Is there training available for the project team if required?

No Yes No No Yes Yes

Selecting a Life Cycle ModelProject Characteristic Category MatrixProject Team

Page 31: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Selecting a Life Cycle ModelProject Characteristic Category MatrixUser Community

User Community Waterfall V-Shaped Prototype Spiral RAD Incremental

Will the availability of the

user representatives be restriced, or limited during the life cycle?

Yes Yes No Yes No Yes

Are the user representatives new to system

definition?

No No Yes Yes No Yes

Are the user representatives experts in the

problem domain?

No No Yes No Yes Yes

Do the users want to be

involved in all phases of the

life cycle?

No No Yes No Yes No

Page 32: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Selecting a Life Cycle ModelProject Characteristic Category MatrixProject Type and RiskProject Type &

Risk Waterfall V-Shaped Prototype Spiral RAD Incremental

Does the project identify a new

product direction for the

organization?

No No Yes Yes No Yes

Is the project a system

integration project?

No Yes Yes Yes Yes Yes

Is the project an enhancement to

an existing system?

No Yes No No Yes Yes

Is the funding for the project

expected to be stable

throughout the life cycle?

Yes Yes Yes No Yes No

Is the product expected to

have a long life in the

organization?

Yes Yes No Yes No Yes

Page 33: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Selecting a Life Cycle ModelWhole Class Exercise #1

A company is rewriting its payroll system to move it from an oldbatch-type mainframe to a distributed mini-computer/PC-basednetworked setup. No new functionality will be added. The statementof work calls for a conversion “as is.” Only the input and outputsubsystems will be altered for the new environment. Since it is apayroll application, testing and verification will be emphasized withinthe development activities. The schedule allows five months for theproject, with two people working on it.

What do you think is the most Appropriate Life Cycle Approach?

What is the advantage of this approach for this project?

Page 34: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Selecting a Life Cycle ModelWhole Class Exercise #2

A company, an electronics giant, has recently decided to venture intoa related small business area developing wristwatch communicators.The device would be similar to a two-way radio and would beexpected to work over a 50-mile radius. The company hasconsiderable previous experience on product lines similar to this, andbelieves that a cheaper price could present a value-added challenge tothe cellular market. It would like to have a working model to presentat a national electronics fair coming up six months from now.

What do you think is the most Appropriate Life Cycle Approach?

What is the advantage of this approach for this project?

Page 35: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Selecting a Life Cycle ModelWhole Class Exercise #3

A company has recently completed a 3-year process to develop acellular infrastructure switching system to compete with industryleaders such as Motorola and Ericsson. It is now ready to move intothe next phase where new releases will be issued approximately everyfour months. An average of 15 new features and an appropriatenumber of bug fixes will be included in each release spread acrossteams composed of one to three engineers. Development times forthe new features can range from one to five months. Some featurescan require multiple releases for full implementation.

What do you think is the most Appropriate Life Cycle Approach?

What is the advantage of this approach for this project?

Page 36: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Selecting a Life Cycle ModelWhole Class Exercise #4

A company has created a new small business division to develop a specializedcommunications system. Approximately 15 persons will be transferred from keyareas of the company to form the base for the venture. Some 28 additionalpeople will be hired from the outside, the bulk of which are engineers. It hasalready been decided that Object-Oriented tools and approaches will be used withC++ as the language. None of the participants has any prior knowledge of thesetechniques, but will go through ten days of training when they come on board. Inaddition, a consortium-partner of the company has just released a newworkstation platform (its first). Due to these alliances, the consortium platformwill be the development platform of choice. Training is also being scheduled forthe new workstation. The primary satellite supplier, OO Aerospace, has beenhaving major financial difficulties due to military cutbacks and has laid off about35 percent of its work force.

What do you think is the most Appropriate Life Cycle Approach?

What is the advantage of this approach for this project?

Page 37: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

•Become familiar with the various models•Review, analyze the type of work: development,

enhancement, maintenance, etc.•Review project criteria•Identify a minimum set of phases•Identify phase activities•Establish a minimum set of deliverables•Define templates and content guides for deliverables•Evaluate progress and effectiveness of the life cycle

framework•Implement improvements

Customizing the Life Cycle Model

Page 38: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Approves

Preliminary Object-Oriented Analysis Models

Used to Develop

Initial Prototype User

Demonstrate to

Expanded & Refined OOA Models

Provides Feedback for

Used to Develop

Provides Feedback for

Expanded & Refined Prototype

User

Demo to

Final Requirements Specification

Latest Version Becomes

Used to Develop

Final Version of Prototype

Page 39: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Rapid OOA

Create Objects

Create Controls

Create Services

Iterate

Iterate

More Objects

More ControlsMore Services

More Specs

User

Demo

Feedback

NoFeedback = Approval?

Yes

Performance Testing & Tuning

Operation & Maintenance

Page 40: Selecting SW Life Cyclesapidduck/se362/Lectures/3SDLC.pdf · iteration phase of the life cycle, this can have adverse effects on the final product The rapid prototype is a partial

Software Life Cycles — Summary

�There are many “models” or representations of thesoftware life cycle

�Each model has its peculiar strengths andweaknesses

�The model selected for a project or the modelsused by an organization should meet the needs ofthe organization, the type of work to be done, andthe skills and tools of the software practitionersusing the model(s)