Modellgetriebene Softwareentwicklung und Modelltransformationen in der Praxis Prof. Dr. Jens Grabowski M.Sc. Benjamin Zeiss Inhalt Vorstellung Gruppe Softwaretechnik für Verteilte Systeme Grundlagen Modellierung und Modelltransformationen Technologien für Modellgetriebene Softwareentwicklung Modelltransformationen in der SWE Gruppe EMF/Openarchitectureware Demo Zusammenfassung 2
Die Gruppe Wissenschaftliches Personal: Prof. Dr. Jens Grabowski [Prof.Dr.Helmut Neukirchen (bis10.08)] Dipl.-Inf. Edith Werner M.Sc. Wafi Dahman M.Sc. Benjamin Zeiß M.Sc. Akthar Ali Jalbani M.Sc. Thomas Rings M.Sc. Philip Makedonski M.Sc. Steffen Herbold Studentische Hilfskräfte: Alexander Möller, Christian Otto Laufende Projekt-, Bachelor- und Masterarbeiten: laufend ca. 4-8 Studierende (zur Zeit 7 Studierende) Unterstützt von: Annette Kadziora Dipl.-Ing. (FH) Gunnar Krull Web: http://www.swe.informatik.uni-goettingen.de 3 Was machen wir? Automatische Generierung von Testfällen Sprachen für die Testbeschreibung TTCN-3 UML Testprofil (UTP) Entwicklungsmethodik Agile Software Entwicklung UML-basierte Web Service Entwicklung Qualitätssicherung (QS) Testen Testmethodik Testpatterns Testmethodik für TTCN-3 & UTP QS für Tests Grid-Testen QS für UML Metriken, Refactoring, Smells Lernverfahren in der QS Reverse-Engineering aus Traces (Tests) Bewertung von Metriken Bewertung von Prozessen 4
Grundlagen Modellierung und Modelltransformationen 5 Was ist ein Modell? [http://www.duesseldorf-blog.de/2006/11/16/hier-traellert-heidi-klum-ihr-erstes-lied-wonderland/] [http://www.ernest-stolz.de/model.htm] 6
Abstraktion 1(1) [http://www.duesseldorf-blog.de/2006/11/16/hier-traellert-heidi-klum-ihr-erstes-lied-wonderland/] Abstraktion 1 Abstraktion 2 Abstraktion 3 Frau cleverer Mensch frauliche Attribute 7 Abstraktion 2(2) [http://www.ibm.com/developerworks/rational/library/3100.html] 8
Modellierungssprachen sd N Telephone Catalog Check Status s[u]:b s[k]:b Salesperson m3() Place Order cart ShoppingCart Nassi-Shneiderman-Diagramme 1 m3() cartorder Customer client Customer customerorder 1 1..* Fill Orders Shipping Clerk 0..1 0..* OrderHeader {xor} Establish Credit Supervisor 1 order accountorder 1 1..* organizationorder 1 Account account ite m * client Organization LineItem ReadAmountSM Design Part Design Engineer Standards Engineer ID Part Requirement serviceitem service 1 Service [part Standard found] Use Part Search Part [part not found] [part provided] Provide Required Part [else] 1 1 {xor} productitem product 1 Product selectamount otheramount Specification and Description amount Language (SDL) enteramount ok abort abort aborted Unified Modeling Language (UML) Petri Netze 9 Model-Driven-Architecture (MDA) 1(3) Modellgetriebener Softwareentwicklungsansatz mit klarer Trennung von Funktionalität und Technik Entwickelt von der Object Management Group (OMG) als Strategie insbesondere zur Softwareentwicklung mit den von OMG entwickelten Technologien [http://www.omg.org/mda/] 10
Model Driven Architecture (MDA) 2(3) Computational Independant Model (CIM) Platform Independant Model (PIM) Platform Model Platform Specific Model (PSM) System Code 11 Model Driven Architecture (MDA) 3(3) UML Computational Independant Model (CIM) Use Domänenmodell Case-, Aktivitäts- und Klassen-Diagramme Platform Independant Model (PIM) Interaction-, Analysemodell, Klassen- und State-Machine-Diagramme (Grob-)Entwurf Platform Model Platform Specific Model (PSM) Entwurfsmodell & Konfiguration & Verteilung Interaction-, State-Chart-, Klassen-, Package-, Komponenten- und Deployment- Diagramme System Code 12
Technologien für Modellgetriebene Softwareentwicklung 13 Modellgetriebene Softwareentwicklung: Technologien Modellierungssprachen UML Ecore sprachen M2M: QVT, ATL, Xtend M2T: XPand, Acceleo T2M: Xtext Plattformen für Modellgetriebene Softwareentwicklung AndroMDA Openarchitectureware Kein Anspruch auf Vollständigkeit! 14
Unified Modeling Language (UML) Modellierungssprache für Software und Systeme Entwickelt von der Object Management Group (OMG) ISO/IEC 19501 Standard 13 Diagramme für graphische Notation, darunter Klassendiagramm, Sequenzdiagramm, Zustandsmaschine, etc. Wichtige Standards: Meta Object Facility (MOF) 2.0 Core Specification UML 2.0 Infrastructure Specification UML 2.0 Superstructure Specification UML 2.0 Object Constraint Language UML 2.0 Diagram Data Interchange 15 Unified Modeling Language Architektur M3 MOF (Meta-metamodell) M2 UML Metamodell M1 Benutzermodell M0 Instanzen des Benutzermodells (Objekte) 16
Ecore als Metamodellierungssprache Teil des Eclipse Modeling Frameworks (EMF) Ecore ist Metamodellierungssprache Ecore ist wie MOF ein Meta-metamodell Kompatibel mit Essential MOF (EMOF) des OMG Standards Reduziert in Umfang/Komplexität gegenüber MOF Kein weiteres Metamodell wie UML Spielt v.a. in Eclipse-Welt eine Rolle 17 sprachen Modell-zu-Modell Transformationen (M2M) QVT ATL Xtend Modell-zu-Text Transformationen (M2T) Xpand Acceleo JET Text-zu-Modell Transformationen (T2M) Xtext TextUML 18
M2M: QVT QVT = Query / View / Transformation Standard für Modelltransformationen von der OMG Quell und Zielmodelle der Transformation sind MOF-konforme Metamodelle QVT Syntax selbst ist auch in MOF 2.0 beschrieben 3 Sprachen: QVT/Relations (deklarativ, textuelle und graphische Syntax) QVT/Core (deklarativ) QVT/Operational (imperativ, erweitert QVT/Relations und QVT/Core) QVT/BlackBox für Transformationen in fremden Sprachen (XQuery, XSLT) 19 M2M: Xtend Teil von oaw / Eclipse Modeling Project Benutzt (zusammen mit anderen oaw Sprachen) gemeinsame Sprachgrundlage, die Expression Language (ähnlich Prädikatenlogik) Erweiterung um zusätzliche Logik bestehender Metamodelltypen Extensions: nicht-invasive Erweiterung von Metamodellen Xtend Erweiterungen können in Sprachen der oaw Familie aufgerufen werden: Check, XPand Create Extension: Transformation von Modellen 20
M2T: XPand Templatesprache für Codegenerierung Sprachunabhängig, Generierung für beliebige Ziele «IMPORT meta::model» «EXTENSION my::extensionfile» «DEFINE javaclass FOR Entity» «FILE filename()» package «javapackage()»; public class «name» { // implementation } «ENDFILE» «ENDDEFINE» 21 M2T: Acceleo (früher: MTL) Implementierung des OMG MOF Models to Text Transformation Language Standards Benutzt OCL für Navigation und Query Relativ neu, wird wohl in Eclipse 3.5 einsatzfähig sein 22
T2M: Xtext Framework für die Erstellung textueller domänen-spezifischer Sprachen Beschreibung einer DSL in EBNF Grammatik Generierung von: Parser AST-Meta Model mittels Ecore Eclipse Text Editor mit Syntaxprüfung, Outline, Auto- Vervollständigung usw. Artefakte in Xtext = Modelle 23 Plattformen für Modellgetriebene Entwicklung Vorgestellt: AndroMDA Eclipse Modeling Project Openarchitectureware Andere: Telelogic Rhapsody (Kommerziell) Topcased (Open Source) Borland Together Architect (Kommerziell) 24
AndroMDA Open-Source MDSD/MDA Generatorframework Transformation von UML Modellen in Code Unterstützung von allen wichtigen UML Tools Z.B. Magicdraw, Poseidon, Enterprise Architect Modellvalidierung über OCL Modell-zu-Modell Transformationen in Java, bald ATL Modell-zu-Text über Template-Systeme wie Velocity oder Freemarker Viele fertige Cartridges Java, Spring, EJB,.NET, Hibernate, Struts, usw. 25 Eclipse Modeling Project Eclipse Modeling Framework (EMF) EMF Core, Model Query, Validation, etc. Generative Modeling Technologies (GMT) Epsilon, MOFScript, etc. Graphical Modeling Framework (GMF) Model-to-Model Transformation (M2M) ATL, Procedural QVT, Declarative QVT, XTend Model to Text (M2T) JET, Acceleo. Xpand Model Development Tools OCL, Papyrus, UML2, UML Tools, etc. Viele andere Modellierungsprojekte! 26
Openarchitectureware Open-Source Plattform für modellgetriebene Softwareentwicklung Eigene sprachen Grosse Community In Eclipse 3.5 Teil der Galileo Distribution 27 Modelltransformationen in der SWE Gruppe 28
Modelltransformationen in der SWE Gruppe Computational Independant Model (CIM) Platform Independant Model (PIM) Transformation von UML nach TTCN-3 (Dennis Neumann) Platform Model Platform Specific Model (PSM) System Code UML-basierte Entwicklung von Web-Services (Wafi Dahman) Refactoring von UML-Modellen, Quality Engineering for UML (Akhtar Ali Jalbani, Lukas Schubert) 29 Literatur Thomas Stahl, Markus Völter, Sven Efftige, Arno Haase: Modellgetriebene Softwareentwicklung. dpunkt verlag. Volker Gruhn, Daniel Pieper, Carsten Röttgers: MDA. Springer. David Steinberg, Frank Budinsky, Marcelo Paternostro, Ed Merks: EMF Eclipse Modeling Framework 2nd Edition. Addison-Wesley. Richard C. Gronback: Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. Addison-Wesley. (Fast) alle in der Studenten-Bibliothek! 30
Demo Einfaches Beispiel Definition eines Metamodelles für ein Transitionssystem mit Markierungen (LTS) in UML Transformation des UML Metamodelles in ein Ecore Metamodell mittels eines fertigen Xtend Cartridges Erzeugung einer Modellinstanz mit EMF Modell-zu-Text nach Graphviz DOT (mit XPand) Testfallgenerierung für TTCN-3 aus Modellen Definition in strikterem UML Testing Profile (UTP) Transformation UML-SWETest-TTCN-3 31 Zusammenfassung Modellierung Grundlagen Abstraktion Modellierungssprachen MDA Technologien M2M,M2T,T2M UML, EMF, Openarchitectureware, etc. Beispiele 32
Fragen? www.swe.informatik.uni-goettingen.de 33