SEMINARARBEIT. MDA Model Driven Architecture

Größe: px
Ab Seite anzeigen:

Download "SEMINARARBEIT. MDA Model Driven Architecture"

Transkript

1 SEMINARARBEIT MDA Model Driven Architecture durchgeführt am Studiengang Angewandte Informatik an der Naturwissenschaftlichen Fakultät der Universität Salzburg Fachbereich Computerwissenschaften vorgelegt von: Franz Alois Schiestl Michael Radlingmaier Betreuer: Univ.-Prof. Dipl.-Ing. Dr. Wolfgang Pree Salzburg, Jänner 2008

2 Inhaltsverzeichnis Inhaltsverzeichnis Abbildungsverzeichnis ii iii 1 Einleitung 1 2 Model Driven Architecture (MDA) Prinzipielle Vorgehensweise Standards Metamodellierung Transformationen (Mappings) xuml OCL xuml - Vorteile und Nachteile Beispiele zur Anwendung der MDA Fujaba Zusammenfassung 16 Literaturverzeichnis 18 Abkürzungsverzeichnis 20 Anhang 21 A Methoden 22 A.1 main() A.2 inc() ii

3 Abbildungsverzeichnis 2.1 Vorgehensweise der MDA Model Driven Architecture (MDA) [OMGI08a] MDA Metalevels [Fran05] Beispiel zur Metamodellierung [StVo05] MDA Transformationen Modellelemente von xuml Object- und Testcode [Rump02] Fujaba - Klassendiagramm für die Klassen MainClass und Counter Activity - Diagramm für die Counter - Methode inc() Activity - Diagramm für die MainClass - Methode main() iii

4 1 Einleitung Derzeitige Softwareentwicklungsprojekte sind einerseits von sich schnell ändernden Technologien und Anforderungen durch den Auftraggeber sowie von Zeitüberschreitungen der geplanten Fertigungstermine und den daraus entstehenden Kosten geprägt. Um diesen Problemen im Entwicklungsprozess entgegen zu treten wurde von der Object Management Group (OMG) im Jahr 2001 die Initiative Model Driven Architecture (MDA) gegründet. Die OMG ist eines der wichtigsten Standardisierungsgremien für die objektorientierte Systementwicklung, welches bereits eine Vielzahl an Technologien spezifizierte. Zu diesen zählen beispielsweise die Unified Modeling Language (UML) und Meta Object Facility (MOF), welche im Folgenden noch genauer erwähnt werden [Fran05] [OMGI08a] [OMGI08b] [OMGI08c]. Laut Ansichten der OMG basiert die nächste Generation der Softwareentwicklung auf einem transformationalen Ansatz, welcher durch die MDA verfolgt wird. Dies würde bedeuten, dass es nicht mehr länger notwendig sein wird als Softwareentwickler Source- Code zu implementieren, sondern Geschäftsprozesse zu modellieren und die dafür benötigten Modelle zu entwerfen. Der gesamte Software-Entwicklungsprozess findet dabei in Form von Modellen statt, welche schließlich bis hin zu ausführbaren Anwendungen transformiert werden. [OMGI08a] Dieser Ansatz würde bei einer konsequenten Durchführung im Rahmen eines gesamten 1

5 1. Einleitung 2 Projektes eine enorme Reduzierung der Entwicklungszeiten sowie auch der Entwicklungskosten mit sich bringen, jedoch sind bis dato noch nicht alle erforderlichen Komponenten wie beispielsweise die Transformationen von den Modellen exakt spezifiziert. Es gibt bereits erste Ansätze von Entwicklungsumgebungen welche MDA-konform sind, jedoch wird von diesen lediglich ein sehr kleiner Teil der gesamten MDA-Funktionalitäten bereitgestellt. Als Grundvoraussetzung für die Anwendung dieses neuen Ansatzes zur Softwareentwicklung ist die Entwicklung von Software anhand von Modellen (Model Driven Software Development, MDSD). Dabei hat sich die Unified Modelling Language als Defacto-Standard für die Beschreibung von Softwaresystemen durchgesetzt. Erst mit Hilfe der UML ist es möglich Softwaresysteme durch Objekte und Beziehungen auf einer abstrakten Ebene darzustellen. Hierfür stellt die UML diverse Struktur- und Verhaltensdiagramme zur Verfügung, wodurch die Abbildung eines zu realisierenden Softwaresystems in Form von Modellen ermöglicht wird. Wie bereits zuvor erläutert, wurde die UML wie auch die MDA von der OMG standardisiert und befindet sich aktuell in der offiziellen Version [OMGI08c] [StVo05]. In den nachfolgenden Abschnitten werden zunächst die Prinzipien und Vorgehensweisen sowie die bei der MDA zum Einsatz kommenden Technologien genauer dargestellt. Als eine spezielle Ausprägung der Programmiersprache UML handelt ein Kapitel über executable UML (xuml), welche alle nötigen Konstrukte beinhaltet um schließlich lauffähige Anwendungen aus erstellten Modellen zu generieren. Als praktisches Beispiel wird eine minimale Anwendung, welche mittels Fujaba (From UML to Java and back again) erstellt wurde, dargestellt. Schließlich bildet eine Zusammenfassung, in welcher die Ansätze der MDA kritisch betrachtet werden, den Abschluss der Arbeit.

