1 / 31

Software development life cycle models

Software development life cycle models. Software Engineering Methodologies. It is a Multi-step approach to systems development Influences the quality of the Final product Consistent method with the Organizations management style.

jzimmerman
Download Presentation

Software development life cycle models

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software development life cycle models

  2. Software Engineering Methodologies • It is a Multi-step approach to systems development • Influences the quality of the Final product • Consistent method with the Organizations management style. • Majority of Organizations and Firms use a specific type of methodology that is tailored to their needs.

  3. waterfall methodology/the linear sequential model • This is the most common easy to implement and classic of all models. • Each phase must be completed perfectly in entirety before moving to next phase. • The output of each phase is input to next. • At each phase review is done if project is running according to required standards. • There is no overlap or moving backward in phases. • Divided into sequential phases • Tight control is maintained over the life of the project • Focus on planning (time, budget) • Implementation of an entire system at one time.

  4. Waterfall methodology

  5. Features of Water Fall Model • Strength • Well suited for small and static projects • Generated high-quality documentations • Obtains result at the end of each phases • Can measure progress of development • Well-structured • Weakness • Difficulty of adaptation to uncertainty • Inflexible to respond to change • Updating documentation is time-consuming. • Can not see the working version of the product until the end • The deliverable software is produced late during the life cycle. • It is high at risk

  6. Iterative model • Addresses many problems of waterfall model. • In this iterations are possible and move back to previous phase and make changes

  7. Incremental model • In incremental model the whole requirement is divided into various builds. • . Each module passes through the requirements, design, implementation and testing phases. • A working version of software is produced during the first module, so you have working software early on during the software life cycle.

  8. Incremental model • The first iteration the first module of the application or product is totally ready and can be provided to the customers. • Likewise in the second iteration the other module is ready and integrated with the first module. • Similarly, in the third iteration the whole product is ready and integrated. Hence, the product got ready step by step.

  9. Incremental model

  10. Incremental model • Advantages of Incremental model: • Generates working software quickly and early during the software life cycle. • This model is more flexible – less costly to change scope and requirements. • It is easier to test and debug during a smaller iteration. • In this model customer can respond to each built. • Lowers initial delivery cost. • Easier to manage risk because risky pieces are identified and handled during it’d iteration.

  11. Incremental model • Disadvantages of Incremental model: • Needs good planning and design. • Needs a clear and complete definition of the whole system before it can be broken down and built incrementally. • Total cost is higher than waterfall.

  12. Spiral model • More emphasis placed on risk analysis. • The spiral model has four phases: Planning, • Risk Analysis, • Engineering and Evaluation. •  A software project repeatedly passes through these phases in iterations (called Spirals in this model). • The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral.

  13. Spiral model • Planning Phase: Requirements are gathered during the planning phase. Requirements like ‘BRS’ that is ‘Business Requirement Specifications’ and ‘SRS’ that is ‘System Requirement specifications’. • Risk Analysis: In the risk analysis phase, a process is undertaken to identify risk and alternate solutions.  A prototype is produced at the end of the risk analysis phase. If any risk is found during the risk analysis then alternate solutions are suggested and implemented. • Engineering Phase: In this phase software is developed, along with testing at the end of the phase. Hence in this phase the development and testing is done. • Evaluation phase: This phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral.

  14. Spiral model

  15. Spiral model Advantages of Spiral model: Disadvantages of Spiral model: Can be a costly model to use. Risk analysis requires highly specific expertise. Project’s success is highly dependent on the risk analysis phase. Doesn’t work well for smaller projects. • High amount of risk analysis hence, avoidance of Risk is enhanced. • Good for large and mission-critical projects. • Strong approval and documentation control. • Additional Functionality can be added at a later date. • Software is produced early in the software life cycle.

  16. Prototype model • A prototype is a toy implementation of the system. • A prototype usually turns out to be a very crude version of the actual system. • prototype is usually built using several shortcuts. • A throwaway prototype is built to understand the requirements. By using this prototype, the client can get an “actual feel” of the system, since the interactions with prototype can enable the client to better understand the requirements of the desired system. 

  17. Need of prototyping model • Reason for developing a prototype is that it is impossible to get the perfect product in the first attempt. • Many researchers and engineers advocate that if you want to develop a good product you must plan to throw away the first version. The experience gained in developing the prototype can be used to develop the final product.

  18. Need of prototyping model • The customer can evaluate whether he likes it or not and the changes that he would need in the actual product. • A similar thing happens in the case of a software product and its prototyping model. • prototyping model can be used when technical solutions are unclear to the development team. • A developed prototype can help engineers to critically examine the technical issues associated with the product development. • In such circumstances, a • prototype may be the best or the only way to resolve the technical issues.

  19. Prototype model

  20. Prototype model

  21. THE RAD MODEL • RAD model is Rapid Application Development model. It is a type of incremental model. In RAD model the components or functions are developed in parallel as if they were mini projects. • The developments are time boxed, delivered and then assembled into a working prototype.  This can quickly give the customer something to see and use and to provide feedback regarding the delivery and their requirements.

  22. THE RAD MODEL • The phases in the rapid application development (RAD) model are: • Business modeling: The information flow is identified between various business functions.Data modeling: Information gathered from business modeling is used to define data objects that are needed for the business.Process modeling: Data objects defined in data modeling are converted to achieve the business information flow to achieve some specific business objective. Description are identified and created for CRUD of data objects.Application generation: Automated tools are used to convert process models into code and the actual system.Testing and turnover: Test new components and all the interfaces.

  23. THE RAD MODEL • Advantages of the RAD model: • Reduced development time. • Increases reusability of components • Quick initial reviews occur • Encourages customer feedback • Integration from very beginning solves a lot of integration issues.

  24. THE RAD MODEL • Disadvantages of RAD model: • Depends on strong team and individual performances for identifying business requirements. • Only system that can be modularized can be built using RAD • Requires highly skilled developers/designers. • High dependency on modeling skills • Inapplicable to cheaper projects as cost of modeling and automated code generation is very high.

  25.  When to use RAD model: • RAD should be used when there is a need to create a system that can be modularized in 2-3 months of time. • It should be used if there’s high availability of designers for modeling and the budget is high enough to afford their cost along with the cost of automated code generating tools. • RAD SDLC model should be chosen only if resources with high business knowledge are available and there is a need to produce the system in a short span of time (2-3 months).

  26. Parts of a SRS document • • The important parts of SRS document are: • 􀂃 Functional requirements of the system • 􀂃 Non-functional requirements of the system, and • 􀂃 Goals of implementation

  27. Functional requirements • The functional requirements part discusses the functionalities required from the system. • The system is considered to perform a set of high level functions {fi}. Each function fi of the system can be considered as a transformation of a set of input data (ii) to the corresponding set of output data (oi). • The user can get some meaningful piece of work done using a high-level function

  28. Functional requirements

  29. Nonfunctional requirements • Nonfunctional requirements deal with the characteristics of the system • which can not be expressed as functions - such as the maintainability • of the system, portability of the system, usability of the system, etc. • 􀂃 Nonfunctional requirements may include: • # reliability issues, • # accuracy of results, • # human - computer interface issues, • # constraints on the system implementation, etc.

  30. Goals of implementation • The goals of implementation part documents some general suggestions regarding development. These suggestions guide trade-off among design goals. • The goals of implementation section might document issues such as revisions to the system functionalities that may be required in the future, new devices to be supported in the future, reusability issues, etc.

More Related