GENERIC SOFTWARE PROCESS MODELS THE WATERFALL APPROACH

Slides:



Advertisements
Similar presentations
ICT Class System Life Cycle.  Large systems development projects may involve dozens of people working over several months or even years, so they cannot.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Waterfall Model Speaker: Li-Wen Chen Adviser: Quincy Wu Date:
Systems Analysis, Prototyping and Iteration Systems Analysis.
Lecture # 2 : Process Models
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
CS487 Software Engineering Omar Aldawud
SDLC Software Development Life Cycle. SDLC Acronym for system development life cycle. Acronym for system development life cycle. Is the process of developing.
SDLC Group 1 Hang Pham Jared Jelacich Hector Arreola.
CSE 470 : Software Engineering The Software Process.
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.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Nhóm 23 Ng ư ời thực hiện : Mr Chu
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Alternate Software Development Methodologies
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
Fundamentals of Information Systems, Second Edition
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Life Cycle Model
Introduction to Systems Analysis and Design Trisha Cummings.
Lecture 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
Chapter 2 The process Process, Methods, and Tools
IT Systems Analysis & Design
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
 Software Models.  A software life-cycle model is a descriptive and diagrammatic representation of the software life-cycle. This includes a series of.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Mohammad Amin Kuhail M.Sc. (York, UK) University of Palestine Faculty of Engineering and Urban planning Software Engineering department Requirements Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Understand Application Lifecycle Management
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.
OHT 7.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Chapter 7.1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Database System Development Lifecycle 1.  Main components of the Infn System  What is Database System Development Life Cycle (DSDLC)  Phases of the.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Computers Are Your Future Tenth Edition Chapter 13: Systems Analysis & Design Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall1.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
An Introduction to Software Engineering
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
Introduction to Software Development (Software Engineering - I)
Software Testing Process By: M. Muzaffar Hameed.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Program Development Cycle
Click to add text Systems Analysis, Prototyping and Iteration.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
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.
Waterfall Model Software project Management. Waterfall Model  The Waterfall Model was first Process Model to be introduced. It is also referred to as.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
Systems Development Life Cycle
Software Design and Development Development Methodoligies Computing Science.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Software Engineering cosc 4359 Spring 2017.
Software Development Life Cycle Waterfall Model
Methodologies and Algorithms
Software Processes (a)
Software development life cycle models
Life Cycle Models PPT By :Dr. R. Mall.
Software life cycle models
CS310 Software Engineering Lecturer Dr.Doaa Sami
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Software Engineering Lecture 17.
Presentation transcript:

GENERIC SOFTWARE PROCESS MODELS THE WATERFALL APPROACH Presenters: Krystn Trowers Kerisha Witter

INTRODUCTION When developers attempt to create a project in addition to selecting a development method they must create a plan or model for the many task that will follow. In Software Development there are different generic software process models which can be used. This is basically the structure of the approach that will be taken to develop the program. According to Systems Analysis and Design, Shelly Cashman(2008), A structured analysis uses the system development life cycle (SLDC) process. The SLDC describes activities and functions that all systems developers perform, regardless of the approach used. In the waterfall approach, the result of each phase is called a deliverable or end product which flows sequentially into the next phase.

3

Not in our own words In our own words Definitions Not in our own words In our own words

NOT IN OUR OWN WORDS Dr. Winston W. Royce, in "Managing the Development of Large Software Systems", the first paper that describes the waterfall model, also describes the simplest form as "risky and invites failure". Steve McConnell in Code Complete (a book which criticizes the widespread use of the waterfall model) refers to design as a "wicked problem" — a problem whose requirements and limitations cannot be entirely known before completion. The implication of this is that it is impossible to perfect one phase of software development, thus it is impossible if using the waterfall model to move on to the next phase.

NOT IN OUR OWN WORDS David Parnas, in "A Rational Design Process: How and Why to Fake It", writes: “Many of the [system's] details only become known to us as we progress in the [system's] implementation. Some of the things that we learn invalidate our design and we must backtrack.”

THE WATERFALL APPROACH (IN OUR OWN WORDS) The waterfall model(approach) is a sequential software development process, in which progress is seen as flowing steadily downwards (like a waterfall) . In the unmodified "waterfall model“, progress flows from the top to the bottom, like a waterfall. Requirements Design Implementation Verification Maintenance

When we say the Waterfall Approach, What exactly do we speak of? 8

MOVES FROM TOP TO BOTTOM NOT RETURNING TO ANY STAGE

THERE ARE VARIATIONS TO A WATERFALL BUT THE CONCEPT IS SIMILAR

IN OUR OWN WORDS When we think of a Waterfall, what comes to mind? That it flows from top to bottom. Right? Well this is the basic concept of the waterfall approach just as the waterfall a waterfall on the cliff of a steep mountain. Once the water has flowed over the edge of the cliff and has begun its journey down the side of the mountain, it cannot turn back. It is the same with waterfall development. Once a phase of development is completed, the development proceeds to the next phase and there is no turning back.

HOW DOES IT WORK? In the waterfall model, you proceed from one phase to the next sequentially. This suggests that you would complete the specification requirements first then when this phase is completed you move onto the design phase. In this phase the software is designed and a blue print is drawn for the coders to follow when the design phase has ended. In the implementation stage, the design is implemented by the coders and in the final stages of the implementation phase, separate software components are combined to form new functionalities and reduce risks through the removal of errors. As a result the waterfall model suggests that you should move to a phase only when its preceding phase has been completed and perfected.

THERE ARE FIVE PHASES IN THE WATERFALL APPROACH Requirements Specification Design Implementation Verification (Testing and Debugging) Maintenance (Installation)

