April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc.
System Development Life Cycle Models
Presentation by Krystal M McLean
System Development Life Cycle (SDLC)
• SDLC framework includes the following steps:• Communication: user initiates the request for a desired software product• Requirement Gathering: holds discussions with stakeholders to bring out as much information as possible on their requirements• Feasibility Study: create rough plan for software process to find out if the project is financially, practically and technologically
feasible• System Analysis: decide a roadmap of their plan and decide the best software model suitable for the project• Software Design: engineers use requirements to produce data dictionaries, logical diagrams, data-flow diagrams and pseudo
codes• Development: programming phase; implementation of software design begins with writing code and developing executable
programs• Testing: early discovery of errors by testing experts and developers is key to reliable software• Integration: software may need to be integrated with libraries, databases and other programs.• Implementation: installing the software on user machines and testing for portability and adaptability• Operations & Maintenance: users trained on how to operate the software and code is updated
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 2
Structured, well-defined sequence of stages to be followed to design and develop the intended software product efficiently.
5 basic models
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 3
Waterfall
V-Shape
Iterative
Spiral
Agile
Waterfall model
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 4
Traditional, linear-sequence life cycle model
Progress is seen flowing downward through various phases
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 5
Pros & Cons of waterfall
5 April 18, 2023
Pros Cons
• Straightforward, simple and easy to understand & use
• Appropriate for short-term projects• Well-suited for projects with clear,
stable and direct plans• Provide structure for inexperienced
staff• Good for executive and management
control• Each stage has specific deliverables
• All requirements need to be known upfront and frozen
• Not much room for revisions, inflexible • Cannot move onto the next step until
the prior step is completed• Cannot solve problems until the
maintenance phase• Little opportunity to preview the
system until integration at the very end
When to use the waterfall model
• When the requirements are established head-on and are well known to the team• When the technology is mastered by the team• The project has a stable plan and product definition• When updating or creating a new version of an existing product• When porting an existing product to a new platform
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 6
V-shape model
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 7
verification & testing life cycle model
Once coding is complete, the path continues up the right side of the V where the test plans developed earlier are put to use
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 8
Pros & Cons of v-shapePros Cons
• Emphasizes planning for testing the product in early stages of product development
• Each stage has a testable deliverable• Management can track progress by milestones• Easy to use, fairly simple to understand• Higher chance of success over the waterfall model
• Does not easily handle concurrent events• Not very flexible to dynamic changes in
requirements• Does not handle iterations or phases• No risk analysis• No early prototypes of the software is developed• Model does not provide clear path for problems
found during testing
WHEN TO USE V-SHAPE•When systems require high reliability and several stages of testing
•When all requirements are established up-front
•When it can be modified to handle changing requirements beyond the analysis phase
•Solution and technology is well known to the team
Iterative model
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 9
incremental life cycle model
Configuration & Change
ManagementEnvironment
• Initial Planning• Business Modeling
Deployment
Each iteration is a mini-waterfall process, with the feedback from one phase providing vital information for the next design phase
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 10
Pros & Cons of iterativePros Cons
• Avoid long product development cycles without user feedback
• Produces business value early in the development life cycle
• Build and improve the product step by step and track defects in the early stages
• Less time spent on documenting and more time designing and implementing
• Focused on small and frequent improvements that the big picture can be overlooked
• Requires heavy documentation• Small changes, often taking fewer production risks• Each phase is rigid with no overlaps• Costly system design issues may arise because
not all requirements are gathered up front
WHEN TO USE ITERATIVE•When the requirements of the complete system are clearly defined and understood
•When the project is of a large scope and needs a lot of testing and user feedback
•When major requirements are defined but some changes can be made and details can evolve over time
Spiral model
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 11
risk driven life cycle model
Specific objectives for the phase are
identified
Review progress & plan course of action
for the next phase
Risks are assessed and alternate solutions are
identified. A prototype is produced.
Software is produced and is tested at the
end of the engineering phase
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 12
Pros & Cons of spiralPros Cons
• One of the most flexible models, development phases determined by manager based on complexity of the project
• Early involvement of developers• Project monitoring is easy and effective and
estimates become more realistic as work progresses
• Changes can be introduced in later stages of the life cycle
• Does not easily handle concurrent events• Can be costly to use• Does not handle iterations or phases• Model does not provide clear path for problems
found during testing• Very dependent on risk analysis phase
WHEN TO USE SPIRAL•When the project is large
•When the software needs continuous risk evaluation
•Software requires significant changes
•Timeframe allows for end user feedback
Transitioning to Agile
• Principles behind the agile manifesto:• Highest priority is to satisfy the end user• Welcome changing requirements at anytime in development• Deliver working software frequently, preferably bi-weekly• End user and developers must work together daily• Build projects around motivated people and support them to get the job done• Face-to-face conversation is the most effective way to convey information to the team• Working software is the primary measure of progress• Sustainable development should allow the team to maintain a constant pace of development• Continuous attention to technical excellence and good design enhances agility• Simplicity is essential• The best designs emerge from self-organizing teams• The team should reflect on how to become more effective and adjust behavior accordingly
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 13
The agile manifesto
Agile model
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 14
quick and collaborative life cycle model
Deployment
1 2 N
Scrum: agile model
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 15
Product owner creates a prioritized list for the product, which allows the
team to break the product into smaller, more manageable pieces
During sprint planning the team pulls a small chunk of items from the product backlog to create a sprint backlog, then decides how to accomplish those items in the next sprint.
During the sprint the team meets daily in a Daily Scrum to assess progress and make necessary changes. The ScrumMaster keeps the team focused on the goal. At the end of the sprint there should be a potentially shippable product
66% of agile users utilize the scrum model
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 16
Pros & Cons of agile
Pros Cons
• Customer satisfaction by rapid, continuous delivery of useful software
• Customers, developers and testers constantly interact with each other
• Working software is delivered frequently, weekly rather than monthly
• Continuous attention to technical excellence and good design
• Late changes in requirements are welcomed
• The project can get off track if customer is not clear what final outcome they want
• Requires expert programmers who are capable of taking the kind of decisions required during the development process, may be difficult for new programmers to adapt
• Difficult to assess the effort required at the beginning of the SDLC
• Lack of emphasis on necessary designing and documentation
When to use the agile model• When there is a complex project that could benefit by creating large to-do
lists and prioritize it into manageable tasks with improved teamwork, better communication and fast results.• When new changes are needed to be implemented since agile gives
developers the freedom to change at very little cost.• When the user is unsure of the final system they want so changes can be
discussed and features can be newly effected or removed based on feedback.• When the user wants to be heavily involved with the development of the
project.• When the customer needs to have some functional requirement ready in
less than three weeks.April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. 17
For more information on scrum & agile:• http://www.agilelearninglabs.com/resources/scrum-introduction/
April 18, 2023 | © 2011 Kaiser Foundation Health Plan, Inc. For internal use only.