Software life cycle models

Slides:



Advertisements
Similar presentations
2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
Advertisements

Lecture # 2 : Process Models
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
CSE 470 : Software Engineering The Software Process.
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
MapleLeaf, LLC SDLC Methodology. MapleLeaf, LLC, has established standard phases and processes in regards to project management methodologies for planning.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Life Cycle Model
1 CMPT 275 Software Engineering Software life cycle.
 Software Models.  A software life-cycle model is a descriptive and diagrammatic representation of the software life-cycle. This includes a series of.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
OHT 7.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Chapter 7.1.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
1 SWE Introduction to Software Engineering Lecture 4.
Software Engineering MCS-2 Lecture # 6
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Introduction to Software Development (Software Engineering - I)
Software Engineering. Lesson 2 Explain what is a software life cycle model. Identify the different software life cycle models. – Classical Waterfall Model.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
KUFA UNIVERSITY Department of Computer Science. Fundamentals of Software Engineering Presented By Neamah Hassan Presented By Neamah Hassan.
Software Development Life Cycle (SDLC)
Software Project Management Iterative Model & Spiral Model.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
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.
Systems Development Life Cycle
MANAGEMENT INFORMATION SYSTEM
Announcements/Assignments
Unit 6 Application Design KLB Assignment.
Software Development Life Cycle Waterfall Model
Methodologies and Algorithms
Lecture 3 Prescriptive Process Models
Systems Analysis & Design N106
Integrating Quality Activities in the Project Life Cycle
Software Life Cycle “What happens in the ‘life’ of software”
The Systems Engineering Context
Iterative Waterfall Model
Prototype Model Lecture-4.
Software Myths Software is easy to change
V-Shaped SDLC Model Lecture-6.
Classical Waterfall Model
Software development life cycle models
Software Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Models of Software Development Life Cycle (SDLC)
Software Process Models
Object oriented system development life cycle
Life Cycle Models PPT By :Dr. R. Mall.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Classical Waterfall Model
Software Processes.
Requirements and the Software Lifecycle
Introduction to Software Engineering
Life Cycle Models (Lecture 2)
Methodologies For Systems Analysis.
Computer Science Life Cycle Models.
An Overview of Software Processes
CS101 Introduction to Computing Lecture 20 SW Development Methodology
Baisc Of Software Testing
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Engineering Lecture 17.
Software Development Life Cycle Models
Information Systems Development (ISD) Systems Development Life Cycle
SDLC (Software Development Life Cycle)
Presentation transcript:

Software life cycle models Various types of life cycle models have been provided. However all of these models are having same phases of working i.e. feasibility study, requirement analysis and specification, design, coding, testing & maintenance, but they only differ in methods of their implementation. However a large no. of models have been purposed. But we will discuss only some important models that are:- Classical waterfall model Iterative waterfall model Evolutionary mode Prototyping model Spiral model

Classical waterfall model This model is base of all the other model. This model divides the life cycle of software development process into following phases:- Feasibility study Requirements analysis and specification Design Coding and unit testing Integration and system testing maintenance

We will now discuss the various activities carried out during each phase of life cycle. Feasibility study:- during this phase, we generally study two type of feasibility. Financial feasibility:- it is tested that if the project can be completed under the available resources or not or if the finance is available to fulfil the requirements. Technical feasibility:- it is tested that if the result is collected which forms the input to the further system.

2. Requirement Analysis and Specification:- During the requirement analysis and specification phase, the exact requirements of the customer are analysed and a proper documentation mentioning, the requirements is prepared. Two main activities performed during this phase are:- Requirements Analysis Requirements Specification

3. Design:- After the SRS document have been prepared in the software requirements and specification phase. In the design phase, the requirements specification mentioned in the SRS document is transformed into the structural form. This structural form is called software architecture of the project. This architecture should be such that it can be easily convert able into a coded form using implementation in some programming language. Various design approaches used in the industry can be categorized into two types:- Traditional design approach Object oriented design approach

4. Coding and Unit Testing Coding testing:- the purpose of coding and unit testing phase of software development is to translate completed, the software design into source code. The coding phase is also some times called implementation phase. Each components of design is implemented as a program modules. The end product of this phase is set of program modules that have been individually tested. After coding is each module is tested.

Unit Testing:- it involves testing each modules separately from other module, then debugging and documents it. It is the most efficient way to debug errors identified at this stage.

5. Integration and system testing:- During unit testing various test case and testing criteria are prepared for testing correct working of individual module. Now in this phase, the modules implemented in the implementation phase are integrated together and tested.

Integration Testing:- In this testing, modules are integrated one by one in step and after each addition of one module, the resulting system is tested again and again. The function of testing is to verify that after the integration of new module the system is working correctly or not. When modules have been successfully integrated and tested. System testing is carried out.

αtesting:- α testing is system testing performed by development team. System Testing:- The function of system testing is to ensure that the developed system conforms to its requirement specify in SRS document. System testing consist of three different kinds of testing activities. αtesting:- α testing is system testing performed by development team. βtesting:- β testing is system testing performed by a friendly set of customers. Acceptance testing:- This is system testing performed by the customer himself after the product delivery to determine whether to accept the delivered product or to reject it. System testing:- is carried out according to the system test plan document which was prepared during the requirement specification phase.