6 2 Model Driven Architecture (MDA) In diesem Abschnitt der Arbeit werden die Kernaspekte der MDA genauer erläutert. Dazu zählen vor allem die prinzipielle Vorgehensweise, die verwendeten Standards, das Prinzip der Metamodellierung sowie auch die Transformationen. 2.1 Prinzipielle Vorgehensweise Das Prinzip der MDA ist eine Trennung der Definition der Funktionalität eines Systems von der Definition der Implementierung eines Systems mit bestimmten technologiespezifischen Eigenschaften beziehungsweise mit bestimmten pattformspezifischen Eigenschaften. Durch diese Trennung wird eine leichtere Implementierung der Lösung auf verschiedenen Plattformen ermöglicht, da diese Lösungen von einem zuvor entwickelten plattformunabhängigen Modell abgeleitet werden können. Des Weiteren ist es bei der Entwicklung einfacher das Verhalten eines Systems ohne plattform- beziehungsweise technologiespezifische Details zu beschreiben. Die Vorgehensweise bei der Entwicklung von Software mit dem Ansatz der MDA basiert auf verschiedenen Modellen mit einem unterschiedlichen Abstraktionslevel des zu entwickelnden Gesamtsystems. Ein prinzipieller Ablauf ist in Abbildung 2.1 dargestellt und wird im Folgenden genauer erläutert [MiMu03][Muke01] [Sole00]. 3

7 2. Model Driven Architecture (MDA) 4 Abbildung 2.1: Vorgehensweise der MDA Auf der höchsten Ebene befindet sich das Computation Independent Model (CIM). Dieses beinhaltet sämtliche Anforderungen und beschreibt, ohne jegliche technische Details, die zu realisierenden Geschäftsprozesse. Das CIM wird durch eine Transformation in ein plattformunabhängiges Modell PIM (Platform Independent Model) übergeführt. Hier wird die eigentliche Funktionalität und Struktur der Anwendung mit sämtlichen Details modelliert. Einen wesentlichen Vorteil den dieses Modell mit sich bringt ist, dass es bei eventueller Änderung der Zielplattform während des Entwicklungsprozesses weiter verwendet werden kann, da es keine implementierungsspezifischen Details beinhaltet. Das PIM wird mithilfe einer weiteren Transformation in ein Platform Specific Model (PSM) oder mehrere PSM s transformiert. Diese Modelle beinhalten nun zusätzlich auch technische Realisierungsdetails zu den jeweiligen Plattformen, für welche sie erstellt werden. Beispielsweise könnten dies CORBA, Java oder.net sein. In einem letzten Schritt kommt es schließlich zur Generierung des Source-Codes von den PSM s. Da dieser Schritt nicht zu dem modellgetriebenen Ansatz der MDA zählen würde, wird die Codegenerierung mittels eines Modells welches die Beschreibung der

8 2. Model Driven Architecture (MDA) 5 Zielplattform beinhaltet durchgeführt (Platform Description Model, PDM) [MiMu03]. Hinzuzufügen ist dabei, dass der gesamte Ablauf in Form von model2model sowie model2code Transformationen stattfindet und schließlich ein ausführbarer Source-Code beziehungsweise ausführbare Anwendungen resultieren. Im Folgenden werden die dafür bereits existierenden OMG-Standards kurz dargestellt. 2.2 Standards Bei der Standardisierung der MDA wurden bereits veröffentlichte Standards der OMG mit eingebracht. Abbildung 2.2 zeigt die Standard-Darstellung der MDA seitens der OMG. Abbildung 2.2: Model Driven Architecture (MDA) [OMGI08a] Wie in Abbildung 2.2 ersichtlich, befinden sich im Kern der MDA wichtige OMG Standards wie UML, Meta Object Facility (MOF) und Common Warehouse Metamodel (CWM). Dabei dient die UML dem Modellieren des Gesamtsystems. Um die

