December 8th, 2009
Hello,
if you you need to use the UML2 Metamodel in some way for your work you will have noticed, that it is not easy to develop an understanding of the Metamodel, even less to learn quickly about the classes, their attributes and their relations to other classes. Basically there are only the official specifications from the OMG which are a bit dry to read.
Enter our new, free UML2 Metamodel Viewer!
The UML2 Metamodel Viewer is a standalone Windows application that can be used to browse the package structure of the UML2 Metamodel and explore the contained classes. In addition, it is possible to draw diagrams from these classes in a semi automatic way.
Here is a screenshot of the main window:
Main Window of the UML Metamodel Viewer
To create a diagram simply add a new diagram to your project and drag one or more classes from the Model Explorer to the diagram. For example, here is a diagram with the class Kernel::Classes::Class:

UML Metamodel Viewer with a diagram
One of the neat features is that the related classes (superclasses and classes that are used in relations) are automatically added to the diagram. This is an easy way to see the “context” of a given class.
The installer comes with a manual that should get you started using the UML2 Metamodel Viewer.
There is a catch: currently UML2 Metamodel Viewer relies on some third party software (namely the Graphviz package and the UmlGraph package – the latter additionally requires a Java Development Kit) that must be installed and configured so that diagrams can be created.
This is a 1.0 release, so you will surely find bugs using this software. Please report bugs and feature suggestions to support@empowertec.de. We definitely appreciate your feedback! We plan to actively support this software, which means of course fixing bugs but also implementing new features depending on demand and effort.
The software is based on the cmof-files that define the UML2 Metamodel.
Best regards,
Andreas
Technorati Tags: UML, Metamodel, Diagrams
Posted in Announcement, EmPowerTec, Modeling | No Comments »
February 9th, 2009
Hello,
we just released version Oclarity/XMI version 1.6.1.
This is a bug fix release. When releasing version 1.6.0 we did not realize that Sparx Systems had modified Enterprise Architects XMI export in such a way that it generated additional artifacts. In particular, after importing the XMI file, Oclarity/XMIs internal model contained additional associations (for examples superclasses where added as associations) and it contained some packages which are only used for Enterprise Architects internal use (’EA_*Types*Package’ packages). We did not notice the additional associations because they did not break our unit test – the additional elements did not create any problems when checking OCL expressions.
Finally, you might have noticed that attributes in the Model Explorer started with a number, e.g. 1. This was the internal representation of the members visibility. We have now corrected and extended this behavior so that the visibility is correctly displayed in the Model Explorer for all members.

Here is a list of all changes.
Oclarity/XMI is a free tool for checking OCL expressions against XMI files. If you have any problems, questions or suggestions about Oclarity/XMI please do not hesitate to contact us.
Best regards,
Andreas
Technorati Tags: Oclarity, XMI, OCL
Posted in Announcement, EmPowerTec | No Comments »
January 26th, 2009
Hello,
we just released version Oclarity/XMI version 1.6.0.
This is mostly a bug fix release.
We updated the XMI reader so that it processes the XMI files written by the latest version of Enterprise Architect correctly and we improved the OCL parser and semantic checker.
Here is a list of all changes.
Oclarity/XMI is a free tool for checking OCL expressions against XMI files. If you have any problems, questions or suggestions about Oclarity/XMI please do not hesitate to contact us.
Best regards,
Andreas
Technorati Tags: Oclarity, XMI, OCL
Posted in Announcement, EmPowerTec, Modeling | No Comments »
January 5th, 2009
Hello,
we have just released Oclarity/XMI version 1.5.0. This version contains updated third party libraries and the time limitation of the previously released version is removed. There are no functional changes.
Oclarity/XMI is a free tool for checking OCL expressions against XMI files. If you have any problems or questions about Oclarity/XMI please do not hesitate to contact us.
Best regards,
Andreas
Technorati Tags: Oclarity, XMI, OCL
Posted in EmPowerTec, Modeling | No Comments »
November 3rd, 2008
Hello,
if you are interested in the Object Constraint Language OCL you will find a lot of interesting information in the the proceedings of the 8th OCL workshop:
There where 4 sessions in the workshop but the talks do not always fit fine to the session. I’d rather categorize the talks like this:
- Implementing OCL
- Applying OCL
- OCL tools
Best regards,
Andreas
Technorati Tags: OCL, OC tools, Object Constraint Language
Posted in Modeling | No Comments »
October 13th, 2008
Hello,
the proceedings of the 3rd Workshop On Quality in Modeling are now available online.
They cover these talks:
Design of a Functional Size Measurement Procedure for a Model-Driven Software Development Method
Beatriz Marín, Nelly Condori-Fernández, and Oscar Pastor
A proactive process-driven approach in the quest for high quality UML models
Gianna Reggio, Egidio Astesiano, and Filippo Ricca
Description and Implementation of a Style Guide for UML
Mohammed Hindawi, Lionel Morel, Régis Aubry, Jean-Louis Sourrouille
A Combined Global-Analytical Quality Framework for Data Models
Jonathan Lemaitre, and Jean-Luc Hainaut
Empirical Validation of Measures for UML Class Diagrams: A Meta-Analysis Study
M. Esperanza Manso, José A. Cruz-Lemus, Marcela Genero, Mario Piattini
Towards a Tool-Supported Quality Model for Model-Driven Engineering
Parastoo Mohagheghi, Vegard Dehlen, Tor Neple
Have fun,
Andreas
Technorati Tags: model quality, modeling, DSL
Posted in Modeling | No Comments »
September 22nd, 2008
Hello,
we are happy to announce the availability of Oclarity/XMI.
Similar to our OCL AddIn for Rational Rose Oclarity/XMI is a tool that is capable to perform extensive checks on OCL expressions, including type correctness.
In contrast to the Rose AddIn it is a standalone application that reads XMI files. Currently, XMI files from Enterprise Architect and MagicDraw are supported. If you would like to have support for other XMI formats then don’t hesitate and let us know.
From now on, we will use the term “Oclarity” for the standalone application.
Oclarity comes with a modern GUI that uses latest GUI standards like the Microsoft Ribbon to provide the best usability:

