Architectural Pattern Definition for Semantically Rich Modular Architectures
Joeri G.T. Peters, Jan Martijn E. M. van der Werf, Jurriaan Hage · 2016
Architectural patterns represent reusable design of software architecture at a high level of abstraction. They can be used to structure new applications and to recover the modular structure of existing systems. Techniques like Architecture Compliance Checking (ACC) focus on testing whether the realised artefacts adhere to the architecture. Typically, these techniques require a complete architecture as input. In this paper, we focus on defining architectural patterns in such a way that we can use ACC tools to recognise architectural pattern instances. This requires us to explicitly define architectural patterns in terms of allowed and disallowed software dependencies. We base ourselves on Semantically Rich Modular Architectures. Defining architectural patterns this way allows us to reason about them. For example, how patterns should be interpreted as incomplete architectures and how different interpretations affect the pattern recognition process. Recognising architectural patterns using ACC techniques also has great potential in architecture design and Software Architecture Reconstruction.