Working with MDACs
What are MDACs?
MDA components or MDACs are complementary components, each of which provides specific services tailored to a particular modeling need.
Objecteering provides a number of MDACs, all of which exploit a UML model for a specialized need. For example, the generation of C++ or Java code is provided and managed through specific MDA components (referred to as MDACs).
When an MDA component is deployed, it provides menus, icons and specialized annotations, specific to the component in question. Some MDACs, when deployed, automatically add a tab in the auxiliary window. These tabs are designed to make it even easier to enter elements relevant to the MDAC in question, such as specific notes and tagged values.
Deploying MDACs
For you to be able to use an MDAC in your project, it must first be deployed by running the "Deploy an MDAC" command from the "Tools" menu, as shown below.

Deploying an MDAC in a project
Steps:
1. Click on "Tools/Deploy an MDAC" in the menu bar. The "Open" window then appears.
2. In the "Open" window, select the MDAC you want to deploy in your project.
3. Click on "Open" to run deployment.
A message in the output window informs you whether or not the MDAC has been deployed successfully in your project. If this is the case, a number of new elements appear (as shown below).

New features after the deployment of an MDAC
1. A new tab in the auxiliary window (not all MDACs provide a tab), providing easy access to specific MDAC-related features.
2. A new entry in the "MDACs" section of the context menus available in the explorer and in diagrams, providing MDAC-related commands.
3. A new icon in the auxiliary window (not all MDACs provide an icon).
Removing MDACs
To remove an MDAC from your project, simply run the "Remove an MDAC" command from the "Tools" menu, as shown below.

Removing an MDAC from your project
Steps:
1. Click on "Tools/Remove an MDAC" in the menu bar. The "Remove an MDAC" window then appears.
2. In the "Remove an MDAC" window, select the MDAC you want to remove from your project.
3.
Click on the
button to remove the selected MDAC.
4. Click on "Close" to close the window.
Once the MDAC has been removed from your project, any associated icons, auxiliary window tabs and menu entries disappear.
Configuring MDACs
Each MDAC deployed in your project provides a set of parameters used to define various specific options, typically generation directories, editing tools and default selections.
MDAC parameter sets are organized into different sub-categories, which are presented in the "Modifying configuration" window (as shown in the screenshot below).

An example of different MDAC parameter sets
In order to open the "Modifying configuration" window and configure MDAC parameters, you can:
· run the "MDAC options" command in the "Tools" menu
·
click on the
"MDAC options" icon in the
toolbar
For information on configuring Objecteering Modeler parameters, please see "Configuring Objecteering Modeler".
For information on specific MDAC parameters, please refer to the related user guides.
MDACs and project migration
When Objecteering projects are migrated from an earlier version of Objecteering, Objecteering will try to update each selected MDAC to its latest available version. Non-updated MDACs are removed from the project, and you are notified of this removal through a message in the output window.
Objecteering searches for the latest version of MDACs in the "mdastore" directory of your installation (for client-server installations, Objecteering looks for the latest version of MDACs in the "mdastore" directory on both the client workstation and the server), and scans each ".mdac" file, in order to extract the name and the version of the MDAC in question. Objecteering also looks for ".mdastorelink" files containing the name of a directory, in which ".mdac" files will also be searched for. The directory specified can also contain ".mdastorelink" links.
Once the scan of the "mdastore" directory has been completed, Objecteering selects the latest version of each MDAC deployed in the project and updates it.