We appreciate each and any feedback. So if you have questions, feature suggestions or encounter bugs please let us know (send an email to info@empowertec.de or support@empowertec.de).
Oclarity is only available for Microsoft Windows platforms and requires and installation of the Microsoft .NET framework 2.0 or higher.
The manual can be downloaded separately. It contains some basic information on how to use Oclarity and also some screen shots.
You can download Oclarity for XMI here for free.
Best regards,
Andreas
Technorati Tags: OCL, XMI, Oclarity
Posted in Announcement, EmPowerTec | No Comments »
June 4th, 2008
Hello,
some time ago
Julio Cesar Sampaio do Prado Leite has published some numbers from a survey on the usage of UML. There was only a relatively small number of participants but since it is so hard to learn about actual industry projects using the UML it is still an interesting read.
Best regards,
Andreas
Technorati Tags: UML
Posted in Modeling | No Comments »
May 27th, 2008
Hello,
on the puml mailinglist a call for papers for the Third international workshop on Quality in Modeling was issued. It is part of the MODELS ‘08 conference which takes place in Toulouse, France at 28 September – 3 October.
From the announcement:
The goal of this workshop is to gather researchers and practitioners interested in the emerging issues of quality in the context of Model-Driven Engineering (MDE). Discussions will take a large place and could address issues such as early quality control based on models at a high abstraction level, building prediction models for software quality based on model metrics, relationship between model quality and software product quality, quality control, etc. Submissions related to ongoing industrial projects aiming to increase quality are encouraged.
It’s surely an interesting workshop.
Proceedings of the first and second workshop can be found here and here.
Best regards,
Andreas
Technorati Tags: model quality
Posted in Announcement, Modeling | No Comments »
May 21st, 2008
Hello,
Jason Gorman from parlezuml.com made a comment on a posting that stated that the UML has failed and is no longer relevant. Basically Jason says that some of the authors arguments are correct but others are not and that – all in all – “UML is alive and well”.
The comments on the original posting are mostly affirmative, but there are also some comments in the defense of the UML.
I’d like to add another thought: the companies and organizations that use the UML more rigorous (and thus possibly discover its benefits) are usually large companies and organizations, often in the military sector or working on embedded software. Project workers in these types of organizations usually have neither the time nor the interest to hang out in the internet and read blogs and write comments. Therefore I think that the sum of all public statements does not accurately reflect the actual acceptance and appreciation of the UML in the software industry.
In addition, the UML is also used to capture requirements in analysis models, something that can’t be done in code.
Best regards,
Andreas
Technorati Tags: UML, modeling
Posted in Modeling | 1 Comment »
May 14th, 2008
Hello,
Juha-Pekka Tolvanen of MetaCase has published a call for papers for the 8th OOPSLA Workshop on Domain-Specific Modeling.
It takes place October 19-20, 2008 in Nashville, USA.
Best regards,
Andreas
Technorati Tags: DSM, OOPSLA
Posted in Announcement | No Comments »
May 13th, 2008
Hello,
XMI is a (in fact it’s not, but that is actually the mess) standard defined by the OMG for the exchange of models between tools.
Steven Kelly of MetaCase has written a blog posting concerning XMI. Basically, he claims that XMI is mostly unusable and its popularity is declining according to google.
The major causes for this unfortunate state of XMI are:
- The OMG hugely over engineered the XMI standard. The XMI specification is based on the MOF and thus introduced an additional level of abstraction.
- The OMG specified a couple of different versions, each requiring its own processing. The different version where driven by the associated UML versions.
- The OMG failed in providing a compliance test suite for XMI. Although they had plans to do this these plans where never realized.
- The vendors are also sometimes accused to actively try to “lock in” their customers to their own tool by making the XMI export proprietary. But on the other side this means that they cannot read XMI files from other tools thus losing possible customers. Personally I think that most vendors did not actively try to make their XMI format proprietary but that they just misinterpreted the XMI specification or that they did not want to spend the required effort to provide a fully compliant XMI format.
In practice, this means that a tool that wants to properly import XMI must write a dedicated importer for each supported other tool and for at least one of the XMI versions that are supported by the other tool.
In addition of being massively incompatible, the XMI files in itself are also often really freaky.
Lets look at an example in MagicDraw. Suppose we want to specify the type of an attribute as Boolean. The UML supports this as a builtin primitive type and thus one could assume that the representation in XMI should be straight forward. Not so with MagicDraw. If you open the dialog for the attribute type and click in the “type” field you are presented with the preselection “$OCL_boolean” and you could be tempted to use this suggestions, especially when you want to use the OCL:

