Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Größe: px
Ab Seite anzeigen:

Download "Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren."

Transkript

1 Free your work.

2 Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

3 Design und Implementierung von Codegeneratoren Am Beispiel der MDA-Suite XCoder Dipl.-Inf. Constantin Szallies

4 Warum MDA? Softwareentwicklung automatisieren! Zwei orthogonale Ansätze kombinieren: Codegenerierung: Berücksichtigung von Cross cutting concerns z. B. Getter/Setter Beschreibung auf einer höheren Abstraktionsebene! Reuse / Frameworks / Vererbung 4

5 Softwareentwicklung mit der MDA Generierter Quellcode Modellierung Generator Binärcode Individueller Code = nicht automatisierte Bearbeitung Compiler 5

6 Konsequentes Forward Engineering Modellierung Generierung Ergänzen des individuellen Codes Modell und Code jederzeit synchron! Ermöglicht die Erstellung eines Modells auf höherer Abstraktionsebene! Roundtrip Engineering bedeutet: Modell und Code äquivalent 6

7 Die XCoder-Suite Wiederverwendbare Komponenten und anpassbare Standard-Generatoren Open Source: In Projekten von Liantis verwendet und weiterentwickelt, wenn Standard-Lösungen ungeeignet Das komplette Framework ist vollständig modelliert und generiert sich selbst: MDA 2 Leichtgewichtig, schnell und einfach zu erweitern 7

8 XCoder-Architektur (hier: für C++) Modell-Transformation Instanz UML-Metamodell- C++-Metamodell- Instanz XMI-Export XMI-Reader Generate Model.xml C++ Sources C++ Sources C++ Quellen 8

9 Platform Independent Model (PIM) <<entity>> Rechnung summe : Money +rechnungen 1 0..* +kunde <<entity>> Kunde name : String getsaldo() : Money <<primitive>> Money <<primitive>> String <<enumeration>> KundenArt PRIVAT GESCHAEFTLICH 9

10 Platform Specific Model (PSM) Durch Transformation des PIM erzeugt <<EJBLocalInterface>> Rechnung <<EJBLocalMethod>> getkunde() : test.kunde <<EJBLocalMethod>> setkunde(p : test.kunde) : void KundenArt PRIVAT : int = 0 GESCHAEFTLICH : int = 1 <<EJBLocalInterface>> Kunde <<EJBLocalMethod>> getsaldo() : java.math.bigdecimal <<EJBLocalMethod>> getrechnungenint() : java.util.collection <<EJBLocalMethod>> addtorechnungen(p : test.rechnung) : void <<EJBLocalMethod>> removefromrechnungen(p : test.rechnung) : void <<EJBLocalMethod>> getrechnungen() : java.util.collection <<EJBEntityLocalHomeInterface>> RechnungHome <<EJBEntityLocalHomeInterface>> KundeHome <<EJBCreateMethod>> create() : test.rechnung <<EJBFinderMethod>> findbyprimarykey(pk : java.lang.object) : test.rechnung <<EJBCreateMethod>> create() : test.kunde <<EJBFinderMethod>> findbyprimarykey(pk : java.lang.object) : test.kunde <<EJBEntity>> KundeBean <<EJBEntity>> RechnungBean <<EJBCreateMethod>> ejbpostcreate() : void ejbremove() : void ejbload() : void ejbstore() : void ejbpas sivate() : void ejbactivate() : void unsetentitycontext() : void <<EJBCreateMethod>> ejbcreate() : java.lang.object <<EJBRemoteMethod>> getsumme() : java.math.bigdecimal <<EJBRemoteMethod>> setsumme(someobject : java.math.bigdecimal) : void setentitycontext(someobject : javax.ejb.entitycontext) : void <<EJBRemoteMethod>> getentitycontext() : javax.ejb.entitycontext <<EJBRemoteMethod>> getejbhome() : test.rechnunghome <<EJBRemoteMethod>> getkunde() : test.kunde <<EJBRemoteMethod>> setkunde(p : test.kunde) : void <<EJBCreateMethod>> ejbcreate() : java.lang.object <<EJBCreateMethod>> ejbpostcreate() : void <<EJBRemoteMethod>> getsaldo() : java.math.bigdecimal ejbremove() : void ejbload() : void ejbstore() : void ejbpassivate() : void ejbactivate() : void <<EJBRemoteMethod>> getname() : java.lang.string <<EJBRemoteMethod>> setname(someobject : java.lang.string) : void setentitycontext(someobject : javax.ejb.entitycontext) : void <<EJBRemoteMethod>> getentitycontext() : javax.ejb.entitycontext unsetentitycontext() : void <<EJBRemoteMethod>> getejbhome() : test.kundehome <<EJBRemoteMethod>> getrechnungenint() : java.util.collection <<EJBRemoteMethod>> setrechnungenint(p : java.util.collection) : void <<EJBRemoteMethod>> addtorechnungen(p : test.rechnung) : void <<EJBRemoteMethod>> removefromrechnungen(p : test.rechnung) : void <<EJBRemoteMethod>> getrechnungen() : java.util.collection 10

