Metamodell-basierte Integration von Web-Modellierungssprachen

Größe: px
Ab Seite anzeigen:

Download "Metamodell-basierte Integration von Web-Modellierungssprachen"

Transkript

1 Metamodell-basierte Integration von Web-Modellierungssprachen DIPLOMARBEIT zur Erlangung des akademischen Grades Magistra der Sozial- und Wirtschaftswissenschaften im Rahmen des Studiums Wirtschaftsinformatik eingereicht von Ahu Zeynep Yücel Matrikelnummer an der Fakultät für Informatik der Technischen Universität Wien Betreuung: Betreuerin: o. Univ.-Prof. Mag. Dipl.-Ing. Dr. Gerti Kappel Mitwirkung: Univ. Ass. Mag. Dr. Manuel Wimmer Wien, (Unterschrift Verfasserin) (Unterschrift Betreuerin) Technische Universität Wien A-040 Wien Karlsplatz 3 Tel. +43/(0)/

2 Eidesstattliche Erklärung Ahu Zeynep Yücel, Lambrechtgasse 6/5 040 Wien Hiermit erkläre ich, dass ich diese Arbeit selbständig verfasst habe, dass ich die verwendeten Quellen und Hilfsmittel vollständig angegeben habe und dass ich die Stellen der Arbeit - einschließlich Tabellen, Karten und Abbildungen, die anderen Werken oder dem Internet im Wortlaut oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe der Quelle als Entlehnung kenntlich gemacht habe. Wien,

3 Danksagung An dieser Stelle möchte ich mich bei all jenen bedanken, die durch ihre fachliche und persönliche Unterstützung zur Entstehung dieser Diplomarbeit beigetragen haben. O. Univ.-Prof. Mag. Dipl.-Ing. Dr. Gerti Kappel und Mag. Dr. Manuel Wimmer möchte ich für die Ermöglichung und Förderung dieser Arbeit danken. Mag. Dr. Manuel Wimmer trug durch seine Betreuung sowie seine fachlichen Ratschläge wesentlich zu dieser Arbeit bei. Seine hilfreiche Unterstützung war für die Verwirklichung dieser Arbeit von großer Bedeutung. Mein ganz besonderer Dank richtet sich an meiner Mutter Ayse Yücel, meinem Vater Ali Erman Yücel, meiner Tante Oya Cikrikci, meinem Onkel Tufan Pinar und meiner Cousine Piril Battiato, die mir sowie bisher immer auch während der gesamten Studiendauer zur Seite gestanden sind und mich in jeglicher Hinsicht unterstützt haben, auch wenn ich nicht immer die umgänglichste Person war. Ich möchte mich nochmals bei meinen Eltern herzlich bedanken, die mir das Studium überhaupt erst ermöglicht haben. Ich bedanke mich weiterhin noch herzlich bei meiner guten Freundin bzw. Kollegin Aylin Yavasliol, die mir in jeder Phase der Arbeit ihre Hilfe angeboten hat und mich motiviert hat, nicht aufzugeben.

4 Kurzfassung Web-Anwendungen haben sich über die letzten Jahrzehnte stark verändert. Die erste Generation zielte auf die einfache Bereitstellung von Informationen mittels statischer Websites. Durch die zweite Generation wurde eine neue Dimension eröffnet, wobei Web-Anwendungen nicht mehr nur als Mittel zur Informationsdarstellung gesehen werden, sondern auch vielfältige Dienste zur Verfügung stellen. Durch die daraus folgende Erhöhung des Entwicklungsaufwands von Web-Anwendungen entsteht die Notwendigkeit, die Entwicklung durch die Verwendung von modellbasierten Entwicklungsmethoden und spezifischen Web-Modellierungssprachen zu unterstützen. Die modellgetriebene Softwareentwicklung hat durch die Model Driven Architecture Initiative (MDA) stark an Bedeutung gewonnen. MDA zielt im Allgemeinen darauf ab, Modellierungssprachen aus verschiedenen Bereichen zu standardisieren, um Interoperabilität zwischen den verschiedenen Modellierungswerkzeugen zu schaffen. Jedoch wird MDA zurzeit nur als eine Vision gesehen, da die notwendige Basis für die Realisierung fehlt. Betroffen davon ist auch der Web Engineering Bereich, da bestehende Web-Modellierungsmethoden im Sinne der MDA nicht vollständig modellgetrieben sind. Es fehlen die entsprechenden Metamodelle zu den Web- Modellierungssprachen und die Modelltransformationen, um Modellaustausch zwischen den Web-Modellierungswerkzeugen zu gewährleisten. Diese Arbeit versucht eine erste Lösung für das Interoperabilitätsproblem zwischen den verschiedenen Web-Modellierungswerkzeugen umzusetzen. Ob eine verlustfreie Abbildung zwischen eingesetzten Web-Modellierungssprachen entwickelt werden kann, bildet die zentrale Forschungsfrage, die im Zuge dieser Arbeit beantwortet wird. Um diese Forschungsfrage zu beantworten, wird folgende Methode eingesetzt. Im ersten Teil der Arbeit werden die wesentlichen Eigenschaften von Web- Modellierungssprachen erklärt und anhand der entsprechenden Tools untersucht. Im zweiten Teil der Arbeit werden die Metamodelle für die einzelnen Modellierungssprachen erstellt und anhand eines Fallbeispiels detailliert untersucht. Im dritten Teil der Arbeit werden anhand des modellierten Fallbeispiels Unterschiede und Gemeinsamkeiten der Modellierungssprachen bestimmt. Der vierte Teil der Arbeit beschäftigt sich mit der Erstellung der Modelltransformationen für die Realisierung des Modellaustausches. Zusätzlich werden die zu realisierenden Modelltransformationen nach vordefinierten Kriterien wie Informationsverlust und Realisierbarkeit bewertet.

5 Abstract Web applications changed enormously over the last decades. The first generation provided information retrieval by means of static Web sites. Already the second generation opened a new dimension, where Web applications are not only seen as medium for representing information, but also provide multifaceted services. This change, though, requires technical improvement, such that the static Web sites may be supported through dynamic software systems. The increase in the development effort of Web applications created the need of supporting the development by using model-based development methods and specific Web modeling languages. Model-based software development has gained considerable importance by means of the Model Driven Architecture (MDA) initiative. In general, MDA tends to standardize the modeling languages from different fields for establishing interoperability among different modeling tools. Currently, however, MDA is seen as a vision, since the required basis for its realization is not available yet. Also the Web Engineering field is affected by MDA, because the existing Web modeling methods are not completely model driven in terms of MDA. Metamodels for the Web modeling languages and the model transformations are missing for assuring model exchange among Web modeling tools. This work aims at implementing a first solution for the interoperability problem among the different Web modeling tools. The central research question is: Is an information loss free exchange of models between the Web modeling tools feasible? The following method is applied in order to tackle the research question. In the first part of the work, the basic characteristics of the Web modeling languages are discussed and analyzed by means of the according tools. In the second part of the work, the metamodels for the modeling languages are developed and analyzed by means of a case study. In the third part, the differences and the commonalities of the modeling languages are determined by means of the modeled case study. The fourth part deals with creation of the model transformation to realize the model exchange. Finally, the realized model transformations are analyzed according to predefined criteria, such as information loss and realizability.

6 Inhaltsverzeichnis Kapitel : Einleitung. Einführung.2 Motivation und Zielsetzung 2.3 Verwandte Arbeiten 3.4 Aufbau der Arbeit 4 Kapitel 2: Einführung in die modellgetriebene Entwicklung von Web- Anwendungen Moderne Web-Anwendungen im Überblick Web-Anwendungen vs. Software-Anwendungen Kategorien von Web-Anwendungen Modellierung von Web-Anwendungen Modellgetriebene Entwicklung (MDE) Modell Metamodell Modelltransformation Modellgetriebene Entwicklungsansätze Model Driven Architecture (MDA) Model Driven Web Engineering (MDWE) Modellgetriebene Entwicklungsansätze für Web-Anwendungen WebML OO-H UWE Vergleich der Ansätze 38 Kapitel 3: Metamodell-basierte Integration von Web-Modellierungssprachen Problemstellung Verwendete Technologien Vorgehensweise zur Integration Integrationsbeispiel 49 Kapitel 4: Metamodellentwicklung für Web-Modellierungssprachen WebML Datenmodell Globale Navigation und Datenrepräsentation 52

