Http://flic.kr/p/9RR1BL Domain Modeling.

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

Chapter 9 Domain Models The classic OOAD model. Fig. 9.1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Jan 2003Ron McFadyen Generalization (Ch 26) a generalization is a relationship between a general thing (the superclass or parent class) and a.
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.
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.
Modeling & Designing the Database
Chapter 9 Domain Models 1CS6359 Fall 2012 John Cole.
Domain Modeling Chandan R. Rupakheti and Steve Chenoweth Week 5, Day 1.
How to Make a Domain Model Tutorial
Objectives Design Class Diagrams Issues in system design Generalization Review UML papers.
Systems Analysis and Design in a Changing World, Tuesday, Feb 27
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Visualizing Concepts with a Domain Model.
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.
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
R McFadyen Chapter 7 Conceptual Data Modeling.
TK2023 Object-Oriented Software Engineering CHAPTER 5 DOMAIN MODELLING.
Association Class Generalization/Specialization Whole-Part Page More Associations 1.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Review ♦ System sequence diagram ♦ Domain model
Lecture 9 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Conceptual Modeling Modeling the Problem Domain. Conceptual Modeling Decompose problem space into comprehensible concepts. Clarify the terminology or.
INFO 620Lecture #81 Information Systems Analysis and Design Class Diagram Refinement INFO 620 Glenn Booker.
Domain Model Refinement Larman, chapter 31 CSE 432: Object-Oriented Software Engineering Glenn D. Blank, Lehigh University.
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
Generalization (Ch 26) a generalization is a relationship between a general thing (the superclass or parent class) and a more specific kind of thing (the.
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.
Object-Oriented Analysis and Design CHAPTERS 9, 31: DOMAIN MODELS 1.
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
January Ron McFadyen1 Domain Models Domain Model: a visual representation of conceptual classes or real-world objects in a domain of interest.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
Sept 2004Ron McFadyen Generalization (Ch 26) a generalization is a relationship between a general thing (the superclass or parent class) and a.
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
Larman chapter 101 Domain Model: Visualizing concepts Larman chapter 10.
2007ACS-3913 Ron McFadyen1 Generalization a generalization is a relationship between a general thing (the superclass or parent class) and a more specific.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
Domain Model Refinement Notation Extensions. Things not seen before in the Domain Model Similar to the concepts in the Object Models Generalization and.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
BTS430 Systems Analysis and Design using UML Design Class Diagrams (ref=chapter 16 of Applying UML and Patterns)
COP 4331 – OOD&P Lecture 7 Object Concepts. What is an Object Programming language definition: An instance of a class Design perspective is different.
DOMAIN MODEL—PART 2: ATTRIBUTES BTS430 Systems Analysis and Design using UML.
Elaboration popo.
Chapter 9 Domain Models.
DATA REQIREMENT ANALYSIS
Domain Model: Visualizing concepts
DATA MODELS.
Domain Model Refinement
Domain Models Part 1
OO Domain Modeling With UML Class Diagrams and CRC Cards
CSSE 374: Domain Model Refinements and Iteration 3 Preparations
OO Domain Modeling With UML Class Diagrams and CRC Cards
Domain Class Diagram Chapter 4 Part 2 pp
Lec 3: Object-Oriented Data Modeling
Relating Use Cases popo.
Group Members Muhammad Zeeshan ( 16) Adnan Akhtar (4)
a generalization is a relationship between a general thing (the
Systems Analysis – ITEC 3155 Modeling System Requirements – Part 2
Object Oriented Analysis and Design Conceptual Model.
Domain Modeling.
Object Oriented System Design Class Diagrams
a generalization is a relationship between a general thing (the
Domain Model: Visualizing Concepts
Presentation transcript:

http://flic.kr/p/9RR1BL Domain Modeling

SWEBOK Knowledge Areas Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Models and Methods Software Quality Software Engineering Professional Practice Software Engineering Economics Computing Foundations Mathematical Foundations Engineering Foundations Today’s topic: Analysis

Analysis bridges the gap between requirements and design http://flic.kr/p/a1NZHb Analysis Requirements

Domain Model “Most important—and classic—model in OO analysis” –Larman, p131 Captures entities, attributes, and relationships in the problem domain Represented with UML class diagram Conceptual classes As opposed to software or implementation classes Acts as inspiration for some software classes Lowers representational gap Esp. for MVC model classes

Running Example: Point-of-Sale (POS) System http://flic.kr/p/4UtQzk

POS Domain Model Classes: concepts or entities in the problem domain (not software)

POS Domain Model Classes: concepts or entities in the problem domain (not software) Attributes: number or text properties of conceptual classes

Is it a class or an attribute? If we think of an idea/thing as a number or text in the real world, it is probably an attribute, not a conceptual class

POS Domain Model Classes: concepts or entities in the problem domain (not software) Attributes: number or text properties of conceptual classes Associations: relationships between classes

POS Domain Model How many Stores can an Item be stocked in? How many Items can a Store stock? How many Registers does a Store house? How many Sales LineItems per Sale? How many Sales LineItems can a particular Item be recorded in?

How to find conceptual classes: Noun phrase identification Identify nouns and noun phrases in descriptions of a domain Nouns = candidate classes or attributes Example (noun phrases bolded):

Tip: Think like a mapmaker Use existing names in the territory Exclude irrelevant or out-of-scope features Do not add things that are not there http://flic.kr/p/5QKvWh

Recall the Payment class There are different types of payments, like cash, credit, and check payments, and each type has some unique attributes How would you model the different payment types?

Answer: Use generalization superclass – more general concept subclasses – more specialized concepts generalization relationship (3 overlapping triangle-arrows) Payment

Generalization guideline: The 100% Rule 100% of the superclass’s definition should be applicable to the subclass The subclass must conform to 100% of the superclass’s attributes associations Payment

Generalization guideline: The Is-a Rule All members of the subclass set must be members of the superclass set Informal test: “A Subclass is a superclass” E.g.: “A CashPayment is a Payment” Remember this!!!

When to model subclasses? Would you model this?

Guideline: Model a subclass when… subclass has additional attributes of interest AND/OR subclass has additional associations of interest subclass is operated on, handled, reacted to, or manipulated differently in ways that are of interest subclass represents an animate thing (e.g., animal) that behaves differently in ways that are of interest

Payment You can have cash, credit, and check payments, but can you ever really have just a Payment?

No. Payment is what we call an abstract class as opposed to a concrete class

Abstract class indicated by italics

… or when drawing by hand use Payment Payment {abstract}

POS Example: Generalization Does this model obey: The 100% Rule? The Is-a Rule?

Activity: Create a Domain Model for Your Project Identify nouns and noun phrases—for inspiration USs are good starting place Collaboratively sketch class diagram Use as inspiration for MVC Model class design