11 UML-Metamodell Eine Instanz des Metamodells ist das im UML-Werkzeug erstellte Modell Einlesen des Modells im XMI-Format +type Classifier owner 1 1 +associations AssociationEnd +participant 0..n +connections 0..n +attributes 0..n Attribute +ass ociation 1 Association 11

12 Java-Metamodell Metamodell der Programmiersprache Java +importedpackages Package 0..n +implementingclasses 0..n +implement edinterfaces 0..n +extendedclasses 0..n +superclass 0..1 Classifier 0..n +import edclasses isinterface : Boolean = False visibility : ClassVisibility = PUBLIC isabstract : Boolean = False isfinal : Boolean = False isstatic : Boolean = False finalizable : Boolean = False documentation : String usequalifiednamesonly : Boolean = False iscustomclass : Boolean = True filenameextension : String = "java" userimportsenabled : Boolean = True skipgeneration : Boolean 0..n innerclasses +outerclass <<enumeration>> ClassVisibility PUBLIC PRIVATE PROTECTED PACKAGE 1 +attributes 0..n Attribute +parentclass 1 0..n +parentclass +operations Operatio n 12

13 Das Java-Metamodell verwenden // Create java model Model javamodel = new Model(); // create class Classifier javaclassifier = new Classifier(); javamodel.addclasswithqualifiedname(javaclassifier, "example.kunde"); // add attribute Attribute someattribute = new Attribute(); someattribute.setname("myattribute"); someattribute.settype(type.gettype("int")); javaclassifier.addtoattributes(someattribute); 13

14 Abstraktes Dateisystem // Create file system TransactionFileSystem filesystem = new TransactionFileSystem(); // Create java model Model javamodel = new Model(); // create java classes... // Generate java class javamodel.generate(filesystem); Kapselung des Dateisystems filesystem.commit(); Transaktionsschutz für Dateiänderungen 14

15 Das EJB-Metamodell als Erweiterung des Java-Metamodells 0..1 Classifier (f rom jav a) <<abstract>> MappedClassifier (f rom java) <<abstract>> BeanClassifier +parentclass <<abstract>> Bean CompoundPrimaryKey e ntitybe an +compoundprimarykey 1 EntityBean +primarykeyattributes 0..n Attribute (f rom core) 0..n +operations Op eration (f rom jav a) XCoder Template AllAttributesCPKConstructor CPKHashCodeOperation CPKToStringOperation CPKEqualsOperation generatebody() generatebody() generatebody() generatebody() 15

16 Template für tostring -Methode public void generatebody(com.liantis.io.printer printer) { _3C8E2EF60260 java.util.vector keys = ((CompoundPrimaryKey)this.getParentClass()). getentitybean().getprimarykeyattributes(); Umwandlung mittels Präprozessor } Attribute firstattribute = (Attribute)keys.elementAt(0); [ return "(" + [[firstattribute.getname()]] + ] for(int i=1,j=keys.size();i<j;i++) { Attribute anattribute = (Attribute)keys.elementAt(i); [ ", " + [[anattribute.getname()]] + ] } [ ")"; ] 16

