Domain Model: Visualizing Concepts

Slides:



Advertisements
Similar presentations
Object-Oriented Analysis and Design CHAPTERS 8, 9: BASICS, INTRO TO DOMAIN MODELS 1.
Advertisements

Object Design Examples with GRASP
Jan 16, Ron McFadyen1 Ch 9. Use-case model: drawing System Sequence Diagrams Iteration 1: a simple cash-only success scenario of Process Sale.
Copyright ©2004 Cezary Z Janikow 1 Domain Model n Visualization of entities and relationships n In UP presented as Class Diagrams – Classes, Relationships,
Chapter 9 DOMAIN MODELS Objectives
1 Domain Model Adding Associations Chapter 11 Applying UML and Patterns -Craig Larman.
6/8/991 Analysis Tuesday 09/14/99 Revised: September 11, 2000 (APM)
Domain model: visualizing concepts
NJIT 1 Domain Model Visualizing Concepts Chapter 9 Applying UML and Patterns Craig Larman.
Chapter 9 Domain Models 1CS6359 Fall 2012 John Cole.
9/18/011 Software Requirements Analysis and Design (Continued)
Domain Modeling Chandan R. Rupakheti and Steve Chenoweth Week 5, Day 1.
How to Make a Domain Model Tutorial
Chapter 9 Domain Models. Domain Model in UML Class Diagram Notation A “visual dictionary”
What is a domain model? “A domain model captures the most important types of objects in the context of the business. The domain model represents the ‘things’
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Last lecture. What is a Use Case Use cases are stories (scenarios) of how actors use (interact with) the system to fulfill his goal. Examples Process.
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
Information Systems Analysis and Design Class Modeling
DOMAIN MODEL— PART 2: ATTRIBUTES SYS466. Looking For Potential Classes “Know the business”. Ask Questions Identify business concepts; filter nouns (person,
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Chapter 9 Domain Models. Domain Modeling After you have your requirements you start modeling the domain. You are still modeling the business, not the.
TK2023 Object-Oriented Software Engineering CHAPTER 5 DOMAIN MODELLING.
Domain Modelling Presented By Dr. Shazzad Hosain.
Sept Ron McFadyen1 Section 10.1 Domain Models Domain Model: a visual representation of conceptual classes or real-world objects in a domain.
Chapter 9 Domain Models $PH\06f522\LarmanApplUMLandPtrns\larman3EdDgmsCh01-14\09_domainModelsR2.ppt – RJL
Review ♦ System sequence diagram ♦ Domain model
Lecture 9 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Jan 21, Ron McFadyen1 Ch 10. Domain Model: Visualizing Concepts Domain model illustrated with a class diagram (with no operations defined)
1 Lecture 6: Operation Contracts. 2 Overview  What is contract ?  The guidelines for writing contracts for the system operations.  Use Case realizations.
Conceptual Modeling Modeling the Problem Domain. Conceptual Modeling Decompose problem space into comprehensible concepts. Clarify the terminology or.
DOMAIN MODEL- VISUALIZING CONCEPTS Identify conceptual classes related to the current iteration requirements. Create an initial domain model. Distinguish.
Lecture 13-17, chitkara university.  Gives a conceptual framework of the things in the problem space  Helps you think – focus on semantics  Provides.
Chapter 9 Applying UML and Patterns -Craig Larman
SYS466: Analysis and Design Using OO Models Domain Class Diagram.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
Elaboration Iteration 1- Part 1
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
Domain Model—Part 2: Attributes.  A logical data value of an object  (Text, p. 158)  In a domain model, attributes and their data types should be simple,
Repetition af Domæne model. Artifact influence emphasizing the Domain Model.
DOMAIN MODEL: ADDING ATTRIBUTES Identify attributes in a domain model. Distinguish between correct and incorrect attributes.
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
BTS430 Systems Analysis and Design using UML Domain Model—Part 2A: Attributes.
January Ron McFadyen1 Domain Models Domain Model: a visual representation of conceptual classes or real-world objects in a domain of interest.
Chapter 9: Domain Models.  The problem domain is modelled using a UML domain model: This is the first OO model that we will see (Use Cases are very useful.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
Larman chapter 101 Domain Model: Visualizing concepts Larman chapter 10.
1 Object Oriented Analysis and Design Conceptual Model.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
1 Chapter 9: Conceptual Model Chapter 10, 11 & 12 in Applying UML and Patterns Book.
DOMAIN MODEL—PART 2: ATTRIBUTES BTS430 Systems Analysis and Design using UML.
1 Object Oriented Analysis and Design System Events & Contracts.
Elaboration popo.
Chapter 9 Domain Models.
System Sequence Diagrams and Operation Contracts
Domain Model: Visualizing concepts
Conceptual Model.
Domain Models Part 1
DESIGN MODEL: USE-CASE REALIZATIONS WITH GRASP PATTERNS
OO Domain Modeling With UML Class Diagrams and CRC Cards
OO Domain Modeling With UML Class Diagrams and CRC Cards
Group Members Muhammad Zeeshan ( 16) Adnan Akhtar (4)
Chapter 11: Class Diagram
Object Oriented Analysis and Design Conceptual Model.
CONTENTS Object-Oriented Modeling Using UML
Domain Modeling.
Domain Modeling.
Object Oriented Analysis
Design Model: Creating Design Class Diagrams
Presentation transcript:

Domain Model: Visualizing Concepts Ch. 9

Domain Models A Domain Model illustrates meaningful concepts in a problem domain. Does a domain model represent real things or SW components? Is a domain model static or interactive? It may show: concepts associations between concepts attributes of concepts Avoid Analysis Paralysis! Domain Model <> Class Diagram! DM: representation of real-situation conceptual classes not of sw objects == Visual dictionary, shows abstraction of conceptial classes

Domain Models A Domain Model is a description of things in the real world. A Domain Model is not a description of the software design. What is a concept? Item Store * 1 address name Stocked-in

Conceptual Classes in the Sale Domain What is the distinction between OO and structured analysis? Store POS Sale Partial Domain Model. Symbol: words or image Intention: definition Extension: examples to which conceptual class applies

Strategies to Identify Conceptual Classes Use a conceptual class category list. Use noun phrase identification. Why create domain model? Domain layer supports a mental layer between our mental model of the domain, lower representation gap with OO, DM inspires objects and names in OO, reduce representational gap: use actual objects and definitions to inspire coding objects and class blueprints

Use a conceptual class category list Concept Category Example Physical or tangible objects POS Specifications, designs, or descriptions of things ProductSpecification Places Store Transactions Sale, Payment Transaction line items SalesLineItem Roles of people Cashier Containers of other things Store, Bin (See complete list in Larman 2nd. ed., pp. 134-135)

Finding Conceptual Classes with Noun Phrase Identification 1. This use case begins when a Customer arrives at a POS checkout with items to purchase. 2. The Cashier starts a new sale. 3. Cashier enters item identifier. … How to: find nouns, draw as classes, add associations, attributes Do not reinvent the wheel

The Need for Specification or Description Conceptual Classes What is wrong with this picture? Consider the case where all items are sold, and thus deleted from the computer memory. How much does an item cost? Item description price serial number itemID

The Need for Specification or Description Conceptual Classes The memory of the item’s price was attached to inventoried instances, which were deleted. Notice also that in this model there is duplicated data (description, price, itemID). Item description price serial number itemID

The Need for Specification or Description Conceptual Classes When should we add a specification or description concept? ProductSpecification description price itemID 1 Describes * Conceptual classes – categories, noun phrase identification, Item serial number

The NextGen POS (partial) Domain Model Item Store Sale Sales LineItem Cashier Customer Manager Payment Product Catalog Product Specification

Adding Associations “Direction reading arrow” has no meaning other than to indicate direction of reading the association label. Optional (often excluded) POS Records-current Sale Association: relationship between classes, meaningful, interesting connection, preserved for some duration, between what models do wen need a memory of a relationship “need to remember”. NOT a statement about data flows! Paths of navigation and visibility ClassName – VerbPhrase - ClassName 1 1 Association name

Finding Associations –Common Associations List Category Examples A is a physical part of B* Drawer - POS A is a logical part of B SalesLineItem - Sale A is physically contained in/on B POS - Store A is logically contained in B ItemDescription - Catalog A is a description of B ItemDescription - Item A is a line item of a transaction or report B SalesLineItem - Sale A is known/logged/recorded/ captured in B Sale - POS A is a member of B Cashier - Store ... (See complete list in Larman 2nd. ed., pp. 156-157) * High-priority associations

Multiplicity Store Stocks Item 1 * Multiplicity *: zero or more Multiplicity: how many instances of class A can be associated with an instance of class B

Multiplicity * T Zero or more; “many” 1..* T One or more 1..40 T One to forty 5 T Exactly five 3, 5, 8 T Exactly three, five or eight.

Naming Associations Store Name an association based on a TypeName-VerbPhrase- TypeName format. Association names should start with a capital letter. A verb phrase should be constructed with hyphens. The default direction to read an association name is left to right, or top to bottom. 1 Contains 1..* POS 1 Captures 1..* Paid-by Sale Payment 1 1

Multiple Associations Between Two Types It is not uncommon to have multiple associations between two types. In the example, not every flight is guaranteed to land at an airport. Flies-to 0..1 * Flight Airport Flies-from * 1

Adding Attributes Sale date startTime: Time Attributes Attribute: logical data value of an object Visibility name: type multiplicity – default [property-string] / derived attribute: calculated -, +: private, public Domain model: no types of attributes! Guidelines for modeling data types: represent smt as a new data type class in domain model if: It is composed of separate sections Operations associated with it Has other attributes Is quantity with unit It is an abstraction

Valid Attribute Types Cashier Not a simple attribute name currentRegister Cashier Register name uses number 1 1

Domain Model Conclusion Records-sale-of 1 0..1 Described-by * Product Catalog Product Specification Sales LineItem Contains description price itemID 1 1..* quantity 1 Used-by 1..* * Describes 1..* Store Item 1 * Contained-in Logs-completed address name Stocks 1 * 1 * Sale 1 Houses 1..* date time Captured-on POS Manager Started-by 1 1 1 1 Conclusion: is DM correct? Yes if it captures the essential abstractions and information required. Avoid waterfall mindset of analysis paralysis, limit domain modeling to a few hrs per iteration 1 1 Paid-by Initiated-by 1 1 1 Records-sales-on Payment Customer Cashier 1 amount