COMP 350: Object Oriented Analysis and Design Lecture 2

Slides:



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

Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Iterative, Evolutionary, and Agile You should use iterative developmen only on projects that you want to succeed. - Martin Fowler.
Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
Chapter 2. Iteration The most import aspect of OOA/D An agile practice vs waterfall – early and repeated programming, feedback, adaptation waterfall is.
Chapter 2 Iterative , Evolutionary, and Agile. 2.1 What is the UP? Are Other Methods Complementary? 2.2 What is Iterative and Evolutionary Development?
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Object-Oriented Analysis and Design
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
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
Iterative development and The Unified process
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
Software Development Process
Chapter 2: Approaches to System Development
UML - Development Process 1 Software Development Process Using UML (2)
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.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Current Trends in Systems Develpment
CS212: Object Oriented Analysis and Design Lecture 1: Introduction.
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 7 Applying UML and Patterns Craig Larman
Jan 7, A UP project organizes the work and iterations across four major phases: – Inception -- approximate vision, business case, scope, vague estimates.
IS Methodologies. Systems Development Life Cycle - SDLC Planning Planning define the system to be developed define the system to be developed Set the.
Object-Oriented Analysis and Design Fall 2009.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
Inception Chapter 4 Applying UML and Patterns -Craig Larman.
Object-Oriented Analysis and Design ธนวัฒน์ แซ่ เอียบ.
Chapter 8 Workflows of the Process Taken from Walker Royce’s textbook – Software Project Management plus a number of Personal Comments.
The Rational Unified Process 1 EECS810: Software Engineering.
Copyright ©2004 Cezary Z Janikow 1 OOAD Overview n OO language – Necessary for OO systems? – Sufficient for OO systems? Owning a hummer doesn’t make you.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
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.
1/2/12 Chapt 2 Iterative Evolutionary Agile. 1/2/12 (Rational) Unified Process A software development process – Flexible and open Other processes – XP.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
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.
Software Design & Documentation Anita Kuchera John Sturman UP Introduced.
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.
Object Oriented Analysis & Design By Rashid Mahmood.
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.
Chapter 5 Agile Development Moonzoo Kim KAIST
Iterative development and The Unified process
TK2023 Object-Oriented Software Engineering
Object-oriented Analysis and Design
Software Development.
Process 4 Hours.
Software Engineering Process
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Iterative and Agile Development
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Unified Process Source & Courtesy: Jing Zou.
Unified Process (UP).
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
How to Successfully Implement an Agile Project
Chapt 2 Iterative Evolutionary Agile.
System Development Methods
Other System Requirements
CSCI 360: Software Architecture & Design
Presentation transcript:

COMP 350: Object Oriented Analysis and Design Lecture 2 COMP 350: Object Oriented Analysis and Design Lecture 2 Iterative, Evolutionary and Agile References: Craig Larman Chapters 1-2

OOAD

Key Steps in OOAD [1] Use Case: a textual description or story” describing the system Example: Play A Dice Game: “A player picks up and rolls the dice. If the dice face values total seven, they win; otherwise, they lose.”

Key Steps in OOAD [2] Domain Model: diagram(s) showing domain concepts, attributes, and associations

Key Steps in OOAD [3] Interaction Diagram: shows the flow of messages between software objects(method invocation)

Key Steps in OOAD [4] Design Model: shows attributes, methods and associations for software (solution) objects (not domain objects!)

Iterative, Evolutionary & Agile Higher success and productivity rates, lower defect rates Contrast with sequential waterfall lifecycle Quick development steps and feedback Feedback is used to clarify and improve evolving specifications Development starts before all requirements are defined in detail Involves early programming and testing of a partial system, in repeating cycles

Iterative Development Iterative and incremental development: System grows incrementally over time, iteration by iteration. Iterative and evolutionary development: System evolves based on feedback and adaptation Iterations: time boxed, fixed length (e.g. 2-6 weeks)

Iterative Development The result of each iteration is an executable but incomplete system; it is not ready to deliver into production. Maybe after 10 to 15 iterations it can go into production The result of each iteration is not an experimental or throw away prototype. Rather it is a subset of the final system. Iterative development is not prototyping.

Iterative Development Development is organized into a series of short fixed length (e.g., 3 weeks) mini projects called iterations The outcome of each is a tested, integrated, and executable system. Each iteration involves choosing a small subset of the requirements, and quickly designing, implementing, and testing.

Iterative and Incremental Development (RUP)

Embracing Change: Feedback and Adaptation

Benefits of Iterative Development early rather than late mitigation of high risks (technical, requirements, objectives, usability, and so forth) early visible progress early feedback, user engagement, and adaptation, leading to a refined system that more closely meets the real needs of the stakeholders managed complexity; the team is not overwhelmed by "analysis paralysis" or very long and complex steps the learning within an iteration can be methodically used to improve the development process itself, iteration by iteration

Best Practices and Concepts The central idea- short time boxed iterative, adaptive development. (implicit, but core) use of object technologies, including OOA/D and OOP. tackle high-risk and high-value issues in early iterations continuously engage users for evaluation, feedback, and requirements build a cohesive, core architecture in early iterations continuously verify quality; test early, often, and realistically apply use cases model software visually (with the UML) carefully manage requirements practice change request and configuration management

(R) UP Phases Inception –Approximate vision, business case, scope, vague estimates Elaboration –refined vision, iterative implementation of the core architecture, resolution of high risks, identification of most requirements and scope, more realistic estimates Construction –iterative implementation of the remaining lower risk and easier elements, and preparation for deployment Transition –beta tests, deployment This is not the old waterfall model Inception is not requirements analysis Elaboration is not requirements and design phase

(R) UP Phases

(R) UP Disciplines

(R) UP Disciplines

(R)UP Disciplines A discipline is a set of activities and their related artifacts. Artifact is the general term for any work product e.g. code, diagrams, models, database schema, text docs etc

Relationship between UP Phases and Disciplines In each iteration work goes on in most or all disciplines. However, relative efforts across these disciplines change over time During elaboration: more emphasis on requirements and design but little on implementation During construction: other way round

Agile Methods Started in 2001 A group interested in iterative and agile methods met and formed the Agile Alliance with a manifesto and a statement of principles www.agilealliance.com

Agile Methods Encourage Agility – rapid and flexible response to change Values and Practices advocated by Agile Methods: Time boxed iterative and evolutionary development Adaptive planning Simplicity, communication, lightness Pair programming Test driven development Common project workroom Daily meetings

Agile Manifesto Individuals, Interactions, Working Software over Processes and Tools Working Software over Comprehensive Documentation Customer Collaboration over Contract Negotiation Responding to Change over Following a Plan

Agile Principles Review from Chapter 2 in Larman’s book

What is Agile Modeling Purpose of modeling (sketching UML diagrams) is primarily to understand, not to document In practice, digital pictures of whiteboard drawings can be used (focus on model rather than tool) Create models in parallel, e.g., class diagrams and interaction diagrams Model in pairs Stick to simple, frequently used UML elements rather than UML details that are not used widely All models will be inaccurate – only the final tested code is the best design. All prior models and diagrams are incomplete hints , best treated lightly as throwaway explorations