Book a Demo

Author Topic: Domain Objects vs Business Objects ... Your views  (Read 10152 times)

Certainty

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Domain Objects vs Business Objects ... Your views
« on: June 30, 2008, 11:52:21 pm »
Hi,

I'm just really getting into EA and I'd like to get some idea as to the consensus out there regarding these 2 types of objects.

My take is that the Domain Objects give me the context and extent of the model (or system under discussion - SUD), and as soon as I start to decompose these entities I should move the decompositions into the Business Objects area.

What's your take on the difference?

Cheers

Martin Spamer

  • EA Novice
  • *
  • Posts: 7
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: Domain Objects vs Business Objects ... Your vi
« Reply #1 on: July 01, 2008, 01:41:54 am »
To me "Domain Object" is very well defined.  It is the noun that describes the straightforward classifier of the modelling artifact that appears on a UML Domain Model.

I have no idea what you mean by "Business Object".  It is ambiguous, and largely depends on the context.  It could be just a description, it also reminds me of the EJB pattern of the same name, but also reminds me of the data mining/reporting tool.

Martin
« Last Edit: July 01, 2008, 01:45:29 am by Martin_Spamer »

Certainty

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Re: Domain Objects vs Business Objects ... Your vi
« Reply #2 on: July 01, 2008, 02:18:53 am »
Thanks for the reply.

I'm trying to get a handle as to what level of analysis goes into which area of my EA project. My Analysis model tree has the following nodes:
 - Business Domain Model
    - Business Context
    - Domain Objects
 - Requirements Model
    - Functional Requirements
    - Non-functional Requirements
 - Business Process Model
    - Business Objects
    - Business Workflows

To that end, I've been using the Domain Objects to clarify what the top-level entities are, along with any relationships. This model adds to the glossary and also helps me set the business context for the requirements.

By contrast, the Business Objects, as I understand them, are used within the business workflows to illustrate a high-level summary illustration of the Use Cases, and also form the embryonic classes, which appear within the Design model.

I feel that there is a degree of overlap between my understanding of Domain and Business objects, and I guess the latter greatly depends upon the usage of the Business Process Model and whether or not it appears in one's project.

Thomas Mercer-Hursh

  • EA User
  • **
  • Posts: 386
  • Karma: +0/-0
  • Computing Integrity
    • View Profile
Re: Domain Objects vs Business Objects ... Your vi
« Reply #3 on: July 01, 2008, 04:31:00 am »
Not that I have any pretense of expertise, but to me these shifts in vocabulary are indicators of a shift in context.  For some projects and some designers, the entities defined as domain objects may end up having an extremely strong correspondence to what eventually gets defined as classes and even to what is deployed as components.  But, on other projects and with other designers, there can be shifts along the way as further thought and consideration leads to repackaging and the discovery of the need for new elements.

Think of it as moving from one room to another where each room has its own vocabulary and purpose.  One expects some kind of traceable relationship from the elements in one to the elements in the other, but they are not identical because the context and purpose is different.

Certainty

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Re: Domain Objects vs Business Objects ... Your vi
« Reply #4 on: July 01, 2008, 02:20:20 pm »
Thanks for your input Thomas, but you lost me a bit with your metaphor. Could you please illustrate your contrast with an example?

If I understood you correctly, you are saying that the contexts are different between the two types of object, which I believe I understand. To me, the Domain context is what I can know about the business and its operation from observing it from the 'outside', as it were. Contrast this then with the Business context, which I believe is what I can know once I am 'inside' the business. Thus, for me at least, the context is my location - what I can know whilst being outside or inside the business.

Could you please be specific about what you mean regarding 'context'?

At the risk of answering my own question, I think that I may have just had one of those loud, 'penny dropping' moments ... :-)

Within any model, the 'context' of a contained package is whatever 'slice' I choose to take across the business, to illustrate entitites and their relationships. Such a package would display only as much information as would give clarity to the dimension being captured. Indeed, many such packages may be required in order to give a rich understanding of what is; together with an overview that would neatly tie all of the parts together.  
« Last Edit: July 01, 2008, 02:45:51 pm by Certainty »

Thomas Mercer-Hursh

  • EA User
  • **
  • Posts: 386
  • Karma: +0/-0
  • Computing Integrity
    • View Profile