7 4..3. Datenverwaltung und Geschäftslogik WebML Metamodell OO-H Datenmodell Globale Navigation und Datenrepräsentation Datenverwaltung und Geschäftslogik OO-H Metamodell UWE Datenmodell Globale Navigation und Datenrepräsentation Datenverwaltung und Geschäftslogik UWE Metamodell 76 Kapitel 5: Integration von WebML, OO-H und UWE WEBML-2-OO-H Einführung Datenmodell Globale Navigation und Datenrepräsentation Datenverwaltung und Geschäftslogik WEBML-2-UWE Einführung Datenmodell Globale Navigation und Datenrepräsentation Datenverwaltung und Geschäftslogik Zusammenfassung der Ergebnisse 24 Kapitel 6: Zusammenfassung und Ausblick Zusammenfassung Ausblick 29 Literaturverzeichnis 3 Anhang A: Integrationslösungen 39

8 Kapitel Einleitung. Einführung Innerhalb der letzten zehn Jahre hat sich das World Wide Web enorm weiterentwickelt. Es hat sich von seinem ursprünglichen Charakter als Informationsmedium in ein Anwendungsmedium verwandelt [Kap03]. Moderne Web-Anwendungen sind bezüglich ihrer Komplexität vergleichbar mit traditionellen Desktop-Anwendungen. Deshalb entsteht das Bedürfnis, sie mit Hilfe eines systematischen Vorgehens (Modellbildung, Entwurfsmuster und Vorgehensmodelle) zu entwickeln [Kap03]. Trotz der Ähnlichkeit zwischen Web-Anwendungen und traditioneller Software verfügen Web-Anwendungen über verschiedene Charakteristika, deshalb können die klassischen Vorgehensweisen des Software Engineerings für die Entwicklung moderner Web-Anwendungen nicht eingesetzt werden. Es ist der Gegenstand der Disziplin Web Engineering, entsprechende Ansätze zu definieren, um den klassischen Software Entwicklungsprozess zur Entwicklung von Web-Anwendungen zu adaptieren. Eine der Möglichkeiten zur Unterstützung des Entwicklungsprozesses von Web-Anwendungen ist die modellgetriebene Entwicklung von Web- Anwendungen (Model Driven Web Engineering MDWE). In der modernen Softwareentwicklung wird die Abstraktion bei der Erstellung von Anwendungen ständig erhöht. Es gibt mittlerweile mehrere Ansätze, die Verwendung in der Softwareentwicklung finden. Einige der wichtigsten Ansätze sind die

9 Einleitung 2 modellgetriebene Entwicklung (Model Driven Development - MDD) und Model Driven Architecture (MDA). Diese Ansätze verfolgen im Allgemeinen das Ziel, den Software-Entwicklungsprozess durch Verwendung von abstrakten Modellen anzutreiben. MDA zielt darauf, Modelle aus verschiedenen Bereichen zu standardisieren und Interoperabilität zwischen den verschiedenen Werkzeugen zu schaffen. Anwendungen werden dabei auf einer plattformunabhängigen Ebene modelliert und durch Transformationen in eine plattformspezifische Implementierung überführt [Kra07a]. Ein modellgetriebener Entwicklungsprozess ermöglicht die Trennung zwischen funktionalen und technischen Anforderungen. Somit können die funktionalen Anforderungen unabhängig von den Technologien spezifiziert werden. Durch automatisierte Transformationen können aus den Modellen lauffähige Prototypen entwickelt werden, was zur Reduzierung des Implementierungsaufwands führt. Der Einsatz von Modellen im Software Engineering, wird schon seit Langem zur Unterstützung von Entwicklung komplexer Software-Systeme eingesetzt, lässt sich auch im Bereich Web Engineering anwenden [Bob07]. Durch die modellgetriebene Entwicklung von Web-Anwendungen findet dasselbe Vorgehen in Web Engineering Verwendung. Das Ziel des Model Driven Web Engineering (MDWE) Ansatzes ist unter Zuhilfenahme von Modellen und geeigneten Generatoren lauffähige Web- Anwendungen zu erzeugen. Der Hauptvorteil liegt darin, dass dieser Ansatz die Trennung zwischen den Web-Modellierungsebenen Content, Hypertext und Präsentation ermöglicht..2 Motivation und Zielsetzung Die modellgetriebene Entwicklung setzt die Verwendung verschiedener Modellierungs- und Entwicklungssprachen voraus, um über die verschiedenen Software-Entwicklungsphasen die vorhandenen Ressourcen möglichst effizient nutzen zu können. In den einzelnen Phasen des Entwicklungsprozesses sind unterschiedliche Modellabstraktionsebenen notwendig, um alle Anforderungen berücksichtigen zu können. Zusätzlich sind Mappings und Transformationen zwischen den Modellen, die durch unterschiedliche Modellierungssprachen erstellt worden sind, zu definieren, um die Korrespondenzen zwischen den Modellelementen und die Gemeinsamkeiten bzw. Unterschiede zwischen den dabei verwendeten Modellierungssprachen zu bestimmen.

10 Einleitung 3 Im Laufe des letzten Jahrzehnts sind im Zuge des Web Engineerings viele verschiedene Ansätze zur Entwicklung von komplexen Web-Anwendungen entwickelt worden. Besonders auf der Modellierungsebene existiert mittlerweile eine Vielzahl unterschiedlicher Web-Modellierungsansätze, wie z.b. UML-based Web Engineering (UWE). Jedoch sind die bestehenden Ansätze für modellgetriebene Entwicklung von Web- Anwendungen im Sinne der MDA nicht vollständig modellgetrieben. Es fehlen die entsprechenden Metamodelle zu den Web-Modellierungssprachen, die Modelltransformationen und die Definition des Modellaustausches zwischen den Werkzeugen. Diese Diplomarbeit zielt darauf, den MDA Ansatz auf den Entwicklungsprozess von Web-Anwendungen zu übertragen und dadurch eine erste Lösung für das Interoperabilitätsproblem zwischen den verschiedenen Web-Modellierungswerkzeugen umzusetzen [Kra07a]. Die zentrale Forschungsfrage lautet daher wie folgt: Kann eine informationsverlustfreie Abbildung zwischen den eingesetzten Web- Modellierungssprachen entwickelt werden, um Modellaustausch zwischen den Web- Modellierungswerkzeugen zu ermöglichen? Von den zahlreichen Web-Modellierungssprachen werden im Rahmen der Diplomarbeit die Sprachen Web Modeling Language (WebML), Object Oriented Hypermedia (OO-H) und UML-based Web Engineering (UWE) untersucht. Diese drei Modellierungssprachen sind alle von verschiedener Struktur in Bezug darauf, welche Informationen sie abbilden und wie sie diese abbilden, weil ihre Ursprünge und Terminologien unterschiedlich sind. Semantisch äquivalente Informationen werden in den einzelnen Modellen unterschiedlich repräsentiert. Und sie haben einen unterschiedlichen Fokus, was die Modellierungsebenen betrifft. Probleme treten auf, wenn die Objekte eines Modells nicht eindeutig identifizierbar in dem gegenübergestellten Modell sind. Interessant ist hier, herauszufinden, ob sich eventuell nur die Struktur bzw. Gestaltung der Informationen ändert oder doch einige Informationen verloren gehen..3 Verwandte Arbeiten Inhaltliche Schwerpunkte dieser Arbeit werden in verschiedenen Publikationen beleuchtet. In [Kap06] wird das Problem des Modellaustausches zwischen unterschiedlichen Modellierungswerkzeugen behandelt und als Lösung ModelCVS

11 Einleitung 4 vorgeschlagen ein System, das modellbasierte Werkzeugintegration durch Modelltransformation zwischen verschiedenen Modellierungssprachen und Modellaustauschformaten ermöglicht. Ein ähnlicher Ansatz kann in [Tra05] gefunden werden. [Tra05] befasst sich mit unterschiedlichen Modelltransformationsansätzen und stellt Technologien und Techniken vor, wodurch die Modelltransformationen flexibler, praktischer und ausdrucksstärker gestaltet werden können. Auch in anderen Bereichen der Informatik werden Integrationslösungen benötigt. Beispielsweise ist die Integration von Datenbanken ein sehr häufig auftretendes Problem. In [Leg07] wird eine detaillierte Klassifikation von unterschiedlichen Mapping Situationen und Korrespondenzarten vorgestellt und für die Spezifikation von Korrespondenzen zwischen den Web-Modellierungssprachen eingesetzt, die im Kapitel 3 näher erläutert werden..4 Aufbau der Arbeit Kapitel 2 gibt eine allgemeine Einführung in die modellgetriebene Web- Entwicklung. Dazu wird zuerst das klassische Konzept der modellgetriebenen Entwicklung im Software Engineering Bereich erläutert. Nachdem ein Überblick über die Web-Anwendungen gegeben wird, wird auf die modellgetriebene Web- Entwicklung eingegangen und unter den bestehenden Web-Modellierungsansätzen WebML, OO-H und UWE untersucht. Kapitel 3 befasst sich mit den Grundlagen der Metamodell-basierten Integration von Web-Modellierungssprachen und stellt die in der Arbeit eingesetzte Vorgehensweise zur Integration vor. Im Kapitel 4 werden die Metamodelle für die einzelnen Modellierungssprachen WebML, OO-H und UWE entwickelt und anhand der modellierten Fallbeispiele die Gemeinsamkeiten und Unterschiede bezüglich der Informationsrepräsentation und der Sprachstruktur untersucht. Kapitel 5 realisiert die Modelltransformation durch die Modelltransformationssprache ATLAS Transformation Language (ATL). Dazu werden zuerst die Korrespondenzen zwischen den jeweiligen Metamodellen ermittelt. Nachdem die Korrespondenzen identifiziert worden sind, werden diese durch ATL Transformationsregeln implementiert. Zusätzlich werden die realisierenden

