Seminar Aktuelle Themen der Informatik

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Seminar Aktuelle Themen der Informatik"

Transkript

1 Fachhochschule Furtwangen Studiengang (Computer Networking) Seminar Aktuelle Themen der Informatik Thema: Model Driven Architecture Sommersemester 2006 am: vorgelegt von: Daniel Wehrle Oskar-Bier-Str Friedenweiler MDA by Daniel Wehrle 1/17

2 Inhaltsverzeichnis 1.MDA Gründe für Modelgetriebene Entwicklung MDA in der Theorie Was genau ist MDA Konzept der MDA Business Logik Erstellung in MDA Refactoring, Reverse Engeneering Wann macht generieren Sinn Weitere MDA Hilfs-Werkzeuge Tools Arten von Tools ArcStyler OpenArchitectureWare AndroMDA Zusammenfassung der Vor- und Nachteile von MDA Vorteile: Nachteile: Zukunft von MDA MDA by Daniel Wehrle 2/17

3 1. MDA 1.1. Gründe für Modelgetriebene Entwicklung In dem modernen Softwareentwicklungsprozess kommen in den letzten Jahren zunehmend Ingenieursmäßige Konzepte und Vorgehensweisen zum Einsatz. Dadurch ist auch das Design von Software zum Gegenstand der Kommunikation geworden. Um dieses vornehmlich in grafischen Modellen beschreiben zu können, wurde die Unified Modeling Languge (UML) entwickelt. Dennoch werden heute noch viele Projekte ohne oder mit geringem Einsatz an grafischer Notation für das Design durchgeführt. Dies liegt zum Teil am Entstehen eines Buches, beim Übergang von der grafischen Modellierung hin zur Implementierung im Code. Auch werden nach diesem Übergang zumeist alle Änderungen nur noch im Code festgehalten. Mit der Model Driven Architecture hat die OMG einen viel beachteten Ansatz vorgestellt, um dieses Problem zu lösen und Modelle über den gesamten Entwicklungsprozess hinweg nutzbar zu machen.[1] In dem IEEE Artikel [2] wird die bisherige Softwareentwicklung damit verglichen, als ob ein Chip-Entwickler, nachdem er das Layout erstellt hat, dieses wegwerfen würde, um dem Waverproduzenten dieses mündlich zu erklären, damit dieser die Waver negative aufgrund des Berichtes erstellen kann. Dabei ist die Model Driven Architecture sicher nicht der erste UML zum Code Ansatz, so gab es den Round-trip-Engineering Ansatz bereits vor MDA, welcher ebenfalls Abbildungsvorschriften, um vom Modell zum Quelltext zu gelangen einsetzt. Auch gab es schon Anfang der 90er diverse Codegeneratoren für spezielle Hersteller Frameworks. Diese hatten jedoch alle die Gemeinsamkeit, dass die Generierung sowie Transformierung nicht standardisiert war, und nur für ein spezielles Framework, mit einer speziellen Middleware eingesetzt werden konnte. Somit waren diese auf die beiden Hauptmotivationen der MDA nicht ausgelegt. Diese sind laut der Object Managment Group (OMG), welche die Model Driven Architecture standardisiert, Interoperabilität und Portabilität. ([3] S. 14) Herstellerunabhängigkeit und damit Interoperabilität soll durch die Standardisierung von Modellen und Transformationen erreicht werden. Auch soll eine Unabhängigkeit von den zugrundeliegenden Plattformen (Portabilität) erreicht werden. Einen der wichtigsten daraus hervorgehenden Vorteile verspricht man sich von einer verbesserten Wiederverwendung von Komponenten. Durch die MDA können diese unabhängig von der Plattform modelliert und somit auch entwickelt werden. Bisher war es bei einem Plattformwechsel beinahe unmöglich, die Applikation oder Teile der Applikation wiederzuverwenden, da der Code auch immer plattformspezifische Information enthält. Ein Austausch der Programmiersprache erschien noch unmöglicher, da die Anwendung nur in der entsprechenden Sprache ausgedrückt vorlag. Da MDA eine Wiederverwendung des Domain Modell ermöglichen soll, stellt dies zukünftig auch ein geringeres Problem dar. ([4] S. 7 ff.) MDA by Daniel Wehrle 3/17

4 Für den Anwender bedeutet dies einen höheren Investitionsschutz, durch die Wiederverwendbarkeit des von der Plattform unabhängigen Entwurf, welcher einfach für eine neue Zielplattform generiert werden kann. Da so bei einem Plattformwechsel das von der Plattform unabhängige Modell nicht verloren geht, sondern daraus ein Großteil des Codes für die neue Plattform generiert werden kann. So sagte der OMG-Chef Soley auf der OOP 2004 in München, dass MDA eine Reaktion auf den anhaltenden Wandel der Softwareinfrastruktur sei (Corba, Java,.Net, XML, Web-Services etc.), welche sich mit herkömmlichen Mitteln nicht mehr bewerkstelligen lassen. ([5] S. 18 f.) Generell lassen sich auch neue Verfahren in der Softwareentwicklung leicht mittels MDA in bestehende Projekte integrieren. So können zusätzliche Dateien oder Statements für neue Entwicklungskonzepte leicht zusätzlich in einen bestehenden Code generiert werden, ohne die benötigten Änderungen von Hand vornehmen zu müssen. Zum Beispiel kann so die Service Oriented Architecture oder die Aspekt Orientierte Programmierung mittels des Generators in das bestehende Projekt mit integriert werden, ohne alle Klassen und Konfigurationen einzeln anpassen zu müssen. Solle dies einmal nicht den erhofften Nutzen bringen, kann es über das Verwenden des alten Generators auch genau so einfach wieder entfernt werden. Abbildung 1: Die Probleme der Wiederverwendung MDA by Daniel Wehrle 4/17