17 Vorteile durch Metamodellierung Die Struktur des zu erzeugenden Codes liegt vollständig vor Kennt alle Typen, die er verwendet Classifier Weiß, ob alle geerbten, abstrakten Methoden überschrieben werden Weiß, ob java.sql.date unqualifiziert verwendet werden kann Berechnet Details für seine Templates 17

18 Modelltransformation Aus einer Metamodell-Instanz eine zweite Metamodell-Instanz erzeugen Eine oder mehrere Iterationen über das Eingabe- Modell bauen das Ausgabe-Modell auf Am Ende: Model to Text -Transformation UML- MetamodelL-Instanz OOP- MetamodelL-Instanz 18

19 Modellierung einer Transformation BOInterface I nterf ac ecl assifi er (from core) +umlinterface 1 1 +javainterface $map() mapattributes() mapoperations() maproles() mapinheritancerelations() maprealizerelations() Cl assi fi er (from java) +umlclassifier ClassCla 1 ssi fier (from core) 1 +umlclassifi er +javaclassifier javaenumeration BusinessObject map() mapattributes() mapoperations() maproles() mapinheritancerelations() maprealizerelations() Enumeration $map() mapattributes() mapoperations() maproles() generateclassinitializer() mapinheritancerelations() maprealizerelations() <<abstract>> MappedClassifier $m apping : Cl assifi ermapping $m ap () $setma pp ing() pre MapFeatures() ma pattributes() ma poperati ons() ma pro les() mapvisibility() ma pinheritancerel ations() maprealizerelations() mapdependencyrelations() po stma pfea tu res() ma pbasicel em ents() Exception Exception +umlexcepti on 1 (from commonbehavi javaexception $map() mapattributes() mapoperations() maproles() mapinheritancerelations() maprealizerelations() 19

20 Implementierung einer Transformation public static Enumeration map(classclassifier aclass) { _3C73A384029F Enumeration e = new Enumeration(); e.setumlclassifier(aclass); e.setid(aclass.getid()); String name = new StringTransformer().transform(aClass.getName()); e.setname(name); e.setisfinal(true); e.setuserimportsenabled(false); } // add attributes as enumeration constants java.util.vector attribs = aclass.getattributes(); for (int i = 0; i < attribs.size(); i++) { Attribute at = attribs.elementat(i); Attribute javaattribute = new Attribute(); e.addtoattributes(javaattribute);... if(at.hastype()) new TransformationError(at,"no attribute types allowed here");... } return e; 20

21 21 Standardkomponenten UML-Metamodell (OMG-Standard) Java-Metamodell EJB-Metamodell C++-Metamodell SQL-Metamodell C#-Metamodell UML Java-Transformation UML EJB-Transformation UML C++-Transformation UML SQL-Transformation UML C#-Transformation Transaktionsgesicherte Generierung unter Erhalt von manuell geschriebenem Code

22 Beispielprojekt Abrechnungssystem für Telekommunikationsunternehmen und Energieversorger Produktiv seit 1998 Bestehende C++-Architektur Modellierung mit Rational Rose Generierung mit XCoder/C++ Koexistenz von manuell erstelltem und generiertem Code Schrittweise Migration zu vollständiger Generierung Aufwand für XCoder/C++-Anpassung: 20 PT 22

23 Was bedeutet... für Sie? Schnelle Einführung durch leichtgewichtigen Ansatz Leistungsfähige Lösungen durch Metamodelle und Modelltransformation Flexible und einfache Erweiterung durch modellierten Generator 23

24 Liantis: Kompetenz im Bereich MDA Einsatz v. MDA-Standardwerkzeugen 2. Entwicklung v. MDA-Individuallösungen Modellgetriebene Entwicklung seit 1997 COBOL/Java: Versicherungsbranche COBOL: Finanzdienstleistungsbranche Java/EDIFACT: Standardisierungsorg. C++: Immobilienwirtschaft Java/C++/C#/J2EE: SE-Werkzeuge C++: Telekommunikation J2EE: Energiewirtschaft J2EE: Bank

25 Geschäftsfelder Liantis Beratung und Training Software-Entwicklung Liantis berät und trainiert zu folgenden Themen: Objektorientierte Software-Entwicklung, insb. UML Software-Architekturen, insb. MDA, EJB, CORBA XML Generierungsverfahren Anforderungsanalyse Vorgehensmodelle Projektmanagement 25

26 Geschäftsfelder Liantis Beratung und Training Software-Entwicklung Liantis verfügt über langjähriges Know-how in der Entwicklung komplexer Informationssysteme. Wir unterstützen Unternehmen bei der Realisierung ihrer Software- Entwicklungsprojekte. Dabei werden modernste Softwaretechnologie und Entwicklungswerkzeuge eingesetzt. 26

27 Free your work.

28 Free your work. Durch: Constantin Szallies Liantis GmbH & Co. KG St.-Anton-Straße Krefeld Fon: / Fax: / info@liantis.com

29 Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Model Driven Architecture Best Practices

Model Driven Architecture Best Practices Model Driven Architecture Best Practices Am Beispiel der MDA-Suite XCoder Dipl.-Inf. Constantin Szallies Standardtechnologien der MDA Standardisiert von der Object Management Group (OMG) Unified Modeling

Mehr

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

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

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren. Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren. 1 Automatische Verifikation von Anforderungen Dr. Guido Dischinger guido.dischinger@liantis.com

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Code-Erzeugung aus UML-Klassendiagrammen

Code-Erzeugung aus UML-Klassendiagrammen Dominik 09.03.2009 Universität Ulm Gessenharter Inst. f. Programmiermethodik und Compilerbau Code-Erzeugung aus UML-Klassendiagrammen Theorie und Praxis Seite 2 REConf 2009 München Dominik Gessenharter

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

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

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

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

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Copyright 2014 Delta Software Technology GmbH. All Rights reserved. Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

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

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

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

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

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

Model Driven Architecture

Model Driven Architecture Model Driven Architecture Wilhelm Stephan Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Seminar Softwareentwicklung in der Wissenschaft Betreuer: Julian Kunkel SommerSemester

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

Erfolg ist programmierbar.

Erfolg ist programmierbar. 45789545697749812346568958565124578954569774981 46568958565124578954569774981234656895856124578 45697749812346568958565124578954569774981234656 58565124578954569774981234656895856124578954569 49812346568958565124578954569774981234656895856

Mehr

Kompetenz. rund um. Ihren. Entwicklungsprozess. Über uns. Technische Software. Modellbasierter Test. Prüfplätze. Automatisierung.

Kompetenz. rund um. Ihren. Entwicklungsprozess. Über uns. Technische Software. Modellbasierter Test. Prüfplätze. Automatisierung. Kompetenz rund um Ihren Entwicklungsprozess Modellieren für den Test - Segen oder Fluch? Firmenpräsentation auf der embeddedworld 2010 Dipl. Ing. (Univ) Gerhard Baier Bereichsleiter Marketing und Vertrieb

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

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

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

Generatives Programmieren

Generatives Programmieren Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare

Mehr

Lösungsvorschlag für Übungsblatt 6 Software Engineering 1 (WS 2012/13)

Lösungsvorschlag für Übungsblatt 6 Software Engineering 1 (WS 2012/13) Prof. Ina Schaefer Institut für Softwaretechnik und Fahrzeuginformatik TU Braunschweig Lösungsvorschlag für Übungsblatt 6 Software Engineering 1 (WS 2012/13) Ausgabe: 12. Januar 2013 Abgabe: 25. Januar

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

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.

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

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

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

Erfolg ist programmierbar.

Erfolg ist programmierbar. 4578954569774981234656895856512457895456977498 3465689585651245789545697749812346568958561245 9545697749812346568958565124578954569774981234 6895856512457895456977498123465689585612457895 6977498123465689585651245789545697749812346568

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

Viele gute Stellen sind frei. Besetzen Sie eine.

Viele gute Stellen sind frei. Besetzen Sie eine. Viele gute Stellen sind frei. Besetzen Sie eine. Die Innovations Softwaretechnologie GmbH mit Hauptsitz am Bodensee ist Wir suchen gute Java Entwickler. Kommen Sie zu uns als: Informatiker(in) (Diplom/Bachelor/Master)

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

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 Development in Scrum-Projekten

Model-Driven Development in Scrum-Projekten Tempo machen: Model-Driven Development in Scrum-Projekten Herzlich willkommen Enrico Fritz microtool GmbH Berlin Tempo machen: Model-Driven Development in Scrum-Projekten 25 Jahre Tools und Beratung: microtool

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

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

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

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine gerrit.beine@sapat.de

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine gerrit.beine@sapat.de Programmieren ohne Programmierer Das GeneSEZ Generator Framework Gerrit Beine gerrit.beine@sapat.de Vogelperspektive Theorie: Model driven software development Praxis: Konzepte von GeneSEZ Lösungen für

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

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

Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen. OOP München, 26.01.2011

Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen. OOP München, 26.01.2011 Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen OOP München, 26.01.2011 I N H A L T 1. SOA das erste Projekt 2. Prozesse Ergebnisse aus dem Fachbereich 3. Der Business Analyst und BPMN

Mehr

Referenzarchitekturen und MDA 1

Referenzarchitekturen und MDA 1 Referenzarchitekturen und MDA 1 Gerd Beneken *, Tilman Seifert *, Niko Baehr +, Inge Hanschke +, Olaf Rauch + *) TU München Lehrstuhl für Software & Systems Engineering Boltzmannstr. 3; 85748 Garching

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

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 Jan.Schuermeier@gmx.de

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-Driven Design: Ein einfaches Beispiel Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Metamodellbasierte Codegenerierung in Java

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Metamodellbasierte Codegenerierung in Java Metamodellbasierte Codegenerierung in Java Codegenerierung Markus Völter, voelter@acm.org, www.voelter.de Codegenerierung bezeichnet die automatische Erstellung von Quelltext aus üblicherweise abstraktereren,