BRIEF DESCRIPTION OF THE PHASES Requirements-Developer analyses users requirement and, performs further investigation of requirements, produces developers version of requirements. Since oftentimes users are unable to describe what they need with precision. However, when the developer finally gets the users to accept the proposal they can now begin. Design-this phase focuses on high level design; what programs are needed and how they will interact with low level design(how the individual programs will work), interface design(what the interface will look like) and data design(what data is required) . Hence the overall structure is defined.

BRIEF DESCRIPTION OF THE PHASES Implementation-In this phase designs are translated into codes. The programs are written using a programming language or application generators.Various high level languages such as pascal , C, C++ and java are used with programming tools such as compilers, debuggers and interpreters to generate codes. Verification- In this phase the system is tested; each module is tested separately and in detail then the system is tested as a whole. Therefore the whole system tested to ensure that the interface between modules work, the system works as intended with the expected volume of data and that it does what the user requires.

BRIEF DESCRIPTION OF THE PHASES Maintenance- in this phase the system is maintained since the software will undergo change once delivered to the customers; these changes may stem from unexpected input values into the system. Therefore the software must be developed to accommodate changes that could happen during those periods before its implementation period.

TAKE NOTES The waterfall approach is seemingly perfect but it is deemed inadequate as a process of software development therefore many persons wonder, Why spend time on this process? It is for these reasons; The waterfall approach is still used by many software standards documents today. Other processes depend strongly on the waterfall approach(and its inadequacies) since it is a perquisite to the study of alternative processes. And none technical managers and persons responsible for external developments still demand the waterfall approach.

Strengths As a result of simplistic approach it is explainable to the user. As a result of the linear sequential model it appears orderly and that appeals to management. Testing (Verification) must be done at every stage of the waterfall model thus most errors are identified before the other phase is begun. Misinterpretations and other defaults are also detected at an early stage. 18

Strengths According to Contributor Melonfire (2006,September 22) retrieved from http://articles.techrepublic.com.com/5100-10878_11-6118423.html “the staged development cycle enforces discipline: every phase has a defined start and end point, and progress can be conclusively identified (through the use of milestones) by both vendor and client. The emphasis on requirements and design before writing a single line of code ensures minimal wastage of time and effort and reduces the risk of schedule slippage, or of customer expectations not being met.”

Strengths As a result of the first two phases of the waterfall approach producing a formal specification (when the user know what they want) when the developers go their different ways the transfer of information can be well-organized. Retrieved from Freetutes.com “The stages and activities are well defined and helps to plan and schedule the project.”

Strengths Documentation is provided at every stage and there is early functionality. As a result of each phase having to be fully completed before the next phase begin reports can be done on each phase. The system is broken down into departments where they can be controlled by departmental managers. It allows job specialization thus more competent person can do the task. 21

Weakness Most times a consumers or users mind is constantly changing and most persons have a vague idea of their software requirements and its as the software develops that they specify their requirements. As a result of consumers having difficulty in completely defining requirements they are clueless to what they want) at the beginning, using this approach we see the weakness of this approach come to light:- 22

Weakness It is inadequate as developers cannot just go back and change something in a previous phase as the consumers requirement change but the developer has to go back to where the requirement needs to change and start that phase all over. Not until that phase is complete can he move on to the next phase. We see two set of weaknesses come to light:-

Weakness This approach does not make allowance for the change of defined requirements as the project progresses. Thus there is a big potential that the software will not fully meet the requirement of the user, it will be inefficient and have poor functionality. If the user has made an error in their requirements then the whole processes has to be restarted. As we know a users wants are always changing and so an implementation using this approach to develop the software may take so long that the original requirements may no longer be valid by the time the system is implemented.

Weakness It is a very time consuming process and especially with the iteration (Repeating a whole process already completed). Developers also underestimate the time it will take to finish the project and so it runs over budget. There is also little communication and interaction between the customers, engineers and project managers and this we know can lead to bigger problems which is made worst by the inadequacy of this approach. As a result of the above the development team does not understand the structure of the customers organization. 25

Weakness Retrieved from http://www.onestoptesting.com/sdlc-models/waterfall-model/advantage-disadv.asp “Much reflection or revision is not allowed.” There is no possibility for maintenance fitting or reuse in such a format. There is also a big chance that the user interface (design of software) will be difficult to carry out (use). In other words the design will not be capable of being used successfully (feasible). 26

Weakness In documentation and reviewing the procedures, massive delays occur. Developers spend a lot of time and effort on the early phase to ensure that they have no error as all other phases depend on them. 27

Conclusion In wrapping up basically we can say that the waterfall approach:- A cascading effect each phase must be completed and “signed off” before the next phase can be started. It is a linear sequential approach It is best for a software where the system requirement is not vague but specific and is not subject to change. As a result it has more disadvantages than advantages.

References Shelly Cashman ,(2008). Systems Analysis and Design (2003-2009). Waterfall Model. Retrieved from www.onestoptesting.com (2004-2007). The System Development Life Cycle. Retrieved from www.startvbdotnet.com Parekh Nilesh. (2005, May 1). The Waterfall Model Explained. www.buzzle.com Dr. Robertson David , Dr. Bednar James A. (2006). Development Methodologies. Waterfall Model. Retrieved from http://www.inf.ed.ac.uk/teaching/courses/seoc2/2004_2005/slides/methodologies_4up.pdf Als Adrian , Greenidge Charles. (2005, September 29). The Waterfall Model. Retrieved from http://scitec.uwichill.edu.bb/cmp/online/cs22l/waterfall_model.htm Anonymous(1998,April 4). The Waterfall Lifecycle Model and its Derivatives . Retrieved from http://codecourse.sourceforge.net/materials/The-Waterfall-Lifecycle-Model.html 29