5 1.2. MDA in der Theorie Was genau ist MDA MDA ist eine Standardisierungsinitziative der Object Managment Group (OMG), welche auf der Idee beruht, dass Modellierung eine bessere Weise ist, um Anwendungen zu entwickeln. Außerdem ist sie ein Zertifikat für Produkte, welche diesen Standard umsetzen und eine Reihe von Techniken und Technologien, die mit diesem Standard verbunden sind. ([4] S. XX) MDA basiert auf Standards wie der Unified Modeling Language (UML) und der XML Metadata Interchange (XMI). Vieles von ihr ist jedoch noch Zukunftsmusik, der grundsätzliche Ansatz über das Architekturdesign zur konkreten Implementierung zu kommen, findet jedoch in den ersten Projekten Anklang. ([5] S. 18 f.) Es existieren auch andere Abkürzungen wie MDD (Model Driven Design), DDD (Domain Driven Design) oder MDSD (Model Driven Software Development). Hierbei handelt es sich um ähnliche Konzepte wie bei der MDA, welche sich jedoch zumeist nicht an die Spezifikation von der OMG halten. Meist dient nicht nur UML als Grundlage für die Generierung, sondern es kommen auch herstellerspezifische Erweiterungen oder eigens für die Tools entwickelte Modelle und Meta Modelle zum Einsatz. [6] Und [3] Konzept der MDA In der Model Driven Architecture wird zwischen Modellen mit verschiedenen Detailierungsgraden unterschieden: CIM (Computation Independent Model) für die umgangssprachliche Beschreibung der Anwendung. PIM (Platform Independent Model), von der Zielplattform unabhängiges Model der Anwendung. PSM (Platform Specific Model), Model welches auch Informationen speziell für die Zielplattform beinhaltet. Quellcode, die Zielplattform MDA by Daniel Wehrle 5/17

6 Abbildung 2: Vom CIM zum Code Das CIM findet dabei in der Literatur nicht immer Erwähnung, da es sich hierbei nur um Entwürfe handelt, welche für die Codegenerierung nicht oder nicht direkt verwendet werden können. Dies sind zum Beispiel Use Cases oder andere Dokumente welche die Benutzererwarungen in einem sehr sprachlichen Stil erfassen. Das Plattform Independent Model hingegen ist das Zentrale Model in der MDA, da es das von der Zielplattform unabhängige Design repräsentiert. Dadurch wird eine Wiederverwendung des PIMs für eine andere Plattform ermöglicht. Das Plattform Specific Model soll durch die Nutzung von automatisierten Abbildungen aus dem PIM gewonnen werden. Dies soll ein Verlassen der Werkzeugumgebung verhindern und das Model mit dem Quelltext synchron halten. Im Endeffekt steht im PSM das gesamte Wissen über die Zielplattform zur Verfügung. Jedoch reichen dazu die im PIM gegeben Informationen nicht aus, so dass das generierte PSM noch verfeinert werden muss. Da Regeln für die Transformation vom PIM zum PSM schwer zu definieren sind, und das Reverse Engineering noch nicht standardisiert ist, verzichten so gut wie alle MDA Werkzeuge auf die explizite Erzeugung eines PSM Modells. [1] Oftmals werden deshalb auch plattformspezifische Merkmale über Annotationen an die Modellelemente im PIM geheftet, welche dann von den entsprechenden Generatoren verarbeitet werden. Dem Transformationsschritt vom PIM zum PSM kommt dabei jedoch eine entscheidende Bedeutung zu. Die Qualität der Transformation beeinflusst direkt die Qualität des Endproduktes. Daher fällt ein wesentlicher Teil des Programmieraufwandes innerhalb eines durch MDA unterstützten Projektes für die Erstellung und Anpassung des MDA by Daniel Wehrle 6/17

7 Generators an. Dieser zusätzliche Aufwand macht sich aber zumeist nur langfristig bezahlt, wenn man mehrere Projekte auf der gleichen Basis abwickelt und so den einmal erstellten Generator wiederverwenden kann. [6] Abbildung 3: Design Phasen MDA Durch diese Aufteilung wird der Abstraktionsgedanke in der Softwareentwicklung konsequent weiter geführt. Beispielsweise stellte des C++ Code eine höhere Abstraktion als Assembler dar, bei dem sich die Plattform (in diesem Fall der Prozessor) einfach durch den Austausch des C++ Compilers wechseln lässt. Durch MDA geht man einen Schritt weiter und entwickelt zunächst ein Modell anstelle von Code, welches zunächst von der Hardware- und Softwareumgebung unabhängig ist (Platform Independent Model) und als Vorlage für die Codegenerierung dient. [7] Einige gehen sogar so weit und erzeugen aus dem Modell direkt die entsprechenden ausführbaren Dateien. Das Problem stellt in diesem Fall zumeist die Erzeugung der Business Logik dar. Darunter versteht man die Teile des Programmes, welche sich nicht in dem abstrakten UML Modell festhalten lassen, sondern für das jeweilige Projekt sehr individuelle Eigenschaften aufweisen. In der zunehmenden Abstrahierung sehen viele eine Lösung für die immer komplexer werdenden Softwareprojekte, bei denen heute schon bis zu 100 Entwickler keine Seltenheit mehr sind. Da dieser Trend sich auch weiter fortsetzen wird, könnte eine weitere Abstrahierung dank MDA ein Weg sein, um die Erstellung von lauffähigen Programmen auch weiterhin zu gewährleisten. [6] MDA by Daniel Wehrle 7/17

8 Abbildung 4: Höhere Abstraktion geht mit der zeitlichen Entwicklung von Programmiersprachen einher Business Logik Erstellung in MDA Die Geschäftslogik wird direkt in den Operationen oder den dynamischen Diagrammen (State-, Activity- und Collaborationdigrammen) hinterlegt. Innerhalb des Modells kann diese in den Operationen mittels einer herstellerspezifische Action Sementic Language (ASL) oder über programmiersprachenspezifischen Syntax erfolgen. Es gibt jedoch auch die Möglichkeit, den Buisnesscode nicht im Modell, sondern im geschützten Bereich des Codes zu hinterlegen. [7] Beim Umgang mit manuell erzeugten Erweiterungen an den generierten Artefakten, gibt es unterschiedliche Ansätze. Bei einigen Tools muss man von den generierten Klassen ableiten oder delegieren, häufig werden auch geschützte Bereiche, meist als protected areas bezeichnet, eingesetzt Refactoring, Reverse Engeneering Das Erstellen von Artefakten aus einem Modell wird als Forward Engineering (FE) bezeichnet. Wenn Änderungen zurück ins Modell übernommen werden, so bezeichnet man dies als Reverse Engeneering (RE). Wird beides zusammen verwendet, spricht man von Roundtrip Engeneering (RTE). Da der Entwickler zumeist nicht alle Tätigkeiten im Modell durchführen kann, sollte RE unterstützt werden, damit er nicht immer gezwungen ist, Änderungen zuerst im Modell durchzuführen. Leider sind solche Rückabbildungsvorschriften sehr schwer zu finden und zu definieren, insbesondere wenn man nicht jede unnötige Kleinigkeit mit ins Modell aufnehmen MDA by Daniel Wehrle 8/17

