Abstract
Automatic Effective Model Discovery
Sagar Sen
INRIA Rennes, Campus universitaire de beaulieu, 35042 France
Scientific discovery often culminates into representing structure in nature as networks (graphs) of objects. For instance, certain biological reaction networks aim to represent living processes such as burning fat or switching genes on/off. Knowledge from experiments, data analysis and mental tacit lead to the discovery of such effective structures in nature. Can this process of scientific discovery using various sources of knowledge be automated? In this thesis, we address the same question in the contemporary context of model-driven engineering (MDE) of complex software systems.
MDE aims to grease the wheels of complex software creation using first class artifacts called models. Very much like the process of effective structure discovery in science a modeler creates effective models, representing useful software artifacts, in a modelling domain. In this thesis, we consider two such modelling domains: metamodels for modelling languages and feature diagrams for Software Product Lines (SPLs). Can we automate effective model discovery in a modelling domain? The central challenge in discovery is the automatic generation of models. Models are graphs of inter-connected objects with constraints on their structure and the data contained in them. These constraints are enforced by a modelling domain and heterogeneous sources of knowledge including several well-formedness rules. How can we automatically generate models that simultaneously satisfy these constraints? In this thesis, we present a model-driven framework to answer this question.
The framework for automatic model discovery uses heterogeneous sources of knowledge to first setup a concise and relevant subset of a modelling domain specification called the effective modelling domain. Next, it transforms the effective modelling domain defined in possibly different languages to a constraint satisfaction problem in the unique formal specification language Alloy. Finally, the framework invokes a solver on the Alloy model to generate one or more effective models. We embody the framework in two tools: Cartier for model discovery in any modelling language and Avishkar for product discovery in a SPL. We validate our framework through rigorous experiments in test model generation, partial model completion, product generation in SPLs, and generation of web-service orchestrations. The results qualify that our framework consistently generates effective findings in modelling domains from commensurate case studies.