The document discusses various software development life cycles (SDLC), including:
- The waterfall model, which progresses through sequential phases from requirements to maintenance. It emphasizes documentation but lacks flexibility.
- Rapid application development (RAD), which uses iterative prototyping to speed development but can compromise quality.
- The spiral model, which is iterative and emphasizes risk analysis, making it suitable for large, complex projects.
2. Copyright
This material is primarily for the use of Orange and
Bronze Software Labs, Inc.
No part of this material may be reproduced or
transmitted in any form or by any means, electronic or
mechanical, including photocopying, recording, or by any
information storage and retrieval system, without
permission in writing from the publisher.
www.orangeandbronze.com
3. Overview
• Introduction to SDLC
• Types of Software Development Life Cycles
• Examples of Different Software Development Life
Cycles
www.orangeandbronze.com
4. Introduction to SDLC
The Software Development Life Cycle is the process,
involving multiple stages (from establishing feasibility to
carrying out post-implementation reviews), used to
convert a management need into an application system,
which is custom-developed or purchased, or is a
combination of both.
www.orangeandbronze.com
5. Introduction to SDLC
• SDLC is...
→ A model of a detailed plan on how to create, develop,
implement and deliver software
→ A complete plan outlining how a software will be born,
raised, and turned over to its eventual users
www.orangeandbronze.com
6. Introduction to SDLC
• Basic Pattern of General Life Cycle Models:
→ Planning
→ Requirements Definition and Analysis
→ Design
→ Development
→ Integration and Testing
→ Implementation
• Each phase produces output (deliverables) that will be
the input to the next phase.
www.orangeandbronze.com
8. Software Development Life Cycle Phases
• Planning
→ Helps the project team establish a bird's eye view of the
software to be built
→ Determines the basic project structure
→ Evaluates feasibility and risks involved in the project
→ Describes appropriate management and technical
approach to be taken
www.orangeandbronze.com
9. Software Development Life Cycle Phases
• Outputs:
→ Goals and Objectives of the Project
→ Configuration Management Plan
→ Quality Assurance Plan
→ Project Plan and Schedule
• High-level estimates
www.orangeandbronze.com
10. Software Development Life Cycle Phases
• Requirements Definition and Analysis
→ Goals are translated into a group of one or more
requirements
• Major functions / features
• Critical processes to be managed
www.orangeandbronze.com
11. Software Development Life Cycle Phases
• Outputs:
→ Requirements document
→ Requirements traceability document
www.orangeandbronze.com
12. Software Development Life Cycle Phases
• Design
→ Requirements identified are translated into design
→ Usually depicted or illustrated through the use of
diagrams and other supporting documents
• Ex. ERD, Activity Diagram, Tables of Business Rules
www.orangeandbronze.com
13. Software Development Life Cycle Phases
• Outputs:
→ Design documents / diagrams
www.orangeandbronze.com
14. Software Development Life Cycle Phases
• Development
→ Where design is translated into software artifacts
→ Results in a functional software that is traceable to the
requirements and design elements defined
www.orangeandbronze.com
15. Software Development Life Cycle Phases
• Outputs:
→ Functional software
→ Test Plans / Test Cases
www.orangeandbronze.com
16. Software Development Life Cycle Phases
• Integration and Testing
→ Software is migrated from development environment to
test environment
→ Execution of test cases / test suites
• Verify correctness and completeness of software
→ Preparation of cutover to production
www.orangeandbronze.com
17. Software Development Life Cycle Phases
• Outputs:
→ Integrated software
→ Implementation plan
→ Acceptance plan
• UAT / Final suite of test cases
www.orangeandbronze.com
18. Software Development Life Cycle Phases
• Implementation
→ Software is migrated to production environment
→ Initial production data is loaded to production
environment
→ All test cases are executed once again
• Verify correctness and completeness of software in
production environment
→ UAT must have satisfactory results before customer
formally accepts delivery
www.orangeandbronze.com
19. Software Development Life Cycle Phases
• Outputs:
→ Production application
→ Completed acceptance test suite
→ UAT sign off between client and project team
www.orangeandbronze.com
20. Types of Software Development Life Cycles
• Sequential Development
• Iterative and/or Incremental Development
www.orangeandbronze.com
21. Types of Software Development Life Cycles
• Sequential Development
→ A development strategy wherein a strict set of
development phases or stages is followed in a
sequential or linear order.
→ Only when one phase or stage is completed can
development move on to the succeeding phase or
stage.
→ Sometimes referred to as a classical or traditional
method of software development
www.orangeandbronze.com
22. Types of Software Development Life Cycles
Incremental development is distinctly different from
iterative development in its purpose and also from its
management implications. Teams get into trouble by
doing one and not the other, or by trying to manage
them the same way.
– Alistair Cockburn (2008)
www.orangeandbronze.com
23. Types of Software Development Life Cycles
Definition:
• Incremental development is a strategy for staging and
scheduling the integration of the different parts of a
system being developed. Each part of the system is
developed at its own time or pace and are then
integrated as they are completed.
→ The word increment fundamentally means “add onto”
www.orangeandbronze.com
24. Types of Software Development Life Cycles
Definition:
• Iterative development is a strategy for scheduling a
certain amount of time for rework or revisions in order
to improve the quality of the different parts of the
system being built.
→ The word iterate fundamentally means “re-do”
www.orangeandbronze.com
25. SDLC Examples
• Waterfall Model
• Rapid Application Development (RAD)
• Spiral Model
www.orangeandbronze.com
27. Waterfall Model
• Characteristics
→ Phases are executed in sequential order
→ Each phase must be completed before proceeding to
the next
→ A formal review is conducted at the end of each phase
to determine completion
→ No overlap between phases
→ Software is not seen until the end of the project
→ Changes are limited and tightly controlled
www.orangeandbronze.com
28. Waterfall Model
• Phases
→ Requirements Specification
→ Design
→ Construction / Implementation / Coding
→ Integration
→ Testing and Debugging / Verification
→ Installation
→ Maintenance
www.orangeandbronze.com
29. Waterfall Model
• Advantages
→ Puts emphasis on documentation
→ Straightforward and more disciplined approach
→ Provides a structured approach
→ Provides easily markable milestones
→ Generally suited for stable projects
www.orangeandbronze.com
30. Waterfall Model
• Criticism / Disadvantages
→ Rigid structure
→ Impossible to achieve perfection
→ “Measure twice, cut once” does not always work
→ Planning control and risk management are not covered
within the model
www.orangeandbronze.com
31. Waterfall Model
• Criticism / Disadvantages
→ Very specific skill sets required for each phase
→ High amounts of risk and uncertainty
→ Poor model for:
• Complex and object-oriented projects
• Long and ongoing projects
• Projects where requirements are at a moderate to high
risk of changing
www.orangeandbronze.com
33. Rapid Application Development (RAD)
• Characteristics
→ Iterative development through prototyping
→ Iterative and incremental
→ Aimed at speeding up application development
→ Compromises functionality and performance in
exchange for faster development
www.orangeandbronze.com
34. Rapid Application Development (RAD)
• Phases
→ Requirements Planning
→ User Design
→ Construction /
Development
→ Cutover / Deployment
→ Learning
www.orangeandbronze.com
35. Rapid Application Development (RAD)
• Advantages
→ Fast and efficient way of delivering software
→ Generally improves:
• User-Designer communication
• User cooperation
• User commitment
www.orangeandbronze.com
36. Rapid Application Development (RAD)
• Criticism / Disadvantages
→ The process may become so fast that proper testing
(especially security testing) may not be done
→ Prototypes delivered may not always result in a
production application
→ Quality indicators such as consistency, standardization,
reusability, and reliability are easily overlooked
www.orangeandbronze.com
38. Spiral Model
• Characteristics
→ Iterative model with emphasis on risk analysis
→ Combines elements of design and prototyping-in-stages
→ Aims to combine advantages of top-down and bottom-
up concepts
→ Intended for large, expensive and complex projects
www.orangeandbronze.com
39. Spiral Model
• Phases
→ Planning
• Determine objectives, alternatives, and constraints
→ Risk Analysis
• Identify and resolve risks
• Evaluate possible alternatives
www.orangeandbronze.com
40. Spiral Model
• Phases
→ Engineering
• Develop deliverables
→ Evaluation
• Verify that deliverables are correct
• Plan the next iteration
www.orangeandbronze.com
41. Spiral Model
• Advantages
→ High amount of risk analysis
→ Good for large and mission-critical projects
→ Software is produced early
www.orangeandbronze.com
42. Spiral Model
• Criticism / Disadvantages
→ Can be costly
→ Risk analysis requires high expertise
→ Success is highly dependent on risk analysis
→ Does not work well with smaller projects
www.orangeandbronze.com
43. References
• Lewallen, R. (2005, July 13). Software Development Life
Cycle Models. Message posted to
http://codebetter.com/blogs/raymond.lewallen/archive/20
• Becerra, G. (2004). Software Life Cycle: Theory and
Summary. Retrieved from
http://pages.cpsc.ucalgary.ca/~ayala/SENG/seng611/Assign
• Purcell, J. (2007). Comparison of Software
Development Life Cycle Methodologies. Retrieved from
http://www.giac.org/resources/whitepaper/application/21
www.orangeandbronze.com
44. References
• Davis, W. S., Yen, D. C. (1998). Rapid Application
Development (RAD). In The Information Systems:
Analysis and Design. Retrieved August 6, 2008, from
http://www.hit.ac.il/staff/leonidM/information-systems/ch
• Cockburn, A. (2008). Using Both Incremental and
Iterative Development. CrossTalk The Journal of
Defense Software Engineering, May 2008 Issue.
Retrieved April 11, 2008, from
http://www.stsc.hill.af.mil/crosstalk/2008/05/0805Cockbur
www.orangeandbronze.com
45. References
• Steele, J. (2001). The Software Development Life Cycle
(SDLC). Retrieved from
http://www.elucidata.com/refs/sdlc.pdf
•
www.orangeandbronze.com