Graph-basierte Modellierung in Software-Werkzeugen

Ähnliche Dokumente
Software-Reengineering Umgang mit Software-Altlasten

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

Speicherung von XML in (objekt-)relationalen Datenbanken. Burkhard Schäfer

Wissensbasierte Systeme 5. Constraint Satisfaction Probleme

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Wiederholung zu Flüssen

Modell/Metamodell. Generated Source Code. Generator. Model. Fakultät für Informatik und Wirtschaftsinformatik MDSD - SS 2014

1. Einführung. Datenbanken Grundlagen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn

Message Sequence Charts, Live Sequence Charts

Sprachen/Grammatiken eine Wiederholung

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik

Einführung in die Programmierung

PLUS Architektur-Browser

Henshin: Modelltransformationen in EMF. Dr. Thorsten Arendt Marburg, 29. Oktober 2015

Algorithmen und Datenstrukturen 2

Projektgruppe. Knowledge Representation Persistence and Reasoning

Abbildung von Ecore nach gruml

Algorithmus zum Graphen-Matching. und. Anwendung zur inhaltsbasierten Bildersuche

STOFF- IDENT. System DAIOS. Workshop: STOFF-IDENT & openmasp 18. / Freising. marco.luthardt@hswt.de

2. Repräsentationen von Graphen in Computern

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

5.1 Graphentheorie. Ulrik Brandes

8 Diskrete Optimierung

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Datenstrukturen & Algorithmen

Raumbezogene Datenbanken (Spatial Databases)

Algorithmen und Datenstrukturen Kapitel 10

Comparing Software Factories and Software Product Lines

Portabilität über Cloud Grenzen

Model Driven Architecture (MDA)

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Modellierung biologischer. Christian Maidorfer Thomas Zwifl (Seminar aus Informatik)

Notationen zur Prozessmodellierung

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6.

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

MDRE die nächste Generation des Requirements Engineerings

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing

Software Engineering in der Praxis

Das Softwaresystem BASEMENT

Best Practices für RM/RE in einem Prozess Framework Thomas Schröder

Seminar XML und Datenbanken. Thema: Workflow

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML

Model Driven Software Development

Model Driven Architecture Praxisbeispiel

Usecase Meta Model Comparison and Model Migration. Dawid Kostrzycki Entwicklung verteilter eingebetteter Systeme

Objektorientierte Modellierung (1)

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

4.7 Der Algorithmus von Dinic für maximalen Fluss

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

Oracle JDeveloper 10 g

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

4.Grundsätzliche Programmentwicklungsmethoden

MDA auf der Grundlage der OMG Konzepte

4. Hierarchische und netzwerkartige Datenbankmodelle

Patrick Simianer Visualisierung regulärer Ausdrücke

Dynamische Generierung von XML

Graphentheorie 1. Diskrete Strukturen. Sommersemester Uta Priss ZeLL, Ostfalia. Hausaufgaben Graph-Äquivalenz SetlX

Software Analyse Tooldemo: JQuery Sommersemester Jonas Pusch

WS 2009/10. Diskrete Strukturen

Elementargeometrie. Prof. Dr. Andreas Meister SS digital von: Frank Lieberknecht

Workshop WissKI für Uni Sammlungen. Martin Scholz , basierend auf

Development auf der Plattform SAP HANA

Softwarepraktikum: Enigma

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel

Lehrpläne NRW Sek.stufe 2. Lernen im Kontext

Projekt AGB-10 Fremdprojektanalyse

Buildsystem. Maven & Scons. Controls Entwicklungsforum Januar 2012

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken

Bäume und Wälder. Bäume und Wälder 1 / 37

Prozessmodellierung im Bauwesen Methoden und Werkzeuge zur Planung der Planung

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Overview. Testen von Planarität. Planare Graphen. Beliebige Knotenpositionen. Gerade Linien. Faces

Überführung von UML-Modellen aus dem Enterprise Architect nach JGraLab

Guten Tag! CampusSource. Die CSE Integration Platform. CampusSource Engine. Christof Pohl Softwareentwicklung Medienzentrum Universität Dortmund

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

Software-Qualität sichtbar machen

Oracle SQL Developer Data Modeling

Kapitel 6: Graphalgorithmen Gliederung