9 2. Model Driven Architecture (MDA) 6 Konstrukte einer Modellierungssprache definieren zu können, ist eine Metamodellierungssprache erforderlich. Für diese Aufgabe wurde von der OMG der Standard MOF spezifiziert. Eine genauere Beschreibung des Konzeptes der Metamodellierung folgt im anschließenden Abschnitt. CWM beinhaltet den gesamten Life-Cycle des Designs, der Implementierung und der Wartung eines Data Warehouse. Anhand dieser Technologien werden die Plattform Independent Models erstellt. Des Weiteren beinhaltet der Kern UML-Profile für verschiedene Plattformen, wie beispielsweise CORBA, JAVA,.NET, WEB-Services, XML Metadata Interchange (XMI) und Extensible Markup Language (XML). Im äußeren Ring befinden sich Dienste, welche prinzipiell in allen Anwendungen vorhanden sind (pervasive services). Schließlich werden anhand der Pfeile nach außen mögliche Einsatzgebiete von der MDA dargestellt, wie beispielsweise im Finanzwesen, in der Fertigungswirtschaft oder im Gesundheitswesen [MiMu03] [OMGI08a]. Wie bereits erwähnt basiert der Ansatz der MDA lediglich auf Transformationen von Modellen. Ein sehr wichtiges Konzept für die Umsetzung dieses Ansatzes ist daher das im folgenden Abschnitt erläuterte Konzept der Metamodellierung. 2.3 Metamodellierung Im Bezug auf die modellgetriebene Softwareentwicklung mit Transformationen und Codegeneratoren ist die Metamodellierung, welche durch Meta Object Facility (MOF) definiert wird, ein äußerst wichtiger Aspekt. In einem Metamodell werden alle möglichen Konstrukte einer Modellierungssprache, wie zum Beispiel die Beziehungen oder die Regeln für das korrekte Modellieren definiert, ohne die konkrete Syntax einer Programmiersprache zu verwenden. Beispielsweise ist auch UML durch MOF definiert. Ziel des MDA Ansatzes ist es, möglichst viel auf der Ebene von Modellen zu beschreiben [Fran05] [MiMu03] [OMGI08a]. Wie in Abbildung 2.3 dargestellt, beschreibt die MOF Architektur ein Metamodell, welches aus vier Metalevels besteht.

10 2. Model Driven Architecture (MDA) 7 Abbildung 2.3: MDA Metalevels [Fran05] Jedes dieser vier Metalevels (M0 - M3) steht dabei in einer Class-Beziehung zu dem jeweiligen höheren Level und in einer Instance-Beziehung zu dem jeweiligen niedrigeren Level. Beispielsweise bedeutet dies, dass ein Element von M0 eine Instanz von einer Klasse aus M1 ist und somit die Klasse aus M1 das Metamodell zu den Instanzen der Elemente von M0 ist. Schließlich ist ein Element von M3 wieder eine Instanz von M3, wodurch sich eine Selbstbeschreibung dieses Metamodells ergibt [Fran05]. Die folgende Abbildung 2.4 dient einer anschaulichen Darstellung und Beschreibung des Prinzips der Metamodellierung anhand eines konkreten Beispiels mit UML. Auf dem untersten Level M0 ist eine Person mit dem Namen John Doe vorzufinden. Diese Person stellt eine Instanz der Klasse PERSON dar, welche auf Level M1 definiert ist. Im Bezug auf UML befinden sich im Level M1 unter anderem Klassendiagramme oder Sequenzdiagramme. Um überhaupt erst die Möglichkeit zu haben Klassendiagramme zu erstellen, ist es erforderlich die Konstrukte der Klassen zu definieren. Solche Konstrukte sind beispielsweise Beziehungen oder Attribute, welche auf der nächst höheren Ebene im Metamodell auf Level M2 beschrieben werden. Auf dieser Ebene ist UML definiert. Um schließlich die Möglichkeit zu haben neue Meta-Modelle zu erstellen, ist

11 2. Model Driven Architecture (MDA) 8 auf dem höchsten Level im Meta-Metamodell, MOF definiert. MOF stellt verschiedene Konstrukte zur Verfügung, anhand welcher Meta-Modelle auf Level M2 erstellt werden können. Aufgrund der selbstbeschreibenden Architektur der Metamodellierung ist bereits dafür gesorgt MOF bei Bedarf erweitern zu können [Fran05] [StVo05]. Abbildung 2.4: Beispiel zur Metamodellierung [StVo05] 2.4 Transformationen (Mappings) Wie im letzten Abschnitt erwähnt, basiert die Entwicklung anhand des MDA Ansatzes auf Modellen und Transformationen (Mappings) die schließlich hin zu ausführbaren Anwendungen beziehungsweise ausführbaren Source-Code führen. Bezüglich der Sprache der Transformationsdefinitionen (Mappingsprache) wird derzeit von der OMG versucht, diese anhand der Spezifikation MOF 2.0 Query/View/Transformations (QVT) allgemein zu standardisieren. Allgemein werden Transformationsregeln immer im Bezug auf eine vorhandene Ausgangssituation und eine gewollte Endsituation erstellt. Durch solche Regeln ist es jedoch

