|
From the point of view of an object-oriented developer
data modeling is conceptually similar to class modeling. With data modeling you identify entity types whereas with
class modeling you identify classes. Data attributes are assigned to entity types just as you would assign
attributes and operations to classes. Traditional data modeling is different from class modeling because it focuses
solely on data – class models allow you to explore both the behavior and data aspects of your domain, with a data model
you can only explore data issues.
We use UML simple class diagram to represent
a Logical Data Model but by applying Agile's principle of multiple
models, it is possible to use other diagram.
Logical Data Models are used to explore the domain concepts, and their
relationships, of the problem domain. This could be done for the scope of a single project or for the
entire enterprise. LDMs depict the logical entity types, typically referred to simply as entity types, the data
attributes describing those entities, and the relationships between the entities.
A Fact Model represents structured business vocabulary with true statement
like: A customer places an order. The fact model looks like the Object Role Model described by Halpin (2001). When the
model starts to grow the notation become quickly invisible and no more helpful, so we do not encourage to follow the
notation.
A Fact Model should always include elementary
(atomic) fact type:
•
Noun: Customer, Order, Product
•
Verb: places, briefs
We may use Object Role Models to explore the
domain with project stakeholders but later replace them with a more traditional artifact such as an LDM, a class
diagram, or even a PDM
|