[
Lists Home |
Date Index |
Thread Index
]
- To: "'XML Developers List'" <xml-dev@lists.xml.org>
- Subject: What is coupling? [Was: 3 XML Design Principles]
- From: "Roger L. Costello" <costello@mitre.org>
- Date: Tue, 1 Feb 2005 07:35:09 -0500
- In-reply-to: <15725CF6AFE2F34DB8A5B4770B7334EE07206BA5@hq1.pcmail.ingr.com>
- Thread-index: AcUH2+8QuwDi0enUS3iQlCDuTAhzpQAfNZ6A
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"/>
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
|