Chapter 2. Iteration The most import aspect of OOA/D An agile practice vs waterfall – early and repeated programming, feedback, adaptation waterfall is.

Slides:



Advertisements
Similar presentations
September 2008Mike Woodard Rational Unified Process Key Concepts Mike Woodard.
Advertisements

Basic SDLC Models.
Iterative, Evolutionary, and Agile You should use iterative developmen only on projects that you want to succeed. - Martin Fowler.
CS487 Software Engineering Omar Aldawud
Chapter 2 Iterative , Evolutionary, and Agile. 2.1 What is the UP? Are Other Methods Complementary? 2.2 What is Iterative and Evolutionary Development?
Object-Oriented Analysis and Design
Software Life Cycles ECE 417/617: Elements of Software Engineering
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
Object-oriented Analysis and Design
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Dr. Kivanc DincerCS319 Week 1 - Sept.12,20051 Chapter 4 INCEPTION IS NOT THE REQUIREMENTS PHASE Objectives Define the inception step. Motivate the following.
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
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
CHAPTER 17 Building Software to Support an Agile Organization
UML - Development Process 1 Software Development Process Using UML (2)
Object-Oriented Analysis and Design Iterative Development and the Unified Process.
IS0514 Lecture - Week 2 Best Practice Development Methodology.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Unified Software Development Process (UP) Also known as software engineering process SEP describes how requirements are turned into software Defines who,
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Transforming Organizations
Business Driven Technology Unit 5 Transforming Organizations McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
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.
Jan 7, A UP project organizes the work and iterations across four major phases: – Inception -- approximate vision, business case, scope, vague estimates.
 Development is organized in a series of short, fixed-length mini-projects called iterations  Iterations are also incremental  Successive enlargement.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
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,
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
Inception Chapter 4 Applying UML and Patterns -Craig Larman.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Chapter 4. Inception is NOT Requirements: Inception is a short, initial stage. Its purpose is a common vision and scope measurement. needed to do: –analyze.
The principles of an object oriented software development process Week 04 1.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Rational Unified Process (RUP)
1/2/12 Chapt 2 Iterative Evolutionary Agile. 1/2/12 (Rational) Unified Process A software development process – Flexible and open Other processes – XP.
Chapter 8: Iteration 1 - Basics.  We review here the requirements for first iteration of our case studies. They are a subset of the requirements as described.
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.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Chapter 8. Iteration 1, Elaboration: book view differs from reality for pedagogical reasons not doing “risk-driven” up front uses many OOA/D skills should.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Iterative development and The Unified process
TK2023 Object-Oriented Software Engineering
Object-oriented Analysis and Design
Software Development.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Software Engineering Process
Iterative and Agile Development
Unified Process Source & Courtesy: Jing Zou.
Unified Process (UP).
Approaches to Systems Development
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Chapt 2 Iterative Evolutionary Agile.
System Development Methods
Other System Requirements
CSCI 360: Software Architecture & Design
Presentation transcript:

Chapter 2

Iteration The most import aspect of OOA/D An agile practice vs waterfall – early and repeated programming, feedback, adaptation waterfall is the opposite – big up front requirements investment

Unified Process (UP) one iterative approach RUP is UP using Rational incorporates from other iterative methods like XP features iterative lifecycle and risk-driven development is a model/example for how to do OOA/D incorporates book’s central ideas – how to think about objects, applying UML, using design patterns, agile modeling, evolutionary approach, use cases, etc. “This book is an introduction to an agile approach to UP” short time boxes; attack core

What is it? development organized is a series of short, fixed-length mini-projects called iterations. each mini-project results in tested, integrated, executable partial programs each mini-project has its own requirements analysis and design, implementation and testing phases complete project implemented by successive enlargement and refinement feedback and adaptation at the end of a mini-project is crucial. both iterative and incremental as well as iterative an evolutionary

Fig. 2.1

Example (three week iteration): Monday AM, kick-off meeting, clarify tasks and goals meanwhile reverse engineer last iteration’s code into UML diagrams Monday PM, whiteboard work in pairs, UML diagrams captured with digital camera, some pseudocode, notes next three weeks – coding, testing, design, integration, daily builds NOTES: –requirements/design part of each iteration –after three weeks, something should execute –output is NOT experimental or throw-away, this is not prototyping

Handling Change Embrace it Don’t try to avoid change by being “complete” up front adaptation drives success should not be uncontrolled (feature creep), must be disciplined keep to small subset of requirements, quick coding, early feedback, be ready for change I have always found that plans are useless, but planning is indispensable. - Dwight Eisenhower US Patent: Gives protection but only if you disclose all.

Value of Feedback Can’t be underestimated. Yes, some new features will be added but mostly it will clarify requirements Example, load testing could show fundamental approach is not scalable. Early on, you see more deviation caused by feedback, later on, less

Fig. 2.2

Benefits: less project failure, better productivity, fewer defects early mitigation of high risks early visible progress early feedback managed complexity (bite-sized chunks) learned in one iteration, used in next

How long should an Iteration be? usually two to six weeks regardless, fix the time (timeboxed)

What about Waterfall? decidedly sequential requirements before programming too much time invested in UML diagrams that change high failure rates, defect rates 45% of requirements never used schedule varies up to 400% need to avoid “waterfall” thinking in our project (let’s write all the use cases first) or (let’s design all our classes with UML before we code)

Why Waterfall Fails: false assumption: specifications are predictable and stable (remember Churchill) and can be correctly defined at the start typical is 25% change in requirements, more in big projects change is the only constant so feedback and adaptation are essential but considered necessary in waterfall

Fig. 2.3

How to do Iterative: analysis and design are essential starting points, just don’t try to be complete A recipe: –before 1 st iteration meet with business people and decide list of use-case names, non-functional features –pick 10% of use-cases with these qualities significant, high business value, high risk –do detailed analysis on these 10% –select a subset of the 10% for design and implementation (3-week timebox) –list the tasks of this iteration

How to do Iterative (2): Iteration 1: –days 1 & 2: modeling and design work in pairs, whiteboarding, UMP, use a war room –after day 2: put on your programming hat – program, test, integrate –various levels of testing – unit, acceptance, load, usability, … –1 week to go: check if iteration goals met; if not, scale down expectations (create “to do” list). NOTE: You will almost certainly only have a fraction of coding done. –4 days to go: freeze code, check into CVS –3 days to go: demo –rest: get ready for next iteration (next slide)

How to do Iterative (3): After Iteration 1: –do second requirements workshop; review results of last iteration, identify another 10% of the requirements that you will work on (most significant, etc) and analyze them in detail –at this point up to 25% of requirements are detailed –last day: planning day for next iteration Iteration 2: –do it as before Repeat for a couple more iterations –we now have 80% of detailed requirements but only 10% of code

How to do Iterative (4): After 4 Iterations: –20% of iterations done –in UP this is called the end of the elaboration phase. –time to estimate what is needed to complete detailed requirements (should be good estimates) –no more requirements; 3-week iterations until you are done.

Fig. 2.4

What is Risk-Driven and Client-Driven Planning? Risk-Driven: early iterations driven by high risk requirements Client-Driven: early iterations driven by what client cares most about NOTE: Our book chooses iteration activities based on pedagogical issues; not high risk.

What are Agile Methods and Attitudes? Agile development uses timeboxed, iterative and evolutionary approaches. Use adaptive approaches, incremental delivery, encourage speed and flexibility Some practices: –common project workroom, –self-organizing teams read Agile Manifesto and Agile Principles on page 29

What is Agile Modeling? Secret of Modeling: to understand not document (why I say using Visio for 1 st pictures is ok) purpose of UML is to give you well-defined language in which to develop your understanding together these make up “agile modeling”

Consequences: not about avoiding modeling modeling to support understanding don’t use UML everywhere; too time consuming follow the “simplest tool” approach work in pairs; switch roles create models in parallel (use case || sequence diagram) use “good enough” notation; reduce UML realize your understanding will be imperfect; fill in the details later developers should do their own design; letting others design for you is “waterfall”

Fig. 2.5 intersystem collaboration understanding

What is Agile UP? UP is big; pick a small subset of activities you like best UP is iterative and evolutionary so agile by nature follow agile modeling practices not a detailed plan for entire project; Iteration Planning is done one iteration at a time

Other UP Practices: essential idea: short timeboxed iterative, evolutionary and adaptive programming Also: –tackle high-risk, high-value issues first –engage users at feedback time –build the core early –continuous verify; test early and often –use use-cases –use visual modeling –manage requirements (no feature creep) –create a change request mechanism

What are the UP Phases? Inception: –approximate vision, business case, scope, estimates Elaboration: –refined vision, core implemented iteratively, attack high risks, most requirements identified Construction: –fill in the details through iteration Transition: –beta tests and deployment

Fig. 2.6

What are the UP Disciplines? In UP, a type of activity is a discipline; an artifact is a work product Business Modeling: –The Domain Model artifact Requirements: –Use-Case Model, Supplementary Specifications Design: –Design Model Disciplines and Artifacts

Fig. 2.7 setting up workspace

Disciplines and Phases: work goes on in all disciplines during all phases of project to a greater or lesser extent. the book focuses on inception and elaboration since its main topic is analysis and design

Fig. 2.8

Fig. 2.9

How to Customize the Process? Almost everything is optional. (not the code)

Business Modeling Agile modeling Req. workshop Domain Model s Requirem ents Req. workshop Vision box Dot voting Use-Case Model Vision Supp Spec ssssss rrrrrr DesignAgile modeling Test-driven dev. Design Model SW Arch doc Data Model ssssss rrrr Impleme ntation Test-driven dev. Pair prog’ing Cont. integration Coding standards … Project Manage ment Agile PM Daily scrum meeting Discipline Activity Artifact Inc: Elab: Con: Tran: s- start, r - refine