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 (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.
Mammoth
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