Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.

Slides:



Advertisements
Similar presentations
Object Design Examples with GRASP
Advertisements

Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
Drawing System Sequence Diagrams
NJIT Use Case Model Operation Contracts Prepared By: Sumit Sharma.
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.
NJIT Drawing System Sequence Diagrams Chapter 10 Applying UML and Patterns Craig Larman Presented by Anuradha Dharani.
Copyright W. Howden1 Lecture 2: Elaboration Tasks and Domain Modeling.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH 1 Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 More on use cases System sequence.
Chapter 9 Domain Models 1CS6359 Fall 2012 John Cole.
Use Case Model Operation Contracts Prepared By: Sumit Sharma and Sravanthi Gillala.
חוזים – Contracts 1. Larman – Chapter 10 – SSDs 10.2 What are System Sequence Diagrams? (introduction) Use cases describe how external actors interact.
9/18/011 Software Requirements Analysis and Design (Continued)
Domain Modeling Chandan R. Rupakheti and Steve Chenoweth Week 5, Day 1.
LECTURE 5 SEQUENCE DIAGRAM 1. INTRODUCTION – SYSTEM SEQUENCE DIAGRAM A system sequence diagram is a fast and easily created artifact that illustrates.
TK2023 Object-Oriented Software Engineering CHAPTER 6 SYSTEM SEQUENCE DIAGRAMS.
Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative Development Part III Elaboration Iteration I – Basic1.
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’
DOMAIN MODEL— PART 2: ATTRIBUTES SYS466. Looking For Potential Classes “Know the business”. Ask Questions Identify business concepts; filter nouns (person,
Object Oriented Analysis and Design System Events & Contracts.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
TK2023 Object-Oriented Software Engineering CHAPTER 5 DOMAIN MODELLING.
Use Case Model Operation Contracts Chapter 11 Applying UML and Patterns Craig Larman.
Review ♦ System sequence diagram ♦ Domain model
CS3773 Software Engineering Lecture 04 UML Class Diagram.
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.
PRJ566 System Sequence Diagrams.  A system sequence diagram …. Illustrates input and output events related to the system under discussion.  Larman,
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
♦ Use Case Model  Detailled use case - Important  Use case diagram- Refactoring Use case diagram  > 1 Last Lectures.
SYS466: Analysis and Design Using OO Models Domain Class Diagram.
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
Larman ch. 131 Use-Case Model : Adding Detail with operation contracts Larman ch. 13.
Drawing System Sequence Diagrams
Elaboration Iteration 1- Part 1
COMP-350 Object-Oriented Analysis and Design Drawing System Sequence Diagrams Reference: Larman, Chapter 9.
System sequence diagram M Taimoor Khan
System sequence diagrams
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.
Chapter 11 Operation Contracts. What They Are An operation is a specification of a transformation or query that an object may be called on to execute.
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.
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
Summary from previous lectures
1 Chapter 9: Operation Contracts Chapter 13 in Applying UML and Patterns Book.
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.
SYSTEM-LEVEL SEQUENCE DIAGRAMS Sys466. System-Level Sequence Diagrams  Use cases describe how external actors interact with the software system…  An.
DOMAIN MODEL—PART 2: ATTRIBUTES BTS430 Systems Analysis and Design using UML.
1 Object Oriented Analysis and Design System Events & Contracts.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XIV. From Requirements to Design in the UP.
Elaboration popo.
Chapter 9 Domain Models.
System Sequence Diagrams and Operation Contracts
Domain Model: Visualizing concepts
System sequence diagrams
BTS430 Systems Analysis and Design using UML
OO Domain Modeling With UML Class Diagrams and CRC Cards
Group Members Muhammad Zeeshan ( 16) Adnan Akhtar (4)
Object Oriented Analysis and Design Conceptual Model.
Object Oriented Analysis
Operation Contracts Ch. 11.
Domain Model: Visualizing Concepts
Presentation transcript:

Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects Created during the elaboration stage Illustrated as a set of class diagrams without operations –Conceptual classes –Associations between conceptual classes –Attributes of conceptual classes

Conceptual Model Example

Domain Model A major distinction between object- oriented and structured analysis is: division by conceptual classes (objects) rather than division by functions To identify conceptual classes: –Use a conceptual Class category list –Identify noun phrases –Use analysis patterns done by experts

Conceptual Class Category List Physical or tangible objectsEvents Specifications, design or description of things Rules and policies PlacesAbstract noun concepts Transactions/transaction line itemsCatalogs Roles of peopleRecords of finance Containers of thingsManuals, books, documents Things in a containerOrganizations Other computer/ electromechanical systems

Noun Phrases Identify noun phrases in use-case model Some are classes, others are attributes

Steps to Create Domain Model List conceptual classes identified Draw them in a domain model Add associations necessary to record relationship between classes Add attributes to fulfill requirements

Domain Model Guidelines Use the vocabulary of the domain when naming the conceptual classes Exclude conceptual classes that are not relevant to the requirements Do not include things that are not there in real life Conceptual classes are more complex than a number or text (otherwise attribute)

Classes vs. Attributes Sale Store SaleStore Phone no Flight destination FlightAirport name Or ?

Specification Conceptual Class There is a need to include specification/ description classes that include information about items. Used in sales, product and manufacturing domains to include description of a thing When all inventory items of a specific product has been sold and the item instance class is deleted, the specification class still remains

Specification Conceptual Class

Use specification conceptual classes when: –There is a need for a description of the item independent of the current existence of these items in the system –Deleting instances of things (e.g. items) will result in loss of information that needs to be maintained –Reduce redundant information

UML vs. Models UML describes raw diagram types Models utilize UML diagrams in certain context. For example: –UML has class diagram (rectangular box) –In Domain model, they are real life conceptual classes –In Design model, they are software classes

Associations A relationship between types (instances of types) that indicates some meaningful and interesting connection UML definition: a semantic relationship between two or more classifiers that involve connection among their instances. Include associations when: –Knowledge of relationship needs to be stored for some time –Use “Common association list” to decide

Associations Lines between classes with association name on it. End points of the line has multiplicity expression indicating numerical relationship between instances of classes Default reading direction is left to right, and top to bottom. Or optional reading arrow Multiplicity: how many instances of class A can be associated with one instance of class B

Multiplicity Values

Common Association List A is a physical part of BA is a member of B A is a logical part of BA is an organizational subunit of B A is physically / logically contained in B A is next to B A is recorded/ logged in BA is an event related to B A is a description of BA is related to a transaction B A is a line item of report or transaction A is owned by B A uses or manages BA communicates with B

Associations It is more important to find conceptual classes than to find associations You can have multiple associations between two classes Show only important associations

Attributes A logical data value of an object Include attributes in the domain model that the requirements imply to store Optionally show the type of the attribute Attribute data type should be simple (e.g. string, date, number, boolean) If the attribute is not simple, it should be a conceptual class

Attributes Relate classes using association NOT attributes (No foreign keys)

Quantities and Units Most numeric values have units (e.g. money, weight, length) For international software, these quantities should be recorded with their units Units are conceptual classes, but it is acceptable to collapse them into data types because they are common

Quantities and Units

System Sequence Diagram A picture that shows for a particular use-case scenario, events that external actors generate, their order and inter-system events. Shows input/ output events related to system being described The system is treated as a black box SSD should be drawn for the main success scenario of the use-case Created during the elaboration stage System events may include parameters

SSD Example

Use-Case Use abstract events names: enterItem (itemID, quantity) Scan (itemID, quantity)

Contracts Describes detailed system behavior in terms of state changes of objects in the Domain model after a system operation has been executed Done for each complex operation in the System Sequence diagram Operation: a specification of a transformation or query that an object may be called to execute Writing contracts may suggest changes in the domain model

Contracts Sections Operation: name of the operation and parameters Cross reference: Use case this operation can occur within Preconditions: Assumptions about the state of the system or objects in the domain model before the execution of the operation Post conditions: The state of objects in the domain model after the completion of the operation

Contracts Post conditions: (results) –Instance creation/ deletion –Changes in attributes –Associations broken or formed Steps to write contracts –Identify system operation for SSD –If things are complex and need details –Write contract

Contracts Describe real life operations which could be paper-based, not a computer freeing memory Example: In many countries, after a person has declared bankruptcy and seven or ten years have passed, all records of their bankruptcy declaration must be destroyed