6. Maintenance :- Maintenance of a software product requires much more effort than the effort necessary to develop the product itself. The ratio of effort of development of system and its maintenance is about 40 : 60. There are three types of maintenance:- Adaptive Maintenance Perfective Maintenance Corrective Maintenance

Advantages:- It is simple to use and understand. Each stage has well defined deliverable or milestone. Required amount of resources are minimal. Phase are processed and completed one at a time. Works well for smaller project where requirements are very well understood.

Disadvantages:- Small changes or errors that arise in the complete software may cause a lot of problems. Client is not very clear of what he exactly wants from the software. Only able to use when the requirement are fixed. High amount of risk and uncertain. Poor model for long and on going project.

ITERATIVE WATERFALL MODEL This model leads the software development process in iterations. It projects the process of development in cyclic manner repeating every step after every cycle of SDLC process. The software is first developed on very small scale and all the steps are followed which are taken into consideration. Then, on every next iteration, more features and modules are designed, coded, tested, and added to the software. Every cycle produces a software, which is complete in itself and has more features and capabilities than that of the previous one.

Iterative Waterfall Model ADVANTAGE DISADVANTAGE It is much better model of the software process. It allows feedback to proceeding stages. It can be used for project where in the requirement are not well understood. In Iterative model less time is spent on documenting and more time is given for designing. Is useful when the project is large size. It is not easy to manage this model. No clear milestones in the development process. No stage is really finished. The number of resources requirement are more. Exit criteria for the software are unknown. Not applicable for smaller projects.

Spiral model is a combination of both, iterative model and one of the SDLC model. It can be seen as if you choose one SDLC model and combined it with cyclic process (iterative model). This model considers risk, which often goes un-noticed by most other models. The model starts with determining objectives and constraints of the software at the start of one iteration. Next phase is of prototyping the software. This includes risk analysis. Then one standard SDLC model is used to build the software. In the fourth phase of the plan of next iteration is prepared. Spiral Model

SPIRAL MODEL ADVANTAGE DISADVANTAGE Every time a new prototypes is obtained, it is revaluated again and again by customer. So more customer involvements is there. Better productivity through reuse capabilities. Proper control over cost, time and manpower requirement for a project work. This model requires risk identification, its projection, risk assessment and management which is not an easy task. Cost and time estimations are also not very easy. This model is not suitable for smaller project as the cost of risk analysis is greater than cost of the entire project. ADVANTAGE DISADVANTAGE

The Prototyping Model is a systems development method (SDM) in which a prototype (an early approximation of a final system or product) is built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed. Prototype Model

PROTOTYPE MODEL ADVANTAGE DISADVANTAGE Cost effective (Development cost reduced). Increase system development speed. Enables a higher output for user. Users are actively involved in the development. The user get a better understanding of the system being developed. Project management difficulties. Not suitable for large applications. Often lack flexibility. Possibility of implementing systems before they are ready. Possibility of causing system to be unfinished. Producer might produce a system inadequate for overall organization needs. ADVANTAGE DISADVANTAGE

Evolutionary Model Evolutionary Model: The Evolutionary model is suitable for large projects which can be decomposed into a set of modules for incremental development and delivery. This model is widely used in object-oriented development projects. This model is only used if incremental delivery of the system is acceptable to the customer.

Evolutionary Model ADVANTAGE DISADVANTAGE As each version produced in this model is a functioning system capable of performing some useful work, so when various versions of the system is delivered to the user from time to time, user got the chance to study the partially developed system. After development of each new versions of the system, testing takes place. As each module of the product get tested thoroughly, hence chances of errors in the final product get reduced. This model can only be used for very large projects which can be used for very large projects which can be subdivided into modules that can be implemented independent of each others. Even for very large projects, its very difficult to subdivide the problem into several functional units that can be incrementally this system. ADVANTAGE DISADVANTAGE

Comparison Of Different Life Cycle Models

Different Terms And Concepts SRS:- SRS is a software requirement specification SRS is used to implement the user requirements in project. Software Architecture:-The requirements specification mentioned in SRS document is transformed into the structural form. This structural form is software arch. Testing:- d testing is system testing performed by development team. Prototype:-A prototype is like a toy of the actual system which have low reliability, less functionalities and less performance. Meta Model:-A model includes features of the all the model, so it can be viewed as a meta model.

Unit testing:-In this testing, each module tested separately from other module, then debugging and documented. System testing:-The function of system testing is to ensure that the development system conforms to its requirements specify in SRS document. Acceptance testing:-Acceptance testing is system testing performed by the customer himself after the product delivery to determine whether to accept the delivered product or to reject it. Integration testing:-In Integration testing, modules are integrated one by one in step and after each addition of one module, the resulting system is to verify that after the integration of new module the system is working correctly or not. Phase containment of errors:-The principle of detecting error as close to its point of introduction as possible is called phase containment of errors.

Thank You