12 Einleitung 5 Modelltransformationen nach vordefinierten Kriterien wie Informationsverlust, Realisierbarkeit bewertet. Zum Schluss wird im Kapitel 6 eine kurze Zusammenfassung und ein Ausblick gegeben, wodurch die wichtigsten Ergebnisse der Arbeit noch einmal reflektiert und zusammengefasst werden und auf weiterführende Problemstellungen hingewiesen, die im Rahmen dieser Diplomarbeit nicht behandelt wurden, aber relevante Problemstellungen darstellen.

13 Kapitel 2 Einführung in die modellgetriebene Entwicklung von Web- Anwendungen Dieses Kapitel gibt eine Einführung in das Thema modellgetriebene Entwicklung von Web-Anwendungen. In erster Linie geht es darum, die Evolution von Web- Anwendungen im Laufe der Zeit zu schildern mit dem Ziel durch erworbene Kenntnisse das Bedürfnis zur Verfolgung einer systematischen Vorgehensweise, d.h. modellgetriebene Entwicklung, bei der Entwicklung von Web-Anwendungen verständlicher zu machen. Daraus folgend werden zuerst Web-Anwendungen im Detail betrachtet. Im Unterkapitel 2.. werden die Eigenschaften, Charakteristika und zeitliche Entwicklung von Web-Anwendungen erläutert. Im Unterkapitel 2.2 erfolgt die Einführung in die modellgetriebene Entwicklung, wo die Grundlagen und Konzepte detailliert behandelt werden. In der modellgetriebenen Entwicklung werden mehrere Entwicklungsansätze definiert. Im Rahmen der Arbeit wird auf die bekanntesten zwei Ansätze näher eingegangen: Model Driven Architecture (MDA) und Model Driven Engineering (MDE) bzw. Model Driven Web Engineering (MDWE). Im Unterkapitel 2.3 werden die unterschiedlichsten Web- Modellierungsansätze vorgestellt und auf drei dieser Ansätze - WebML, OO-H und UWE, worauf in den weiterfolgenden Kapiteln der Fokus zu richten ist, näher eingegangen und die Gemeinsamkeiten bzw. Unterschiede zwischen diesen erläutert.

14 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen Moderne Web-Anwendungen im Überblick Früher bestand das World Wide Web meist aus statischen Websites, d.h. miteinander verlinkte Seiten mit entsprechenden Informationen, die auf einen Web-Server abgelegt wurden und lange Zeit ohne Aktualisierungen eingesetzt worden sind. Die Interaktion mit dem Benutzer wurde früher nicht unbedingt gefordert. Im Laufe der Zeit hat durch die Entwicklung neuer Webtechnologien eine offensichtliche Weiterentwicklung des Webs stattgefunden, die es zu einer Anwendungsplattform überführte [Kap03]. Bei der neuen Generation des World Wide Webs sind die Benutzer viel aktiver als zuvor, sie nehmen sozusagen gemeinsam Teil an der Gestaltung des Webs. Die Benutzer haben sich von passiven Informations- Konsumenten zu aktiven Informations-Produzenten bzw. Gestalter des Webs umgewandelt [Gro04] Web-Anwendungen vs. Software-Anwendungen Moderne Web-Anwendungen sind dynamisch, erfordern Benutzerinteraktion, leisten datenintensive und auf die Benutzer zugeschnittene personalisierte Dienste [Kap03]. Beispiele dafür sind vielfältige serverbasierte Online Dienste wie Online-Banking, Web-Shops, Online-Auktionen, Web-Kalender, usw. Einen besonders wichtigen Vorteil bieten Web-Anwendungen, indem sie den Benutzer von der Notwendigkeit der Installation und Ausführung der Anwendung entlasten. Diese Schritte werden nicht wie bei klassischen Software-Anwendungen clientseitig sondern serverseitig ausgeführt, sodass dem Benutzer der direkte Zugang zu den entsprechenden Diensten über das Web angeboten werden kann. Aus diesem Grund wird in [Kap03] eine Web-Anwendung folgendermaßen definiert: Eine Web-Anwendung ist ein Softwaresystem, das auf Spezifikationen des World Wide Web Consortium (W3C) beruht und Web-spezifische Ressourcen, wie Inhalte und Dienste bereitstellt, die über eine Benutzerschnittstelle, den Web-Browser, verwendet wird. Die wichtigsten Vorteile, die Web-Anwendungen im Vergleich zu Software- Anwendungen aufweisen, können nach [Bik06] wie folgt zusammengefasst werden: Die einzige Voraussetzung für die Nutzung der zur Verfügung gestellten Online-Dienste ist der Einsatz eines kompatiblen Browsers

15 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 8 Die Dienste sind für den Benutzer jeder Zeit und überall verfügbar Im Vergleich zu Software-Anwendungen sind die Entwicklungs- und Wartungskosten für Web-Anwendungen viel geringer Die Wartung der Web-Anwendungen findet auf Web-Servern statt Sie unterstützen Anwendungen, wo die Interaktion mehrerer Benutzer untereinander möglich bzw. gefordert ist Kategorien von Web-Anwendungen Zurzeit existieren unterschiedliche Arten von Web-Anwendungen. Je nach Komplexität werden sie nach [Kap03] unterschiedlich kategorisiert. Im Folgenden werden diese Kategorien kurz vorgestellt. Komplexität Semantisches Web Ubiquitär Portalorientiert Kollaborativ Workflowbasiert Transaktional Interaktiv Dokumentenzentriert Entwicklungshistorie Abbildung 2.. Kategorien von Web-Anwendungen Dokumentenzentriert. Hier werden den Benutzern Informationen in strukturierter Art und Weise zur Verfügung gestellt. Diese Kategorie vertritt die einfachste und vorläufige Form der Web-Anwendungen. Web-Anwendungen bestehen aus statischen Websites, d.h. fertige Dokumente werden auf Web-Server gelegt und wenn von Clients angefragt, als Antwort ausgegeben. Aktualisierung der Seiten wird manuell und deshalb in langen Zeitabständen durchgeführt. Beispiel dafür sind statische Homepages und einfache Firmenpräsentationen [Kap03].

16 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 9 Interaktiv. Diese Form ermöglicht dem Benutzer durch einfache Interaktionen wie HTML-Formulare und externe Website Links die Steuerung der entsprechenden Web-Anwendung. Beispielsweise werden die durch Ausfüllen von HTML- Formularen erstellten Benutzerdaten der Web-Anwendung übergeben [Kap03]. Transaktional. Hier wird eine Reihe von aufeinander folgenden Operationen zur Ausführung für den Benutzer bereitgestellt. Im Vergleich zu interaktiven Web- Anwendungen ist hier der Benutzer in der Lage, Modifikationen vorzunehmen, d.h. es wird dem Benutzer ermöglicht, entsprechende Datenbestände dezentral zu aktualisieren. Wichtig ist hier, dass durch ein Datenbanksystem Konsistenz und Effizienz bezüglich der Datenhaltung erreicht wird. Beispiele dafür sind alle Online- Shops, Reservierungssysteme und Finanz-Dienstleistungen wie Online-Banking [Kap03]. Workflowbasiert. In dieser Kategorie koordinieren die Web-Anwendungen sämtliche Abläufe wie die Abwicklung von Geschäftsprozessen innerhalb oder zwischen verschiedenen Unternehmen, Behörden und privaten Benutzern [Kap03]. Beispiele hierfür sind E-Government, B2B-Lösung und Patienten-Workflows. Kollaborativ. Im Gegensatz zu workflowbasierten Web-Anwendungen sind die Vorgänge bei kollaborativen Web-Anwendungen unstrukturiert. Web-Anwendungen dieser Kategorie bieten eine Möglichkeit an, um die Zusammenarbeit mehrerer Benutzer, die überall verteilt sind, zu erleichtern, z.b. durch Datenaustausch oder Meinungsaustausch. Einige Beispiele dazu sind: E-Learning Plattforme, gemeinsame Informations- und Arbeitsräume [Kap03] wie Wikis, wo Informationen von allen Benutzern erstellt und bearbeitet werden können. Portalorientiert. Das Ziel der portalorientierten Web-Anwendungen ist es, die unterschiedlichen Informationsressourcen und Dienstleistungen in einem einzigen Zugangsknoten zu vereinen. Es gibt viele verschiedene Arten von Portalen je nach dem Zweck, wie z.b. Suchmaschinen, Newspapers für alle oder Online-Shopping, Auktionen für spezifische Gruppen [Kap03]. Ubiquitär. Ubiquitäre Web-Anwendungen stellen den Zugriff auf die Dienstleistungen jeder Zeit überall bereit. PDAs und andere mobile Endgeräte tragen zur Förderung dieser Kategorie bei, indem sie aktuelle Informationen an spezifischen Plätzen und spezifische Informationen für die jeweilige Benutzergruppe bereitstellen können [Kap03].

