Elements Should Have Unique Names to Improve Clarity and Implementation
-
Key: RAAML11-1
-
Status: closed
-
Source: Gaphor Project ( Dan Yeaw)
-
Summary:
Many parts of RAAML are broken in to a Library and Profile. The Profile contains the Stereotypes, for example the definition of the <<AND>> stereotype for an AND gate. The Library contains a definition, for example that an AND Block with the <<AND>> stereotype is a type of Gate. In other words, RAAML often has two elements in the model in different namespaces but with the same name.
In the Gaphor tool, we autocode the model in to a Python datamodel. So far while implementing UML and SysML, we didn't have to name each Python class with the full namespace because the element names were always unique. With RAAML this is no longer the case, there are often two elements with the same name.
I think this can also cause confusion for users by duplicating names. For example, if someone is talking about the AND element, are they referring to the the stereotype or the block?
SysML v2 is starting to use two similar names for the definition and the usage, but the definition includes "def" in the name. For example, the definition of a part is a "part def" and the usage is a "part". I would recommend we use something similar for RAAML. the definition of the AND gate could be "AND_Def", and the stereotype could be "AND".
The duplicated names include:
Gate, AND, BasicEvent, Cause, ConditionalEvent, DormantEvent, Early, FMEAItem, FailureMode, HouseEvent, INHIBIT, Late, MAJORITY_VOTE, NOT, OR, SEQ, TopEvent, UnsafeControlAction, XOR, ZeroEvent. -
Reported: RAAML 1.0b1 — Sun, 28 Feb 2021 17:30 GMT
-
Disposition: Closed; No Change — RAAML 1.1
-
Disposition Summary:
Generator implementation should ensure element name uniqueness in python
Generator implementation should ensure element name uniqueness in python or any other language. Lumping two UML namespaces (Profile and Library) into a single python namespace causes element name uniqueness problems. This can be solved by adding prefixes or postfixes to generated python names or by separating generated content into separate packages/files.
-
Updated: Mon, 17 Jun 2024 13:38 GMT