Current Projects

Clafer is a lightweight modeling language. More information on the official website: clafer.org

Traditional algebraic frameworks for bidirectional transformations are state-based: the input and output are states of data. But actual implementations are delta-based: the synchronizer tries to understand what is the delta resulted from the update, and then try to propagate the delta.

We show that state-based algebraic framework has several drawbacks, and build delta-based algebraic frameworks for both the asymmetric case and the symmetric case.

Set of tools for feature modeling, configuration, feature-based model templates, template instantiation and verification.

This project investigates and studies large-scale real world feature models, such as the Linux kernel, with more than 6000 features, and Ecos, with over 1000 features.

We have studied the their structural characteristics (size, depth, width, number of constraints), the evolution of the model, and also the languages used for expressing these models and their semantics.

A highly automated approach based on dynamic analysis for understanding how a concept of interest (e.g., context menu) is implemented in example applications of an object-oriented application framework (e.g., Eclipse JFace).

A framework-specific modeling language (FSML) is a language designed for a particular framework and it is used for expressing how applications use that framework. We built four exemplar FSMLs for Java Applet, Apache Struts 1.x, Eclipse Workbench, and EJB 3.0. FSMLs support five use cases: framework API understanding, completion code understanding and analysis, creation, migration, and evolution.

A metamodel of an FSML defines framework API concepts in some scope together with their features and a mapping between the features and code patterns that implement them. Such a language definition is interpreted by our generic FSML infrastructure, which supports reverse-, forward-, and round-trip engineering, framework specific code completion, and framework specific (code) quick fix. We also created an FSML engineering method that can be used for building new FSMLs.

Current object-oriented applications depend heavily on third party Application Programming Interfaces (APIs). Developers often need to migrate their applications across competing APIs for the same domain, usually seeking better designs, functionality or performance. Independently developed APIs may agree on the overall semantic model at some level of abstraction but they often differ in many details. The term API mismatch refers to the challenge of migrating across two APIs. The main goals of this project are to devise a method for migration of applications across APIs and to develop techniques to automate and guide the execution of the migration.

The Network for the Engineering of Complex Software-Intensive Systems for Automotive Systems (NECSIS) is a research network to tackle the obstacles and develop new MDE capabilities that lead to the development of the next generation of MDE methods and tools. This project, Feature Oriented Modeling and Analysis, groups activities with involvement of the GSD Lab members within the NECSIS Theme 3: Uncertainty, Adaptability, and Variability.

Development of solutions for maintaining traceability among BPMN models from high-level business specifications to executable implementations, enabling impact analysis and generating fixing actions for concurrent editing.

We completed a consulting engagement with a company X entitled The Requirements Engineering Practices and Tool Support at X in which we identified top 10 challenges with the requirements engineering practices faced by X and presented a prioritized list of tool features desired by analysts, developers, and quality assurance. During the course of the study, we identified over 700 statements (codes) stated by over 40 participants of five focus groups and 18 interviews.

Our ICSE 2011 paper is available here.

An open-source release of our tool is upcoming. Stay tuned!

Support for software configuration is gaining importance. Large modern reusable software such as platforms or product lines often have a vast number of configuration settings that need to be specified in order to derive a running system. Examples of highly configurable systems include the Linux kernel, Eclipse, and eCos. They are supported by configuration tools, respectively, Linux Kconfig, Eclipse Yoxos, and eCos configuration tool. We have been studying the configuration models of these systems in a related project on "Feature Models in the Wild".

The aim of this project is to understand what problems the users face during configuration and provide corresponding support in the configuration tool. Our current focus is to understand and support conflict-resolution in Linux Kconfig and eCos configurator.

In our newest progress, we have introduced priorities to guide the error fixing process. The corresponding paper has been submitted for review, and a technical report has been published. If you are a reviewer of our paper, please see our technical report page for the pseduo code and the experiment results.

As part of our effort to further understand and improve industrial software product line practices, we perform a study on the culture of artifact cloning for product lines.