I'm trying to provide an EA 'sandbox' where designers can try-out new ideas for components, based on pre-defined (read-only) existing ones.
The existing ones have lots of Provided- and RequiredInterfaces defined, with lots of operations on those interfaces.
What I was expecting to do was have them
- create a Generalization of the existing component, so that they don't break anything
- then add/modify interfaces/operations of the new Component
Mostly, though, they will just be
re-using existing Interfaces (and their operations) from the parent.
But EA doesn't seem to inherit the ProvidedInterfaces of the parent. I'd imagined that anything which inherits from a parent inherits
everything: operations attributes
and implemented interfaces as well.
Any operations defined in the parent component are inherited just fine - of course - but I was surprised that the ProvidedInterfaces were not inherited as well.
Is this a gap in my understanding of (1) UML or (2) EA, or (3) just a funny in EA ?
The only way I can seem to get around this is to either
- create the ProvidedInterfaces all over again, on each of the inherited Components, which rather means there is no point inheriting the Component in the first place.
or
- doing a Copy/Paste of the parent element. This correctly copies the Provided- and Required-Interfaces. But now I've lost the fact that the new Component is related to the parent.
In both cases, if the parent changes, the children (copies) don't know. :-(, which is exactly what inheritance solves.