33
WATERFALL LIFE CYCLE SOFTWARE ENGINEERING

WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

Embed Size (px)

Citation preview

Page 1: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

WATERFALL LIFE CYCLE

SOFTWARE ENGINEERING

Page 2: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS IS SEEN AS FLOWING STEADILY DOWNWARDS (LIKE A WATERFALL) THROUGH THE PHASES OF CONCEPTION, INITIATION, ANALYSIS, DESIGN, CONSTRUCTION, TESTING, PRODUCTION/IMPLEMENTATION AND MAINTENANCE.

Page 3: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS
Page 4: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS
Page 5: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

IMAGINE YOU HAVE BEEN WORKING AT A COMPANY FOR A FEW YEARS.AT SOME POINT IN THE PAST A WONDERFUL NEW SYSTEM WAS INTRODUCED INTO THE COMPANY. EVERYONE WAS HAPPY. MANAGEMENT COULD SEE THEIR BUSINESS IMPROVE. THE WORKFLOW FOR EMPLOYEES WAS SMOOTHER AND MORE PRODUCTIVE.

Page 6: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

AFTER THE FIRST FEW MONTHS OF BEDDING IN, THE SYSTEM WORKED WELL... AND FOR A FEW YEARS THE SYSTEM DID EVERYTHING IT WAS MEANT TO DO.TIME PASSED, PEOPLE MOVED ON, THE COMPANY CHANGED ... THAT WONDERFUL SYSTEM BEGAN TO SHOW ITS AGE... THE NEW MANUFACTURING SYSTEM NOW HAD PROBLEMS EXCHANGING DATA. CUSTOMER INVOICES NO LONGER FLOWED EFFORTLESSLY FROM THEIR NEWER SYSTEMS INTO YOUR AGING IT SYSTEM.

Page 7: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

WORKERS GREW TIRED OF USING OLD CRT SCREENS - EVEN THEIR HOME COMPUTERS WERE MORE MODERN THAN THIS!

IT WAS TIME FOR A CHANGE. BUT CHANGE HAS TO MANAGED TO AVOID DISRUPTION, CHAOS AND INEFFICIENCY. THIS IS WHERE 'SYSTEM LIFE CYCLE' COMES IN.

Page 8: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

NEW IT SYSTEMS ARE BEING DEVELOPED ALL THE TIME IN ALMOST EVERY TYPE OF ORGANISATION FROM A SMALL SHOPKEEPER WHO WANTS A CUSTOM BUILT STOCK CONTROL SYSTEM TO THE NHS WHO WANT A NATIONAL DATABASE ON WHICH THEY CAN KEEP THE MEDICAL RECORDS OF EVERY PERSON IN THE UK.

Page 9: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

Here are a few other examples of IT systems:• Banks - customer record systems, systems for ATM machines,

systems for approving or rejecting mortgage applications• Hospitals - pharmacy systems for keeping track of drugs and

creating printed prescriptions, appointment systems for outpatients• Government - online tax payment system, online census

information• Supermarkets - stock control systems, payroll systems

Page 10: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

THE SLC CONSISTS OF THE FOLLOWING STAGES:DEFINITIONINVESTIGATION AND ANALYSISDESIGNIMPLEMENTATIONTESTINGINSTALLATIONDOCUMENTATIONEVALUATIONMAINTENANCE

Page 11: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

REQUIREMENT GATHERING AND ANALYSIS: ALL POSSIBLE REQUIREMENTS OF THE SYSTEM TO BE DEVELOPED ARE CAPTURED IN THIS PHASE AND DOCUMENTED IN A REQUIREMENT SPECIFICATION DOC.

Page 12: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

SYSTEM DESIGN: THE REQUIREMENT SPECIFICATIONS FROM FIRST PHASE ARE STUDIED IN THIS PHASE AND SYSTEM DESIGN IS PREPARED. SYSTEM DESIGN HELPS IN SPECIFYING HARDWARE AND SYSTEM REQUIREMENTS AND ALSO HELPS IN DEFINING OVERALL SYSTEM ARCHITECTURE.

Page 13: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

IMPLEMENTATION: WITH INPUTS FROM SYSTEM DESIGN, THE SYSTEM IS FIRST DEVELOPED IN SMALL PROGRAMS CALLED UNITS, WHICH ARE INTEGRATED IN THE NEXT PHASE. EACH UNIT IS DEVELOPED AND TESTED FOR ITS FUNCTIONALITY WHICH IS REFERRED TO AS UNIT TESTING.

Page 14: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

INTEGRATION AND TESTING: ALL THE UNITS DEVELOPED IN THE IMPLEMENTATION PHASE ARE INTEGRATED INTO A SYSTEM AFTER TESTING OF EACH UNIT. POST INTEGRATION THE ENTIRE SYSTEM IS TESTED FOR ANY FAULTS AND FAILURES.

Page 15: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

DEPLOYMENT OF SYSTEM: ONCE THE FUNCTIONAL AND NON FUNCTIONAL TESTING IS DONE, THE PRODUCT IS DEPLOYED IN THE CUSTOMER ENVIRONMENT OR RELEASED INTO THE MARKET.

Page 16: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

