Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Dr. Welf Löwe und Markus Noga1 Softwarekomposition und Metaprogrammierung Einführung Ansätze zur Komposition –Subjekt-orientiertes Programmieren SOP –Erweiterungen.

Ähnliche Präsentationen


Präsentation zum Thema: "Dr. Welf Löwe und Markus Noga1 Softwarekomposition und Metaprogrammierung Einführung Ansätze zur Komposition –Subjekt-orientiertes Programmieren SOP –Erweiterungen."—  Präsentation transkript:

1 Dr. Welf Löwe und Markus Noga1 Softwarekomposition und Metaprogrammierung Einführung Ansätze zur Komposition –Subjekt-orientiertes Programmieren SOP –Erweiterungen des objekt-orientierten Paradigmas (composition filters) –Kalküle für Komponentensysteme ( N-Kalkül) –Metaobjekt-Komposition –Template Metaprogramming Invasive Komposition –Konzepte: Webepunkte, Kompositionsschnittstelle –Anwendungsbeispiele –Werkzeuge und Architekturen (COMPOST)

2 Dr. Welf Löwe und Markus Noga2 Literatur /ben/papers/unpacked/Metaprogramming SOP: LambdaN: Dami, Laurent. Software Composition. Dissertation Universität Genf Mulet, P., Malenfant, J., Cointe, P. Towards a Methodology for Explict Composition of MetaObjects. OOPSLA 98. Aksit, M., Bergmans, L., Vural, S. An object-oriented langauge- database integration model: The composition-filters approach. ECOOP 92. LNCS 615, Springer. Template Metaprogramming: GenVoca: Batory, Don. Subjectivity and GenVoca Generators. In Sitaraman, M. (ed.). Proceedings of the Fourth Int. Conference on Software Reuse, April 23-26, 1996, Orlando Florida. IEEE Computer Society Press, pages IPD-Literatur am Ende der Folien

3 Dr. Welf Löwe und Markus Noga3 Problem und Ziel der Komposition Problem –Nicht alle Systemeigenschaften als separate Komponenten erfassbar –Wartbarkeit, Erweiterbarkeit und Wiederverwendbarkeit leiden Ziel –Klare Trennung aller Systemeigenschaften in Entwurf und Umsetzung –Verwebung in einzelnen Schritten (im Gegensatz zum monolithischen Weber à la AOP) Lösung –Komposition (mit Metaoperatoren)

4 Dr. Welf Löwe und Markus Noga4 Komposition: Ausdrücke statt Weber Druckaspekt Persistenz Algorithmus Persistenz- aspekt Druckaspekt Op Druckaspekt Op

5 Dr. Welf Löwe und Markus Noga5 Systembau als Kompositionsterm A B C A B C C.p1 A B A.p1 B.p2 C1 A B C C2 A.p2 A C1 AAA.p1 B.p1 A B C C1 C2 C3 C.p1 C2 A.p2 A C1 AAA.p1 B.p1 C.p2 C3 B.p2

6 Dr. Welf Löwe und Markus Noga6 Systembau als Kompositionsterm A B C C1 C2 C3 C.p1 C2 A.p2 A C1 AAA.p1 B.p1 C.p2 C3 B.p2 C.p1 C2 A.p2 A C1 AAA.p1 B.p1 C.p2 C3 B.p2 D=C4 A B C C1 C2 D

7 Dr. Welf Löwe und Markus Noga7 Voraussetzungen zur Komposition Flexible Komposition von Code und Daten möglich. Kompositionsoperatoren (Kompositoren) sind Programmtransformatoren (Codetransformator, Optimierer, Übersetzer, Metaprogramm, Metaoperator) op: Code  Code code: Code  Code Metaprogramm, Metaoperator Optimierer, Transformator op: SpracheA  SpracheB Übersetzer

8 Dr. Welf Löwe und Markus Noga8 7.1 Einige Ansätze zur Komposition Subjekt-orientiertes Programmieren SOP OOP-Erweiterungen (composition filters) Kalküle für Komponentensysteme ( N-Kalkül) Metaobjekt-Komposition Template Metaprogramming

9 Dr. Welf Löwe und Markus Noga Subjekt-orientiertes Programmieren Verfechter: Ossher, Harrision (IBM) Idee –Teile von Klassen als Subjekte beschreiben –Subjekte durch Mischregeln auf Klassen abbilden Subjekte –Operationen (generische Methoden) –Klassen und Instanzvariable –Umsetzung der Operationen in konkreten Klassen (Realisierung mittels Generator) –Beschreibung mit eingebettetem C++ Mischregeln –Beschreibung mit einfacher Operatorsprache

