Models Everywhere

Various considerations about Model Driven Engineering

Archive for November, 2010

Bits of History (Uml is not UML)

Posted by jbezivin on November 26, 2010

OIM: One initial Microsoft modeling project

Among the multiple attempts of Microsoft to propose a general modeling approach, the Uml proposal is probably one of the less known. It bears nevertheless a lot of interesting lessons. It is part of OIM (Open Information model).

Uml is not UML. Uml (capital U, small m, small l) was the Microsoft equivalent of the OMG UML 1.0. It was a very interesting Microsoft tentative to provide a coordinated set of Modeling Languages. The simplied chart shows the main organization:

These DSLs corresponds to the following subject areas:

  • Umx Uml Extension Model. A set of generic extensions to the Uml model, and a realization of some of the predefined stereotypes in UML v.1.0.
  • Dtm Data Type Model. A set of Uml model extensions that supply numerous common data types.
  • Cde Component Description Model. A set of generic component-related Uml model extensions describing run-time (executable) components and their specifications.
  • Com COM (Component Object Model) Model. A set of COM-specific extensions to the Cde and Dtm models.
  • Gen Generic Model. A set of general-purpose interfaces, relevant across diverse information models.
  • Dbm Database Model. A set of extensions to the Uml model covering generic database concepts.
  • Sql SQL Server Model. A set of SQL Server-specific extensions to the Dbm model.
  • Ocl Oracle Model. A set of Oracle-specific extensions to the Dbm model.
  • Db2 DB2 Model. A set of DB2-specific extensions to the Dbm model.
  • Ifx Informix Model. A set of Informix-specific extensions to the Dbm model.
  • Tfm Database Transformation Model. Describes transformations for moving data between databases.
  • Olp OLAP Model. An extension of the Dbm model describing multidimensional databases.
  • Sim Semantic Model. An extension of the Dbm model that enables users to interact with database data without learning data manipulation languages.

The global organization could be described as follows:

As we see, the role of the OMG MOF was taken by the RTIM.

RTIM Repository Type Information Model  is the metametamodel – the language in which the other information models (or metamodels) are defined.

The organization of these various DSLs was intended to facilitate the global handling of information systems at the modeling level:

Let’s do a small zoom on the Cde metamodel. This more or less corresponds to the OMG CCM (Corba Model of Component), a 600+ pages recommendation document:

Among the interesting properties of this metamodel, an explicit representation of pre and post conditions:

Another interesting property of this metamodel is the management of events:

Cde defines a specific interface called ICdeEventSourceSpec for objects that are the source of events. This allows both component specifications, interfaces, and other objects to be event sources by supporting this interface. In Com, it is component specifications (Com class specifications) that are event sources. In Corba, interfaces are event sources.

The Cde covers one particular event scheme, where an event is represented as an operation on an interface, and where the parameters of the operation provide data about the event. Many events can be defined on a single interface. The events can be raised in different ways:

  • In push models the interface defining the events is implemented on different objects than the object raising the event. The raiser then invokes an operation on those other objects as a means of signaling the event. Such consumers will have registered interest with the raiser in component model specific ways.
  • In pull models the interface defining the events is implemented by the event raiser. A consumer invokes an operation on that interface to poll for the event.

There are still many references to the Microsoft repository System, like the following:

The standard serialization format for models is not XMI, but XIF (for XML Interchange Format):

Of particular interest to many of us also is the Transformation Metamodel TFM:

Of course, one name is behind most of these activities: Phil Bernstein, the leader of the model management group:

So the interesting question is “what happened to this OIM project?”.  Dit it get discarded like the recent Oslo project?

What I remember is the following, but I may be wrong:

  1. The OIM is quite successful. Because of the strong database bias and high skills of the group, the underlying model repository scales up much better than current modern modeling systems.
  2. Microsoft defines a strategy consisting in putting the OIM initiative in the open by donating all the technology to the MetaData Coalition, a non for profit organization
  3. The MetaData Coalition accepts the Microsoft donation
  4. The MetaData Coalition and the OMG establish cooperative relationship [April 20, 1999].
  5. The Metadata coalition merges into the OMG and discontinue independent operation [September 25, 2000]

