SEMINARARBEIT. MDA Model Driven Architecture
|
|
- Pamela Kaufer
- vor 8 Jahren
- Abrufe
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) Vortrag im Fach Software Engineering II BA Mannheim / Fachrichtung Angewandte Informatik Torsten Hopp Gliederung Einleitung Motivation Grundzüge der MDA Ziele & Potenziale
MehrVortrag 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
MehrModel 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,
MehrModel 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
Mehr09.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)
MehrVorlesung 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)
MehrEinfü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
MehrObjektorientierte 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
MehrActiveCharts. 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
MehrModel 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.
MehrSoftware 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
MehrFachdidaktik 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,
MehrDas 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
MehrObjektorientierte 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
MehrSEA. 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
MehrModel 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
MehrEinfü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
MehrProzessbewertung 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
MehrPrinzipien 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........................
MehrWas 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
MehrProduktskizze. 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
MehrWhiteStarUML 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/
MehrAgile 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
MehrKapitelü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
MehrEinfÅ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
MehrSystemdenken 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
MehrEINFÜ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
MehrSehr 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
MehrUse 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
MehrCopyright 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
MehrArbeiten 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
MehrRobot 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
MehrDiplomarbeit. 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
MehrObjektorientierte 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)
MehrProjektmanagement 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
MehrWhitebox-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
MehrBinä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
MehrSEP 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
Mehr1 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.
Mehrschnell 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
MehrIst 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,
MehrBeispielhaft 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
Mehr4. 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 ++) {
MehrSWE5 Ü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
MehrWeb 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.
MehrSoftwareentwicklungspraktikum Sommersemester 2007. Grobentwurf
Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrKlausur 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-
MehrWintersemester 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
MehrAnwendungspraktikum 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
MehrEinfü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
MehrTTS - 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
MehrDr. 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??
MehrKlassenentwurf. 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
MehrUnified 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
MehrInhalt. 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
MehrDaniel 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
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrBeschreibung 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
MehrProgrammierkurs 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
MehrIT-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
MehrSOMA 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
MehrPrü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
MehrEs 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!
MehrObjektorientierter 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
MehrSEQUENZDIAGRAMM. 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
MehrSoftware 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)
MehrOutsourcing 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
MehrFormale 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
Mehretutor 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:
MehrSoftwaretechnik (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
MehrEin 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++,
MehrSuche 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
MehrObjektorientierte 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/
MehrUpgrade 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
MehrSome 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
MehrXcode/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,
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrGuido 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
MehrFachgebiet 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
MehrModellgetriebene 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
MehrINNOVATOR 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
MehrEinfü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
MehrThe 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
MehrJetzt 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
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
MehrProgrammieren 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
MehrKapitel 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
MehrModel 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
MehrEasyWk 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
MehrUML-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
MehrEs 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
MehrUpToNet 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
MehrProgrammierung 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
Mehr4. 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
MehrWEBINAR@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 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
MehrGrundlagen 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
MehrProjektmodell 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