Software Engineering Lab
Research Links

Research Links

  1. DREP

  2. OMTT

  3. OPTIMA / AspectOPTIMA

  4. RAM

  5. Mammoth

The Software Engineering Laboratory (SEL), headed by Prof. Jörg Kienzle, is part of the School of Computer Science of McGill University in Montreal, Quebec, Canada. Our research concentrates on dependable software development and aspect-orientation. In particular, we focus on integrating the concerns of dependability and fault tolerance into the entire software development life cycle. As a side project, we apply some of our research ideas in the context of massively multiplayer games.

Dependability-focused Requirements Engineering

At the requirements level, discovering and documenting all possible abnormal situations and irregular user behavior that can interrupt normal system interaction is of tremendous importance in the context of dependable system development. We defined a Dependability-focused Requirements Engineering Process (DREP) based on use cases that leads a developer to discover and then specify the required level of system reliability and safety at an early stage. Our “exceptional use cases” can be probabilistically analyzed to get feedback on the achievable safety and reliability of the system, if it were to be built with a given set of (potentially failing) components. To read more about DREP, click here.

Open Multithreaded Transactions

Open Multithreaded Transactions (OMTT) are an advanced transaction model that provides features for controlling and structuring not only access to objects, as usual in transaction systems, but also threads taking part in transactions. Due to the isolation property and disciplined exception handling, OMTTs constitute ideal units of fault tolerance for structuring the execution of loosely coupled cooperative and competitive concurrent systems. To read more about OMTTs, click here.

Aspect-Orientation and Fault Tolerance

Aspect-oriented programming is a new programming paradigm that allows a programmer to modularize cross-cutting concerns at the programming language level. With AspectOptima we present a design of an aspect-oriented framework that implements the transaction run-time support. We show how the ACID properties for transactional objects and transaction life cycle management for advanced transaction models can be implemented by a set of individually reusable aspects. To read more about the design of AspectOptima and its implementation in AspectJ click here.

Reusable Aspect Models
Reusable Aspect Models (RAM) is a novel approach to aspect-oriented modeling that makes scalable multi-view modeling possible. It allows the modeler to define stand-alone reusable aspect models, which support the modeling of structure (using UML class diagrams) and behavior (using UML state and sequence diagrams). RAM supports aspect dependency chains, which allows an aspect providing complex functionality to reuse the functionality provided by other aspects. The approach also provides the modeler with means to resolve conflicts among aspect models in a reusable way, i.e. without creating any dependencies between the conflicting aspects. To read more about RAM click here.


Since Spring 2005 I have been leading the development of Mammoth, a massively multiplayer game research framework. The goal of Mammoth is to provide an environment for experimentation in areas such as distributed systems, fault tolerance, databases, modeling and simulation, artificial intelligence and aspect-orientation. Our industrial partners are Quazal, Electronic Arts Montreal, and EJ-Technologies.

To read more about Mammoth, click here.

Last modified: November 23, 2015, Jörg Kienzle