9 will. Deshalb wird das Reverse Engeneering von den wenigsten Tools unterstützt. Auch hat noch kein Hersteller einen Weg gefunden, dem Benutzer die Möglichkeit zu geben, diese Vorschriften selbst anzupassen Wann macht generieren Sinn Generierung von Artefakten mach dann Sinn, wenn die Entwicklung innerhalb eines Projektes durch einen festen Prozess vorgegeben ist, bei welchem zunächst ein UML Modell erstellt wird und dann darauf aufbauend die Software entwickelt wird. In diesem Fall bietet die Generierung der daraus erzeugbaren Artefakte erhebliche Vorteile. Diese müssen nicht mehr von Hand implementiert werden, außerdem werden Abbildungsfehler werden ebenfalls vermieden. Probleme können nun auftreten, wenn die weiteren Änderungen lediglich im Code stattfinden. So macht in diesem Fall eine weitere Verwendung von MDA keinen Sinn, insbesondere wenn das MDA Tool kein Reverse Engineering unterstützt. Wenn der Entwicklungsprozess jedoch so angelegt ist, dass eine Änderung zuerst im Code erfolgt, dann stellt auch das Fehlen von Reverse Engeneering Methoden kein Problem dar. Dies hängt jedoch auch von der Einstellung der Mitarbeiter ab, ob diese bereit sind, Änderungen zuerst im Modell vorzunehmen, um sie dann generativ in den Code zu übernehmen. Nicht zuletzt wird hierbei jedoch auch bei jeder Abwandlung des Modells ein Perspektivenwechsel innerhalb der Entwicklung notwendig. Wenn der generierte Code jedoch zumindest so abgewandelt werden kann, dass Änderungen durch eine neue Generierung nicht verloren gehen, dann kann zumindest eine spätere Verfeinerung des Modells ermöglicht werden. Jedoch kann es auch sein, dass bei der Generierung entstandene Metainformationen in den Artefakten von der Entwicklungsumgebung überschrieben oder gelöscht werden, und somit für den Generator verloren gehen. Dies kann zum Beispiel bei der Kennzeichnung geschützter Bereiche auftreten, und die Verwendung von diesen innerhalb bestimmter Dateien verhindern. Da sich durch die Model Driven Architecture der Entwicklungsschwerpunkt von dem Sourcecode in das UML Modell verlagert, ist es notwendig, dass sich das Team in UML sehr gut zurecht findet Weitere MDA Hilfs-Werkzeuge Um sicherzustellen, dass ein Modell sich auch in ein anderes Modell bzw. Code übersetzen lässt, ist in der Model Driven Architecture die Modellverifizierung vorgesehen. Hierbei kann es sich um statische, syntaktische und semantische Prüfungen handeln, manche Tools ermöglichen auch die Erweiterung der Verifikation über Scriptsprachen oder spezielle Modellierungen. Wenn möglich soll die Generierung nicht statisch erfolgen sondern erweitert werden können, damit der Generator an die individuellen Projektanforderungen angepasst werden kann. Wie und ob diese Erweiterungen möglich sind, hängt von den einzelnen Tools ab. Einige bieten eine eigene Modellierungssprache um Generatoren zu entwickeln, andere setzen hier auf Skriptsprachen oder Templates. Einige Tools gehen MDA by Daniel Wehrle 9/17

10 auch davon aus, dass die Information über die Abbildung von Elementen in einen Code innerhalb des MetaModells anzusiedeln sind. Diese bieten deshalb die Möglichkeit einer Erweiterung oder Änderung des Metamodells an. Einige Tools ermöglichen das Erstellen eines Modell Reports, welcher zur Dokumentation der Entwicklung sowie der Generierung dienen kann.[7] 1.3. Tools Arten von Tools Generell kann man drei verschiedenen Arten von MDA Tools unterscheiden: Vollständige MDA Engeens X-UML Tools/Engeens Codegeneratoren Die Gruppe der Vollständigen MDA Tools beinhaltet immer ein UML Tool und einen Generator. Zumeist sind auch Generatoren sowohl für Model 2 Code als auch für Model 2 Model enthalten. Auch unterstützen diese Tools oftmals Roundtrip Engeneering. Manche von diesen Tools sind bereits vollständig in eine IDE integriert um dem Benutzer eine möglichst einheitliche Entwicklungsoberfläche zu bieten und ein ständiges Springen von einer zur anderen Anwendung zu ersparen. Beispiele dafür sind: Ameos von Aonix Real-Time Studio von Artisan Rapsody von I-Logix TAU von Telelogic Rational Software Architect von IBM Optimal J von Compuware Together von Borland ArcStyler von Interactive Objects MetaEdit+ von MetaCase ObjectIF von MicroTool Innovator von MID X-UML Tools führen das Modell zumeist direkt in einer Virtuallen XML-Maschine aus oder generieren direkt den ausführbaren Bytecode. Deshalb besitzen sie zumeist eine eigene ASL Syntax, um die Businesslogik zu spezifizieren. Beispiele hierfür sind: iuml von Kennedy Carter Cassandra xuml von KnowGravity OpenMDX von Omex Codegeneratoren sind meist recht einfach gestrickte Open Source Tools, welche das Verwenden von verschiedenen Template oder Scripten zur Generierung aus verschiedenen UML Tools ermöglichen. Dazu wird zumeist ein XMI Importer zum Import der Modelle bereit gestellt, auf welchem eine vom User spezifizierte Model 2 Code Transformation abläuft. Dies Tools verzichten zumeist vollkommen auf die MDA by Daniel Wehrle 10/17