12 2. Model Driven Architecture (MDA) 9 nicht möglich ein allgemeines Konstrukt zu definieren, welches alle möglichen Situationen abdeckt. Daher wurden von der OMG Konstrukte auf der Basis des MOF Metamodells entwickelt, um allgemein gültige Transformationsregeln definieren zu können. In Abbildung 2.5 wird der Zusammenhang der Transformationen mit der Metamodellierung dargestellt. Die untere Hälfte stellt dabei die Bedingung dar. Mithilfe einer Transformation soll ein Source-Modell (beispielsweise PIM) in ein Traget-Modell (beispielsweise PSM) unter Erfüllung der Anforderungen (satisfy Requirements) übergeführt werden. Abbildung 2.5: MDA Transformationen Die obere Hälfte beschreibt den Zusammenhang bezüglich der Entstehung der Transformationen. Die Transformationsdefinitionen werden in einer spezifizierten Transformationssprache geschrieben. Des Weiteren verwendet die Transformationsdefinition die beiden Metamodelle des Source- und des Target-Modells. Grund dafür ist, wie zuvor bei der Metamodellierung beschrieben, dass in den Metamodellen die Konstrukte der zu Grunde liegenden Modelle definiert sind und diese somit Informationen enthalten, welche zur Konstruktion der Transformationsdefinitionen erforderlich sind [Muke01] [MiMu03].

13 3 xuml - Executable UML xuml ist eine Sprache aus der Familie der UML Sprachen, welche die Zusammenhänge in UML semantisch beschreibt und unter Anderem die in Abbildung 3.1 dargestellten und im folgenden aufgelisteten Modellelemente beinhaltet [Graw02, Rump02]: Sequence - Diagramme Interaktion zwischen Use Case - Objekten, Kontrollfluss Class - Diagramme Statische Struktur von von xuml Objekten State Chart - Diagramme Behaviorale Aspekte von Objekten einer Klasse OCL Constraints Regeln, Werteinschränkungen, etc (siehe 3.1) Use Case - Diagramme (nicht in Abbildung 3.1 dargestellt) Beschreibung von Anforderungen in einer frühen Phase der Entwicklung Collaboration - Diagramme (nicht in Abbildung 3.1 dargestellt) Interaktion zwischen Objekten mittels Messages Das Ziel der Entwickler von xuml ist die einfache Erzeugung von Programmen in einer höheren Abstraktionsebene, welche sowohl spezifische Programmiersprachen als auch Softwareorganisation beschreiben soll. Ein xuml - Modell beinhaltet Strukturen zur 10

14 3. xuml 11 Abbildung 3.1: Modellelemente von xuml Object- und Testcode [Rump02] Verwaltung von Daten, Kontrollelementen und Algorithmen, trifft jedoch keine Entscheidungen bezüglich Implementierung, Task Strukturen, Distribution und Kapselungen [Mell02]. Was von xuml beschrieben wird, sind Daten und Verhalten, organisiert durch Klassen. Somit befindet sich der Entwickler scheinbar auf einer höheren Ebene der Abstraktion, da er nur mit Daten und Verhalten direkt konfrontiert ist. Um ein solches Modell ausführbar zu machen ist ein Modell - Compiler notwendig. Der Compiler zielt nun auf eine spezifische Implementierung bezüglich Task Strukturen, Distribution, Datenstrukturen und die Programmiersprache ab [Mell02]. 3.1 OCL - Object Constraint Language OCL ist eine formale Sprache die es ermöglicht, Spezifikationen, die in UML nicht vorgenommen werden können, durchzuführen. Um zu garantieren, dass OCL eine reine Spezifikationssprache ohne Seiteneffekte ist, wurde gewährleistet, dass die Evaluierung eines OCL Ausdruckes einen Wert zurückliefern muss, im UML Modell selbst jedoch nichts ändern kann. Da OCL in erster Linie eine Modelliersprache ist können OCL - Ausdrücke per Definition nicht direkt ausgeführt werden. Weiters wird eine Evaluierung eines OCL Ausdruckes mit sofortiger Wirkung durchgeführt, was bedeutet, dass sich

