INRIA Postdoc position in MDE and Cloud Computing available
Free and online Model Thinking course
Creating DSLs, a word of caution
Why did I fail with the online code-generation services – Advise(II): Don’t sell to developers
Code Generation 2012 – Programme available
First 50 terms in the MDE Glossary
Using Model Driven Mechanism to Explain Model Driven Software Development
In the beginning, the model driven mechanism is a group of principles we summed up in the design of software. Then found that it was a structural fundamental appeared in a wide range of systems, as well as to MDE/MDSD.
In the “Presentation on Model-Driven Mechanism in Information Systems and Enterprise Engineering“, mentioned that “MDM is the common fundament for both MDS and MDA/MDD.” Yet, presented a illustration for “A demand-driven architectural framework for development of ISs, based on MDM” and pointed out “this is also an explanation about the system of model driven development.”(P16)
The Figure 1 is a simplified graph for MDM, may be called as the triangle of MDM. Note that, for the relationship between the applied models and the operational device, from a black-box perspective (i.e. the whole of the system), we can dynamically change some functions or behaviors (output) through changing the models, this is why called it model-driven; from a white-box perspective (i.e. inside of the system), the device reads and uses the data of the models according to the modeling knowledge to make of its functions and behaviors. (It has used executing but it may be referred to some special meanings in the context.)
MDM in traditional software development systemIn a traditional software development system (organization), the programmers reading and understanding the design documents according to some specifications for them. In fact, there are much knowledge for understanding / using the documents correctly, from languages, glossaries to rules, habits and so on. You can give the different models (the documents) according to the knowledge the programmers known, then they will produce the code expected.
MDM in a model driven software development system using a model-transformation approachIn a model driven software development system, for example, by a model-transformation approach, the applied model will be of the target application system in such as UML at the level 1 of the metamodeling layers of MDA. The modeling knowledge will be the metamodels to the level 2, including the transforming rules (model) as well. A code-generator as the operational device in MDM will reads / uses the models of the target than produces the code. You can give it different models to get different expected code of the target system, as long as in compliance with the metamodels.
A model driven enterprise application framework based on MDMOf course, these may merely be the common sense in the field of MDE, but they are good examples to prove the universality of MDM, at least. One of our focus for MDM is the Model Driven Systems (MDS), which has the characteristics to dynamically changing its functions or behaviors through change the applied models at runtime. For example, see the Figure 4.

From a programmer’s perspective, a huge difference between a traditional application and the model driven application is, the enterprise / business models (such as a data structure of a purchase order) will be hard-coded in software for the former, and for the latter, it will be only hard-coded some rules / specifications (the metamodel) to define an order, so, the users will be able to change such the order format (or define a new form) when running the application system.
Finally, we can see, MDSD and MDS are the different things on the same principle, that is, the model driven mechanism (MDM). They are not contradictory. One can use the MDSD approach to develop a MDS as well.
Filed under: Architecture, Models & Modeling Tagged: MDApp, MDE, MDM, MDS, MDSD, Model-Driven
CloudMDE 2012 – 1st Int. Workshop on Model-Driven Engineering on and for the Cloud
New OCL version available: OCL 2.3.1
Interaction Flow Modeling Language RFP is now out
A Presentation on Model-Driven Mechanism in Information Systems and Enterprise Engineering
This is a presentation (slide) in ppt format: Model-Driven Mechanism in Information Systems and Enterprise Engineering. it is an extract from a lecture of mine on “Enterprise, Model, and Information System” at Management School, Jinan University, Guangzhou, China, on September 23, 2007[*]. This extract with a little of modification is around the concept of model driven mechanism (MDM) and the relevant concept model driven systems (MDS). I have mentioned them in some posts on my blog, such as A Roadmap of Research for Enterprise Applications and Model-Driven: An Essential Requirement Come from Customers. I have also uploaded it on SlideSharet but it appeared very poor after the conversion on the site. so, I recommend to download the file to watch - there are some animations in the slide, in aid of the illustration to the ideas.
[*] The original file of the lecture at http://www.ee-forum.org/downloads/ty_jnu070917a.pps (in Chinese)
Last updated on January 15, 2012
1. P20, removed the PDCA cycle: it was with more explaining but not included in this vision.
2. P22, the order to showing the 4 labels on the MDM triangle, it is now appeared at the beginning.
3. P24, corrected the error at “Martin, James (2005)” to (1995).
(previous version: ty_jnu07_mdm.ppt)
Filed under: Applications, Architecture, Enterprises, Models & Modeling Tagged: Enterprise-Engineering, Information-System, MDApp, MDM, MDS
Language Workbench Challenge 2012
Tutorial: How to change the color of inactive selected items in Windows 7
Since I upgraded to a Windows 7 machine I had a problem seeing which element was selected in my Enterprise Architect project browser.

Not when it was selected and active (dark-blue), but when I went on to work on something in a diagram.
The standard “inactive selection color” of Windows 7 is just too faint.
To illustrate that, look at the picture on the left and try to figure out which element is actually selected.
Well, if you look really carefully you’ll notice that the background of “Primitive1″ is actually just the slightest bit darker then the rest of the background.
When I first noticed this I tried to fix it by changing my monitor settings, but no amount of brightness, contrast or color balance changes made the selection more visible without messing up everything else.
So then I started googling and I soon found the solution:
- Select Start|Control Panel|Change the Theme

