Methodische Grundlagen des Software-Engineering

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Metamodell, Reflection in objektorientierten Sprachen
Modellgetriebene Softwareentwicklung
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
Seminar Modellgetriebene Softwareentwicklung Einführung Seminar modellgetriebene Softwareentwicklung WS 05/06 Dipl.-Inf. Nadine Fröhlich Prof. Dr.-Ing.
3. Klassendiagramme in Java implementieren
Software Engineering Seminar Metamodellierung
RDF-Schema Seminar: „Semantic Web“ André Rosin,
UML Begleitdokumentation des Projekts
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Einführung in die Programmierung
Erweiterung von EMF Refactor um Update Funktionalität in grafischen Editoren Thorsten Arendt, AG Taentzer, SWT FoPra-Vorstellung, 19. April 2012.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Letzter Tag Spaeter Zeitpunkt letzte Lied hoert man weiter.
MDA – Framework AndroMDA
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung Modellgetriebene Softwareentwicklung, Metamodellierung Stephan Hildebrandt.
Objektorientierte Analyse
UML-Kurzüberblick Peter Brusten.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Software-Technik: (fortgeschrittene) Klassendiagramme
Eclipse Modeling Framework (EMF)
22. Oktober 2007Martin Feldmann, 1 Bachelor-Thesis Entwicklung einer automatisierten Dokumentation von LabVIEW Quellcode für das Rahmenwerk.
Objektorientierte Modellierung mit UML
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Seminar Modellgetriebene Softwareentwicklung XMI - XML Metadata Interchange Vortrag im Rahmen des Seminar Modellgetriebene Softwareentwicklung Mirko Otto.
Seminar Modellgetriebene Softwareentwicklung Thema 3: Metamodelle – MOF Michél Rieser Prof. Dr.-Ing. habil. Georg Paul
Objektorientierte (OO) Programmierung
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
© WZL/Fraunhofer IPT Seminararbeitsvortrag Betrachtung der Transformationssprache QVT operational innerhalb der Eclipse-Plattform.
Domänenmodellierung Georg Marth. Definition Domänenmodell ● Eine Zusammenfassung von Funktionen, Objekten, Daten und Relationen in einer Domäne. -Kang.
© Tenbusch Oberstufenzentrum Informations- und Medizintechnik Objektorientierte Programmierung mit Java.
UML und Modellierung mit ArgoUML
Notationen zur Prozessmodellierung
Praktische Informatik 1
Vorlesung #2 ER –Modellierung (Datenbankentwurf)
OCL – Object Constraint Language
Einführung DI Harald Sander.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Zwei Denkansätze zur Klasse Schlange
OOP II.
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Informatik Sommercamp 2012
Einführung in die Programmierung
Allgemeine Befehle für die allgemeine Liste
Vorlesung #5 Überführung (Fortsetzung) / Normalformen
Vorlesung #2 Datenbankentwurf
November 18 Informatik Kurse
Vorlesung #3 ER Modellierung
Raphael Fischer Informatik II - Übung 06 Raphael Fischer
Softwarekonstruktion
UML: Metamodell Auf dem Weg zur Semantikdefinition? Das UML-Metamodell (für Klassendiagramme) Willkürlicher Ausschnitt aus dem UML-Metamodell Zumindest.
Einführung in die Programmierung
1. Die rekursive Datenstruktur Liste 1
Datenstrukturen und Softwareentwicklung
openArchitectureWare in der FIDUCIA IT AG
GegenÜberstellung agiles und klassisches Projektmanagement
Grundkurs Informatik 11-13
Juli 19 Informatik Kurse
 Präsentation transkript:

Methodische Grundlagen des Software-Engineering Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl XIV Teil 3.2: Metamodellierung v. 25.06.2014

