Lecture 13-17, chitkara university.  Gives a conceptual framework of the things in the problem space  Helps you think – focus on semantics  Provides.

Slides:



Advertisements
Similar presentations
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’
Advertisements

Object-Oriented Analysis and Design CHAPTERS 8, 9: BASICS, INTRO TO DOMAIN MODELS 1.
Object Design Examples with GRASP
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
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,
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.
Use Case Analysis – continued
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
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”
Object-Oriented Analysis and Design
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’
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.
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,
Chapter 9 Domain Models. Domain Modeling After you have your requirements you start modeling the domain. You are still modeling the business, not the.
Object Design Examples with GRASP (Ch. 18)
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.
Software Architecture in Practice Architectural description (The reduced version)
DOMAIN MODEL CLASS DIAGRAM Prepared by: Fatimah Alakeel November, 2011.
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)
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.
Chapter 9 Applying UML and Patterns -Craig Larman
SYS466: Analysis and Design Using OO Models Domain Class Diagram.
SYS466: Analysis and Design Using OO Models Domain Class Diagram, Part 1.
Conceptual Model or Domain Models Chapter10 Applying UML and pattern.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
Structural Modeling Chapter 7. Key Ideas A structural or conceptual model describes the structure of the data that supports the business processes in.
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.
Software Engineering 1 Object-oriented Analysis and Design Chap 24 Iteration 2 More Patterns.
1 START AT 31 MARCH END 8 APRIL PHASE5(CONCEPTUAL AND SEQUENCE MODEL)
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.
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.
DOMAIN MODEL—PART 2: ATTRIBUTES BTS430 Systems Analysis and Design using UML.
Elaboration popo.
Chapter 9 Domain Models.
Domain Model: Visualizing concepts
Conceptual Model.
Domain Models Part 1
OO Domain Modeling With UML Class Diagrams and CRC Cards
OO Domain Modeling With UML Class Diagrams and CRC Cards
Relating Use Cases popo.
Group Members Muhammad Zeeshan ( 16) Adnan Akhtar (4)
Object Oriented Analysis and Design Conceptual Model.
CONTENTS Object-Oriented Modeling Using UML
Domain Modeling.
Domain Modeling.
Object Oriented Analysis
Domain Model: Visualizing Concepts
Presentation transcript:

lecture 13-17, chitkara university

 Gives a conceptual framework of the things in the problem space  Helps you think – focus on semantics  Provides a glossary of terms – noun based  It is a static view - meaning it allows us convey time invariant business rules  Foundation for use case/workflow modelling  Based on the defined structure, we can describe the state of the problem domain at any time. lecture 13-17, chitkara university

The following features enable us to express time invariant static business rules for a domain:- o Domain classes – each domain class denotes a type of object. o Attributes – an attribute is the description of a named slot of a specified type in a domain class; each instance of the class separately holds a value. o Associations – an association is a relationship between two (or more) domain classes that describes links between their object instances. Associations can have roles, describing the multiplicity and participation of a class in the relationship. o Additional rules – complex rules that cannot be shown with symbology can be shown with attached notes. lecture 13-17, chitkara university

Perform the following in very short iterations: o Make a list of candidate domain classes. o Draw these classes in a UML class diagram. o If possible, add brief descriptions for the classes. o Identify any associations that are necessary. o Decide if some domain classes are really just attributes. o Where helpful, identify role names and multiplicity for associations. o Add any additional static rules as UML notes that cannot be conveyed with UML symbols. o Group diagrams/domain classes by category into packages. Concentrate more on just identifying domain classes in early iterations ! lecture 13-17, chitkara university

Three Strategies to Find Conceptual Classes? 1. Reuse or modify existing models. 2. Use a category list. 3. Identify noun phrases. lecture 13-17, chitkara university

We can create a domain model by making a list of candidate conceptual classes which contains many common categories with an emphasis on business information system needs. lecture 13-17, chitkara university

Case Study: Airline Reservation Domain Conceptual Class CategoryExamples product or service related to a transaction or transaction line item Item, Flight, Seat, Meal where is the transaction recorded?Register, Ledger, Flight Manifest roles of people or organizations related to the transaction; actors in the use case Cashier, Customer, Passenger, Airline place of transaction; place of serviceStore, Airport, Plane, Seat physical objectsItem, Register Board, Piece, Die Airplane descriptions of thingsProduct Description, Flight Description lecture 13-17, chitkara university

