Apt sdlc


Published on

Published in: Education, Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Apt sdlc

  1. 1. Software Development Life CyclesA look at Other Software Development Methodologies
  2. 2. CopyrightThis material is primarily for the use of Orange andBronze Software Labs, Inc.No part of this material may be reproduced ortransmitted in any form or by any means, electronic ormechanical, including photocopying, recording, or by anyinformation storage and retrieval system, withoutpermission in writing from the publisher.www.orangeandbronze.com
  3. 3. Overview• Introduction to SDLC• Types of Software Development Life Cycles• Examples of Different Software Development Life Cycleswww.orangeandbronze.com
  4. 4. Introduction to SDLCThe Software Development Life Cycle is the process,involving multiple stages (from establishing feasibility tocarrying out post-implementation reviews), used toconvert a management need into an application system,which is custom-developed or purchased, or is acombination of both. www.orangeandbronze.com
  5. 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. 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
  7. 7. www.orangeandbronze.com
  8. 8. Software Development Life Cycle Phases• Planning → Helps the project team establish a birds 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 takenwww.orangeandbronze.com
  9. 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 estimateswww.orangeandbronze.com
  10. 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 managedwww.orangeandbronze.com
  11. 11. Software Development Life Cycle Phases• Outputs: → Requirements document → Requirements traceability documentwww.orangeandbronze.com
  12. 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 Ruleswww.orangeandbronze.com
  13. 13. Software Development Life Cycle Phases• Outputs: → Design documents / diagramswww.orangeandbronze.com
  14. 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 definedwww.orangeandbronze.com
  15. 15. Software Development Life Cycle Phases• Outputs: → Functional software → Test Plans / Test Caseswww.orangeandbronze.com
  16. 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. 17. Software Development Life Cycle Phases• Outputs: → Integrated software → Implementation plan → Acceptance plan • UAT / Final suite of test caseswww.orangeandbronze.com
  18. 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 deliverywww.orangeandbronze.com
  19. 19. Software Development Life Cycle Phases• Outputs: → Production application → Completed acceptance test suite → UAT sign off between client and project teamwww.orangeandbronze.com
  20. 20. Types of Software Development Life Cycles• Sequential Development• Iterative and/or Incremental Developmentwww.orangeandbronze.com
  21. 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 developmentwww.orangeandbronze.com
  22. 22. Types of Software Development Life CyclesIncremental development is distinctly different fromiterative development in its purpose and also from itsmanagement implications. Teams get into trouble bydoing one and not the other, or by trying to managethem the same way. – Alistair Cockburn (2008)www.orangeandbronze.com
  23. 23. Types of Software Development Life CyclesDefinition:• 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. 24. Types of Software Development Life CyclesDefinition:• 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. 25. SDLC Examples• Waterfall Model• Rapid Application Development (RAD)• Spiral Modelwww.orangeandbronze.com
  26. 26. Waterfall Modelwww.orangeandbronze.com
  27. 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. 28. Waterfall Model• Phases → Requirements Specification → Design → Construction / Implementation / Coding → Integration → Testing and Debugging / Verification → Installation → Maintenancewww.orangeandbronze.com
  29. 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 projectswww.orangeandbronze.com
  30. 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. 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
  32. 32. Rapid Application Development (RAD)www.orangeandbronze.com
  33. 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. 34. Rapid Application Development (RAD)• Phases → Requirements Planning → User Design → Construction / Development → Cutover / Deployment → Learningwww.orangeandbronze.com
  35. 35. Rapid Application Development (RAD)• Advantages → Fast and efficient way of delivering software → Generally improves: • User-Designer communication • User cooperation • User commitmentwww.orangeandbronze.com
  36. 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
  37. 37. Spiral Modelwww.orangeandbronze.com
  38. 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. 39. Spiral Model• Phases → Planning • Determine objectives, alternatives, and constraints → Risk Analysis • Identify and resolve risks • Evaluate possible alternativeswww.orangeandbronze.com
  40. 40. Spiral Model• Phases → Engineering • Develop deliverables → Evaluation • Verify that deliverables are correct • Plan the next iterationwww.orangeandbronze.com
  41. 41. Spiral Model• Advantages → High amount of risk analysis → Good for large and mission-critical projects → Software is produced earlywww.orangeandbronze.com
  42. 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. 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/21www.orangeandbronze.com
  44. 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/0805Cockburwww.orangeandbronze.com
  45. 45. References• Steele, J. (2001). The Software Development Life Cycle (SDLC). Retrieved from http://www.elucidata.com/refs/sdlc.pdf• www.orangeandbronze.com