48
© Tata Consultancy Services ltd. 12 October 2006 1 Confidential Software Development Life Cycle Models

Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

© Tata Consultancy Services ltd. 12 October 2006 1Confidential

Software Development Life Cycle Models

Page 2: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

2Confidential

ObjectivesOverview of Software Development Life Cycle

Understanding of well known SDLC Models

Guidelines to choose an appropriate SDLC Model

Page 3: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

3Confidential

SDLC Overview & Phases (1/4)A software life cycle is the series of identifiable stages that a software product undergoes during its lifetime

Phases of SDLCFeasibility (pre-development)

Establishes a high-level view of the intended project and determines its goals

Page 4: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

4Confidential

SDLC Overview & Phases (2/4)Requirements

Refines project goals into defined functions and operation of the intended application. Analyzes end-user information needs.Addresses on “What System should do”

Page 5: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

5Confidential

SDLC Overview & Phases (3/4)Design

Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation.

Coding and Unit testingThe real code is written here

Page 6: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

6Confidential

SDLC Overview & Phases (4/4)Testing

Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability.

Maintenance (post-development)Incorporation of changes, corrections, additions.

Page 7: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

7Confidential

SDLC Models (1/3)Set of generic development activities to be used on software projects and the order in which they are appliedBring order & structure to software developmentDefine a distinct set of activities, actions, tasks, milestones & work products required to engineer high quality software

Page 8: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

8Confidential

SDLC Models (2/3) Some well known life cycle models are

Single version modelWaterfall model

Waterfall model with “back flow”Throwaway Prototype model

Iterative modelEvolutionary Prototype modelSpiral model

Page 9: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

9Confidential

Analysis

Design

Implementation

Testing

AnalysisDesignImpln.

TestingAnalysisDesignImpln.

TestingAnalysisDesignImpln.

Testing Scope

Single version model Iterative models

SDLC Models (3/3)

Page 10: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

10Confidential

Software Development flows steadily downwards (like a waterfall)Proceeding from one phase to the next is purely in sequential manner

e.g. After completion of Requirement phase only Design phase should start

Waterfall Model (1/7)

Page 11: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

11Confidential

Waterfall Model (2/7)PSU

RQA

HLD

LLD

CONSTRUCTION

SYSTEM TEST

ACCEPTANCE TEST

PACKAGE & RELEASE

OPERATIONS & MAINTENANCE

Each phase “pours over” into the next phase.

Page 12: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

12Confidential

AdvantagesEach phase has specific deliverables and review process hence easy to managePhases are processed and completed one at a time - Ensures effective resource managementComfortable contract finalization with reference to delivery and payment schedule

Waterfall Model (3/7)

Page 13: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

13Confidential

IssuesProduces working Software at later stage during the life cycleLeads to high amount of risk and uncertaintyMandates correction of identified defects in the phase where they are initiated which is difficult in practical scenario

Waterfall Model (4/7)

Page 14: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

14Confidential

It is impossible to get one phase of a software product's lifecycle "perfected" before moving on to the next phases

(1) clients may not be aware of exactly what requirements they want before they see a working prototype and can comment upon it - they may change their requirements constantly, and program designers and implementers may have little control over this

Waterfall Model (5/7)

Page 15: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

15Confidential

(2) Designers may not be aware of future implementation difficulties when writing a design for an unimplemented software product. That is, it may become clear in the implementation phase that a particular area of program functionality is difficult to implement.

Waterfall Model

Page 16: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

16Confidential

Waterfall Model with “back-flow” (5/7)Allows correction of detected defects by going back to the appropriate phase (where the defect got introduced)Principle of “Phase containment of errors”:

If and when errors occur, they should be detected (and corrected) as early as possible

Page 17: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

17Confidential

PSU

RQA

HLD

LLD

CONSTRUCTION

SYSTEM TEST

ACCEPTANCE TEST

PACKAGE & RELEASE

OPERATIONS & MAINTENANCE

Waterfall Model with “back-flow” (6/7)

Page 18: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

18Confidential

Waterfall Model (7/7)

If software requirements are stable and well understood, then waterfall modelcan be used

Page 19: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

19Confidential

Prototyping Model (1/7)Suggests building a prototype before developing the actual software

A prototype is a rudimentary working model of a S/W

Built for demonstration purposes (Throwaway prototype) orAs part of the development process (Evolutionary prototype )

Page 20: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

20Confidential

Requirements gathering

Quickdesign

Refine requirements

Prototype evaluation

Buildprototype

DesignDevelopment

TestMaintain

Customer acceptance

Customer suggestions

Throwaway Prototype Model (2/7)

Page 21: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

21Confidential

Prototype gives look & feel of the future system to the clientAfter acceptance of the prototype, the development can be done using an iterative waterfall model

Throwaway Prototype Model (3/7)

Page 22: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

22Confidential

Development of a user interface prototype

Throwaway Prototype Model (4/7)

Page 23: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

23Confidential

AdvantagesEasy to change Prototypes as per client’s suggestionEarly visibility of the prototype gives users an idea of what the final system looks like

This Increases client’s satisfaction and participation

