MDA - A Precise Metamodelling
Approach (UML 2001, Canada)
This presentation describes the motivation and approach to defining
modelling languages through the use of meta-models. The key idea is
modelling language, although primarily graphical, should be precisely
using the same techniques as textual languages used for Software
Engineering - in
terms of a syntax domain and a semantic domains with a mapping between
for Testing - A Model Driven Approach (ASTRANet
Invited talk, UK 2007)
This presentation describes an approach to model-based testing that
uses object diagrams to express invariants and pre- post- conditions
system models. The presentation also describes an engine for executing
tests in terms of an implementation under test
Introduction to DSLs with XMF (Tutorial given at TOOLS Europe, Zurich,
A tutorial given at TOOLS 2008 that provides an overview of textual
DSLs, a design process and provides numerous examples of implementing
various DSL features using the XMF language system.
Beyond Annotations: A Proposal for
Extensible Java (Presentation at SCAM 08, ZBeijing, China,
A presentation that argues for extending Java with syntax classes to
support language oriented programming. The proposal shows how the XMF
syntax class mechanism can be added to Java to allow new language
constructs to be added to Java in a modular and interoperable way.
with Filmstrips (Presentation given at Bournemouth University, UK 2009)
This presentation shows how use case models in UML can be extended with
information that how the individual use cases can be viewed as
precisely defined functions that are composed into behaviour
descriptions called filmstrips. A language for expressing
filmstrips is presented that can be used to automatically test Java
This presentation provides an overview of the key features of an
approach to modelling domain specific languages using the mu-calculus.
operational semantics for the mu-calculus can be extended using
programs. We show that this is an essential feature for the independent
of domain specific languages and provide some examples.
Functional Requirements with Pattern Directed Filmstrips (AST at ICSE
2009 Vancouver, Canada)
This presentation provides the definition of a DSL for constructing
pattern directed filmstrips. The DSL is defined both as an extension to
diagrams and as a text-based language.
of KISS DSL Workshop (Code Generation 2009 Cambridge, UK)
KISS is a collection of individuals that aim to provide guidelines
relating to DSL design and interoperability. KISS runs a series of
workshops where members and
other interested parties get together and address issues relating to
aims. This workshop at Code Generation 09 produced a collection of
for DSL design. These slides are the output of the workshop presented
end of the conference.
Project IDS SIG (JISC STG
Initial Workshop, Oct 2009, London, UK)
the initial JISC STG Workshop describing the interim results for the
Course Management project that aims to develop techniques and systems
detecting issues relating to student retention in HE. The presentation
the initial aims for a special interest group (SIG) in Intelligent
Support (IDS) for HE as part of the JISC funded STG programming.
MOP Based DSL for Testing Java Programs
using OCL (OCL 09 Workshop, Models 09 Denver, Colorado, USA)
presentation describes a pattern that can be used to provide support
representations for objects when processing OCL statements. The
representations are supported via a meta-object protocol (MOP). The
are implemented using the XMF platform. A case study shows how the
applied to a new language feature that implements a testing feature
are expressed in OCL.
The Knowledge Industry Survival
Strategy (KISS @ OOPSLA 09, Orlando, USA)
presentation provides an overview of the KISS principles and some key
issues relating to model based tool interoperability.
(Onward! 09, co-located conference at OOPSLA 09, Orlando, USA)
This presentation provides an overview of the Language
Factories vision for language definition that Laurence Tratt and I are
currently working on. The idea is that languages should be developed in
terms of language components.
A language component provides a complete and reusable definition of an
aspect of a language including syntax, semantics and tooling.
Components can be composed, transformed and parameterized. Composition
allows larger languages to be defined from smaller ones.
Componentization provides scope for reuse, analysis and refactoring of
An Introduction to Domain
Specific Languages (Engineering and Information Sciences Seminar,
Middlesex, Nov 2010)
This presentation introduces a particular view of DSLs as existing in a
space of languages that can be measured on a spectrum from
domain-specific to general-purpose. Such a framework is parameterized
with respect to the target implementation language and two targets are
considered: lambda-calculus and object-oriented modelling notations.
The presentation goes on to propose that domain-specific modelling
should be based on the notion of theory building following Naur.
A Domain Specific Language for
This presentation was given at HCSE 2010 and describes a domain
specific language for a influencer models. It stems from the
observation that many approaches to design are 'soft' Software
Engineering but that really there is a domain specific language
underlying all these approaches. This presentation describes some work
that was undertaken to extract the DSL behind building models of
members of a design team that influence each other.
Specific Modelling as Theory Building
This was an invited talk given at the ISEC 2011 WMBSE Workshop. It
takes Peter Naur's thesis as a starting point and argues that we need
to build theories of applications as the key artifact during the design
phase. A theory contains much more information about an application
than a simple UML model and can be used for learning a new application
or maintaining it.
A Precise Lightweight Framework for Enterprise Architecture
This presentation was given at ISEC 2011 in Trivandrum India. Our
approach is to describe Enterprise Architecture using component models.
A semantics is defined for the component models and this is then used
to define how to refine top-level EA models to lower-level models as
per the usual 3-tier approach to EA. This is then extended with
business goals that are expressed using OCL.
This presentation was given at TCS offices in Pune in March 2011. The
idea is that in order to understand code we must reverse engineer a
theory about the application. The theory is constructed by mining the
code, by eye or using computer assistance.
Driven Development: What went right?
What went wrong? What needs to happen? (CodeGen
looks at some of the requirements that model-driven technologies must
proposes some technology features for meeting those requirements. It
XMF and XModeler that were designed to address some of the requirements.
A Language for Language Oriented Programming (ICOOOLS Workshop Invited
Presentation ECOOP 2011)
and XModeler (King's College London SE Group Presentation)
provides some history and an overview of the XMF and XModeler tools.
XMF provides daemons that are used to implement the MVC pattern
required for building a variety of types of modelling tool. The
presentation uses a case study that implements a meta-tool for managing
snapshots using an MVC where the view is presented using HTML and a
browser embedded in XModeler. The source code is available elsewhere on
provides an overview of the features of XMF for language engineering.
It uses a case study that is defining a pattern matching language that
matches over structures and sequences. The sequence patterns try all
alternatives in order to pick out a match. The declarative pattern
matching language uses continuations behind the scenes to implement the
matching options and to backtrack when a match subsequently fails.
Model-Based Slicing Framework (King's College
Workshop on Composition and Evolution of Model Transformations)
Slicing is used to reduce the size of programs by removing those
statements that do not contribute to the values of speciﬁed variables
at a given program location. Slicing aids program understanding,
debugging and veriﬁcation. Slicing could be a useful technique to
address problems arising from the size and complexity of industrial
scale models; however there is no precise deﬁnition that can be
used to specify a model slice. Model slices are achieved using
model transformations, and since models are usually instances of
multiple heterogeneous meta-models, model slicing must involve the
composition of multiple transformations. This paper proposes a
framework that can be used to deﬁne both program and model
slicing. The framework is used to construct slices of a simple
model written in a UML-like language.
Model Driven Context Aware Reactive Applications (School of Engineering and Information Sciences Seminar)
This presentation provides an overview of a model driven approach to the development of applications that involve both
context awareness and event driven computation. Examples of CARA applications include smart-phone apps, tablet apps and
web-apps. The approach involves extending UML class and state-machine models with stereotype tags that support
characteristic CARA features. The detailed behaviour of the application is defined using the widget-calculus that is
an extension of lambda with features for event-driven hierarchically composed systems. The presentation includes a simple
case study called the Buddy system where phones are context-aware through events generated when they become co-located with
members of their address book.