#include "GMEVersion.h" Generic Modeling Environment GME v4 GME_VERSION_ID Copyright © 2000-2004 Vanderbilt University 0. Important Upgrade Information YOU NEED TO UNINSTALL ALL PREVIOUS VERSIONS OF GME (INCLUDING GME 3) USING THE CONTROL PANEL ADD/REMOVE PROGRAMS UTILITY BEFORE INSTALLING THE NEW RELEASE. OTHERWISE, GME IS NOT GOING TO WORK CORRECTLY!!! Every new release of GME may introduce changes to its COM interfaces and to the Builder Object Network (C++ interpreter framework). Therefore, it is essential to update the source code of all user implemented interpreters, to recompile and to re-register these interpreters after upgrading GME. As your first step in the upgrade process, please export all your important projects (to XML format). Binary compatibility between different GME versions is not guaranteed. Release Notes of Release r4.5.18 -------------------------------- - AutoLayout feature is introduced as a plug-in component - XSLT based project migration support is added - A new Panning Window assists the user to navigate in huge models - The XML parser components of GME are now using Xerces 2.4.0. The redistributed Xerces dll is changed. If you are using xerces in your project(s), please upgrade to the same version - The Table Editor now has export/import to/from Excel. As it has always been with the table editor, only the name and attributes of an FCO should be edited. Bug fixes since r4.3.17: - Fixed: Attribute panel deterministically made wrong assignments (#GME-52) - XOR operator is fixed in the Constraint Manager (#GME-63) - Attribute browser properly updates values on focus changes (#GME-64) - Fixed: Stale objects in Constraint Manager (#GME-47) - Recursive contraint function problems are fixed (#GME-48, #GME-51) - Crash problems on attribute changes are fixed (#GME-61) - BONExtender generated classes now have public static member variables (#GME-41) - HFSM animator problem is fixed (#GME-55) - ConfigureComponent.exe does not delete (accidentally) the existing .dsp file (#GME-50) - ConfigureComponent now properly sets the event flag for generated Add-ons (#GME-49) - Special symbols in attribute names are filtered by the Meta Interpreter (#GME-45) - The "Save Project" dialog is not presented if the project does not contain changes (#GME-40) Release Notes of Release r4.3.17 -------------------------------- - Java BON framework is added - External text editor support for multiline attributes - Periodic autosave feature added (configurable through the GME settings dialog) - Enhanced printing and print preview - Enhanced logging (under the /Application Data/GME folder) - Several MetaInterpreter and BonExtender enhancements - Application specific notifications can be sent through the MGA layer. The XML parser does signal the beginning and the completion of the import process Bug fixes since r4.3.2: - Copy & paste between different instances of GME now properly handles references, subtypes and sets (BUG #20) - Paste to text editors (eg: notepad) does work again (BUG #15) - BON2 is compatibile with Visual C 7.1 (BUG #23) - Major BON2 object factory problems are solved (BUG #16) Release Notes of Release r4.2.3 -------------------------------- This release contains the following significant improvements over the previous public version: - New and redesigned Builder Object Network (BON2) - New and enhanced MetaInterpreter along with skeleton code generator for BON2 and a metainterpreter framework - The GUI supports OLE Automation Bug fixes since r4.1.8: - Redirecting references with draging selfconnected objects problem is fixed - Libraries in the meta environment are now supported by the new metainterpreter - References pointing to root objects are now properly handled in the GUI - Type/subtype information is properly displayed in the attribute browser - Object visualization support is added to the GUI Automation interface - Enhanced logging Release Notes of Release r4.1.8 (internal) ------------------------------- Bug fixes: - Problems with enumaration attributes in the attribute editor are fixed. - 'Ever growing MGA file' problem is fixed Release Notes of Release r3.12.18 (internal) --------------------------------- - A new and enhanced MetaInterpreter along with a code generator for BON (BONExtender) included - A new metainterpreter framework included - The GUI now supports OLE Automation. See the type library in GME.exe for further reference. - Tutorials are updated to reflect the changes in the metainterpreter - Run-time logging added (text files are created for all GME sessions) Bug fixes: - Problems with running GME as normal user are fixed - Bug fixes in the new BON implementation Release Notes of Release r3.11.14 (internal) --------------------------------- Bug fixes: - Component Toolbar positioning bug is fixed - Attribute browser editing bug ("Object Inspector could not write attribute data")) is fixed - Editor state is preserved after OBJEVENT_ATTR service - OBJEVENT_CLOSEMODEL is delivered at project close - Several TableEditor enhancements - Minor improvements in the standard decorator - Canonical XML dump (entities are now ordered in the XME files) Release Notes of Release r3.10.13 --------------------------------- - New Table Editor plug-in is introduced: to use it, open File/Register Components, select the GME Table Editor, and press Toggle. Afterwards, it can be launched from the component toolbar or the File menu/run Plugins command. - Exported model xml files are now using the .xme filename extension, however, the file format did not change. - New default decorator is included providing nicer visualization. Type/instance visualization is enhanced and configurable through model preferences. The old decorator is still available in the release. - Object and connection autorouter preference settings are now available from the context menus. - The beta release of a new Builder Object Network (BON2) and the Meta Object Network (MON) is included in the release. No documentation is available as of now. - Performance enhancements in the GUI code. - Dispatch based add-ons are supported. - CreateNewComponent utility enhancements. Bug fixes: - Several problems fixed in the attribute panel. - Minor fixes and extensions in the Constraint Manager. - Repeated undo key (CTRL-Z) problem is solved - Component tooltip problems and toolbar positioning troubles are fixed - Circular references are now properly handled by the GUI code - GME Emergency Events after drag-ctrl-drop are eliminated - Browser updates itself after deleting non-visible objects (in non-expanded models) - Browser "Preserve Tree State" feature is working - CR/LF problems in exported and (re)imported models are fixed Release Notes of Release r3.4.29 -------------------------------- This is a bugfix release. Copy operations which contain connections are no longer crashing the GME application. Other small fixes: - GME does not update the system registry now, so users without administrative privileges will not encounter warning messages - Decorkit COM macros are updated - Small visualization problems (type/instance) are fixed in the standard decorator 1. Release Notes for GME3 This release contains lot of improvements and changes over the previous versions. Therefore it is even more important to read carefully the first section (about the upgrade process). - We have a new OCL Constraint Manager with lot of nice features and comprehensive documentation (as part of the User Manual) - GME3 uses the Windows Installer (2.0) interface which provides a standard mechanism to redistribute system DLLs. - We got rid of the "2000" prefix everywhere. If you cannot open/import your previous meta models (created with MetaGME2000) choose the MetaGME paradigm which is compatible with MetaGME2000. - The User Manual is updated. - Types and Instances are indicated in the model editor. - BON is restructured, so please update your interpreter sources. - Undo problems fixed and its performance is enhanced. - This release also contains or pattern language interpreter Minor fixes/enhancements: - GUI improvements (new icons, consistent style) - XML based (inter-process) clipboard support in the Browser - Library handling problems in the MGA - Single click, or multiple selections in the Browser now update the contents of the Attribute Panel. - Context menus are enabled in GME connection modes - Hotkeys are assigned to switch between GME modes (CTRL+1 - CTRL+6) Release Notes of Release r11.21.1 follow. - Interpreter invocation from the Browser - Connection hotspot feature is now controllable (and is disabled for inheritance icons in the meta environment) - The installer now removes old paradigms and components from the windows registry. Please, re-register your paradigms from the .xmp files and recompile your interpreters - Libraries can be renamed in the browser - Interpreters based on BON can be compiled using Visual Studio.Net Release Notes of Release r9.20.1 follow. This is a release containing two redesigned components. The new Model Browser provides almost the same functionality as the previous one, but its stability was significantly improved and the new internal architecture enables us to enhance this component more easily in the future. The Attribute Browser is now implemented as a standalone ActiveX component. It provides a unified interface for attributes, preferences and properties. In our previous service release a new component has been added. It is a plug-in, i.e a paradigm independent component. It provides comprehensive searching capability. Release Notes of Release r12.18.1 follow. New features: - Model libraries allow the creation and reuse of model repositories. Any project can serve as a library and can be attached to other projects. Models in the library can be subtyped and instantiated in the dependent projects. Any subsequent changes in the library will propagate to the projects that use it. This feature required file format modifications. GME will automatically convert binary files to the new format (saving the original with the .orig extension), but it is a relatively slow process. However, subsequent accesses to the file are as fast as before. - ODBC backend. In addition to the MS Repository and binary file backends, now ODBC is also supported. - Annotations, i.e. textual labels, can be added to models. Their visibility in different aspects, as well as color, size, typeface, etc, can be controlled from a dialog box. - Visual connection preference specification. Autorouter preferences can now be specified on a per connection basis. In connection mode, the object the cursor moves over is highlighted. When the cursor is near one side of the object, a connection point appears. If it is clicked, the new connection will stick to the selected side of the object. This selection can later be overwritten using the registry editor. - Constraint manager improvements. The constraint manager has been reengineered. There are new functions to access information about connections. There is a dialog box that gives context information for debugging constraints. - Extensive tutorial. There is a new extensive end-to-end tutorial included with this version. As always, please, export all your projects in XML format using your current version. Please, uninstall any previous version of GME before installing the program on your machine. You will need to parse the paradigm defintion files (*.xmp) that you are using (File menu New Project command and Add from File button). After this you will be able to load the projects by importing the xml files your created with the old version. Also, some of the COM interfaces changed. So, recompile all of your existing interpreters. If you are using BON, then you should use the CretaNewComponent.exe tool in an empty directory and port you own interpreter files, so that they comply with the interface changes. Note that most of the files in the release are read only. So, for example, if you try to reregister the meta paradigm using the xml version of the definition, not the binary (.mta), then it'll fail, since it will try to overwrite the MetaModeling2000.mta file. If you want to play with the metamodeling paradigm like that, make a copy of the directory and change the read only attributes. Known issues: - Every time you have a new version of a paradigm, you can try to load existing projects in binary (.mga) format. The program will ask you whether to upgrade to the new paradigm. However, the upgrade process may fail. If so, export you projects in xml format with the old paradigm, reregister the new paradigm version, and import the xml file. The xml import/export utility is the more robust way model migration is supported. Note that if you make a paradigm change that invalidates existing models, the xml import operation will also fail. We are working on a general solution to the model migration problem. The previous version (v1.2) added these new features: - User-defined drawing capability. How GME displays model objects is now decided by external components called decorators. The previous appearence of boxes for models and icons for other objects is preserved as the default visualization (also implemented by decorators included with the GME release). However, users can write their own decorators. The only requirement is that decorators have to implement a COM interface that GME uses when it needs to display the objects. The new UML class diagram paradigm sample comes with its own decorator that displays classnames, stereotypes and attributes inside the class icon and resizes it accordingly. The GME metamodeling paradigm has a similar decorator as well. A decorator shell is also provided with this release to help you write your own decorators. Note that connection visualization has not changed and is not customizable. - Modeless dockable dialog for attributes and preferences. The attributes and preferences dialogs have been merged into one tabbed dialog window that is always visible and dockable to the main window frame. These dialogs also display the object name. There are multiple ways to select the object whose attributes and preferences are shown. All the context menus (even from the browser now) provide access like before. If a new object is inserted, pasted or dropped, its attributes and preferences will be immediately shown. Finally, simply selecting an object by clicking on it, has the same effect. Note that currently the attributes and preferences dialog does not support multiple object selection. - Add-on and plug-in support. The add-on mechanism has been updated and tested. Whenever a data file is loaded, the activated add-ons are also loaded automatically. Add-ons listen to events; the event set listened to is specified through the component configurator GUI (ComponentConfig.exe) . For efficiency reasons, Addons cannot be Builder Object Network components. Plug-ins are noew accessible throufg a separate command in the File menu. - OCL syntax checker add-on for the metamodeling environment. As a sample add-on, the metamodeling environment now comes with this nice helper tool. Every time a constraint expression attribute is changed this add-on is activated. Note that the target paradigm information is not available to this tool, therefore, it cannot check arguments and parameters, such as kindname. These can only be checked at constraint evaluation time in your target environment. - Toolbar button/interpreter association capability. Interpreters and plug-ins can now register toolbar icons. An icon is either a resource in the component itself, or a separate icon file. If a project is loaded, the registered toolbar icons of all the active components are displayed in the toolbar, providing a user friendly way to start components. The icon information is stored in the registry under the 'Icon' field in the components registry node. Its format is either [], , or a full pathname of an image file. - Component interface version checking. Starting with version 1.2, GME will be very conservative about component interface versions. First, the components that make up GME must always be present and have identical component interface version numbers. Components are also expected to be built against the very same interace as the GME executing them, although only a warning is displayed when starting incompatible components. There is no way to change the interface versions of compiled binaries. The only possible way to update the inteface version number is to recompile the components against the up-to-date interface files. - Type inheritance refinements. The previous restriction, that only root models can be derived from or instantiated, has been relaxed. Now a model type can be derived or instantiated provided none of its ancestors or descendants (in the containment hierarchy) have any subtypes or instances. - Paste Special commands. Objects on the clipboard can now be pasted as references, subtypes or intances through these commands available through the regular menu and the context menus. References can also be redirected using the Redirection Paste command in the context menu. The usual restrictions still apply, i.e. paradigm violations and other illegal operations are not allowed. Note that the paste special commands only work if the source of the clipboard data is the same project open in the same GME instance. - Instant connections through context menus. In the regular edit mode connections can now be made by the Connect command in the context menu. Selecting this command changes the cursor to the connect cursor. A connection will be made to the object that is left clicked next. (Or by selecting the Connect command on the destination object as well.) Note that any other operation, such as mode change, window change, new object creation, cancels the connection operation. - GME icons settings now allow two macros,$PARADIGMDIR and $PROJECTDIR, that resolve to the directory of the current paradigm definition or project file, respectively. - Updated high-level C++ interpreter interface (Builder Object Network or BON for ahort). BON now uses the IMgaComponentEx COM interface (also new in this version). The biggest change is that the Invoke function has been replaced by InvokeEx, which clearly separates the focus object from the selected objects. (Depending on the invocation method both of these parameters may be empty.) Components using the old BON will still work, however, upon invocation a warning is message displayed reminding users to upgrade the component code to fully comply with the new BON. - Tutorials. Two short, simple tutorials have been prepared on metamodeling and metamodel composition. - A sample UML class diagram drawing paradigm. To illustrate the user-defined drawing capabilities of this version, we are including this simple paradigm as an example. Note that no interpreter is included. - Java high-level interpreter interface (alpha release). We have prepared this interface that is very similar to the high-level C++ interface, the Builder Object Network (BON). This is an experimental version, not tested thoroughly. A fairly severe restriction is that it is based on Visual J++, because we have used the Java/COM bridge from Microsoft. 2. System Requirements GME has been tested on Windows 95, 98, NT 4.0, and 2000. Note: In order for the database access functionality of GME to work under Windows 95, the latest version of the Microsoft Data Access Components (MDAC) should be installed prior to installing GME. MDAC may be downloaded from the Microsoft web site at http://www.microsoft.com/data/download.htm 3. Installation Uninstall your existing GME before installling this new version! Run the self-extracting executable file in a temporary directory. Run the setup program and follow the on-screen instructions. The temporary installation folder may be deleted after the installation. 4. Directories The GME root directory contains a copy of this document. The bin subdirectory has the GME executable and all necessary dlls. The doc directory contains the User's Manual in pdf format. The "MS Repository Install" directory contains the runtime system for MS Repository. Run the executable to install the program. The Meta2000 directory contains the new metamodeling environment. The Sample directory contains example paradigms, metamodels, models, and a demo and runtime system for the SF2000 paradigm. The SDK directory contains the BON for interpreter developers, the DecoratorKit for decorator writers and the new Java interpreter interface (alpha version). 4. Contact info Send comments, bug reports, questions to akos@isis.vanderbilt.edu