11 Erstellung eines PSMs, der Code wird von dem Generator direkt in den Sourcecode umgewandelt. Beispiele hierfür sind: Open ArchitektureWare von b + m Informatik (open source) SmartGenerator von BITPlan XCoder von dem Xcoder-Project (open source) Iqgen von InnoQ AndroMDA (open source) ArcStyler Der ArcStyler ist eine Softwareentwicklungsplattform für die automatisierte Generierung von Softwareartefakten aus UML-Modellen, basierend auf der Model Driven Architecture. Er wird von der Firma Interactive Objects Software GmbH in Freiburg entwickelt. Der ArcStyler ist in Java geschrieben, um Plattformunabhängigkeit zu erreichen. Leider wurde dadurch eine hohe Anforderung an den Arbeitsspeicher, sowie die Prozessorleistung notwendig. Auch muss man zumeist lange auf das Laden und Generieren von Modellen warten. Der ArcStylers ist auf den gesamten Lebenszyklus eines Enterprise Softwaresystems fokussiert: Von Analyse, Entwurf, Entwicklung bis hin zur Verteilung und den Tests. Als UML-Modellierungswerkzeug ist Magic Draw der Firma No Magic integriert. Die interne Struktur des ArcStylers wird durch Abbildung 3 grob skizziert. Der ArcStyler besteht aus 3 Modulen, diese sind: Abbildung 5: Interner Aufbau des ArcStyler Ein Modell Repository, welches den Zugriff auf das Modell über MOF oder UML erlaubt. Dem integrierten Modellierungstool, Magic Draw von No Magic. Einer MDA Engine, welche das Einbetten einer MDA-Cartridge ermöglicht. Die konkrete Generierung übernimmt dann diese eingebettete MDA-Cartridge. MDA by Daniel Wehrle 11/17

12 Verbunden werden diese durch den Tool Adapter Standard (TAS). Die Entwicklung von eigenen MDA-Cartridges wird durch die Cartridge Architecture (CARAT) ermöglicht. CARAT wird zur Modellierung von MDA-Cartridges und der anschließenden automatischen Generierung der Implementierung der MDACartridges aus den Modellen eingesetzt. Somit wird auch für die Erstellung von Transformationen der MDA-Ansatz verwendet und es können Konzepte wie Wiederverwendung und Spezialisierung von MDA-Cartridges genutzt werden. Die Cartridges selber werden nach Jpython generiert. In den generierten Dateien muss noch die konkrete Syntax ergänzt werden um die Generierung der Artefakte zu ermöglichen. Der ArcStyler ist von Haus aus mit folgenden Cartridges ausgestattet: Java EJB 1.1 / 2.0 IBM WebSphere, BEA WebLodig, JBoss C#.Net Java Accessors Auf die explizite Generierung eines PSM wird verzichtet, die plattformspezifischen Informationen werden mittels Marksets im Modell hinterlegt. Diese werden als UML Tagged Values gespeichert. Diese Informationen werden bei der Generierung für eine spezielle Plattform zur Generierung genutzt. Der ArcStyler ist eines der ersten Tools, welches einen Prototyp für die Query View Transformation besitzt. Hierbei handelt es sich um einen noch nicht vollständig spezifizierten und verabschiedeten OMG Standard für die Modell zu Modell Generierung OpenArchitectureWare OpenArchitectureWare ist ebenfalls ein Framework, zur Modell getriebenen Entwicklung. Dabei existieren keine vorgefertigten Cartridges (zur Erzeugung von beispielsweise C# Code) Applikationen, sondern nur das reine Framework zur Generierung von Applikationen mittels einem vorhandenen Metamodell. Die Cartridges müssen entweder gekauft oder selbst entwickelt werden. Der Ursprung des Projektes ist eine Entwicklung der b+m Informatik AG, welche den Open ArchitectureWare auch weiterhin kommerziell vermarktet. Deshalb stellt b+m auf ihren Web-Seiten weitere Artikel rund um das Open ArchitectureWare Framework zu Verfügung. An der Projektentwicklung nehmen sowohl Entwickler aus dem reinen Open- Source Bereich, als auch Entwickler von b+m teil. Das Open ArchitectureWare Framework arbeitet mit dem Ansatz, dass zu einem Modell immer ein Metamodell existiert. Ziel ist es dabei mittels des validen Metamodells, Code zu generieren. Der Ansatz ist vergleichbar mit dem Ansatz den UML verfolgt. Das UML Modell selber definiert sich als Metamodell, während das eigentliche Applikationsmodell ein Modell ist. Deshalb findet der größte Teil der Generierung in dem Metamodell statt, da dieses die Abbildungsregeln des repräsentierten Elements in den Source Code kennt und schreibt. MDA by Daniel Wehrle 12/17

13 Als Eingabedaten verwendet der Generator ein Modell. Dieses wird von einem Parser geparst; der daraus entstehende Parserbaum wird dann vom Metamodellinstantiator unter Verwendung des konfigurierbaren Metamodells instantiiert. Das Eingabeformat ist dabei austauschbar, da verschiedene Parser im Generator verwendet werden können. Bei Open ArchitectureWare kommt dabei XMI zum Einsatz, welches zur Beschreibung von UML Modellen in Textform und zum Diagrammaustausch verwendet werden kann. Nach der Instantiierung des Metamodells kann, basierend auf der Metamodellinstanz, die eigentliche Codegenerierung stattfinden. Als Benutzer des Open ArchitectureWare Frameworks muss man nun das UML Metamodell an seine eigenen Bedürfnisse anpassen. Dies geschieht zum Beispiel mittels Stereotypen und Tagging. Wird später ein Modell geparst, werden die aufgetretenen Stereotypen (also aus dem UML Metamodell verfeinerte Klassen) gegen das entsprechende Element im Metamodell zu instantiieren versuchen. Damit die richtige Klasse instantiiert wird, gibt es eine Metamap Tabelle, die die entsprechenden Stereotypen bestimmten Klassen zuordnet. Diese Konfiguration ist in einer XML Datei enthalten und kann innerhalb von dieser angepasst werden. Gibt es für ein bestimmten Stereotyp keine Klasse, wird die nächst höhere Klasse im Vererbungsbaum instantiiert (z.b. Class statt BesondereClass, wenn BesondereClass Stereotyp ist und Class erweitert). Der Codegenerierungsprozess selber benutzt Templates um den Code zu erzeugen. Als Templateengine wird dabei XPand benutzt. Diese wurde von b+m im Zuge von Open ArchitectureWare entwickelt. Ein Template besteht grundsätzlich aus zwei Aspekten: Dem Code, der über die Metamodellinstanz iteriert, sowie dem zu generierenden Quellcode, gegebenenfalls mit Zugriff auf Attribute des Metamodells. Der OpenArchitectureWare ist vollständig in Eclipse integriert. Dazu existieren mehrere Plug ins um zum Beispiel die benötigten Templates anpassen zu können. Die Generierung selbst wird mittels Apache ANT gesteuert und ausgeführt. Aufgrund der ANT Eclipse Plug ins ist ein Verlassen der IDE dazu nicht notwendig AndroMDA Bei AndroMDA handelt es sich um ein in Java entwickeltes MDA-Tool, welches als Open-Source-Projekt unter der BSD-Lizenz veröffentlicht wird. Die Dokumentation erfolgt ausschließlich über die offizielle Homepage. Zusätzlich existieren wie bei OpenArchitectureWare kostenpflichtige Beratungs- und Schulungsangebote von den Entwickler bereitgestellt. Das Projekt beschäftigt sich bisher nur mit der Entwicklung eines Generatorkerns, eine integrierte Entwicklungsumgebung oder ein integriertes Modellierungstool existieren nicht. Kernkomponente von AndroMDA ist ein Template-basierter Generator, der aus UML- Modellen Quellcode für beliebige Plattformen und Programmiersprachen generiert. Hierzu werden ebenfalls UML-Modelle mittels XMI eingelesen. Die Anpassung der Codegenerierung an eine spezifische Plattform erfolgt mittels Cartridges, aus JAR-Archive, welche Java-Klassen enthalten, die Metafacades darstellen, sowie Templates, die als Schablonen für den zu generierenden Quellcode dienen. MDA by Daniel Wehrle 13/17

