Components and program construction via their compositions are becoming accepted practices of software development. However, component composition often does not work straightforwardly when mismatches occur, resulting in burdensome efforts by the programmers. The first paper focuses on reusable workflow components, and introduces various concepts from programming language theory to resolve the impedance mismatch. The second paper facilitates the separation of an application into independent reusable building blocks, and deals with the integration of pre-build generic software components that have been developed by third party vendors via their dynamic, on-demand remodularizations.
An increasing number of software developers are turning to workflow to separate the logic and the control aspects in their applications, thus making them more amenable to change. However, in spite of recent efforts to standardize and provide reusable workflow components, many developers build their own. This is a challenging endeavor and involves solving problems which seem incompatible with the object paradigm and current object-oriented programming languages. In the context of an object-oriented workflow framework, this paper demonstrates a novel approach that resolves this impedance mismatch with techniques drawn from programming language theory. This successful cross-pollination narrows the gap between the results of decades of research in programming languages and developers working hard to cope with change.
This paper proposes language concepts that facilitate the separation of an application into independent reusable building blocks and the integration of pre-build generic software components into applications that have been developed by third party vendors. A key element of our approach are on-demand remodularizations, meaning that the abstractions and vocabulary of an existing code base are translated into the vocabulary understood by a set of components that are connected by a common collaboration interface. This general concept allows us to mix-and-match remodularizations and components on demand.