*Based on the work of Peter Coad, Stephen R. Palmer and others Advanced Domain Modeling Architecting for Agility with Color Models* David J. Anderson Program.

Slides:



Advertisements
Similar presentations
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Advertisements

A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Sucha Smanchat  Steps in OOAD using UML  Use Case Diagram  Sequence Diagram / Communication Diagram  Class Diagram  State.
2008/03/25 Unified Modeling Lanauage 1 Introduction to Unified Modeling Language (UML) – Part One Ku-Yaw Chang Assistant Professor.
Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
November R McFadyen1 Aggregation and Composition – section 27.2 both are associations used to denote that an object from one class is part.
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Copyright W. Howden1 Lecture 6: Design Evaluation and Intro to OO Design Patterns.
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Slide 1 Chapter 7 Structural Modeling. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Requirements Analysis 2 What objects collaborate to achieve the goal of a use case?
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
3/15/05H-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Evaluating Class Diagrams Topics include: Cohesion, Coupling Law of Demeter (handout)
CSSE 374: Domain Model Refinements and Iteration 3 Preparations Q1 These slides and others derived from Shawn Bohner, Curt Clifton, Alex Lo, and others.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
Chapter 1: Introduction to Systems Analysis and Design
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Unified Modeling Language, Version 2.0
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Systems Analysis and Design in a Changing World, Fifth Edition
11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide.
David J. Anderson PM Microsoft Solutions Framework Feature Driven Development.
Quickly Building Accurate Business Problem Domain Models is No Mystery  Session 1118  Ken Ritchie and Don Kranz – PROCESS-exchange, Inc.
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Real Time Systems Modeling Structure in UML (Part I)
1 © 2007 T. Horton CS 441, Summer 2007 Principles of SW Design Design Patterns in Context – Doing design: can we say more about how to go about it? Readings:
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
5 Systems Analysis and Design in a Changing World, Fifth Edition.
What is a Structural Model?
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Part VII: Design Continuous
Design Model Lecture p6 T120B pavasario sem.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
ITEC 3220A Using and Designing Database Systems Instructor: Gordon Turpin Course Website: Office: CSEB3020.
Design CIS 4800 Kannan Mohan Department of CIS Zicklin School of Business, Baruch College Copyright © 2009 John Wiley & Sons, Inc. Copyright © 2008 Course.
Object-Oriented Analysis and Design CHAPTERS 9, 31: DOMAIN MODELS 1.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
® IBM Software Group © 2004 IBM Corporation Developing an SOA with RUP and UML 2.0 Giles Davies.
Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Dr. Rebhi S. Baraka Advanced Topics in Information Technology (SICT 4310) Department of Computer Science Faculty of Information Technology.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Domain Model Refinement Notation Extensions. Things not seen before in the Domain Model Similar to the concepts in the Object Models Generalization and.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Haley Wixom, and David Tegarden Chapter 7: Structural Modeling.
Chapter 6: The Analysis Workflow Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in.
Basic Characteristics of Object-Oriented Systems
3/1/01H-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Evaluating Class Diagrams Topics include: Cohesion, Coupling Law of Demeter (handout)
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Chapter 1: Introduction to Systems Analysis and Design
Object-Oriented Analysis and Design
Systems Analysis and Design With UML 2
Review CSE116 2/21/2019 B.Ramamurthy.
Copyright 2007 Oxford Consulting, Ltd
Chapter 1: Introduction to Systems Analysis and Design
Software Analysis.
Chapter 16 Class Diagrams.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
CIS 644  Object-Oriented Design and Development. (3) 
Chapter 1: Introduction to Systems Analysis and Design
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

*Based on the work of Peter Coad, Stephen R. Palmer and others Advanced Domain Modeling Architecting for Agility with Color Models* David J. Anderson Program Manager, Microsoft

Objectives Peter Coad and Patterns –A brief history of how color modeling came about Archetypes and the Domain Neutral Components Modeling for Agility –Loose coupling and Law of Demeter Advances in Color Modeling since 1999 –The role of >s –Getting the blues –Whole-part relationships –Patterns of color communicate architecture smells –Enterprise components from color models

History

Object Models : Strategies, Patterns & Applications, 1st ed., Coad, Mayfield & North, Yourdon Press, Prentice Hall, 1995 RoleTransactionThing Catalog Description History

[*still referred to as “Transaction” in], Object Models: Strategies, Patterns & Applications, 2nd ed., Coad, Mayfield & North, Yourdon Press, Prentice Hall, 1997 Moment or Interval – a generalization of the idea of a transaction e.g. Warranty Period Period of Employment Loan Approval Request Funds Disbursement Employee > PeriodOfEmployment >* OrganizationUnit Name=KC Branch > OrganizationUnitDescription Description = Branch Office > History – Spring 1997

Color instantly communicates the pattern of class relationships to the viewer If the colors are not configured in the correct pattern then there are strong clues that the model could be improved! History – September 1997