If you resist this temptation and start to type “boo” MagicDraw offers these choices:

While the second choice is probably the better one, as a tool vendor you would have to support both forms since certainly some users would choose the first form.
Now let’s look how these different forms are represented in the XMI.
$OCL_Boolean:
<ownedAttribute xmi:type='uml:Property' xmi:id='_15_0_1_275013a_1210362988887_907256_342' name='underAge' visibility='public'>
<type xmi:type='uml:PrimitiveType'
href='UML_Standard_Profile.xml#_12_0EAPbeta_f720368_1161801304327_563815_114>
<xmi:Extension extender='MagicDraw UML 15.0' extenderID='MagicDraw UML 15.0>
<referenceExtension referentPath='UML Standard Profile::Validation Profile::OCL Library::$OCL_Boolean' referentType='PrimitiveType'/>
</xmi:Extension>
</type>
</ownedAttribute>
boolean from the MagicDraw profile:
<ownedAttribute xmi:type='uml:Property' xmi:id='_15_0_1_275013a_1210362988887_907256_342' name='underAge' visibility='public'>
<type xmi:type='uml:DataType' href='UML_Standard_Profile.xml#eee_1045467100323_191782_59'>
<xmi:Extension extender='MagicDraw UML 15.0' extenderID='MagicDraw UML 15.0'>
<referenceExtension referentPath='UML Standard Profile::MagicDraw Profile::datatypes::boolean' referentType='DataType'/>;
</xmi:Extension>
</type>
</ownedAttribute>
Boolean from the UML PrimitivTypes package:
<ownedAttribute xmi:type='uml:Property' xmi:id='_15_0_1_275013a_1210591343275_118710_1237' name='ended' visibility='public'>
<type xmi:type='uml:PrimitiveType' href='http://schema.omg.org/spec/UML/2.0/uml.xml#Boolean'>
<xmi:Extension extender='MagicDraw UML 15.0' extenderID='MagicDraw UML 15.0'>
<referenceExtension referentPath='UML Standard Profile::UML2 Metamodel::AuxiliaryConstructs::PrimitiveTypes::Boolean' referentType='PrimitiveType'/>
</xmi:Extension>
</type>
</ownedAttribute>
Now this is not a problem of XMI in itself but an incapability of the vendor to hide implementation details from the user. But it is typical for the problems that arise during processing XMI files.
Best regards,
Andreas
Technorati Tags: UML, XMI, MagicDraw
Posted in Modeling | 6 Comments »
April 19th, 2008
Hello,
if you would like to better understand the concept of UML profiles and their relation to the Object Constraint Language (OCL) I would recommend to read the nice paper OCL-based Validation of a Railway Domain Profile by Kirsten Berkenkötter.
Usually, OCL is propagated as a means to make UML models more precise, i.e. “better”, by adding information to the model that cannot be expressed with diagrams.
The usage of OCL in UML profiles is the other major application of the OCL. There it is used – along with stereotypes – to create a domain specific subset of the UML that is better suited for a given domain than just plain UML. Usually, a UML stereotype also defines a domain specific graphical presentation for the stereotyped element.
If you are familiar with the world of software modeling you are probably aware that currently two major schools of thought are contending for dominance. There are the proponents of Domain Specific Modeling Languages (DSL) who claim that a dedicated modeling language must be created for a specific application domain to allow effective modeling. And then there are the proponents of UML who claim that the UML provides a standardized, well defined and widely known modeling language which can of course be tailored to a specific domain (using profiles). Unfortunately, most of the people who make public statements concerning these contending approaches are biased, because they work for a tool vendor. For example, people working for IBM Rational will advocate the usage of UML, and people working for Metacase will propagate the DSL approach. Since this is a complicated topic I’m afraid that the only way to find an answer to the question “which is the best approach for my specific project?” is to make a careful evaluation and maybe a pilot project.
Best regards,
Andreas
Technorati Tags: UML, DSL, OCL
Posted in Modeling | 3 Comments »
April 3rd, 2008
Hello,
since 2008-04-01 I’m an OCUP fundamental now. Compared to various Microsoft exams I have taken more than 10 years ago this certification was pretty hard, for three reasons:
- The exam mainly checks the UML specification itself and not whether you can create good models (that is, using UML for describing the results of analysis and design work). This means, even if you are a experienced applicant of UML this knowledge won’t be of much use in the exam. In the standard Microsoft or Sun certification exams it is a significant advantage if you have been exposed to the relevant technologies in your work before.
- The checked content is very abstract and rich in detail. The UML specification is about 1000 pages thick and the fundamental certification covers about 1/3.
- There are no practice exams available, e.g. from Transcender or MesaureUp like for the more standard certifications. These practice exams are a very effective exam preparation.
- The preparation material I have used was written in German, but the exam was in English.
But I’m absolutely confident that the knowledge I have acquired during the preparation will help me to create better products for EmPowerTec. And it sure was a good feeling when I received my result after the test
Best regards,
Andreas
Technorati Tags: UML, certification, OCUP
Posted in EmPowerTec, Modeling | 2 Comments »
March 15th, 2008
Hello,
we plan to release a new product soon and I thought it would be a good idea to finally sign our installers so that our users perception of EmPowerTecs credibility improves even more
So I looked into the various alternatives and found a posting on Joel Spolskys Business of Software forum which stated that a Comodo code signing certificate for one year can be bought for just 85 USD. At this price (and with the current USD/EUR exchange rate!) that’s a no brainer for me.
The ordering on the K Software website was smooth and Comodo processed the order fine. But the certificate did not work! I approached the Comodo support which answered extremly friendly and timely but a bit shallow. I had to restate my arguments several times until I got an answer that looked as if someone had actually read my mails. But nothing helped and finally the Comodo support said that I have to ask the reseller K Software for further support. Now, Mitchell Vincent of K Software was totally helpful and offered my a refund and a reissue (basically a complete new purchase). He also made upfront clear that Comodo is quite slow in processing the refunds but he took the responsibility to forward my new order only after Comodo has eventually made the refund. Finally, a couple of days later I had the code signing certificate correctly installed:

