UML-YANG tooling discussion is still underway in O-RAN and more meetings will be held next week.
no real update - > update will be given if there is in update - considered as done for now
Refreshed Action Items
none
3
15 min
Add values to an existing core-model enumeration
Martin
the ONF OTCC 5G-xHaul group would like to get guidance how to add microwave specific layer-protocol-names to core-model:layer-protocol-names (e.g. microwave-physical-section, microwave-section, ....). More abstract: How can a conditional package add values to an existing (extensible) core-model enumeration?
To demonstrate, create a enum and then extend the enum using either specify or generalization. Determine how to display this in GenDoc. Determine the guidelines needed to convert this structure to YANG. Initial thoughts are to ensure isLeaf = false so Identity is used in YANG. For example the core model enum would be the base and the specify or generalization would extend the base identity.
Scott Mansfield Demonstrate small example of enums with gendoc
4
22 min
UML modeling guidelines questions from ITU-T Q14/15
Italo
<specify>
Decision expected from IISOMI
Concern on augment rules
UML/YANG Guidelines should be improved(?)
keep text in UML to YANG Guidelines
UML Guidelines RootElement
multiplicity: 0 or 0...n or * → the root element is optional
multiplicity: 1 or n or 1..* or n ... * → root element is mandatory
multiplicity: n...*, n → root element is a list (not in container)
Update in mapping Guidelines expected
Discussion to be continued ....
suggestion: manual adoptions after yang generation
Examples about RootElement representation in YANG (thanks Italo)
/tapi-context/tapi-topology-context/topology[uuid=<topology-uuid>]
/topologies/topology[id=<topology-id>]
container example {
presence
"Presence represents <condition>"
leaf foo {
type string;
mandatory true;
}
leaf bar {
type string;
}
}
container example {
leaf is-present {
type boolean;
default false;
description
"Represents <condition>";
}
leaf foo {
type string;
mandatory true;
when ../is-present;
}
leaf bar {
type string;
when ../is-present;
}
}
leaf bar {
type string;
when true() {
description
"<UML condition>";
}
}
In particular, if I understand correctly, for the root element object class (i.e., red element), the format is actually not “[/<ModelName>:<ClassName>:<navigable association end role name>]” as indicated in the UML guidelines v1.3.03 but it is in the format of “[/<ModelName>:<ClassName>:<name of the RootElement stereotype>]”
Model Name or Prefix
2022-01-21:
Italo Busiindicates that theUML guidelineis not requiring the undescore in thenameof theRootElementstereotype, while the examples in theUML to YANG guidelineinclude the undescore (e.g. TAPI currently has "_context"). It is recommendable to clarify and align the guidelines.
In particular, for the root element object class (i.e.,red element), the format is actually not “[/<ModelName>:<ClassName>:<navigable association end role name>]” as indicated in the UML guidelines v1.3.03 but it is in the format of “[/<ModelName>:<ClassName>:<name of the RootElement stereotype>]”, e.g.
The referencing mechanism used in the target path identifies each element in the path by going one step up the path (hierarchy) to find the referencing attribute from the class that references the class to be identified. This works for all but the root entity (where there is clearly nothing one step up the path hierarchy). This is why an artificial role end was used reference the root entity.
This is conveyed in the <<RootElement>> stereotype as shown above. It is as if a class Context references the TapiContext via a composition with a navigable attribute _context. The class "Context" does not exist in the model. Both the class name "Context" and its reference are derived from the value of the name in the <<RootElement>> Stereotype (i.e., "_context") where the class name is an upper camel form of the string with the "_" removed.
The mechanism should be described more clearly in the modeling guidelines.
Andrea MazziniBernd Zeuner: To improve the explanation of target sterotype string content formation by
Remaining issue
Italo's second question "Should we use the module name (i.e., IetfPtp) or the module prefix (i.e., ptp) or either option?"
Only briefly discussed. No definitive conclusion yet.
It seems that in UML it should be the module name, and the mapping tool will then maps the module name to the module prefix.
2022-02-04:
Bernd shared his off-line email discussion with Andrea on how to improve the explanation in section 5.4.3/TR514.
In his off-line discussion, Bernd raised a question on second part (yellow highlighted)of the path.
No conclusion reached from the long discussion. Will continue the discusion in the next call.
On Italo's second question "Should we use the module name (i.e., IetfPtp) or the module prefix (i.e., ptp) or either option?"
Agree that in the UML model, the module name should be used because module prefix is a YANG term.
In order to be able to compose the target path of the two «Specify» relationships the class diagram below has been extended with the greyed out "non existing" object class and composition relationships.
Andrea Mazzini will draft rules for the UML Modelling Guidelines for creating the target paths; this is part of the existing action item "Improve explanation of target sterotype string content formation in the UML Guidelines". Discussion will continue in two weeks.
8
0 min
UML Modeling Guidelines
Italo
UML modeling guidelines
Convention for the name of the non-navigable member ends of an association
Have seen cases where these member ends do not have names, cases where they have LCC names and cases where they have names following the same convention as navigable attributes (_ + LCC)
Cardinality for conditionally mandatory associations: should it be 1 or 0..1?
2022-02-04: No discussion. Deferred to 2022-02-11
9
0 min
Papyrus Releases
Papyrus Releases
Consider a plan for convergence of ITU-T Q14/15, ONF Common IM and TAPI to 2020-06 (4.16) version
November 19 discussion: The TR-512 v1.5 Core model was developed using Eclipse 2019-09. It the model can migrate to 2020-06 seamlessly, Q14/15 might move G.7711 v4.0 (12/2021 consent) also to Eclipse 2020-06. To verify the seamless migration:
Nigel Davis Try to move TR-512 v1.5 core model to 2020-06 (4.16) Eclipse
Hing-Kam LamTry to move TR-512 v1.5 core model to 2020-06 (4.16) Eclipse
2021-12-03:
from Kam - diagrams from TR-512 v1.5 core model on 2020-06 (4.16) Eclipse looks fine
proposal for next week ITU-T: IISOMI moves to 2020-06, because gen-doc works find
TAPI will follow after some tests will be done by Andrea Mazzini
Nigel Davis Try to move TR-512 v1.5 core model to 2020-06 (4.16) Eclipse
2022-01-21:
Scott Mansfieldclarifies that the Gendoc application depends on Papyrus version, and not on Eclipse version.
Scott Mansfieldmodel2docshould dump every UML construct, to be checked.
2022-01-21:
Brief discussion on2020-06 (4.16) noting that Papyrus appeared to be OK (butNigel Davisnoted that in his environment Gendoc was still not working due to memory apparently).
Nigel Davisnoted that OIMT have agreed to develop the profile and apply to a part of the core as an example. This can be presented to IISOMI in February.
Nigel DavisProvide an overview of the DDD trial profile and show application to the core model.