Objektorientierte Softwareentwicklung

Vortrag von: Ilias Agorakis & Robert Roginer

Algorithmische Graphentheorie

Transkript:

Graph-basierte Modellierung in Software-Werkzeugen 1 Inhalt Einleitung Modellierung mit Graphen Modellierung mit Graphklassen (Schemata und Constraints) Implementation von Graphen (Algorithmen und Anfragen) Software-Werkzeuge (Interoperabilität und GUPRO) Zusammenfassung 2 1

Einleitung (Was sind Graphen?) 3 Graphen 4 2

Arten von Graphen gerichtet/ungerichtet mit/ohne Mehrfachkanten mit/ohne Schlingen markiert/unmarkiert azyklisch/planar/vollständig/... 5 Definition 6 3

typisiert, attributiert, geordnet size = 5 1 weight = 72 2 3 length = 108 length = 82 volume = 44 weight = 93 volume = 53 size = 9 7 TGraphen Typisierte, attributierte und angeordnete gerichtete Graphen heißen TGraphen. 8 4

Modellierung mit Graphen 9 Graphen als Modelle zielgerichtete Abstraktion 10 5

Source Code Fragment 11 6

Vorteile der Graphenmodellierung Graphen sind gleichzeitig mächtig d.h. sie sind sinnvolle Abstraktionen für viele Sachverhalte formal d.h. sie sind mathematische Objekte, über die man räsonnieren kann anschaulich d.h. man kann sie visualisieren und somit auch intuitiv wahrnehmen effizient d.h. man kennt zahlreiche schnelle Verfahren 14 7

Modellierung mit Graphklassen 15 Graphklassen Eine Klasse von Graphen wird definiert durch ein Schema (meta model) zusätzliche Integritätsbedingungen (constraints) 16 8

Beispiel Bipartite Graphen sind Graphen mit zwei Knotentypen, deren Kanten nur zwischen Knoten verschiedenen Typs verlaufen. 17 Schema 18 9

Integritätsbedingungen Ein Matching ist ein bipartiter Graph, bei dem jeder Knoten nur mit höchstens einer Kante inzident ist. 19 Matching 20 10

Modellierung mit Graphklassen (Schemata) 21 11

12

13

Prinzipien der Modellierung (1) Die Modellierung geschieht objekt-basiert: Jedes identifizierbare relevante Objekt wird durch genau einen Knoten repräsentiert. Jede Beziehung zwischen zwei Objekten wird durch eine Kante repräsentiert. 27 Prinzipien der Modellierung (2) Objekte mit gemeinsamen Eigenschaften erhalten denselben Typ. Eigenschaften von Objekten werden durch Attribute beschrieben. Die Vorkommensreihenfolgen von Beziehungen werden durch Kantenreihenfolgen abgebildet. 28 14

Sichten auf das Schema Graph-Schemata sind gleichzeitig Konzeptuelle Beschreibungen des Anwendungsbereichs Formale Beschreibungen der Daten Anleitungen zur Implementation 29 15

16

33 Arten der Modellierung Die Modellierung von (textuellen oder visuellen) Artefaktsprachen kann erfolgen aus verschiedenen Sichten auf verschiedenen Granularitätsstufen für verschiedene Sprachen integriert 34 17

Modellierung mit Graphklassen (Integritätsbedingungen) 35 Schema Constraints Häufig sind nicht alle durch das Schema beschriebenen TGraphen zulässig. Sie müssen evtl. weitere Integritätsbedingungen erfüllen. Diese Bedingungen können durch eine Einschränkungssprache erfasst werden: GRAL 36 18

GRAL GRAL (GRaph Specification Language) ist eine Z-Erweiterung zur Beschreibung von Grapheigenschaften. GRAL ist so eingeschränkt, dass es algorithmisch zugänglich ist, d.h. das Testen von GRAL-Prädikaten auf einem konkreten TGraphen ist polynomial. 38 19

GRAL-Erweiterungen Basisprädikate über Graphelemente (isisolated, isloop) und Graphen (istree, isacyclic, isconnected) Funktionen von Typbezeichnern auf Knotenmengen (vertexclass), Kantenbezeichner (edgeclass) or induzierte Teilgraphen (egraph, vgraph) Reguläre Pfadausdrücke 39 Pfadausdrücke Pfadausdrücke sind reguläre Ausdrücke über Knoten und Kantentypen: Konkatenation, Fallunterscheidung und Iteration. 40 20

Pfadausdrücke expression sets predicate 41 GRAL-Einschränkungen Quantoren haben nur endliche Bereiche Alle Prädikate und Funktion sind polynomial berechenbar 42 21

Implementation mit Graphen 43 Implementation mit Graphen (Algorithmen) 44 22

GraLab TGraphen können als Datenstruktur (mit allen ihren Eigenschaften) effizient implementiert werden. Es gibt Klassenbibliotheken für TGraphen: GraLab 4.0 (C++) JGraLab (Java) 45 Properties of (J)Gralab Eigenschaften Kanten sind Objekte erster Ordnung Kanten können in beide Richtungen traversiert werden Mehrfachkanten sind erlaubt Persistente und temporäre Attribute sind möglich Gerichtete und ungerichtete Sichten existieren nebeneinander Traversierung ist effizient 46 23

control structure temporary attribute function 47 1 2 1 3 2 3 4 node next 3 2 1 1 2 3 3 3 0 4-3 3 2 0 0-4 -4-3 -2-1 1 2 3 4 first 1-1 -2 1 2 3 48 24

Algorithmenentwicklung Algorithmen auf TGraphen können in TGraph-orientiertem Pseudocode entwickelt und direkt implementiert werden (optimiert für Traversierungen). 49 Implementation mit Graphen (Anfragen) 50 25

Graphanfragen Die Extraktion von Information aus einem Graphen kann durch Anfragen an den Graphen erfolgen GReQL (GRaph Query Language) FROM <variable declarations> WITH <GRAL-condition> REPORT <expression list> END 51 26

GReQL Example 53 Software-Werkzeuge 54 27

Umgebungen Die Bandbreite softwaretechnischer Werkzeuge ist sehr breit und erstreckt sich über alle Phasen CASE-Tools Programmier-Tools Reengineering-Tools... Moderne Tools werden zu Umgebungen integriert. 55 Repository-Basierung 56 28

Repository-Technologien Für die praktische Implementation werden verschiedenen Technologien verwendet, z.b. TGraphen (Gupro) Relationen (grok) relationale Datenbanken (Sneed) oo-datenbanken XML-Text Prolog (shore) 57 Software-Werkzeuge (Interoperabilität) 58 29

GXL Konzeptionell sind Repository-Daten spezielle TGraphen. GXL (Graph Exchange Language) ist eine XML-Sprache zum Austausch von Graphschemata und Graphen. 59...... 60 30

GXL erlaubt die Beschreibung von TGraphen Hypergraphen Hierarchischen Graphen GXL ist in der Reengineering-Welt weit verbreitet. 61 Software-Werkzeuge (GUPRO) 62 31

In der Werkzeug-Umgebung GUPRO (Generische Umgebung zum Programmverstehen) werden alle relevanten Informationen in Graphen gehalten. Dadurch, dass die Graphklassen durch Schemata spezifiziert sind, wird die Generizität erreicht. 63 GUPRO: Datenfluss-Architektur 64 32

GUPRO unterstützt das Reengineering und Programmverstehen durch Anfragen an Graphen (querying) Schema-basiertes Navigieren durch Graphen (browsing) Visualisierung des Graphen durch Programm-text unter Berücksichtigung des Präprozessors (folding) 65 33

Zusammenfassung 68 34

Inhalt Modellierung mit Graphklassen (Schemata und Constraints) Implementation von Graphen (Algorithmen und Anfragen) Software-Werkzeuge (Interoperabilität und GUPRO) 69 TGraphen sind ein mächtiges Mittel zur Modellierung. Sie eignen sich besonders gut zur Modellierung von Artefakten in Software-Werkzeugen. Sie sind gleichzeitig anschaulich, formal und effizient. 70 35

Sie bieten eine günstige Abstraktionsebene für Interoperabilität von Tools (abstrakt genug und inhaltsreich). Sie bieten eine gute Basis für generische Werkzeuge, da Graphklassen durch Schemata und Bedingung definiert werden können. Es gibt Ansätze für eine zusammenhängende Technologie (gruml, GRAL, GReQL, GXL). 71 36