Lesson Objectives Aims 1.Be able to understand the waterfall life cycle, agile methodologies, extreme programming, the spiral model and rapid application.

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Features, Advantages & Disadvantages of a Methodology.
Software Development Life-Cycle Models
Software Development Life Cycle
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.
SDLC Software Development Life Cycle. SDLC Acronym for system development life cycle. Acronym for system development life cycle. Is the process of developing.
Lecture 2 Title: PLC, SDLC, PMBOK
BUSINESS DRIVEN TECHNOLOGY
Systems Analysis and Design II
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Chapter 6 Prototyping, RAD, and Extreme Programming
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions.
CHAPTER 19 Building Software.
Business Driven Technology Unit 5 Transforming Organizations McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.
IT Systems Analysis & Design
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 4 Slide 1 Chapter 1 The Systems Development Environment.
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 # 6
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Design and Development Development Methodoligies Computing Science.
Unit F451 Computer Fundamentals Components of a Computer System Software Data: Its representation, structure and management in information.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
C_ITIP211 LECTURER: E.DONDO. Unit 1 : The Systems Development Environment.
Project Management Software development models & methodologies
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Embedded Systems Software Engineering
Software Development - Methodologies
Software Development.
Software Development Overview
Unit 6 Application Design KLB Assignment.
Methodologies and Algorithms
Fundamentals of Information Systems, Sixth Edition
Chapter 1 The Systems Development Environment
Rapid Application Development
Integrating Quality Activities in the Project Life Cycle
Software Development methodologies
Transforming Organizations
Methodologies By Akinola Soyinka.
Software Processes (a)
Information Technology Project Management – Fifth Edition
Software Development Life Cycle
Methodologies in Computing
Software development life cycle models
Chapter 2 SW Process Models
Software Life Cycle Models
Chapter 1 The Systems Development Environment
IT Systems Analysis & Design
How to Successfully Implement an Agile Project
Computer Science Life Cycle Models.
Chapter 2 Software Processes
Computer Science Life Cycle Models.
Software life cycle models
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Software Processes Process should be
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Software Engineering Lecture 17.
Project Lifecycle and IT Product Life Cycle
Extreme Programming.
Chapter 8 Prototyping and Rapid Application Development
SDLC (Software Development Life Cycle)
System Development Methods
Software Development Overview
Presentation transcript:

Lesson Objectives Aims 1.Be able to understand the waterfall life cycle, agile methodologies, extreme programming, the spiral model and rapid application development Key Words

Software development Sometimes, there is a need to develop software! This is not a decision to be taken lightly It does NOT just involve a room of bearded people bashing out code. And this causes issues…

Software Development

References s/ /NHS-IT-system-for-GP- data-upload-slammed-for-delays-and- overspendhttp:// s/ /NHS-IT-system-for-GP- data-upload-slammed-for-delays-and- overspend http:// /sep/18/nhs-records-system-10bnhttp:// 013/sep/18/nhs-records-system-10bn

Reasons So why do we embark on large problems/ICT developments? –Replace manual systems (increasingly not any more) –Automate jobs (not popular) –Upgrade “legacy” systems –Expand business –Expand existing systems There should always be a solid “business” or cost saving case for development

There’s a lot of old stuff out there…

year-old-windows-3-1-system-failure- crashed-paris-airport/ year-old-windows-3-1-system-failure- crashed-paris-airport/ 882b-11e3-8afa feab7de.html#axzz3uEWk9oiBhttp:// 882b-11e3-8afa feab7de.html#axzz3uEWk9oiB

Systems Life Cycle Any system, be it a game, a business system, integrated hardware and software development… …Will follow a life cycle. Doesn’t mean it’s followed.

Life Cycle Stages

Life cycles The stages in our diagram may be: –Visited once only –Not visited at all –Visited cyclically/iteratively –Be visited as necessary Depending on what we do, or our needs, will depend on the development method chosen

Exams Generally you will need to know: –What lifecycles there are –What their advantages and disadvantages are –Where they should be used This means you can compare them, discuss them and suggest which to use for a given scenario

Waterfall

Linear Each stage is a milestone – regular deadlines – “things get done” No parallelism – one stage cannot begin before the completion of its predecessor Deliverables/documentation produced at each stage Each stage may be completed by totally different sets of people

Advantages Detailed documentation/Deliverables are produced at each stage –Can be shown to client –Can be compared to objectives/success criteria –Can ensure “completeness” –Could end the project (saves further waste) Should result in detailed designs (and therefore clear objectives) Easy to understand – everyone knows what should happen, when and by whom

Disadvantages Detail of documentation –Could be errors/omissions leading to failure later on Total lack of flexibility Cannot return to previous stage (can start again though!) Long time to completion – requirements may have changed! Not suitable for projects that may have “fluid” requirements or that use new technology that may develop or change during development

Spiral

Fewer stages than other life cycles Multiple iterations Iterative improvements Potentially limitless iterations Heavy client integration/involvement Fluid requirements Highly adaptive to change Evaluation informs design iterations

Advantages Suitable for small or large projects Good when requirements are likely to change Can learn from experience: –Budgets –Staffing –Timings –All become more accurate over time Prototyping –Easily introduce changes –No need to revisit whole lifecycle to implement new features

Disadvantages Large projects –Difficult for all parties to follow –No defined deliverable milestones –Managing teams becomes logistically difficult Management difficulties –Planning can be hard – no hard time scales –Must be experienced to bring project in on time/budget Can become out of control time wise Requirements are incomplete at the start of the project – can lead to issues later on (you can’t prototype out all problems!)

RAD

Ascertain requirements Prototype repeatedly Deliver project Very similar to spiral – requirements are defined, however Stages are small, confined and rapidly iterated through

Business modelling: The business model describes the flow of information around the system using data flow diagrams and flowcharts. Data modelling: The results of the business modelling are analysed and used to produce datasets or objects that are needed for the system to function. Process modelling: Descriptions are added to the data objects explaining whether data is to be added, deleted or edited. Application generation: The actual system is created by combining the process and data models to create a prototype. Turnover: The prototype is tested at the end of each cycle. Later on, more testing will be required as modules are linked together in order to ensure that they function properly in conjunction with each other.

Advantages Constant feedback from clients Constant communication with clients Clients can rapidly see development Easy to integrate changes Quick to integrate feedback/changes

Disadvantages As all requirements are not established at the start… …one may appear that kills the project late on Not suitable for projects that are not modular in nature Not suitable for projects that are too large to rapidly prototype May require more developers than other lifecycles

Agile Programming Not a specific life cycle “collaboration and people, not processes and tools” Developers are trusted to create a solution to a problem No reliance on huge documentation and tight control of waterfall models Regular meetings with clients/developers – collaborative approach throughout

Recognition that it isn’t possible to know all requirements before developing Responds to change quickly No lengthy documentation produced Arguably better quality outcomes than waterfall (no constraints)

Agile Development There is an “Agile Development” manifesto. Find it! What are the principles? You need to know about “Extreme Programming” an “Scrum” Find out about these – advantages and disadvantages

Review/Success Criteria You should know: Why software is developed Reasons why software is needed Software development lifecycles Advantages and disadvantages