Explizite und editierbare Metainformationen für Software Muster.

Slides:



Advertisements
Ähnliche Präsentationen
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Advertisements

der Universität Oldenburg
Prüfungspläne Bachelor-Thesis
mit Entwicklungsumgebungen (Eclipse) Software verbessern
Vorlesung Compilertechnik Sommersemester 2008
Modellgetriebene Softwareentwicklung
Modellierung sozio-technischer Systeme SeeMe - Semi-strukturierte, sozio-technische Modellierungsmethode.
Zur Rolle der Sprache bei der Modellierung von Datenbanken
Frame-Logik Eine Einführung Andreas Glausch.
8 Behandlung von Begriffen 8.1 Grundlagen aus Logik und Psychologie
Kapitel 4 Datenstrukturen
Seminar Software-Engineering für softwareintensive Systeme
Ruby on Rails im Überblick
On a Buzzword: Hierachical Structure David Parnas.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Seminar zum pi-Kalkül betreut von Andreas Rossberg
DOM (Document Object Model)
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Web 3.0 – Programmierung – Semantic Web / CIDOC CRM
CIDOC-CRM Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung AM 2 Dozent: Prof. Dr. Manfred Thaller Referent: Nelson Marambio.
3. Rechnen mit natürlichen Zahlen
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
Grundlegende Analysen & Zwischendarstellungen
1 Analyse von Software-statisch- Darmstadt,den Presentation: Sebastian Schikowski Steve Kenfack.
XML in Client-Server und GRID Architektur
Introducing the .NET Framework
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
1 WS 2012 Software-Engineering II Aspektorientierung.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Software Design Patterns Extreme Programming (XP).
Kollektionstypen (1) Es sind polymorphe Typkonstruktoren, jeweils als Sorten- und als Klassenkonstruktor (t,v beliebige Typen): –set, Set :Ungeordnete.
Use Cases Gesamtprojekt
Systementwicklungsprojekt:
UML Begleitdokumentation des Projekts
Werkzeugunterstützte Softwareadaption mit Inject/J
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Spezifikation von Anforderungen
12. Vorlesung: Aktivitätsdiagramme
Fünf-Fünf-Zwei der 3. Vorlesung/Übung Requirements Engineering WS 10/11 Marin Zec.
Letzter Tag Spaeter Zeitpunkt letzte Lied hoert man weiter.
Unified Modeling Language Repetition / Einführung zu UML
Grundlagen vernetzt-kooperativer Planungsprozesse für Komplettbau mit Stahlbau, Holzbau, Metallbau und Glasbau Projekt im DFG-SPP 1103 Bergische Universität.
Polymorphe Typen (1) Erweiterung des relationalen Datenmodells: Domänen: Wie im herkömmlichen Relationenmodell sind die Mengen D 1,...,D m die (atomaren)
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Objektorientiertes Konstruieren
Ruby Refactoring Plug-In für Eclipse
Eike Schallehn, Martin Endig
Software Design Patterns
Seminar: Neue Ansätze der Künstlichen Intelligenz Seite 1Ulf Schneider02. Juli 2002 Ulf Schneider Neue Ansätze der Künstlichen Intelligenz: OIL Ontology.
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Web Services als Remote Content Provider in Portalumgebungen Vorstellung und Diskussion des Themas Präsentation des Prototypen Konzeption und prototypische.
Case Tools Unterstützung für Design Pattern von Vladislav Krasnyanskiy.
Design Pattern1 Motivation Entwurfsmuster Entwurf wiederverwendbarer objektorientierter Software schwer gute Entwürfe entstehen durch Wiederverwen- dung.
Semi-automatische Komposition von Dienstbenutzerschnittstellen auf mehreren Abstraktionsebenen Christian Jäckel Universität des Saarlandes Bachelor.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join.
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten
 Präsentation transkript:

Explizite und editierbare Metainformationen für Software Muster

Gliederung 1.Einführung 2.Probleme 3.Thesen 4.Eine Sprache für strukturelle Meta-Daten Ausdrucksfähigkeit Erweiterbarkeit 5.Alternative Ansätze 6.Proof-of-concept 7.Prototypische Umsetzung

Software Muster A pattern is anything characterized by repetition. (WikiPedia dictionary) Relevante Beispiele: Entwurfsmuster (Visitor, Observer) Idiome (Getter/Setter) andere... (im Ausblick)

