New and Noteworthy

Mia-Studio 7.0

Mia-Studio 6.7

Mia-Studio 6.6

Mia-Studio 6.5

Mia-Studio 6.2

Mia-Studio 6.1

 

Mia-Studio 7.0

Recasting the concept of scenario

Launching a partial generation from the model browser

Launching a partial generation from MagicDraw

Loading a resource

Default metamodel


Read the complete release-notes

Recasting the concept of scenario

A 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 browser

To 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 MagicDraw

It 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 resource

When 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 metamodel

The 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.7

Mia-Studio and Windows 7

Encoding generated files

Mia-Studio and RSM 7.5.4

Sorting scripts in *.pkg ressources


Read the complete release-notes

Mia-Studio and Windows 7

Mia-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 files

In 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.


Example :

...

-vmargs

-Dfile.encoding=UTF-8

...

Mia-Studio and RSM 7.5.4

Mia-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 ressources

Scripts 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 Module

Generation traces


Read the complete release-notes

Mia-Documentation Module

Mia-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:

  • a composition stream (XML file) that contains the plain text of your document
  • a document template (OTD file) containing the available styles.

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 traces

The 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.5

Community edition

Options to display generated files

Debugging generations

Pre-action on a template

Metamodel associated to a project

Generation with MagicDraw mdzip models

 

Read the complete release-notes

Community Edition

Mia-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 display

A 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 generations

The 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 template

Previous 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 project

A 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 models

To 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.2

Enhances integrations with VisualStudio and MagicDraw.

 

VSPackage for Visual Studio 2008

Plugin for MagicDraw

 

Read the complete release-notes

Visual Studio 2008 integration

A 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 evolution

Mia-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 :

 

  • Get MagicDraw models into Mia-Studio without XMI or EMF export/import
  • Launch generation scenarios directly from MagicDraw
  • Create models, generate and edit generated files within Eclipse

Mia-Studio 6.1

Improves the capability of software architects to develop and maintain complex code generators.

 

Generators extensibility

Multi-profiles generators

Post-actions

Ergonomics enhancements

MagicDraw plugin

Native integration of Eclipse/EMF

ATL integration

Read the complete release-notes

Generators extensibility

With 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 generators

Mia-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-actions

Mia-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 enhancements

Multiple ergonomic enhancements come with Mia-Studio 6.1.

 

Multi-scripts edition

Each 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 scripts

New refactoring functions allow for converting the nature of a script: from macro or service to template (or inversely).

 

Automated extraction of templates

At 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 types

Previously, 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.

 

Breakpoints

The breakpoints configuration is saved after exiting Mia-Generation 6.1. When reloading a project, its breakpoints are loaded too.

 

Standards integration

MagicDraw plugin

Mia-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/EMF

Now, 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 integration

Also 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.