O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Software Development Life Cycle (SDLC)

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 27 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Software Development Life Cycle (SDLC) (20)

Anúncio

Mais recentes (20)

Software Development Life Cycle (SDLC)

  1. 1. SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) MOHAMED SAMI
  2. 2. AGENDA Software Development Life Cycle (SDLC) - Mohamed Sami 2 What is SDLC, and why we need them How to select the right SDLC
  3. 3. WHAT IS SDLC? A framework that describes the activities performed at each stage of a software development project. SDLC is a splitting of software development work into distinct phases (or stages) containing activities with the intent of better planning and management The SDLC aims to produce a high quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates Known as Software development methodology System development methodology Software development life cycle Software development process Software process Software Development Life Cycle (SDLC) - Mohamed Sami 3
  4. 4. WHAT IS SDLC PROCESS MODELS? • SDLC models have been created by software development experts, universities, and standards organizations to solve some repeated issue or to enhance other models. • Each process model follows series of steps unique to its type, in order to ensure success in process of software development. Software Development Life Cycle (SDLC) - Mohamed Sami 4
  5. 5. WHY USING A PROCESS MODEL Project Planning What should be or shouldn’t be built Define the terminologies, activities and deliverables Proper documentation Align project progress visibility with stakeholders Software Development Life Cycle (SDLC) - Mohamed Sami 5
  6. 6. THE RIGHT CHOICE Improve customer alignment and relations Development speed (time to market) Increase projects success rate Improve software quality Eliminating management overhead Decrease implementation risk We need to choose the right SDLC based on project context Software Development Life Cycle (SDLC) - Mohamed Sami 6
  7. 7. PERSPECTIVES Software Development Life Cycle (SDLC) - Mohamed Sami 7
  8. 8. THE COST OF DEFECTS Software Development Life Cycle (SDLC) - Mohamed Sami 8
  9. 9. HOW TO SELECT THE RIGHT SDLC • Selecting the right SDLC is a process in itself that organization can implement internally or consult for. There are some steps to get the right selection Learn about SDLC Models Assess the needs of Stakeholders Define the criteria Software Development Life Cycle (SDLC) - Mohamed Sami 9
  10. 10. MOST COMMON MODELS Models Waterfall V-Shaped Model Evolutionary Prototyping Spiral Method (SDM) Iterative and Incremental Extreme programming (Agile development) Software Development Life Cycle (SDLC) - Mohamed Sami 10
  11. 11. WATERFALL • The waterfall Model is a linear sequential flow. • In which progress is seen as flowing steadily downwards (like a waterfall) through the phases of software implementation. • This means that any phase in the development process begins only if the previous phase is complete. • The waterfall approach does not define the process to go back to the previous phase to handle changes in requirement. • The waterfall approach is the earliest approach that was used for software development Operation and maintenance Release and deployment Testing Implementati on Design Requirements analysis A linear sequential flow. Oldest and most well-known - 1970 The usage Projects which not focus on changing requirements, for example, responses for request for proposals (RFPs) Software Development Life Cycle (SDLC) - Mohamed Sami 11
  12. 12. ADVANTAGES AND DISADVANTAGES Advantages Disadvantages Easy to be explained inflexible, like the waterfall model Stages and activities are well defined Adjusting scope is difficult and expensive Milestones are well understood Model doesn't provide a clear path for problems found during testing phases Each phase has specific deliverables Costly and required more time Works well for smaller projects where requirements are very well understood. Needs very proper and detailed planning Process and results are well documented No continuous customer involvement to review the output Software Development Life Cycle (SDLC) - Mohamed Sami 12
  13. 13. V-SHAPED • It is an extension for waterfall model, Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. • The major difference between v-shaped model and waterfall model is the early test planning in v-shaped model. The usage · Software requirements clearly defined and known · Software development technologies and tools is well-known Software Development Life Cycle (SDLC) - Mohamed Sami 13
  14. 14. ADVANTAGES AND DISADVANTAGES Advantages Disadvantages Verification and validation of the product in early stages of product development Assumes that the requirements of a system can be frozen and known from beginning Easy to use. Stages and activities are well defined Does not easily handle dynamic changes in requirements Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle Inflexible and adjusting scope is difficult and expensive Each phase has specific deliverables Costly and required more time Works well for where requirements are easily understood Needs very proper and detailed planning No continuous customer involvement Software Development Life Cycle (SDLC) - Mohamed Sami 14
  15. 15. PROTOTYPING MODEL • It refers to the activity of creating prototypes of software applications, for example, incomplete versions of the software program being developed. • It is an activity that can occur in software development. It used to visualize some component of the software to limit the gap of misunderstanding the customer requirements by the development team. • This also will reduce the iterations may occur in waterfall approach and hard to be implemented due to inflexibility of the waterfall approach. • So, when the final prototype is developed, the requirement is considered to be frozen. The usage • This process can be used with any software developing life cycle model. • While this shall be focused with systems needs more user interactions. • So, the system do not have user interactions, such as, system does some calculations shall not have prototypes. Throwaway prototyping Evolutionary prototyping Incremental prototyping Extreme prototyping Software Development Life Cycle (SDLC) - Mohamed Sami 15
  16. 16. PROTOTYPING MODEL Software Development Life Cycle (SDLC) - Mohamed Sami 16
  17. 17. ADVANTAGES AND DISADVANTAGES Advantages Disadvantages Reduced time and costs Insufficient analysis, guess why? this can be disadvantage if the developer loses time in developing the prototypes User confusion of prototype and finished system Improved user involvement Developer misunderstanding of user objectives· Users give corrective feedback Excessive development time of the prototype A more accurate end product Expense of implementing prototyping, this can be eliminated if it will be integrated with the final product. Process may continue forever (scope creep) Software Development Life Cycle (SDLC) - Mohamed Sami 17
  18. 18. SPIRAL (SDM) • It is combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. • This model of development combines the features of the prototyping model and the waterfall model. • The spiral model is favored for large, expensive, and complicated projects. • This model uses many of the same phases as the waterfall model, in essentially the same order, separated by planning, risk assessment, and the building of prototypes and simulations. The usage • It is used in shrink-wrap large applications and systems which built-in small phases or segments. Software Development Life Cycle (SDLC) - Mohamed Sami 18
  19. 19. ADVANTAGES AND DISADVANTAGES Advantages Disadvantages Estimates (i.e. budget, schedule, etc.) become more realistic as work progresses High cost and time to reach the final product Changing requirements can be accommodated Needs special skills to evaluate the risks and assumptions Development can be divided into smaller parts and more risky parts can be developed earlier which helps better risk management Highly customized limiting re-usability Users see the system early and give corrective feedback Time spent planning, setting objectives, doing risk analysis and prototyping will be huge A more accurate end product Software Development Life Cycle (SDLC) - Mohamed Sami 19
  20. 20. ITERATIVE AND INCREMENTAL • It is developed to overcome the weaknesses of the waterfall model. • It starts with an initial planning and ends with deployment with the cyclic interactions in between. • The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental), allowing software developers to take advantage of what was learned during development of earlier parts or versions of the system. The usage • It is used in shrink-wrap application and large system which built-in small phases or segments • can be used in system has separated components, for example, ERP system. Which we can start with budget module as first iteration and then we can start with inventory module and so forth. Mini Waterfall 1 Mini Waterfall 2 Mini Waterfall n Final Waterfall Software Development Life Cycle (SDLC) - Mohamed Sami 20
  21. 21. ADVANTAGES AND DISADVANTAGES Advantages Disadvantages Produces business value early in the development life cycle (Do you know why) Requires heavy documentation· Follows a defined set of processes More customer involvement Partitioning the functions and features might be problematic Better use of scarce resources through proper increment definition Defines increments based on function and feature dependencies Can accommodate some change requests between increments Requires more customer involvement than the linear approaches (It is advantage as well) More focused on customer value than the linear approaches Integration between iteration can be an issue if this is not considered during the development Problems can be detected earlier Lowers initial delivery cost and initial product delivery is faster Software Development Life Cycle (SDLC) - Mohamed Sami 21
  22. 22. AGILE (XP - SCRUM) • It is based on iterative and incremental development, where requirements and solutions evolve through collaboration between cross-functional teams. • Usually less formal and reduced scope • Used for time-critical applications The usage • It can be used with any type of the project • it can be used when the customer needs to have some functional requirement ready in less than three weeks Software Development Life Cycle (SDLC) - Mohamed Sami 22
  23. 23. ADVANTAGES AND DISADVANTAGES Advantages Disadvantages Decrease the time required to avail some system features Scalability Face to face communication and continuous inputs from customer representative leaves no space for guesswork Skill of the software developers The end result is the high quality software in least possible time duration and satisfied customer Ability of customer to express user needs Produces business value early in the development life cycle (Do you know why) Documentation is done at later stages Reduce the usability of components Needs special skills for the team Software Development Life Cycle (SDLC) - Mohamed Sami 23
  24. 24. THE CONTEXT Business Priorities Skills Technology Others Software Development Life Cycle (SDLC) - Mohamed Sami 24
  25. 25. THE CRITERIA • Is the SDLC appropriate for the size of our team and their skills? • Is the SDLC appropriate with the selected technology we use for implementing the solution? • Is the SDLC appropriate with client and stakeholders need and priorities • Is the SDLC appropriate for the geographical situation (co-located or geographically dispersed)? • Is the SDLC appropriate for the size and complexity of our software? • Is the SDLC appropriate for the type of projects we do? • Is the SDLC appropriate for our engineering capability? Software Development Life Cycle (SDLC) - Mohamed Sami 25
  26. 26. THE CRITERIA Factors Waterfall V-Shaped Evolutionary Prototyping Spiral Iterative and Incremental Agile Methodologies Unclear User Requirement Poor Poor Good Excellent Good Excellent Unfamiliar Technology Poor Poor Excellent Excellent Good Poor Complex System Good Good Excellent Excellent Good Poor Reliable system Good Good Poor Excellent Good Good Short Time Schedule Poor Poor Good Excellent Excellent Excellent Strong Project Management Excellent Excellent Excellent Excellent Excellent Excellent Cost limitation Poor Poor Poor Poor Excellent Excellent Visibility of Stakeholders Good Good Excellent Excellent Good Excellent Skills limitation Good Good Poor Poor Good Poor Documentations Excellent Excellent Good Good Excellent Poor Component reusability Excellent Excellent Poor Poor Excellent Poor Software Development Life Cycle (SDLC) - Mohamed Sami 26
  27. 27. Thank you I hope you have learned new things Mohamed Sami Software Development Life Cycle (SDLC) - Mohamed Sami 27

×