17 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 0 Semantische Web-Anwendungen. Das Gebiet Semantic Web entwickelt sich noch immer. Eines der Ziele des Semantic Web Ansatzes ist es, Informationen im Web nicht nur in einer für Menschen lesbarer Form, sondern auch in einer Form bereitzustellen, die für Maschinen verarbeitbar ist [Kap03] Modellierung von Web-Anwendungen Wie im Entwicklungsprozess von traditionellen Software-Anwendungen ist die Modellierungsphase im Entwicklungsprozess einer Web-Anwendung sehr wichtig. Die erstellten Anforderungen und Spezifikationen sollten für die Erstellung eines Modells der entsprechenden Web-Anwendung verwendet werden, bevor mit der Implementierung begonnen wird. In Kappel et. al. [Kap03] wird der Umfang der Modellierung einer Web-Anwendung untersucht. Als Ausgangsbasis dienen die traditionellen Methoden des Software Engineerings. Diese werden dann unter Berücksichtigung des speziellen Charakters von Web-Anwendungen entsprechend erweitert. Der Umfang der Modellierung einer Web-Anwendung lässt sich nach [Kap03] als ein dreidimensionales System abbilden. Ebenen Präsentation Hypertext Content Struktur Phasen Verhalten Analyse Entwurf Implementierung Aspekte Abbildung 2.2. Ebenen der Web-Modellierung Die erste Dimension sind die Ebenen, die bei der Modellierung zu berücksichtigen sind. Bei einer traditionellen Software-Anwendung sind diese Anwendungslogik und Benutzerschnittstelle, aber bei der Modellierung der Web-Anwendungen sind diese nicht ausreichend, weil Web-Anwendungen verschiedene Eigenschaften haben als Software-Anwendungen, wie z.b. Hypertext-Charakter. Deshalb wird eine neue Unterteilung der Ebenen für die Modellierung der Web-Anwendungen gemacht. Anstatt der zwei Ebenen Anwendungslogik und Benutzerschnittstelle- bei der Modellierung von Software-Anwendungen werden hier drei Ebenen für Web- Anwendungen genommen:

18 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen. Content-Ebene: stellt domänenspezifische Daten dar, die von der Web- Anwendung benutzt werden. Die Daten werden meistens von einem Datenbanksystem verwaltet. 2. Hypertext-Ebene: repräsentiert die Navigationsstruktur und die logische Komposition von Web-Pages. 3. Präsentationsebene: befasst sich mit den Konzepten der Präsentation der Hypertext-Ebene, wie sie dem Benutzer angezeigt werden soll, d.h. z.b. Layouts der einzelnen Pages und Festlegung der Benutzerinteraktion. Die zweite Dimension bilden die Aspekte einer Anwendung: Struktur (d.h. die Objekte, deren Attribute und ihre Beziehungen untereinander) und Verhalten (d.h. Funktionen und Prozesse), welche orthogonal zu den drei Ebenen der ersten Dimension sind. Da die Entwicklung einer Web-Anwendung innerhalb eines Entwicklungsprozesses erfolgt, bilden die Phasen des Entwicklungsprozesses die dritte Dimension der Modellierung von Web-Anwendungen. Content Modellierung. Content Modellierung behandelt nach Kappel et al. [Kap03] sowohl die statischen als auch die dynamischen Aspekte bei der Modellierung des Problembereichs. Der statische Aspekt umfasst den gesamten Inhalt, den die Web- Anwendung repräsentiert. Der dynamische Aspekt bei der Modellierung des Problembereichs befasst sich mit den Konzepten der Anwendungslogik. Bei der Content Modellierung werden die Datenklassen identifiziert und eine Strukturanalyse dieser Datenklassen gemacht. Das Content Modell wird auch als Strukturmodell, konzeptuelles Modell oder Klassendiagramm bezeichnet. Hypertext Modellierung. Hypertext Modellierung dient zur Spezifikation der Navigation innerhalb der Web-Anwendung und des Zugriffs auf die Informationen. Die Navigation innerhalb einer Web-Anwendung wird in zwei Ebenen betrachtet: global und lokal [Dol06]. Die globale Navigation ermöglicht den Zugriff auf die im Content Modell gespeicherten Informationen in den höher gestuften Kategorien im Vergleich zur aktuellen Seite. Um einen möglichst schnellen Zugriff auf die Hauptnavigation zu gewährleisten, werden die Navigationsmöglichkeiten auf allen Seiten zugreifbar gemacht, z.b. durch Menübars. Die lokale Navigation ermöglicht

19 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 2 die Navigation zwischen den Seiten einer Unterkategorie. Für jede Seite werden die Navigationsmöglichkeiten angezeigt, die einen Bezug zum angebotenen Inhalt der aktuellen Seite haben. Die globale Navigation stellt das übergreifende Navigationskonzept bereit und die lokale Navigation ergänzt sie, indem sie kontextbezogene Navigationsmöglichkeiten für einzelne Seiten anbietet [Bot00]. Präsentationsmodellierung. Das Präsentationsmodell einer Web-Anwendung beschreibt die visuellen Charakteristika der Information, die von der Web- Anwendung zur Verfügung gestellt wird, wie z.b. Bestimmung des Layouts der darzustellenden Informationen und deren Erscheinung Modellgetriebene Entwicklung (MDE) Die Nutzung von Modellen ist eine alt bekannte Vorgehensweise im Software Engineering. Durch die Einführung der objektorientierten Software-Entwicklung hat sich die Verwendung von Modellen im Entwicklungsprozess besonders durchgesetzt, somit ist auch die Bedeutung der Modellierung gestiegen. Jedoch werden noch immer viele Software-Anwendungen ohne Verwendung von Modellen entwickelt oder Modelle werden nur für die Anfangsphasen des Entwicklungsprozesses verwendet und in späteren Phasen nicht mehr benutzt. In der modellgetriebenen Entwicklung (Model Driven Engineering - MDE) liegt der Hauptaugenmerk auf Modellen und Modelltransformationen. MDE bringt das Modell ins Zentrum des Software Entwicklungsprozesses. Jedes Artefakt der Software wird als Modell oder als ein Element des Modells betrachtet. Hier wird nicht nur die Erstellung der Modelle vorausgesetzt, sondern auch der Einsatz dieser Modelle, die als Basis für die zu entwickelnde Anwendung gesehen werden. Daraus folgt, dass die Modelle immer wieder kontrolliert und aktualisiert werden müssen. Die in dieser Arbeit vorgestellten Modelle beschreiben alle möglichen Funktionen der entsprechenden Anwendung, d.h. es handelt sich um abstrakte Modelle. Frühere Ansätze haben Modelle nur aus Dokumentations- oder Kommunikationsgründen eingesetzt. In MDE wird Kommunikation und Dokumentation im gesamten Entwicklungsprozess intuitiv unterstützt. Der MDE Ansatz ist mit keinem speziellen Standard verbunden, deshalb existieren mehrere unterschiedliche Implementationsmöglichkeiten für MDE Prinzipien [Bla07]: Software Factories von Microsoft [Gre03], Model Driven Architecture (MDA) von OMG [OMG03], Eclipse Modeling Framework (EMF) von IBM [EMF08], Model Integrated Computing (MIC) von