10 Dr. Welf Löwe und Markus Noga10 Beispiel Ein einfaches Subjekt Subject: PAYROLL Operations: print() Classes : Employee() with InstanceVariables: _emplName; Mapping : Class Employee, Operation Print() implemented by &Employee::Print() // others... Mischen nach Regeln –Zielklassen erhalten Operationen der beteiligten Subjekte

11 Dr. Welf Löwe und Markus Noga11 Mischregeln in SOP Fest vorgegebene Kompositionsoperatoren –Korrespondenzregeln: Equate(Zuweisung Methoden-Implementierung = Subjektteil) Correspond(Delegation) –Kombinationsregeln Replace(Überschreiben) Join (Verbinden von Subjektteilen) –Korrespondenz- und Kombinationsregeln Merge = Join; Equate Override Anwendungen aus C++ leicht erweiterbar (klar wegen Sichten und Erweiterungsoperatoren) Mischmodell kaum erweiterbar!

12 Dr. Welf Löwe und Markus Noga LambdaN-Kalkül ( N) Erster Kalkül zur Codekomposition Erweiterung des Lambda-Kalküls –Benannte Argumente –Namensabhängige Reduktionsregeln Zweck –Mehrfachdefinition von Funktionen –Einfache Vereinigung ihres Codes Mischregeln –Umbenennung von Parametern –Vereinigung von Ausdrücken

13 Dr. Welf Löwe und Markus Noga13 Beispiel f = lambda x y z. let r = x+z in let s = y*x in record(r+s). f = lambda a b. let x = a+b in record(x). f = lambda a b. let t = a+b in record(t). Umbenennung (rename) f = lambda x y z a b. let r = x+z in let s = y*x in let t = a+b in record(r+s,t). LambdaN vereinigte datenunabhängige Slices Vereinigung (union) f(x=1,y=2,z=3)f(a=1,b=2) f(x=1,y=2,z=3,a=1,b=2)

14 Dr. Welf Löwe und Markus Noga Metaobjekt-Komposition Klasseneigenschaften als Metaobjekt darstellen (tracing, counting, verbose, persistent,..) Kombination durch Aggregation auf Metaebene Der eigentliche Code einer Klasse ergibt sich aus –den Methoden –dem Code der Metaobjekte (auf irgendeine Weise komponiert; de facto beschränkt auf Prozedurein-/ausgang) Simulation mit LambdaN möglich

