Software aus Komponenten - info.uni-karlsruhe.de

Software aus Komponenten - info.uni-karlsruhe.de

Softwarekomposition und Metaprogrammierung Einfhrung Anstze zur Komposition Subjekt-orientiertes Programmieren SOP Erweiterungen des objekt-orientierten Paradigmas (composition filters) Kalkle fr Komponentensysteme (N-Kalkl) Metaobjekt-Komposition Template Metaprogramming Invasive Komposition Konzepte: Webepunkte, Kompositionsschnittstelle Anwendungsbeispiele Werkzeuge und Architekturen (COMPOST) Dr. Welf Lwe und Markus Noga 1 Literatur /ben/papers/unpacked/Metaprogramming SOP: http://www.research.ibm.com/sop/sophome.htm LambdaN: Dami, Laurent. Software Composition. Dissertation Universitt Genf. 1997 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: http://home.t-online.de/home/Ulrich.eisenecker/gpref.htm 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 166-175 IPD-Literatur am Ende der Folien Dr. Welf Lwe und Markus Noga 2 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)

Lsung Komposition (mit Metaoperatoren) Dr. Welf Lwe und Markus Noga 3 Komposition: Ausdrcke statt Weber Druckaspekt Druckaspekt Persistenz Persistenz Algorithmus Algorithmus Op Op Op Op Op Op Op Op Op

Op Op Op Druckaspekt Druckaspekt Persistenzaspekt Dr. Welf Lwe und Markus Noga 4 Systembau als Kompositionsterm C1 C1 A.p1 B.p1 C1 C2 A A.p1

B A A C C1 B C2 B.p2 C.p2 B B.p2 A.p2 A C3

A.p1 B.p1 C C.p1 B C.p1 A C2 C1 A.p2 C C2 C1 B

C C3 Dr. Welf Lwe und Markus Noga 5 Systembau als Kompositionsterm C1 D=C4 C1 A.p1 B.p1 C2 A.p2 C3 C.p1 B.p2 A.p1 B.p1 C2 A.p2

C.p2 C3 C.p1 B.p2 C.p2 D A A C2 C1 B C C3 C2 C1

B C C2 Dr. Welf Lwe und Markus Noga 6 Voraussetzungen zur Komposition Flexible Komposition von Code und Daten mglich. Kompositionsoperatoren (Kompositoren) sind Programmtransformatoren (Codetransformator, Optimierer, bersetzer, Metaprogramm, Metaoperator) op: Code Code Optimierer, Transformator code: Code Code Metaprogramm, Metaoperator op: SpracheA SpracheB bersetzer

Dr. Welf Lwe und Markus Noga 7 7.1 Einige Anstze zur Komposition Subjekt-orientiertes Programmieren SOP OOP-Erweiterungen (composition filters) Kalkle fr Komponentensysteme (N-Kalkl) Metaobjekt-Komposition Template Metaprogramming Dr. Welf Lwe und Markus Noga 8 7.1.1 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 Dr. Welf Lwe und Markus Noga 9 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 Dr. Welf Lwe und Markus Noga 10 Mischregeln in SOP Fest vorgegebene Kompositionsoperatoren

Korrespondenzregeln: Equate Subjektteil) Correspond (Zuweisung Methoden-Implementierung = (Delegation) Kombinationsregeln Replace Join (berschreiben) (Verbinden von Subjektteilen) Korrespondenz- und Kombinationsregeln Merge = Join; Equate Override Anwendungen aus C++ leicht erweiterbar (klar wegen Sichten und Erweiterungsoperatoren) Mischmodell kaum erweiterbar! Dr. Welf Lwe und Markus Noga 11

7.1.2 LambdaN-Kalkl (N) Erster Kalkl zur Codekomposition Erweiterung des Lambda-Kalkls Benannte Argumente Namensabhngige Reduktionsregeln Zweck Mehrfachdefinition von Funktionen Einfache Vereinigung ihres Codes Mischregeln Umbenennung von Parametern Vereinigung von Ausdrcken Dr. Welf Lwe und Markus Noga 12 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) . Umbenennung (rename) Vereinigung (union) 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) . f = lambda a b . let t = a+b in record(t) . LambdaN vereinigte datenunabhngige Slices f(x=1,y=2,z=3)