20 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 3 DARPA [MIC08], etc. Jeder einzelne Ansatz verfügt über unterschiedliche Techniken und Definitionen, jedoch setzen alle dieselben Grundkonzepte von MDE ein. In den weiterfolgenden Unterkapiteln werden die drei wichtigsten Konzepte -Modell, Metamodell und Modelltransformation- der modellgetriebenen Entwicklung detailliert erklärt:. Modell zur Modellierung der zu erzeugenden Anwendung für einzelne Problembereiche mittels geeigneter Modellierungssprachen, 2. Metamodell, um die Struktur und Eigenschaften der verwendeten Modellierungssprache zu verstehen, 3. Modelltransformation zur Überführung des Modells zur ausführbaren Code Modell Modelle sind die wichtigsten Artefakte der MDE, deswegen wird hier zuerst auf die Definition des Begriffs Modell eingegangen. Zwei gängige Definitionen sind: Ein Modell ist seinem Wesen nach eine in Maßstab, Detailliertheit und/oder Funktionalität verkürzte bzw. abstrahierte Darstellung des originalen Systems. [Sta73] Ein Modell ist eine Abstraktion eines Systems mit der Zielsetzung das Nachdenken über ein System zu vereinfachen, indem irrelevante Details ausgelassen werden. [Bru04] Das System kann als ein Ausschnitt aus der realen Welt gesehen werden. In der Informatik wird ein System als Menge von Elementen und Menge von Relationen, die zwischen diesen Elementen bestehen, verstanden [Kla67]. Durch Einschränkungen des Systems werden die Elemente aus der Welt analysiert, ob sie Teil dieses Systems sind und ob sie bei der Modellierung berücksichtigt werden sollen. Diese Einschränkungen ermöglichen die Fokussierung auf den Problembereich bei der Modellierung. In der Informatik wird das mit dem Begriff Abstraktion bezeichnet und bedeutet, dass nicht alle Objekte und Attribute des realen Systems im abstrakten Modell repräsentiert werden. Objekte und Attribute des realen Systems, die unwesentlich erscheinen, werden im Modell weggelassen.

21 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 4 Modellierung wird nach [Obe06] eingesetzt für:. Förderung des Verständnisses über ein System oder ein Problem 2. Förderung der Kommunikation über das geplante System 3. Bewerten und Kritisieren des geplanten Systems 4. Spezifikation von Anforderungen an ein geplantes System 5. Durchführung von Experimenten, die an Original nicht durchgeführt werden können, sollen oder dürfen 6. Trennung des Anwendungswissens und Programmcode bei Softwaresystemen Zu den genannten Vorteilen der Modellierung kommen noch die Aspekte im Falle einer Änderung am realen System. Änderungen sind normalerweise ziemlich schwer durchzuführen, sind unumkehrbar und daher auch unvergleichbar, zudem noch ziemlich teuer. Zum Schluss soll hier auf eine weitere Definition aus [Kle03] aufmerksam gemacht werden: A model is a description of a (part of) systems written in a well-defined language. A well-defined language is a language with well-defined form (syntax), and meaning (semantics), which is suitable for automated interpretation by a computer. Hier wird von einer wohl definierten Sprache gesprochen, die bei der Erstellung des Modells verwendet werden soll. In MDE Ansatz definieren Metamodelle, wie die Modelle auszusehen haben. Im folgenden Abschnitt wird auf Metamodelle näher eingegangen Metamodell Metamodell besteht aus der Vorsilbe meta und dem Hauptwort Modell. Meta ist eine griechische Vorsilbe und bedeutet über oder zwischen. Metamodell bedeutet somit Modell über ein Modell. Vergleichbar mit dem Konzept Meta-Lernen [Kie99], wo es um das Lernen der Art und Weise geht, wie gelernt wird, geht es bei der Metamodellierung um die Modellierung der Art und Weise, wie modelliert wird. Metamodell ist ein Modell zum Aufbau eines Modells und ist die Grundlage für ein

22 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 5 Modell. Im vorigen Abschnitt wurde besagt, dass in MDE ein Metamodell definiert, wie ein Modell auszusehen hat. Diese Aussage kann ebenfalls so formuliert werden: Ein Metamodell definiert die Konstrukte und Regeln, die verwendet werden können, um Modelle zu erstellen. Diese Formulierung entspricht somit folgender Definition aus [OMG04]: A meta-model is a model that defines the language for expressing a model. Ein Metamodell ist aber selbst auch ein Modell, d.h. es muss in einer Sprache definiert worden sein, welche wiederum ein Metamodell (sogenannte Metametamodell) braucht. Metametamodelle werden deshalb eingesetzt, um Metamodelle genau zu beschreiben. Die Frage, wie die Metametamodelle definiert werden, führt zu einem unendlichen Kreis von Meta-Ebenen, um das zu vermeiden, sind Metametamodelle bzw. ihre Sprache (Metasprache) oft als selbst definierend beschrieben, deshalb ist das Metamodell des Metametamodells wiederum das Metametamodell selbst. Viele Ansätze in MDE definieren, wie in Abbildung 2.3 dargestellt, vier Abstraktionsebenen: System, Modell, Metamodell und Metametamodell. Die Abbildung 2.3 stellt die Modellierungsebenen des MDE Ansatzes dar, welche zunächst einzeln beschrieben werden. Ebene: M3 definiert definiert Metametamodell definiert Metasprache Ebene: M2 beschreibt ausgedrückt in beschreibt Metamodell definiert Sprache Ebene: M beschreibt ausgedrückt in Modell Ebene: M0 beschreibt System Abbildung 2.3. Abstraktionsebenen in modellgetriebenen Entwicklungsansätzen M0 System bzw. Instanz-Ebene. Auf dieser Ebene werden die Objekte definiert, die Elemente aus der realen Welt sind, und im Modell zu verwenden sind.

