Book a Demo

Author Topic: Components and embedded Elements  (Read 5697 times)

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Components and embedded Elements
« on: June 28, 2006, 05:37:25 am »
While having a look at Tony Evan's problem with Interfaces and Components Component/ports/interface + Comp. internals Model, I was playing with EA's implementation of the the [size=13]UML 2.0 Superstructure (formal)[/size] Specification (and, as far as I can see, the [size=13]UML 2.1 Superstructure (interim)[/size] Specification)  in this area.

First some assertions (which may or may not be correct - I'd appreciate some guidance):

With respect to Components, a Part is an instance of a base Classifier in a certain role.  A required or provided Interface is an instance of an base Interface in a one of two roles (provided or required).  A Port is an instance of a base Classifier, again in a certain role.

From EA's behaviour, it would appear that a Part MUST always be an instance of a base Classifier, while a Required/Provided Interface or Port are, by default, not attached to a base Classifier.  Once attached to a base Classifier however, they must REMAIN attached to an Classifier.  That is, the type of the Property cannot be reset to <none>.

From the Superstructure document it can be seen that a Component may expose an Interface directly or via a Port.

EA's rendering of the Assembly connector seems a little amiss.  The UML specifications show the ball and socket icon only for Assemblies that connect Components or Ports directly.  Where an Required Interface is connected to a Provided Interface, the UML specification seems to require a simple dependency to link the Required Interface to the Provided Interface.  NOTE: I'm talking only about rendering here.  It would seem appropriate that the Assembly dependency have a rendering toggle to render the Required Interface, Assembly Dependency, Provided Interface combination as an Integrated Assembly rendering or as the individual items.

It would appear that Ports are optional.  Since you can run a Delegate directly from an Interface to a Part or another Interface.  (Although I think I found a few bugs in the linkages here)

There doesn't seem to be any way to connect/disconnect an existing Required/Provided Interface to/from and existing Port.  Is that correct?

TIA,
Paolo

[Note: Edit to replace Class and Element with Classifier - to comply with UML specification]
« Last Edit: June 28, 2006, 06:49:47 am by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Components and embedded Elements
« Reply #1 on: June 28, 2006, 06:11:45 am »
Hi Paolo and all,

Regarding
Quote
There doesn't seem to be any way to connect/disconnect an existing Required/Provided Interface to/from and existing Port.

Do you mean within EA, or within the UML 2.x superstructure?

[I don't have an answer handy in either case, but I'd like to better understand the scope of your question.]

EDIT: BTW, you mention
Quote
a Part is an instance of a base Class in a certain role.
I remember seeing a broader interpretation of this - that a part could be essentially anything, or perhaps any classifier. After thinking about this, I don't know if I got this from OMG directly. Until I remember the source, or go through the 2.x specification in detail, I cannot say for sure if this might affect this discussion. I'll try to dig this up and determine if it is in any way 'official.'

David
« Last Edit: June 28, 2006, 06:18:11 am by Midnight »
No, you can't have it!

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Components and embedded Elements
« Reply #2 on: June 28, 2006, 06:47:07 am »
Quote
Do you mean within EA, or within the UML 2.x superstructure?
Hi David,

I meant within EA.  I don't think the UML needs to say anything at all on this.

I guess, however, that it's worth observing that I'm talking about:

1) Connecting an existing Interface connected directly to the Component being connected via a Port
2) Disconnecting an existing Port-connected Interface so that it connects directly to the Component

BTW: it would seem appropriate to also allow a Port-connected Interface to change the Port it's connected to.

Also, I think you're right about a Part being any Classifier.  Certainly EA allows that.

I'll edit the original posting...

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!