14 AndroMDA kommt dabei als Plugin in das Projekt Build Management Tools Maven daher. Als Alternative kann auch das nicht vollständig unterstützte Apache Ant benutzt werden. Die Standard Java XML Parsing Technologie wird zum Einlesen der XMI Modelle verwendet. Die Template Engine Velocity stellen hingegen das Kernstück der Code Erzeugung dar, der Code wird deshalb aus Velocity Templates generiert. AndroMDA verfolgt das Konzept, manuelle Ergänzungen nicht direkt im Generat vorzunehmen. Stattdessen soll von jeder generierten Klasse eine Klasse mit manuellem Code abgeleitet werden (dafür wird einmalig eine Vorlage generiert), um den manuellen Code zu isolieren und zu schützen Zusammenfassung der Vor- und Nachteile von MDA Vorteile: Verbesserung des Entwicklungsprozesses. Kein Bruch in einem Entwicklungsprozess, da diese von der Erstellung einer Spezifikation über ein Modells hin zum Code erfolgt. Die automatisch Generierung von Code direkt aus dem Modell, beschleunigt die Entwicklung von Softwareprojekten. Reduktion der Fehler in der Entwicklung. Der generiertete Code weist keine Fehler auf. Redundanzen innerhalb von Artefakten werden (z.b. zwischen den Deploymentdiscriptoren und den Klassen) durch Modell und Generierung immer synchron gehalten. Investitionsschutz: Durch stark erhöhte Wiederverwendbarkeit durch die Unabhängigkeit von der Plattform (Middleware, Betriebssystem, Hardware) Nachteile: Noch nicht ausgereifte Technologie Durch die ungenügende Spezifizierung von XMI ist eine Übertragung des Modells von einem zum nächsten zumeist nur schwer möglich. Während der Implementierungsphase muss zumeist ständig zwischen Modell und Code hin und her geschaltet werden, um Änderungen vorzunehmen. Dies wird sich erst verbessern, wenn die MDA Tools vollständig in die Entwicklungsumgebung integriert werden. Einige Diagramme und Modell-Elemente, welche für MDA gebraucht werden, sind in UML 1.x noch nicht vorhanden. Da UML 2.0 jedoch von den wenigsten Tools unterstützt wird, können aktuell wichtige Abbildungen im Modell noch nicht vorgenommen werden. Probleme durch fehlendes Round Trip Engeneering MDA by Daniel Wehrle 14/17

15 Der bereits implementierte Sourcecode kann verlorengehen, wenn man das System ummodelliert oder Teile neu designt werden. Ein MDA Projekt muss zumeist als solches gestartet werden, bei einer späteren Umstellung gehen zumeist Teile des Source Codes verloren. Vergrößerung des initialen Projektaufwandes durch: Vergrößerung des Lernaufwandes, um mit der Model Driven Architecture umgehen zu können. Die nötige Entwicklungszeit, um speziell für das Projekt eine Cartridge zu erstellen, kommt zur eigentlichen Entwicklungszeit hinzu Zukunft von MDA Mit der Freigabe von UML 2.0 und einer immer breiter werdenden Unterstützung von der neuen Spezifikation, werden auch die Möglichkeiten zur Code Generierung immer besser. Auch werden die Entwicklungsprozesse immer weiter verbessert, so dass in naher Zukunft fast immer zuerst ein Modell und daraus der Code erstellt wird, was einen Einsatz der MDA stark vereinfachen wird. Experten schätzen sogar, dass in nicht mehr all zu weit entfernter Zukunft die UML / MDA Tools die heutigen Programmiersprachen komplett ablösen und ersetzen werden. So wie bereits Tools im Chip- und Elektronik-Entwicklungs-Umfeld existieren, direkt die Softwareentwicklung übernehmen werden. Siehe hierzu [2] Um dieses Ziel zu erreichen, wird derzeit hart an Mitteln zur Realisierung von Modell zu Modell Transformation gearbeitet, sowie an Techniken zum Round-Trip-Engeneering geforscht und entwickelt. MDA by Daniel Wehrle 15/17

16 Literaturverzeichnis [1] Sturm, Thorsten; Bogner, Marko, Softwareentwicklung auf Basis der Model Driven Architecture, 2003, HMD Praxis der Wirtschaftsinformatik, 231 [2] Uhl, Axel, MDA is ready fort Prime Time, 2003, IEEE Computer Society, 3/2003 [3] Völler, Markus; Stahl, Thomas, Modellgetriebene Softwareentwicklung, 2005, 1. Auflage, dpunkt, Heidelberg [4] Mellor, Stephen J.; Scott, Kendall; Uhl, Axel; Weise, Dirk, MDA Distilled, 2004, 1. Auflage, Addison-Wesley, Bosten [5] Unbekannt, MDA, neuer Ansatz soll Entwicklung effektiver machen, 2004, Computer Woche, 5/2004 [6] Zockoll, Guido, Angetrieben, MDA: Schon da gewesen oder wirklich neu?, 2005, ix, 8/2005 [7] Merkle, Bernhard, Designermodelle, MDA: Überblick über die Tool-Landschaft, 2005, ix, 5/2005 MDA by Daniel Wehrle 16/17

17 Abbildungsverzeichnis Abbildung 1: Die Probleme der Wiederverwendung... 4 Abbildung 2: Vom CIM zum Code... 6 Abbildung 3: Design Phasen MDA...7 Abbildung 4: Höhere Abstraktion geht mit der zeitlichen Entwicklung von Programmiersprachen einher...8 Abbildung 5: Interner Aufbau des ArcStyler MDA by Daniel Wehrle 17/17

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

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

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

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