15 Dr. Welf Löwe und Markus Noga15 Beispiel Class c { Procedure p() { fetch_from_db(self); print("enter p"); p_counter++; /* algorithm */ // counting: nothing print("exit p"); store_to_db(self); } c p Algorithmus persistence verbosity counting precode postcode composing Metaobjekt-Klassen Metaobjekt- Methoden Normale Klasse

16 Dr. Welf Löwe und Markus Noga Kompositionsfilter (composition filters) Älterer Ansatz, ähnelt Metaobjekt-Komposition (Schachtelung von Code um Objekte und Methoden) Idee: Botschaften zwischen Objekten werden gefiltert Beispiele für Filter –Botschaften verschlucken –Botschaften delegieren (Vererbung, Delegation) –Mit anderen Objekten synchronisieren (Synchronisationsprotokolle) –Objekt(e) modifizieren (Anpassung) Dynamische Anpassung durch Filtertausch möglich Sehr mächtiges Konzept, besonders zur Anpassung

17 Dr. Welf Löwe und Markus Noga Template Metaprogramming/GenVoca Templates in C++ –Parametrisierte Typausdrücke –Auswertung bei Übersetzung Idee:Nutze Templates zur Komposition Nachteil:Unlesbare Programme (Zweckentfremdung!) Umsetzung auch denkbar mit –statisch ausgewertetem Lambda-Kalkül –offener Programmiersprache (z.B. OpenC++) GenVoca (Batory) –Mehrfach-Parametrisierung mit geschachtelten Template- Parametern (Konfiguration in mehreren Dimensionen) –Hauptsächlich für innere Anpassung

18 Dr. Welf Löwe und Markus Noga18 Beispiel // Statisch ausgewerteter SWITCH als Typ template struct SWITCH { typedef aCase::next nextCase; // Statische Berechnung in MS VC++ erzwingen enum { tag = aCase::tag, nextTag = nextCase::tag, found = (tag == Tag || tag == DEFAULT) }; // Statische Auswertung bei Übersetzung typedef IF<(nextTag == intimate::NilValue), intimate::NilCase, SWITCH > ::RET nextSwitch; typedef IF<(found != 0), aCase::statement, nextSwitch::RET> ::RET RET; };

19 Dr. Welf Löwe und Markus Noga19 Generische Klassen (templates) und Rahmenwerke (frameworks) Hook class Hook class Template class Template class Formale Parameterklasse Parameterklasseninstanz

20 Dr. Welf Löwe und Markus Noga20 GenVoca: Komposition durch Schachtelung von generischen Klassen Template T,T4 > > T1 T2 T3 T T4 T5 Alle Ti sind unabhängig voneinander austauschbar, d.h. konfigurierbar! (statische Komposition)

21 Dr. Welf Löwe und Markus Noga21 Komponentensicht T5 T3 T4 T2 T1 T Komponenten werden intern adaptierbar, da innere Einheiten unabhängig von äusseren ausgetauscht werden können

22 Dr. Welf Löwe und Markus Noga Invasive Softwarekomposition Invasive Komposition adaptiert und erweitert Komponenten an Webepunkten durch Programmtransformation Allgemeiner Mechanismus Anwendungsgebiete –Anpassung –Sichtenorientierte Entwicklung –Aspektorientierte Entwicklung Webepunkte sind Ansatzpunkte für Adaption und Erweiterung –Implizit(z.B. durch Sprachsyntax definiert) –Deklariert(explizit als Kompositionsschnittstelle ausgewiesen)

23 Dr. Welf Löwe und Markus Noga23 Implizite Webepunkte Beispiel: Methodeneintritt/austritt für Umwicklung (wrapping), z.B. zum Umwickeln eines Test-Aspekts m (){ abc.. cde.. } Method.entry Method.exit Method.entry Method.exit

24 Dr. Welf Löwe und Markus Noga24 Deklarierte Webepunkte Die Kompositionsschnittstelle einer Komponente besteht aus ihren explizit deklarierten Webepunkten Deklaration von Webepunkten durch Spracherweiterungen oder z.B. –Standardisierte Namenspräfixe –Vererbungsbeziehungen –Standardisierte Kommentar-Marken Deklarationen

25 Dr. Welf Löwe und Markus Noga25 Webepunkte für Kommunikation (Tore) m (){ out(d); in(e); } Ausgabetor Eingabetor m (){ // Aufruf e = p(d); } m (){ // Ereignis notifyObservers(d); e = listen_to(); } Deklaration durch Aufruf abstrakter Kommunikationsmethoden

26 Dr. Welf Löwe und Markus Noga26 Invasive Komposition mit Kompositoren Kompositoren sind Transformatoren, Optimierer, Übersetzer, Metaoperatoren, Metaprogramme Komposito r Erkennen (ungebundener) Webepunkte Konsistentes Transformieren zu gebundenen Webepunkten Invasiv transformierter Code

27 Dr. Welf Löwe und Markus Noga27 Komposition beseitigt die Kompositionsschnittstellen Kompositionsschnittstelle mit Webepunkten Funktionale Schnittstelle Invasive Komposition

28 Dr. Welf Löwe und Markus Noga28 Einsatz klassischer Übersetzerbautechnik Programmanalyse zur Prüfung von Vorbedingungen –Attributierte Grammatiken –Typprüfungen –Datenflußanalyse –Abstrakte Interpretation Programmtransformation –Globale Musterersetzung (Ersetzungssysteme) –Lokale Musterersetzung –Elimination

29 Dr. Welf Löwe und Markus Noga Geheimnisprinzip der invasiven Komposition Kompositon nur auf der Kompositionsschnittstelle Dann kapselt die Schnittstelle die Komponente Austausch gegen eine Variante wird möglich Entspricht dem Geheimnisprinzip in –Modulen –Rahmenwerken –Architektursprachen –AOP Aber wesentlich flexibler

30 Dr. Welf Löwe und Markus Noga30 Konstruktionsprozeß mit invasiver Komposition System mit Komponenten und Webepunkten Komponiertes, verwebtes System Deklaration von Webepunkten Invasive Komposition Auswahl von Webepunkten Altsystem

31 Dr. Welf Löwe und Markus Noga Invasive Komposition, Code-Vererbung und Delegation Kunde Buchhandlung KundeBuchhandlung CORBA-Verbindung Kunde Buchhandlung DCOM-Verbindung CORBA-Kompositor DCOM-Kompositor

32 Dr. Welf Löwe und Markus Noga32 Beispiel Kunde/Buchhandlung Kunde import Buchhandlung; public class Kunde { public bestelle(String server) { // allocate new server Buchhandlung bh= holeBuchhandlung(server); // call the services bh.sucheAus(); bh.kaufe(); } Buchhandlung public class Buchhandlung { public Buchhandlung() { } public void sucheAus() { System.out.println( "suche aus.." ); } public void kaufe() { System.out.println( "kaufe" ); }

33 Dr. Welf Löwe und Markus Noga33 Invasive Anpassung an CORBA Kunde import Buchhandlung; public class Kunde { public bestelle(String server) { // allocate new server Buchhandlun bh = holeBuchhandlung(server); // call the services bh.sucheAus(); bh.kaufe(); } CORBA Kunde import org.omg.CORBA.* import Buchhandlung; public class Kunde extends CORBA.client { public Kunde(String server) { // Initialisiere CORBA Broker ORB orb = ORB.init( args,new Properties()); // Ermittle den Buchhändler Buchhandlung bh = orb.string_to_object(server); // Bestellung bh.schaueNach(); bh.order(); } Enthaltene Webepunkte

34 Dr. Welf Löwe und Markus Noga34 Vererbung und Delegation sind Kompositoren Passe invasiv an Passe invasiv an K K-privat K K-Unterklasse K Vererbe Delegiere

35 Dr. Welf Löwe und Markus Noga35 Erweiterungsoperatoren für Klassen (z.B. SOP) sind Kompositoren K K K Jede Komponente behält ihre logische Sicht Physikalische Sicht als Verschmelzung der logischen Sichten

36 Dr. Welf Löwe und Markus Noga36 Ziele der Modifikation Vererbung einsetzen für –seiteneffektfreie konsistente Komposition Delegation einsetzen für –dynamischen Austausch Invasive Komposition einsetzen für –unvorgesehene Erweiterungen(Sichtenkonzept) –aspektorientierte Entwicklung (invasives Einmischen wie in AOP) –Anpassung ohne Delegation(invasive Anpassung) –transparenten Komponentenwechsel(erfordert deklarierte Webepunkte)

37 Dr. Welf Löwe und Markus Noga Das Kompositionssystem COMPOST COMPOST ist eine Java-Bibliothek mit Programmtransformationen Komponenten bestehen aus Java-Klassen mit Kompositionsschnittstelle (deklarierte Webepunkte) Kompositoren sind herkömmliche Java-Methoden Meta-Programmierung (Reflektion und Transformation) dient für Erkennung und Manipulation von Webepunkten [Aßmann98] [Aßmann/Ludwig99] –statisch mit einem Metamodell der Programmiersprache –Komponenten, Kompositoren, Webepunkt existieren als Metaobjekte (Component, Composer, WeavePoint)

38 Dr. Welf Löwe und Markus Noga38 Der Software-Herstellungsprozeß in COMPOST Komposition/ Konfiguration Übersetzung Übersetzer Client.coc (Java+Webepunkte) Client.coc (Java+Webepunkte) Server.coc (Java+Webepunkte) Server.coc (Java+Webepunkte) Client.java Server.java GlueCode.java Kompositionsprogram m in Java und COMPOST Kompositionsprogram m in Java und COMPOST

39 Dr. Welf Löwe und Markus Noga39 Anbindung an Entwicklungsumgebungen Werkzeug COMPOST Benutzer Kompositionen Interaktive Werkzeuge JBuilder, Together

40 Dr. Welf Löwe und Markus Noga40 Spezifikation von Weben durch Graphersetzungssysteme Generierung von Webern mit Hilfe des Generators für Graphersetzungssysteme OPTIMIX (EARS, XGRS) [Aßmann95b, 99]

41 Dr. Welf Löwe und Markus Noga41 Unterstützung des Entwurfsprozesses Unterstützung des Entwurfsprozesses COMPOST Datenmodell (Metamodell) Entwebe- operatoren Entwebe- operatoren Webe- operatoren Webe- operatoren Normalisierer Adapter Hilfsschicht Kontrollfluß Konnektoren Aspekt-orientierte Programming Aspekt-orientierte Programming Adaptive Programming Adaptive Programming Architektur- sprachen Architektur- sprachen Synchronisations- sprachen Synchronisations- sprachen Sanierung (Reengineering) Sanierung (Reengineering) Interaktive Komposition Interaktive Komposition Entweben von adaptiven Programmen Entweben von adaptiven Programmen Automatisierte Entwurfsmuster COMPOST und aufbauende Arbeiten

42 Dr. Welf Löwe und Markus Noga42 Das COMPOST System Stellt invasive Kompositoren als Java-Programme dar Erlaubt stapelverarbeitende und interaktive Komposition Macht Webeschritte durch Kompositoren explizit Stellt Aspekt-Weber als Graphersetzungssysteme dar COMPOST wird mit sich selbst komponiert

43 Dr. Welf Löwe und Markus Noga Fortschritte mit invasiver Komposition Invasive Komposition adaptiert und erweitert Komponenten an Webepunkten durch Programmtransformation Sichtenbasierte Erweiterung von Komponenten Aspektkomposition Flexible Anpassung von Komponenten Modularer Austausch mit Geheimnisprinzip

44 Dr. Welf Löwe und Markus Noga44 Sprachunabhängige Komposition

45 Dr. Welf Löwe und Markus Noga45 Fortschritte Methodik ist sprachunabhängig Übertragung der Techniken aus dem Übersetzerbau –Spezifikationstechniken (Graphersetzung, Termersetzung) –Analysetechniken –Generierungstechniken Methodik zur Aufarbeitung von Altsystemen geeignet Einsatz zur Produktion von Produktfamilien Methodik liefert die Basis zur Entwicklung abstrakterer und ausdrucksstärkerer Kompositionssprachen –Kompositoren bilden die Maschinensprache der Komposition

46 Dr. Welf Löwe und Markus Noga46 Fortschritte gegenüber... Objektorientierten Systemen –Kompositoren verallgemeinern Delegation und Vererbung –Invasive Anpassung entfernt überflüssige Schnittstellen –Erweiterungsmechanismen ermöglichen Sichtenkonzept Aspekt-orientiertem Programmieren –Invasive Komposition benötigt keine Spezialsprachen –Invasive Komposition systematisiert den Webeprozeß –Graphersetzungssysteme beschreiben Webevorgänge

47 Dr. Welf Löwe und Markus Noga47 Veröffentlichungen [Alt/Aßmann/vanSomeren94] Alt, M., Aßmann, U., van Someren, H. Cosy compiler phase embedding with the CoSy compiler system. CC94, LNCS 786 [Aßmann95a] Aßmann, U. On edge eddition rewrite systems and their relevance to program analysis. Graph-grammar Conference 1994, LNCS 1073 [Aßmann95b] Aßmann, U. Generierung von Programmoptimierungen mit Graphersetzungssystemen. Dissertation. Universität Karlsruhe, GMD-Berichte 262, Oldenbourg. [Aßmann96] Aßmann, U. How To Uniformly Specify Program Analysis and Transformation. CC96, LNCS 1060 [Goos/Aßmann98] Goos, G., Aßmann, U. Systematic Software Construction. Workshop Universal Design Theory, Karlsruhe, Shaker Verlag. [Aßmann98] Aßmann, U.: Meta-programming composers in 2nd generation component systems. IFIP WG 2.4 Systems Implementation, Feb. 98, Berlin. [Aßmann99] Aßmann, Ludwig: How to introduce connections into classes with static metaprogramming. Coordination 99, Amsterdam. LNCS. [Aßmann99b] Aßmann, U. How to transform and optimize programs with OPTIMIX. Graph-grammar handbook, Vol. II, ed Rozenberg, Kreowski 1999 [Aßmann99c] Aßmann, U. Graph rewrite systems for program optimization. Under revision by TOPLAS.

48 Dr. Welf Löwe und Markus Noga48 Literatur Technische Berichte Aßmann, U., Genssler, T., Bär, H.: Meta-programming grey-box connectors. Aßmann, U., Heberle, A., Ludwig, A., Löwe, W., Neumann, R.: Design patterns and language constructs. Aßmann, U.: Aspect-oriented programming with design patterns as meta- programming operators. Techn. Bericht 17/97 Fak. Informatik Verwandte Arbeiten am Institut Zimmer, W.: Frameworks und Entwurfsmuster. Dissertation. Jan. 1997, Universität Karlsruhe. Schulz, B., Genßler, T., Mohr, B., Zimmer, W.: On the Computer Aided Introduction of Design Patterns into Object-Oriented Systems, Proceedings of the 27th TOOLS, Sept. 1998, IEEE CS Press. Ludwig, A. Behandlung von partieller Konformität bei polymorphen Methodenaufrufen. Diplomarbeit Universität Karlsruhe, Frigo, J., Neumann, R., Zimmermann, W. Mechanical Generation of robust libraries. TOOLS 97.

49 Dr. Welf Löwe und Markus Noga Komposition: Was haben wir gelernt? Was zeichnet Kompositionssysteme als Komponentensysteme aus? Wie erfüllen sie unsere Kriterien aus der Einleitung?

50 Dr. Welf Löwe und Markus Noga50 Komposition: Ziele erfüllt?  Erhöhung Wiederverwendung  Produktqualität  Qualitätsverbesserung  Effektivität durch Konzentration auf Optimierungen  Verlässlichkeit  Verlängerung Lebensdauer  Flexibilisierung  Verbesserungen am Softwareprozess  Produktivität  Schneller Prototypenbau  Simulation von Architekturen  Dokumentation  Klare Systemstrukturen  Ja, sehr stark  ja  ja, einfache Spezifikationen  ja  Ja  ja  ja, weil Aspekte, die Effizienz beeinflussen, weggelassen werden können  nein  ja

51 Dr. Welf Löwe und Markus Noga51 Komposition: Mechanismen zur Modularisierung  Neue Art von Modul: Aspekte.  Modularisierung in einer neuen Dimension  Aspektspezifikationen können alle separat modularisiert werden  Saubere Schnittstellen durch Kompositionsschnittstellen mit Webepunkten  Die Kompositionsprogramme durchbrechen die Modularisierung der Aspekte nach wohldefinierten Regeln!  Daraus ergeben sich effiziente Programme, þüberflüssige Schnittstellen werden aus dem System entfernt  keine Standards für anwendungsspezifische und Fachkomponenten  Modularisierung ist anwendungsspezifisch

52 Dr. Welf Löwe und Markus Noga52 Komposition: Mechanismen zur Adaptierbarkeit  Externe Adaption  Kleistercode möglich  Interne Adaptierbarkeit:  Im invasiven Komponieren, in SOP, GenVoca, LambdaN werden Schnittstellen durchbrochen und Adaptionscode in die Komponente eingewebt.  Kompositionsmechanismen sind noch fortschrittlicher als AOP, denn sie vereinfachen den Einwebevorgang

53 Dr. Welf Löwe und Markus Noga53 Mechanismen zur Aspekttrennung  Wie bei AOP, bloss werden oft keine Spezialsprachen benþötigt. Statt dessen:  Verwendung von Metaobjekt-Protokollen, Metamodellen, Metaprogrammierung

54 Dr. Welf Löwe und Markus Noga54 Mechanismen zur Transparenz  Wie bei AOP.  Vorteil:  Gegenüber allen konventionellen modularen Systemen werden Komponenten echt komponiert, d.h. Während des Zusammensteckens verändert.  Damit können wir Bausteine verwenden, aber behauen und vermörteln sie automatisch.

55 Dr. Welf Löwe und Markus Noga55 Einordnung der Komponenten- und Kompositionstechniken Adaptives Programmieren Aspekt-orientiertes Programmieren N-Kalkül Komposition Invasive Komposition Architektur- sprachen EJB SOP Template MP Corba DCOM Beans Corba DCOM Beans

56 Dr. Welf Löwe und Markus Noga56 Fazit  Softwarekompositionsmechanismen bilden das Rückgrat der zukünftigen Komponentensysteme der 2. Generation.  Invasive Komposition ist der allgemeinste Mechanismus und kann sehr flexibel Komponenten miteinander kombinieren  Komposition wird Teile des Programmierens ablösen, insbesondere sobald visuelle Kompositionswerkzeuge vorhanden sind. Viel Spass beim Erforschen der weissen Flecken!

57 Dr. Welf Löwe und Markus Noga57 Arbeiten in COMPOST HiWis Studienarbeiten –Implementierung der SOP Operatoren –Weiterentwicklung eines visuellen Kompositionswerkzeuges –Implementierung von Konnektoren Diplomarbeiten –Reflexive Beschreibung von Workflows in COMPOST –Ein Vererbungskalkül in COMPOST –Reengineering mit Kompositoren –Dynamische Rekonfiguration


Herunterladen ppt "Dr. Welf Löwe und Markus Noga1 Softwarekomposition und Metaprogrammierung Einführung Ansätze zur Komposition –Subjekt-orientiertes Programmieren SOP –Erweiterungen."

Ähnliche Präsentationen


Google-Anzeigen