This story of the first attempted Microsoft approach to modeling is partially recorded at:

Interesting reading:

Posted in Microsoft | Leave a Comment »

Is HTML the new legacy?

Posted by jbezivin on November 24, 2010

What can we do about legacy?

Legacy modernization has a very high cost tag. In many situations the price of modernization is completely discouraging.

As a thread of discussion on Twitter, @tk300 suggests a disciplined attitude to limit the problem:

But this applies only to new legacy, not the one that has already been produced in RPG,COBOL, ADA, PL/1, HTML or even Java?

And even if we decide to follow this advice, this probably means that we should also stop innovation?

May be we could think of new techniques that will produce software easy to evolve or to recycle?

Posted in ADA, COBOL, HTML, Legacy Modernization, PL/1 | Leave a Comment »

MDDAY’2010 going to be a big success again

Posted by jbezivin on November 23, 2010

MDDAY’2010 leading for a new success in Paris on Thursday


Model Driven Day, the french main meeting on Model Driven Engineering

Each european country has its own specificities when it comes to adopting new technologies and new practices in the IT domain. It may be interesting to compare how model driven engineering (MDE, MDA, MDD, DDD, etc.) has been gaining recognition in various parts of the world in the last ten years. If we look at different indicators (events, companies claiming to work on the subject, participants to international conference like Eclipse Summit Europe, etc.), several countries are quite active in the domain. I will give special recognition to Germany and Spain, but UK, France, Austria, or Netherlands are also quite active. What is remarkable is that the form that the deployment of software modeling practices takes in different places are not always the same. In Germany for example it seems that MDE applied to embedded systems is a priority and in France the application of MDE to information systems is more apparent although there are also some interesting projects in embedded systems. As a trace of this, a typical french event is taking place this week in Paris, the Model Driven Day (MDDay). This year like last year, registrations are closed and they are waiting for a record number of participants. The meeting will take place this Thursday at the new Microsoft Conference Center in Issy-les-Moulineaux. It is organized by several french companies that have been active in MDE in the past years:

The program will start with a guest talk by Steve Cook and terminate with a panel with Laurent Bossavit, Jean-Pierre Mevel, Xavier Warzee, Philippe Desfray and Pascal Roques, all leading people in France on software modeling. Needless to say that everybody is eagerly waiting for Steve Cook introductory presentation. The emphasis this year is on the synergy between agile and model driven approaches. But there will also be a presentation of the overall Microsoft approaches to modeling.

The interesting format of this one-day conference on MDE is that companies involved in software modeling will present one aspect of their skills and will have one of their customer testifying about the deployment of MDE.

This year the following talks will take place:

  • Compatibility between MDE and agility (on the path of Domain Driven Design) by Object Direct and ADIXE.
  • Organization of an important Model Driven Project by Objecteering and DCNS
  • MDE at the service of Agility by W4 and the state of Geneva
  • Reconciliating software developers with real Model Driven approaches MIA-Software and the BRIT Air company
  • Framework interoperability in large system engineering by SODIUS and EADS
  • Agile MDA, pragmatic and executable, by SoftFluent and SPEIG
  • A survey of Microsoft modeling initiatives by Microsoft and SOGETI
  • Model-based Agile development with PMF for Windows Phone 7 applications by Microsoft and SOGETI
  • Migration of Statefull Fat-Client applications ona JEE/SpringWebFlowJSF stack at a central bank by JAXIO and Banque de France
  • Building a registry for insurance products by the WYMIWYG approach (What You Modelize Is What You Get) by OBEO and CAP GEMINI
  • Examples of MDA modernization of Applications – Case studies COBOL2J2EE and Natstar2J2EE with BluAge Reverse by BluAge and the SOPRA Group.