Mehr

Model Driven Architecture (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

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

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

Mehr

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

MDA MDA mit mit Open-Source-Software Eine Eine Bestandsaufnahme MDA MDA mit mit Open-Source-Software Eine Eine Bestandsaufnahme Gerhard Wanner (wanner@hft-stuttgart.de) Stefan Stefan Siegl Siegl (s.siegl@novatec-gmbh.de) Agenda Model Driven Architecture (MDA) Einführung/Übersicht/Motivation

Mehr

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

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

Mehr

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

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

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

VL2: Softwareprojekt - Anforderungsanalyse. Inhalt. 1. Struktur eines Softwareprojektes

VL2: Softwareprojekt - Anforderungsanalyse. Inhalt. 1. Struktur eines Softwareprojektes Dozent: G.Döben-Henisch (Version vom 16.April 2005) PPmP VL2 VL2: Softwareprojekt - Anforderungsanalyse Inhalt 1. Struktur eines Softwareprojektes 2. Anforderungsanalyse 1. Struktur eines Softwareprojektes

Mehr

Referenzarchitekturen und MDA 1

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

Mehr

Herausforderung: Entwicklungsmethodik und technisches Umfeld

Herausforderung: Entwicklungsmethodik und technisches Umfeld Model Driven Software Development Herausforderung: Entwicklungsmethodik und technisches Umfeld Referent: Christoph Schmidt-Casdorff Seite 2 / 42 Inhaltsverzeichnis 1. Werkzeuglandschaft 1.1 Language Workbench

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

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

Mehr

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

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

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

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

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

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA)

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA) UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA) IBM Software Group, Rational Austria 2011 IBM Corporation Agenda Was ist MDA und welche Probleme

Mehr

Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009

Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009 Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009 Gliederung 1. Generative Programmierung 2. Möglichkeiten und Einsatzgebiet 3. Prozess / Tools 4. Zusammenfassung 19.03.2009 GENERATIVE PROGRAMMIERUNG

Mehr

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

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

Mehr

Comparing Software Factories and Software Product Lines

Comparing Software Factories and Software Product Lines Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich

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

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

MODELLGETRIEBENE SOFTWAREENTWICKLUNG: ALLES UML, ODER?

MODELLGETRIEBENE SOFTWAREENTWICKLUNG: ALLES UML, ODER? 1 2 MODELLGETRIEBENE SOFTWAREENTWICKLUNG: ALLES UML, ODER? Bei modellgetriebener Softwareentwicklung werden aus kompakten Modellbeschreibungen lauffähige Softwareprogramme generiert. Solche Modellbeschreibungen

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

Generatives Programmieren

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

Mehr

10. Modellgetriebene Entwicklung Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

10. Modellgetriebene Entwicklung Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 10. Modellgetriebene Entwicklung Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

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

Modellgetriebene Softwareentwicklung

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

Mehr

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

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

Mehr

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

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher 729631 745097 736477 745011 741297 Inhalt Schlussbewertung... 3 Bewertung

Mehr

WIRTSCHAFTSINFORMATIK

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

Mehr

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN Mathias Slawik, WI (M), 3. FS Aktuelle Themen der Wirtschaftsinformatik, HTW Berlin, WS 10/11 Gliederung 2 Methode

Mehr

Graphische Modellanalyse am Beispiel von Geschäftsprozessmodellen unter Verwendung der Graph Markup Language (GraphML)

Graphische Modellanalyse am Beispiel von Geschäftsprozessmodellen unter Verwendung der Graph Markup Language (GraphML) HOCHSCHULE HEILBRONN Hochschule für Technik Wirtschaft Informatik Studiengang Electronic Business (EB) Diplomarbeit (280000) Graphische Modellanalyse am Beispiel von Geschäftsprozessmodellen unter Verwendung

Mehr

MDA-Praktikum, Einführung

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

Mehr

Anforderungsmanagement

Anforderungsmanagement Gerhard Versteegen (Hrsg.) Alexander Heßeier Colin Hood Christian Missling Renate Stücka Anforderungsmanagement Formale Prozesse, Praxiserfahrungen, Einführungsstrategien und Toolauswahl Springer Inhaltsverzeichnis

Mehr

Grundlagen Software Engineering

Grundlagen Software Engineering Grundlagen Software Engineering Rational Unified Process () GSE: Prof. Dr. Liggesmeyer, 1 Rational Unified Process () Software Entwicklungsprozess Anpassbares und erweiterbares Grundgerüst Sprache der

Mehr

Evaluation of Database Design and Reverse Engineering Tools for a Large Software System

Evaluation of Database Design and Reverse Engineering Tools for a Large Software System Evaluation of Database Design and Reverse Engineering Tools for a Large Software System Anne Thomas TU Dresden Dr. B. Demuth Pre Press GmbH (Dresden) T. Reuter Gliederung Einleitung Vorgehensweise Kontext

Mehr

Modellgetriebene Softwareentwicklung (Model Driven Software Development - MDSD) SS 2014

Modellgetriebene Softwareentwicklung (Model Driven Software Development - MDSD) SS 2014 Modellgetriebene Softwareentwicklung (Model Driven Software Development - MDSD) SS 2014 Wahlpflichtfach (2 SWS) für Bachelor Andreas Schmidt Einführung/Organisation 1/19 Ziele der Vorlesung Vorstellung

Mehr

Model Driven SOA. < J Springer. Anwendungsorientierte Methodik und Vorgehen in der Praxis. Gerhard Rempp Mark Akermann Martin Löffler Jens Lehmann

Model Driven SOA. < J Springer. Anwendungsorientierte Methodik und Vorgehen in der Praxis. Gerhard Rempp Mark Akermann Martin Löffler Jens Lehmann Gerhard Rempp Mark Akermann Martin Löffler Jens Lehmann Model Driven SOA Anwendungsorientierte Methodik und Vorgehen in der Praxis Mit Illustrationen von Martin Starzmann < J Springer Inhaltsverzeichnis

Mehr

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

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

Mehr

objectif / SOA /.NET Inhalt Technologien ObjectiF Beispiel Vergleich: ObjectiF Rational Rose Quellenverzeichnis 20.01.2008 Christian Reichardt 2 Technologien 20.01.2008 Christian Reichardt 3 Methodenaufruf

Mehr

Aktuelle Fortschritte von MDAbasierten Entwicklungsansätzen im Bereich Fahrerassistenzsysteme

