Today’s large software systems have reached such a level of complexity that a single architectural view is not sufficient anymore to appropriately capture their high-level architecture, detailed design, and low-level realization. If a system is described from a bird’s eye view—using a very high-level architecture description—many important details regarding performance, local extensibility, etc. remain hidden. If, however, one chooses a view revealing much more detail so as to allow the above properties to be evaluated, the complexity will become unwieldy and it is then difficult to see the forest for the trees.
Architecture stratification is an approach that connects multiple views on a single system with refinement translations, so that each view completely describes the whole system on a particular level of abstraction. This way, single levels do not only present an optimal mix of overview and detail for various stakeholders, but they also separate and organize a system’s extension points, patterns, and cross-cutting concerns.
The Figure to the right illustrates the basic idea of Architecture Stratification: A linear hierarchy of connected levels of abstraction. While in principle, both downward- (development) and upward- (re-engineering) generation directions are possible, we currently focus on the downward direction. Note, however, that the vertical dimension does not represent a time line. All levels coexist and are available for inspection concurrently, at any time. Ultimately, our goals are full traceability and both downward and upward propagation of edits at any level, but currently we restrict ourselves to downward propagation of changes.
The prototyp implementation of our vision is called SPin and is available as a plugin for
the CASE-Tool Fujaba. It does not only transform models (e.g., class diagrams) but also
any associated code (e.g., method implementations). We can therefore refine a very simple—but
fully functional—system at the top level, into a complex one that supports more functionality
and exhibits more non-functional properties (e.g., distribution). This most detailed system
description can then be used to create an executable system by virtue of the Fujaba code
generation engine.
To install and use SPin simply follow the instructions on our SPin
webpage. You can also take a look at our example of the stratification concept. Note: The example contained in the current plugin release differs from the example here. An updated version will be available, soon.
Martin Girschick
Implementing Architecture Stratification
Dissertation, Technische Universität Darmstadt, 2010.
Martin Girschick
Integrating Template based Code Generation into Graphical Model Transformation
Thomas Kühne, Wolfgang Reisig, Friedrich Steimann (Hrsg.), Modellierung 2008, Berlin, GI LNI P-127, p. 27-41, March 2008
Martin Girschick, Thomas Kühne, and Felix Klar
Generating Systems from
Multiple Levels of Abstraction
Proceedings of TEAA 2006, In LNCS Volume 4473/2007, pp. 127-141, Berlin, Germany, 2007
Thomas Kühne, Martin Girschick, and Felix Klar
"Tool Support for Architecture Stratification"
H.C. Mayr, Ruth Breu (eds), Modellierung 2006,
Innsbruck, GI LNI P-82, p.213-222, March 2006
Felix Klar, Thomas Kühne and Martin Girschick
"SPin
– A Fujaba Plugin for Architecture Stratification"
Fujaba Days 2005, Paderborn, September 2005
Felix Klar
"SPin
– Ein Werkzeug zur Realisierung von Architektur-Stratifikation"
Diplomarbeit,
Technische Universität Darmstadt, April 2005
Thomas Kühne
"Automatisierte
Softwareentwicklung mit Modellcompilern"
thema Forschung, 1/2003, 116—122, 2003
Colin Atkinson and Thomas Kühne
"Aspect-Oriented
Development with Stratified Frameworks"
IEEE Software, Vol. 20, No. 1, 81—89, 2003
Colin Atkinson and Thomas Kühne
"Stratified Component Frameworks"
International journal of Computing Science and Informatics, "Informatica",
Vol. 25, No. 3, 393--401, 2001
Colin Atkinson and Thomas Kühne
"Separation of Concerns through Stratified Architectures"
International Workshop on SoC and AOP (in conjunction
with ECOOP'2000), Cannes, France, June 2000