Learn More
This paper investigates how software composition and transformation can be applied to domain specific languages used today in modeling and simulation of physical systems. More specifically, we address the composition and transformation of the Modelica language. The composition targets the ModelicaXML dialect which is the XML representation of the Modelica(More)
Maintenance of a software framework often requires restructuring its API (<i>refactoring</i>). Upon framework upgrade structural API changes may invalidate existing plugins - modules that used one of its previous versions. To preserve plugins, we use refactoring trace to automatically create an adaptation layer that translates between plugins and the(More)
The evolution of a software framework may invalidate existing plugins - modules that used one of its previous versions. To preserve <i>binary compatibility</i> (i.e., plugins will link and run with a new framework release without recompilation), we automatically create an adaptation layer that translates between plugins and the framework. The creation of(More)
Although the API of a software framework should stay stable, in practice it often changes during maintenance. When deploying a new framework version such changes may invalidate plugins - modules that used one of its previous versions. While manual plugin adaptation is expensive and error-prone, automatic adaptation demands cumbersome specifications, which(More)
The adapter design pattern [1], commonly used for integration and evolution in component-based systems, is originally described by roles. In classbased systems, the conventional realization of the pattern maps these roles to classes. The recent appearance of mature languages supporting roles as first order programming constructs poses the question whether(More)
Once a software library is deployed, it is extremely difficult to modify published types. Every new version has to preserve backward compatibility with existing applications. This limits the number of changes that may be applied to the public classes defined in the library. We present a tool that assists developers in maintaining the consistency of a shared(More)
By introducing syntactic and semantic changes, the upgrade of a software component may invalidate existing applications that use one of its previous versions. Existing adaptation approaches to compensate for such changes rely on and, hence, are limited to certain change specifications. In addition to using an adaptation technology, the developer needs to be(More)
Development of a component model for a given language is tedious, time-consuming, and error-prone. Moreover, many tasks of this process have to be repeated when modeling sets of related languages. In this paper, we propose to use the meta-modeling approach and for a given language to derive an invasive component model as its derived meta-model. The(More)