Andrea Rivetta
I was born in 1967 and graduated in 1993 in industrial electronic engineering, specialization in robotics at the Milano Politecnico.
After working for a few years as electronic designer, I moved on to being responsible for military weapons systems.
For the past 20 years I have been working in the military aircraft simulation industry. In the meantime, I adopted Enterprise Architect as an essential work tool when the precise exchange of information, formalism and design documentation became of primary importance.
I think that UML / SysML design, MBSE and MDG technologies are the cornerstones of EA.
High Level Architecture HLA 1516 Evolved MDG Technology
HLA 1516e MDG Technology for Enterprise Architect
1 Abstract
This article describes the content of an Enterprise Architect Model-Driven Generation (MDG) technology of the High Level Architecture (HLA) 1516 evolved framework.
It contains:
- HLA 1516 C++ interface class
- HLA 1516e Base of Knowledge
- Forward FOM module XML generation from Enterprise ARchitect model
- Reverse engineering grammar for creating model from XML FOM HLA 1516e module
- RPR-FOM v2 modules
2 HLA Background
If you know what is HLA you can skip this chapter, while if you are hungry, you can feed yourself reading this one.
The High Level Architecture is one standard that defines a framework for distributing data among SW modules (Wikipedia HLA ) deployed on different PCs. It was developed around 1995 years from US Defense Modeling and Simulation Office (DMSO) next updated by the IEEE (IEE 1516) and the last one maintained by the Simulation Interoperability Standard Organization (SISO).
HLA concepts:
- Federation: the set of all SW modules which produce or receive data and which cooperate in the realization of the system functionality
- Federated: Single SW module joined to the federation that produces or receives data
- RTI: (Run Time Infrastructure) the process responsible for distributing data within the federation
- Data production: a federate produces a data and this is available to all the other federations. The name in HLA is "publish" data
- Data reception: a federate is interested in a given data produced from another federate of the federation; the name in HLA is "subscribe" data
The data is divided into 2:
- Persistent data: it is the data that a federate publishes and that is always visible in the federation; in HLA they are called HLA objects.
- Volatile data: these are the data that a federate publishes that are visible only to the other federates when they are published. After the publication event in the federation, there is no trace of their publication. In HLA they are called HLA interactions.
The HLA SISO specification only details the interface that the SW application must have to participate in the federation (the SW application must link to a set of dynamic libraries that realize the HLA interface).
The specification does not detail the content of the data exchanged by the federates in the federation.
This detail is contained in an XML file called Federation Object Model (FOM), which is the data communication specification of the federation.
The FOM in XML format details the HLA objects and HLA interactions. You can define these using the encapsulation and inheritance OOP semantics:
- encapsulation: each HLA object contains the atomic elements called HLA attributes that compose it; for interactions the atomic elements are called HLA parameters
- inheritance: you can define an HLA object or HLA interaction by extending a previously defined HLA object or interaction via inheritance
3 The HLA MDG technology content
You have to extract the 7zip file in a directory and you have to set this directory as new path for EA finding technology.
After that restart EA and if the technology is correctly loaded you can see as follow in MDG technology browser.
The HLA technology is composed of the following main parts:
- 4 model pattern wizards
- Elements for HLA module forward design
- 1 HLA toolbox
- 1 HLA class diagram type
- 17 new <<stereotype>> classes to reflect HLA concepts when specifying model
- 4 new <<stereotype>> attributes
- 13 enumerations defining class properties values
- 1 grammar for reverse design
- 2 scrips
3.1 Model pattern wizards
Here there is the dialog containing the HLA MDG Technology wizards:
3.1.1 HLA module structure wizard
The wizard creates the EA structure (packages) for an empty HLA module. The structure reflects the structure of a HLA module XML schema.
For the meaning of all EA packages refer to equivalent HLA section of the SISO XML schema.
In each package, create a new HLA class diagram so that the HLA toolbar always appears when the diagram is opened.
All elements that compose the HLA module can put in any packages under the main but it is better to put all elements in their typical position to have clear decomposition of the model.
3.1.2 HLA 1516e Base of Knowledge
The wizard creates many packages containing all gathered info about HLA expressed using UML notation.
In interfaces package you can find all C++ classes created from a reverse design from a C++ header of HLA specs, FOM schema and WSDL interface.
A few packages are incomplete.
3.1.5 SISO-STD-018 FOM
The wizard creates a package structure that contains all the HLA modules that are part of the Space Reference FOM.
3.1.6 SISO-STD-001 FOM – RPR-FOM v2
The wizard creates a package structure that contains all the HLA modules that are part of the RPR-FOM v2
3.2 HLA module forward design
In order to generate a HLA module you have to use HLA module structure wizard to create structure and SISO-STD-001 FOM – RPR-FOM v2 wizard to have at least the Standard MOM and Initialization Module that contains all basic elements for creating HLA module.
3.2.1 HLA toolbox
The toolbox contains all elements that can be instantiated for creating an HLA module. The toolbox appears automatically for HLA class diagrams while it is possible to use it in other diagrams by selecting it from the toolbox list.
Module info, POC and Reference are <<stereotype>> classes used for define FMO module attributes. The main <<stereotype>> classes are:
- Object class for creating an HLA object
- Attribute for adding an HLA attribute to an HLA object
- Interaction for creating an HLA interaction
- Parameter for adding a HLA parameter to an HLA interaction
NOTE: the inheritance between HLA Objects and HLA Interactions is realized through own property between two elements of the model and not with typical inheritance link between two elements of UML notation (sorry). In the HLA module you have to start always from HLAobjectRoot for HLA Objects or from HLAinteractionRoot for HLA Interaction and insert all HLA objects (see RPR-FOM as example).
When you are adding one attribute to an HLA object or one Parameter to and HLA interaction, you have to specify the type and you have to select Standard MOM and Initialization Module elements or other previously defined HLA structure elements in other packages or modules.
The figure shows the detail when selecting the toolbar Data types entry. These entries permit to add HLA data types with different structures.
For HLA Simple, HLA basic, HLA Enumerated, HLA Fixed record, HLA Variant record, HLA Array refer to HLA specification.
Remember these tips:
- For HLA enumerated structure type, you have to add only Enum element to fill the structure.
- For HLA Variant record you have to set one discriminant class attribute and all other added elements are Alternative of the record.
The figure shows the detail when selecting the toolbar Other entry
For the meaning always refer to HLA spec.
You can add 2 types of relationship between two HLA elements:
- Associate obj: to add an HLA attribute to an HLA object you can use HLA Attribute of the toolbar or link on the view the structure type of the HLA Attribute to be added and use this link between HLA Object class and the structure and set the name of the target side of the link with the name of the HLA attribute
- Associate int: same as previous for HLA Interactions and HLA Parameters
3.2.2 HLA scripts
The technology scripts are for the forward design and production of an HLA module. Starting from a package in which all the HLA elements have been specified, the scripts generates the XML file that contains all the HLA elements of the model.
There two Jscript are:
- Filename output: you can specify output filename for all elements beneath the selected package to set filename property for all elements of the model; the filename will be the XML file for FOM containing all HLA elements.
If you do not input any filename, you clear the filename property for all elements. - HLA module XML generation: starting from a package that contains all HLA module elements, the script generates the XML file containing HLA module definition.
3.4 Grammar for reverse design
The grammar is needed to reverse design a FOM starting from the FOM file in XML format. The activity creates the model in EA that reflects the content of the file.
Select Develop > Source code > Files > Import Source Directory. Select the directory containing the single XML file FOM module.
Specify Source type : HLA
File: *.xml
Press OK
I suggest to import main HLA module and after all dependent HLA module in order to permit to EA to link previously imported classes of the model.