Software development life cycle models

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
Software Development Life Cycle
CS487 Software Engineering Omar Aldawud
Software Life Cycle Model
CSI315 Web Technology and Applications
1 CMPT 275 Software Engineering Software life cycle.
Chapter 2 The process Process, Methods, and Tools
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
SOFTWARE ENGINEERING MCS-2 LECTURE # 5. RAD (RAPID APPLICATION DEVELOPMENT) MODEL  In RAD model the components or functions are developed in parallel.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
Rapid Application Development. What is RAD……..?  Rapid Application Development (RAD) is a software development process.  first developed during the.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
Software Engineering MCS-2 Lecture # 6
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Introduction to Software Development (Software Engineering - I)
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Software Model Process
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Engineering CE 501 Prepared by : Jay Dave.
To RAD or not to RAD? RAD is the relatively new kid on the block. You know the one. The one with all the flashy stuff and is practically the Usain Bolt.
Software Development Life Cycle(SDLC)‏
Systems Development Life Cycle
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
C_ITIP211 LECTURER: E.DONDO. Unit 1 : The Systems Development Environment.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
System Development Life Cycle methodologies
Software Engineering cosc 4359 Spring 2017.
Unit 6 Application Design KLB Assignment.
Methodologies and Algorithms
CompSci 230 Software Construction
Rapid Application Development
Integrating Quality Activities in the Project Life Cycle
Software Life Cycle “What happens in the ‘life’ of software”
INTRODUCTION TO SOFTWARE DEVELOPMENT
Software Processes (a)
Prototype Model Lecture-4.
CS 425/625 Software Engineering Software Processes
Methodologies in Computing
Software Process Models
Chapter 2 SW Process Models
Software Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Software Life Cycle Models
IT Systems Analysis & Design
Classical Waterfall Model
Introduction to Software Engineering
Software Engineering Lecture 18.
Unit 6: Application Development
Software life cycle models
Agile Process: Overview
Software Process Models
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes Process should be
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Software Engineering Lecture 17.
Project Lifecycle and IT Product Life Cycle
Chapter 8 Prototyping and Rapid Application Development
SDLC (Software Development Life Cycle)
PRESENTED BY P.SANDEEP MSc,MTech
Presentation transcript:

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. Majority of Organizations and Firms use a specific type of methodology that is tailored to their needs.

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.

Waterfall methodology

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

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

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.

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.

Incremental model

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.

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.

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.

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.

Spiral model

Spiral model Advantages of Spiral model: Can be a costly model to use. Disadvantages of Spiral model: 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. 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.

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. 

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.

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.

Prototype model

Prototype model

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.

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.

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.

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.

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

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

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

Functional requirements

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.

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.