Copyright 2000 ICONIX Software Engineering, Inc. www.iconixsw.com 1 Use Case Driven Object Modeling -- A 99% Fat-Free Approach Doug Rosenberg ICONIX Software.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Advertisements

Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Introduction To System Analysis and Design
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
UML exam advice. Minimal, yet sufficient UML course 80% of modeling can be done with 20% of the UML. Which 20% was that again? We’re supposed to be “Use.
Object Oriented Analysis and Design Using the UML
UML and Object Oriented Concepts
Business Modeling Domain Modeling Source: Use Case Driven Object Modeling with UML – A Practical Approach By Doug Rosenberg ISBN:
Unified Modeling Language(UML) BY
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Copyright 2001 ICONIX Software Engineering, Inc. 1 UML for e-Commerce Doug Rosenberg ICONIX Software Engineering, Inc.
The Design Discipline.
Systems Analysis and Design in a Changing World, Fifth Edition
Systems Analysis and Design in a Changing World, Fifth Edition
Take a Look at a “Rube Goldberg”
Rube Goldberg Machines. As you raise spoon of soup (A) to your mouth it pulls string (B), thereby jerking ladle (C) which throws cracker (D) past parrot.
CSCI-383 Object-Oriented Programming & Design Lecture 9.
University of Utah SoCCS Lecture 61 Architecture – An Introduction CS Lecture 6 Nathan Dykman.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
CIT 343 Concord Wednesday, August 11, Introduction To get student files go to
12 Systems Analysis and Design in a Changing World, Fifth Edition.
Combining Systems.  Subsystem: a secondary or subordinate system that is part of a larger system Ex. The brake system in a car.
High-Level Design With Sequence Diagrams COMP314 (based on original slides by Mark Hall)
How to Keep Show Windows Clean. Passing man (A) slips on banana peel (B) causing him to fall on rake (C). As handle of rake rises it throws horseshoe.
Machines Engage What can you do to lift your teacher? Based upon what you already know … A machine is …
 Recall: A line of best fit is drawn through a set of data points to best represent a linear relationship between 2 variables  Line of best fit is aka.
1 Object orientation. 2 What benefits does OO give? Primarily –Encapsulation (Associates data & operations) –Types & specialisation –Software re-use.
Introduction To System Analysis and Design
Object-Oriented Analysis and Design An Introduction.
CS305j Introduction to Computing Structured Programming Case Study 1 Topic 3 Structured Programming Case Study “ Ugly programs are like ugly suspension.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
Systems Analysis and Design in a Changing World, 3rd Edition
UML What Is the UML? The Unified Modeling Language (UML) is the successor to the wave of object- oriented analysis and design (OOA&D) methods.
Object-Oriented Analysis and Design Fall 2009.
GRASP: Designing Objects with Responsibilities
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Object Oriented Design Jerry KotubaSYST Object Oriented Methodologies1.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
CS 8532: Advanced Software Engineering Dr. Hisham Haddad Overview of Object-Oriented Design Highlights of OOD Concepts, Components, and Process.
Finding shared laws: Ladders Philosophy 152 Philosophy of Social Science Week 10 Winter 2011.
Goal 1 : to use different forms of energy
ITEC324 Principle of CS III Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
ITEC0724 Modern Related Technology on Mobile Devices Lecture Notes #2 1.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Introduction to the Unified Modeling Language.
UML. Model An abstract representation of a system. Types of model 1.Use case model 2.Domain model 3.Analysis object model 4.Implementation model 5.Test.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Modeling with UML – Class Diagrams
ICONIX ICONIX Software Engineering, Inc.
Week 10: Object Modeling (1)Use Case Model
Introduction to UML.
Presentation transcript:

Copyright 2000 ICONIX Software Engineering, Inc. 1 Use Case Driven Object Modeling -- A 99% Fat-Free Approach Doug Rosenberg ICONIX Software Engineering, Inc.

Copyright 2000 ICONIX Software Engineering, Inc. 2 History b In The Beginning, There Was OMT, Objectory, and The Booch Method b Let There Be A Unified Notation b All that notation and no process? b Let There Be RUP b Help, all this process is paralyzing us! b New Idea -- Code and You’re Done! b There’s another way…Do OOAD but Keep It Simple

Copyright 2000 ICONIX Software Engineering, Inc. 3 In The Beginning, There Was OMT, Objectory, and The Booch Method b Three very different kinds of OO methods. b Each method had strengths. b Each method had weaknesses. b Much of the original modeling knowledge from the OMT, Objectory, and Booch methods is not repeated in the current UML literature, which mostly focuses on notation.

Copyright 2000 ICONIX Software Engineering, Inc. 4 Each method had strengths b Rumbaugh  Domain object (problem space) models b Jacobson  User-driven solution space models b Booch  Detailed design-level models

Copyright 2000 ICONIX Software Engineering, Inc. 5 Each method had weaknesses b Rumbaugh: strong for problem space; simplistic for solution space b Jacobson: deemphasized domain modeling; didn’t offer enough for detailed OOD b Booch: targeted squarely at OOD; not strong with regard to analysis