15 3. xuml 12 die States eines Objektes während der Durchführung einer Evaluierung nicht ändern können [OMGI03]. Weiters dient die OCL in xuml unter anderem der Eliminierung von Mehrdeutigkeiten. 3.2 xuml - Vorteile und Nachteile Die Ausführbarkeit von Spezifikationen oder eines spezifizierten Modells bringt Vorund Nachteile mit sich. Als der wichtigste Vorteil von xuml wird die Abstraktionsebene, auf der sich der Programmierer befinden soll, prolongiert. Leider kann xuml jedoch die Komplexität von Applikationen nicht verbergen (siehe Kapitel 3.1) und befindet sich somit objektiv betrachtet nicht auf einer höheren Abstraktionsebene, sondern schafft es lediglich Programmcode graphisch darzustellen. Probleme mit xuml können auftreten, wenn es um die Effizienz einer Applikation geht, da der Source Code und damit auch der Kontrollfluss nicht mehr manuell, sondern zum Großteil vom xuml - Compiler erzeugt wird. Des Weiteren wird die Programmierung von komplizierten Algorithmen, wie zum Beispiel die Implementierung eines Sortieralgorithmus erschwert und oft unlesbar [Rump02]. Ein Grund hierfür ist die Verwendung von Sequenzdiagrammen, welche eigentlich ein Relikt aus den 80er Jahren sind und im Zusammenhang mit der MDA eine Renaissance erleben. Diese Diagramme dienen der Darstellung von Kontrollfluss und Ablauf einer Applikation. Leider nehmen Sequenzdiagramme aber bereits bei sehr kleinen Applikationen enorme Ausmaße an und sind somit für große Applikationen offensichtlich ungeeignet.

16 4 Beispiele zur Anwendung der MDA In diesem Kapitel wird die Implementierung eines Counters in xuml mit Fujaba dargestellt. Der Counter soll in der Lage sein, zwischen geraden und ungeraden Integer - Werten zu unterscheiden und diese auf der Konsole auszugeben. 4.1 Fujaba Fujaba ist ein Akronym für From UML to Java And Back Again und dient als Entwicklungsumgebung für den Entwurf von xuml Modellen. Fujaba ist vollständig in Java implementiert und kann, da ein Platform - Independend - Model fehlt, auch nur Java Source - Code generieren. Somit stellt Fujaba nur einen Teil der MDA - Funktionalität zur Verfügung. Weitere Informationen über Fujaba können unter [Fuja07] und [Klen99] eingesehen werden. Ein in Fujaba entwickeltes Applikationsmodell besteht aus Klassen- und Story- beziehungsweise Activity - Diagrammen, wobei jede Methode einer Klasse durch ein Story - Diagramm implementiert werden muss. Diese Diagramme werden nun anhand eines einfachen Beispiels erläutert: In Abbildung 4.1 wird ein Klassendiagramm mit zwei Klassen dargestellt. Links befindet sich die Klasse MainClass, welche über die Methode main() und die Variable var 13

17 4. Beispiele zur Anwendung der MDA 14 Abbildung 4.1: Fujaba - Klassendiagramm für die Klassen MainClass und Counter verfügt. Die main() Methode wird in Abbildung 4.3 als Activity - Diagramm dargestellt. Die Klasse Counter besteht aus einer Methode mit Namen inc() und der Variablen countvar. Die beiden Klassen sind durch die [1..1] Assoziation uses verknüpft. Abbildung 4.2: Activity - Diagramm für die Counter - Methode inc() Die Funktionen main() und inc() werden mittels Activity - Diagrammen erzeugt und verfügen über verschiedene States. Jede Funktion verfügt über eine Start - und eine Stop - Activity. Die Start - Activity stellt die Funktionsdeklaration dar, die Stop - Activity bezeichnet das Ende beziehungsweise den Return - Wert der Funktion. In beiden Activity - Diagrammen kommt eine so genannte NOP Activity ( No Operation Activity ) zum Einsatz, welche mit einem Bool schen Ausdruck und einer Else - Verknüpfung ausgestattet ist. Diese NOP Activities werden vom Model - Compiler frei interpretiert,

18 4. Beispiele zur Anwendung der MDA 15 das heißt, sie werden in ein passendes Kontrollflusselement umgewandelt. So wird das NOP Element in Abbildung 4.3 für die inc() Methode durch eine WHILE - Schleife ersetzt, das NOP Element in Abbildung 4.2 für die main() Methode durch eine passende IF - Verzweigung aufgelöst. Weiters verfügt die main() - Methode über zwei so genannte Storyboards, die in Abbildung 4.3 mit den Nummern 1 und 2 gekennzeichnet sind. Im Storyboard mit der Nummer 1 wird die Klasse Counter initialisiert. Im Storyboard mit Nummer 2 wird der Variablen var der Rückgabewert der Funktion inc() zugewiesen. Das NOP - Element der Methode ist mit dem Bool schen Ausdruck [var == 5] versehen, welches das Programm zur Terminierung führt, wenn der maximale Wert der Variablen var, in diesem Fall 10, erreicht wird. Die in Abbildung 4.2 dargestellte Methode inc() verfügt über Statements, welche die Variable countvar erhöhen und die Strings EVEN beziehungsweise ODD auf die Konsole ausgeben wenn der Wert der Variablen countvar eine gerade beziehungsweise ungerade Zahl ist. Abbildung 4.3: Activity - Diagramm für die MainClass - Methode main() Der von Fujaba generierte Source Code der beiden Funktionen wird in Anhang A dargestellt.