Re: Domain Objects vs Business Objects ... Your vi
« Reply #5 on: July 02, 2008, 02:24:34 am »
Somehow I had a feeling that metaphor wasn't going to fly ... :)

But, at the same time I don't know that I would go with the inside/outside comparison either.

Really what I mean by context is the kind of analysis that one is doing at that point.

Certainty

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Re: Domain Objects vs Business Objects ... Your vi
« Reply #6 on: July 02, 2008, 06:25:23 pm »
Quote
Somehow I had a feeling that metaphor wasn't going to fly ... :)

It was a sterling effort though ... :)

When the penny dropped, I think I 'got' what you're saying the context being the analysis at that point ... My stab at a metaphor would be the 2-D architectural drawings of a 3-D building ... The 2-D Isometric plan view and elevations are trying to convey sufficient information as to establish an understanding of what it is that we are to build ... In this metaphor, one context would be the front elevation, another a side elevation and a final context would be the plan view. Yet another would be the plumbing, another would be the wiring and another could be the heating or air conditioning systems ... It would be from these 'views' that a 3-D model would be constructed.

In a former life I was a mechanical engineer and we'd use 2-D plans to quickly establish an understanding of how to move sufficient liquid around a site (from irrigation to gas refineries). But they lacked sufficient detail for us to carry out a build on a complex system (multi-levels & multi-systems), which is where the 3-D modelling came into its own ... Using the 3-D models, we could spot pipe clashes for example, and work out the loading on the support structures that were to be designed, allowing a modular off-site build to take place.

I'm really starting to understand the difference between a view and a model :)

As regards the 'inside vs outside' comparison, I'll offer the following instead ...

Using my building anology above, the Domain model now feels like a plan view (in one context), illustrating the perimeter of the site, showing the services to be connected to - sewage, gas, electricity. Another context would show the site elevation, or slope that we're building on, so that we can get everything level and the water doesn't run out of the shower ...  :D ... Another might be the material composition of the ground (a geological survery, equating to an IT Topology), so that we know how deep to drive the foundations and where the water table is ... Whilst the individual views may show some detail of the objects being built - the house, the garage, the swimming pool, etc) - these probably wouldn't be decomposed and would would only be used to suggest 'locality' infomation, such as relative positioning ... Therefore, each view would be a context in its own right, combining to produce a model (a 3-D walkthrough perhaps) against which data can be tested - can we get drain the swimming pool, if we need to, without contaminating the local water supply, or flooding the house? (Top tip: never place a swimming pool on higher ground than your house ...  ;D)

From this understanding, we can then start to dive into the views themselves, and begin to decompose the domain model into the business model. An example would be to decompose the house into rooms (object views), which would illustrate the house as a collection of room objects, each serving a different purpose and containing other objects (i.e. their own contexts). Some may even have relationships, such as a bedroom and en-suite bathroom, the hallway connecting various rooms. On the dynamic side, we have the systems, such as electrical, heating and sewage.

The drawings that I've seen layer the systems over the objects so as to build up a model that we can test with questions, such as, will I have enough sockets in the same location in living room, without relying on extension cables, for my plasma TV, kick-ass sound system and my X-Box?

What's interesting for me is the elegance with which the relationship manifest between the models. For example, whilst working within the business model, I'm starting to get a bit nervous about the number of wall sockets that could be used throughout the house as people plug in their stuff, so I need to ensure that my mains supply is up to the feed. I might need to upgrade my distribution panel and perhaps even feed the house, the garage and swimming pool heating and filter system from the same panel. This could affect the location of the panel.

A reference from the business model to the domain model might be to answer the question, where will be the best place to put my electrical distribution panel? I may wish to have this in the garage and would therefore choose to locate the garage close to the underground mains supply, as illustrated within the domain model. Alternatively, and if I had the budget available to do it, I could have the electricity board come in and extend the mains incommer to where I wanted the garage to go ... But by modelling the project, I can begin to understand the ramifications of various decisions within the project, modelling the outcomes before a single line of code is ever written.

This seems to work for me, but as ever, I'm open to refinements ...  I'm really warming to the idea of being an Enterprise Architect ...  :)