MAINTENANCE: THERE ARE SOME ISSUES WHICH COME UP IN THE CLIENT ENVIRONMENT. TO FIX THOSE ISSUES PATCHES ARE RELEASED. ALSO TO ENHANCE THE PRODUCT SOME BETTER VERSIONS ARE RELEASED. MAINTENANCE IS DONE TO DELIVER THESE CHANGES IN THE CUSTOMER ENVIRONMENT.

Page 17: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

ADVANTAGES AND DISADVANTAGES

• Easy to manage• Clear responsibility for every individual in every stage• Expected output at the end of every stage• Clear indication if the project running or not according to

schedule• Suitable for large scale project

Page 18: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

• Risk within the project as it carries to the testing stage• Any errors can be a problem later on the project as very

difficulty to go back and fix due to money and time• Is only suited for less complex project

ADVANTAGES AND DISADVANTAGES

Page 19: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

RAD: RAPID APPLICATION DEVELOPMENT• Involve the use of prototypes (version of a system lacks full

functionality• The end user evaluate the prototype and base their

feedback• The cycle of prototyping and evaluation continues until the

program has all the functionality the user wants

Page 20: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

ADVANTAGES AND DISADVANTAGES OF RAD• Is well suited to projects where the requirements aren’t

entirely clear from the outset.• With the continuous feedback from the client, the end

product is likely to have excellent usability• Focus on the usability of the final product rather than

how it works

Page 21: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

• Continue contact with the client throughout the process to get regular feedback• Impractical or unsuitable for client who are not always available• It does not scale well and so is less suited to large projects with

big teams

ADVANTAGES AND DISADVANTAGES OF RAD

Page 22: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

SPIRAL MODEL

•Software development can involve high amounts of risk. Projects can run out of time, requirements can change and competitions can come out with better alternatives.

Page 23: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

SPIRAL MODEL• Design to make into account the expected risks• Focused on managing risks and dealt with before they

become an issues

Page 24: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

ITERATION IS THE ACT OF REPEATING A PROCESS WITH THE AIM OF APPROACHING A DESIRED GOAL, TARGET OR RESULT. EACH REPETITION OF THE PROCESS IS ALSO CALLED AN "ITERATION", AND THE RESULTS OF ONE ITERATION ARE USED AS THE STARTING POINT FOR THE NEXT ITERATION.

Page 25: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

FOUR STAGES OF A QUADRANT

• The objective of the rotation of the spiral: to determine the main requirement of the project according to the biggest potential risk• Possible risks identifies and alternative options considered such as

building prototype• Part of the project to work on and tested• Determine what happen at this stage and will be a ‘product’ at the

end of each cycle.

Page 26: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

AGILE METHODOLOGY

Is a group of methods not a single methodology, designed to cop with changing requirements through producing the software in an iterative manner. Is an alternative to traditional project management in software development. It helps teams respond to unpredictability through incremental, iterative work cadences, known as sprints. Agile methodologies are an alternative to waterfall, or traditional sequential development.

Page 27: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS
Page 28: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

XP: IS A SOFTWARE DEVELOPMENT METHODOLOGY WHICH IS INTENDED TO IMPROVE SOFTWARE QUALITY AND RESPONSIVENESS TO CHANGING CUSTOMER REQUIREMENTS. AS A TYPE OF AGILE SOFTWARE DEVELOPMENT, IT ADVOCATES FREQUENT "RELEASES" IN SHORT DEVELOPMENT CYCLES, WHICH IS INTENDED TO IMPROVE PRODUCTIVITY AND INTRODUCE CHECKPOINTS AT WHICH NEW CUSTOMER REQUIREMENTS CAN BE ADOPTED.

Page 29: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS
Page 30: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

EXTREME PROGRAMMING XP

• Model puts the emphasis on the coding itself• Representative of the customer becomes part of the team, the decide help

user stories• Customer also decide what tests will be used to ensure the correct

implementation and questions and any problems might the programme have• Like RAD, XP I iterative in nature (The program is codded, tested and

improved repeatedly). XP iteration shorter than XP.• RAD use prototype each iteration while XP produces versions of the system

with some good quality code to use in the final product

Page 31: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

AT THE START OF EACH ITERATION• The team go through the planning game how to divide the work• ‘Pair programming’, Driver (Codder) and navigator (Analyse) and they switch roles

regularly• ‘Advocate programming’, will results in much more of the work being produced and

more mistakes can be spotted• ‘Refactor’, the code to make it more efficient without changing the whole code• Tired programming can make mistakes to avoid this a set of ‘written instructions plan’

and code would help them • Every code tested in XP continually to make sure any errors are dealt with immediately

this called ‘unit testing’

Page 32: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

ADVANTAGES AND DISADVANTAGES OF XP

• Quality of the final code is very high• Team of programmers and they need to collaborate

together and work in the same building• The client needs to be able to commit to having a

representative working with the team

Page 33: WATERFALL LIFE CYCLE SOFTWARE ENGINEERING. THE WATERFALL MODEL IS A SEQUENTIAL DESIGN PROCESS, USED IN SOFTWARE DEVELOPMENT PROCESSES, IN WHICH PROGRESS

THE DIFFERENCE BETWEEN WATERFALL AND AGILE

• Building a website for a shop• Building an operating system• Building a video game

WHAT METHODOLOGY?