Software development life cycle models 1 Software Engineering

  • Slides: 31
Download presentation
Software development life cycle models 1

Software development life cycle models 1

Software Engineering Methodologies • It is a Multi-step approach to systems development • Influences

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. 2

waterfall methodology/the linear sequential model • • – This is the most common easy

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. 3

Waterfall methodology 4

Waterfall methodology 4

Features of Water Fall Model Strength Well suited for small and static projects Generated

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 • • • 5

Iterative model • Addresses many problems of waterfall model. • In this iterations are

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

Incremental model • In incremental model the whole requirement is divided into various builds.

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. 7

Incremental model • The first iteration the first module of the application or product

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. 8

Incremental model 9

Incremental model 9

Incremental model • Advantages of Incremental model: • Generates working software quickly and early

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. 10

Incremental model • Disadvantages of Incremental model: • Needs good planning and design. •

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. 11

Spiral model More emphasis placed on risk analysis. The spiral model has four phases:

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. • • • 12

Spiral model • Planning Phase: Requirements are gathered during the planning phase. Requirements like

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. 13

Spiral model 14

Spiral model 14

Spiral model Advantages of Spiral model: Disadvantages of Spiral model: • High amount of

Spiral model Advantages of Spiral model: Disadvantages of Spiral model: • High amount of risk analysis hence, avoidance of Risk is enhanced. • Good for large and missioncritical projects. • Strong approval and documentation control. • Additional Functionality can be added at a later date. • Software is produced early in the software life cycle. • 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. 15

Prototype model • A prototype is a toy implementation of the system. • A

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. 16

Need of prototyping model • Reason for developing a prototype is that it is

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. 17

Need of prototyping model • The customer can evaluate whether he likes it or

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. 18

Prototype model 19

Prototype model 19

Prototype model 20

Prototype model 20

THE RAD MODEL • RAD model is Rapid Application Development model. It is a

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. 21

22

22

THE RAD MODEL • The phases in the rapid application development (RAD) model are:

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.

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

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

• 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:

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.

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

Functional requirements 29

Nonfunctional requirements • Nonfunctional requirements deal with the characteristics of the system • which

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

Goals of implementation • The goals of implementation part documents some general suggestions regarding development. These suggestions guide tradeoff 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. 31