As in 2010, tutorials will be free to all registered for satellite events.
Generating Systems from UML
- Bernhard Rumpe (RWTH Aachen, Germany)
- Martin Schindler (RWTH Aachen, Germany)
- Ingo Weisemoeller (RWTH Aachen, Germany)
Model-driven development with UML is on everyone's lips. It promises not only more efficient development, but also consistency between system design and code. In many projects, developers use UML models to generate at least parts of the system under development. Current tools and code generators however often lack of simplicity in model editing and of flexibility in code generation.
In this tutorial we introduce the most important kinds of UML diagrams in a programming oriented and adaptable profile. Besides the well-known graphical notations, we introduce textual descriptions of UML models that are as convenient and easy to implement and maintain as textual programming languages. We also show how to combine UML models with code in an object oriented programming language, which results in a method where we treat both code and models as implementation sources of equal value.
As an innovative way to use generated code within highly customized environments, we present an approach to process these models with an extensible and customizable set of templates and code generation framework. This approach enables developers to reuse substantial parts of existing code generators, and adapt only a small set of the templates with target platform or technology specific extensions.
Unified Modeling Language (UML), generative and model based software development
SysML vs. UML2: A Detailed Comparison
- Pascal Roques (PRFC, France)
The OMG Systems Modeling Language (OMG SysML™) is a general-purpose graphical modeling language for specifying, analyzing, designing, and verifying complex systems. SysML represents a subset of UML 2 with extensions needed to satisfy the requirements of the UML™ for Systems Engineering RFP, developed jointly by the OMG and the International Council on Systems Engineering (INCOSE) and issued in March 2003.
During this half-day tutorial, we will explore in depth the differences between SysML and UML 2. We will present the new SysML concepts (such as Requirement, Unit, Flow Port, Allocation, etc.) and diagrams (mainly Requirement and Parametric diagrams). We will have a detailed look to SysML concepts that derive very closely to UML ones and precise the vocabulary: Block, Value, ValueType, Standard Port, View, etc. We will also explain why several UML 2 concepts and diagrams were removed from the SysML Specification.
The Theory and Practice of Modeling Language Design
- Bran Selic (Malina Software Corp., Canada)
Model-based software engineering (MBSE), while not a panacea, has demonstrated its effectiveness in mitigating some of the most critical design problems in developing complex software systems.
This tutorial focuses on a vital component of MBSE: the design of modeling languages and related technologies. In contrast to traditional programming languages, whose primary purpose is to specify implementations, modeling languages must satisfy a broader set of objectives, since models serve multiple different purposes. This results in some difficult challenges for modeling language designers, often requiring skills and expertise beyond those required for traditional computer language design.
The tutorial starts with a brief overview of the MBSE landscape and the role of modeling languages. Next, the principal dimensions of modeling language design are identified and discussed. This is followed by a description of the steps and techniques involved in producing a complete modeling language specification using the imperfect but historically and didactically significant UML language as an illustrative case study.
The important issue of language extension to fit a particular domain or purpose is examined next. The tutorial concludes with a brief introduction to methods and technologies for model transformations, including automated code generation techniques.
Modeling languages, computer language design, model-based engineering, UML, MOF, UML profiles, model transformations
Applying Model Driven Engineering Technologies in the Creation of Domain Specific Modeling Languages
- Bruce Trask (MDE Systems Inc., USA)
- Angel Roman (MDE Systems Inc., USA)
Model Driven Engineering (MDE) brings together multiple technologies and critical innovations and formalizes them into the next wave of software development methods.
This tutorial will cover the basic patterns, principles and practices of MDE. The three main MDE categories include the development of Domain Specific Languages (DSL), Domain Specific Editors (and Views), and Domain Specific Transformation Engines or Generators. Expressed in terms of language development technology, these mirror the development of the Abstract Syntax, Concrete Syntax and Semantics of a new Domain Specific Language.
This tutorial will cover the basic effective patterns, principles and practices for developing these MDE software artifacts. The tutorial will show how to apply these concepts as effective means with which to both raise levels of abstraction and domain specificity and thus increase power and value of tools and languages that allow developers to tackle the complexities of today's software systems. It will also show how to effectively leverage abstraction without sacrificing the ability to robustly and precisely refine these abstractions to solve complex real world problems.
To show these patterns and principles in action, this tutorial will cover the details of how to leverage MDE Language Workbenches and frameworks in support of robust software development.
Modeling, programming languages, domain specific, abstraction, refinement, metamodel, language workbench, graphical, textual, constraint, transformation, MDE, DSL
Formal Modeling with FORMULA: From Specifications to Design Space
- Ethan Jackson (Microsoft Research, USA)
- Markus Dahlweid (Microsoft Research, Germany)
- Dirk Seifert (Microsoft Research, Germany)
FORMULA (Formal Modeling Using Logic Programming and Analysis) is a modern formal specification language targeting model-based development (MBD).
FORMULA's mission is twofold:
- Provide a language for concise, declarative, and rigorous specifications of domain-speficic abstractions and model transformations.
- Provide automated techniques for model synthesis, design space exploration, and symbolic model checking.
Writing specifications in FORMULA immediately enables a spectrum of state-of-the-art automated analyses. In this tutorial we will present both aspects of FORMULA.
First, the audience will receive hands on experience with the FORMULA language, which is based on algebraic data types (ADTs) and strongly-typed constraint logic programming (CLP). Attendees will learn how to build domain-specific abstractions and model transformations using this semantic core.
Second, we will delve into FORMULAs automated techniques, which are based on symbolic execution and satisfiability modulo theories (SMT) solving. By the end of the tutorial, the audience will be able to synthesize models, explore design spaces, and symbolically model check transformations.
We intend this tutorial to be a hands-on. Attendees will have two ways to interact with the tools: They can freely install FORMULA, which comes with a command line interface and Visual Studio integration. They can also follow along with a web-based interface, which does not require installation.
Please consult examples of the intended format
Formal specifications, design space exploration, model checking, constraint logic programming, regular types, finite model finding
Formal Visual Modelling (Cancelled, speakers sick)
- John Howse (University of Brighton, UK)
- Gem Stapleton (University of Brighton, UK)
Formal, precise modelling has acknowledged benefits yet the notations with which one can create such models often require considerable technical expertise. In particular, the nature of the syntax of formal notations - typically being symbolic or textual - does not always readily convey the essence of the model to all stakeholders, including domain experts. This can lead to difficulties in the modelling process and, consequentially, can contribute to inaccurate or incomplete models being developed. To this end, there has been interest in the development of visual (i.e. diagrammatic) notations that are more readily accessible to those without substantial mathematical training.
This tutorial will demonstrate a new visual logic, called concept diagrams, suitable for formal, precise modelling. The notation has been designed with regard to cognitive theories about what constitutes an effective visual logic combined with an emphasis on being sufficiently expressive to model rich domains. The tutorial will introduce concept diagrams using simple case studies.
Attendees should leave the tutorial with a knowledge of the syntax and semantics of concept diagrams, insight into how to reason about models using them, and be able to apply them to modelling systems.
Diagrammatic reasoning, visual formalisms, logic, model visualization
- Brian Henderson-Sellers (University of Technology Sydney, Australia)
- Cesar Gonzalez-Perez (Spanish National Research Council, Spain)
Metamodelling is becoming well-established in the modelling fraternity yet there are still some unanswered questions and several apparent ambiguities.
In this presentation I investigate the use of mathematical representations for models, metamodels, ontologies and modelling languages as a context for the exploration of contemporary metamodelling, including the use of powertypes and the integration of process and modelling issues in the same metamodel as well as the incorporation of capability/maturity attributes at the methodological level.
The International Standard ISO/IEC 24744 will be used as a reference framework throughout and various OMG standards will be used as exemplars.
(slides not available)
Mathematics, metamodelling, DSMLs, ontologies