R O O T S Modellbasierte Softwareentwicklung

Größe: px
Ab Seite anzeigen:

Download "R O O T S Modellbasierte Softwareentwicklung"

Transkript

1 R O O T S Modellbasierte Softwareentwicklung Sandro Koll [email protected]

2 Übersicht Einführung Modelle Metamodelle Metalevel MDA Model Driven Architecture CIM, PIM, PSM Domänen, DSL Transformation Modell-zu-Modell Transformation QVT Relations Language Modell-zu-Text-Transformation Apache Velocity Tools EMF Eclipse Modeling Framework mediniqvt Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 2 R O O T S

3 Einführung This is not a pipe by Magritte Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 3 R O O T S

4 Einführung beschreibt beschreibt System beschreibt Modell beschreibt Das System Ein Modell Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 4 R O O T S

5 Einführung M 1 Ma Mb Mc Ein System kann viele verschiedene Modelle haben M 0 wird repräsentiert durch Jedes Modell repräsentiert einen bestimmten Aspekt des Systems S Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 5 R O O T S

6 Einführung Geographische Karten Frankreich 1453 Französische Käsekarte Das System Modelle Schienennetz in Westfrankreich Prozentualer Termitenbefall in Frankreich System repräsentiert Modell Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 6 R O O T S

7 Einführung Beispiel Metamodell Die Legende ist das Metamodell einer Karte Fahrradstrecke Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 7 R O O T S

8 Einführung Definitionen System aus Teilen zusammengesetztes und strukturiertes Ganzes verfügt über eine Architektur erfüllt einen Zweck Architektur Organisation der Teile eines Systems Verhalten der einzelnen Komponenten Beziehungen untereinander Bedingungen zur Erreichung des Systemzwecks Modell Beschreibt ein System zu einem bestimmten Zweck Erfassung aller relevanten Aspekte, z.b. Struktur Verhalten Funktion Metamodell (MM) Menge von Elementen, mit denen Modelle erstellt werden können Regeln zur Modellerstellung (Syntax) Bedeutung der einzelnen Elemente und Elementkonstellationen (Semantik) Modell von Modellierungssprachen von Modellen Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 8 R O O T S

9 Einführung Definitionen MOF Meta Object Facility modellbasierte Sprache zur Definition von Metamodellen Urmodell (Metametamodell MMM) Domain abgrenzbares, kohärentes (Wissens-)Gebiet Konzepte werden in einem MM beschrieben und in Bezug gesetzt DSL Domain Specific Language stellt eine genau abgegrenzte Gruppe von Aspekten dar besseres Verständnis bessere Ausdrucksmöglichkeit Beispiele Darstellung eines Datenbankschemas als ER-Diagramm (grafische DSL) Darstellung eines Datenbankschemas als DDL-Skript (textuelle DSL) Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 9 R O O T S

10 Einführung MDE Principles Model-Driven Engineering (MDE) Standards MDA Model-Driven Architecture MIC Model Integrated Computing Software Factories Other Standards Tools EMF mediniqvt GME Microsoft Visual Studio Team system DSL Tools Other Tools Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 10 R O O T S

11 Einführung MDA MDA Model Driven Architecture Spezifikation der Object Management Group (OMG) Ziele Konservierung der Fachlichkeit Domänen-Orientierung Portierbarkeit Systemintegration Effiziente Softwareentwicklung Standards MOF Meta Object Facility UML Unified Modeling Language XMI XML Metadata Interchange OCL Object Constraint Language QVT Query View Transformation HUTN Human-Usable Textual Notation Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 11 R O O T S

12 Einführung Metalevel beschreibt MOF M 3 Urmodell MOF Class source destination Association M 3 M 2 UML Metamodell entspricht Metamodell UML Metamodell M 1 UML Modelle Class 1 * Attribute M 2 Modell entspricht UML Modell M 0 "reale Welt" Client Name : String M 1 Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 12 R O O T S

13 Einführung UML 2.x Stack nutzt UML Infrastructure grundlegende Sprachkronstrukte in abstrakter Syntax nutzt UML Superstructure Modellierungssprache UML definiert MM Meta Object Facility (MOF) Metadata Management & Services nutzt XML Metadata Interchange (XMI) XML-basierter Austausch von Modellen definiert MM Object Constraint Language (OCL) Präzisierung von Modellen Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 13 R O O T S

14 Einführung Lebenszyklus von MDA-Modellen CIM AMM PIM TDM PDM PSM PSM' Code App App App Schnittstellen S1 S2 S3 Ausführungsschicht Plattform Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 14 R O O T S

15 Einführung Domäne Banken Versicherungen Kundenselbstbedienung Buchungssystem Online- Banking Portal Benutzeroberfläche Masken Dialogfluss Bestandsführung Sicherheit Persistenz... Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 15 R O O T S

16 Einführung DSL der Domäne Sicherheit <<profile>> SimpleSecurity Association Operation Communication Path <<stereotype>> Access Permission p : AccessKind (unique) <<stereotype>> Execution Permission actor[*] : Actor <<stereotype>> Trusted <<enumeration>> AccessKind create read update delete Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 16 R O O T S

17 Einführung Kombination von Profilen <<profile>> SimpleSecurity <<profile>> SimpleWebFlow <<profile>> SimpleWebLayout <<profile>> SimplePersistence <<import>> <<import>> <<import>> <<import>> <<profile>> Simple ecommerce Application Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 17 R O O T S

18 Einführung MDA Ansatz MDA-Ansatz Trennung von Fachlichkeit und Technik DSL Domain Specific Language PIM Platform Independent Model PSM Platform Specific Model Transformation von Modellen Transformationszwecke Verfeinerung Abstraktion PIM PSM Code Migration Refaktorisierung Optimierung Darstellungsumformung Verwendung von Generatoren Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 18 R O O T S

19 Einführung Probleme bei der Software-Erstellung Dominierung von Fachlichkeit durch Technik Divergenz der Änderungszyklen Methodischer Bruch zwischen Analyse, Design und Implementierung Fehlende Nachverfolgbarkeit (Traceability) Äußere und innere Gleichförmigkeit von Software-Systemen Descriptor Hell Middleware Babel Legacy Crisis Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 19 R O O T S

20 Übersicht Einführung Modelle Metamodelle Metalevel MDA Model Driven Architecture CIM, PIM, PSM Domänen, DSL Transformation Modell-zu-Modell Transformation QVT Relations Language Modell-zu-Text-Transformation Apache Velocity Tools EMF Eclipse Modeling Framework mediniqvt Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 21 R O O T S

21 Transformation M2M M2M Modell-zu-Modell Transformation MOF-Sprache Beschreibt Modell als Instanz eines Metamodells Metamodell Beschrieben durch Modellierungssprache Hält Syntax einer MOF-Sprache vor Transformationsregeln Festgehalten durch z.b. XMI Übliche Arbeitsschritte (1) Deserialisierung des Modells (persistenter Zustand IMR) (2) Transformation auf der IMR (3) Serialisierung (IMR persistenter Zustand) Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 22 R O O T S

22 Transformation M2M Implementierungs-Strategien Einsatz universeller Programmiersprachen 3GL-Sprachen (Java, C++, C#) Einsatz von Skriptsprachen Groovy Einsatz einer Transformationssprache ATL Atlas Transformation Language QVT Query View Transformation Transformationen sind schachtelbar Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 23 R O O T S

23 Transformation M2M Beispiel UML 2.0 PIM zu Java PSM Quellmodell: UML 2.0 Metamodell (Ausschnitt aus Classes [UML2SS]) Klassen Kunde Kundennummer Vorname Nachname Adresse Straße Hausnummer Postleitzahl Ort Konto Kontonummer Assoziationen Customer -customernumber : int -surename : String -forename : String Einem Kunden sind beliebig viele Adressen zugeordnet (unidirektional) Einem Kunden sind beliebig viele Konten zugeordnet (bidirektional) 1 0..* Account -accountnumber : int 1 0..* Address -street : String -housenumber : String -zip : String -city : String Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 24 R O O T S

24 Transformation M2M Beispiel UML 2.0 PIM zu Java PSM Zielmodell: Programm in Java Klassen Kunde Kundennummer Vorname Nachname Adresse Straße Hausnummer Postleitzahl Ort Konto Kontonummer Assoziationen public class Address private String street; private String housenumber; private String zip; private String city public class Customer private int customernumber; private String surname; private String forename; private List addresses; private List accounts; public class Account private int accountnumber; private Customer customer; Einem Kunden sind beliebig viele Adressen zugeordnet (unidirektional) Einem Kunden sind beliebig viele Konten zugeordnet (bidirektional) Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 25 R O O T S

25 Transformation M2M Beispiel Transformationsregeln Klasse im Quellmetamodell (QMM) Klasse im Zielmetamodell (ZMM) Name Sichtbarkeit Attribut einer Klasse im QMM Feld im ZMM Name Typ Sichtbarkeit Operation einer Klasse im QMM Methode im ZMM Name Rückgabetyp Sichtbarkeit Parameter einer Operation im QMM Parameter im ZMM Name Typ Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 26 R O O T S

26 Transformation QVT QVT Query View Transformation Query Auswahl einzelner Elemente aus dem QMM View Abgrenzung innerhalb des ZMM Transformation Überführung der ausgewählten Elemente in die View Beschreibung von Transformationen (nach der OMG) Deskriptiv Imperativ Eigenschaften von Transformationen Unidirektional Änderungen im Zielmodell haben keine Auswirkung auf das Quellmodell Bidirektional Änderungen in einem Modell werden im jeweils anderen Modell nachvollzogen Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 27 R O O T S

27 Transformation QVT Architektur Core Language deskriptiv bidirektional Relations Language (RL) deskriptiv bidirektional auf Core Language abbildbar Operational Mappings imperativ unidirektional auf Core Language abbildbar Zusätzliche Sprachkomponente BlackBox Frei definierbare Sprache muss auf Core Language abbildbar sein Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 28 R O O T S

28 Transformation SimpleUML MM Package 1 -namespace <<abstract>> UMLModelElement -kind : String -name : String [1] Attribute Association 0..* -elements <<abstract>> PackageElement -typeopposite 0..* -attributes 0..* 0..* -forward 0..* -reverse <<abstract>> Classifier -type 1 PrimitiveDataType 1 -source Class 1 -destination -owner 1 -specific 0..* -general 0..* Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 29 R O O T S

29 Transformation SimpleUML MM in RL metamodel SimpleUML abstract class UMLModelElement kind : String; name : String; class Package extends UMLModelElement composes elements : PackageElement [*] ordered opposites namespace [1]; abstract class PackageElement extends UMLModelElement class Classifier extends PackageElement class Attribute extends UMLModelElement references type : Classifier [1] opposites typeopposite [*]; class Class extends Classifier composes attributes : Attribute [*] ordered opposites owner [1]; references general : Class [*] opposites specific [*]; class Association extends PackageElement source : Class [1] opposites reverse [*]; destination : Class [1] opposites forward [*]; class PrimitiveDataType extends Classifier Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 30 R O O T S

30 Transformation QVT-RL Beispiel -- Deklaration metamodel SimpleUML /* body */ metamodel SimpleRDBM /* body */ -- Benutzung modeltype UML uses SimpleUML; modeltype RDBM uses SimpleRDBM; SimpleUML Package Class Attribute Association SimpleRDBM Schema Table Column Foreign Key Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 31 R O O T S

31 Transformation QVT-RL Beispiel Transformationen (transformation) Führen je ein Quellmodell in ein Zielmodell über Keys Relationen Queries transformation UmlToRdbm ( uml : UML, rdbm : RDBM ) -- keys top relation PackageToSchema /* body */ top relation ClassToTable /* body */ top relation AssociationToForeignKey /* body */ relation AttributeToColum /* body */ -- queries Vermeidung von Duplikaten bei Generierung top-level-relationen (top relation) non-top-level-relationen (relation) Hilfsfunktionen (OCL) Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 32 R O O T S

32 Transformation QVT-RL Beispiel Relationen ([top] relation) Stellen Beziehungen zwischen Elementen von Modellen her Ein Variablen-Deklarationsblock Domänen (domain) Bedingungen an das Quellmodell (checkonly) Generierungsaktionen innerhalb des Zielmodells (enforce) When-Prädikat (when) Vorbedingungen Where-Prädikat (where) Invarianten top relation PackageToSchema packagename : String; // variable checkonly domain uml pckg : Package name = packagename ; enforce domain rdbm schm : Schema name = packagename ; when /* pre-clause */ where /* general-clause */ Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 33 R O O T S

33 Transformation QVT-RL Beispiel Ablauf (1) checkonly domain uml cls (2) when-klausel Relation Call (3) enforce domain rdbm tbl (4) where-klausel Relation Call Aufruf jedes Mal, wenn in enforce domain Variable oder Objekt verändert wird transformation UmlToRdbm ( uml : UML, rdbm : RDBM ) -- keys top relation PackageToSchema top relation ClassToTable -- Rest weggelassen top relation ClassToTable classname : String; pckg : Package; schm : Schema; checkonly domain uml cls : Class kind = 'persistent', name = classname, namespace = pckg ; enforce domain rdbm tbl : Table name = classname, schema = schm ; when PackageToSchema ( pckg, schm ); where PrimitiveAttributeToColumn ( cls, tbl ); Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 34 R O O T S

34 Transformation QVT-RL Beispiel relation PrimitiveAttributeToColumn attributetypename, attributename, sqltype : String; checkonly domain uml cls : Class // Beschreibung von Bedingungen für die Attribute der Class attribute = attr : Attribute name = attributename, type = pdt : PrimitiveDataType name = attributetypename ; enforce domain rdbm tbl : Table // Beschreibung der Domänen der Tabelle column = col : Column name = attributename, /* immer wenn sqltype benötigt wird, wird mit der where-klausel ein konkreter Wert hergestellt */ type = sqltype ; where sqltype = PrimitiveTypeToSqlType ( attributetypename ); // Function-Call Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 35 R O O T S

35 Transformation QVT-RL Beispiel query PrimitiveTypeToSqlType ( primitivetype : String ) : String if primitivetype = 'INTEGER' then 'NUMBER' else if primitivetype = 'BOOLEAN' then 'BOOLEAN' else 'VARCHAR' endif endif Oder in externer BlackBox Java-Implementierung query PrimitiveTypeToSqlType ( primitivetype : String ) : String; public class PrimitiveTypeToSqlType String PrimitiveTypeToSqlType (String primitivetype) if (primitivetype == "INTEGER") return "NUMBER"; else if (primitivetype == "BOOLEAN") return "BOOLEAN"; else return "VARCHAR"; Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 36 R O O T S

36 Transformation QVT-RL Beispiel top relation ClassToTable classname : String; checkonly domain uml cls : Class namespace = pckg : Package, kind = 'persistent', name = classname ; enforce domain rdbm tbl : Table schema = schm, name = classname, // Inline Pattern zur Erzeugung des Table-Identifiers column = col : Column name = classname + '_TID', type = 'NUMBER' // Inline Pattern zur Erzeugung des PrimaryKeys mit Hilfe von col primarykey = pkey : PrimaryKey name = classname + '_PK', column = col : Column ; // Objektzuweisung durch Transformation when PackageToSchema ( pckg, schm ); where PrimitiveAttributeToColumn ( cls, tbl ); Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 37 R O O T S

37 Transformation QVT-RL Beispiel transformation UmlToRdbm ( uml : UML, rdbm : RDBM ) /* key der Klasse Table in SimpleRDBM; es ist nur eine Tabelle mit dem vorgegebenen Namen in dem Schema erlaubt */ key Table ( name, schema ); /* key der Klasse Column in SimpleRDBM; eine Spalte mit dem vorgegebenen Namen darf einer besitzenden Tabelle nur einmal zugeordnet sein */ key Column ( name, owner ); /* key der Klasse Key in SimpleRDBM; ein (Primary) Key darf einer besitzenden Tabelle nur einmal zugeordnet sein */ key Key ( name, owner ); top relation PackageToSchema /* body */ top relation ClassToTable /* body */ top relation AssociationToForeignKey /* body */ relation AttributeToColum /* body */ relation PrimitiveAttributeToColumn /* body */ query PrimitiveTypeToSqlType ( primitivetype : String ) : String /* body */ Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 38 R O O T S

38 Transformation QVT-RL Syntax Reservierte Wörter checkonly, default_value, domain, enforce, extends, implementedby, import, key, overrides, primitive, query, relation, top, transformation, when, where Einige Ableitungsregeln <transformation> ::= transformation <identifier> ( <modeldecl>[, <modeldecl>]* ) [extends <identifier>] [<keydecl>]* [<relation>]* [<query>]* <modeldecl> ::= <modelid>: [<metamodelid> <metamodelid>[, <metamodelid>]* ] <modelid> ::= <identifier> <metamodelid> ::= <identifier> Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 39 R O O T S

39 Transformation QVT-RL Syntax <keydecl> ::= key <classid> <propertyid>[, <propertyid>]* <propertyid> ::= <identifier> <relation> ::= [top] relation <identifier> ( <modeldecl>[, <modeldecl>]* ) [overrides <identifier>] [<vardecl>]* [[<domain>]+ [<primitivetypedomain>]*] [<whenpredicate>] [<wherepredicate>] <domain> ::= [checkonly enforce] domain <modelid> <rootvariabledecl> <patterndefinition> <query> ::= query <identifier> ( [<paramdecl>[, <paramdecl>]*] ) : <returntype> [ [(] <OclExpression> [)] ; ] Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 40 R O O T S

40 Transformation M2T M2T Modell-zu-Text Transformation Modell Code Line-printer Templates Apache Velocity Synchronisation von Modellen und Code Forward Engineering Only Partial Round-Trip Engineering Full Round-Trip Engineering Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 41 R O O T S

41 Transformation M2T Velocity Apache Velocity Java-Implementierung einer Template Engine VTL Velocity Template Language Makro-Funktionalitäten Auswertung übergebener Java-Objekte Kontrollfluss-Befehlssatz Sprachelemente Direktiven (#) Velocimacros #macro Verzweigungen #if, #elseif, #else, #end Schleifen #foreach Referenzen ($) $customer.getaddress() bzw. $customer.address $customer.setname ("Max Mustermann") Statischer Text Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 42 R O O T S

42 Transformation M2T Velocity Beispiel SQL:2003 Create Table Statement (vereinfacht) CREATE TABLE <Tabellenname> ( <Spaltenname> <Datentyp> [DEFAULT <Wert>] [<Spaltenbedingungen>] ) Java Klassen public class Table public String getname() return name; public Column[] getcolumns() return columns; //... private String name; private Column columns; public class Column public String getname() */ body */ public String getdatatype() /* body */ public String getdefaultvalue() /* body */ public boolean hasdefaultvalue() return defaultvalue!= null; //... private String name; private String datatype; private String defaultvalue; Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 43 R O O T S

43 Transformation M2T Velocity Beispiel Velocity Template CREATE TABLE "$table.getname()" ( #foreach($column in $table.getcolumns()) "$column.name" $column.datatype #if($column.hasdefaultvalue()) DEFAULT "$column.getdefaultvalue()" #end #end ) Beispielhafte Ausgabe CREATE TABLE "Person" ( "Name" VARCHAR2, "Birthday" DATE, "Gender" VARCHAR2 DEFAULT "male" ) Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 44 R O O T S

44 Transformation M2T PIM Code (MDA-light) Alternative zu PIM PSM Code Fehlende Infrastruktur Hohe Investitionskosten Funktionalität (noch) nicht bewiesen Funktioniert Aber: Wartbarkeit Modularisierung / Rollentrennung Wiederverwendbarkeit von Fachlichkeit Visuelle Unterstützung der Entwickler Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 45 R O O T S

45 Übersicht Einführung Modelle Metamodelle Metalevel MDA Model Driven Architecture Transformation Modell-zu-Modell Transformation QVT Relations Language Modell-zu-Text-Transformation Apache Velocity Tools EMF Eclipse Modeling Framework mediniqvt Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 46 R O O T S

46 Tools EMF Eclipse Modeling Framework EMF (Core) Modellierungs- und Code-Generierungstool (XMI) Compare Vergleich von beliebigen (Meta-)Modellen Model Query Ermöglicht Anfragen an EMF-Modellelemente Model Query 2 Erweiterung von Model Query SDO Service Data Objects vereinfacht SOA-Applikationen Teneo Hibernate + EclipseLink EMF-Relational Mapping Validation Framework Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 47 R O O T S

47 Tools mediniqvt Eclipse Integration Ausführung von Transformationen in Relations Language Editor mit Code Assistent Debugger für Relations Trace Management inkrementelle Updates bei erneuten Transformationen key concept inkrementelle Updates leichter Übergang von manueller zu automatisierter Modellierung Bidirektionale Transaktionen Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 48 R O O T S

48 Literatur V. Gruhn, D. Pieper, C. Röttgers: MDA (Springer 2006) S. Nolte: QVT Relations Language (Springer 2009) Jean Bézivin: Introduction to Model Engineering Apache Velocity: EMF: mediniqvt: Modellbasierte Softwareanalyse, 2010/2011 Modellbasierte Softwareentwicklung 49 R O O T S

Model Driven Development im Überblick

Model Driven Development im Überblick Model Driven Development im Überblick Arif Chughtai Diplom-Informatiker (FH) www.digicomp-academy, Seite 1 September 05 Inhalt Motivation Überblick MDA Kleines Beispiel Werkzeuge www.digicomp-academy,

Mehr

Model Driven Architecture (MDA)

Model Driven Architecture (MDA) Model Driven Architecture (MDA) Vortrag im Fach Software Engineering II BA Mannheim / Fachrichtung Angewandte Informatik Torsten Hopp Gliederung Einleitung Motivation Grundzüge der MDA Ziele & Potenziale

Mehr

Entwicklung einer formalen Sprache zur Modelltransformation auf Basis von UML & XMI

Entwicklung einer formalen Sprache zur Modelltransformation auf Basis von UML & XMI Entwicklung einer formalen Sprache zur Modelltransformation auf Basis von UML & XMI Swisstopo-Kolloquium 11.04.2008 TU München, 13. März 2007 Inhalt 1. Anforderungen, Voraussetzungen, Grundlagen 2. Instrumente

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools MOF Meta Object Facility Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools Überblick Object Management Group (OMG) Model Driven Architecture (MDA) Exkurs: Modelle, Metamodelle MOF Architektur

Mehr

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling Framework Project) EMF ist ein Modellierungsframework und Tool

Mehr

Model Driven Architecture Praxisbeispiel

Model Driven Architecture Praxisbeispiel 1 EJOSA OpenUSS CampusSource Model Driven Architecture Praxisbeispiel 2 Situation von CampusSource-Plattformen Ähnliche Funktionen (Verwaltung von Studenten und Dozenten, Diskussionsforen,...), jedoch

Mehr

Model Driven Software Development

Model Driven Software Development Model Driven Software Development Vergleich von Metametamodellen Marcel Hoyer 1von 19 Themenvorstellung Vergleich von Metametamodellen Was sind überhaupt Metametamodelle? Analyse und Vergleich existierender

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava [email protected] www.isento.de

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava shota.okujava@isento.de www.isento.de Beispielhaft MDSD in der Praxis Dr. Shota Okujava [email protected] www.isento.de Agenda Einführung Softwareentwicklungsprozess und MDSD Technologien und Werkzeuge Demo Entwicklung der Metamodelle

Mehr

Klassifikation von Modelltransformationen

Klassifikation von Modelltransformationen Klassifikation von Modelltransformationen feat. feature diagrams Andreas Blunk [email protected] 1 Agenda 1. Einführung in Modelltransformationen 2. Vorstellung von Merkmalsdiagrammen 3. Beschreibung

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1 Faktor-IPS Modellgetriebene Softwareentwicklung mit Faktor-IPS Seite 1 Faktor-IPS Faktor-IPS ist ein Werkzeug zur modellgetriebenen Entwicklung versicherungsfachlicher Systeme Bestandssysteme Außendienstsysteme

Mehr

Thema 2 Acceleo-MTL- Sprachmittel

Thema 2 Acceleo-MTL- Sprachmittel SE Vertiefung Beuth-Hochschule Berlin Thema 2 Acceleo-MTL- Sprachmittel Sprachstruktur Template-Sprache implementiert MOFM2T Bausteine: Modul Template Query Block Protected Area (c) schmiedecke 13 Generator-Kapsel;

Mehr

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Modellgetriebene Softwareentwicklung bei der IBYKUS AG Modellgetriebene Softwareentwicklung bei der IBYKUS AG Theorie Teil 7: Modelltransformationen Dr. Steffen Skatulla IBYKUS AG 1 Inhalt Teil 7: Modelltransformationen Wozu Modelltransformationen? Konzepte

Mehr

Modell/Metamodell. Generated Source Code. Generator. Model. Fakultät für Informatik und Wirtschaftsinformatik MDSD - SS 2014

Modell/Metamodell. Generated Source Code. Generator. Model. Fakultät für Informatik und Wirtschaftsinformatik MDSD - SS 2014 Modell/Metamodell Model Generator Generated Source Code Andreas Schmidt Modellierung 1/18 Modell Modell beschreibt die zu generierende Anwendung Modell ist... abstrakt kompakt formal Modell kann in unterschiedlichen

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

2 Modelle und Metamodelle

2 Modelle und Metamodelle 2 Modelle und Metamodelle Eine Operational Mappings-Modelltransformation hat als Eingabe ein oder mehrere Quellmodelle und liefert als Ausgabe ein oder mehrere Zielmodelle. Bei den Modellen handelt es

Mehr

Software Factories SS 2016. Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung

Software Factories SS 2016. Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung Software Factories 3 Modellgetriebene Softwareentwicklung Prof. Dr. Dirk Müller Übersicht Einordnung im Lebenszyklus Ziele Hebung des Abstraktionsniveaus Model Driven Architecture (MDA) Domänenspezifische

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4. SEW Übung EMFText 1 Aufgabe Erstellen Sie eine textuelle Domänenspezifische Sprache Domain-specific Language (DSL) mit dem Werkzeug EMFText. Die Sprache soll dazu dienen Formulare (Fragen, Antworttypen

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Vorlesung "Software-Engineering"

Vorlesung Software-Engineering Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

MDA-Praktikum, Einführung

MDA-Praktikum, Einführung MDA-Praktikum, Einführung Prof. Dr. Peter Thiemann Universität Freiburg 02.11.2005 Was ist MDA? MDA = Model-Driven Architecture Initiative der OMG Object Management Group: CORBA, UML,... offenes Firmenkonsortium

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

Inhalt. Motivation Techniken des MDE. Fallbeispiele

Inhalt. Motivation Techniken des MDE. Fallbeispiele ISE-Seminar 2012 Inhalt Motivation Techniken des MDE Computer Aided Software Engineering (CASE) Domain-Specific-Languages (DSL) Model Driven Architecture (MDA) Fallbeispiele Motivation Automatische Codegenerierung

Mehr

WhiteStarUML Tutorial

WhiteStarUML Tutorial WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/

Mehr

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012 Einführung in modellgetriebene Softwareentwicklung 24. Oktober 2012 Überblick Was sind die Grundprinzipien der modellgetriebenen Softwareentwicklung? Entwicklung einer MDD-Infrastruktur Modellgetriebene

Mehr

Themen. Software Design and Quality Group Institute for Program Structures and Data Organization

Themen. Software Design and Quality Group Institute for Program Structures and Data Organization Themen 2 28.04.2010 MODELLGETRIEBENE SOFTWARE-ENTWICKLUNG Grundlagen 3 28.04.2010 Meta-Modell: Lego Meta-Modell Bauvorschriften Building Block * connected with Modell Lego Reale Welt Haus Bilder: (c) designritter

Mehr

Usecase Meta Model Comparison and Model Migration. Dawid Kostrzycki Entwicklung verteilter eingebetteter Systeme

Usecase Meta Model Comparison and Model Migration. Dawid Kostrzycki Entwicklung verteilter eingebetteter Systeme Usecase Meta Model Comparison and Model Migration Dawid Kostrzycki Entwicklung verteilter eingebetteter Systeme Einführung in den Atlas Model Weaver (AMW) theoretisch und praktisch Anwendungsgebiete Wo

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

4. AuD Tafelübung T-C3

4. AuD Tafelübung T-C3 4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

A Domain Specific Language for Project Execution Models

A Domain Specific Language for Project Execution Models A Domain Specific Language for Project Execution Models Eugen Wachtel, Marco Kuhrmann, Georg Kalus Institut für Informatik Software & Systems Engineering Inhalt Einführung und Hintergrund Problembereiche

Mehr

Michael Piechotta - CASE Tools. openarchitecture Ware

Michael Piechotta - CASE Tools. openarchitecture Ware Model Driven Development Michael Piechotta - CASE Tools openarchitecture Ware Gliederung 1.Einleitung - Was ist MDD? - Wozu MDD? 2.Model Driven Development - OMG Konzepte: Modelle,Transformationen Meta-Modellierung

Mehr

Jochen Bauer 08.01.2010

Jochen Bauer 08.01.2010 08.01.2010 Um was geht s und wie läuft s ab? Eclipse-EMP-MDT: Standards unter einem Dach! Gliederung 1. der Model (MDT) 2. Model-Driven- (MDD) und MDT 3. Interne Domain-Specific-Languages (DSL) 4. 5. 6.,

Mehr

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014 Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung

Mehr

WIRTSCHAFTSINFORMATIK

WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster A platform for professional model-driven software development. Präsentation im Rahmen des Seminars Software Engineering WS 08/09 Jan Schürmeier [email protected]

Mehr

Comparing Software Factories and Software Product Lines

Comparing Software Factories and Software Product Lines Comparing Software Factories and Software Product Lines Martin Kleine [email protected] Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich

Mehr

SEA. Modellgetriebene Softwareentwicklung in der BA

SEA. Modellgetriebene Softwareentwicklung in der BA SEA Modellgetriebene Softwareentwicklung in der BA MDA bei der BA Ziele/Vorteile: für die Fachabteilung für die Systementwicklung für den Betrieb Wie wird MDA in der BA umgesetzt? Seite 2 MDA bei der BA

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Ein hierarchischer, modellgetriebener Ansatz zur Codegenerierung. R. Gitzel, M. Schwind

Ein hierarchischer, modellgetriebener Ansatz zur Codegenerierung. R. Gitzel, M. Schwind Ein hierarchischer, modellgetriebener Ansatz zur Codegenerierung R. Gitzel, M. Schwind Agenda! Überblick/Motivation! Hintergrund! Technische Umsetzung! Zentrale Ergebnisse 2 Überblick Ziele! Know-how-Aufbau/Stand

Mehr

Model Driven Architecture

Model Driven Architecture { AKTUELLES SCHLAGWORT* / MODEL DRIVEN ARCHITECTURE Model Driven Architecture Martin Kempa Zoltán Ádám Mann Bei der Model Driven Architecture (MDA) bilden Modelle die zentralen Elemente des Softwareentwicklungsprozesses.

Mehr

Ein Ausflug zu ACCESS

Ein Ausflug zu ACCESS Ein Ausflug zu ACCESS Die folgenden Folien zeigen beispielhaft, wie man sein DB- Wissen auf ACCESS übertragen kann betrachtet wird ACCESS 2002, da gerade im Bereich der Nutzung von SQL hier einiges nachgearbeitet

Mehr

Das Metamodell der UML und in FUJABA. Vortrag von Alexander Geburzi

Das Metamodell der UML und in FUJABA. Vortrag von Alexander Geburzi Das Metamodell der UML und in FUJABA Vortrag von Alexander Geburzi Gliederung Metamodellierung Metamodell der UML Metamodell in FUJABA Metamodellierung - Metamodell der UML - Metamodell in FUJABA 2/20

Mehr

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor. Eclipse WSDL-Editor Übersicht Eclipse Foundation Eclipse Plugins & Projects Eclipse Ganymede Simultaneous Release Web Tools Platform Projekt WSDL Editor Bug #237918 Eclipse Foundation Was ist Eclipse?

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen vorgestellt am 29.09.2008 in der PASS Regionalgruppe Karlsruhe Michael Riedmüller inovex GmbH Project

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Modellbasierte Softwareentwicklung

Modellbasierte Softwareentwicklung CD OCL OD Statechart SD Modellbasierte Softwareentwicklung 7. Evolutionäre Methodik 7.1. Vorgehensmodell Vorlesungsnavigator: Prof. Dr. Bernhard Rumpe Sprache Codegen. http://www.se-rwth.de/ Testen Evolution

Mehr

Referenzielle Integrität SQL

Referenzielle Integrität SQL Referenzielle Integrität in SQL aus Referential Integrity Is Important For Databases von Michael Blaha (Modelsoft Consulting Corp) VII-45 Referenzielle Integrität Definition: Referenzielle Integrität bedeutet

Mehr

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon Ringvorlesung Softwareentwicklung in der industriellen Praxis TU Dresden 14. Dezember 2011 Die i.s.x. Software GmbH & Co. KG Junges,

Mehr

SQL: statische Integrität

SQL: statische Integrität SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Naked-FHIR. Code-Generierung auf Basis von HL7 FHIR Andreas Schuler, MSc. Textmasterformate durch Klicken bearbeiten

Naked-FHIR. Code-Generierung auf Basis von HL7 FHIR Andreas Schuler, MSc. Textmasterformate durch Klicken bearbeiten Naked-FHIR Code-Generierung auf Basis von HL7 FHIR Andreas Schuler, MSc. HL7 Jahrestagung 2015 18. März 2015 Einführung HL7 FHIR stellt eine Reihe an Basis-Ressourcen zur Verfügung Über Zweite Conformance

Mehr

Software-Engineering im Sommersemester 2014

Software-Engineering im Sommersemester 2014 Methodische Grundlagen des Software-Engineering SS 2014 Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

7. Analyse-Phase: Datenmodellierung Software Engineering

7. Analyse-Phase: Datenmodellierung Software Engineering 7. Analyse-Phase: Datenmodellierung Software Engineering Hochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm Hochschule Darmstadt, 20. November 2006 Einordnung in den Kontext

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Meine Workflow Engine spricht BPMN ein Erfahrungsbericht

Meine Workflow Engine spricht BPMN ein Erfahrungsbericht Meine Workflow Engine spricht BPMN ein Erfahrungsbericht Dr. Martin Bartonitz, Product Marketing Manager Solution Specialist SAPERION AG SAPERION AG - Firmenprofil Unternehmenszentrale in Berlin 160 Mitarbeiter

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

MDSD Einführung und Überblick

MDSD Einführung und Überblick Model Driven Software Development MDSD Einführung und Überblick Referent: Carsten Schädel Seite 2 / 33 Ziele Grundgedanke Glossar der wichtigsten Begriffe Seite 3 / 33 Glossar Seite 4 / 33 mögliche Definitionen:

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

12.4 Sicherheitsarchitektur

12.4 Sicherheitsarchitektur 12.4 Sicherheitsarchitektur Modellierung Sicherheitsstrategie Systemmodell Sicherheitsmodell Entwurf Architektur Sicherheitsarchitektur Implementierung sicherer Code SS-12 1 Wie wird das Sicherheitsmodell

Mehr

Systemdenken und Gestaltungsmethodik System-Modellierung

Systemdenken und Gestaltungsmethodik System-Modellierung Systemdenken und Gestaltungsmethodik System-Modellierung Prof. Dr.-Ing. Stefan Brunthaler TFH Wildau 2008ff Master Telematik Ausgangsbasis Es liegt ein kosten-nutzen-optimales Lösungskonzept vor. Die Architektur

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

DSL Entwicklung und Modellierung

DSL Entwicklung und Modellierung DSL Entwicklung und Modellierung Dipl. Inform. Rolf Hänisch Übersicht DSL, was bedeutet das für uns? Eine Anwendung aus der Automatisierungstechnik Sprachen und Werkzeuge Ergebnisse und Erfahrungen GI

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann Vorgetragen von Sanaz Mostowfi Anna Polovets Mandy Neumann Gliederung Was ist DSL? Welche Arten von DSL gibt es? Vor und Nachteile Werkzeuge zur Erstellung von DSLs XText Definition: DSL (Domain Specific

Mehr

XML-Namensräume. Marc Monecke [email protected]

XML-Namensräume. Marc Monecke monecke@informatik.uni-siegen.de XML-Namensräume Marc Monecke [email protected] Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 19. Mai 2003 Inhaltsverzeichnis 1 Motivation

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick [email protected] www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick [email protected] www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

MDA MDA mit mit Open-Source-Software Eine Eine Bestandsaufnahme

MDA MDA mit mit Open-Source-Software Eine Eine Bestandsaufnahme MDA MDA mit mit Open-Source-Software Eine Eine Bestandsaufnahme Gerhard Wanner ([email protected]) Stefan Stefan Siegl Siegl ([email protected]) Agenda Model Driven Architecture (MDA) Einführung/Übersicht/Motivation

Mehr

Software Entwicklung II (SS12)

Software Entwicklung II (SS12) Prof. Dr. P. Liggesmeyer Dipl.-Inf. K. Bizik M.Sc. K. Nehring TU Kaiserslautern Fachbereich Informatik AG Software Engineering: Dependability Software Entwicklung II (SS12) Übung 5 Ausgabe: 04.06.2012

Mehr

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Tom Krauß Agenda Begriffsdefinition Verfahren Praktische Beispiele Vergleich und Bewertung Begriffsklärung

Mehr

Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle

Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle Doktoranden-, Diplomandenseminar, Institut für Informatik, TU Clausthal 23. Juni 2009 Motivation: Modelle werden in der

Mehr

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene

Mehr

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Softwareentwicklungsprozess im Praktikum. 23. April 2015 Softwareentwicklungsprozess im Praktikum 23. April 2015 Agile Softwareentwicklung Eine agile Methodik stellt die beteiligten Menschen in den Mittelpunkt und versucht die Kommunikation und Zusammenarbeit

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie. GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen Teil 1: Einführung: Wissensbasis und Ontologie Was ist eine Wissensbasis? Unterschied zur Datenbank: Datenbank: strukturiert

Mehr

Visuelle DSLs Trends in der Softwaretechnik: Domänenspezifische Sprachen (Seminar WS 2010/11) Thorsten Arendt

Visuelle DSLs Trends in der Softwaretechnik: Domänenspezifische Sprachen (Seminar WS 2010/11) Thorsten Arendt Visuelle DSLs Trends in der Softwaretechnik: Domänenspezifische Sprachen (Seminar WS 2010/11) Thorsten Arendt Problemlösung = Abstrahierung Entwicklung der Programmiersprachen Maschinencode/Binärcode:

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??

Mehr