This page provides brief descriptions and links to current software prototypes that are developed in the context of my research work.
​2CITIES
2Cities is a 3D visualization relying on the city metaphor to display variability implemented with multiple types of variability implementation mechanisms in a single system.
The first city, CloneCity, aims at visualizing variability implemented by using structural patterns, with modules and file duplications, and code duplication. Thus CloneCity visualizes the whole project structure, and is built by creating buildings corresponding to files, and folders as streets.
The second city ObjectCity reuses the existing solution and its principles. The city is built by creating buildings, corresponding to classes, and streets, grouping every class linked to the street's starting building.
VARICITY
VariCity is a 3D visualization relying on the city metaphor to display zones of high density of variability implementations in a single system. The city is built by creating buildings, corresponding to classes, and streets, grouping every class linked to the street's starting building. It is now developed as a full ecosystem for Java and TypeScript.
​SYMFINDER
Symfinder is a toolchain built to automatically identify and visualize symmetries in object-oriented systems (in Java in the current version). These symmetries help determine variation points and variants in large code structures. It is composed of three distinct parts: source fetching, symmetry identification, and web-based visualization.
FAMILIAR
FAMILIAR (for FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) is a language for importing, exporting, composing, decomposing, editing, configuring, computing "diffs", refactoring, reverse engineering, testing, and reasoning about (multiple) feature models. All these operations can be combined to realize complex variability management tasks.
SIGMA
Sigma is a family of internal DSLs embedded in Scala for EMF model manipulation. Currentlyare built it consists of DSLs for model consistency checking, model-to-model (M2M), and model-to-text (M2T) transformation. All these DSLs are build on a common infrastructure that provides convenient model navigation and modification operations. It combines the benefits of external model manipulation DSLs with general-purpose programming taking full advantage of Scala versatility, performance, and tool support.
ACTRESS
ACTRESS is a modeling environment that provides a domain-specific modeling language for defining self-adaptive software system architectures through external feedback control loops.
CONFRACT and other contract-based systems
The ConFract prototype and its extensions (for negotiation or included in an MDA/MDE toolchain) are not directly, available. If you're interested in these developments, drop me a email.