There are some interesting ideas proposed. Here are some initial questions and somewhat random comments based on a quick read of draft-mansfield-netmod-uml-to-yang-00.
General questions on draft-mansfield-netmod-uml-to-yang: 1. Is the proposed mapping supposed to be bi-directional in nature? In other words, is the intent to support a mapping between UML and YANG that enables IM UML -> DM YANG -> IM UML in a round trip manner. The text in this section uses the term predictable. Should it not be deterministic? 2. Does there need to be a set of UML usages defined – similar to what ONF did? Some of the UML concepts such as aggregation usually need definition as even the OMG UML 2.5 spec says aggregation is open to some interpretation. This is touched on in section 5.5 of draft-mansfield-netmod-uml-to-yang but it seems ambiguous as both composition and aggregation map to container. The examples are not so clear – the first seems more like composition to me as there is a lifecycle implication between instances of ClassA and ClassB. The second example – the list could also be a set of leafref to the ClassD key. 3. Did the authors consider the use of UML stereotypes/annotations to help support the mapping between UML and YANG? This may help remove potential ambiguity in the mapping. comments on draft-mansfield-netmod-uml-to-yang: 1. Section 3 - What about UML packages and module/submodule relationship. Modules can be a root package with submodules being sub-packages.Need to enforce the semantics of include/import per RFC 6020. Any value in considering relating YANG features to packages – ie. Represent yang Feature statements 2. Section 5.2 - UML abstract is stated to map to a container. Containers either represent containment for organization reasons or with presence the container itself is configuration data. I do not get the mapping of abstract to this. Can you explain? 3. Section 5.2 – both support and condition map to “if-feature” statement in yang. This seems ambiguous. How does one distinguish in YANG which is which? 4. Section 5.2 - “must” statement – could this not map to OCL? 5. Section 5.2 – wrt objectCreationNotfication/objectDeletionNotification – in UML how are these represented -seems to rely on ONF OpenModelCass if I understand the source correctly? It seems like there are some assumptions wrt to the Object Class. In YANG can these map to notification statements. Is there some notification hierarchy in YANG/UML where these notifications (objectCreationNotificaiton/objectDeletionNotification) exist? More current drafts of RFC 6020 (I.e. draft-ietf-netmod–rfc6020bis–06) propose notifications to be top level of a module or associated with data nodes (container or list data nodes). This notion could be leveraged as the source of the notification in YANG – xpath to its source in containment model. 6. Section 5.4.4 – a complex data type does not always map to grouping IMO except if the grouping has a singular top level container. A grouping is a reusable construct that gets "flattened out" in the context they are used within. Groupings can also be refined/augmented to tailor their usage contextually. 7. Section 5.5 –The mapping is ambiguous as stated above. composition is a stronger type of association then aggregation and infers ownership of lifecycle of the contained items. That is when the composing instance is destroyed, the contained items are also destroyed. Its a is a part of relationship. Aggregation can be used to mean a point of control for manipulating the contained. It does not infer lifecycle control. 8. Section 5.5 - Its not clear how cleanly augment maps to inheritance. Augment can apply to many things in YANG - container, list, leaf-list, uses, choice …. I can kind of see augment of a container mapping to inheritance. Augments can also specify conditions as to when they apply - i.e. If if type == ethernetCsmacd 9. Section 5.6 – I don’t see how UML interface maps to a container. A UML interface represents a contract. A container either represents containment for organization reasons or with presence the container itself is configuration data. This may need more discussion – or at least more explanation. 10. Section 5.11 – what does package map to? Is it module/submodule? Could a conditional package not also map to module/submodule with if-feature as a top-level entity? Ari Mark Sodhi System Engineer and Architect II T 707.766.3413 M 707.775.1379 E aso...@calix.com Calix 1035 N. McDowell Boulevard Petaluma, CA 94954 T 707.766.3000 F 707.283.3100
_______________________________________________ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod