Making the Software Architecture Explicit in Java Programs to Enable Dynamic Evolution
Software architecture helps in developing and understanding software applications at high-level abstraction. Yet, programming languages like Java do not directly support those abstractions. In this paper, we provide the support for architectural abstractions in Java. The support is provided in a middleware that, besides application development and initialization at architectural level, also supports dynamic evolution in the running applications. We demonstrate the use and benefit of the approach with an example scenario.