Software Development Life Cycle

Slides:



Advertisements
Similar presentations
Software Development Life Cycle. Why Do We need Software Development Models Helps to make sure that we cover all bases during planning and implementation.
Advertisements

Systems Analysis, Prototyping and Iteration Systems Analysis.
Software Development Life Cycle
Lecture # 2 : Process Models
Systems Analysis and Design II
System Development Life Cycle Process of creating and altering systems or software by using methodologies or models to develop the systems in a logical.
Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Objectives By the end of today’s class you will be able to… –Describe the major steps in the interaction design process –Explain the importance of iterative.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Problem with Software Requirements are complex The client does not know the functional requirements in advance Requirements may be changing Technology.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
1 CMPT 275 Software Engineering Software life cycle.
Objectives:  To define RAD  Describe RAD as a system development method  List the advantages of RAD as a method  List the disadvantages of RAD  State.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
The Program Development Cycle
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
SOFTWARE ENGINEERING MCS-2 LECTURE # 4. PROTOTYPING PROCESS MODEL  A prototype is an early sample, model or release of a product built to test a concept.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Click to add text Systems Analysis, Prototyping and Iteration.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Project Management
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
System Development Life Cycle (SDLC) TOBY WILSON.
Software Design and Development Development Methodoligies Computing Science.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
Lesson Objectives Aims 1.Be able to understand the waterfall life cycle, agile methodologies, extreme programming, the spiral model and rapid application.
Chapter 7: Designing solutions to problems OCR Computing for A Level © Hodder Education 2009.
The Software Development Process. Contents  Product Components  Software project staff  Software development lifecycle models.
Information Systems Development
Software Development - Methodologies
Software Development Overview
Unit 6 Application Design KLB Assignment.
Methodologies and Algorithms
IL Marking Get out your CPU / Memory answers Swap with someone else
Chapter3:Software Processes
Software Engineering Management
CS 5150 Software Engineering
Methodologies By Akinola Soyinka.
SNS College of Engineering Coimbatore
Software Processes (a)
Software Process Models
Software Process Models
Software Processes.
Requirements and the Software Lifecycle
Introduction to Software Engineering
Information Systems Development
Teaching slides Chapter 1.
Computer Science Life Cycle Models.
Chapter 2 Software Processes
Computer Science Life Cycle Models.
Software life cycle models
An Overview of Software Processes
An Overview of Software Processes
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 8 Software Evolution.
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Software Engineering Lecture 17.
SDLC (Software Development Life Cycle)
Software Development Overview
Presentation transcript:

Software Development Life Cycle Key Revision Points

Context Software development is a complex and expensive process that needs to be managed It is also important that the solution a programmer develops meets the needs of the client To keep control over the software life cycle developers use models The model tells you: Where you are up to in the process What needs to happen next

3 Models There are 3 established life cycle models: Waterfall Cyclical Spiral

Waterfall Model The steps are described on next slide

Waterfall Model Analysis – The development team establishes exactly what is needed from the new software. This is set out in a requirements specification Design – The requirements may be broken down into chunks (subroutines) and algorithms are designed using flowcharts and pseudocode Implementation – Programmers take the design brief and write code to match the design Testing – Programmers test the code to remove all errors Deployment – The software is installed on computer systems and used by clients Maintenance – Finally, the software must be maintained. This may include upgrades to improve the software or patches to fix any bugs that come to light after deployment. LEARN THESE STEPS AS THEY APPLY TO ALL 3 MODELS!!!

Waterfall +/- Benefits A straightforward model that is easy to understand Developers know exactly where they are in the process Drawbacks Too rigid – if a problem is discovered at the testing stage the implementation stage must begin again In real life the stages could overlap – testing one part of the program can begin before another part is designed/implemented – think CA2 vs CA1. Modern programs most likely to be a set of modules each at a different stage of the model – especially true of modern software which is modular in design.

Cyclical Model Similar stages to the waterfall model but emphasises the need for continuous evaluation and evolution after the system has been deployed

Cyclical +/- Benefits Like the waterfall model it is easy to understand Improvement on the waterfall model as it emphasises the constant need to improve software Drawbacks Same as the waterfall model

Spiral Similar to previous models but developers start with a prototype (see slide xx) With feedback from the end-user the solution is developed at each iteration of the spiral until the software is finally ready for release

Spiral +/- Benefits More flexible than the previous two models More opportunity for design and coding at each iteration Drawbacks This model is slow and expensive to follow Complicated to understand where you are in the process

Prototyping/RAD RAD (Rapid Application Development) is a model that emphasises developing an early working version of the software It might include the full user interface but only some of the functionality (Think menu system in CA1/CA2) Designed to show how the program will work While the software is still “in-house” the client provides feedback on the early prototypes and the programmer makes necessary changes

Prototyping/RAD Once tested in-house the client will start using the software as normal The programming team remain available (for a pre-defined timescale) for corrective maintenance (bug fixing) or improvements This last step is called the cutover phase

Prototyping +/- Benefits Gets software in place as quickly as possible Will detect bugs/errors earlier than other models Programmer benefits from real life feedback early in the development process. Final code will more closely match the needs of the user Drawbacks Can be time consuming if lots of changes needed to the prototype Final code may be difficult to maintain or may be lower quality than a properly analysed solution