This MDDay even has been organized since 2007 and all presentations from previous years are available in ZIP/PDF or RAR/PDF format (unfortunately most of them in french):

Due to a big success, the registration are closed, but one may ask to be added to the waiting list by mail to info@mdday.fr

Posted in MDA, MDE, Microsoft | 1 Comment »

INTERNATIONAL CONFERENCE ON MODEL TRANSFORMATION (ICMT 2011)

Posted by jbezivin on November 22, 2010

ICMT 2011 in Zurich in 2011

Co-located with TOOLS Europe 2011, the International Conference on Model Transformation will take place in Zurich – Switzerland, 27 – 28 June 2011

The call for paper is out:

Overview

Modelling is a key element in reducing the complexity of software systems during their development and maintenance. Model transformations are essential for elevating models from documentation elements to first-class artifacts of the development process. Model transformation includes model-to-text transformation to generate code from models, text-to-model transformations to parse textual representations to model representations, model extraction to derive higher-level models from legacy code, and model-to-model transformations to normalize, weave, optimize, and refactor models, as well as to translate between modeling languages.

Model transformation encompasses a variety of technical spaces, including modelware, grammarware, and XML-ware, a variety of transformation representations including graphs, trees, and DAGs, and a variety of transformation paradigms including rule-based graph transformation, term rewriting, and implementations in general-purpose programming languages.

The study of model transformation includes foundations, semantics, structuring mechanisms, and properties (such as modularity, composability, and parameterization) of transformations, transformation languages, techniques and tools. An important goal of the field is the development of high-level declarative model transformation languages, providing model representations of transformations that are amenable to ’higher-order’ model transformation. To achieve impact on software engineering practice, tools and methodologies to integrate model transformation into existing development environments and processes are required. ICMT is the premier forum for the presentation of contributions that advance the state-of-the-art in the field of model transformation and aims to bring together researchers from all areas of model transformation.

Topics

Topics of interest include, but are not limited to:

Transformation paradigms and languages

  • graph rewriting, tree rewriting, attribute grammars
  • rule-based, declarative, imperative, functional
  • textual, graphical
  • pattern matching
  • transformation by example
  • modularity, reusability, and composition
  • comparison of transformation languages
  • theoretical foundations

Transformation algorithms and strategies

  • model representations: graphs, dags, trees
  • bidirectional transformation
  • incremental transformation
  • scalability
  • optimization
  • termination and confluence
  • higher-order transformation
  • evolution of transformations

Implementation and tools

  • design of transformations and transformation languages
  • verification, validation and testing of transformations

Applications and case studies

  • refactoring
  • aspect weaving
  • model comparison, differencing and merging
  • round-trip engineering
  • co-evolution of models and meta-models
  • reverse engineering (code-to-model)
  • code generation by model transformation

Industrial experience reports

Empirical studies

Submission guidelines

All contributions will be subject to a rigorous selection process by the international Program Committee, with an emphasis on originality, practicality and overall quality. Papers should clearly indicate their contributions with respect to previous work. Each paper will be reviewed by at least 3 committee members. All submissions should follow the LNCS format and should include the authors’ names, affiliations and contact details. Further instructions for submitting a paper will be available at http://www.model-transformation.org/ICMT2011/.

As in previous editions of ICMT, we intend to publish proceedings in the Springer LNCS series. Moreover, a special issue with a selection of the best papers from the conference will be published in the Journal of Object Technology (JOT).

Important dates

  • Abstract submission: 4 February 2011
  • Paper submission: 11 February 2011
  • Notification of acceptance: 14 March 2011
  • Camera-ready version due: 28 March 2011
  • Conference dates: 27-28 June 2011

Organization

PC chairs:

  • Eelco Visser
  • Jordi Cabot

Publicity chair:

  • Dimitrios Kolovos

Web chair:

  • Davide Di Ruscio

Steering committee:

  • Jean Bézivin
  • Martin Gogolla
  • Jeff Gray
  • Richard Paige
  • Alfonso Pierantonio
  • Antonio Vallecillo
  • Laurence Tratt

