TU Darmstadt / ULB / tuprints

Implementing Architecture Stratification

Girschick, Martin :
Implementing Architecture Stratification.
Technische Universität Darmstadt
[Ph.D. Thesis], (2010)

[img]
Preview
PDF
dissertation_girschick.pdf
Available under Simple publication rights for ULB.

Download (5Mb) | Preview
Item Type: Ph.D. Thesis
Title: Implementing Architecture Stratification
Language: English
Abstract:

Although currently software development often separates the design phase from the implementation, the trend towards model-driven approaches is undeniable. As models are the primary development artifact in model-driven development, one has to deal with the problems surrounding huge and therefore unmanageable models. To tackle these issues, systems are often divided into components that are modeled separately. As an alternative, views can be used, which hide certain aspects of the model or present them in a different form. In both cases, several models or at least several views co-exist, which leads to the problem of model synchronization. One of the main goals of model-driven development is the automatic generation of executable applications. Here, too, model synchronization is problematic, as several information sources may affect the same code fragment. When only parts of the system are generated, the remaining application has to be coded by hand, which complicates the reapplication of the generation process. In order to achieve a high level of automation in model-driven development, the complete application has to be modeled. In this scenario, the use of several models improves understandability and precision but again leads to model synchronization issues. In this dissertation I extend and concretize the ideas presented in [AK00] and [AK03]. In [AK00] Atkinson and Kühne introduced the concept of stratified architectures. With it, software systems are described by a number of strata with decreasing levels of abstraction. Each stratum introduces a concern and thereby concretizes the system description. This strict ordering limits dependencies to adjacent strata. In [AK03] the authors complement the concept by using annotations to describe each concern. By introducing “refinement transformations”, which implement abstractly described concerns, annotations enable stepwise refinement for model based system development and, in addition, alleviate the aforementioned model synchronization issue. In my thesis I discuss similar approaches and compare them to architecture stratification. Additionally, I present a complete implementation of the stratification concept and verify its effectiveness by applying it to a real-world project. The central element is a combined graphical and textual model transformation language, which optimally fits the needs for stepwise refinement in a model-driven environment. This language enables fine grained and highly parameterizable model transformations. They are organized in concern-oriented transformation rules and described using a detailed metamodel. The rules are presented using a notation, which employs activity diagrams for the control flow and collaboration diagrams for the model transformation. The language also integrates a template-based code generation language and can be extended further by using hand-written code. It is integrated into a CASE tool and provides the ability to trace concerns and their implementations within a stratified architecture. [AK00] Colin Atkinson and Thomas Kühne. Separation of Concerns through Stratified Architectures. International Workshop on Aspects and Dimensions of Concerns, ECOOP 2000, Cannes, France, 2000. [AK03] Colin Atkinson and Thomas Kühne. Aspect-Oriented Development with Stratified Frameworks. IEEE Software, 20(1):81-89, 2003.

