Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: [xml-dev] What is coupling? [Was: 3 XML Design Principles]

From: Robert Koberg <rob@------.--->
To: "Roger L. Costello" <costello@-----.--->
Date: 2/1/2005 2:29:00 PM
Roger L. Costello wrote:
> Hi Folks,
> 
> Again, many thanks for the excellent comments.  I am working hard to
> assimilate all your comments, and will create a summary of all the
> discussion soon.
> 
> One question that several people asked was, "What do you mean by coupling?"
> Below I have made an attempt at defining coupling.  Do you agree with my
> definition?  Is it complete, i.e., are there other factors that should be
> incorporated into a definition of coupling?
> 
> Note that I have changed version #2 to this:
> 
> <Lot id="1">
>       -- info about the lot --
> </Lot>
> <Picker id="John">
>       -- info about the picker --
> </Picker>
> <Assignment picker="John" lot="1"/>
> 
> The Lot component just contains information about the Lot.  And the Picker
> component just contains information about the Picker.  The Assignment
> element connects the Lot and Picker.  ["Assignment" is not really the
> correct name.  Can someone think of a better name?]
> 
> Okay, now for my definition of coupling:
> 
> What is Coupling?
> 
> Definition: There exists a coupling between two components if there exists a
> "dependency" between the components.  The greater the dependency, the
> greater the coupling.
> 
> An obvious dependency is physical dependency.  In version #1 the Lot and the
> Picker are physically dependent (coupled) on each other:
> 
> <Lot id="1">
>       <Picker id="John">
>             .
>       </Picker>
> </Lot>
> 
> The Picker is a child of Lot.  The Lot is the parent of Picker.  There
> exists a definite physical co-dependency between the Picker and Lot
> components.
> 
> A more nebulous dependency is semantic dependency.  In version #1 not only
> does there exist a physical dependency, but there also exists a semantic
> dependency.  Namely, the Picker is located on the Lot.
> 
> Now consider version #2:
> 
> <Lot id="1">
>       .
> </Lot>
> <Picker id="John">
>       .
> </Picker>
> <Assignment picker="John" lot="1"/>


I would hate to have transform this... I would much rather have 
something like this:

 > <Lot id="1">
 >       .
     <picker ref="John"/>
 > </Lot>
 > <Picker id="John">
 >       .
 > </Picker>

Much easier to transform as you flow through the source(s) -- at least 
for me. Of course you have a very simple situation above. One situation 
in our CMS which is similar is assigning content pieces to regions in a 
page or folder (when assigned to a folder it cascades down to its 
pages). Content can be assigned to more than one page/folder so you 
definitely would not want your scenario 1. But order matters -- for 
example how would you structure something like:

<regions>
   <region name="main">
     <content ref="some-summary-piece"/>
     <content ref="some-content-piece"/>
     <content ref="some-callout"/>
     <content ref="some-content-piece2"/>
   </region>
   <region name="nav">
    <content ref="upcoming-events"/>
    <content ref="recent-news"/>
   </region>
</regions>

I can see how you could transform your scenario 2, but you have to 
always 'look stuff up' and you would have to add more attributes when 
the situation gets more complex rather than flow throw the source. In 
other words, normalize it out as much as necessary, but keep the 
hierarchy structured. Maybe this is why RDB oriented folk tend to find 
XSL so difficult -- they normalize things out flatly rather than 
hierarchically and find that presenting/transforming to different 
views/sources so difficult.

best,
-Rob


> The Lot and Picker components are physically completely separate.  There is
> no physical dependency.  The Assignment element creates a semantic
> dependency between the Lot and Picker, by identifying that the Picker is on
> the Lot.
> 
> So, in version #1 there exists both a physical and semantic dependency
> between the Picker and the Lot.  In version #2 there exists only a semantic
> dependency.  Thus, there is a stronger coupling between the Picker and Lot
> components in version #1.  We say that there exists a tight coupling between
> the components in version #1.  There exists a loose coupling between the
> components in version #2.
> 
> Comments?  /Roger


transparent
Print
Mail
Digg
delicious
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent