program       registration       lodging       call for contributions       organization       [aosd home]

overview       technical papers       practitioner reports       workshops       tutorials       demos       exhibits      
Go back to Tutorials Home

T9: Model-Driven Engineering with Contracts, Patterns, and Aspects

  - Jean-Marc Jezequel, IRISA

Date: Tuesday, March 18, afternoon (half day)

Level: Intermediate

Attendees should have some basic understanding of the UML and of object-oriented analysis and design.


The ``non-functional'' aspects of a software application --- such as persistence, fault tolerance, and quality of service --- should be separate and untangled from the ``functional'' aspects of that application. Furthermore, the specification of a non-functional aspect should be separate from any (platform-specific) implementation of that aspect. Languages and tools are needed to map from the design or model of an aspect to its ultimate implementation, for example, atop middleware such as .NET or others.

The Unified Modeling Language (UML) gives the software designer a rich set of views on a model, and also provides many ways for the designer to add non-functional annotations to a model. In this tutorial, we will show how to organize models around the central notions of (1) quality of service contracts for specifying non-functional aspects and (2) aspects for describing how those contracts can be implemented. Based on our experience in previous projects, we will show how to model contracts in UML with a small set of stereotypes, and how to represent aspects and applications of design patterns at the meta-model level using parameterized collaborations equipped with transformation rules expressed in an extension of OCL2.

The second part of this tutorial will present our transformation-based approach, implemented in our UMLAUT framework and tool, to build design-level aspect weavers. An aspect weaver, based on a meta-level interpreter, reads a Platform Independent Model (written in UML), processes the various aspect applications as specified by the designers, and then outputs a new Platform Specific Model (also in UML) that can serve as the basis for application code generation. Tutorial attendees will learn how to use UMLAUT for managing aspects in their own model-centric software development projects.


Prof. Jean-Marc Jezequel received an engineering degree in Telecommunications from the ENSTB in 1986, and a Ph.D. degree in Computer Science from the University of Rennes, France, in 1989. He first worked in the Telecommunications industry (at Transpac) on an Intelligent Network project before joining the CNRS (Centre National de la Recherche Scientifique) in 1991 as a researcher. Since October 2000, Jean-Marc Jezequel has been a professor at the University of Rennes. He is leading an INRIA research team called Triskell (, working in the domain of object-oriented software engineering for distributed computing systems and telecommunications. In the general context of building and assembling reliable and efficient components based on Aspect-Oriented Design ideas, he is working on UMLAUT, a set of tools allowing the formal manipulation of UML models. He is the author of two books published by Addison-Wesley and more than 60 publications in international journals and conferences.


For additional information, clarifications, questions, or special requirements, please contact the AOSD 2003 Tutorial Chair: Eric Eide (

 Send comments to: