My research interests include modeling and analysis of cross-cutting system properties in complex distributed systems. Aspect-oriented modeling (AOM) techniques play an important role in specifying these properties. Predicting such system-wide properties is particularly important in self-adapting or human-adaptable systems. Methods to quickly assess the impact of proposed system changes on properties such as security and performance are critical to support the development and on-going changes of human-adaptable dynamic systems. In addition to assessment, I am very interested applying requirements modeling techniques as enablers for developers of such systems. Domain-specific languages and model visualization techniques are also part of my research as they impact the ability of developers and domain experts to understand these complex systems.

Other research results include specifying system properties such as security and performance then using these models in trade-off analysis. We used UML as our modeling language, and AOM techniques to compose instances of security mechanisms into a system model. We used the OMG Modeling and Analysis of Real-Time Embedded systems (MARTE) profile to annotate resulting UML models and a tool suite from Carleton University to transform the models into Layered Queuing Network (LQN) models and analyzed them. We used two methods to analyze the system model with respect to security properties. One was the UMLSec tool, that allowed us to determine whether the system met particular security properties. The other used the UML2Alloy tool from the University of Birmingham to transform the models into Alloy where we used the Alloy Analyzer to probe the model regarding particular security properties. The results from the Alloy analysis and the LQN analysis were then used as input to a Bayesian Belief Network that we used for trade-off analysis.

A recent collaboration explored the use of a psychological framework called Activity Theory (AT) as a very early requirements elicitation technique for complex human-in-the-loop systems. The techniques we are exploring are targeted to systems where there is a very divergent set of stakeholders who do not share any particular common goals. AT promotes dialog in a common framework and using a common set of terminology to discover common goals among the stakeholder groups, and to uncover implicit rules constraining the successful meeting of those goals.

As part of this research we adapted the original AT methodology for the purposes of requirements engineering and proposed extensions and transformations to create goal models using User Requirements Notation (URN). URN has a formal semantics that then allow us to analyze the resulting goal models for conflicts. It also has an AOM capability that allows us to model high-level design alternatives, and re-analyze for goal compliance. We then use our transformations to create new AT models that demonstrate the affects of various alternatives on the system constraints that are reflected in the original AT models. We have developed an AT language metamodel and created a USE (the UML-based Specification Environment) tool implementation of it. USE can test structural and OCL constraints on the metamodel, and on instances of it. We have successfullly created instances that demonstrate the full metamodel. The first version of the language metamodel and the USE model are described in our technical report, CS-13-101. We have developed two workbooks designed to teach the application of AT in requirements engineering, specifically to identify social requirements.

A paper describing this work has been published in the Information Software Technology Journal (Geri Georg, Gunter Mussbacher, Daniel Amyot, Dorina Petriu, Lucy Troup, Saul Lozano-Fuentez, Robert France,“Synergy between Activity Theory and Goal/Scenario Modeling for Requirements Elicitation, Analysis, and Evolution”, in press: Information and Software Technology (IST), DOI:, 2014.)

We developed a research tool using Visual Studio and its associated Domain Specific Language Software Development Kit that realizes an evolved version of the AT metamodel. This tool is described in our technical report, CS-14-102.