Facets of multi-stage computation in software architecture

Walid Taha · 2018

The goal of this paper is to demonstrate that an important, naturally-occurring, and disciplined form of reflection in software systems is readily expressible at the architectural level by using a new architectural operator (connector) called Engage. We begin by extending a simple data-flow architectural description language with this operator. We illustrate the expressive power of Engage by using it to describe both familiar and experimental software architectures. In doing so, we also demonstrate the prevalence of a reflective organizational pattern called multi-stage computation. We are not aware of any other architectural description language that captures the essential functionality of the Engage operator. The paper's treatment is rigorous, but not formal. Keywords Architectural design languages, program generation, multi-stage computation, reflection. 1 INTRODUCTION The success of any large system is greatly affected by its architectural design [6]. Software architecture i...

Read the paper · More papers on PaperTik