UML: Von informellem Modell zu Werkzeug UML-Modelle: bislang informell definiert (textuelle Beschreibung) und verwendet (Skizzen auf Papier). Aber: UML kann mehr ! Codegenerierung Testfallgenerierung Modellvalidierung Modelltransformation … Brauchen dafür Werkzeuge, die UML „verstehen“.  Formelle Definition der Notation. Generiere Getters & Setters ! public String getBookTitle(){ return bookTitle; } public void setBookTitle(String input){ bookTitle = input; … Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 2/17

Wie UML werkzeugkonform definieren ? Wie UML-Notation „formell“ definieren ? Verschiedene Möglichkeiten: BNF-Grammatik, XML-Schema, … Wie würde es jemand tun, der nur UML kennt ? Zentrales Konzept in UML identifizieren; damit Menge der UML-Modelle definieren („boot-strapping“). Zentrales Konzept in OO, um Mengen von Entitäten zu definieren ? Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 3/17

Zentrales OO-Konzept: Instanz-Beziehung Klasse Class im Definitions-Modell der UML (“Metamodell”): definiert Menge der UML-Klassen- modelle (z.B. Klassenmodell Person). Metamodell: Modell, das Notation einer Modellierungsnotation definiert. Klasse Person im UML-Modell des modellierten Systems: definiert Menge der Instanzen (z.B. Objekte aPerson, bPerson, ….) Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 4/17

UML-Metamodell-Hierarchie: Schicht M0 Schicht M0: Laufzeit-Instanzen Reale Laufzeit-Instanzen der Modelle Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 5/17

UML-Metamodell-Hierarchie: Schicht M1 Schicht M1: UML-Modell Instanziiert aus UML-Metamodell. Definiert Menge valider Laufzeit-Instanzen. Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 6/17

UML-Metamodell-Hierarchie: Schicht M2 Schicht M2: UML-Metamodellierung Definiert UML-Notation, d.h. Menge valider UML-Modelle. Insbesondere darin verwendete Konzepte wie Klassen, Attribute, Assoziationen. UML-Metamodell-Hierarchie: Schicht M2 Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 7/17

Beispiel Klassendiagramm- Metamodell (vereinfacht) * 0..1 * 2..* 0..1 <<instanceOf>> * <<instanceOf>> <<instanceOf>> <<instanceOf>> Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 8/18

Sind wir jetzt fertig ? OK, Metamodelle sind cool – sind wir jetzt fertig ? Könnten hier aufhören: Klassendiagramme grundlegendes Konzept, Übrige UML-Syntax damit definieren: Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 9/17

Metamodelle definieren ? Aber: UML ist nicht alles ! Weitere Notationen: eigene Metamodelle (BPMN; Domain-Specific Languages (DSLs), …). Gewünscht: Wiederverwendbarkeit der Werkzeuge Austauschbarkeit von Modellen Allgemeiner Ansatz zum Metamodelle definieren. Wie ? Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 10/17 Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 10/17

Metamodell-Hierarchie: Schicht M3 Schicht M3: Meta-Metamodelle Definiert Menge valider Metamodelle. Konkreter Ansatz der OMG: Meta Object Facility (MOF).  Mit MOF definierte Modelle: Austauschbar mit XML Metadata Interchange (XMI) Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 11/17

Metamodell-Hierarchie vs. UML Endlich fertig: Metamodelle von UML, BPMN, DSLs, … mit MOF definierbar. Hier: UML-spezifische Hierarchie MOF nur ein möglicher Ansatz für Metamodellierung Viele andere Möglichkeiten Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 12/17

Beispiel MOF-Implementierung: Eclipse Modeling Foundation (EMF) EMF: Framework für Modellierung & Code-Generierung (inkl. Editor-Generierung) mit „Essential MOF“. Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 13/17

Vorteile von Metamodellierung Vorteile im Allgemeinen: Präzise Definition von Modellierungsnotation Mehrere Notationen in einheitlichem Ansatz (UML, BPMN, DSLs, …) Vorteile von MOF: Wohlverstandene Notation für Definition der Modellierungsnotation (UML-Klassendiagramme) Weitgehende Werkzeugunterstützung (Modelltransformation, Codegenerierung etc) Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 14/17

Einschränkungen von Metamodellierung Einschränkungen im Allgemeinen: Erstellung / Anpassung Metamodell: Benötigt Aufwand und Expertise. Nachteile von MOF: Dieselbe Notation (Klassendiagramme) auf verschiedenen Ebenen evt. verwirrend. Logisch zirkulär (definiere Klassendiagramme mit Klassendiagrammen). Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 15/17

Zusammenfassung Einführung Metamodellierung: Metamodell: Modell, das Modellierungsnotation definiert. Metamodellierungshierarchie (M0 bis M3), MOF Beispiel: Metamodell für Klassendiagramm Werkzeugunterstützung (EMF) Vorteile / Beschränkungen Jan Jürjens: Metamodellierung: Idee – Metamodell-Hierarchie – Diskussion 16/17

Literatur Bernd Bruegge & Allen H. Dutoit “Object-Oriented Software Engineering: Using UML, Patterns, and Java” MOF Specification http://www.omg.org/technology/documents/modeling_spec_catalog.htm#MOF RSS Feed: feed://www.omg.org/mof/rss/index.xml