f(a=1,b=2) f(x=1,y=2,z=3,a=1,b=2) Dr. Welf Lwe und Markus Noga 13 7.1.3 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 beschrnkt auf Prozedurein-/ausgang) Simulation mit LambdaN mglich Dr. Welf Lwe und Markus Noga 14 Beispiel Class c { Procedure p() { fetch_from_db(self);

MetaobjektMethoden precode persistence postcode composing print("enter p"); p_counter++; Metaobjekt-Klassen Normale Klasse precode c verbosity /* algorithm */

postcode // counting: nothing precode counting print("exit p"); postcode store_to_db(self); } } p Algorithmus Dr. Welf Lwe und Markus Noga 15 7.1.4 Kompositionsfilter (composition filters) lterer Ansatz, hnelt Metaobjekt-Komposition (Schachtelung von Code um Objekte und Methoden) Idee: Botschaften zwischen Objekten werden gefiltert

Beispiele fr Filter Botschaften verschlucken Botschaften delegieren (Vererbung, Delegation) Mit anderen Objekten synchronisieren (Synchronisationsprotokolle) Objekt(e) modifizieren (Anpassung) Dynamische Anpassung durch Filtertausch mglich Sehr mchtiges Konzept, besonders zur Anpassung Dr. Welf Lwe und Markus Noga 16 7.1.5 Template Metaprogramming/GenVoca Templates in C++ Parametrisierte Typausdrcke Auswertung bei bersetzung Idee:

Nutze Templates zur Komposition Nachteil: Unlesbare Programme (Zweckentfremdung!) Umsetzung auch denkbar mit statisch ausgewertetem Lambda-Kalkl offener Programmiersprache (z.B. OpenC++) GenVoca (Batory) Mehrfach-Parametrisierung mit geschachtelten Template-Parametern (Konfiguration in mehreren Dimensionen) Hauptschlich fr innere Anpassung Dr. Welf Lwe und Markus Noga 17 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; Dr. Welf Lwe und Markus Noga 18 Generische Klassen (templates) und Rahmenwerke (frameworks) Formale ParameterklasseParameterklasseninstanz Template Template class class Hook Hook

class class Dr. Welf Lwe und Markus Noga 19 GenVoca: Komposition durch Schachtelung von generischen Klassen Template T< T1< T2 ,T4 > > T T1 T2 T3 T4 T5 Alle Ti sind unabhngig voneinander austauschbar, d.h. konfigurierbar! (statische Komposition) Dr. Welf Lwe und Markus Noga 20

Komponentensicht T3 T3 T5 T5 T2 T4 T1 T Komponenten werden intern adaptierbar, da innere Einheiten unabhngig von usseren ausgetauscht werden knnen Dr. Welf Lwe und Markus Noga 21 7.2. Invasive Softwarekomposition Invasive Komposition adaptiert und erweitert Komponenten an Webepunkten durch Programmtransformation Allgemeiner Mechanismus Anwendungsgebiete

Anpassung Sichtenorientierte Entwicklung Aspektorientierte Entwicklung Webepunkte sind Ansatzpunkte fr Adaption und Erweiterung Implizit (z.B. durch Sprachsyntax definiert) Deklariert (explizit als Kompositionsschnittstelle ausgewiesen) Dr. Welf Lwe und Markus Noga 22 Implizite Webepunkte Beispiel: Methodeneintritt/austritt fr Umwicklung (wrapping), z.B. zum Umwickeln eines Test-Aspekts m (){ Method.entry abc.. cde.. Method.exit }

Method.entry Method.exit Dr. Welf Lwe und Markus Noga 23 Deklarierte Webepunkte Die Kompositionsschnittstelle einer Komponente besteht aus ihren explizit deklarierten Webepunkten Deklarationen Deklaration von Webepunkten durch Spracherweiterungen oder z.B. Standardisierte Namensprfixe Vererbungsbeziehungen Standardisierte Kommentar-Marken Dr. Welf Lwe und Markus Noga 24 Webepunkte fr Kommunikation (Tore) Deklaration durch Aufruf abstrakter Kommunikationsmethoden m (){ Ausgabetor Eingabetor

out(d); in(e); m (){ // Aufruf e = p(d); } m (){ // Ereignis } notifyObservers(d); e = listen_to(); } Dr. Welf Lwe und Markus Noga 25 Invasive Komposition mit Kompositoren Kompositoren sind Transformatoren, Optimierer, bersetzer, Metaoperatoren, Metaprogramme Erkennen (ungebundener) Webepunkte

Komposito Komposito r r Konsistentes Transformieren zu gebundenen Webepunkten Invasiv transformierter Code Dr. Welf Lwe und Markus Noga 26 Komposition beseitigt die Kompositionsschnittstellen Funktionale Schnittstelle Kompositionsschnittstelle mit Webepunkten Invasive Komposition Dr. Welf Lwe und Markus Noga 27

Einsatz klassischer bersetzerbautechnik Programmanalyse zur Prfung von Vorbedingungen Attributierte Grammatiken Typprfungen Datenfluanalyse Abstrakte Interpretation Programmtransformation Globale Musterersetzung (Ersetzungssysteme) Lokale Musterersetzung Elimination Dr. Welf Lwe und Markus Noga 28 7.2.2. Geheimnisprinzip der invasiven Komposition Kompositon nur auf der Kompositionsschnittstelle Dann kapselt die Schnittstelle die Komponente Austausch gegen eine Variante wird mglich

Entspricht dem Geheimnisprinzip in Modulen Rahmenwerken Architektursprachen AOP Aber wesentlich flexibler Dr. Welf Lwe und Markus Noga 29 Konstruktionsproze mit invasiver Komposition Altsystem Auswahl von Webepunkten Deklaration von Webepunkten Komponiertes,

verwebtes System Invasive Komposition System mit Komponenten und Webepunkten Dr. Welf Lwe und Markus Noga 30 7.2.3 Invasive Komposition, Code-Vererbung und Delegation Kunde Buchhandlung CORBA-Kompositor Kunde DCOM-Kompositor

Buchhandlung CORBA-Verbindung Kunde Buchhandlung DCOM-Verbindung Dr. Welf Lwe und Markus Noga 31 Beispiel Kunde/Buchhandlung Kunde import Buchhandlung; Buchhandlung public class Buchhandlung { public class Kunde { public bestelle(String server) { // allocate new server Buchhandlung bh= holeBuchhandlung(server);

public Buchhandlung() { } public void sucheAus() { System.out.println( "suche aus.." ); } public void kaufe() { System.out.println( "kaufe" ); } // call the services bh.sucheAus(); } bh.kaufe(); } } Dr. Welf Lwe und Markus Noga 32 Invasive Anpassung an CORBA CORBA Kunde Kunde

import Buchhandlung; public class Kunde { public bestelle(String server) { // allocate new server Buchhandlun bh = holeBuchhandlung(server); // call the services bh.sucheAus(); 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 Buchhndler Buchhandlung bh = orb.string_to_object(server); bh.kaufe(); }

} Enthaltene Webepunkte } } // Bestellung bh.schaueNach(); bh.order(); Dr. Welf Lwe und Markus Noga 33 Vererbung und Delegation sind Kompositoren K Passe Passe invasiv an invasiv an K

Delegiere Delegiere Vererbe Vererbe K-Unterklasse K K-privat Dr. Welf Lwe und Markus Noga 34 Erweiterungsoperatoren fr Klassen (z.B. SOP) sind Kompositoren K Physikalische Sicht als Verschmelzung der logischen Sichten K ++

K ++ Jede Komponente behlt ihre logische Sicht Dr. Welf Lwe und Markus Noga 35 Ziele der Modifikation Vererbung einsetzen fr seiteneffektfreie konsistente Komposition Delegation einsetzen fr dynamischen Austausch Invasive Komposition einsetzen fr unvorgesehene Erweiterungen (Sichtenkonzept) aspektorientierte Entwicklung

(invasives Einmischen wie in AOP) Anpassung ohne Delegation (invasive Anpassung) transparenten Komponentenwechsel (erfordert deklarierte Webepunkte) Dr. Welf Lwe und Markus Noga 36 7.3. Das Kompositionssystem COMPOST COMPOST ist eine Java-Bibliothek mit Programmtransformationen Komponenten bestehen aus Java-Klassen mit Kompositionsschnittstelle (deklarierte Webepunkte) Kompositoren sind herkmmliche Java-Methoden Meta-Programmierung (Reflektion und Transformation) dient fr Erkennung und Manipulation von Webepunkten [Amann98] [Amann/Ludwig99] statisch mit einem Metamodell der Programmiersprache Komponenten, Kompositoren, Webepunkt existieren als Metaobjekte (Component, Composer, WeavePoint) Dr. Welf Lwe und Markus Noga 37

Der Software-Herstellungsproze in COMPOST Client.coc Client.coc (Java+Webepunkte) (Java+Webepunkte) Kompositionsprogram Kompositionsprogram m m in Java und COMPOST in Java und COMPOST Komposition/ Konfiguration Client.java Client.java bersetzung Server.coc Server.coc (Java+Webepunkte)

(Java+Webepunkte) GlueCode.java GlueCode.java Server.java Server.java bersetzer bersetzer Dr. Welf Lwe und Markus Noga 38 Anbindung an Entwicklungsumgebungen Benutzer Kompositionen Werkzeug Werkzeug COMPOST COMPOST Interaktive Werkzeuge

JBuilder, Together Dr. Welf Lwe und Markus Noga 39 Spezifikation von Weben durch Graphersetzungssysteme Generierung von Webern mit Hilfe des Generators fr Graphersetzungssysteme OPTIMIX (EARS, XGRS) [Amann95b, 99] Dr. Welf Lwe und Markus Noga 40 COMPOST und aufbauende Arbeiten Untersttzung Untersttzung des Entwurfsprozesses des Entwurfsprozesses Automatisierte Automatisierte Entwurfsmuster Entwurfsmuster Interaktive Interaktive

Komposition Komposition Aspekt-orientierte Aspekt-orientierte Programming Programming SynchronisationsSynchronisationssprachen sprachen Sanierung Sanierung (Reengineering) (Reengineering) Adaptive Adaptive Programming Programming Entweben Entweben von vonadaptiven

adaptiven Programmen Programmen EntwebeEntwebeoperatoren operatoren Normalisierer Normalisierer Kontrollflu Kontrollflu WebeWebeoperatoren operatoren Adapter Adapter Konnektoren Konnektoren ArchitekturArchitektursprachen sprachen

Hilfsschicht Hilfsschicht COMPOST COMPOSTDatenmodell Datenmodell(Metamodell) (Metamodell) Dr. Welf Lwe und Markus Noga 41 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 Dr. Welf Lwe und Markus Noga 42 7.4 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 Dr. Welf Lwe und Markus Noga 43 Sprachunabhngige Komposition Type description Generic AST (DOM) Java AST Analyzers Type description Transformators C++ AST Dr. Welf Lwe und Markus Noga 44 Fortschritte Methodik ist sprachunabhngig 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 ausdrucksstrkerer Kompositionssprachen Kompositoren bilden die Maschinensprache der Komposition Dr. Welf Lwe und Markus Noga 45 Fortschritte gegenber... Objektorientierten Systemen Kompositoren verallgemeinern Delegation und Vererbung Invasive Anpassung entfernt berflssige Schnittstellen Erweiterungsmechanismen ermglichen Sichtenkonzept Aspekt-orientiertem Programmieren Invasive Komposition bentigt keine Spezialsprachen Invasive Komposition systematisiert den Webeproze Graphersetzungssysteme beschreiben Webevorgnge Dr. Welf Lwe und Markus Noga 46

Verffentlichungen http://i44www.info.uni-karlsruhe.de/~assmann/compost.html [Alt/Amann/vanSomeren94] Alt, M., Amann, U., van Someren, H. Cosy compiler phase embedding with the CoSy compiler system. CC94, LNCS 786 [Amann95a] Amann, U. On edge eddition rewrite systems and their relevance to program analysis. Graph-grammar Conference 1994, LNCS 1073 [Amann95b] Amann, U. Generierung von Programmoptimierungen mit Graphersetzungssystemen. Dissertation. Universitt Karlsruhe, GMD-Berichte 262, Oldenbourg. [Amann96] Amann, U. How To Uniformly Specify Program Analysis and Transformation. CC96, LNCS 1060 [Goos/Amann98] Goos, G., Amann, U. Systematic Software Construction. Workshop Universal Design Theory, Karlsruhe, Shaker Verlag. [Amann98] Amann, U.: Meta-programming composers in 2nd generation component systems. IFIP WG 2.4 Systems Implementation, Feb. 98, Berlin. [Amann99] Amann, Ludwig: How to introduce connections into classes with static metaprogramming. Coordination 99, Amsterdam. LNCS. [Amann99b] Amann, U. How to transform and optimize programs with OPTIMIX. Graphgrammar handbook, Vol. II, ed Rozenberg, Kreowski 1999 [Amann99c] Amann, U. Graph rewrite systems for program optimization. Under revision by TOPLAS. Dr. Welf Lwe und Markus Noga 47 Literatur Technische Berichte

Amann, U., Genssler, T., Br, H.: Meta-programming grey-box connectors. Amann, U., Heberle, A., Ludwig, A., Lwe, W., Neumann, R.: Design patterns and language constructs. Amann, U.: Aspect-oriented programming with design patterns as metaprogramming operators. Techn. Bericht 17/97 Fak. Informatik Verwandte Arbeiten am Institut Zimmer, W.: Frameworks und Entwurfsmuster. Dissertation. Jan. 1997, Universitt Karlsruhe. Schulz, B., Genler, 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 Konformitt bei polymorphen Methodenaufrufen. Diplomarbeit Universitt Karlsruhe, 1997. Frigo, J., Neumann, R., Zimmermann, W. Mechanical Generation of robust libraries. TOOLS 97. Dr. Welf Lwe und Markus Noga 48 7.5. Komposition: Was haben wir gelernt? Was zeichnet Kompositionssysteme als Komponentensysteme aus? Wie erfllen sie unsere Kriterien aus der Einleitung? Dr. Welf Lwe und Markus Noga 49

Komposition: Ziele erfllt? Erhhung Wiederverwendung Produktqualitt Qualittsverbesserung Effektivitt durch Konzentration auf Optimierungen Verlsslichkeit Verlngerung Lebensdauer Flexibilisierung Verbesserungen am Softwareprozess Produktivitt Schneller Prototypenbau

Simulation von Architekturen Dokumentation Klare Systemstrukturen Ja, sehr stark ja ja, einfache Spezifikationen ja Ja ja

ja ja ja ja, weil Aspekte, die Effizienz beeinflussen, weggelassen werden knnen nein ja ja Dr. Welf Lwe und Markus Noga 50

Komposition: Mechanismen zur Modularisierung Neue Art von Modul: Aspekte. Modularisierung in einer neuen Dimension Aspektspezifikationen knnen 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, berflssige Schnittstellen werden aus dem System entfernt keine Standards fr anwendungsspezifische und Fachkomponenten Modularisierung ist anwendungsspezifisch

Dr. Welf Lwe und Markus Noga 51 Komposition: Mechanismen zur Adaptierbarkeit Externe Adaption Kleistercode mglich 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 Dr. Welf Lwe und Markus Noga 52 Mechanismen zur Aspekttrennung

Wie bei AOP, bloss werden oft keine Spezialsprachen bentigt. Statt dessen: Verwendung von Metaobjekt-Protokollen, Metamodellen, Metaprogrammierung Dr. Welf Lwe und Markus Noga 53 Mechanismen zur Transparenz Wie bei AOP. Vorteil: Gegenber allen konventionellen modularen Systemen werden Komponenten echt komponiert, d.h. Whrend des Zusammensteckens

verndert. Damit knnen wir Bausteine verwenden, aber behauen und vermrteln sie automatisch. Dr. Welf Lwe und Markus Noga 54 Einordnung der Komponenten- und Kompositionstechniken Aspekt-orientiertes Programmieren Adaptives Programmieren N-Kalkl EJB EJB Architektursprachen Corba Corba DCOM DCOM Beans

Beans SOP SOP Template MP Template MP Invasive Komposition Komposition Dr. Welf Lwe und Markus Noga 55 Fazit Softwarekompositionsmechanismen bilden das Rckgrat der zuknftigen Komponentensysteme der 2. Generation. Invasive Komposition ist der allgemeinste Mechanismus und kann sehr flexibel Komponenten miteinander kombinieren Komposition wird Teile des Programmierens ablsen, insbesondere sobald visuelle Kompositionswerkzeuge

vorhanden sind. Viel Spass beim Erforschen der weissen Flecken! Dr. Welf Lwe und Markus Noga 56 Arbeiten in COMPOST HiWis Studienarbeiten Implementierung der SOP Operatoren Weiterentwicklung eines visuellen Kompositionswerkzeuges Implementierung von Konnektoren Diplomarbeiten

Reflexive Beschreibung von Workflows in COMPOST Ein Vererbungskalkl in COMPOST Reengineering mit Kompositoren Dynamische Rekonfiguration Dr. Welf Lwe und Markus Noga 57

Recently Viewed Presentations

  • Vocabulary-Collecting Winners!--2014 - Corbett Harrison

    Vocabulary-Collecting Winners!--2014 - Corbett Harrison

    My Vocabulary-Collecting Winners!—2013-14. And our first winner is… 8th grader Irene was nominated by her peers and ended up winning a Vocabulary Warrior patch for this Personified Vocab Word for the word atrocious, which she discovered in I Have Lived...
  • Historical Monuments of Lahore - Global Learning Circles

    Historical Monuments of Lahore - Global Learning Circles

    - The lower terrace named Hayat Baksh meaning Bestower of life. Some of the varieties of trees that were planted included are Almond , Apple , Apricot, Cherry , Gokcha , Mango , Mulberry , Peach, Plum, Poplar , Quince...
  • Accountants Professional Liability Scorecards and Commentary

    Accountants Professional Liability Scorecards and Commentary

    Note: The settlement figures above do not include two cases involving a firm formerly known as BDO Seidmen. In 2007, a Florida state jury in the Banco Espirito case ordered BDO to pay $521 million ($170 million in compensatory damages...
  • 無投影片標題 - Chinese University of Hong Kong

    無投影片標題 - Chinese University of Hong Kong

    Blackboard Design The League of Nations President Woodrow Wilson proposed the Fourteen Points: The League of Nations 1918 keywords LN established (headquarter: Geneva in Switzerland) (There were 41 founder members) 1920 Weaknesses / Shortcomings of the LN: 1) The isolation...
  • Bellringer - Loudoun County Public Schools

    Bellringer - Loudoun County Public Schools

    Epic = long poem about a hero, important to a culture. Homer = probable author, lived around 750 BCE ... Competition or conflict, whether in sport, battle, or conversation. The Greeks love to compete. Examples: Constant athletic challenges throughout the...
  • Natural Hazards, 2e

    Natural Hazards, 2e

    Chapter 9 Atmosphere and Severe Weather
  • Can be used to review for the ILST

    Can be used to review for the ILST

    Can be used to review for the ILST. Review of vocabulary and concepts. Introduces some concepts that will be expanded on in LE and ES. Appropriate level text with text dependent questions. ... PowerPoint Presentation Last modified by: Windows User
  • Reporting and Assessment

    Reporting and Assessment

    AQA Bacc. Students' Academic Study. The Bacc is built on the solid foundation of students' main A Level choices (Three A Levels) Broader Study. AS Critical Thinking. AS Citizenship. Enrichment Activities. Work-related learning. Community participation. Personal development activities. Independent Learning....