23 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 6 M - Modell-Ebene. Hier wird das Modell definiert, dazu wird Instanziierung der im Metamodell verwendeten Elemente eingesetzt. Modellierung dient, wie im vorigen Abschnitt beschrieben, zur Beschreibung einer bestimmten Domäne, dazu werden Modelle entwickelt. Diese Modelle werden durch eine gewisse Sprache (Modellierungssprache) beschrieben. Wie alle anderen Sprachen haben auch Modellierungssprachen eine eigene Syntax und Semantik. Durch die Syntax werden die Anordnung der Sprachkonstrukte und die konkrete Repräsentation für die einzelnen Sprachkonstrukte definiert. Durch die Semantik der Sprache wird die Bedeutung der Sprachkonstrukte der Modellierungssprache festgelegt. M2 - Metamodell-Ebene. Hier werden die Sprachkonstrukte der entsprechenden Sprache definiert. Das passiert durch Instanziierung der im Metametamodell verwendeten Elemente. Durch die Metamodellierung ist es möglich, die Eigenschaften einer Modellierungssprache zu beschreiben. Diese Metamodelle werden wiederum durch eine gewisse Sprache (Metasprache oder Metamodellierungssprache) beschrieben, die wiederum eine eigene Syntax und Semantik besitzen. M3 - Metametamodell-Ebene. Hier werden die Elemente definiert, die zur Beschreibung von Metamodellen verwendet werden können. Die Funktionsweise der Metametamodellierung ist analog zur Metamodellierung. Durch die Metametamodellierung werden die Eigenschaften der Metasprache beschrieben. Es wurde gesagt, dass Metamodelle zur Definition einer Menge von Modellen verwendet werden und Metametamodelle die Spezifikation aller möglichen Metamodelle inklusiv sich selbst ermöglichen. Dazu wird ein sich selbst beschreibendes Metametamodell benötigt. Zu den selbst beschreibenden Metametamodellen zählen z.b. von der Object Management Group (OMG) entwickelte Meta Object Facility (MOF [OMG04], EMF Ecore [Bud03], Kermeta [Mul05], Kernel Metametamodel [Jou06], Corel Simple Metamodel Description (SMD [Ala04] usw. Von diesen Metametamodellen werden nur MOF und Ecore im Rahmen dieser Diplomarbeit betrachtet, weil diese die bekanntesten Standards sind Modelltransformation In der modellgetriebenen Entwicklung müssen die Modelle in einen Übersetzungsprozess überführt werden, um schließlich ausführbaren Code zu generieren. Für diesen Übersetzungsprozess werden Modelltransformationen eingesetzt. Grundsätz-

24 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 7 lich können zwischen zwei verschiedenen Arten von Modelltransformationen unterschieden werden:. Modell-zu-Code Transformation 2. Modell-zu-Modell Transformation Bei einer Modell-zu-Code Transformation wird das Modell zu Code (Text) transformiert, wodurch dessen Verarbeitung durch die Plattform (Programmiersprache) ermöglicht wird. Bei dieser Transformationsart ist das Metamodell nicht unbedingt notwendig, da es sich bei dieser Transformationsart um die Erzeugung des Texts geht, der nicht in Bezug auf das Metamodell geprüft wird [Ker06]. Bei einer Modell-zu-Modell Transformation wird mindestens ein Quell-Modell in ein bzw. mehrere Ziel-Modelle transformiert. Dabei geht es um die Abbildung einer Instanz des Quell-Metamodells durch eine Instanz des Ziel-Metamodells. Weil es sich um beliebige Instanzen handelt, müssen sich die Transformationsregeln auf die Konstrukte des Metamodells beziehen [Sch07]. Dafür werden entsprechende Transformationsregeln definiert, die die Abbildungseigenschaften des ursprünglichen und des Ziel-Modells bestimmen. Als Standardsprache für Modell-zu-Modell Transformationen wird QVT (Queries/Views/Transformations) verwendet. QVT ist eine Relationssprache zur Beschreibung von Modelltransformationen Modellgetriebene Entwicklungsansätze Es gibt viele verschiedene Ansätze, die versuchen MDE umzusetzen, wie z.b. Model Driven Architecture (MDA), Model Driven Software Development (MDSD) [Sta06], Model Integrated Computing (MIC). Diese Ansätze gehen davon aus, dass formale Modelle eine sehr große Rolle im Lebenszyklus von Software spielen [Kue07]. In dieser Diplomarbeit wird von diesen genannten Ansätzen nur MDA näher erklärt, weil sich der von MDWEnet vorgeschlagene Modellintegrationsansatz für Web- Anwendungen, der für die Erreichung der Ziele der Diplomarbeit einzusetzen ist, an die MDA anlehnt.

25 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen Model Driven Architecture (MDA) Der von der Object Management Group (OMG) entworfene MDA Ansatz ist der erste und bekannteste Ansatz für die Spezifikation von Softwaresystemen. Die Object Management Group (OMG) verfolgte das Hauptziel, Portabilität durch Plattformunabhängigkeit, Interoperabilität (Herstellerunabhängigkeit) durch Standards und Wiederverwendbarkeit der Software durch abstrakte Modelle zu verbessern [OMG03]. Das graphische Symbol für die MDA in Abbildung 2.4 verdeutlicht die Strategie [Pet06]. Jede einzelne Schicht besteht aus OMG Standards. Abbildung 2.4. Aufbau der MDA [Pet06] Basis-Standards. In Abbildung 2.4 repräsentiert die innerste Schicht den MDA Kern. Der MDA-Kern beschäftigt sich mit dem wichtigsten Teil des MDA Ansatzes, nämlich mit der Modellierung. Der MDA-Kern integriert die von der OMG spezifizierten Standards wie UML (Unified Modeling Language), MOF (Meta Object Facility), QVT und CWM (Common Warehouse Metamodel). Der bekannteste Standard der MDA ist die Modellierungssprache UML (Unified Modeling Language) zur Spezifikation, Visualisierung und Dokumentation der Software-Systeme. UML verfügt über zahlreiche Erweiterungen (UML-Profiles genannt) für domänenspezifische Anwendungen [Voe08]. UML-Profiles sind der UML-Sprache integrierte Erweiterungsmechanismus von fachlichen oder technischen Domänen. Dadurch kann von UML eine generische

26 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 9 Modellierungssprache spezialisiert werden, d.h. für eine bestimmte Domäne angepasst werden. Nach [Pet06] wird im Sinne einer verbesserten Kompatibilität von Software- Systemen untereinander und damit auch der Möglichkeit der Wiederverwendbarkeit der Spezifikationen untereinander großer Wert darauf gelegt, den eigenen Spezifikationen einen gemeinsamen Überbau zu geben, damit eine einheitliche und gemeinsame Modellierungsbasis zur Verfügung steht. So gibt es diesen Überbau in Form von MOF. MOF ist ein weiterer Standard der OMG zur Definition von Metamodellen. Alle anderen Metamodelle basieren auf MOF. UML- und CWM- Metamodelle instanziieren MOF. MOF spielt eine große Rolle in MDA. Da es die Struktur der Metamodelle definiert, ermöglicht es, dass alle Metamodelle, die Instanzen von MOF sind, auf dieselbe Art und Weise bearbeitet werden können, weil sie alle MOF als Metamodell und daraus folgend dieselben Bausteine haben. Dadurch wird es weiters ermöglicht, dass die MOF-konformen Modelle in einem MOF-Repository gespeichert, transformiert und mittels XMI ausgetauscht werden können. Das impliziert, dass ohne MOF als Basis-Metamodell, der Aufwand für die Realisierung der Modelltransformationen und für den Modellaustausch viel höher wäre. Einer der geeigneten Werkzeuge für die Erstellung der Metamodelle ist das Eclipse Modeling Framework (EMF). EMF ist ein Eclipse Plug-In, das zur Verarbeitung von Modellstrukturen und Code-Generierung aus Modellen dient. EMF wurde von IBM mit dem Ziel entwickelt, MOF umzusetzen und wird deshalb als Bestandteil des MDA Ansatzes gesehen. EMF legt den Fokus auf die Zusammenführung von UML, XML und Java und generiert Java-Code aus formalen Modellen. EMF hat ein eigenes Metamodell namens Ecore, das große Ähnlichkeiten mit MOF hat und deshalb als deren Implementierung betrachtet werden kann [Gru06]. QVT definiert die Anforderungen für die Transformations- und Anfragesprachen. Die Spezifikation bezieht sich auf einen weiteren OMG Standard, auf die Sprache OCL 2.0. Mit Einführung von QVT verfolgte OMG das Ziel, Homogenität in Bezug auf die Unterstützung der MDA-Transformationen zu schaffen. QVT soll die Abbildung von MOF-kompatiblen Modellen ineinander ermöglichen [Soe06]. Das XMI (XML Metadata Interchange) Framework ist ebenfalls ein wichtiger Basis- Standard der OMG. XMI dient zur Modellspeicherung bzw. zum Austausch von Daten und Metadaten von Modellen, die als Basis MOF haben. Dabei ist das Format XML basiert.

27 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 20 OMG definiert eine weitere Basistechnologie, Common Warehouse Metamodel CWM für die Beschreibung der Datenstrukturen und für die Modellierung von Metadaten im Data Warehousing. Technologien. Rund um die Basis-Standards in Abbildung 2.4 ist die nächste Schicht dargestellt. In dieser Schicht sind die für die modellierte Anwendung notwendigen Technologien bzw. die Ziel-Plattformen für die Modelltransformationen dargestellt. Diese sind Common Object Request Broker Architecture (CORBA), Java,.NET, Web Services und XML. Dienste. Die äußerste Schicht in Abbildung 2.4 stellt die unterstützenden Dienste dar. Diese sind Pervasive Services, Security, Events, Transactions und Directory. Diese grundlegenden Dienste werden unabhängig von der zu implementierenden Plattform benötigt und durch Transformationen in beliebige Implementierungen realisiert. Anwendungsgebiete. In Abbildung 2.4 geben die Pfeile an der äußersten Schicht einen Überblick über einige der verschiedenen Domänen oder Anwendungsgebiete, für die die Software-Systeme entwickelt werden [Pet06]. MDA Modelle. Die drei Hauptziele des MDA Ansatzes sind wie vorher angesprochen, Verbesserung der Portabilität durch Plattformunabhängigkeit, der Interoperabilität (Herstellerunabhängigkeit) durch Standards und der Wiederverwendbarkeit der Software durch abstrakte Modelle. Diese Ziele konnten durch Trennung der fachlichen Konzepte von den technischen Konzepten erreicht werden. D.h. die Spezifikation der Systemfunktionen soll von den technischen Details der Nutzung der Plattform während der Realisierung der Spezifikation getrennt werden. Durch Erreichung dieser Ziele kann gleichzeitig auch die Entwicklungsgeschwindigkeit und die Qualität der Software erhöht werden. Deshalb unterscheidet der MDA Ansatz verschiedene Abstraktionsebenen. Auf jeder Ebene werden verschiedene Modelle verwendet. Laut [Pet06] gibt es in MDA drei Grundmodelle (CIM, PIM und PSM) und zwei weitere Modelle (PM, PSI). CIM Computation Independent Model. Das CIM Modell wird auch als DomainModel oder Business-Model bezeichnet. Es wird auf der Ebene mit gröbstem Detaillierungsgrad erstellt. Das Modell ist unabhängig von den technischen Aspekten, es beschreibt nicht das Verhalten oder die Innenstruktur des Software- Systems, sondern betrachtet das System von Außen. Es wird eine ganz allgemeine Beschreibung über das System erstellt. Modelliert werden die Geschäftsprozesse und

28 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 2 deren Aspekte. Dieses Modell ist somit auch unabhängig von der Implementierung des Software-Systems. PIM Platform Independent Model. Da das CIM Modell nur Geschäftsprozesse beschreibt und über die innere Struktur des Systems keine Informationen enthält, kann es für Automatisierung der Abbildungstransformationen nicht nützlich sein. Deshalb wird aus CIM Modell durch die Modell-zu-Modell Transformation ein plattformunabhängiges Modell (das PIM Modell) generiert. PIM Modell befindet sich auf der Ebene mit feinerem Detaillierungsgrad. Hier werden Aspekte des Software-Systems betrachtet, dies geschieht aber, ohne dass auf plattformspezifische Details eingegangen wird. Das Modell beschreibt die Funktionsweise und Verhalten des Software-Systems und ist plattformunabhängig. Dieses Modell erleichtert wegen der Plattformunabhängigkeit die Portierung des Systems auf einer beliebigen Plattform. CIM Modell-zu-Modell Transformation Modell-zu-Modell Transformation PIM und weitere PSM (J2EE) PSM (.NET) PSM (CORBA) PSM Modell-zu-Code Transformation PSI (Java) PSI (C#) PSI (C++) PSI Abbildung 2.5. MDA Modelle PSM Plattform Specific Model. Das PIM Modell kann durch Betrachtung plattformspezifischen Details durch Modell-zu-Modell Transformationen zu einem oder mehreren PSMs transformiert werden. Das PSM Modell dient zur Beschreibung der Interaktion zwischen dem Software-System und seinem Umfeld. Dazu zählt z.b. die Bestimmung der sprachspezifischen Programmierelemente, die verwendet worden sind. Das PSM Modell ist abhängig von der Implementierungstechnologie und ist daraus folgend plattformspezifisch. Das Ziel ist, die Transformationen zu automatisieren, sodass aus dem PSM durch eine Modell-zu-Code Transformation der notwendige Programmcode (PSI) generiert

29 Einführung in die modellgetriebene Entwicklung von Web-Anwendungen 22 werden kann. Zurzeit wird jedoch nur teil-automatische Code-Generierung unterstützt, der Rest muss manuell ergänzt werden. PM Platform Model. Das Plattform Modell repräsentiert die Plattform auf der Modellebene. Mit einer Plattform werden die Komponenten oder Technologien bezeichnet, die über spezifizierte Schnittstellen verwendet werden können [Kem05]. Die Plattform dient zur Bereitstellung bestimmter Dienste, ohne die die Funktionalität der Software nicht gewährleistet werden kann. PSI Plattform Specific Implementation. Durch PSI wird die letzte Ebene der Software-Erstellung abgebildet, wo manuelle Eingriffe noch möglich sind. Üblicherweise ist es der Sourcecode. Die Unterscheidung zwischen PSM und PSI (Code) wird meistens nicht verwendet, da auch der Code als PSM bezeichnet werden kann. MDA Transformationsprozess. Die Verwendung von Metamodellen bei der Modellierung ermöglicht, dass die Modellelemente eindeutig beschrieben werden. Solche Modelle sind auch leichter zu transformieren. MDA geht von dem Grundgedanken aus, dass Modelle Artefakte der Software- Entwicklung sind und dass Modelltransformationen die automatische Implementierung der Software-Anwendung ermöglichen. Als Artefakt wird das Resultat bezeichnet, dass im Laufe eines Software-Projekts erzeugt wird. Beispiele für Artefakte sind Modelle, Dokumente, Programmcode, Tools der Entwicklungsumgebung. In der modellgetriebenen Entwicklung wird die Transformation von Modellen der automatisierten Weiterverarbeitung der Artefakte gleichgesetzt. Die Transformation eines Artefakts in ein anderes erfolgt normalerweise in zwei Schritten [Pet06]:. Automatisierte Transformation der Informationen, die im Quell-Artefakt vorhanden sind, in die Struktur des Ziel-Modells 2. Manuelle Vervollständigung der Ziel-Modelle mit den Informationen, die nicht im Quell-Modell vorhanden sind Das erzeugte Ziel-Modell kann später als Quell-Modell für eine weitere Transformation verwendet werden. Die Vorteile dieser Vorgehensweise sind nach [Pet06]: Der Entwickler kann sich auf das Wesentliche konzentrieren

Model Driven Architecture (MDA)

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

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

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

Mehr

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

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

Mehr

Model Driven Development 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

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

Model Driven Architecture Praxisbeispiel

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

Mehr

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

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

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

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

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

Mehr

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

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

Mehr

Barrierefreie Webseiten erstellen mit TYPO3

Barrierefreie Webseiten erstellen mit TYPO3 Barrierefreie Webseiten erstellen mit TYPO3 Alternativtexte Für jedes Nicht-Text-Element ist ein äquivalenter Text bereitzustellen. Dies gilt insbesondere für Bilder. In der Liste der HTML 4-Attribute

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

1 Mathematische Grundlagen

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

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

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

Mehr

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

Java Enterprise Architekturen Willkommen in der Realität

Java Enterprise Architekturen Willkommen in der Realität Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen

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

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

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

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

Mehr

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung 1 Einleitung 1.1 Motivation und Zielsetzung der Untersuchung Obgleich Tourenplanungsprobleme zu den am häufigsten untersuchten Problemstellungen des Operations Research zählen, konzentriert sich der Großteil

Mehr

Übungen zur Softwaretechnik

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

Mehr

Content Management System mit INTREXX 2002.

Content Management System mit INTREXX 2002. Content Management System mit INTREXX 2002. Welche Vorteile hat ein CM-System mit INTREXX? Sie haben bereits INTREXX im Einsatz? Dann liegt es auf der Hand, dass Sie ein CM-System zur Pflege Ihrer Webseite,

Mehr

Data Lineage goes Traceability - oder was Requirements Engineering von Business Intelligence lernen kann

Data Lineage goes Traceability - oder was Requirements Engineering von Business Intelligence lernen kann Data Lineage goes Traceability - oder was Requirements Engineering von Business Intelligence lernen kann Andreas Ditze MID GmbH Kressengartenstraße 10 90402 Nürnberg a.ditze@mid.de Abstract: Data Lineage

Mehr

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

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

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

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

Mehr

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

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin Fragestellungen: Warum reicht das Lastenheft nicht aus? Was kann ich mit dem Lastenheft machen? Was unterscheidet das Pflichtenheft vom Lastenheft? Was gehört zum Auftragsumfang einer Individualsoftware?

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Robot Karol für Delphi

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

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch. Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf 2 Nach derbefragung aller Stakeholder und der Dokumentation

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Use Cases. Use Cases

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

Mehr

Inhalt. Motivation Techniken des MDE. Fallbeispiele

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

Mehr

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

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

Mehr

Klaus Schild, XML Clearinghouse 2003. Namensräume

Klaus Schild, XML Clearinghouse 2003. Namensräume Namensräume Lernziele Namenskonflikte Warum lösen im World Wide Web einfache Präfixe dieses Problem nicht? Wie lösen globale Namensräume das Problem? Wie werden sie in XML-Dokumenten benutzt? Was sind

Mehr

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

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

Mehr

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

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

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

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

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang Einleitung Dieses Buch wendet sich an jeden Leser, der die Programmiersprache C++ neu lernen oder vertiefen möchte, egal ob Anfänger oder fortgeschrittener C++-Programmierer. C++ ist eine weitgehend plattformunabhängige

Mehr

Workflow Systeme mit der Windows Workflow Foundation

Workflow Systeme mit der Windows Workflow Foundation Studiengang Electronic Business (EB) Diplomarbeit (280000) Workflow Systeme mit der Windows Workflow Foundation externe Betreuung durch Christoph Müller vorgelegt bei Prof. Dr. Michael Gröschel von Hans-Martin

Mehr

Business-Rule-Management als Instrument des Software-Reengineering

Business-Rule-Management als Instrument des Software-Reengineering Business-Rule-Management als Instrument des Software-Reengineering Olaf Resch Olaf Resch am 4. Mai 2005 in Bad Honnef 1 Agenda Software und Wissen. Verschmelzung als Evolutionshindernis. Business-Rule-Technologie.

Mehr

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert. Usability Heuristiken Karima Tefifha Proseminar: "Software Engineering Kernkonzepte: Usability" 28.06.2012 Prof. Dr. Kurt Schneider Leibniz Universität Hannover Die ProSeminar-Ausarbeitung beschäftigt

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Thema: Microsoft Project online Welche Version benötigen Sie?

Thema: Microsoft Project online Welche Version benötigen Sie? Seit einiger Zeit gibt es die Produkte Microsoft Project online, Project Pro für Office 365 und Project online mit Project Pro für Office 365. Nach meinem Empfinden sind die Angebote nicht ganz eindeutig

Mehr

Projektmanagement in der Spieleentwicklung

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

Mehr

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

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

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

Software-Engineering

Software-Engineering FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 2: Grundbegriffe und Prinzipien FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 2 Grundbegriffe

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

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

Mehr

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

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

Mehr

Bilder Schärfen und Rauschen entfernen

Bilder Schärfen und Rauschen entfernen Bilder Schärfen und Rauschen entfernen Um alte Bilder, so wie die von der Olympus Camedia 840 L noch dazu zu bewegen, Farben froh und frisch daherzukommen, bedarf es einiger Arbeit und die habe ich hier

Mehr

Übung: Verwendung von Java-Threads

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

Mehr

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

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Semantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph!

Semantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph! Semantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph! www.semantic-web-grundlagen.de Ontology Engineering! Dr. Sebastian Rudolph! Semantic Web Architecture

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

Workflow, Business Process Management, 4.Teil

Workflow, Business Process Management, 4.Teil Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung

Mehr

Microsoft SharePoint 2013 Designer

Microsoft SharePoint 2013 Designer Microsoft SharePoint 2013 Designer Was ist SharePoint? SharePoint Designer 2013 Vorteile SharePoint Designer Funktionen.Net 4.0 Workflow Infrastruktur Integration von Stages Visuelle Designer Copy & Paste

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

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003 Software Engineering Softwaretechnik Softwaretechnologie, Software Engineering (engl.) das, -, Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen für das ingenieurmäßige Entwerfen, Herstellen

Mehr

Dr. Klaus Körmeier BlueBridge Technologies AG

Dr. Klaus Körmeier BlueBridge Technologies AG Dr. Klaus Körmeier BlueBridge Technologies AG Agenda Was ist ein SharePoint Wiki Anwendungsbeispiele und Erweiterungen Was ist beim Einsatz zu beachten Zusammenfassung Partner Partner BlueBridge AG SharePoint-Erfahrung

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

Fragebogen: Abschlussbefragung

Fragebogen: Abschlussbefragung Fragebogen: Abschlussbefragung Vielen Dank, dass Sie die Ameise - Schulung durchgeführt haben. Abschließend möchten wir Ihnen noch einige Fragen zu Ihrer subjektiven Einschätzung unseres Simulationssystems,

Mehr

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage. Integration mit Die Integration der AristaFlow Business Process Management Suite (BPM) mit dem Enterprise Information Management System FILERO (EIMS) bildet die optimale Basis für flexible Optimierung

Mehr

Favoriten sichern. Sichern der eigenen Favoriten aus dem Webbrowser. zur Verfügung gestellt durch: ZID Dezentrale Systeme.

Favoriten sichern. Sichern der eigenen Favoriten aus dem Webbrowser. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Favoriten sichern Sichern der eigenen Favoriten aus dem Webbrowser zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 20 Inhaltsverzeichnis Einleitung... 3 Mozilla Firefox...

Mehr

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Design Pattern - Strukturmuster CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Agenda Einleitung Strukturmuster Fassade Model View Controller Vergleich 2 Einleitung Strukturmuster

Mehr

Einführung und Motivation

Einführung und Motivation Einführung und Motivation iks-thementag: Requirements Engineering 16.11.2010 Autor Carsten Schädel Motto Definiere oder Du wirst definiert. Seite 3 / 51 These Im Privatleben definiert jeder (seine) Anforderungen.

Mehr

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

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

Mehr

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

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

Mehr

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

Look Inside: desite. modellorientiertes Arbeiten im Bauwesen. B.I.M.

Look Inside: desite. modellorientiertes Arbeiten im Bauwesen. B.I.M. Building Information Modeling Look Inside: desite modellorientiertes Arbeiten im Bauwesen. B.I.M. desite MD unterstützt Sie bei der täg lichen Arbeit mit Gebäudemodellen und ermöglicht den Zugang zu den

Mehr

Forschungsprojekt SS 2009

Forschungsprojekt SS 2009 Forschungsprojekt SS 2009 Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web: www.ds-lab.org Gliederung n Ziel

Mehr

Beschreibung des MAP-Tools

Beschreibung des MAP-Tools 1. Funktionen des MAP-Tool 2. Aufbau des MAP-Tools 3. Arbeiten mit dem MAP-Tool Beschreibung MAP-Tool.doc Erstellt von Thomas Paral 1 Funktionen des MAP-Tool Die Hauptfunktion des MAP-Tools besteht darin,

Mehr

SICHERN DER FAVORITEN

SICHERN DER FAVORITEN Seite 1 von 7 SICHERN DER FAVORITEN Eine Anleitung zum Sichern der eigenen Favoriten zur Verfügung gestellt durch: ZID Dezentrale Systeme März 2010 Seite 2 von 7 Für die Datensicherheit ist bekanntlich

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

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch. Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf Nachdem die Projekt-Vision und die Stakeholder bekannt sind,

Mehr

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

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

Mehr

Microsoft Access 2013 Navigationsformular (Musterlösung)

Microsoft Access 2013 Navigationsformular (Musterlösung) Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft Access 2013 Navigationsformular (Musterlösung) Musterlösung zum Navigationsformular (Access 2013) Seite 1 von 5 Inhaltsverzeichnis Vorbemerkung...

Mehr

Reporting Services und SharePoint 2010 Teil 1

Reporting Services und SharePoint 2010 Teil 1 Reporting Services und SharePoint 2010 Teil 1 Abstract Bei der Verwendung der Reporting Services in Zusammenhang mit SharePoint 2010 stellt sich immer wieder die Frage bei der Installation: Wo und Wie?

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Die Softwareentwicklungsphasen!

Die Softwareentwicklungsphasen! Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

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

Mehr

Die Entwicklung eines Glossars (oder eines kontrollierten Vokabulars) für ein Unternehmen geht üblicherweise in 3 Schritten vor sich:

Die Entwicklung eines Glossars (oder eines kontrollierten Vokabulars) für ein Unternehmen geht üblicherweise in 3 Schritten vor sich: Glossare 1 Inhalt 1 Inhalt... 1 2 Prozesse... 1 3 Eine kleine Zeittabelle...... 1 4 Die ersten Schritte... 2 5 Die nächsten Schritte...... 2 6 Die letzten Schritte... 3 7 Das Tool...... 4 8 Beispiele...

Mehr

Einfaches, integriertes Projektmanagement mit Standard-Tools effizient planen und umsetzen

Einfaches, integriertes Projektmanagement mit Standard-Tools effizient planen und umsetzen Einfaches, integriertes Projektmanagement mit Standard-Tools effizient planen und umsetzen von Dipl.-Ing. Christian Eichlehner Eines der Kernelemente zur erfolgreichen Projektabwicklung ist eine gute Strukturierung

Mehr

Die itsystems Publishing-Lösung

Die itsystems Publishing-Lösung Die itsystems Publishing-Lösung www.itsystems.ch 1/6 Inhaltsverzeichnis 1 Publishing-Portal Funktionsübersicht... 3 1.1 Umfang des itsystems Portal... 3 1.2 Portal-Lösungsübersicht... 4 www.itsystems.ch

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

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock infach Ihr Weg zum finanzellen Erfolg Geld Florian Mock FBV Die Grundlagen für finanziellen Erfolg Denn Sie müssten anschließend wieder vom Gehaltskonto Rückzahlungen in Höhe der Entnahmen vornehmen, um

Mehr

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

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

Mehr

Techniken der Projektentwicklungen

Techniken der Projektentwicklungen Von der Analyse zum Entwurf 5. Termin Vom Use Case zum Domänenmodell Bis zum nächsten Mal Vom Use Case zum Domänenmodell Vom Use Case zum Domänenmodell Was ist ein Domänenmodell? Graphische Beschreibung

Mehr

Intranet E-Mail Moodle

Intranet E-Mail Moodle Intranet E-Mail Moodle Manual für Lernende V1.0 1 / 8 Inhaltsverzeichnis Übersicht... 3 1. Intranet... 3 2. Anmeldenamen... 4 3. Passwort... 4 3.1 Erste Anmeldung... 4 3.2 Passwort ändern... 5 3.3 Passwort

Mehr

REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1

REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1 REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1 QUALITÄT FÜR SIE Qualität zeigt sich in Ergebnissen und Erfolgen. Sie hängt von der jeweiligen Problemstellung ab, deshalb sehen wir

Mehr

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

IBM Software Demos Tivoli Provisioning Manager for OS Deployment Für viele Unternehmen steht ein Wechsel zu Microsoft Windows Vista an. Doch auch für gut vorbereitete Unternehmen ist der Übergang zu einem neuen Betriebssystem stets ein Wagnis. ist eine benutzerfreundliche,

Mehr