Project Details
Rule-Based Invasive Software Composition with Strategic Port-Graph Rewriting (RISCOS)
Applicant
Professor Dr. Uwe Aßmann
Subject Area
Software Engineering and Programming Languages
Term
from 2016 to 2020
Project identifier
Deutsche Forschungsgemeinschaft (DFG) - Project number 280611750
The reuse of software components is important for the reduction of the costs in the software development process. For flexible reuse, proper component models, composition techniques and languages are important (so-called composition systems). A quite attractive form of reuse is the crosscutting composition of components, i.e., the distribution of a component over a set of other components (weaving). Weaving can be used for complex reuse scenarios and simplifies the organization of product lines, because crosscutting aspects and optional functionality can be managed separately from the core of a product line. However, for this form of distributing composition, language-specific weaving tools (weavers) have to be built, and this costs a lot of effort. A simple way to develop weaver tools would be desirable, e.g., with the help of declarative languages. For the development of composition systems for arbitrary textual and graphic languages, invasive software composition (ISC) can be employed. Also weaving tools can be developed with ISC, for which a composition program has to be written. For this purpose, it would be interesting to use graph rewrite systems, because they have a declarative semantics and offer a high degree of automation. We have shown in previous work that this is possible. However, there are two problems: Firstly, during weaving conflicts arise between the rules of the graph rewrite system (critical pairs), which have to be recognized (conflict recognition). Secondly, the conflicts have to be avoided by specifying an appropriate selection strategy for all critical pairs. So far, it is therefore required to use programmed graph rewrite systems, which are not fully declarative. The objective of the project is to simplify the construction of reliable weaving tools for programs, models, and documents. To simplify weaving, port-graph rewriting shall be employed, a rather novel approach, which is appropriate to model components and compositions. For the recognition of conflicts, reference attribute grammars will be used, which allow for automated dependency analyses between rules. For the avoidance of conflicts, strategy languages from port-graph rewriting will be investigated in how far they can be used to specify selection strategies. To be able to use the technology for arbitrary programming, modeling, and document languages, invasive software composition shall be used as foundation, so that all compositions and weavings are type-safe and respect the rules of static semantics.
DFG Programme
Research Grants