Aktuelle Fortschritte von MDAbasierten Entwicklungsansätzen im Bereich Fahrerassistenzsysteme Fakultät Informatik Institut f ür Angewandte Inf ormatik, Prof essur TIS Aktuelle Fortschritte von MDAbasierten Entwicklungsansätzen im Bereich Fahrerassistenzsysteme Hauptseminar Technische Informationssysteme

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

37. Werkzeuge für die Model- Driven Architecture

37. Werkzeuge für die Model- Driven Architecture 37. Werkzeuge für die Model- Driven Architecture Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden http://st.inf.tu-dresden.de

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Michael Piechotta - CASE Tools. openarchitecture Ware

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

Mehr

Erfolg ist programmierbar.

Erfolg ist programmierbar. 4578954569774981234656895856512457895456977498 3465689585651245789545697749812346568958561245 9545697749812346568958565124578954569774981234 6895856512457895456977498123465689585612457895 6977498123465689585651245789545697749812346568

Mehr

Innovator 11 classix. Erweiterter XMI-Export aus Innovator Business und Object classix. HowTo. www.mid.de

Innovator 11 classix. Erweiterter XMI-Export aus Innovator Business und Object classix. HowTo. www.mid.de Innovator 11 classix Erweiterter XMI-Export aus Innovator Business und Object classix HowTo www.mid.de Erweiterter XMI-Export aus Innovator Business und Object classix Inhaltsverzeichnis Zweck... 2 Modellinhalte

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

Software Engineering II

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

Mehr

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr. Language Workbench Vortrag von:! Aktuelle Themen der Softwaretechnologie Arthur Rehm Steven Cardoso Betreut von: Prof. Dr. Reichenbach [1] !2 Index Kontext Domain Specific Language (DSL) Language Workbench

Mehr

Graphischer Editor für die technologieunabhängige User Interface Modellierung

Graphischer Editor für die technologieunabhängige User Interface Modellierung Universität Augsburg Lehrstuhl für Softwaretechnik und Programmiersprachen Prof. Dr. Bernhard Bauer Praktikum Modellgetriebene Softwareentwicklung SS 2008 Graphischer Editor für die technologieunabhängige

Mehr

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

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

Mehr

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

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

Mehr

Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt 20.04.2009

Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt 20.04.2009 Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt 20.04.2009 1 Agenda (1) Fornax-Plattform, Cartridges (2) Referenzimplementierung, Referenzmodell

Mehr

DRIVE LIKE A VIRTUAL DEVELOPER Die Poleposition für Ihre Softwareentwicklung

DRIVE LIKE A VIRTUAL DEVELOPER Die Poleposition für Ihre Softwareentwicklung DRIVE LIKE A VIRTUAL DEVELOPER Die Poleposition für Ihre Softwareentwicklung Was für ein Tempo! Das Rad dreht sich rasant schnell: Die heutigen Anforderungen an Softwareentwicklung sind hoch und werden

Mehr

MDA, alter Wein in neuen Schläuchen oder Weg für die Zukunft?

MDA, alter Wein in neuen Schläuchen oder Weg für die Zukunft? Guido Zockoll Copyright 2005 Inhaltsverzeichnis Einleitung... 1 Ein Blick zurück... 1 Und in Zukunft?... 2 Modell Driven Architecture... 2 Die Wurzel allen Übels... 3 Alter Wein in neuen Schläuchen...

Mehr

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

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

Mehr

Erfolg ist programmierbar.

Erfolg ist programmierbar. 45789545697749812346568958565124578954569774981 46568958565124578954569774981234656895856124578 45697749812346568958565124578954569774981234656 58565124578954569774981234656895856124578954569 49812346568958565124578954569774981234656895856

Mehr

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

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

Mehr

Modellgetriebene Softwareentwicklung von mobilen Anwendungen. Gabriele Taentzer WS 2014/15 Philipps-Universität Marburg

Modellgetriebene Softwareentwicklung von mobilen Anwendungen. Gabriele Taentzer WS 2014/15 Philipps-Universität Marburg Modellgetriebene Softwareentwicklung von mobilen Anwendungen WS 2014/15 Philipps-Universität Marburg Organisation der LV Umfang: 6 SWS, 9 ECTS Punkte Veranstalter:, Daniel Strüber, Steffen Vaupel Kontakt:

Mehr

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung Datum: 10. Juli 2009 Themendossier Modellgetriebene Softwareentwicklung Seite 1 Einführung in das Thema Die Disziplin des Software Engineerings befasst sich bereits seit vielen Jahren mit der Frage, wie

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

Software-Entwicklung

Software-Entwicklung Software-Entwicklung SEP 96 Geschichte der Programmierung Aufgaben von, Anforderungen an Programme mit der Zeit verändert 1 Programmierung über Lochkarten z.b. für Rechenaufgaben 2 maschinennahe Programmierung

Mehr

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03.

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03. Software-Engineering 2 Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03.2009 1 Entwicklungsumgebungen, CASE-Tools, CASE-Werkzeuge unterstützen den Software-Entwicklungsprozess

Mehr

10 Erweiterung und Portierung

10 Erweiterung und Portierung 10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

IT-Projekte effektiv steuern durch Integration von Modellierung und ALM bzw. Änderungsmanagement

IT-Projekte effektiv steuern durch Integration von Modellierung und ALM bzw. Änderungsmanagement IT-Projekte effektiv steuern durch Integration von Modellierung und ALM bzw. Änderungsmanagement Basierend auf einem zentralen SOA-Projekt wird die Integration von Änderungsmanagement aus dem ApplicationLifeCycle

Mehr

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

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

Mehr

MDSD in der Praxis. Dr. Shota Okujava.

MDSD in der Praxis. Dr. Shota Okujava. MDSD in der Praxis Dr. Shota Okujava shota.okujava@isento.de www.isento.de Agenda Einführung/Begriffsdefinition Softwareentwicklungsprozess und MDSD Technologien und Werkzeuge Probleme und Herausforderungen

Mehr

Anforderungsgetriebene Webentwicklung mit Grails:

Anforderungsgetriebene Webentwicklung mit Grails: ne mit Grails: und dem 26.01.2012 und dem Gliederung und dem Projektumfeld Agentur mit weniger als 5 Mitarbeitern Schwerpunkte: mit Typo 3 / PHP ios App-Entwicklung für ipad und iphone und dem Folie 1

Mehr

Model Driven Software Development