Copyright 2000 ICONIX Software Engineering, Inc. 6 Let There Be A Unified Notation Jacobson Booch Jacobson Rumbaugh

Copyright 2000 ICONIX Software Engineering, Inc. 7 All that notation and no process? b I can draw all these diagrams, but how do they all relate to each other? b 80% of modeling can be done with 20% of the UML. Which 20% was that again? b We’re supposed to be “Use Case Driven” but... b “How do we get from Use Cases to Code???” b We’re “thrashing” with use cases

Copyright 2000 ICONIX Software Engineering, Inc. 8 Let There Be RUP b “Marketing-Driven” process b Hey, we have this big suite of tools….. b But nobody understands how the tools work together b We can repackage this Objectory Process… b And use THAT to explain how the tool suite fits together!

Copyright 2000 ICONIX Software Engineering, Inc. 9 Theory vs. practice b In theory, there is no difference between theory and practice, but in practice there is. b In practice, there’s never enough time for modeling. b The ICONIX Process is a STREAMLINED approach to software development that helps you get from use cases to code quickly and efficiently, using a concentrated subset of the UML and related tools and techniques.

Copyright 2000 ICONIX Software Engineering, Inc Keep it simple! b Open window (A) and fly kite (B). String (C) lifts small door (D) allowing moths (E) to escape and eat red flannel shirt (F). b As weight of shirt becomes less, shoe (G) steps on switch (H) which heats electric iron (I) and burns hole in pants (J). b Smoke (K) enters hole in tree (L), smoking out opossum (M) which jumps into basket (N), pulling rope (O) and lifting b cage (P), allowing woodpecker (Q) to chew wood from pencil (R), exposing lead. Emergency knife (S) is always handy b in case opossum or the woodpecker gets sick and can't work.

Copyright 2000 ICONIX Software Engineering, Inc Help, all this process is paralyzing us! b RUP is BIG b When you need an iteration plan planner to plan the plan, you’re dealing with a BIG process b “High in Saturated Fat” -- like Eggs Benedict, with Chocolate Mousse for dessert b Analysis Paralysis -- the great crippler of young software projects b Aren’t “artifacts” what the archaeologists dig up after everybody’s dead? b Many projects don’t need all of RUP -- TAILOR IT to fit b We’re STILL “thrashing” with use cases!

Copyright 2000 ICONIX Software Engineering, Inc New Idea -- Code and You’re Done! b Knee-Jerk (Extreme) response to too much process b “At least we won’t get bit by Analysis Paralysis” b Code Early and Code Often (is this really a NEW paradigm?) b Catchy slogans… b “Oral Documentation, ”,“The Design Is The Code”, “Design by Testing” etc. b “Tofu Burger with Wheat Grass juice” -- no fat, but...

Copyright 2000 ICONIX Software Engineering, Inc There’s another way… Do OOAD but Keep It Simple

Copyright 2000 ICONIX Software Engineering, Inc Let’s work backwards from code Let’s assume that we’ve done a little prototyping, and started to write some use cases. But code is our desired destination.

Copyright 2000 ICONIX Software Engineering, Inc Before we get to code... b We need a complete set of classes, with accompanying attributes and methods. b We show this information on design-level class diagrams.

Copyright 2000 ICONIX Software Engineering, Inc Design-Level Class Diagrams Our design-level class diagrams serve as the structure for our code.

Copyright 2000 ICONIX Software Engineering, Inc Before we have classes with attributes and methods, though… b We need to allocate behavior into our classes b We have only enough information to make good decisions about which classes are responsible for which methods while we are drawing sequence diagrams. b So, we need to draw a sequence diagram for each use case.

Copyright 2000 ICONIX Software Engineering, Inc Sequence Diagrams We allocate methods to classes as we draw sequence diagrams.

Copyright 2000 ICONIX Software Engineering, Inc Before we do sequence diagrams, though... b We need to have a good idea about what objects will be performing in which use case, and what functions the system will perform as a result of user actions. b We get this information from robustness diagrams, the result of robustness analysis.

Copyright 2000 ICONIX Software Engineering, Inc Robustness Diagrams -- the missing link! We discover new objects, and add attributes to classes, as we draw robustness diagrams.

Copyright 2000 ICONIX Software Engineering, Inc But we can’t draw robustness diagrams before... b We describe system usage in the context of the object model. b This means that we don’t write abstract, vague use cases that we can’t design from. b Instead, we need to write use case text that references the names of objects in the problem domain. b We also reference the names of "boundary objects" in the use case text.

Copyright 2000 ICONIX Software Engineering, Inc First, though... b We need to identify the main abstractions that are present in the problem domain. b In other words, we need a domain model. b We show our domain model on class diagrams.

Copyright 2000 ICONIX Software Engineering, Inc Domain Model

Copyright 2000 ICONIX Software Engineering, Inc Refining our class diagrams b We'll refine our (static) analysis level class diagrams (our domain model) continuously as we explore the dynamic behavior of the system in more and more detail during analysis and design. b This will ultimately result in our design-level class diagrams, which we can code from.