Program Committee:

  • Andy Schürr
  • Antonio Cicchetti
  • Bernhard Rumpe
  • Daniel Varro
  • Dennis Wagelaar
  • Eric Van Wyk
  • Gerti Kappel
  • Gregor Engels
  • Günter Kniesel
  • Hans Vangheluwe
  • Ivan Kurtev
  • Janis Voigtländer
  • Jendrik Johannes
  • Jesus Garcia-Molina
  • Jim Cordy
  • Juan de Lara
  • Jurgen Vinju
  • Krzysztof Czarnecki
  • Marco Brambilla
  • Mark van den Brand
  • Nate Foster
  • Oscar Nierstrasz
  • Paolo Atzeni
  • Perdita Stevens
  • Pieter Van Gorp
  • Ralf Laemmel
  • Reiko Heckel
  • Simon Thompson
  • Thomas Kuehne
  • Tony Clark
  • Zhenjiang Hu

Posted in MDE, Transformation | Leave a Comment »

IBM opening a CAS in France

Posted by jbezivin on November 22, 2010

IBM 27th Center for Advanced Studies (CAS) opening in France.

I was a student at the University of Grenoble in 1967 when they decided to open there an “IBM scientific center“.  We were very lucky at the time to have access to many new technologies like this wonderful CP/CMS operating system (Control Program/Conversational Monitoring System), one of the first conversational console-based system with a virtual machine generator (yes this was in 1967). We were one of the first generation of students to have access to the PL/1 compiler and to learn this language (was it a chance?). I did three successive co-op stays with IBM Grenoble. I worked for them in my master thesis in 1970 on conversational systems using the first visual consoles (IBM 2260).   The IBM scientific center in Grenoble was a very successful collaboration with the center of La Gaude near Nice. But since that time, IBM has not been very active in France. The closer research lab is in Zurich.

This was until last week.  Now there is a CAS in Montpellier and IBM is returning to France. This was celebrated last Friday in Montpellier and ended with a nice dinner at  la Réserve Rimbaud, a very “chic” restaurant in the center of the town (see “Le Cas de Patrick“).

CAS France is the IBM Center for Advanced Studies dedicated to foster collaboration in France among academia, industry, government, and the IBM technical community, and transfer scientific innovations and breakthroughs into IBM products and services.

According to IBM, by providing access to world-class IBM technical staff, products and other resources, CAS France acts as a gateway for academic professors, researchers and students who want to address research issues of strategic business value. Conversely, it exposes the broader IBM technical community to novel research directions and state of the art research, nurturing its Technical Vitality.

CAS France conducts and coordinates Applied Collaborative Research projects integrating public research centers, IBM France and its strategic customers and partners. Typical projects involve university researchers, interns or PhD students collaborating with IBM France staff. They can take place at the Regional (Competitive Clusters), National (ANR and FUI frameworks) and Europeanlevels. CAS France focuses on the following technologies and usages:

Technologies:

  • Business Processes and Business Rules
  • Business Analytics and Optimization
  • Information Management
  • Cloud Computing
  • Visualization and Human Computer Interaction
  • Ontologies and Semantic Web technologies

Architecture and integration:

  • Healthcare
  • Water, Energy management
  • Smarter Cities

CAS France is a focal point for various IBM France university relations programs, including theFaculty AwardsPh.D. Fellowship and Shared University Research programs. It is an important resource for IBM France, developing its contribution to the French research and technology ecosystem.

The leader of the IBM CAS France is Patrick Albert, one of the co-founder of the ILOG company recently acquired by IBM.  There are now 27 CAS through the world according to IBM (list of IBM CAS).

Congratulation Patrick! Well done.

Posted in IBM | Leave a Comment »

University courses on programming for Mobile platforms

Posted by jbezivin on November 21, 2010

Following the previous post on new software engineering courses, I am getting some news on US Universities that are offering courses for programming mobile platforms like iOS (Apple) or Android (Google). Jeff Gray has mentioned the following:

  • Stanford (Paul Hegarty)
  • Virginia Tech (Jules White)
  • Vanderbilt V-MAT group
  • Columbia University
  • MIT (Hal Abelson)
  • Columbia University
  • University of Maryland (Adam Porter)
  • Carnegie Mellon – Silicon Valley( Tony Wasserman) - (Tony gave recently a really neat talk at FSE FOSER )
  • Harding University (Frank McCown)
  • University of Alabama (Jeff Gray)

I do not know European universities that are engaging in such specific courses, but probably there are some.

There is an interesting reference to Hal Abelson on this subject. I cannot resist quoting him:

“Mobile applications are triggering a fundamental shift in the way people experience computing and use mobile phones. Ten years ago, people “went to the computer” to perform tasks and access the Internet, and they used a cell phone only to make calls. Today, smartphones let us carry computing with us, have become central to servicing our communication and information needs, and have made the web part of all that we do. Ten years ago, people’s use of computing was largely dissociated from real life. With the ubiquity of social networking, online and offline life are becoming fused.”

It would be difficult to express this evolution more accurately.

On a related subject, some comparative information on iPhone and Android development environments is becoming available:

Posted in Android, Applications, Mobile, Software Engineering | 2 Comments »

New software engineering courses

Posted by jbezivin on November 21, 2010

Developing applications for mobile devices

Software engineering is rapidly evolving. A huge amount of the software that is developed today is produced as a set of so-called applications for App Stores.

Only in the Apple App store there is currently more than 300,000 applications available [ref] . When we take into account the Android market (170,000), the Windows phone market, the Nokia market and all the emerging platforms for mobile devices [ref], this corresponds to a huge software production silo. This is happening very rapidly since in July 2008 there were only 500 applications in the Apple App Store. The development curve on the Wikipedia site looks exponential.

I have several questions about this rapid evolution, and among them:

  • What are the programming languages used for these development? Java? Objective-C?
  • What is the average size (in LOC or in number of classes) of an application?
  • What are the methods (if any) used to develop these applications?
  • Are formal methods used?
  • Are the requirements explicitly represented?
  • How is the maintenance of these applications organized?
  • What does the total development effort of all these applications represent in the total software development effort in the world?
  • What is the status of the application developers (employees of big companies, individual programmers, etc.)?

I do not know the answers to these questions, but I have the impression that this phenomenon is going to deeply impact the way we consider software production. I know several companies (in the bank domain for example) that are already changing the vision of their information system architecture to integrate this.  They are looking at their old legacy application portfolio to see how this could evolve to accommodate new applications written for mobile platforms. The old client-server organization is impacted by the mobile-equipped client. The way they internally produce software or acquire software (applications) from external vendors after adequate testing is also impacted.

We have already seen several interesting projects in the Eclipse modeling area targeting the production of mobile applications. Of course this is mainly Android since Apple forbid such practices (applications have apparently to be developed natively in Objective-C and cannot be generated).

One interesting observation is that the universities that have always been in advance in the domain of software engineering are today recognizing that the application production for mobile devices requires different skills and different methods. As a consequence they are rapidly opening specific courses for mobile application development. If we want to see which universities are most innovative, most open on their environment, most adaptive, we may look at those that are opening such courses. Apparently the first to take such initiative was Stanford university.  Today they are sometimes offering free online courses.  And they seem to have a lot of success as reported by many Twitters:

etc., etc.

I would also be interested by other answers, like:

  • Are these courses targeting only iOS, or Android or are some of them platform-agnostic?
  • What are the universities that are opening such courses?

Posted in Application, Software Engineering | 4 Comments »

Architecture Ecosystem

Posted by jbezivin on November 20, 2010

The Architecture Ecosystem OMG Special Interest Group.

The AESIG initiative at OMG has a focus on interoperability and integration:

