Business Modeling Business Modeling
Domain Modeling Domain Modeling
Source: Use Case Driven Object Modeling with Source: Use Case Driven Object Modeling with
UML – A Practical Approach UML – A Practical Approach
By By
Doug Rosenberg
Doug Rosenberg
ISBN: 0-201-43289-7
ISBN: 0-201-43289-7
Background Background
A key component of Business Modeling A key component of Business Modeling is creating the Domain Model
is creating the Domain Model
– Contains Key Abstractions present in the Contains Key Abstractions present in the problem domain.
problem domain.
Prior to embarking on Use Case Prior to embarking on Use Case
Modeling, we need to understand the Modeling, we need to understand the
key entities in the problem space.
key entities in the problem space.
Put our Approach into Perspective Put our Approach into Perspective
Three schools of thought in the OO community for Three schools of thought in the OO community for developing systems.
developing systems.
1. Data centered approach 1. Data centered approach
– Derived largely from ER modeling Derived largely from ER modeling – Method includes ERDs, DFDs, STDs. Method includes ERDs, DFDs, STDs.
– Method decomposes a system along data boundaries. Method decomposes a system along data boundaries.
2. Structural approach 2. Structural approach
– Start with OO programming perspective and work up Start with OO programming perspective and work up – Good for detailed design and coding; not much analysis Good for detailed design and coding; not much analysis
3. Scenario-based approach – grounded in usage 3. Scenario-based approach – grounded in usage scenarios.
scenarios.
– Decomposed a system along usage boundaries. Decomposed a system along usage boundaries.
We really combine all of these, but especially We really combine all of these, but especially Jacobson’s Objectory process (
Jacobson’s Objectory process ( RUP) and also RUP) and also OMT (Rumbaugh) for high level static modeling OMT (Rumbaugh) for high level static modeling
(preliminary design), and Booch for detailed static (preliminary design), and Booch for detailed static
and dynamic modeling…
and dynamic modeling…
Fundamental Questions – to Fundamental Questions – to
Always Guide your Activities Always Guide your Activities
Who are the users of the system (actors) and Who are the users of the system (actors) and what are they trying to do?
what are they trying to do?
What are the ‘real world’ (problem domain) What are the ‘real world’ (problem domain) objects and associations between them?
objects and associations between them?