- Once there choose Window Color

- And Advanced appearance settings…

- Then choose 3D objects as item and click on the dropdown for Color 1: and click on Other…
- Here you move the triangle on the right just a few nudges down

- Now OK and Apply and wait until Windows has applied the settings.
- Now check the inactive selection color again in EA. If all is well it should now look like this:

- To be sure that you don’t loose this setting you can save your theme in the personalization window.
SimpleOCL tool
EA Navigator 2.1 released
With the current release 2.1 the EA Navigator has now matured into a real product that will make the life of any Enterprise Architect user a lot easier.![]()
I can know, as it’s primary user I use it constantly during my daily modelling tasks, and I can assure you that it has already saved me heaps of time.
And because any real product should have a logo, so I proudly present to you: The EA navigator logo.
After the complete re-factoring of version 2.0 version 2.1 has been more about polishing and refining. I’v been using my own user feedback to enhance the existing features, and add the features I was missing.
One of the things I’ve been focusing on is the bi-directionality of all navigate features. So if I can navigate from an operation to the sequence diagrams that use it, then I also want to be able to navigate from that sequence diagram back to the operations it shows.
What’s new in EA Navigator 2.1 New and improved iconsMost of the icons used in the navigator window have gotten an update. The folder icons now already show what kind of elements can be found here.
Tagged valuesIn Enterprise Architect you can define “RefGUID” style tagged values is you want to link an element to another element (see EA Manual for more information).
This is a flexible way to add your own customized relations to the model.
All tagged values of a class are being examined. If their value is a reference to another element they will show up in the navigator:
Referencing Tagged ValuesThe referencing tagged values allow for navigation in the other direction. It will show all RefGUID style tagged values that reference the selected element.
This feature is available for all types of elements.
The owner feature simply allows to navigate further to the owner of the element. This feature is available for all types of elements.
The owner feature is a bit special as it doesn’t have a folder that you have to open, but it shows directly under the selected element.
Sequence diagram operationsStarting from a sequence diagram you can now quickly navigate to all operations called on the diagram. This sequence diagram

shows up like this in the EA Navigator window

- Attribute Type
The attribute type’s behavior has been changed to show without a containing folder, just like the owner feature. - Relationship select
Relationships can now also be selected. Selecting a Relationship will select it’s source, except for sequence diagram messages, they open their sequence diagram when double-clicked. - Number of items in window
The number of items retained in the navigator window has been increased to 50. - Implementation to operation
From a Behavior (Interaction, Statemachine or Activity) or from a diagram contained by such an element can be navigated to the operation it is implementing. - Add/Remove programs Icon
The EA Navigator now has its own icon that shows up in the add/remove programs, to easily identify the add-in among all other installed programs.
More information about the EA Navigator add-in for Enterprise Architect can be found here:
ERCIM news on Evolving Software – Featuring MoDisco and many others
Top 10 modeling posts of the year
List of Executable UML tools
Do you want to discard this editor's changes ?

This happens when you did change your model and some external changes (aka somebody else changed your file) happened before you pressed "save". This is not only an EMF problem, any editor has kind of problematic. Either way the end user have a very hard time undestanding why he has to pick one or the other version as most of the time these changes are not conflicting !
Is that the best we can do ? Another option is to compare both versions, detect conflicts, and if there is no conflicts, just merge the changes.

Here I changed the number of pages in the EMF Book from the model, and changed the title through the textual editor. When going back on my editor, the comparison, conflict detection and then merge process happens and I get this :

And when I have conflicts? Then the editor can't do much, right, at least it can helps you and show you the conflict :

How is it implemented ? That's fairly easy using emf and it's diff/merge support :
The general process is : the editor tells the WorkspaceSync class when it got saved (or freshly loaded) . This WorkspaceSync keep a copy of the state of the editor as "ancestor". When an event comes from the workspace, the editor version and the workspace versions are compared using the original copy as a common ancestor to detect conflicts. If there is no conflict, it merges, if there is at least one conflict it asks user.
The drawback is clear with this implementation : you're keeping around - in memory - a copy of your model to be able to detect conflicts later on. As such that solution is not for every case.
Other options are possible and might be great ways to exercise your EMF skills, if you try something, tell me !
An Architecture Model for Cognition, Information Systems as well…
In recent post I told about the cognitive (triangle) cycle and the cognitive structure triangle. Further, A cognitive architecture (core) model could be formed through join these two models together, see Figure 1.

Figure 1. Cognitive Architecture Model
Thinking making Thories, Thories deciding Action, Action imposing on Objects, Objects providing Feeling, Felling building Models, Models supporting Thinking… In this model, all the positions and the sequence are important. However, my motive to think of these was not to attempt to cross-border to research cognitive issue. To me, this model, almost a model of architecture for information systems, though it might not be quite obvious.
Firstly, the ‘objects’ just common objects but not the OO’s objects, and it needs to make more sophisicated or rigorous definations to the concepts such as models and theories, and the relationships with the concepts in software field…
Filed under: Architecture Tagged: Architectural-Model, cognition, Information-System








