The Waterfall Methodology

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Prescriptive Process models
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
HCI in the software process Chapter 6
Chapter 3 Process Models
MapleLeaf, LLC SDLC Methodology. MapleLeaf, LLC, has established standard phases and processes in regards to project management methodologies for planning.
Waterfall Model H.M.Shahzad MS(CS) from COMSATS Institute of Information Technology, Lahore.
System Development Life Cycle Process of creating and altering systems or software by using methodologies or models to develop the systems in a logical.
Problem with Software Requirements are complex The client does not know the functional requirements in advance Requirements may be changing Technology.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
1 CSE 403 Software Lifecycle Models Reading: Rapid Development Ch. 7, 25 (further reading: Ch. 21, 35, 36, 20) These lecture slides are copyright (C) Marty.
Chapter 2 The process Process, Methods, and Tools
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
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
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
Developed by Reneta Barneva, SUNY Fredonia The Process.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
Software Model Process
1)History of water fall model. 2)Features of water fall model. 3)Phase of water fall model. 4)Brief description of phases. 5)Advantages. 6)Disadvantages.
Software Process Modelling
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.
WATERFALL METHOD Robbie Campbell WHAT IS IT  Considered the classic approach to the SDLC.  It is a linear method with goals for each development phase.
Software Lifecycle Models Place of Testing in Software Lifecycle 1.
Software Development - Methodologies
TK2023 Object-Oriented Software Engineering
Software Development Life Cycle Waterfall Model
Methodologies and Algorithms
Software Life Cycle “What happens in the ‘life’ of software”
CS 5150 Software Engineering
Software Engineering Process
Software Engineering and Best Practices
Iterative Waterfall Model
Chapter :Software Process Model
Software Process Models
Chapter 6: Design of Expert Systems
Software Process Models
Software Development Life Cycle (SDLC)
Life Cycle Models PPT By :Dr. R. Mall.
Software Life Cycle Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Requirements and the Software Lifecycle
Software Engineering Lecture 18.
Software life cycle models
Technical Debt The good and the bad Copyright © 2017 Curt Hill
An Overview of Software Processes
Incremental Waterfall
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes Process should be
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Software Engineering Process
Software Engineering Lecture 17.
Software Engineering Process
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Presentation transcript:

The Waterfall Methodology It was the best of methods, it was the worst of methods. Copyright © 2015-2016 Curt Hill

Waterfall Model This is a classic engineering model Predates software engineering in its use by other engineering disciplines Consider the construction of a building for a business Copyright © 2015-2016 Curt Hill

A Building Consider what is needed, what is wanted and what can be afforded Always a compromise Architect the building Construct the building from the plans Furnish the building Occupy the building Copyright © 2015-2016 Curt Hill

Commentary In the building approach each of the steps is finished before the next one is started We do not redesign the building after construction is done It requires that each step gets it right before proceeding In software development this is called the waterfall model or linear sequential model Copyright © 2015-2016 Curt Hill

Operation & Maintenance Waterfall Model Requirements Design Unit Implementation System Integration Operation & Maintenance Copyright © 2015-2016 Curt Hill

Waterfall Model A sequential process Several phases Each largely completes before the next one starts There may be some overlap Backing up is expensive – it throws away work already done Copyright © 2015-2016 Curt Hill

Adaptation This technique works rather well for building and heavy manufacturing Thus it was adapted to software engineering rather early The term first appears in an 1976 paper although the model appears before this In 1985 DOD required a process that included these steps: Preliminary Design, Detailed Design, Coding and Unit Testing, Integration, and Testing Copyright © 2015-2016 Curt Hill

The Original Phases System and software requirements Analysis Design A product requirements document Analysis Models, schema, and business rules Design Software architecture Coding Development, unit testing and integration Testing System debugging Operations Installation, support, and maintenance Copyright © 2015-2016 Curt Hill

Incorrect Assumptions Constructing a building is much different than constructing software Building construction has been fairly well understood for centuries Seldom hear: Never heard of anything like that before Physics makes backing up difficult Many software development projects are knowledge acquisition projects We do not know what we are getting into Copyright © 2015-2016 Curt Hill

A Thought Experiment Think about a steel frame building like the Empire State Building Now we cut out one of the corner pillars In a building this is preposterous In software it is reasonable We do it all the time This illustrates one of the serious differences between building and software construction Copyright © 2015-2016 Curt Hill

Waterfall Problems Works better for very large projects Must have solid managerial support There should be no technical questions that have not been answered Many such projects are canceled before rolling out the product Complete loss of investment The volatility of requirements is fatal Technical debt accumulates and is not visible until late in the project Copyright © 2015-2016 Curt Hill

Technical Debt Technical debt refers to the eventual consequences of any system design AKA design debt or code debt Unfinished work that is required by a design Most often seen in projects that are released early Like financial debt this accrues interest making changes more difficult later Prevents or makes more difficult enhancements Copyright © 2015-2016 Curt Hill

Waterfall Debt We do not see the problems early enough Requirements were insufficient Design was poor Early code was not good These problems come home to roost at the end of the project This is when it is most difficult to change Copyright © 2015-2016 Curt Hill

Times Have Changed If it is worth doing it is worth doing wrong until you figure out how to do it right In the early days this was the best we knew how to do The types of projects were often more compatible with this model However, now only about 18% of real world projects are using Waterfall Copyright © 2015-2016 Curt Hill

In Contrast This method is very linear This is a problem that many approaches have attempted to deal with The notion is that unlike a building a software system evolves This gives rise to incremental and evolutionary approaches These produce a sequence of usable systems Each more complete than the previous Copyright © 2015-2016 Curt Hill

When to use Requirements are very well documented, clear and fixed No ambiguous requirements Product definition is stable Technology is understood and is not dynamic Ample resources with required expertise are available to support the product The project is short Copyright © 2015-2016 Curt Hill

Pros Easy to understand and use Easy to manage Phases are completed one at a time Works well for smaller projects where requirements are very well understood Clearly defined stages Well understood milestones Easy to arrange tasks Process and results are well documented Copyright © 2015-2016 Curt Hill

Lots of Cons No working software is produced until late Plenty of risk and uncertainty Poor model for long and ongoing projects Poor where requirements are at a moderate to high risk of changing It is difficult to measure progress within stages Copyright © 2015-2016 Curt Hill

More Cons Cannot accommodate changing requirements Adjusting scope during the life cycle can end a project Integration is done as a "big-bang. at the very end Does not allow identifying technological or business bottleneck or challenges early Copyright © 2015-2016 Curt Hill

Historical Analogy The first high level language was FORTRAN in the late 1950s Every language that came out in the 1960s was intended to do things better than FORTRAN Similarly Waterfall was the first methodology for software development Most of what followed tries to correct a perceived flaw in it Copyright © 2015-2016 Curt Hill

Finally The Waterfall methodology does well only with good specifications, good design and solid organizational support Software development organizations should only use this in cases of unusual stability Finally for now Copyright © 2015-2016 Curt Hill