19 5 Zusammenfassung Durch den Ansatz der MDA ist es möglich den Zeit- und Kostenfaktor einer Entwicklung zu reduzieren sowie auch den Grad der Widerverwendbarkeit von vorhandenen Lösungen zu steigern. Des Weiteren wird die Langlebigkeit von Softwarelösungen gesteigert, da es aufgrund der vorhandenen Plattform unabhängigen Modellen (PIM) rasch möglich ist die vorhandene Lösung an neue Technologien anzupassen. Zusätzlich kann mit diesem Ansatz auch gut auf sich ändernde Anforderungen seitens des Auftraggebers reagiert werden, da es lediglich nötig ist die Anforderungen im CIM anzupassen und die nachfolgenden Modelle (PIM, PSM) erneut zu transformieren. Durch die Modellierung des zu realisierenden Softwaresystems auf unterschiedlichen Abstraktionslevels ist es möglich diese Modelle für die Kommunikation mit dem Auftraggeber zu nutzen. So kann beispielsweise die Vollständigkeit der Funktionalitäten anhand des PIM mit dem Auftraggeber abgesprochen werden. Durch das Generieren des Source-Codes durch Transformationen ist zusätzlich zur Zeitreduktion noch der Vorteil zu erwähnen, dass die Qualität des generierten Codes höher ist als von Source- Code der manuell erzeugt wird. Jedoch hat der Ansatz der MDA nicht nur Vorteile und somit werden nachfolgend einige Nachteile beschrieben. Derzeit befindet sich MDA noch in der Entwicklung und wie bereits erwähnt wird bezüglich der Definition und Sprache für die Transformationen noch nach einer standardisierbaren Lösung gesucht. Aus diesem Grund realisieren derzeitige MDA-Tools lediglich einen Bruchteil der Funktionalitäten welche die MDA 16

20 5. Zusammenfassung 17 spezifiziert. So ist beispielsweise nicht der gesamte Ablauf vom CIM bis hin zum Code enthalten oder die Codegeneration funktioniert nur semiautomatisch. Dies bedeutet, dass nur die Gerüste (Skeletons) der Modelle erzeugt werden, jedoch die eigentliche Logik der Anwendungen anschließend von einem Programmierer manuell implementiert werden muss. Wie im Beispiel zu sehen war ist die Programmierung mit xuml und im speziellen mit Fujaba mit erheblichem Aufwand verbunden der beim gezeigten Beispiel in keiner Relation zur Komplexität der erzeugten Applikation steht. Bei etwas komplexeren Applikationen ist somit für ungeübte Benutzer von der Verwendung von Fujaba abzuraten, wenn der Faktor Zeit eine wichtige Rolle spielt. Der erzeugte Code ist generell in Ordnung, beinhaltet jedoch zu viele Fujaba - proprietäre Statements. Die Frage, ob xuml auf einem anderen Level der Abstraktion operiert ist unseren Erfahrungen nach mit einem eindeutigen NEIN zu beantworten, da die Komplexität einer Anwendung in keinem Fall versteckt werden kann. Genau das Gegenteil ist bis dato der Fall, die Komplexität steigt durch die Verbindung von unüberschaubaren Sequenzdiagrammen, den darin enthaltenen Story - und Code - Elementen. Weiters muss die Frage xuml, just another OO Language? zum jetzigen Zeitpunkt mit JA beantwortet werden, da zum jetzigen Zeitpunkt xuml nur eine graphische Darstellung von Source - Code beinhaltet und wichtige Konzepte der MDA wie beispielsweise das PIM noch keine Verwendung finden können.

21 Literaturverzeichnis [Fran05] [Fuja07] [Graw02] [Klen99] [Mell02] Frankel, D.S.: Model Driven Architecture: Applying MDA to Enterprise Computing. Wiley Publishing Inc., Indianapolis, Fujaba Tool Suite Developer Team, University of Paderborn Software Engineering Group: Fujaba is a public domain Case Tool for UML. http: // Juli Graw, G. und Herrmann,P.: Verification of xuml Specifications in the context of MDA. Participant Proceedings of the Workshop in Software Model Engineering (WISME@UML 2002), Oktober Klen, T. et al.: From UML to Java And Back Again. Technischer Bericht trri , University of Paderborn, Paderborn, Germany, September Mellor, S.J. und Balcer, M.J.: Executable UML - A Foundation For Model- Driven-Architecture. Addison-Wesley, Munich, [MiMu03] Miller, J. und Mukerji, J.: MDA Guide version org/docs/omg/ pdf, [Muke01] Mukerji, J.: Model Driven Architecture (MDA). docs/ormsc/ pdf, [OMGI03] Object Management Group, Inc.: UML 2.0 OCL Specification [OMGI08a] Object Management Group, Inc.: OMG Meta Object Facility