Copyright 2000 ICONIX Software Engineering, Inc The ICONIX Process

Copyright 2000 ICONIX Software Engineering, Inc Key features of the ICONIX Process b Avoidance of analysis paralysis b Streamlined usage of the UML b Minimalist yet sufficient b High degree of traceability b Based on fundamental OOAD questions b Work from the outside in b Work from the inside out

Copyright 2000 ICONIX Software Engineering, Inc High degree of traceability b Courses of action describe what goes on in a use case (normally and in exceptional cases) b Robustness diagrams bridge the “what/how” gap b Sequence diagrams are done for each use case

Copyright 2000 ICONIX Software Engineering, Inc Robustness diagrams bridge the “what/how” gap b Most current UML texts do not address crossing this what/how gap.

Copyright 2000 ICONIX Software Engineering, Inc Based on fundamental OOAD questions b What are the users doing? (Jacobson) b What are the objects in the real world? (Rumbaugh) b What objects are needed for each use case? (Jacobson) b How do the objects collaborate with each other? (Jacobson and Booch) b How will we implement real-time control? (state models) b How are we really going to build this system? (Booch)

Copyright 2000 ICONIX Software Engineering, Inc Work from the outside in Objectory and the Unified Process are use-case driven (outside-in) By keeping use cases as the primary unit of system decomposition, we stay user- focused By using prototyping in conjunction with use cases, we stay user-focused

Copyright 2000 ICONIX Software Engineering, Inc Work from the inside out b OMT was object driven (inside-out) b OMT models == real-world (domain) b Some upfront thought about the problem domain makes everything easier b Reuse across systems comes from the domain model

Copyright 2000 ICONIX Software Engineering, Inc Update your domain model

Copyright 2000 ICONIX Software Engineering, Inc Use robustness analysis to update your static model

Copyright 2000 ICONIX Software Engineering, Inc Use the robustness diagram to get the sequence diagram started

Copyright 2000 ICONIX Software Engineering, Inc Use the Sequence Diagram to Allocate Behavior b Which class does an operation belong in? Halbert and O’Brien criteria: b Reusability: does it make this class more general? b Applicability: does it fit? Is it relevant? b Complexity: is it easier to build it here or elsewhere? b Implementation knowledge: does it rely on internal details?

Copyright 2000 ICONIX Software Engineering, Inc Update your static model, again

Copyright 2000 ICONIX Software Engineering, Inc Add “Booch stuff” to the analysis- level UML class diagram b Booch constructs show additional design information b abstract classes, parameterized and instantiated classes b aggregation vs composition b friend, virtual, and static relationships

Copyright 2000 ICONIX Software Engineering, Inc Drill down from the high-level models to detailed OOD b Booch provided the most comprehensive OOD method b Only OOD method to thoroughly treat software packaging, physical assignment across multiple processors b Especially strong for details of message synchronization, instantiation, parameter passing

Copyright 2000 ICONIX Software Engineering, Inc Design-Level Class Diagrams b What is a “quality” class? b Parameterized and instantiated classes b Design patterns

Copyright 2000 ICONIX Software Engineering, Inc What is a “quality” class? b Coupling: should be loosely coupled with other classes b Cohesion: should be highly cohesive b Sufficiency: does it do enough? b Completeness: does it cover all the relevant a abstractions? b Primitiveness: stick to basic operations

Copyright 2000 ICONIX Software Engineering, Inc Design patterns Component Operation() Add(Component) Remove(Component) GetChild(int) Client Leaf Operation() Component Operation() Add(Component) Remove(Component) GetChild(int) children

Copyright 2000 ICONIX Software Engineering, Inc Code and Test b Component Diagrams show packaging of classes into distributable units b Usage scenarios (use cases) become test scenarios (test cases) b We can link requirements, test cases and other software quality assurance (SQA) information to these models and follow them through the design.

Copyright 2000 ICONIX Software Engineering, Inc Component Diagrams show packaging of classes into distributable units b Components are physical, replaceable parts of a system that conform to, and provide the realization of, interfaces. b Examples: dynamic link library (DLL), COM+ object, Enterprise Java Bean (EJB) b Unlike classes, components are physical, not logical, and components have operations that are reachable only through their interfaces.

Copyright 2000 ICONIX Software Engineering, Inc Tracing requirements

Copyright 2000 ICONIX Software Engineering, Inc We CAN avoid Analysis Paralysis without skipping OOAD b We want the MINIMAL YET SUFFICIENT amount of process b Start small and tailor up as needed [opposite from RUP) b Best effort to “get it right the first time” [opposite from XP] b The ICONIX approach was synthesized from OMT, Objectory, Booch starting in 1993 b It has been refined over 7+ years and hundreds of projects b It works. And it scales. b Book: “Use Case Driven Object Modeling with UML -- A Practical Approach” Addison-Wesley 1999

Copyright 2000 ICONIX Software Engineering, Inc For further information b b b b Phone: b FAX: