Hi there!
The new Packaging Components in 7.5 solve a number of problems for me, particularly relating to CM - a pedestrian subject of which the lofty ideals of the UML specification remain serenely aloof.
However, I would like to be able to counter the arguments from the UML purists (of which I am one, as it happens). So how does the Packaging Component relate to the UML elements? Specifically, how does it relate to Package and Component? Which characteristics does it take from which?
Cheers,
/Uffe
Well Uffe, here's my take on the subject...
I've previously posted that the UML is rather Schizophrenic with regard to the nature of Packages. (See:
Schizophrenic Components &
Package Structure)
The basic problem comes about that packages are BOTH simple containers and Namespaces (actually, as we read it UML 2.1 really only mentions namespaces - that is a Package IS a namespace). As Thomas Mercer-Hursh points out, it may be that OMG were too lazy to add a namespace element in
addition to the
organizational Package from UML 1.
There's no way to organize (group) UML elements below the level of an element. So we (at Ripple and now at Proteus) decided to use a Node Component to allow us to do this. The Packaging Component now appears to perform this function. The Node component was appropriately stereotyped and not used for anything other than grouping. However it didn't stand out as well in the browser as does the Packaging Component.
Since (at least in my view) it is a simple container, it would have been better to actually allow packages to exist below the element (in which case they can't be namespaces) but that might "break" UML too much. So, a packaging component appears to be a
reasonable compromise.
BTW, I don't think it really relates to either the Package or the Component - except in the conceptual way I've outlined above... It has the structure of a Component, but the behaviour of a Package (you get a FREE diagram). It's just a VERY USEFUL kludge to get around some UML klutziness...
In addition, elsewhere I've argued for the ability to suppress the namespace attribute of a package to allow it to merely be a grouping container. The packaging component
doesn't address this aspect.
Does that help?
Paolo
Manage Complexity,
. . Reduce Ambiguity,
. . . . Eliminate Inconsistency! TM