22 Literaturverzeichnis 19 [OMGI08b] Object Management Group, Inc.: OMG Model Driven Architecture. http: // [OMGI08c] Object Management Group, Inc.: Unified Modeling Language [Rump02] Rumpe, B.: Executable Modeling With UML - A vision or a Nightmare? Issues & Trends of Information Technology Management in Contemporary Associations, Seiten , [Sole00] [StVo05] Soley, R.: Model Driven Architecture. ftp://ftp.omg.org/pub/docs/omg/ pdf, Stahl, T. und Völter, M.: Modellgetriebene Softwareentwicklung: Techniken, Engineering, Management. dpunkt.verlag, Heidelberg, 2005.

23 Abkürzungsverzeichnis CIM CWM Computation Independent Model Common Warehouse Metamodel Fujaba From UML to Java and back again MDA MDSD MOF Model Driven Architecture Model Driven Software Development Meta Object Facility NOP No Object OMG OCL PDM PIM PSM Objekt Management Group Object Constraint Language Platform Description Model Platform Independent Model Platform Specific Model QVT Query/View/Transformations UML XMI XML xuml Unified Modelling Language XML Metadata Interchange Extensible Markup Language Executable Unified Modelling Language 20

24 Anhang 21

25 A Methoden A.1 main() /** * UMLMethod : + main (): Void. */ public void main () { Counter counter = null ; boolean fujaba Success = false ; Object fujaba TmpObject = null ; try { fujaba Success = false ; // create object counter = new Counter (); // create link this. setcounter ( counter ); fujaba Success = true ; } catch ( JavaSDMException fujaba InternalException ) { fujaba Success = false ; } // try catch do { try { fujaba Success = false ; // bind counter : Counter 22

26 A. Methoden 23 counter = this. getcounter (); JavaSDM. ensure ( counter!= null ); } // 1 var = counter. inc (); fujaba Success = true ; } catch ( JavaSDMException fujaba InternalException ) { fujaba Success = false ; } // try catch } while (!( this. var == 10) ); return; A.2 inc() /** * UMLMethod : + inc (): Integer. */ public int inc () { // Statement this. countvar = this. countvar + 1; System. out. println ( this. countvar ); if (( this. countvar % 2) == 0) { System. out. println (" EVEN "); return this. countvar ; } else { System. out. println (" ODD "); return this. countvar ; } }

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

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

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 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

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

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

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

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

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

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

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

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

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

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

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 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

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08 Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements von Stephanie Wilke am 14.08.08 Überblick Einleitung Was ist ITIL? Gegenüberstellung der Prozesse Neuer

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

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

Produktskizze. 28. November 2005 Projektgruppe Syspect

Produktskizze. 28. November 2005 Projektgruppe Syspect 28. November 2005 Carl von Ossietzky Universität Oldenburg Fakultät II Department für Informatik Abteilung Entwicklung korrekter Systeme Inhaltsverzeichnis 1 Einleitung 3 2 Die graphische Oberfläche der

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

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung? Kapitelübersicht Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge Was bedeutet Objektorien+erung? ObjektorienCerte Analyse und Design die Objektmodellierung

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

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

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 mtr@is.informatik.uni-kiel.de 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.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

Sehr geehrte Faktor-IPS Anwender,

Sehr geehrte Faktor-IPS Anwender, März 2014 Faktor-IPS 3.11 Das neue Release Faktor-IPS 3.11 steht Ihnen zum Download zur Verfügung. Wir informieren Sie über die neusten Feautres. Lesen Sie mehr Sehr geehrte Faktor-IPS Anwender, Auf faktorzehn.org

Mehr

Use Cases. Use Cases

Use Cases. Use Cases Use Cases Eigenschaften: Ein Use Case beschreibt einen Teil des Verhaltens eines Systems aus externer Sicht (Formuliert in der der Fachsprache der Anwendung) Dies geschieht, indem ein Systemdialog beschrieben

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

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

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

Projektmanagement in der Spieleentwicklung

Projektmanagement in der Spieleentwicklung Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren

Mehr

Whitebox-Tests: Allgemeines

Whitebox-Tests: Allgemeines -Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

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

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava shota.okujava@isento.de 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 shota.okujava@isento.de www.isento.de Agenda Einführung Softwareentwicklungsprozess und MDSD Technologien und Werkzeuge Demo Entwicklung der Metamodelle

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

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

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen 9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

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

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

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun Java Projekt Schiffe Versenken mit GUI 1. Über den Autor: Name: Marija Matejic Matrikelnummer: 9352571 E-mail: marijamatejic@yahoo.com

Mehr

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen

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

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

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

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

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing. www.egiz.gv.at E-Mail: post@egiz.gv.at Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 8010 Graz / Austria Beschreibung und Bedienungsanleitung Werkzeug für verschlüsselte bpks

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

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) im Studiengang Wirtschaftswissenschaft