Phil Bradley was Development Manager Persistence Layer, PowerLender Project, United Overseas Bank, Singapore Philip Bradley argues for Archetypes not stereotypes. “ a model from which all things of the same kind more or less follow” And that, all business flows should or ought to be basically the same. “Data Model Patterns - Conventions of Thought”, David Hay, Dorset House, 1996 “ a conventional, formulaic, over-simplified conception, opinion or image” rather than [The Universal Data Model] Dec 1998 – Archetypes

“Java Modeling in Color : Enterprise Components and Process”, Coad, Lefebvre and De Luca, PTR-PH 1999 History – January 1999

Architecture Board

Component Map

Archived Iteration

Elegant Enough to get the job done and no more Extensible Loosely coupled Robust and resilient to change Communicates clearly “ In anything at all, perfection is finally attained not when there is no longer anything to add, but when there is no longer anything to take away” Antoine de Saint Exupery Definition of an Agile Model

Behavior of Colors Instances of Archetypes share similar attributes Instances of Archetypes share similar methods assessPerformance() salesMadeInPeriod() averageSalesOverPeriod() assessAccuray() assessSpeed() isActive() isSuspended() totalValue() isComplete() isUrgent() _findByIdNumber() _findByName() isOfType() getValue() assessAcrossRoles() listRolesPlayedBy() totalUnitsAvailable() totalUnitsManufactured() assessRoleAllowed() Courtesy Stephen R. Palmer

Where do >s come from? OK! Better!

Naming Conventions for Roles Note: the actual aggregating > is used for naming rather than the > When no domain specific term for a > exists use the template –Person|Place|Thing In Moment-Interval –Or, GreenInPink e.g. ItemInSale

Roles and Inheritance Courtesy Stephen R. Palmer

Inherit from a Role superclass Courtesy Stephen R. Palmer

Manage roles with a description Courtesy Stephen R. Palmer

Courtesy Stephen R. Palmer Subsequent Roles

Moment-Intervals get the Blues Missing from the original DNC in 1999 Pink Classes can have Descriptions just like Greens

Whole-Part Relationships

Color Differences Can Be OK (A) This model has a whole-part color conflict but it is not wrong. It is simply less flexible and more coupled (B) This model resolves the color conflict and is more loosely coupled but requires 2 more classes

Just Plain Wrong Some color combinations in Whole-Part relationships should immediately raise the red flag for the modeling team As a general rule, question all aggregation and composition where color changes across the association

Subsequent Blues Description classes can have object inheritance relationships with subsequent descriptions Generally, there will only be one green class in the chain. Greens may aggregate or collect other greens but object inheritance should be yellow- green, green-blue or blue-blue

Class or Object Inheritance Courtesy Stephen R. Palmer

Simple Corporate Structure Example

Types of Blues Blue Catalog Descriptions, but also Enumerations and encapsulated (plug-in) Business Rules Each rule can have its own interface plug-in point and implementors can be hooked in at runtime

Putting It All Together

Law of Demeter A different view of the DNC showing the dynamic dependencies between classes. Classes only hold dependencies to their immediate neighbors The DNC is very loosely coupled

LoD Compliant Sequence Diagram

Wrong – not LoD Compliant

Possible Component Boundaries

DNC as Component Model

A sequence of > can be packaged together as a component Business Workflow Example Component Boundary

Re-usable Enterprise Components Pinks and yellows are re-usable across multiple greens – the core Enterprise Components Greens and blues are re-usable across discrete Enterprise Applications modeled as sequences of pinks

Two more possible schemes

One-way Dependency

Resolving 2-way Dependencies

More 2-way Dependencies

Easily learned - Easily taught But yet, a craft - perfected over time DNC is reliable and repeatable - a basic pattern even novice modelers can follow Archetypes easily identified from requirements documents Eliminates class discovery problems Leads to elegant, robust, extensible, agile models Take-away modeling rather than addition Typically an order-of-magnitude speed improvement for class diagrams over traditional verb-noun approach Only one pattern to learn! Summary – Color Modeling

Questions?

Contact Details David J. Anderson Program Manager, Microsoft

Object Models : Strategies, Patterns & Applications, 2nd ed., Coad, Mayfield & North, Yourdon Press, Prentice Hall, 1997 Java Modeling in Color with UML : Enterprise Components and Process, Coad, Lefebvre, De Luca, Prentice Hall, 1999 Data Model Patterns : Conventions of Thought, David Hay, Dorset House, 1996 The Coad Letter #68 - The Domain Neutral Component, Stephen R. Palmer, The Coad Letter #71 – From Association to DNC, Stephen R. Palmer, The Coad Letter #74 – Historic Values, Stephen R. Palmer, The Coad Letter #76 – Modeling User Roles, Stephen R. Palmer, The Coad Letter #77 – Object Models to DNC, Stephen R. Palmer, The Coad Letter #79 – The Example Teaches, Stephen R. Palmer, The Coad Letter #82 – Description Class Archetype, Stephen R. Palmer, The Coad Letter #87 – Good Ideas Behind Color Modeling, Stephen R. Palmer, The Coad Letter #103 – Party Time, Stephen R. Palmer, The Coad Letter #107 – Party Time: Modeling Legal IDs, Stephen R. Palmer, References