Alternative Abstract:
Alternative AbstractLanguage
Obwohl in der Softwareentwicklung derzeit oft noch eine klare Trennung zwischen der Entwurfs- und Implementierungsphase besteht, ist dennoch der Trend zu modellgetriebenen Ansätzen unverkennbar. Modelle sind ein primäres Entwicklungsartefakt modellgetriebener Entwicklung, sie sind jedoch oftmals sehr umfangreich und deshalb schwer zu handhaben. Daher werden Softwaresysteme oft in Komponenten unterteilt und separat modelliert. Alternativ können mehrere Ansichten verwendet werden, die bestimmte Aspekte des Systems verstecken oder in anderer Form darstellen. In beiden Fällen existieren mehrere Modelle oder zumindest mehrere Ansichten, was zu dem Problem der Modellsynchronisation führt. Eines der Hauptziele modellgetriebener Entwicklung ist die automatische Generierung von ausführbaren Anwendungen. Auch hier existiert das Problem der Modellsynchronisation, da mehrere Informationsquellen mitunter das selbe Codefragment beeinflussen. Falls nur Teile einer Anwendung generiert werden, muss der Rest durch handgeschriebenen Code ergänzt werden. Dies erschwert die erneute Durchführung des Generierungsprozesses. Um einen hohen Automatisierungsgrad in der modellgetriebenen Entwicklung zu erreichen, muss die gesamte Anwendung modelliert werden. Bei diesem Ansatz verbessert die Verwendung mehrerer Modelle sowohl die Verständlichkeit als auch die Genauigkeit, führt jedoch erneut zum Problem der Modellsynchronisation. In dieser Dissertation erweitere und konkretisiere ich die Ideen aus [AK00] und [AK03]. Atkinson und Kühne stellen in [AK00] die Architekturstratifikation vor. Damit werden Softwaresysteme durch mehrere Straten mit fallendem Abstraktionsniveau beschrieben. Jedes Stratum fügt einen Aspekt hinzu und konkretisiert damit die Systembeschreibung. Eine solche strikte Ordnung beschränkt Abhängigkeiten auf benachbarte Straten. Um die Aspekte zu beschreiben, ergänzen die Autoren in [AK03] das Konzept um Annotationen. Diese ermöglichen durch die Verwendung von „Verfeinerungstransformationen“ die Implementierung abstrakt beschriebener Aspekte und damit eine schrittweise Verfeinerung. Hierdurch mildern sie auch das zuvor erwähnte Problem der Modellsynchronisation. In meiner Arbeit diskutiere ich ähnliche Ansätze und vergleiche sie mit der Architekturstratifikation. Ich beschreibe eine vollständige Implementierung des Stratifikationskonzepts und zeige ihre Effektivität durch die Anwendung auf ein reales Projekt. Im Zentrum steht eine grafische und textuelle Modelltransformationssprache, die optimal auf die Bedürfnisse der schrittweisen Verfeinerung in einem modellgetriebenen Umfeld abgestimmt ist. Diese Sprache ermöglicht feingranulare und hochgradig parametrisierbare Modelltransformationen, die in Transformationsregeln organisiert sind und sich an Aspekten orientieren. Ihre Beschreibung erfolgt durch ein detailliertes Metamodell. Die Notation der Regeln erfolgt durch Aktivitätsdiagramme, zur Beschreibung des Ablaufs, und Kollaborationsdiagramme, für die Modelltransformationen. Die Sprache integriert darüber hinaus eine vorlagenbasierte Codegenerierungssprache und kann durch handgeschriebenen Code erweitert werden. Sie ist in einer CASE-Werkzeug integriert und bietet die Möglichkeit, Aspekte und ihre Implementierung innerhalb einer stratifizierten Architektur nachzuverfolgen. [AK00] Colin Atkinson and Thomas Kühne. Separation of Concerns through Stratified Architectures. International Workshop on Aspects and Dimensions of Concerns, ECOOP 2000, Cannes, France, 2000. [AK03] Colin Atkinson and Thomas Kühne. Aspect-Oriented Development with Stratified Frameworks. IEEE Software, 20(1):81-89, 2003.German
Uncontrolled Keywords: Metamodelling, Model-Driven Development, Architecture Stratification, Model Transformation, Concern-Oriented Modelling
Alternative keywords:
Alternative keywordsLanguage
Metamodelling, Model-Driven Development, Architecture Stratification, Model Transformation, Concern-Oriented ModellingEnglish
Classification DDC: 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Divisions: Fachbereich Informatik
Fachbereich Informatik > Metamodellierung
Date Deposited: 06 Dec 2010 09:01
Last Modified: 07 Dec 2012 11:58
URN: urn:nbn:de:tuda-tuprints-23081
License: Simple publication rights for ULB
Referees: Kühne, Dr. Thomas and Schürr, Dr. Andy
Refereed: 13 October 2010
URI: http://tuprints.ulb.tu-darmstadt.de/id/eprint/2308
Export:

Actions (login required)

View Item View Item