Mehr

SOMA Reverse Engineering

SOMA Reverse Engineering SOMA Reverse Engineering Univ.Prof. Dr. Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt Was versteht man unter Reverse Engineering? Techniken/Methoden Probleme VU Software Maintenance

Mehr

Prüfung Software Engineering I (IB)

Prüfung Software Engineering I (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 3 A Wintersemester 2014/15 Prüfung Software Engineering I (IB) Datum : 21.01.2015, 14:30 Uhr Bearbeitungszeit

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

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse

Mehr

SEQUENZDIAGRAMM. Christoph Süsens

SEQUENZDIAGRAMM. Christoph Süsens SEQUENZDIAGRAMM Christoph Süsens DEFINITION Das Sequenzdiagramm gibt Auskunft darüber: Welche Methoden für die Kommunikation zwischen ausgewählten Objekten zuständig sind. Wie der zeitliche Ablauf von

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing Outsourcing und Offshoring Comelio und Offshoring/Outsourcing INHALT Outsourcing und Offshoring... 3 Comelio und Offshoring/Outsourcing... 4 Beauftragungsmodelle... 4 Projektleitung vor Ort und Software-Entwicklung

Mehr

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

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

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper) Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10 Technische Informationen (White Paper) Inhaltsverzeichnis 1. Über dieses Dokument... 3 2. Überblick... 3 3. Upgrade Verfahren... 4

Mehr

Some Software Engineering Principles

Some Software Engineering Principles David L. Parnas: Some Software Engineering Principles Marco Oppel 30.06.2004 Seminar Software-Architektur Institut für Informatik Humboldt Universität zu Berlin 1 Problemstellung Software Engineering Multi-Personen

Mehr

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X SwissMacMeeting #1 26. Juni 2004 Messeturm Basel http://mac.naepflin.com Was ist das Ziel dieses Kurses? Starthilfe Einblick in die Möglichkeiten,

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

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0 Für den Einsatz in der Praxis Seite 2 Überblick 1. Ziele 2. Warum das alles? 3. Was ist UML 4. Diagrammarten 5. Umfeld Seite 3 1. Ziele 1. Ziele dieses

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

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 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

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

The B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode

The B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode The B Method B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode P. Schmitt: Formal Specification and Verification of Software p.1 The B Method

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

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Kapitel 2: Der Software-Entwicklungsprozess

Kapitel 2: Der Software-Entwicklungsprozess Wie konstruiert man Software? Kapitel 2: Der Software-Entwicklungsprozess SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (1/10) Der Software-Entwicklungs-Prozess Historisches 1960JJ adhoc Techniken

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

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

UML-DSLs effizient eingesetzt. Insight 07, 13.11.2007 Klaus Weber

UML-DSLs effizient eingesetzt. Insight 07, 13.11.2007 Klaus Weber UML-DSLs effizient eingesetzt Insight 07, 13.11.2007 Klaus Weber Einladung Domänenspezifische Sprachen (DSLs) sind notwendige Voraussetzung für den Erfolg einer MDA-Strategie. MID favorisiert statt der

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

UpToNet Workflow Workflow-Designer und WebClient Anwendung

UpToNet Workflow Workflow-Designer und WebClient Anwendung UpToNet Workflow Workflow-Designer und WebClient Anwendung Grafische Erstellung im Workflow-Designer 1 Grafische Erstellung im Workflow-Designer Bilden Sie Ihre Arbeitsvorgänge im Workflow-Designer von

Mehr

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13) software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

WEBINAR@LUNCHTIME THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

WEBINAR@LUNCHTIME THEMA: SAS STORED PROCESSES - SCHNELL GEZAUBERT HELENE SCHMITZ WEBINAR@LUNCHTIME THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ HERZLICH WILLKOMMEN BEI WEBINAR@LUNCHTIME Moderation Anne K. Bogner-Hamleh SAS Institute GmbH Education Consultant Training

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

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

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Historisch Kulturelle Informationsverarbeitung Hauptseminar: KLIPS 2.0 Dozent: Prof. Dr. Thaller Referent:

Mehr