Data-flow based Model Analysis: Approach, Implementation and Applications

  • During the past years, the modeling paradigm has become one of the predominant trends in the field of software engineering and has been embraced by industry and research alike. An important reason for this development is that models provide an intuitive yet concise way of formalizing the concepts of an application domain along with the relationships that exist between them. As a consequence, this technique now serves as an integral part of popular and widely used software design and development processes such as the Rational Unified Process (RUP) or the Model-driven Architecture (MDA) in order to characterize static and behavioral aspects of software systems. It also drives new approaches in other contexts, e.g. in testing (Model-based Testing), for the implementation and execution of business processes on the basis of high-level descriptions (Business Process Modeling) or through the provisioning of tools aimed at domain experts (Domain-specific Languages). However, the employment ofDuring the past years, the modeling paradigm has become one of the predominant trends in the field of software engineering and has been embraced by industry and research alike. An important reason for this development is that models provide an intuitive yet concise way of formalizing the concepts of an application domain along with the relationships that exist between them. As a consequence, this technique now serves as an integral part of popular and widely used software design and development processes such as the Rational Unified Process (RUP) or the Model-driven Architecture (MDA) in order to characterize static and behavioral aspects of software systems. It also drives new approaches in other contexts, e.g. in testing (Model-based Testing), for the implementation and execution of business processes on the basis of high-level descriptions (Business Process Modeling) or through the provisioning of tools aimed at domain experts (Domain-specific Languages). However, the employment of abstraction (meta) layers to construct languages dates back a lot further than the comparatively new notion of modeling: The syntax of a programming language, usually given in the form of a context-free grammar, forms the basis for parsing language expressions into their respective structural representation. In many respects, the use of metamodels as means of defining the abstract syntax of languages therefore parallels formalisms and techniques common to the area of compiler construction. As the application fields of modeling expand to new areas where automated processing of the contained information becomes crucial to achieve the desired outcome, the demand for methods enabling advanced analyses of the modeled content increases. Since models themselves represent a layer of abstraction w.r.t. domain-specific runtime (or "real world") semantics, their elements can be subjected to a static analysis, i.e. an assessment of their static properties which are guaranteed to hold for all instances. Contemporary techniques for model analysis, such as the widely-used Object Constraint Language (OCL), suffer from many shortcomings with respect to their expressiveness. The conceptual similarities between the domains of modeling and compiler construction gave rise to the idea of applying the powerful and well-understood methods for static validation and optimization of formal language expressions - namely attribute grammars and data-flow analysis - to models. Hence, this thesis introduces the notion of flow-based static model analysis to enable the demand-driven, context-sensitive extraction and validation of a model's static properties and evaluates the applicability of this approach in the context of several case studies.show moreshow less
  • Im Bereich des Software-Engineerings hat das Modellierungsparadigma als Technik zur formalen Beschreibung von Anwendungsdomänen in den letzten Jahren zunehmend an Bedeutung gewonnen. Diese Entwicklung lässt sich mit der Tatsache erklären, dass Modellierungstechniken ein leicht zugängliches und dennoch mächtiges Werkzeug darstellen, das es erlaubt, die Eigenschaften beliebiger Domänen einfach und präzise abzubilden. In der Folge entstanden Vorgehensmodelle zur modellbasierten Softwareentwicklung - wie etwa der Rational Unified Process (RUP) oder die Model-driven Architecture (MDA) - in denen dieser Ansatz eine zentrale Rolle spielt. So werden beispielsweise Modellierungssprachen wie die UML zur Beschreibung der strukturellen Eigenschaften und der verhaltensorientieren Aspekte des zu entwickelnden Systems eingesetzt. Da der Aufbau der Modelle dabei immer einem bekannten Muster folgt, das durch das jeweilige Metamodell vorgegeben wird, können die kodierten Daten automatisiertIm Bereich des Software-Engineerings hat das Modellierungsparadigma als Technik zur formalen Beschreibung von Anwendungsdomänen in den letzten Jahren zunehmend an Bedeutung gewonnen. Diese Entwicklung lässt sich mit der Tatsache erklären, dass Modellierungstechniken ein leicht zugängliches und dennoch mächtiges Werkzeug darstellen, das es erlaubt, die Eigenschaften beliebiger Domänen einfach und präzise abzubilden. In der Folge entstanden Vorgehensmodelle zur modellbasierten Softwareentwicklung - wie etwa der Rational Unified Process (RUP) oder die Model-driven Architecture (MDA) - in denen dieser Ansatz eine zentrale Rolle spielt. So werden beispielsweise Modellierungssprachen wie die UML zur Beschreibung der strukturellen Eigenschaften und der verhaltensorientieren Aspekte des zu entwickelnden Systems eingesetzt. Da der Aufbau der Modelle dabei immer einem bekannten Muster folgt, das durch das jeweilige Metamodell vorgegeben wird, können die kodierten Daten automatisiert weiterverarbeitet werden. So kann zum Beispiel durch eine Modell-zu-Text Transformation (M2T) lauffähiger Programmcode erzeugt werden. Der Einsatz von Modellierungstechniken ist allerdings keineswegs auf die Disziplin der Softwareentwicklung begrenzt. Weitere Anwendungsfelder finden sich etwa in der Beschreibung und Generierung von Testfällen (Modellbasiertes Testen) sowie dem Design und der Implementierung von Geschäftsprozessen auf Basis abstrakter Prozessmodelle (Business Process Modeling). Weiterhin kann in jüngster Zeit ein verstärkter Trend in Richtung domänenspezifischer Sprachen beobachtet werden. Dabei werden generische Techniken wie die UML von spezialisierten Modellierungssprachen abgelöst, die auf die Benutzung durch Domänenexperten zugeschnitten sind. Eine Konsequenz aus dem Einsatz modellbasierter Technologien ist der Bedarf an geeigneten Analysemethoden, die es ermöglichen, die strukturierten Informationen auszuwerten. Einsatzbereiche für diese Methoden bestehen unter anderem in der Validierung der Modelldaten sowie der Ableitung von allgemeingültigen Aussagen in Bezug auf die Semantik der jeweiligen Zieldomäne. Statische Analyseverfahren werten hierfür die syntaktischen Struktur aus, so dass garantiert werden kann, dass die ermittelten Ergebnisse für alle Laufzeitinstanzen Gültigkeit besitzen. Aktuelle Ansätze zur Analyse von Modellen wie etwa die Object Constraint Language (OCL) sind allerdings nicht immer in der Lage, diese Anforderungen zu erfüllen. Ziel dieser Arbeit ist es, eine generische Analysemethodik bereitzustellen, die die Beschränkungen existierender Techniken umgeht. Zu diesem Zweck wird untersucht, wie Konzepte aus dem Übersetzerbau - einem wichtigen Bereich der praktischen Informatik der als gut erforscht gilt - auf Modelle angewendet werden können. Ermöglicht wird dieses Vorgehen durch konzeptuelle Ähnlichkeiten zwischen diesen beiden Bereichen. So ist die Verwendung verschiedener Abstraktionsschichten zur Definition von Sprachen und Sprachinstanzen eine zentrale Eigenschaft des Modellierungsansatzes. In vergleichbarer Weise wird die Syntax einer Programmiersprache mittels einer kontextfreien Grammatik spezifiziert, die damit die Basis für die Verarbeitung von Sprachausdrücken (Parsen und Übersetzen von Programmcode) bildet. In vielerlei Hinsicht ähnelt daher der Einsatz von Metamodellen als Mittel zur Definition der abstrakten Syntax einer Sprache den Formalismen und Techniken, die im Bereich des Übersetzerbaus Anwendung finden. Daraus entstand die Idee, die leistungsfähigen Methoden zur statischen Validierung und Optimierung formaler Sprachausdrücke - namentlich Attributgrammatiken und Datenflußanalysen – auf Modelle zu übertragen. Diese Arbeit führt hierfür das Konzept datenflußbasierter Modellanalysen ein und evaluiert die Anwendbarkeit und Vielseitigkeit dieses Ansatzes im Rahmen mehrerer Fallstudien.show moreshow less

Download full text files

Export metadata

Statistics

Number of document requests

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author:Christian Saad
URN:urn:nbn:de:bvb:384-opus4-29868
Frontdoor URLhttps://opus.bibliothek.uni-augsburg.de/opus4/2986
Advisor:Bernhard Bauer
Type:Doctoral Thesis
Language:English
Publishing Institution:Universität Augsburg
Granting Institution:Universität Augsburg, Fakultät für Angewandte Informatik
Date of final exam:2015/02/04
Release Date:2015/06/24
GND-Keyword:Statische Analyse; Modellierung; Datenflussanalyse; Metamodell
Institutes:Fakultät für Angewandte Informatik
Fakultät für Angewandte Informatik / Institut für Informatik
Dewey Decimal Classification:0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 004 Datenverarbeitung; Informatik
Licence (German):Deutsches Urheberrecht mit Print on Demand