Model Driven Software Development Model Driven Software Development Key Note DGLR Workshop, TUM Garching, 4. Oktober 2011 Dr. Björn Pötter Leiter SoftwareFactory (FCS & UAV Software), Cassidian (EADS) Trends in der Softwareentwicklung

Mehr

Entwicklungsmethoden

Entwicklungsmethoden Slide 5.1 Entwicklungsmethoden Prof. Dr. Josef M. Joller jjoller@hsr.ch Development Methodologies Prof. Dr. Josef M. Joller 1 Session 5 Slide 5.2 TOOLS Development Methodologies Prof. Dr. Josef M. Joller

Mehr

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

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

Mehr

Automatisierung in der Software- Produktion abseits von MDA

Automatisierung in der Software- Produktion abseits von MDA Automatisierung in der Software- Produktion abseits von MDA Dirk Sklarek RDS Consulting GmbH Senior Berater Mörsenbroicher Weg 200 40470 Düsseldorf Internet: www.rds.de Einige Aussagen Warum läuft das

Mehr

Ausarbeitung Referat zur MDA

Ausarbeitung Referat zur MDA Model Driven Architecture (MDA) Florian Betreuer: Marco Musconi Software Engeneering Project WS 2006/07 07. Februar 2007 SEPR WS 2006/07 Seite 1 Inhaltsverzeichnis Historie 3 CASE 3 Objektorientierung

Mehr

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung Jens Trompeter (Hrsg.), Georg Pietrek (Hrsg.), Juan Carlos Flores Beitran, Boris Holzer, Thorsten Kamann, Michael Kloss, Steffen A. Mork, Benedikt Niehues, Karsten Thoms Modellgetriebene Softwareentwicklung

Mehr

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo)

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo) Gert Bikker, Kevin Barwich, Arne Noyer Domänenspezifisch entwickeln mit UML (Vortrag mit Demo) Die Modellierung mit UML bietet auch für eingebettete Systeme viele Vorteile. Um die Vorteile effizient nutzen

Mehr

Model Driven Development einige wichtige Grundprinzipien

Model Driven Development einige wichtige Grundprinzipien Model Driven Development einige wichtige Grundprinzipien Johannes Scheier j@scheier software.ch Copyright by Scheier Software Engineering Seite 1 Inhalt Was ist Model Driven Development (MDD)? Was verspricht

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

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II Rational Unified Process (RUP) Informationswirtschaft II Rational Unified Process (RUP) Wolfgang H. Janko, Michael Hahsler und Stefan Koch Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe Das

Mehr

Informationswirtschaft II

Informationswirtschaft II Rational Unified Process (RUP) Informationswirtschaft II Wolfgang H. Janko, Michael Hahsler und Stefan Koch Seite 1 Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe

Mehr

IT-Projekt-Management

IT-Projekt-Management IT-Projekt-Management email: vuongtheanh@netscape.net http: www.dr-vuong.de 2005 by, Bielefeld Seite 1 Vorgehensmodell 2005 by, Bielefeld Seite 2 Was ist ein Vorgehensmodell? Strukturbeschreibung über

Mehr

Einführung in die Modellierung

Einführung in die Modellierung Einführung in die Modellierung Christian Huemer Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna,

Mehr

A Domain Specific Language for Project Execution Models

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

Mehr

Innovator 11 classix. Anbindung an Eclipse. Einführung, Installation und Konfiguration. Connect. Michael Kaaden. www.mid.de

Innovator 11 classix. Anbindung an Eclipse. Einführung, Installation und Konfiguration. Connect. Michael Kaaden. www.mid.de Innovator 11 classix Anbindung an Eclipse Einführung, Installation und Konfiguration Michael Kaaden Connect www.mid.de Einführung in die Innovator-Eclipse-Anbindung Die hier beschriebene Anbindung steht

Mehr

Softwareentwicklung mit UML

Softwareentwicklung mit UML Softwareentwicklung mit UML Die Unified Modeling Language im Projekteinsatz 2.12.2003, Seite 1 Übersicht 1 Einleitung 2 Die Unified Modeling Language (UML) 3 Vorgehensmodelle und UML 4 Ausblick 4.1 UML

Mehr

Christian Kurz SWT Projekt WS 07/08

Christian Kurz SWT Projekt WS 07/08 Christian Kurz SWT Projekt WS 07/08 1. Allgemeine Aspekte der generativen GUI- Entwicklung 2. Entwicklung mit Hilfe von GUI-Designern 3. Entwicklung mit Hilfe deklarativer GUI- Sprachen 4. Modellgetriebene

Mehr

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

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

Mehr

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

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

Mehr

Round-Trip mit CASE-Werkzeugen: (Alp)traum oder Wirklichkeit?

Round-Trip mit CASE-Werkzeugen: (Alp)traum oder Wirklichkeit? Round-Trip mit CASE-Werkzeugen: (Alp)traum oder Wirklichkeit? Jörg Niere, Dirk Ohst joerg.niere@uni-siegen.de Model Driven Architecture challenge of business and technology change. Domänen und Hersteller

Mehr

Current Workflow. formatted. Rules. Extensions. Rules. DOM processing with Meta API-calls. Code Generation (Smarty) XMLfile. Source code.

Current Workflow. formatted. Rules. Extensions. Rules. DOM processing with Meta API-calls. Code Generation (Smarty) XMLfile. Source code. Current Workflow Rules T1 Rules Extensions XMLfile DOM processing with Meta API-calls Model 1 T2 Model 2 Code Generation (Smarty) Source code PP formatted sourcecode DTD V1 Rules XMI 1/21 Anbindung eines

Mehr

Seminararbeit Anwendungen 2. Julia Pliszka Modernisierung von Legacy Anwendungen unter Verwendung von MDA-Konzepten

Seminararbeit Anwendungen 2. Julia Pliszka Modernisierung von Legacy Anwendungen unter Verwendung von MDA-Konzepten Seminararbeit Anwendungen 2 Julia Pliszka Modernisierung von Legacy Anwendungen unter Verwendung von MDA-Konzepten Fakultät Technik und Informatik Department Informatik Faculty of Engineering and Computer

Mehr

Software-Qualität im Rahmen modellgetriebener Softwareentwicklung

Software-Qualität im Rahmen modellgetriebener Softwareentwicklung Software-Qualität im Rahmen modellgetriebener Softwareentwicklung OFFIS Technologiecluster Enterprise Application Integration niels.streekmann@offis.de 09.07.2008 Seite 1 / 13 Software-Qualität: Unterschiedliche

Mehr