I salute Bill, very clear.
"Business Objects" which separate behavior from data and emphasize on the
behavior are quite close to the services that stress on operations. Since
behavioral 'objects' do not adhere to the encapsulation principle; I would
classify them as services rather than OO objects.
I totally agree with "... objects contain behavior and data. Focus on the
former, not the latter and the domain model will support change". Moreover, if
you can make support for the behavior coarse-granular, you get real Business
Service in my understanding of it. In other words, if an 'object'/service can
accomodate changes in behavior without necessity to change itself or its
environment (like Command Pattern), it is the SOA business service.
- Michael
Bill Barr <[EMAIL PROTECTED]> wrote:
Businesses are already organized in an object-oriented manner. The disjunction
exists in our poor ability to accurately model the business due to our lack of
understanding of the business. Choose the correct abstractions and size the
domain objects correctly and the business will be modeled correctly and
flexibly. Allow me to illustrate.
Customer, Product and Order are usually incorrect abstractions.
Customer is not an object, it's a role that a Person object participates in.
The same Person can be a Spouse, Employee, Vendor, etc. These are not subtypes
of the same person, as in a hierarchy. That would require cloning. It's the
same person, acting differently according to a context.
Product is also not an object. It's a euphemism for an Artifact/Part or Labor.
A Product includes packaging, presentation, etc. See the decorator pattern.
Artifacts, in turn, are both composites and aggregates of Parts.
Order really isn't an object, either. More precisely, it's an aggregate. Most
modern programming languages support aggregates as objects but not all
languages do. An order is a collection of line items each containing a quantity
of Artifacts and/or Labor.
Remember, objects contain behavior and data. Focus on the former, not the
latter and the domain model will support change. Also recall that models are
not static, they are flexible. Additionally, software is malleable, unlike
hardware.
Just some food for thought ...
--
Bill Barr
Michael Poulin <[EMAIL PROTECTED]> wrote:
Hi Robin,
I have looked into the nakedobjects.org and announced principles again. They
do not answer my question. I asked for an example of BUSINESS being organized
in OO manner, not how a business might be modeled.
With all respect to participants of the nakedobjects.org , I take this as
another IT attempt to put a cart ahead the horse, i.e. create an IT view on the
real business world. Statements like "A business system should be designed
using behaviourally complete domain objects" direct modeling off the business
world reality because "The domain objects represent the nouns or entities in
the business domain (such as Customer, Product and Order). Behavioural
completeness means that all of the behaviours or functionality associated
with a Customer should be implemented as methods on that object" is simply
inadequate to the modern business world. Why? Because the market today is not
static or relatively static as it was several years ago.
As a result, a model which has pretensions to reflect the business must provide
top level flexibility, adaptability, extendability, i.e. TO BE DESIGNED FOR THE
CHANGES. If a domain object encapsulates "all of the behaviours or
functionality associated with" it, this makes it clumsy and requires constant
changes to keep up with the business needs. This is exactly what we have today
and this is the reason for SOA to appear very these days, not earlier, i.e. it
is a reflection of the fact that the business dislikes such model, it slows
down business evolution/progress.
I could elaborate more on what the nature of business "objects" is needed today
but it is a subject of different discussion.
- Michael Poulin
Robin <[EMAIL PROTECTED]> wrote:
You will find good examples of OO business models
made for business
people in the Naked Objects area http://www.nakedobjects.org/book/
Important to mention that the intention to open OO concepts to
business people was not the #1 priority at that time.
Best regards.
Robin Mulkers
--- In [email protected], Michael Poulin
<[EMAIL PROTECTED]> wrote:
>
> Just out of curiosity, can anybody point me to an example of live "OO
> business concept"?
>
> I would agree with Jerry - we have the disconnection between the
business and IT now (and trying to fix it using SOA) partially because
IT evangelized OO and has forgotten to tell business that "We must
have OO business concept for object technologies to be useful"...
>
> - Michael
---------------------------------
Ahhh...imagining that irresistible "new car" smell?
Check out new cars at Yahoo! Autos.
--
Bill Barr
---------------------------------
Don't get soaked. Take a quick peak at the forecast
with theYahoo! Search weather shortcut.
---------------------------------
Ahhh...imagining that irresistible "new car" smell?
Check outnew cars at Yahoo! Autos.