Research
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 human-adaptable dynamic systems. In addition to assessment, I am very interested applying requirements modeling techniques to such systems as enablers for domain experts who desire to make system adaptations. Domain-specific languages and model visualization techniques are also part of my research as they impact the ability of domain experts to understand and manipulate potential adaptations.
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.
I am currently involved in a collaboration that is exploring 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 have 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 current version of the language metamodel and the USE model are described in our technical report, CS-13-101.
I remain interested in software engineering development methodologies from my work in industry. A small project for the USDA that originally was defined as a web development project rapidly became a working example where requirements engineering in addition to design and development methodologies could effectively be used for the client.
A recent project dealing with software engineering methodologies involved developing the infrastructure and methodologies for to manage a research project in high performance computing. We created a planning and management process and tied together existing tools to support not only release development, but also the experimental process infrastructure found in such as project.