Another useful technique (because of its simplicity) suggested is linguistic analysis: Identify the nouns and noun phrases in textual descriptions of a domain, and consider them as candidate conceptual classes or attributes. lecture 13-17, chitkara university

Case Study: POS Domain 1. Customer arrives at a POS checkout with goods and/or service s to purchase. 2. Cashier starts a new sale. 3. Cashier enters item identifier. 4. System records sale line item and presents item description, price, and running total. Price calculated from a set of price rules. lecture 13-17, chitkara university

The domain model illustrates conceptual classes or vocabulary in the domain. Informally, a conceptual class is an idea, thing, or object. More formally, a conceptual class may be considered in terms of its symbol, intension, and extension 1. Symbol words or images representing a conceptual class. 2. Intension the definition of a conceptual class. 3. Extension the set of examples to which the conceptual class applies. lecture 13-17, chitkara university

 Case Study: POS Domain  From the category list and noun phrase analysis, a list is generated of candidate conceptual classes for the domain. On the basis of category list guidelines that emphasize business transactions and their relationship with other things. The list is constrained to the requirements which is under consideration for scenario of Process of Sale. lecture 13-17, chitkara university

 Sale  Cashier  CashPayment  Customer  SalesLineItem  Store  Item  ProductDescription  Register  ProductCatalog  Ledger lecture 13-17, chitkara university

 Some software systems are for domains that find very little analogy in natural or business domains; › software for telecommunications is an example.  It is still possible to create a domain model in these domains, but it requires a high degree of abstraction and stepping back from familiar designs.  For example, here are some candidate conceptual classes related to a telecommunication switch: › Message, Connection, Port, Dialog, Route, Protocol. lecture 13-17, chitkara university

The most common mistake when creating a domain model is to represent something as an attribute when it should have been a conceptual class.  Guideline If we do not think of some conceptual class X as a number or text in the real world, X is probably a conceptual class, not an attribute. lecture 13-17, chitkara university

In the real world, a store is not considered a number or text the term suggests a legal entity, an organization, and something that occupies space. Therefore, Store should be a conceptual class. As another example, consider the domain of airline reservations. Should destination be an attribute of Flight, or a separate conceptual class Airport? In the real world, a destination airport is not considered a number or text it is a massive thing that occupies space. Therefore, Airport should be a concept. lecture 13-17, chitkara university

A description class contains information that describes something else. For example, a ProductDescription that records the price, picture, and text description of an Item. lecture 13-17, chitkara university

1. An Item instance represents a physical item in a store; as such, it may even have a serial number. 2. An Item has a description, price, and itemID, which are not recorded anywhere else. 3. Everyone working in the store has amnesia. 4. Every time a real physical item is sold, a corresponding software instance of Item is deleted from "software land." lecture 13-17, chitkara university

The * means a multiplicity of "many." It indicates that one Product Description may describe many (*) Items. lecture 13-17, chitkara university

Bounded by the current iteration requirements under design: 1. Find the conceptual classes (see a following guideline). 2. Draw them as classes in a UML class diagram. 3. Add associations and attributes.associationsattributes lecture 13-17, chitkara university

An attribute is a logical data value of an object. It is useful to identify those attributes of conceptual classes that are needed to satisfy the information requirements of the current scenarios under development. attribute lecture 13-17, chitkara university

A domain class sounds like an attribute if: - o It relies on an associated class for it’s identity – e.g. ‘order number’ class associated to an ‘order’ class. The ‘order number’ sounds suspiciously like an attribute of ‘order’. o It is a simple data type – e.g. ‘order number’ is a simple integer. Now it really sounds like an attribute! lecture 13-17, chitkara university

 An association is a relationship between classes (more precisely, instances of those classes) that indicates some meaningful and interesting connection. association lecture 13-17, chitkara university

 Multiplicity defines how many instances of a class A can be associated with one instance of a class B. Multiplicity on association lecture 13-17, chitkara university