Book a Demo

Please note : This help page is not for the latest version of Enterprise Architect. The latest help can be found here.

Prev Next

MDG Technologies - UML Profile Extensions

The Schema Composer works with MDG technologies. The standards it uses for schema generation, other than Generic, are only meaningful for models that adhere to that framework. However, it is quite easy to extend an existing MDG Technology. Make sure that elements authored in your business specific domain or sub-domain provide consistently named metadata or 'Tagged Values'.

The Schema Composer supports extensions to UML profiles / frameworks through its scripting integration. When a script is assigned in the Schema Composer, the transform process will invoke this script and ask it to translate keywords. These keywords are usually UML stereotypes. If a particular technology is associated with the profile, the Schema Composer will invoke this function, passing it the name of the MDG Technology.

The script can return the input name, and no mapping will take place, or it can return the name of another MDG Technology. When this occurs, the Schema Composer will again ask for the function to optionally map any UML profiles. Finally it will ask the script to translate the stereotypes from the core technology.

The result of the model transform would then be that any UML elements of the sub model will show the extended Tagged Values in addition to any core Tagged Values.

Example script that maps MDG Technology

function TranslateStereotype (stereo)

{

   var newStereo = stereo;

   if (stereo == "UPCC3")

   {

        newStereo = "XXX UPCC3"

   }

   return newStereo;

}

Example script that maps UML profile

function TranslateStereotype (stereo)

{

   var newStereo = stereo;

   if (stereo == "UPCC3 - BIE Library Abstract Syntax")

   {

        newStereo = "UPCC3 - BIE Library XXX Syntax"

   }

   return newStereo;

}

Example script that maps UML Stereotype

function TranslateStereotype (stereo)

{

   var newStereo = stereo;

   if (stereo == "ABIE")

   {

        newStereo = "XXX ABIE";

   }

   return newStereo;

}