Software Development Life-Cycle Models

Slides:



Advertisements
Similar presentations
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Advertisements

SDLC – Beyond the Waterfall
SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Software Process Models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
CS487 Software Engineering Omar Aldawud
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
CS3773 Software Engineering Lecture 01 Introduction.
Software Process Models
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Life Cycles ECE 417/617: Elements of Software Engineering
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 2004.
CS 5150 Software Engineering
Software Development Overview CPSC 315 – Programming Studio Spring 2009.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
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 Development Life Cycle (SDLC)
Software Development Process
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Process and Models
Chapter 4 Agile Development
Chapter 4 Agile Development 1. The Manifesto for Agile Software Development 2 “We are uncovering better ways of developing software by doing it and helping.
IS2210: Systems Analysis and Systems Design and Change Twitter:
CPSC 371 John D. McGregor Session 22 Process. Specification and design problem solution specification implementation specification.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Prescriptive Process Models
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Prescriptive Process Models Jon Walker. Prescription? What does prescriptive mean?
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Software Engineering MCS-2 Lecture # 6
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
1 The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
SOFTWARE PROCESS MODELING Benjamin Dixon U
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Lifecycle Models A software lifecycle model is a standardised format for planning organising, and running a new development project.
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Software Lifecycle Models Place of Testing in Software Lifecycle 1.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Agile Gintarė Bernotaitytė © 2013.
Software Development.
Lecture 3 Prescriptive Process Models
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Software Life Cycle “What happens in the ‘life’ of software”
Software Process Models
Chapter 2 SW Process Models
Chapter 2: Software Process Models
Introduction to Software Engineering
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Lecture 2 Revision of Models of a Software Process
Agile Process: Overview
Software Process Models
Chapter 2: Software Process Models
Presentation transcript:

Software Development Life-Cycle Models

An Effective Software Development Process Is written down Is followed Is actively managed The process is dynamic Its effectiveness is measured regularly Measurement results are used to improve the process

The Waterfall Model Requirements Analysis Software Design Coding Testing Maintenance

Advantages of the Waterfall Model Easy to understand Widely used Reinforces notions of “define before design” and “design before code” Establishes milestones (when deliverables are produced and when reviews take place)

Disadvantages of the Waterfall Model Not realistic (doesn’t match real projects) Does not reflect the iterative nature of software Complete set requirements seldom known at the beginning of a project Working software not available until near end of project Does not incorporate risk assessment

The Concurrent Development Model Development and QA/Testing are performed concurrently Similar to the Synchronize and Stabilize model used by Microsoft Multiple baselines are included as part of the process SRS evolves over the course of the project Ends with a formal validation phase with defined criteria for starting and stopping

Advantages of the Concurrent Development Model It’s flexible – the number incremental releases can be determined by the project team Immediate feedback from testing New features can be added late in the project No surprises during formal validation because testing has been continuous

Disadvantages of the Concurrent Development Model The SRS must be continually updated to reflect changes It requires discipline to avoid adding too many new features too late in the project

The Rapid Prototyping Model Requirements gathering Quick design Prototype building Prototype evaluation by customers Prototype may be refined Prototype thrown away and software developed using formal process

Advantages of the Rapid Prototyping Model Users/customers own requirements Instills customer confidence that the “right” product is being built Provides a good way to determine requirements when there is uncertainty about what is needed

Disadvantages of the Rapid Prototyping Model Prototypes are not always thrown away – they often become the products or fundamental parts of the products Requires lots of customer involvement which isn’t always possible Validation may be difficult because the requirements may not be well documented

The Spiral Model Planning Risk Analysis Development Evaluation

Advantages of the Spiral Model Incorporates the iterative nature of software development Incorporates all the advantages of both the waterfall model and prototyping model

Disadvantages of the Spiral Model Requires expertise in risk analysis It is somewhat complicated and not well understood

Hybrid Models Combined aspects of two or more models Added flexibility Not usually well understood Have all advantages and disadvantages of the models encompassed

Object-Oriented Models Requirements analysis and design tend to be blurred Tend to be iterative in nature Usually incorporate risk management Incorporate requirements management and change control Emphasize the use of visual models (e.g. UML diagrams)

Models Based on Agile Methods ASD – Adaptive Software Development Crystal TDD –Test-Driven Development DSDM – Dynamic Systems Development Method Lean Software Development Scrum XP – eXtreme Programming

Agile Methods Emphasize Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

“How to Solve It” In 1945 George Polya wrote a book outlining 4 basic steps in problem solving: Understand the problem (requirements analysis) Devise a plan (software design and project planning) Carry out the plan (coding) Look back (testing the solution)

Summary Choosing the right life-cycle model can be difficult But it is essential to have one The life-cycle model covers more than just development – it must be appropriate for product support and maintenance