To save you the same hassles, here is what I have learned during the process. I think both K Software and Comodo should make these points totally clear during the order process.
- Use the same machine for ordering and for installing (”collecting”, as Comodo calls it) the certificate. I use different virtual machines for development and for email and I ordered on the development VM and tried to install the certificate on the “office” VM. However, I was not aware that the innocent link in the email actually performs the installation.
- Order and install the certificate as administrator. I usually work as restricted user.
- Use Internet Explorer. I use Firefox normally. Although Comodo says that Firefox should work they recommend to use Internet Explorer.
- Add https://secure.comodo.net to your trusted sites. I have scripting switched off for non trusted sites.
These points are probably totally obvious to Vincent Mitchell and the staff at Comodo but for me they where not. In particular I was not aware that the certificate is actually installed by a script in the browser.
If you don’t make the mistakes I have made its a pretty smooth process for a great price.
Finally, here is a link that helps you to integrate the code signing in your build.
Best regards,
Andreas
Technorati Tags: Code signing, Comodo, K Software
Posted in Software development | No Comments »
February 11th, 2008
Hello,
initially, I wanted to write the fourth posting in a series of posts about the “Current state of modeling”, a focal point on software modeling in the German Computerzeitung.
The fourth article was written by Chris Henn from E2E. It was quickly obvious that this article also is more or less an advertisement of a commercial product. I don’t think that’s a problem as long as the article still provides some value, even if it is just to learn something about an interesting product in the area of software modeling. Unfortunately, the article seemed a bit shallow to me and did not even give me a rudimentary understanding of how this product works. I then visited their website in the hope to find some white papers or similar resources that illustrate how their product works. I found only annoying marketing blurb and the section “DEMOS & DOWNLOADS” which seemed just what I was looking for. But when I clicked on “DEMOS & DOWNLOADS” I was asked for my contact details. Personally, I think that I should be able to collect information about a product without giving away personal data. Therefore, I did no longer try to learn and blog about E2Es products. I really don’t get those companies that in their greed for “leads” abstain from reaching the highest possible number of visitors and to provide some highly relevant content for the search machines. Maybe they fear that someone would download all their demos and other resources and create a competing product based on this information (but if I wanted to I could easily do this with faked information, so what?).
Best regards,
Andreas
Posted in Modeling | No Comments »
February 4th, 2008
Hello,
comment spam in blogs is a real problem but I use Akismet and it works amazingly good.
But occasionally even Akismet misses a spam comment. Here is one which almost made me admire the unknown spam bot author:
“Hi…I found your site via Yahoo! when i was searching for models modeling, and this post regarding Oclarity 1.8.4 released really sounds very interesting to me.. Thanks.”
They mentioned the theme of my blog (”models modeling”, although I assume it was meant in a different way…) and they did not even add a single URL to the comment body. The only reference to the site they want you to visit was in the “URL” field of the comment.
I assume that Akismet will quickly learn that the used URL belongs to a spam comment and that such a comment will be correctly flagged as spam in the future.
Best regards,
Andreas
Posted in Uncategorized | No Comments »
February 3rd, 2008
Hello,
in a newly created managed C++ project a file named AssemblyInfo.cpp is added to the project automatically by Visual Studio. The file contains the same information than the according file in C# projects but in contrast to the C# assemblies this information is not available in the Windows explorer and all other tools that expect the version information in the traditional form (as a resource in the dll). For example the setup program we use provides the capability to overwrite a DLL during installation only if the installed DLL is of lower version than the DLL contained in the setup program. But for this to work it needs to retrieve the version information from both DLLs and it fails to do so for a standard managed C++ assembly.
The reason is that the information contained in AssemblyInfo.cpp is not automatically added as a resource to the dll (but it is for C# projects). Here are more details.
The bottom line is that you must explicitly add a resource of type “Version” to your managed C++ project to have version information in the traditional form. The information in AssemblyInfo.cpp is used only by .NETs runtime system.
The hard part however, is to synchronize the information contained in AssemblyInfo.cpp and the resource file. There is a Visual Studio AddIn that claims to support that, but I did not try it. We use a script to build our setup-programs and this script updates version information, generates configuration files, rebuilds all affected solutions and finally invokes the installer build program. I think we will add the update of the resource file from the AssemblyInfo.cpp somewhere in this tool chain.
Best regards,
Andreas
Posted in Software development | No Comments »
January 24th, 2008
Hello,
the organizers of the MoDSE 2008 have published a call for papers.
From their website:
“The objective is to present how model-driven evolution can enforce and reduce critical risks and important costs involved in software evolution, by employing high-level abstractions. We aim to present current research works about model-driven evolution and to exchange, discuss and debate about gained experiences, challenges, needs, proposed approaches and innovative solutions around the Model-Driven Software Evolution.”
This is a small, 1/2 day workshop on 2008-04-01 in Athens, Greece.
Best regards,
Andreas
Posted in Modeling | 2 Comments »
January 24th, 2008
Hello,
the organizers of the Models ‘08 conference have asked for workshop proposals.
From their website:
“The MoDELS series of conferences are devoted to the topic of model-driven engineering, covering both languages and systems used to create complex systems.”
The Models ‘08 takes place from 2008-09-28 to 2008-10-03 in Toulouse, France.
Best regards,
Andreas
Posted in Modeling | No Comments »