Slide 07

advertisement
Domain Modelling
Presented By
Dr. Shazzad Hosain
Domain Models
 A domain model is a visual representation of conceptual classes
or real-world objects in a domain of interest.
 Identifying a rich set of objects or conceptual classes is at the heart
of object-oriented analysis
 In domain model no operations are defined. It may show
 Domain objects or conceptual classes
 Associations between conceptual classes
 Attributes of conceptual classes
Domain Model, a Visual Dictionary of Abstractions
Domain Models are not Models of Software Components
Domain model shows conceptual class, not software class
Domain Models and Decomposition
 In structured analysis the dimension of decomposition is by
processes or functions.
 In OO analysis the division is by conceptual classes or objects.
 Example conceptual classes in the Sale Domain
Conceptual Classes
1. A conceptual class is an idea, thing or object.
2. It may be considered in terms of its symbol, intension and extension
Conceptual Class Identification
 In incremental model iteratively identify classes rather than
identify all classes at the beginning.
 For example, if the iteration is limited to cash-only ProcessSale
scenario, then create domain model only for this one
 It is better to overspecify a domain model with lots of fine-grained
conceptual classes than to underspecify it.
Strategies to Identify Conceptual Classes
 Use a conceptual class category list
 Identify noun phrases, though need some art
Main Success Scenario (or Basic Flow):
1. Customer arrives at the POS checkout with goods and/or
services to purchase
2. Cashier starts a new sale
3. Cashier enters item identifier
4. …………
Conceptual Class Category List
Conceptual Class Category
Examples
Physical or tangible objects
Register, Airplane
Places
Store, Airport
Transactions
Sale, Payment, Reservation
Organizations
SalesDepartment, ObjectAirline
Rules and policies
RefundPolicy, CancellationPolicy
Things in a container
Item, Passenger
……
…….
Table 10.1 Conceptual Class Category List
Candidate Conceptual Classes for the
Sales Domain, an Example
Manager
Register
Cashier
Item
Payment
Store
ProductCatalog
Sale
Customer
ProductSpecification
There is no such thing as a “correct” list. It is somewhat arbitrary
collection of abstractions.
On Naming and Modeling Things:
The Mapmaker
 Make a domain model in the spirit of a cartographer
or mapmaker
 User the existing names in the territory
 Example, use “Borrower” or “Patron” for customer in
library domain
 Exclude irrelevant features
 Pen and PaperBag may be excluded from sales domain
 Do not add things that are not there
A Common Mistake in Identifying
Conceptual Classes
 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.
 Example: Should Store be an attribute of Sale, or a separate object
 Should destination be an attribute of Flight, or Airport be a
separate object
Resolving Similar Conceptual Classes
 Register vs. POST (point-of-sale terminal)
A domain model is not absolutely correct or wrong, but more or less useful; it is
a tool of communication
Specification or Description
Conceptual Classes
Worse
Better
 Assume that, Item instance represents a physical item in a store;
 An item has a description, price, itemID which are not recorded any-
where else.
 Every time a real physical item is sold, the corresponding Item
instance is deleted from “software land”
Another Specification Example
 Let an airline company suffers a fatal crash of one of its planes
 Consequently cancels all flights for investigation, delete Flight
instances, no longer a record of what flight routes the airline has
Descriptions of Services
 Flight example is about a service rather than a good (such as a
veggieburger item)
 Descriptions of services or service plans are commonly needed
 Another example: A mobile company sells difference packages
such as “bronze”, “gold”, “dijuce”, “nababi call rate” etc.
 So you need a description class separate from an actual sold
package.
Modeling the Unreal World
 Some software system has little analogy in real world e.g. software
for telecommunications.
 Still you can create a domain model.
Message
Connection
Route
Protocol
Port
Dialog
UML Notations, Models and Methods:
Multiple Perspectives
class
Domain concepts / conceptual class
Software / design class
Implementation class
e.g. Java Class
Lowering the Representational Gap
Domain Modeling Guidelines
 List the objects using category list and noun phrase identification
technique
 Draw them in a domain model
 Add associations necessary to record relationships
 Add attributes in necessary
Domain Model: Adding Associations
Associations
 An association is a relationship between types (or more
specifically instances of those types) that indicated some
meaningful and interesting connection.
Criteria for Useful Associations
 Knowledge of a relationship that needs to be preserved for some
duration – may milliseconds or years, depending on context. These
are known as “need-to-know” associations.
 Example: Do we need to remember SalesLineItem instances for
Sale instance.
 Example: Relationship between Sale and Manager?
 If n different objects then n*(n-1) associations. Be parsimonious.
 Associations derived from the Common Association List
UML Association Notation
Finding Associations –
Common Association List
Category
A is a physical part of B
A is a logical part of B
A is a description for B
A is a member of B
A communicates with B
A is owned by B
……..
Examples
Drawer – Register
Wing – Airplane
SalesLineItem – Sale
FlightDescription – Flight
Cashier – Store
Pilot – Airline
Customer – Cashier
Plane – Airline
………….
Table 11.1 Common Association List
Roles
 Each end of an association is called a role. Roles may optionally
have:
 Name (will discuss latter)
 Multiplicity Expression
 Navigability (will discuss latter)
Multiple Associations
 Two types may have multiple associations
Naming Associations
 TypeName –VerbPhrase – TypeName format where the verb phrase creates
a sequence that is readable and meaningful in the model context
 Should start with a capital letter
 Two common and equally legal formats for a compound association
name are:
 Paid-by
 PaidBy
How Detail Should Association Be?
 Finding conceptual classes is more important than finding
association. The majority of time spent in domain model creation
should be devoted to identifying conceptual classes, not
associations.
NextGen
POS Domain
Model
Suggestions
 Focus on need-to-know associations
 Avoid redundant or derivable associations
Domain Model: Adding Attributes
Attributes
 An attribute is a logical data value of an object
 Keep attributes simple
 E.g. Boolean, Date, Number, String, Time
 Other examples are Address, Color, Universal Product Code (UPC) etc.
 Relate conceptual classes with an association, not with an attribute
Examples
Non-primitive Data Type Classes
 Represent as non-primitive class if
 If composed of separate sections
 Phone number, name of person
 There are operations usually associated with it, such as parsing /
validation
 Social security number
 It has other attributes
 Promotional price could have start date and end date
 It is a quantity with a unit
 Payment amount has a unit of currency
 It is an abstraction of one or more types with some of these qualities
 Item identifier may be UPC or EAN (European Article Number)
Where to Illustrate Data Type Classes?
 A domain model is a tool of communication; choices about what is
shown should be made with that consideration in mind.
Design Creep: No Attributes as Foreign Keys
 Relate objects with an association, not with an attribute
Modeling Attribute Quantities and Units
 Most numeric quantities should not be represented as plain
numbers. Consider price or velocity that are associated with units.
Multiplicity From SalesLineItem to Item
 Derived attribute indicated with a “/” symbol
Domain Model
Conclusion
NextGen POS
System Model
References
 Chapter 10, 11, 12 of “Applying UML and Patterns – An
Introduction to Object-Oriented Analysis and Design and the
Unified Process” – by Craig Larman
Download