Structural Software Architecture Synthesis from Formal Views
S. Maoz, J.O. Ringert, and B. Rumpe
We introduce the problem of structural architecture synthesis: constructing the
structure of a component and connector architecture from a declarative
specification made of structural architectural views, representing mandatory,
alternative, and negative structural properties. Each view reflects some
concerns of interest and the partial knowledge available to different
stakeholders involved in the system's design. As such, the views cross-cut the
traditional boundaries of the implementation-oriented hierarchical decomposition
of systems and sub-systems. The challenge is to automatically generate a
correct-by-construction, complete architecture structure that satisfies the
specification, if one exists.
We formalize the structural architecture synthesis problem in ArcV, an
architectural structural views specification language. We show that the problem
is NP-hard and solve it, in a bounded scope, using a reduction to SAT, via Alloy. We
further extend the basic problem with support for library components,
specification patterns, and architectural styles. The result of synthesis can
be used for further exploration, simulation, and refinement of the architecture
or, as the complete, final architecture itself, for direct code generation.
A prototype tool and an
evaluation over three case studies show promising results and suggest
interesting future research directions towards a comprehensive design
environment for architecture synthesis.
S. Maoz, J.O. Ringert, and B. Rumpe. Structural Software Architecture Synthesis from Formal Views
- ArcVSynthesis plug-in prototype implementation (download as Eclipse feature, compatible with version 3.6.2 or later, for Windows only), installation instructions in the readme below.
- ArcVSynthesis plug-in readme, includes screen captures and installation instructions for the plug-in.
- Evaluation project, includes architecture views and specifications, for use after the plug-in is installed.
- Case studies details document, includes all architecture views, specifications, and synthesized architectures referenced in the paper.
- ArcV website