Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.

Slides:



Advertisements
Similar presentations
Keith McMillan Principal, Adept Technologies Copyright (C) 2008, Adept Technologies llc.
Advertisements

Applying Agile Methodologies to Traditional Publishing Kristen McLean Bookigee, Inc. February 12 th, 2011.
Colin Weaver The Eleven Essential Behaviours of Successful Agile Project Teams.
Chapter: 3 Agile Development
Prescriptive Process models
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
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 Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
3 Traditional Development Methods Of (SDLC) -Prototype -Waterfall -Agile Group9 Q2 Heng shujia 0823.
Slide Set to accompany Web Engineering: A Practitioner’s Approach
Agile Project Management with Scrum
Agile development By Sam Chamberlain. First a bit of history..
Anyone interested in this approach ? Over the past couple of years, I have developed PiVoT software to support the Agile development process. It emphasises.
Project Management – An Overview Project as a metaphor – a way to approach a series of activities Contexts – construction managementt, IT development,
Agile Architecture? Paul Lund 24 th Nov Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it.
Agile Methods.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Agile Principles Suradet Jitprapaikulsarn 1. What is Agility? Effective (rapid and adaptive) response to change Effective communication among all stakeholders.
Does it work with Data Warehouses?. “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we.
An Agile View of Process
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
Rally: One Writer’s Perspective. Background 28 years in technical communications including Symantec, Autodesk, and Cisco. Participated in Rally-based.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 4 Agile Development
Agile Methods. Agile Process/Method lightweight processes/methods that can be used to manage and control software and product development using iterative,
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
Building a new HMS from scratch Bite size software delivery Richard Troote Alex Stephenson Head of ICT Head of Property Services.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Project Workflow. How do you do it? -Discussion-
CS1: Classic Software Life Cycle “Waterfall” method: 1.Requirements/Analysis Determine the problem to be solved – client-centered 2.Specification.
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
AGILE COTS Václav Pergl We are uncovering better ways of developing software by doing it and helping others do it. Through this work.
Why (or When) Agile Fails Creating high performance software delivery teams.
Jeff Briggs Senior Consultant Capstone Consulting.
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
#2-What is Agile? Why Agile? Subtopics 1- Agile motivation for software / systems 2- Agile tenets and principles 3- Agile as a risk mitigation strategy.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Chapter 3 Agile Development
Module 2: What is Agile? Why use it? TLO: Given a DoD program involved in software development, the student will recognize situations where applying agile.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Agile Introduction Emerson Murphy-Hill. Agile Manifesto/Alliance XP, SCRUM, DSDM, Adaptive Software Development, Crystal, FDD February 2001 (Snowbird,
Steve Lundquist, PMP, M.Sc..  As a PMP certified program manager, there are numerous tools, processes, methodologies, and tricks that are available to.
By: Isuru Abeysekera AGILE DEVELOPMENT. WHAT IS AGILE DEVELOPMENT? Broad term used to describe several methods for a development process Introduced in.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
Project Workflow.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Introduction to Agile Software Development
Principles for Agile Development
Project Workflow.
How to Successfully Implement an Agile Project
The Agile Manifesto is based on 12 principles
Software life cycle models
Adjective: Able to move quickly and easily. Principles and Values
Projects, Assignments, and other Assessments
Project Lifecycle and IT Product Life Cycle
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Software Life Cycle Models

Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model was presented by Winston Royce in "Managing Development of Large Scale Software Systems" (Proceeding of IEEE WESCON, August 1970)

Waterfall Model

 Although it has come under attack in recent years for being too rigid and unrealistic when it comes to quickly meeting customer's needs, the Waterfall Model is still widely used.

Waterfall Model  It is attributed with providing the theoretical basis for other Process Models, because it most closely resembles a "generic" model for software development.

Waterfall Model TThe advantage of waterfall development is that a schedule can be set with deadlines for each stage of development and a product can proceed through the development process like a car in a carwash, and theoretically, be delivered on time.

TThe disadvantage of waterfall development is that it does not allow for much reflection or revision. OOnce an application is in the testing stage, it is very difficult to go back and change something that was not well- thought out in the concept stage.

The Prototyping Model  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.

The Prototyping Model  This model works best in scenarios where not all of the project requirements are known in detail ahead of time.  It is an iterative, trial-and-error process that takes place between the developers and the users.

The Prototyping Model  There are several steps in the Prototyping Model: 1. The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all aspects of the existing system.

The Prototyping Model 2. A preliminary design is created for the new system. 3. A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product.

The Prototyping Model 4. The users thoroughly evaluate the first prototype, noting its strengths and weaknesses, what needs to be added, and what should to be removed. The developer collects and analyzes the remarks from the users.

The Prototyping Model 5. The first prototype is modified, based on the comments supplied by the users, and a second prototype of the new system is constructed. 6. The second prototype is evaluated in the same manner as was the first prototype. The process is repeated until a final prototype is produced.

The Prototyping Model

The Incremental Model The incremental approach attempts to combine the waterfall sequence with some of the advantages of prototyping.

The Incremental Model  It divides the overall project into a number of increments, then it applies the waterfall model to each increment.

The Incremental Model  This approach is favored by many object-oriented practitioners.

Incremental Phases Inception : During the inception phase, the purpose, business rationale, and scope of the project is determined. This is similar to the feasibility analysis that is done in other life cycles.

Incremental Phases Elaboration: During the elaboration phase, more detailed requirements are collected, high level analysis is performed, and a general architecture is determined.

The Incremental Model  Elaboration: This phase divides the requirements into increments that can be built separately.

The Incremental Model  Construction The construction phase builds increments of the system. Each increment is developed using a waterfall approach.

The Incremental Model  Construction This includes detailed analysis and design for the use cases in the increment and coding and testing of the implementation of the sequence of events defined by the use cases.

The Incremental Model

Boehm’s Spiral Model  Barry Boehm, "A Spiral Model of Software Development and Enhancement", ACM SIGSOFT Software Engineering Notes, August 1986.

Boehm’s Spiral Model Each cycle produces something to be evaluated, but not necessarily a usable system.

Boehm’s Spiral Model Each cycle ends with the question "should we continue?"

Evolutionary Delivery Model Used by Microsoft and Netscape to develop web browsers.

Agile Development Model  The Agile Manifesto reads, in its entirety, as follows:  We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:  Individuals and interactions over processes and tools

Agile Development Model  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan  That is, while there is value in the items on the right, we value the items on the left more.

Agile Development Model  The Agile Manifesto is based on twelve principles:  Customer satisfaction by rapid delivery of useful software  Welcome changing requirements, even late in development

Agile Development Model  Working software is delivered frequently (weeks rather than months)  Working software is the principal measure of progress  Sustainable development, able to maintain a constant pace  Close, daily cooperation between business people and developers

Agile Development Model  Face-to-face conversation is the best form of communication (co-location)  Projects are built around motivated individuals, who should be trusted  Continuous attention to technical excellence and good design

Agile Development Model  Simplicity—the art of maximizing the amount of work not done—is essential  Self-organizing teams  Regular adaptation to changing circumstances

Agile Development Model

 The Agile Manifesto introduced the term “Agile Development” in (

Conclusions TThere is no one “correct” model.  Each model has tradeoffs.

Conclusions  Traditional models (Waterfall) –Definite and defined –Ability to estimate when the product will be finished, well- known costing models –Does not react well to change  Incremental models –Less definite, but react better to change between increments  Evolutionary –No certainty as to when the product will be finished –Allow changes to occur between prototypes  Spiral models –Same as incremental, but allows project to stop  Agile –Very flexible –Almost no structure – can get out of control