|
|
New and Noteworthy
Mia-Studio 7.0Recasting the concept of scenario Launching a partial generation from the model browser Launching a partial generation from MagicDraw
Recasting the concept of scenarioA scenario is now applicable to a type of the metamodel. Therefore, like any script, a scenario becomes an entity contained by a package, and appears, in Architect edition, in the tree of scripts. The .scn files do no more exist. The projects older than this version are converted at the first loading. The concept of GenerationDescription does no more exist. A scenario owns a service to select some objects of the model, and it can call some "generation steps", i.e. fileTemplates or other scenarios, applicable to the type of theses objects. The fileTemplates have now a property "visibility". The scenarios and fileTemplates which have a private visibility, are not visible with the Developer edition. For each scenario, as for templates, it is possible to specify a precondition, a preaction and a postaction. Comme les scénarios deviennent des entités contenues par un package, ils ne sont plus sauvegardés dans un fichier scn, mais directement dans un fichier pkg, avec les templates et macros. Les scénarios créés avec une version antérieure sont automatiquement convertis au nouveau format et regroupés dans un package créé pour l'occasion. Launching a partial generation from the model browserTo launch a generation from the model browser, you just have to select one or more instances and click on the "Generate…" item of the context menu. Two modes of generation are available. The first one consists in selecting the scripts or scenarios to apply on the selected objects. A dialog box proposes only the scripts are scenarios applicable on the type of the selected objects. With the Architect edition, any script or scenario of the project can be selected this way. With the Developer edition, only the public scenarios and fileTemplates can be used. The second one consists in selecting the files that can be generated from the selected objects. Launching a partial generation from MagicDrawIt is possible to launch a partial generation from the containment tree in MagicDraw. You just have to select the objects and then use the context menu "Generate with Mia-Studio…". A dialog box appears, proposing the 2 generation modes explained above : by selecting scripts, or by slecting generated files. With Developer edition, only the public scenarios and fileTemplates area proposed. Loading a resourceWhen the user opens a resource (project, model, launcher, etc…), the directory on which opens the FileChooser is the one where the last resource has been saved or opened, whatever its type. Default metamodelThe metamodel selected by default is UML (standard UML 2.1 and 2.2) instead of UMLMIA (standard UML 1.4 and 1.3). Mia-Studio 6.7Sorting scripts in *.pkg ressources
Mia-Studio and Windows 7Mia-Studio 6.7 works under Windows 7, in standalone mode and float mode. The license manager needed for use of floating licenses is available here. Encoding generated filesIn Mia-Generation, encoding a generated file can now be specified in the properties of its fileTemplate, simply by selecting in a drop down list the charset to use. The default encoding used is the operating system's one. It is possible to use another default encoding by editing MIAGeneration.ini.
... -vmargs -Dfile.encoding=UTF-8 ... Mia-Studio and RSM 7.5.4Mia-Studio 6.7 provides a connector to read the RSM model (*.emx, *.epx and *.efx files). The setup of Mia-Studio has been modified to install the plugin Mia-Generation for Eclipse in RSM. Sorting scripts in *.pkg ressourcesScripts are sorted by signatures in .pkg files, to facilitate the viewing of the differences in external comparison tools. (The dates have been removed in version 6.6.0) Mia-Studio 6.6
Mia-Documentation ModuleMia-Documentation allows you to build custom transformations to produce documents from your models according to your documentation standards and styles. Using this module requires a specific license. The document generation occurs by merging two files:
With Mia-Generation, you realize the generator that will produce the composition stream and will launch the merge with the document template.
To achieve this merge, Mia-documentation relies on a partner solution developed by society Callidoc, and provided with MIA-Studio. Some Apis have been added to Mia-Generation to use this solution within your generator. See Mia-Generation User Guide for more information. Generation tracesThe generation trace has been enhanced to facilitate the debugging of a generator. In the script definition area, use the Ctrl+Click shortcut: Hold down the Ctrl key and move the mouse over the name of the script until the name becomes underlined. The corresponding generated text is focused in the result area. Then click the hyperlink once to go the corresponding substep in the traces tree.
You can either use the context menu Go to substep.
The search from a selected text has been enhanced. A message warns you if a post action has been evaluated on the script result from where you are starting the search. This may reduce the reliability of the search.
A search history makes the access easier to the previous search results.
Mia-Studio 6.5Options to display generated files Metamodel associated to a project Generation with MagicDraw mdzip models
Read the complete release-notes Community EditionMia-Studio 6.5 comes with a new edition : Community Edition. Community Edition is now the default mode available with both Developer and Architect licenses, and so allow to begin tu use Mia-Studio as soon as it is installed.
The Community edition is free and provides all the functionalities available with Mia-Studio Enterprise : you can edit, run and debug generation rules using all the features of the product without any time limit. But it has a limitation on the number of code lines than can be generated at once (1.500).
During the execution of a generation, while you have not reached the limit, the files are normally generated. Once you have reached the limit, the following files are not generated and they are indicated with an error.
Generation results displayA new option "group by file extension" have been added to group the generated files displayed in the result tree.
If you have activated the "group by status" option, the file extension will be considered for a sub-group of files with the same status.
Debugging generationsThe generation trace have been enhanced to facilitate the debugging of a generator.
In the trace of a template execution, the evaluated text fragments (calls to other scripts) are colorized to clearly distinguish them from the text directly defined by the template.
From any text fragment selected in a generated file (from the result tree or a trace step), you can go directly to the corresponding trace step.
From this step you access to the object of the model and the script responsible for the generation of the selected text fragment.
Pre-action on a templatePrevious versions of Mia-Studio already provided the possibility to enrich a template with a pre-condition (test if the template has to be executed) and post-action (treatment executed once the template has produced its text).
Mia-Studio 6.5 comes with pre-action to add a treatment (written in Java) executed just before the evaluation of a template (and just after the evaluation of the precondition).
In the code of a pre-action, a new API can be used to get the name of the file being generated, thus allowing operations to prepare the generation (check-out from a SCM for example).
Metamodel associated to a projectA generation project contains scripts attached to a metaclasse (for example in UML : Package, Class, Attribute, Operation, ...). With the previous versions of Mia-Studio, it was not allowed to use a generation project with a different metamodel, even if the two metamodels contain the same metaclasses.
Now, with Mia-Studio 6.5, it is possible to force a generator to be launched with a model whose metamodel is different (of course, it will only work if the two metamodels are compliant : same metaclasses with same properties and relationships).
When editing a launcher, a new combo-box "Metamodel" is provided to select another metamodel (by default, the metamodel of the generation project is selected). Mia-Studio will automaticaly fill the "Format" combo-box with the available formats dedicated to the selected metamodel.
Generation with mdzip modelsTo avoid exporting MagicDraw models into EMF, Mia-Studio 6.2 provided a native connector that launch the generation directly from MagicDraw.
With Mia-Studio 6.5, this connector can be used directly from Mia-Generation: when you select a mdzip file (MagicDraw default format), Mia-Generation opens MagicDraw (in background) with this model and can launch the generation without any EMF export/import.
Mia-Studio 6.2Enhances integrations with VisualStudio and MagicDraw.
VSPackage for Visual Studio 2008
Read the complete release-notes Visual Studio 2008 integrationA VSPackage component comes with the installer Mia-Studio 6.2.0. It lets you use launchers from the interface of Visual Studio 2008, access the interface of Mia-Generation in Architect or Developer edition. Mia-Generation and Visual Studio communicate for example to display the generation results in Visual Studio.
MagicDraw integration evolutionMia-Studio 6.2 comes with an enhanced version of the MagicDraw plugin.
It provides a close integration between the UML modeling tool and your code generators created with Mia-Studio :
Mia-Studio 6.1Improves the capability of software architects to develop and maintain complex code generators.
Native integration of Eclipse/EMF Read the complete release-notes Generators extensibilityWith Mia-Studio 6.1, it is now possible to extend existing generators to adapt them to a specific context, without modifying the initial generator. This new functionality is a response to the need of being able to maintain a « core » generator common to several other generators for which we just have to define the differences.
To achieve this, Mia-Studio 6.1 allows to create a package that extends an existing one. This extension will contain a redefinition for each script we need to modify. During the execution of the generator, the extended scripts have the priority over the initial scripts.
When a script has been extended, it appears differently (gray, between parenthesis and with a specific icon) in the initial package.
In an extension, when a script extends another script from an initial package, it appears with a different icon too. This distinguishes it from other scripts belonging to the extension which do not redefine a script from a parent package.
Multi-profiles generatorsMia-Studio already provided a way to extend the current metamodel by defining new concepts from the types (metaclasses) already provided. For example, when working with UML, we use a profile to extend the class concept to define the page or table concepts.
With Mia-Studio 6.1, it is now possible to use several profiles with the same generator. Then one can define one profile by extension and improve the management of the added concepts. For example, one can define one profile by application layer: the « database » profile will contain the concepts such as table, column, index, etc…, when the «cinematic» profile will contain concepts such as page and action.
This facilitates the reuse of packages among several generators. When integrating existing packages into a new generation project, it is no longer necessary to manually add the profile elements used by each package. Now, before importing an existing package into a project, we just have to import the corresponding profile.
Post-actionsMia-Studio 6.1 introduces the post-action mechanism for the generation templates. A post-action is a script, written in Java, executed just after the execution of the template. Within the code of a post-action it is possible to get the text generated by the template (manager.getGeneratedText()) and also modify this text (manager.setGeneratedText(String)).
For example, this functionality allows delegating generated code formatting : rather than managing both code generation and formatting, with a post-action this action can be done once the code has been produced. Another usage can be, for example, the update of the generation context with information coming from the generated text.
For FileTemplates (templates producing a file), a second type of post-action is available. A post-write-action allows executing an action just after the file has been written.
Inside a post-write-action, it is possible to get the generated text (manager.getGeneratedText()), to get the generated file (manager.getGeneratedFile()), or get the statistics of the generated file (manager.getGeneratedFileMetricsData()) : size of the file, percentage of generated code, number of manual tags, duration of the generation, etc…
Ergonomics enhancementsMultiple ergonomic enhancements come with Mia-Studio 6.1.
Multi-scripts editionEach accessed script remains accessible through a shortcut added to a clickable drop-down list placed beside the title of the script edition tab. This list is populated all along the navigation among the scripts, and can be cleared at any time.
To complete this new functionality, it is no longer necessary to save modifications done to a script before accessing another one. This facilitates navigation through the scripts, especially when modifying an existing generator.
Converting scriptsNew refactoring functions allow for converting the nature of a script: from macro or service to template (or inversely).
Automated extraction of templatesAt any time, it is possible to select a portion of an existing template and create a new script (template, macro, beginTag or endTag) from the selected text. In the initial template, the selection is automatically replaced by a call to this new script.
Filtering used typesPreviously, the option «Mask empty types», applicable on the metaclasses list, showed only the types having at least one script defined in the whole project. Now, this option filters at the level of the selected packages: only types having at least one script in the selected packages are shown.
BreakpointsThe breakpoints configuration is saved after exiting Mia-Generation 6.1. When reloading a project, its breakpoints are loaded too.
Standards integrationMagicDraw pluginMia-Studio 6.1 provides a plugin for MagicDraw to launch the generation from the modeling tool. This plugin allows to directly access the model loaded by MagicDraw without having to export this model into an XMI file.
Native integration of Eclipse/EMFNow, with Mia-Studio 6.1, Mia-Generation is natively based on EMF (Eclipse Modeling Framework), the model management technology provided by Eclipse. With this evolution, the generation scripts manipulate directly the EMF objects through the standard API provided by Eclipse.
ATL integrationAlso with Mia-Studio 6.1, it is possible now to execute model transformations written with ATL, a model-to-model component provided by Eclipse. Existing ATL transformations can then be reused inside a transformation chain built with Mia-Transformation.
|