Mehr

Die MID ModellierungsMethodik M³ ein Baukasten für Produktlinien. Andreas Ditze, MDD & PL 2009, Leipzig, 23.03.2009

Die MID ModellierungsMethodik M³ ein Baukasten für Produktlinien. Andreas Ditze, MDD & PL 2009, Leipzig, 23.03.2009 Die MID ModellierungsMethodik M³ ein Baukasten für Produktlinien Andreas Ditze, MDD & PL 2009, Leipzig, 23.03.2009 I N H A L T 1. Vorstellung 2. Was macht einen guten Baukasten aus? 3. Ziele der MID ModellierungsMethodik

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

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

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung Modellgetriebene Softwareentwicklung 30.10.2008 Dr. Georg Pietrek, itemis AG Inhalt Wer ist itemis? Modellgetriebene Entwicklung Ein Praxis-Beispiel Fazit 2 Vorstellung IT-Dienstleister Software-Entwicklung

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

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des

Mehr

Praktische Übung 'JUnit-Test'

Praktische Übung 'JUnit-Test' Praktische Übung 'JUnit-Test' Starten Sie für die folgende Übung Eclipse und laden Sie das Testprojekt von folgender URL: http://pi.informatik.uni-siegen.de/berlik/swt/currency.zip Darin ist die Klasse

