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.

Reply via email to