1 EJOSA OpenUSS CampusSource Model Driven Architecture Praxisbeispiel
2 Situation von CampusSource-Plattformen Ähnliche Funktionen (Verwaltung von Studenten und Dozenten, Diskussionsforen,...), jedoch Vergleich zwischen Plattformen schwierig, da keine gemeinsame Sprache existiert Verschiedene Technologien (Java, PHP,...) Wiederverwendung von Komponenten diverser Technologien schwierig Geringe technologieübergreifende Zusammenarbeit
3 Mögliche Lösung? Webservice (k)eine Lösung? Webservice ermöglicht die Interoperabilität zwischen Plattformen Installation aller Plattformen in einer Institution? Wartung aufwändig Wissen und Erfahrung in allen Technologien vorhanden?
4 Model Driven Architecture (MDA) Ebenfalls bekannt als Model Driven Development (MDD) Versuch, alle Wiederverwendungsansätze zu verknüpfen Referenzmodell Produktlinien-Softwaretechnik Architekturen und Muster Komponentenbasierte Softwaretechnik Trennung zwischen PIM (Platform Independent Model), PSM (Platform Specific Model) und Implementation Platform Bereits bekannt als: Fachkonzept, DV- und Implementierungskonzept (ARIS) Basiert auf Systems-Generierungsmethoden Bereits bekannt als: Compiler, Codegeneratoren Bereits bekannt als: CASE-Werkzeug (Computer Aided Software Engineering)
5 MDA vs. ARIS ARIS-Konzept (Architektur integrierter Informationssysteme) Fachkonzept: Anwendungsdomäne mit UML modelliert DV-Konzept: Objektorientierte Programmiersprache, Relationale Datenbank, Verteiltes System Implementierungskonzept: Java, J2EE, Oracle-DB MDA: Transformationen automatisch!
6 MDA vs. ARIS
7 MDA vs. CASE vs. MetaCASE
8 Komponenten des MDA-Konzeptes (1) Modelle, Metamodelle, Plattformen Sprachen und Metasprachen Transformationsdefinitionen, Transformationsregeln und Transformationen Standards: XMI (XML Metadata Interchange) als Enabler-Technologie und Austauschformat MOF (Meta Object Facility) als Metamodellierungssprache UML (Unified Modeling Language) als Modellierungssprache QVT (Query/Views/Transformations) als Transformationssprache
9 Komponenten des MDA-Konzeptes (2) J2EE,.NET XMI-Datei QVT MOF- Metasprache UML- Metamodell UML-Sprache UML-Modell
10 Vier-Ebenen-Architektur Anwendungssystem- Modellierung
11 Transformationen: First-Class Citizens!
12 MDA-Typen Typ 1: Elaborationist Schrittweise Verfeinerung (PIM PSM Code) Verwendung von 3GL-Programmiersprache für die Implementierung 50% bis 80% des Codes werden generiert Beispiel: OptimalJ, io-software's ArcStyler, IBM Rational Software Architect, AndroMDA Typ 2: Translationist Verwendung ausschließlich von UML (PIM Code) Executable UML == euml == xuml UML minus alle semantisch schwachen Modellierungselemente der UML plus Action Semantics 100% des Codes werden generiert Beispiel: Kennedy Carter, Bridgepoint
13 Vorteile von MDA Eine einzige Quelldatei (XMI) für alle Artefakte (Dokumentationen, Programme und Beschreibungen) Produktivität und Qualität Höheres Abstraktionsniveau Jeder Entwickler arbeitet unter den gleichen Rahmenbedingung Interoperabilität, Integration und Portabilität Verschiedene Plattformen (.NET, J2EE) integrierbar und austauschbar Flexibilität Generiere, was generiert werden muss! Wartung und Dokumentation Schnelleinstieg Dokumentation und Quellcode bleiben synchron Offenheit und Standard OMG-Spezifikationen: XMI, MOF, UML, QVT Open-Source-Implementierungen: NetBeans MDR, Eclipse EMF, AndroMDA, INRIA Modelware,...
14 Probleme von MDA Template-basierte bzw. Meta-Programmierung für die Transformationsregeln (Modell-zum-Code-Transformation) ist öfter aufwändig Herausforderung für Architekten Eine bereits stabile und erprobte Architektur wird benötigt Längere Investition notwendig Entwicklung von DSL (domänenspezifische Sprache) lohn sich erst, wenn Systemfamilien bzw. Produktlinien tatsächlich zu erstellen sind Standardisierung im Prozess: XMI!= XMI MOF UML 2 QVT (Query/Views/Transformations)
15 Lösung mit MDA (1) Definition von allgemeinen PIM für alle Plattformen Common PIM (PIM für CampusSource) Verfeinerung des CampusSource-PIM zu einzelnen PIM-Plattform, wie beispielsweise PIM für OpenUSS, PIM für ILIAS, PIM für... Verfeinerung der einzelnen PIM-Plattform zum PSM Verfeinerung des PSM zur Implementierung
16 Lösung mit MDA (2) Gemeinsame Aktivitäten Wie bisher...
17 Demo DEMO
18 Fazit Vergleich zwischen Plattformen möglich, dank gemeinsamer Sprache UML Bessere und stets aktuelle Projektdokumentation! Wiederverwendung von Modellen möglich Technologieübergreifende Zusammenarbeit möglich Keine große Veränderung im Entwicklungsprozess notwendig Modell == Quellcode Forward-Engineering: Modellieren, Kompilieren, Implementieren, Kompilieren, Ausführen, Testen
19 Literatur EJOSA-Artikel Teil I: http://www.jaxmag.com/itr/online_artikel/psecom,id,653, nodeid,147.html EJOSA-Artikel Teil II: http://www.jaxmagazine.com/itr/online_artikel/psecom,i d,671,nodeid,147.html MDA Artikel in eleed Journal http://eleed.campussource.de/archiv/81