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

Slides:



Advertisements
Similar presentations
Chapter 9 Domain Models The classic OOAD model. Fig. 9.1.
Advertisements

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.
Chapter 9 Domain Models 1CS6359 Fall 2012 John Cole.
Chapter 9 Domain Models. Domain Model in UML Class Diagram Notation A “visual dictionary”
Systems Analysis and Design in a Changing World, Tuesday, Feb 27
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
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 8 Slide 1 Chapter 9 Structuring System Data Requirements.
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
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.
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 4 Domain Classes.
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 15: Object-Oriented Data Modeling Modern Database Management 9 h Edition Jeffrey A.
Domain Modeling Part2: Domain Class Diagram Chapter 4 pp part 2 1.
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.
Object-Oriented Data Modeling
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
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.
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.
TK2023 Object-Oriented Software Engineering CHAPTER 11 CLASS DIAGRAMS.
BTS430 Systems Analysis and Design using UML Design Class Diagrams (ref=chapter 16 of Applying UML and Patterns)
Elaboration popo.
The Enhanced Entity- Relationship (EER) Model
Chapter 9 Domain Models.
Methodology Logical Database Design for the Relational Model
Business System Development
DATA REQIREMENT ANALYSIS
The Movement To Objects
Domain Model: Visualizing concepts
Software Requirements
Domain Model Refinement
Domain Models Part 1
Today in OOAD Today in Lab Review EU-Lease Assignment (Vision)
Entity-Relationship Modeling
OO Domain Modeling With UML Class Diagrams and CRC Cards
CSSE 374: Domain Model Refinements and Iteration 3 Preparations
Advanced Java Programming
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.
Chapter 20 Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Understand and Use Object Oriented Methods
a generalization is a relationship between a general thing (the
Systems Analysis – ITEC 3155 Modeling System Requirements – Part 2
Software Requirements
Behavioral Modeling with UML
Domain Modeling.
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
a generalization is a relationship between a general thing (the
Software Requirements
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

Challenges: From Requirements to Design Developer not problem domain expert Lacks mental model User stories not unified model Can't see the forest for the trees Representational gap b/t requirements and design USs are text descriptions of features OO designs are interrelated classes of objects

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

Domain Model Captures entities, attributes, and relationships in the problem domain Represented with UML class diagram Conceptual classes not software classes Inspiration for software classes Lowers representational gap Key rationale for OOP

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? Objects have identity Two objects w/ same attribute values are still distinct Model as classes Data values do not have identity Numbers, strings, dates, etc. with same value are same Model as attributes

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

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 ▶ ▶

Associations Reading direction Multiplicities: Read as each Register records 0 or more Sales each Sale is recorded by exactly 1 Register Name

Examples of multiplicities Also common to see 0..* 8

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 ▶ ▶

Consider 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?

How to find conceptual classes and attributes: Noun phrase identification Identify nouns and noun phrases in descriptions of a domain (e.g., USs) Nouns = candidate classes or attributes

What about Verb Phrases? has-a can refer to association or attribute is-a often refers to generalization

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

Summary Domain modeling / OO analysis Associations / multiplicities Object identity vs data values Generalization relationships Abstract classes Noun phrase identification technique http://flic.kr/p/aCLor3