Design-Space Exploration through Constraint-Based Model-Transformation Bernhard Sch¨ atz * , Florian H¨ olzl † , Torbj¨ orn Lundkvist ‡ * fortiss gGmbH, Guerickestr. 25, D-80805 M¨ unchen, Email: email: schaetz@fortiss.org † Institut f¨ ur Informatik, Technische Universit¨ at M¨ unchen, Boltzmannstraße 3, D-85748 Garching, Email: hoelzlf@in.tum.de ‡ Department of Information Technologies, Abo Akademi University, Joukahaisenkatu 3–5 A, FIN-20520 Turku, Email: torbjorn.lundkvist@abo.fi Abstract—Many design steps during system development - like functional partitioning, refactoring of the architecture, or the mapping to the platform - can be understood as an exploration of the solution space. Each development step is characterized by design constraints, limiting the possible solu- tion space. By using model transformations based on a declar- ative, relational approach, these constraints can be formalized as transformation rules guiding a mechanized exploration of possible design alternatives. The approach is demonstrated for the (semi-)automatic, incremental deployment of logical architectures to hardware platforms. Keywords-Model transformation; rule-based; declarative; design-space exploration I. I NTRODUCTION When developing a (software) system from the initial requirements to the final system, the ideal development process corresponds to a sequence of refinement steps. Each refinement step moving from an abstract model – e.g., the description of the logical architecture of a system consisting of communicating (software) components – to a concrete model – e.g., the description of the technical architecture of a system consisting of communicating control units – generally requires to fix one or more design decisions, each enriching the model under development. These design steps generally involve decision making by the software engineer in form of a search problem. Typically, these decisions are based on constraints, limiting the set of acceptable solutions in the search space, as well as experience, guiding the engineer, and not done fully automatically. Additionally, often there are multiple ways to fix a decision, leaving the system developer with a choice of suitable solutions, possibly parameterized by additional objectives. The refinement steps from a more abstract to a more concrete model often can be formalized as transformation relations between these two kinds of models, possibly pa- rameterized to reflect additional objectives. By mechanizing these transformation relations, the concrete models can be automatically transformed from the abstract models. Espe- cially in the context of model-driven approaches, model transformation techniques have been developed to support the automatic generation of those transformed models. Cur- rently, most of those approaches have concentrated mainly on transformations of models to obtain a single specific transformed model from a given one, by repeatedly applying a set of transformation rules. However, the search problem represented by a design- space exploration step requires to apply rules to generate a potential solution, and to check whether the generated solution fulfills the constraints characterizing acceptable solutions. Such a search-and-check approach requires to take back applied transformations rules in form of backtracking. Furthermore, since in general more than one possible so- lution exists, for design space exploration this backtracking mechanism must allow to repeatedly and successively gener- ate solutions and present them to the engineer for selection. This contribution shows how an approach supporting the definition of loose transformations, i.e., transformations with different possible solutions, can be used to mechanize an interactive and incremental development process. The re- mainder of this contribution is organized as follows: Section II introduces a typical example of an exploration step in the design process of embedded systems: the deployment step, i.e., the mapping of logical components and channels to technical units and links, respecting restrictions concerning the load provided by units as well as links and required by components as well as channels. Furthermore, the section introduces the main characteristics of an exploration process of the design space and relates them to the core features of a declarative, relational descriptions of model transformations. Section III introduces a mechanism supporting the definition of loose transformation relations: a formalism for a declara- tive, rule-based transformations, based on a term-structure representation of conceptual models and suitable Prolog- predicates for the construction and deconstruction of these term-structures. Section IV demonstrates the application of the mechanism to the deployment problem: an interactive and iterative support for the exploration of the deployment possibilites based on a direct formalization of the constraints of the solution space. Furthermore, the section discusses extensions to improve the efficiency of the transformation as well as its incremental application. Section V finally summarizes the central aspects of the present approach and compares it to related work.