# readme - Header2XMI

Inhalt

Topic:.readme_Header2XMI.

What is Header2XMI

A software development may use UML, the Unified Modelling Language to get an overview over the architecture of the software. Some UML-Tools promote the Model-driven development, which means that the whole software development process is sub-ordered under the UML-Tool. But in some cases a classic software development process using C-files, headers, makefiles and a proper Integrated Development environment is established. UML may be used really for the software-architecture, the overview over routines and data, respectively classes and methods. Header files can be converted to a UML model using the XMI standard (XML Metadata Interchange). All UML-Tools should support import and export of XMI, it is a part of the UML 2.0-standard.

This example of ZBNF and the belonging XSL-Scripts helps to go the way from C-Headers to UML. The software can be visited and documented in UML, with feedback to improve the C-sources. C-`struct` are represented as classes in UML. A special notation binds C-prototype-defined routines in headers to the `struct`, there are class methods.

The example contains:

- `MyStruct.h`: an simple headerfile.

- `testHeader2XMI_bat.bat`: Windows-batch file, which contains the 2 steps of conversion. This file calls the conversion routines immediately. Some local environment variables are used. The `XML_TOOLS` should be set with the directory, which contains the SAXON- and JDOM-Jar files.

- `testHeader2XMI_Ant.bat`: Windows-batch file, which contains a call of the Zmake-processing, see example Zmake. To use this example, you should adapt the content of the file `.../zbnfjax/setZBNFJAX_HOME.bat` to set, where the environment (SAXON, JAVA) is located.

- All generated files inclusively the tmp files are given as `.reference` to compare the result.

More complex Conversions from Header to UML are able to find in the Java2C_on_Sourceforge or as examples at the vishia-page, see Cheader2Xmi.