We recognize that different groups at different times, with different concerns may address the same concepts in different ways. This can happen by accident or intent. It can result from confusing viewpoints with information metamodels. It can result from political consequences or simply personalities of the people involved. And it happens all the time, over almost any subject one could imagine.

But we also recognize the value of information integration, sharing, collaborative development and the network effect the the promotion of effective information discovery, management and use.

As a result, it may be helpful to examine different approaches to how information can be integrated, their characteristics, and benefits and drawbacks. Then we can layer on top of these different approaches the methods, tools and best practices techniques that would support these different approaches. This information may be helpful in charting an initial course of action for the AE SIG that we can evolve over time.

Different approaches to integration may be found on the AESIG Wiki.

As a more specific discussion of alignment, a previous post may also be relevant.

The Wiki has a pointer on the Zoos (see also post).

See also the Petstore benchmark as a set of linked models (UseCase)

Posted in Integration, OMG | Leave a Comment »

Another classification of transformations

Posted by jbezivin on November 20, 2010

Different kinds of transformation

Rafael started an interesting discussion about the mutual interest of various kinds of model transformations:

In a previous post I proposed a first classification of transformations:

  1. Code to Model Transformations (C2M)
  2. Model to Model Transformations (M2M)
  3. Model to Code Transformations (M2C)

Here I would also like to introduce another classification, quite orthogonal to the previous one and however very important:

  1. Transformations executed at software development/production time
  2. Transformations executed at software maintenance/modernization time
  3. Transformations executed at software operation/execution time

These three kinds of transformations have very different properties.

MDSD (Model Driven Software Development) is a special case of MDE (Model Driven Engineering) where the transformations executed are mainly M2C transformations executed at software/development time.

Posted in MDE, MDRE, MDSD, Transformation | 5 Comments »

About model transformations

Posted by jbezivin on November 20, 2010

Model Transformations are essential

Some recent Twitter discussions triggered by the interview of Steven Kelly by Angelo Hulshout are interesting:

Rafael Chaves supports the idea that “the only model transformation that really matters is from original model into code”:

I do not agree with this idea.  In classical MDE we usually distinguish three different kinds of transformations:

  1. Code to Model
  2. Model to Model
  3. Model to Code

The most popular transformation is of type 3. This is sometimes called Model2Text or MOF2Text and typically allows to generate Java code from UML models. More generally these kinds of transformations have been heavily used in MDD for software artefact generation from abstract models. The source model conforms to a given metamodel (like the UML metamodel) and the target text conforms to a given grammar (like the Java grammar). There is an Eclipse M2T project.

But transformations of type 2 called M2M are central. The Eclipse M2M project proposes for example QVT and ATL but there are plenty of other possibilities. There are many examples of such transformations, for example in the ATL transformation zoo. In these M2M transformations, there is usually at least one source metamodel and one target metamodel, usually different.

The less known transformations are of type 1 sometimes called Text2Model. They are usually used in reverse engineering of legacy code in projects like the Eclipse MoDisco project. One example is the extraction of Java models from Java code. In MoDisco there is an open source Java metamodel of excellent quality that is quite close to the Java grammar. But one could imagine also directly extracting for example business rules from a Java program by using a Business rule metamodel. Alternatively another solution would be to use a Java.code to Java.model C2M transformation, and then a Java.model to BusinessRule.model M2M transformation. Usually C2M transformations are more expansive to develop than M2M transformations.

So I believe that all three categories of transformations are equally important. M2C and C2M transformations involve one metamodel and a grammar while M2M transformations involve two metamodels.

Similarly to M2C and C2M transformations, we could also have M2X and X2M transformations where grammars would be replaced by XML schemas.  Following the same idea, we could also envision M2DB and DB2M transformations where grammars would be replaced by Data Base schemas. All these native transformations would be quite useful, since they could be used with common M2M transformations.

Posted in Metamodeling, Models, Transformation, Uncategorized | 9 Comments »

 
Follow

Get every new post delivered to your Inbox.