Iterative, Evolutionary, and Agile You should use iterative developmen only on projects that you want to succeed. - Martin Fowler.

Slides:



Advertisements
Similar presentations
CS487 Software Engineering Omar Aldawud
Advertisements

INFO415 Approaches to System Development: Part 1
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Object-Oriented Analysis and Design
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
Object-oriented Analysis and Design
Iterative development and The Unified process
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
COMP 350: Object Oriented Analysis and Design Lecture 2
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Problem with Software Requirements are complex The client does not know the functional requirements in advance Requirements may be changing Technology.
Software Development Life Cycle (SDLC)
Object-Oriented Analysis and Design Iterative Development and the Unified Process.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Current Trends in Systems Develpment
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Software Engineering Management Lecture 1 The Software Process.
Iterative development and The Unified process Chapter 2 Applying UML and Patterns -Craig Larman.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
THE UNIFIED PROCESS UP Programming. What is the unified process  The Unified Process is a programming methodology that emphasizes the right blend of.
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
1. Introduction Iterative Development & the Unified Process.
Inception Chapter 4 Applying UML and Patterns -Craig Larman.
CS3100 Software Project Management Agile Approaches.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
The Rational Unified Process 1 EECS810: Software Engineering.
1/2/12 Chapt 2 Iterative Evolutionary Agile. 1/2/12 (Rational) Unified Process A software development process – Flexible and open Other processes – XP.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Teaching slides Chapter 3
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Introduction Requirements and the Software Lifecycle (3)
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Software Development - Methodologies
Iterative development and The Unified process
TK2023 Object-Oriented Software Engineering
Object-oriented Analysis and Design
Software Development.
Methodologies and Algorithms
Software Engineering Management
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Software Engineering Process
School of Business Administration
Iterative and Agile Development
Software Engineering Process
Unified Process Source & Courtesy: Jing Zou.
Software Process Models
Unified Process (UP).
Approaches to Systems Development
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Teaching slides Chapter 1.
Lecture 2 Revision of Models of a Software Process
Software Development Process
Chapt 2 Iterative Evolutionary Agile.
Incremental Waterfall
Software Engineering Process
Software Engineering Process
Chapter 5: New and Emerging Process Methodologies
System Development Methods
Presentation transcript:

Iterative, Evolutionary, and Agile You should use iterative developmen only on projects that you want to succeed. - Martin Fowler

S.E. as a Layered Technology ● Goals – desired results, e.g., quality ● Process – set of activities performed toward a specific purpose ● Methods – technical details on how to perform parts of the process ● Tools – support for the programmer to carry out methods

Software Development Process ● an approach to building, deploying and possibly maintaining software ● Unified Process(UP) – popular iterative software development process for OO systems ● Rational Unified Process (RUP) – popular refinement of the Unified Process ● UP is open to methodologies: XP, refactoring, continuous integration, etc.

Iterative Development ● development is a series of short (e.g., two weeks) iterations (e.g., mini-projects) ● Phase1: Requirements->Design - >Implementation->Release ● Phase2: Requirements->Design - >Implementation->Release ● Phase3: Requirements->Design - >Implementation->Release

Comparision ● Final result is a production-grade subset of the final system ● Not a throw-away prototype ● Not an experimental proof of concept ● Sytem may not be usable until after multiple iterations

Embrace Change ● Change on a project is inevitable; your project is not a special case ● Solve a small part of the entire project successfully instead of solving the entire project (unsuccessfully) ● Promotes early feedback ● Drive to goal one step at a time ● Important part of open-source development

Benefits ● Less failure, better productivity, lower defect rates..... ● Early mitigation of risk ● Early visible progress ● Early feedback and user engagement ● Complexity is better managed ● Leads to improvements in process, not just product

Waterfall is Evil ● Attempts to complete all of one stage before moving to another ● Attempts to make a schedule of the unknown ● Assumes that specifications are predictable, stable, and can be planned (25-50% changes) ● Early advice on using Waterfall was based on speculation and hearsay ● Avoid “Waterfall Thinking”