Improve component port declaration
Source: THALES ( Thomas Vergnaud)
Component ports in UCM are specified by 3 parameters:
- a name
- a définition
- bindings to actual types if need be
UCM defines a set of nested classes in the meta-model, which makes the XML syntax verbose. See for example:
Three nested XML tags are necessary: port, typeSpec and binding.
The specification of data binding is nested in the port declaration. Although it is a clean way to specify bindings, it brings two issues:
- users have to write the binding specification for each port; a binding cannot be written once and used for several ports, which would be simpler
- it is difficult to implement efficient code generators: a naive generator will generate specific code for each port instead of for each unique binding; this leads to redundant code.
It would be better to write something like this:
Also, when refining a component type, ports can be refined. By “refined”, one must understand “redefined”: UCM actually allows a complete port redefinition; no shared data or semantics is required between the original port and its refinement.
Reported: UCM 1.0b2 — Mon, 23 Oct 2017 13:53 GMT
Updated: Tue, 9 Jan 2018 13:47 GMT