Over the course of its lifetime, every non-trivial piece of software will significantly grow in complexity. The extent of that growth significantly affects the ability to evolve it to ultimately avoid having to replace with a costly rewrite eventually. Thus, managing that complexity has been the topic of interest in the software community at large and architectural and design pattern languages have been identified as means to achieve that. But even if the conceptual models of an application use that language, a fundamental challenge remains: how to express those abstract concepts in the actual codebase?
The presentation explores a novel approach to enable developers to explicitly express architectural and design concepts in application code, which ultimately enables:
* Understandability – By finding the architectural language in code, it is easier for developers to understand the code base, relate individual elements of it to the bigger picture and ultimately make architecture tangible.
* Documentation – With abstract concepts present in the code base, we can extract documentation about it that is correct by definition and describes it at an architectural abstraction level.
* Verification – We can verify that our implementation adheres to the rules associated with the concepts that the individual elements of the code base implement at different levels of architectural abstraction.
* Reduce boilerplate code – At the application boundaries, domain model elements have to be persisted into some data store or exposed to clients via APIs. Architectural concepts, directly expressed in those elements, allow defaulting such mappings into popular implementation technologies transparently.
The talk presents the fundamental idea in detail, a Java library to express architectural and design concepts, and contrasts it to alternative approaches. It concludes with a presentation of the support of that library in a variety of associated integration technology to implement the aspects described above.
Stephan Pirnbaum, Henning Schwentner
VMware, WPS, BUSCHMAIS