Software Development Life Cycle Models - Gujarat Informatics Limited
Transcript of Software Development Life Cycle Models - Gujarat Informatics Limited
© Tata Consultancy Services ltd. 12 October 2006 1Confidential
Software Development Life Cycle Models
2Confidential
ObjectivesOverview of Software Development Life Cycle
Understanding of well known SDLC Models
Guidelines to choose an appropriate SDLC Model
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
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”
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
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.
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
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
9Confidential
Analysis
Design
Implementation
Testing
AnalysisDesignImpln.
TestingAnalysisDesignImpln.
TestingAnalysisDesignImpln.
Testing Scope
Single version model Iterative models
SDLC Models (3/3)
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)
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.
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)
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)
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)
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
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
17Confidential
PSU
RQA
HLD
LLD
CONSTRUCTION
SYSTEM TEST
ACCEPTANCE TEST
PACKAGE & RELEASE
OPERATIONS & MAINTENANCE
Waterfall Model with “back-flow” (6/7)
18Confidential
Waterfall Model (7/7)
If software requirements are stable and well understood, then waterfall modelcan be used
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 )
20Confidential
Requirements gathering
Quickdesign
Refine requirements
Prototype evaluation
Buildprototype
DesignDevelopment
TestMaintain
Customer acceptance
Customer suggestions
Throwaway Prototype Model (2/7)
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)
22Confidential
Development of a user interface prototype
Throwaway Prototype Model (4/7)
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)
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)
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)
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
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)
28Confidential
A A
B
A
B
C
Evolutionary Prototype Model (3/7)
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)
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)
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)
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
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
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
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)
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)
37Confidential
EngineeringActual Development and Testing happens
Customer Evaluation Customer will assess the S/W and suggest changes if necessary
Spiral Model (5/10)
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)
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)
40Confidential
AdvantagesS/W is produced early in life cycleGood for large, complex and mission critical projects
Spiral Model (8/10)
41Confidential
DisadvantagesCan be Costly modelRisk analysis requires highly specific expertiseProject’s success is dependent on the risk analysis
Spiral Model (9/10)
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
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
44Confidential
ETVX Model (2/3)
ENTRY CRITERIA
EXIT CRITERIA
TASKS
VERIFICATION
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)
46Confidential
Choosing a model (1/2)
47Confidential
Choosing a model (2/2)Spiral
Evolutionary (Iterative)
WaterfallThrow-Away
&Waterfall
Requirements (Lack of) Clarity
(Un)Stability
Risk
48Confidential
Thank YouThank You