Probleme Software-Muster sind zwar Ausdruck von Intentionen, aber... zugehörige Bedingungen bleiben implizit fehlerhafte Muster => falsches Vertrauen Struktur geht leicht verloren prinzipiell gut skalierbar, aber manuell fehleranfällig manuelle Anpassung an anderen Kontext schwierig

Thesen Metadaten über die Programmstruktur können helfen, die meisten der genannten Probleme zu lindern oder zu beheben. Mit Hilfe formaler Metadaten können z.B. Entwurfsmuster langfristig im Entwicklungsprozess unterstützt werden.

PatchWork Meta-Modell (1) Zentrale Elemente (nicht domänen-spezifisch): Role –Entity, Role Player, Entity Type Relation –Projection Constraint –z.B. Cardinality, Containment Operation –Atomic / Composed Operation

Beispiel: Kardinalitätsbedingung Sei R eine Relation zwischen den n+1 Rollen S 1, …, S n und T. Die Kardinalität der Rolle T in R ist 1..* gdw. Wobei Card die Menge aller gültigen Kardinalzahlen ist. Z.B. 1..* = {1, 2, 3, …}

PatchWork Meta-Modell (2) Domänen-spezifische Erweiterungen: Beispiele für die Domäne Java: Entity Types: –Class, Method, Field,... –is-class, is-method, is-field,... Constraints: –in-scope, sub-type, calls,... Operations: –add/remove/replace für jeden Entity Typ

Erweiterbares Meta-Modell

Alternative Ansätze Eingebettete Metadaten –Sprachspezifisch –Explizit: ja; Editierbar: nein Metaprogrammierung –Makro-basierte Systeme Focus auf Transformation statt Invarianten nicht explizit schwer editierbar (?) komplementär zu PatchWork –Reflektions-basierte Systeme Sprachspezifisch

Meta-Programmierung? Für das wesentliche: Nein! –Explizite Muster –Verbunden mit zugehörigen Kode-Fragmenten –Bedingungen beschränken den Kode Interaktion auf semantischen Niveau der Muster führt zu: –Kode Generierung –Kode Transformationen

Beispiel: Das Visitor-Muster Intention: Datenstruktur durch einige Klassen beschreiben Operationen auf diesen Daten beschreiben Definition der Daten zusammenhalten Definition der Operationen zusammenhalten... und das nicht in Lisp sondern in Java.

Die Struktur hinter dem Kode

Metadaten für das Visitor-Muster Klassen für Daten: Klassen für Operationen: Delete Print Folder Document Methoden für Operatoren: printDoc delDoc printFol delFol 3-Stellige Relation:

PatchWork Modell für Visitor «Java Interface Role» abstractVisitor «use» «Java Method Role» OperationAcceptor - /card : 1..* 1 +/- «Java Class Role» DataElement + card : 1..* «Java Class Role» Operation + card : 1..* «Java Method Role» DataSpecificOperator - /card : 0..* 1 1 «proj» 1

Use Cases – Überblick

reads creates and stores reads domain-specific meta model System Architecture Conception Modeller User Meta Model Structure Models Structure Instances Target Code Structure Editor Structure Instance Editor IDE changes & generates creates and stores refers to code fragments reads and analyses

System Architecture Conception changes & generates reads and analyses refers to code fragments creates and stores reads creates and stores reads domain-specific meta model Modeller User Meta Model Structure Models Structure Instances Target Code Structure Editor Structure Instance Editor IDE

Status Quo viele bekannte Entwurfsmuster in Java mit dem Meta-Modell beschrieben zwei Test-Prototypen für das Basis-Meta- Modell erste Version einer graphischen Notation

Nächste Schritte Analogie zu E-R-Modell und Relationalem Modell ausloten Grenze der Ausdrucksfähigkeit genauer untersuchen (z.B. dynamische Aspekte) vollständige Formalisierung des Meta- Modells für Java bekannte Entwurfsmuster modellieren

Ausblick – Anwendungsgebiete Entwurfsmuster Persistente Refactorings Sprachübergreifende Strukturen (z.B. Quellkode und Dokumentation) Programming by Copy & Paste Infrastruktur, um Intentionen expliziter zu machen