Throwaway Prototype Model (5/7)

Page 24: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

24Confidential

AdvantagesMay provide the proof of concept necessary to attract fundingTime/effort spent on prototype is worth it

SRS gets supplemented with prototypeExperience in building prototype is carried forward to development

Throwaway Prototype Model (6/7)

Page 25: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

25Confidential

IssuesExtra effort & time is required to build prototypes

When to choose Prototype modelIf software requirements are stable, but not clear, then Throwaway Prototype model can be used

Throwaway Prototype Model (7/7)

Page 26: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

26Confidential

Evolutionary Prototype Model (1/7)

Also known as SUCCESSIVE VERSIONS modelAllows

Breaking a system down into several modulesDelivery of modules in an incremental fashion

Page 27: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

27Confidential

Core module is developed initiallyRefined by incrementally adding new functionalities

Note: Each successive version of the product is a working version

Evolutionary Prototype Model (2/7)

Page 28: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

28Confidential

A A

B

A

B

C

Evolutionary Prototype Model (3/7)

Page 29: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

29Confidential

AdvantagesUseful when staffing is unavailable for a complete implementation

Early increments can be implemented by fewer peopleDepending on the acceptability, more resources can be added for subsequent stages

Evolutionary Prototype Model (4/7)

Page 30: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

30Confidential

AdvantagesUser gets an opportunity to use the partial system much before the fully developed version is releasedHelps in extracting requirements Core module gets tested very thoroughly (since it gets tested at the time of each release)

Evolutionary Prototype Model (5/7)

Page 31: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

31Confidential

IssuesAgreement on the core product is not easyIt is difficult to break down a system into functional units that can be implemented in an evolutionary way

Evolutionary Prototype Model (6/7)

Page 32: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

32Confidential

Evolutionary Prototype Model (7/7)Evolutionary prototype model is useful for implementation of large projects in incremental fashion

Note : Customer needs to be agreed upon Incremental delivery

Page 33: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

33Confidential

Spiral Model (1/10)The spiral model is an evolutionary software process model that couples

The iterative nature of prototyping andThe controlled and systematic aspects of the waterfall model

Page 34: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

34Confidential

Radius indicates the costAngle indicates the Progress

Spiral Model (2/10)1. Determine Objectives and identify alternative solutions

2. Identify and Resolve the risk

3. Develop the next level of product

4. Review and plan for the next phase

Page 35: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

35Confidential

Four Quadrants of Spiral ModelPlanning

Objectives, alternatives, and constraints are determined.

Risk AnalysisAlternative solutions and constraints are defined, and risks are identified and analyzed.

Spiral Model (3/10)

Page 36: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

36Confidential

RiskA customer not knowing exactly what he/she wantsChanging expectations as project progressesStaff who are inexperienced in the problem domain or with the appropriate implementation techniques

Spiral Model (4/10)

Page 37: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

37Confidential

EngineeringActual Development and Testing happens

Customer Evaluation Customer will assess the S/W and suggest changes if necessary

Spiral Model (5/10)

Page 38: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

38Confidential

Single loop spiral model represents a Waterfall modelLooping around each cycle represents evolutionary model

More complete version of the product gets built progressively

Spiral Model (6/10)

Page 39: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

39Confidential

AdvantagesHigh amount of Risk Analysis1.Allows customer and developer to determine and react to risks at each evolutionary level

2.Direct consideration of risks at all levels greatly reduces problems

Spiral Model (7/10)

Page 40: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

40Confidential

AdvantagesS/W is produced early in life cycleGood for large, complex and mission critical projects

Spiral Model (8/10)

Page 41: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

41Confidential

DisadvantagesCan be Costly modelRisk analysis requires highly specific expertiseProject’s success is dependent on the risk analysis

Spiral Model (9/10)

Page 42: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

42Confidential

Spiral Model (10/10)Spiral model should be used

If the requirements are coupled with the underlying business processes, which are going through a process of changeIf development is for technically challenging products

Page 43: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

43Confidential

ETVX Model (1/3)Facilitates Process control and ensures correctness and completeness of each activities

Each Phase in the development process can itself be considered a high level activity with a specific “ETVX

Page 44: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

44Confidential

ETVX Model (2/3)

ENTRY CRITERIA

EXIT CRITERIA

TASKS

VERIFICATION

Page 45: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

45Confidential

Entry CriteriaChecklist of conditions that must be satisfied before beginning the activity

TasksA set of tasks that needs to be carried out

VerificationA list of tasks to verify the quality of work items produced

Exit CriteriaA checklist of conditions that must be satisfied before each activity is completed

ETVX Model (3/3)

Page 46: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

46Confidential

Choosing a model (1/2)

Page 47: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

47Confidential

Choosing a model (2/2)Spiral

Evolutionary (Iterative)

WaterfallThrow-Away

&Waterfall

Requirements (Lack of) Clarity

(Un)Stability

Risk

Page 48: Software Development Life Cycle Models - Gujarat · 2011-07-21 · Software Development Life Cycle Models. Confidential 2 Objectives Overview of Software Development Life Cycle Understanding

48Confidential

Thank YouThank You