Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Explizite und editierbare Metainformationen für Software Muster.

Ähnliche Präsentationen


Präsentation zum Thema: "Explizite und editierbare Metainformationen für Software Muster."—  Präsentation transkript:

1 Explizite und editierbare Metainformationen für Software Muster

2 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

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

4 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

5 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.

6 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

7 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, …}

8 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

9 Erweiterbares Meta-Modell

10 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

11 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

12 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.

13 Die Struktur hinter dem Kode

14 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:

15 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

16 Use Cases – Überblick

17 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

18 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

19 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

20 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

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


Herunterladen ppt "Explizite und editierbare Metainformationen für Software Muster."

Ähnliche Präsentationen


Google-Anzeigen