The UML-To-YANG tool based on javascript is a critical software component and should be treated as a managed open-source project.
The idea could be to handle it similar to projects managed by Linux Foundation Network, such as OpenDaylight/yangtools or ONAP/CCSDK.
Scope
The scope converting UML to YANG migth be to restictive, maybe UML tooling which may include also other convertions from and to UML may get more attraction. However the core of such project should be XMI-to-YANG.
Project setup proposal
In order to have a continous development and maintenance of the UML-To-YANG tool it is nessesary to have commited development resources and a common project structure.
- Specification: UML Guidelines, UML-YANG-Guidelines
- Developer guide/wiki: Confluence
- Integrated development environment: eclipse (proposal)
- Code review: gerrit (with a clone to a public github)
- Modul tests, regression tests: junit
- Build process: Maven
- Continuous integration: Jenkins
- Continuous delivery: docker, kubernetes, web-services
- Continuous Code Quality: sonar
- User documentation: Read-the-docs
- Logging: log4j
- License: Apache 2.0
UML to YANG Mapping
- Object Reference Mapping (All)
- Generate reference grouping based on composition tree (composition association)
- Use these Groupings for shared/none associations
- use of xPath “current()” function
- Mapping of Abstraction / <specify> relationship
- Elimination of the target attribute
- Addition of multiplicity - accordingly enclose the "uses <grouping>" in Container or List
- Dependency on the "Reference" grouping feature
- Auto-generate the CRUD operations input/output parameters and equivalent actions
- Use of “when” and “must” statements
- Mapping of UML Constraints - to be used mainly in <augment>/<specify> and in conditional associations
- Use of require instance statement and mandatory statement
- Mapping of complex datatype
- Mapping of Classes to Identities
2 Comments
Martin Skorupski
To my experience, there is a lot tool support (any programming language) to generate xml. It is much easier generating xml than directly yang. Therefore the xml representation of yang could be generated first, called yin. In a last step yin can be converted to yang and yang-tree using pyang.
Martin Skorupski
A potential starting point for implementation
Section 13.1 lists all yang/yin statements.