Mehr

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Individuelle Erweiterung des generierten Codes. 16. Januar 2013 Individuelle Erweiterung des generierten Codes 16. Januar 2013 Überblick Welche Möglichkeiten zur individuellen Erweiterung von generiertem Code gibt es? Innerhalb eines Moduls (Klasse) Auf Modulebene

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

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

Innovator 11 classix. Java Reverse Engineering. HowTo. Ralph Schönleber. www.mid.de

Innovator 11 classix. Java Reverse Engineering. HowTo. Ralph Schönleber. www.mid.de Innovator 11 classix Java Reverse Engineering Ralph Schönleber HowTo www.mid.de Mit Innovator Java Reverse Engineering durchführen Inhaltsverzeichnis Voraussetzungen... 2 Java Reverse Engineering... 2

Mehr

188.154 Einführung in die Programmierung für Wirtschaftsinformatik

188.154 Einführung in die Programmierung für Wirtschaftsinformatik Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger

Mehr

IBM Software Demos Rational Software Delivery Platform - Änderungen an Design und Architektur einer Anwendung

IBM Software Demos Rational Software Delivery Platform - Änderungen an Design und Architektur einer Anwendung In dieser Demo verwendet Alex die Visualisierungs- und Modellfunktionen von Rational Software Architect, um die Architektur der Anwendung zu betrachten und festzulegen, wie die Änderung Sofort kaufen bestmöglich

Mehr

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html

Mehr

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12

Mehr

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

Mehr

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

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

Innovator 11 classix. Enterprise JavaBeans (EJB) für JBuilder. Connect. Alexander Borschet. www.mid.de

Innovator 11 classix. Enterprise JavaBeans (EJB) für JBuilder. Connect. Alexander Borschet. www.mid.de Innovator 11 classix Enterprise JavaBeans (EJB) für JBuilder Alexander Borschet Connect www.mid.de Modellieren und Generieren von Enterprise JavaBeans (EJB) für JBuilder Wozu dient die Anbindung an JBuilder?

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

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

SWE5 Übungen zu Software-Engineering

SWE5 Übungen zu Software-Engineering 1 Übungen zu Software-Engineering 1) Klassen und Objekte 2) Telefonanlage 3) Objekt- und Klassendiagramme 4) Assoziationen 5) Telefonanlage (Erweiterung) 6) Fahrzeuge 7) Familien 2 Aufgabe 1: Klassen und

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

INNOVATOR im Entwicklungsprozess

INNOVATOR im Entwicklungsprozess Erfahrungsbericht INNOVATOR im Entwicklungsprozess Basis für Host- und Java-Anwendungen Dr. Carl-Werner Oehlrich, Principal Consultant MID GmbH Das Modellierungswerkzeug INNOVATOR Geschäftsprozess-Modellierung

Mehr

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

Mehr

Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook. 14. Januar 2015

Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook. 14. Januar 2015 Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook 14. Januar 2015 Überblick Modell- und Codegenerierung (M2C, C2M) Modellinterpretation vs. Modellübersetzung PIMAR Code-Generierung am Beispiel des

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

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

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

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

Mehr

Grundkonstrukte der Objektorientierung in Java, C# und C++

Grundkonstrukte der Objektorientierung in Java, C# und C++ Grundkonstrukte der Objektorientierung in Java, C# und C++ 2 Viele Patterns basieren auf einer Kombination einiger zentraler Modellierungskonstrukte, namentlich auf Schnittstellen- und Implementierungsvererbung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Es war einmal... "StudyING: Welten bewegen - Welten gestalten"

Es war einmal... StudyING: Welten bewegen - Welten gestalten Computer, generiere! Christian Schröder Fachbereich Elektrotechnik und Informationstechnik Fachhochschule Bielefeld christian.schroeder@fh-bielefeld.de Es war einmal... Es war einmal... ein Bauvorhaben!

Mehr

Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel

Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel Übungsblatt 10 - Lösungshilfe Aufgabe 1. CRC-Karten (7 Punkte) Es geht um die Modellierung der folgenden Bibliotheks-Anwendung:

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

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

Probeklausur Softwareengineering SS 15

Probeklausur Softwareengineering SS 15 Probeklausur Softwareengineering SS 15 Hinweis: Die Bearbeitungsdauer entspricht dem Punktewert. Aufgabe 1 (10 min) Beschreiben Sie das Vorgehensmodell Test-Driven-Development (TDD) a) Erläutern Sie das

Mehr