Modellgetriebene Softwareentwicklung

Größe: px
Ab Seite anzeigen:

Download "Modellgetriebene Softwareentwicklung"

Transkript

1 Technische Universität Berlin Ausarbeitung SWT Praxis-Seminar SS 2008 Modellgetriebene Softwareentwicklung Roman P. Zimmer (300835) 29. Juni 2008 Betreut durch Dr. Stephan Herrmann und Marco Mosconi

2 Inhaltsverzeichnis 1 Einleitung Traditionelle Softwareentwicklung Problematik Unied Modeling Language Anwendungs-Frameworks am Beispiel von Ruby on Rails Domainbasierte Modellierung Die Vision von Modellgetriebene Softwareentwicklung Modellgetriebene Softwareentwicklung Denition nach [1] Formale Modelle Lauähige Software erzeugen Automatisch Funktionsweise Domäne Modellierungssprachen Domain Specic Language Modellierung Transformationen Abschlieÿende Worte Kernkonzepte Gründe für Modellgetriebene Softwareentwicklung Ausblick Fazit

3 1 Einleitung 1.1 Traditionelle Softwareentwicklung Problematik Es gibt unzählige Möglichkeiten, Software zu implementieren. In der Regel stellen die Ansprüche an das System die Softwareentwickler vor gewisse Probleme. Neben dem Erfüllen der funktionalen Anforderungen soll es u. a. meist modular aufgebaut, in groÿen Teilen wiederverwendbar, einfach wartbar sein. Gerade im Hinblick auf die zunehmende Komplexität der Softwaresysteme erforderte dies ein sinnvoll durchdachtes Design. Um die dafür nötige Abstraktion zu erreichen, haben sich insbesondere in der objektorientierte Programmierung (OOP) Modellierungssprachen etabliert Unied Modeling Language Unied Modeling Language (UML) ist wohl eine der populärsten Modellierungssprache, die sich im Laufe der 90er Jahre durchsetzte. Durch die UML werden eine Vielzahl von unterschiedlichen Diagrammtypen deniert, wobei hier nur auf das Klassendiagramm eingegangen werden soll. UML-Klassendiagramme sind darauf ausgelegt, abgegrenzte Systeme im Kontext der Objektorientierung zu modellieren, wobei sie dabei auf keine Domäne beschränkt sind. Ist solch ein System erst einmal modelliert, wird dies in der Regel manuell sprich durch einen oder mehrere Softwareentwickler oder durch entsprechende Tools in Quelltext einer beliebigen OOP-Sprache überführt. Daraus ergeben sich jedoch eine Reihe von Problemen. Zum einen ist solch eine Abbildung durch einen Programmierer u. U. sehr interpretativ. Selbst bei der Verwendung von Tools ist man auf die Klassendiagramm- Interpretation der Tools-Entwickler angewiesen. Zum anderen wird nach dem erstmaligen Erstellen des Quelltextgrundgerüsts fortan nur noch im Code selber gearbeitet. Eine Gewährleistung, dass das Diagramm den aktuellen Quelltext repräsentiert, gibt es dann nicht mehr. In der Regel kommt es zwangsläug im Zuge der Softwareevolution zur Divergenz von Quelltext und Modell, welche letzten Endes zu einer Diskrepanz führt 1. Das Klassendiagramm dient dann nur noch zu Dokumentationszwecken ohne jedwede Garantie auf Richtigkeit. Ein weiterer nicht zu vergessener Nachteil ist die Tatsache, dass sich Klassendiagramme meist an Softwareentwickler richten und nur von ihnen verstanden werden andere beteiligte Experten haben das Nachsehen. 1 Selbst die besten UML-Werkzeuge können dies nicht wirklich verhindern. 3

4 1.1.3 Anwendungs-Frameworks am Beispiel von Ruby on Rails Frameworks erleichtern die Arbeit von Entwicklern ungemein, in dem sie ihn von lästigen und sich immer wiederholenden Programmieraufgaben befreien. Anhand von wenigen Parametern generieren sie Basisbestandteile des Systems. Ein populäres Beispiel dafür ist Ruby on Rails (Rails). Rails ist u. a. in der Lage aus Datenbanktabellen ein gesamtes CRUD-Interface ohne groÿes Zutun des Entwicklers zu generieren. Ändert man die Tabelle, so ändert sich auch das entsprechende Interface zur Bearbeitung. Weiteres Prinzip, welches hilft, ein gutes Design umzusetzen: Rails setzt das DRY-Prinzip um. So ist jede Information nur einmal im System vorhanden und somit lokal anpassbar. So viel Arbeit dies dem Programmierer abnimmt, so limitiert ist diese Generierung dann doch. Sie beschränkt sich hauptsächlich auf das Datenbankmodell und setzt direktes Auseinandersetzen mit der verwendeten Technologie voraus. Dadurch wird das System auf einem relativ niedrigen Abstraktionslevel entwickelt, welches sich für Nicht- Entwickler nicht erschlieÿt Domainbasierte Modellierung Schön wäre es doch, wenn man ein Abstraktionslevel erreichen könnte, welches für Domainexperten und Softwareentwickler gleichermaÿen aussagekräftig ist. Dabei dürfte es trotz der Abstraktion nichts an seiner Präzision und Aussagekraft verlieren. Diesen Spagat schat die domainbasierte Modellierung. Sie hat zum Ziel, das System mit Sprachmitteln aus der Domäne zu beschreiben. Die Modelle enthalten so viel Semantik, dass sie gewissermaÿen den gleichen Stellenwert wie Code erreichen. Dabei bleiben sie abstrakt genug und hängen insbesondere von keiner Zielplattform oder -technologie ab. 1.2 Die Vision von Modellgetriebene Softwareentwicklung Die Vision hinter der Modellgetriebene Softwareentwicklung (MDSD) ist es nun, auf Basis eines domainbasierten Modells sozusagen auf Knopfdruck Software für eine beliebige Zielplattform zu generieren. In wie weit dies vielleicht schon heute Realität ist oder ob dieses ehrgeizige Ziel Utopie bleiben wird, soll u. a. in dieser Ausarbeitung näher beleuchtet werden. Beispiel Es soll eine Handyapplikation zum An- und Abmelden für Konferenzen entwickelt werden. Mittels domainbasierter Entwicklung würde z. B. ein Modell dabei herauskommen, wie es in 1.1 gezeigt wird. Je nach Auswahl, soll der Benutzer durch einen An- bzw. Abmeldeprozess geführt werden. Dabei bekommt er stets Feedback durch das System. 4

5 Man beachte insbesondere die Modellelemente für SMS und die GUI. An diesem Beispiel sieht man gut, dass das System auch für Nicht-Entwickler intuitiv verständlich ist, dabei aber nicht an Präzision einbüÿt. Anhand dieses Beispiels sieht man auch die hinter MDSD steckende Vision: Per Knopfdruck kann entschieden werden, für welche Zielplattform aus ein und demselben Modell ein lauähiges Softwareprodukt wird. Die Tools generieren uns automatisch das entsprechende Programm (siehe Run As in 1.1). Abbildung 1.1: Eine simple, domainbasierte modellierte Handyapplikation. 5

6 2 Modellgetriebene Softwareentwicklung 2.1 Denition nach [1] Modellgetriebene Softwareentwicklung (MDSD) ist ein Oberbegri für Techniken, die aus formalen Modellen automatisiert lauähige Software erzeugen. Im Folgenden sollen die wichtigen Aspekte dieser Denition noch einmal aus der Nähe betrachtet werden Formale Modelle Formale Modell beschreiben die anwendungsspezischen Anforderungen an die Software. Formal in diesem Zusammenhang bedeutet, dass das Modell einen beliebigen Aspekt des Programms vollständig speziziert. Die Repräsentation von formalen Modellen erfolgt nicht immer zwangsläug in gra- scher oder UML-basierter Form. Vielmehr ist oft genug die textuelle Notation ein adäquates Mittel zur Beschreibung von formalen Modellen Lauähige Software erzeugen Das Resultat von MDSD ist lauähige Software. Wird ein formales Modell dagegen nur zu Dokumentationszwecken oder als Grundlage für eine manuelle Implementation speziziert, so spricht man nicht von modellgetriebener Entwicklung. Um aus Modellen lauähige Software zu erzeugen, gibt es hauptsächlich zwei Herangehensweisen: mittels Generatoren und mittels Interpretern. Generatoren übersetzen ein Modell in Quelltext einer beliebigen Programmiersprache, während Interpreter Modelle einlesen und direkt ausführen. In beiden Ansätzen entsteht am Ende lauähige Software Automatisch Die Überführung von einem Modell zur Software soll automatisch bzw. automatisierbar sein. D. h. konkret, dass ein Build-Prozess denierbar ist, der als Eingabe ein formales Modell bekommt und bei dem am Ende ein lauähiges Stück Software als Ergebnis steht. Im Entwicklungsprozess nehmen die Modelle die Rolle von Software ein. Im Gegensatz zu Wizards, die am Anfang der Entwicklung beim Erstellen eines Grundgerüstes helfen, welches fortan manuell auszubauen ist, werden in der MDSD Änderungen an 6

7 den Modellen vorgenommen. Generierte Artefakte sind temporäre Zwischenprodukte, bei Modelländerung wird einfach alles aus dem Modell neu erzeugt. Dies hat zur Folge, dass die Modelle immer den aktuellen Stand widerspiegeln und der Code einheitlich und synchron mit den Modellen bleibt. In wie weit tatsächlich alles automatisch generiert werden kann oder ob manuelles Implementieren nötig sind, soll im Laufe der Ausarbeitung deutlich gemacht werden. 2.2 Funktionsweise Die Entwicklung mittels MDSD teilt sich in drei Phasen (siehe Modellentwicklung in der Domäne 2. Transformation des Modells 3. Generierung plattformspezischer Artefakte Abbildung 2.1: Die drei Phasen der MDSD. Im Folgenden werden alle Phasen genauer betrachtet Domäne MDSD arbeitet immer im Rahmen einer Domäne. Eine Domäne ist ein begrenztes Interessengebiet oder ein bestimmter Einsatzbereich von Software ([3]). Dabei werden Domänen ggf. in Subdomänen unterteilt, um die Komplexität einer Domäne besser beherrschbar zu machen Modellierungssprachen Bevor die Modellierung in der Domäne genauer betrachtet wird, soll kurz der Begri der Modellierungssprache eingeführt werden. Modellierungssprachen bestehen aus: 7

8 Metamodell Abstrakte Syntax Statische Semantik Konkrete Syntax Metamodell Das Metamodell bildet die Basis der Modellierungssprache. Es ist eine formalisierte Beschreibung von Modellen, die die Struktur einer Domäne widerspiegelt. Dabei wird das Metamodell wieder durch ein Modell das sogenannte Metametamodell beschrieben. Ein Beispiel für ein Metamodell ist die UML. Dessen Metametamodell ist Meta Object Facility (MOF). Ein weiteres Beispiel für ein Metamodell ist eine Klasse in Java mit der Programmiersprache Java als Metametamodell. Abstrakte Syntax Das Metamodell deniert eine abstrakte Syntax. Diese besteht aus den Elementen des Metamodells und beschreibt deren Beziehungen untereinander. Die abstrakte Syntax ist dabei von der konkreten Syntax unterscheiden. Z. B. kann eine abstrakte Syntax aussagen, dass es Klassen mit Namen gibt, die von einander abgeleitet werden können. Wie diese nun zu repräsentieren sind, sagt die konkrete Syntax. Statische Semantik Die statische Semantik konkretisiert die abstrakte Syntax, in dem sie Bedingungen deniert, die für die Wohlgeformtheit von Modellen wichtig sind. Diese sogenannten Constraints hängen von der abstrakten Syntax ab. Die statische Semantik ermöglicht es, Fehler in der Modellierung frühzeitig zu erkennen. Konkrete Syntax Die konkrete Syntax gibt an, wie die abstrakte Syntax zu repräsentieren ist. Dies kann sowohl durch eine grasche als auch durch eine textuelle Notation erfolgen. UML z. B. wird normalerweise grasche dargestellt, man könnte sich aber auch genauso gut eine textuelle Repräsentation für UML überlegen. Eine abstrakte Syntax kann durch verschiedene konkrete ausgedrückt werden Domain Specic Language Domain Specic Language (DSL) ist eine Modellierungssprache innerhalb der Domäne. Die Bedeutung der einzelnen Sprachelemente muss noch klar deniert werden (sogenannte dynamische Syntax im Gegensatz zur konkreten). 8

9 DSLs können einfach gehalten oder beliebig umfangreich sein. In der Regel wählt man nicht UML, da es zu universell, allgemein und mächtig ist. Schon eher wählt man aber einschränkende UML-Dialekte, die mittels denierten UML-Prolen auf die konkrete Domäne angepasst sind. Letzten Endes möchte man nämlich nur die Probleme der zugehörigen Domäne modellieren können, jedoch nichts, was auÿerhalb liegt. Vorteile der Verwendung von DSLs im Vergleich zu allgemeinen Programmiersprachen sind u. a., dass Redundanzen vermindert werden und der Sachverhalt deklarativ beschrieben werden kann. So kann auf technischen Code verzichtet werden, was natürlich die Verständlichkeit für Nicht-Entwickler erhöht. Beispieldomänen Häug zitiert als fachliche Domänen wird z. B. das Finanz- und Versicherungswesen. Es zeichnet sich durch einen sehr speziellen Sprachgebrauch aus, der sich gut zum Abbilden in eine DSL eignet. Weitere Beispiele für Domänen sind: Simulationsanwendungen Web-basierte Businessanwendungen Eingebettete Software (siehe 2.2) Abbildung 2.2: Unterteilung einer Domäne durch Subdomänen anhand der Domäne Eingebettete Software Modellierung Die konkreten Modelle werden in der Domäne mittels der DSL entwickelt. Sie werden als Instanzen des zugrundeliegenden Metamodells angesehen ähnlich wie Objekte Instanzen von Klassen einer Programmiersprache sind. 9

10 Bei der Modellierung wird besonders darauf geachtet, dass sie anforderungsbezogen erfolgt. Modelliert wird das Verhalten. Letzten Endes soll das `Was im Mittelpunkt stehen und nicht das `Wie. Die Modellentwickler müssen sich dabei immer die Frage stellen, wie viel Semantik sie in das konkrete Modell einbauen wollen. Am Ende dieses Prozess steht ein Modell, welches das System beschreibt. In der Regel reicht ein Modell zum Beschreiben des Gesamtsystems nicht aus, sodass man dafür mehrere Modelle erstellen wird. Gerade bei der Entwicklung mittels MDSD ist die Modellierung Teil der Programmierung des Systems. Wie schon weiter vorne erwähnt, nehmen die Modelle hier die Rolle von Code ein. Auch wenn der hinter MDSD stehende Prozess auf Automatisierung ausgerichtet ist, muss die Erstellung, Wartung und Erweiterung von Modellen natürlich von Hand erledigt werden. Mittels Modellen kann ein System in der Regel kompakter als per Code dargestellt werden. Dies ist u. a. dem DRY-Konzept geschuldet, welches in der MDSD eine zentrale Bedeutung hat. Alle Informationen werden genau an einer Stelle im Modell speziziert und sind somit auch zentral wartbar. Beispiel 2.3 zeigt eine (sehr abstrahierte) beispielhafte Modellierung in der Domäne GUI-basierte Hochschulverwaltungssysteme. Die GUI besteht aus drei verschiedenen, domainspezischen Ansichten (Frames), die über eine Toolbar geönet werden kann. Im SearchFrame gibt es einen Button, der die Kurse und Studenten in den entsprechenden Frames ltern kann Transformationen Mit der Erstellung des Modells ist die erste Phase im MDSD-Entwicklungsprozess abgeschlossen. Nun sollen die Modelle weiter verarbeitet werden. Dies geschieht mittels Transformationen. Dabei gibt es zwei grundsätzliche Arten von Transformationen: Modell-zu-Modell-Transformationen (M2M) Modelltransformation Modellmodikation Modellverwebung Modell-zu-Code-Transformationen (M2C) Codegenerierung Compiler Interpreter Im Folgenden werden diese Transformationen näher beleuchtet. Zu beachten ist, dass in der Praxis meist mehrfach M2M transformiert wird, bis dann schlussendlich für jede gewünschte Zielplattform je eine M2C-Transformation durchgeführt wird. 10

11 Abbildung 2.3: Schematische Modellierung einer Anwendung in der Domäne GUIbasierte Hochschulverwaltungssysteme. 11

12 Modell-zu-Modell-Transformationen Modelltransformation Bei der Modelltransformation wird ein Modell in ein anderes überführt. Die dazu nötigen Transformationsregeln, werden auf Metamodellebene deklariert. Als Resultat wir ein neues Modell als Instanz des Ziel-Metamodells erzeugt. Das ursprüngliche Modell bleibt dabei unverändert und im alten Metamodell. Letztlich ist eine Modelltransformation nichts anderes als ein Wechsel des zugrundeliegenden Metamodells. Während des Transformationsvorgangs wird immer gegen das Metamodell validiert, sodass das neue Modell in jedem Fall konform zum Metamodell ist und bleibt. Modellmodikation Die Modellmodikation ist ein Sonderfall der Modelltransformation. Hier ndet kein Metamodellwechsel statt, sprich, das veränderte Modell bleibt Instanz des ursprünglichen Metamodells. Es wird kein neues Modell erstellt, sondern das bestehende modiziert. Modellmodikationen werden vorgenommen, um Veränderungen an einem bestehenden Modell durchzuführen wie z. B. das Hinzufügen oder Verändern von Funktionalitäten. Modellverwebung Gerade bei Systemen, in denen nicht alle Informationen in einem einzigen Modell festgehalten werden, braucht man eine Möglichkeit, die Modelle vor der Codegenerierung zusammenzuführen. Dies ist mittels Modellverwebung möglich. Dabei werden Modelle der gleichen oder unterschiedlicher Metamodelle miteinander verlinkt. Dieser Vorgang lässt sich mit dem Linking im Compilerbau vergleichen und ist deshalb von hoher praktischer Relevanz. Transformationssprachen Wie bereits erwähnt, sorgen Transformationsregeln für die M2M-Transformation. Sie werden auf Metamodellebene in deklarativer Art und Weise deniert und beschreiben, wie Elemente des einen Metamodells in Elemente des anderen zu überführen sind. Auch diese Regeln kommen nicht aus dem Nichts, sondern müssen vom Entwickler implementiert werden. Eine recht populäre Sprache zur Realisierung von M2M-Transformationen ist die Atlas Transformation Language (ATL) 1. Beispiel Das Modell aus 2.3 soll in ein Modell transformiert werden, dessen Metamodell näher an der späteren Zielplattform liegt. Da am Ende eine RCP-Anwendung das Ergebnis sein soll, wählen wir ein entsprechendes Metamodell. Dazu kommen Transformationsregeln zum Einsatz, die in ATL deniert sind. 1 rule Frame { 2 from 3 f : MMGui! Frame Listing 2.1: Beispielregel in ATL

13 4 to 5 v : MMRcp! View ( 6 // A t t r i b u t e uebernehmen 7 t i t l e < f. t i t l e 8 [... ] 9 ) 10 } In dieser simplen Regel wird deniert, dass ein Frame aus dem Metamodell MMGui zu einer View im Metamodell MMRcp wird. Die Attribute werden einfach übernommen. 2.4 könnte ein Ergebnis so einer M2M-Transformation sein. Abbildung 2.4: Das Modell aus 2.3 in der Domäne für RCP-Anwendungen. Dem Modell liegt nun das RCP-Metamodell zu Grunde. Dies hat natürlich ein niedrigeres Abstraktionslevel als das vorherige Modell. Wie man sieht wurden alle Frames in Views transformiert. Ebenso viele vorher relativ allgemein gehaltene Elemente in speziellerere der Domäne RCP (z. B. Menü zu Coolbar). An manchen Stellen kamen auch neue Elemente hinzu, beispielsweise der Filter, um die FilterSelection des ursprünglichen Modells zu realisieren. 13

14 Modell-zu-Code-Transformationen Codegenerierung Mittels eines Generators wird aus einem Modell ein Zielplattformspezisches Artefakt in konkreter Syntax. Dieses Artefakt kann beliebig sein: In der Regel handelt es sich um Quellcode oder Kongurationsdateien, es ist aber durchaus denkbar auch Dateien wie z. B. Webseiten oder gar Bilder aus dem Modell zu generieren. Prinzipiell ist jede Zielplattform denkbar, es muss nur ein Generator dafür vorhanden sein. Die Entwickler können die Codegenerierung mittels geeigneter Tools beeinussen. So ist es möglich zu entscheiden, was generiert werden soll und was nicht. Dies hat direkten Einuss auf die erzeugte Codegröÿe. Aufgrund des DRY-Prinzips ist im erzeugten Artefakt garantiert gewährleistet, dass Konventionen durchgängig eingehalten worden sind, da gleiche Strukturen immer gleich in Code überführt werden. Es ist wichtig, dass bei der Codegenerierung darauf geachtet wird, generierten und nicht-generierten Code zu separieren. Auch hier greift das Automatismus-Prinzip nicht zwangsläug. In der Regel kommt man trotz MDSD nicht drumherum, manuellen Code zu erstellen. Beispielsweise einen Algorithmus der Computergrak würde man eher direkt im Code implementieren anstatt in zu modellieren. 2 Es gibt verschiedene Arten von Codegenerierungstech- Codegenerierungstechniken niken: Templates Vorlage mit Platzhaltern. Diese werden durch Informationen aus dem Modell ersetzt. Codegenerierungssprachen Spezielle Sprachen, die auf Codegenerierung optimiert sind. Imperative Sprachen Prinzipiell kann mit jeder beliebigen imperativen Sprache ein Modell eingelesen und beliebiger Output daraus erstellt werden. Mit ihrer Hilfe lassen sich Generatoren für die entsprechende Zielplattform entwickeln. In der Praxis machen sie dabei exzessiven Gebrauch von Frameworks oder Middlewares. Die Generatoren werden in der Regel wiederverwendet oder müssen selbst geschrieben werden. Denn auch hier greift der Automatismus nicht zwangsläug, sodass der Softwareentwickler seinen Generator für die Zielplattform manuell entwerfen muss. Beispiel Mittels Templates soll aus 2.4 nun die fertige RCP-Anwendung generiert werden. Typisch dafür ist u. a. die Datei plugin.xml, auf die es sich hier beschränken soll. Ein Template dafür könnte folgendes Listing sein: 2 Wobei es durchaus auch Computergrak-Algorithmen geben mag, die sich gut mittels Modellen beschreiben lassen. 14

15 1 [.. ] 2 <view Listing 2.2: Template für plugin.xml 3 c l a s s=" {$ program. name }. g u i. views. { $ view. name}" 4 i d=" {$ program. name }. g u i. views. { $ view. name}" 5 name=" {$ view. t i t l e }"> 6 </ view> 7 [.. ] Gefüllt mit den Informationen aus dem Modell, könnte am Ende der Codegenerierung folgendes Produkt herauskommen: 1 [.. ] 2 <view Listing 2.3: Generierte plugin.xml 3 c l a s s="sacat. g u i. views. StudentView " 4 i d="sacat. g u i. views. StudentView " 5 name=" Studenten "> 6 </ view> 7 [.. ] 15

16 3 Abschlieÿende Worte In diesem Kapitel soll noch einmal konkret auf den Grundgedanken hinter MDSD eingegangen werden sowie eine abschlieÿende Beurteilung vorgenommen werden. 3.1 Kernkonzepte In der MDSD geht es im Kern um die Arbeit mit domainspezischen Bestandteilen. Die Bestandteile hier sind meist natürlich die Modelle selber, die in der entsprechenden Domäne deniert sind, aber auch je nach Abstraktionsgrad konkrete Technologien oder Frameworks. Nichtsdestotrotz nehmen bei der MDSD die Modelle die zentrale Bedeutung ein wie sonst bei traditionellen Entwicklungsmethoden der Quelltext. Im Laufe der gesamten Entwicklung ist es aufgrund des Metamodells immer möglich, das Modell (und damit das System) zu validieren und auf Konsistenz hin zu überprüfen. Fehler, die durch Änderungen an den Modellen entstanden, fallen sofort auf und können dort direkt behoben werden. Dabei kommt es einem natürlich zu gute, dass alles in der Regel nur an einer Stelle deniert wird: Das DRY-Prinzip steht im Mittelpunkt. Redundante Informationen gibt es so nicht, weshalb Änderungen zentral für das ganze System vorgenommen werden können. Zu guter Letzt ist die automatische Softwaregenerierung zu nennen. Die Modelle werden immer aktuell gehalten und der daraus generierte Code ist immer konform zum spezizierten Modell. Bei Modelländerungen wird einfach neu generiert. So kommt es zu keinerlei Divergenz zwischen Modell und Quelltext. 3.2 Gründe für Modellgetriebene Softwareentwicklung Einer der Hauptgründe für MDSD ist wohl das hohe Abstraktionsniveau. Je nach betrachteten Abstraktionslevel kann von allem abstrahiert werden: von der Programmiersprache, der Technologie und der Plattform. Das macht es natürlich möglich, dass sowohl die Entwickler als auch Domainexperten ohne Programmierfähigkeiten das Modell gleichermaÿen verstehen. Man kann sich so natürlich viel besser auf die Lösung des eigentlichen Problems konzentrieren ohne sich dabei schon Gedanken um die spätere Umsetzung machen zu müssen. 16

17 Ein weiterer Vorteil ist, dass MDSD für eine immer einheitliche Architektur des Systems sorgt. Dies ist dadurch gewährleistet, dass die Umsetzung der Modelle systemweit immer gleich geschieht. Die denierten Transformationen sind für alle gleichen Elemente o. ä. des Modells analog. Auch die Tatsache, dass Systemänderungen lokal vorgenommen werden, begünstigt eine dauerhaft einheitliche Architektur. So bleibt sie trotz der durch Softwareevolution bekannten Probleme immer konform mit der letztendlich generierten Software. 1 Letzten Endes erhöht sich dadurch natürlich die Wiederverwendbarkeit, Erweiterbarkeit und die Softwarequalität im Allgemeinen erheblich. MDSD ermöglicht eine sehr eziente Softwareentwicklung durch die Codegenerierung. Sicherlich, anfangs sind diverse Vorarbeiten zu leisten (z. B. Entwicklung der DSL, Transformationsregeln, Generatoren), doch in der Regel wird dies durch die Wiederverwendung einmal erstellter Zutaten für zukünftige Entwicklungen wieder wett gemacht. Dies ist auch u. a. ein Grund, weswegen MDSD ideal für die Entwicklung von Produktlinien ist. Einmal erstellte Modelle können die Basis für eine neue Produktlinie werden, genauso wie man Modelle so reduzieren (oder erweitern) kann, dass daraus eine neue Produktlinie wird durch entsprechende Toolunterstützung im Idealfall gar per Mausklick. Zu guter Letzt noch ein Wort zur Agilen Softwareentwicklung. Für viele Entscheider ist dies ein Argument für das Auswählen einer bestimmten Methodik. Sowohl hinter der MDSD als auch hinter agilen Prozessen steht ein iterativ-inkrementelles Vorgehen. Des Weiteren erfüllt MDSD das Agile Manifesto 2. (Es soll an dieser Stelle nur auf eine Auswahl der Punkte des agilen Manifests eingegangen werden.) Das Manifest erfordert z. B. eine beschleunigte Erstellung von Software, es soll schnell ein lauähiges Programm entstehen. Dieser Punkt wird die nötigen Vorarbeiten vorausgesetzt durch den MDSD- Ansatz aufgrund der automatischen Softwaregenerierung erfüllt. Die fortwährende Einbindung des Kundens beim Entwicklungsprozesses ist auch gegeben. Bei der MDSD wird diese Rolle in der Regel ein Experte der entsprechenden Domäne übernehmen. Ebenso können Anforderungsänderungen mittels Modelltransformationen rasch und ezient umgesetzt werden. Auch diesen Punkt des agilen Manifests erfüllt MDSD also. 3.3 Ausblick Wenn sich der durch MDSD losgetretende Trend weiter fortsetzt, könnte sie sich als neues Softwareentwicklungsparadigma durchsetzen. Dies würde unsere Art und Weise Software zu entwickeln natürlich radikal auf den Kopf stellen ähnlich vielleicht wie der Wechsel von Assembler- zu Hochsprachen. Bis dahin gehen die Arbeiten weiter, vollständige(re) Modellcompiler zu entwickeln, die noch mehr aus dem reinen Modell generieren können. Aber auch im Hinblick auf die Koexistenz von Modell und dem daraus generierten Code und manuellen Quelltext 1 Dies ist auch gar nicht anders möglich, da sich ja Modelländerungen auch immer in einem geänderten generierten Code widerspiegeln

18 sind weitere Verbesserungen zu erwarten. Ob nämlich tatsächlich alles nur mit einem Modell mit vertretbaren Aufwand beschrieben werden kann Beispiel hierfür wären die bereits erwähnten Algorithmen aus der Computergrak, ist noch umstritten. So oder so, die zugrundeliegenden Tools werden weiterhin groÿe Fortschritte machen und immer mehr möglich machen. Gerade im Eclipse-Umfeld gibt es dafür eine groÿe Zahl an Werkzeugen Fazit MDSD fasziniert! Allein die Vorstellung, das Austauschen einer im System verwendeten Technologie oder die Umsetzung des Modells für eine andere Zielplattform per Mausklick bewerkstelligen zu können, ist zu schön um wahr zu sein. Dass trotzdem in der Praxis noch einiges mehr zu tun ist und (noch?) nicht alles komplett automatisch zu realisieren ist, damit musste man rechnen. Aber hier gibt es jedenfalls noch sehr viel Potential für die Zukunft. Dennoch, durch die MDSD haben wir ein Mittel zur Hand, der immer mehr wachsenden Komplexität von Software Herr zu werden ohne dabei an Präzision einzubüÿen. Zusätzlich kriegen wir eine ganze Reihe weiterer Vorteile mitgeliefert, die die Softwareentwicklung sowohl beschleunigen als auch qualitativ hochwertiger machen können. Schlussendlich wird die Zeit und damit der Mainstream zeigen, ob und wie MDSD angenommen wird... 3 Sämtliche Eclipse Unterprojekte dazu auf 18

19 Abkürzungsverzeichnis MDSD Modellgetriebene Softwareentwicklung OOP objektorientierte Programmierung UML Unied Modeling Language Rails Ruby on Rails CRUD Create, Retrieve, Update, Delete DRY Don't repeat yourself SMS Short Message Service GUI Graphical User Interface MOF Meta Object Facility DSL Domain Specic Language M2M Modell-zu-Modell-Transformationen M2C Modell-zu-Code-Transformationen ATL Atlas Transformation Language RCP Rich Client Platform 19

20 Literaturverzeichnis [1] Thomas Stahl, Markus Völter, Sven Etinge, and Arno Haase. Modellgetriebene Softwareentwicklung. dpunkt.verlag, (document), 2.1 [2] Markus Völter. Model-driven software development tutorial. de/services/mdsd-tutorial.html. [3] Wikipedia. Anwendungsdomäne. Anwendungsdomäne [4] Wikipedia. Modellgetriebene softwareentwicklung. wiki/modellgetriebene_softwareentwicklung. 20

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

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

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

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

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

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

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

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

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

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

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

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

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

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

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung. StuPro-Seminar Dokumentation in der Software-Wartung StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung Folie 1/xx Software-Wartung: theoretisch Ausgangslage eigentlich simpel: fertige

Mehr

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung Kapitel 1 Die Vorbereitung Vorgängerversionen. Bald darauf folgte dann schon die Version 4, die mit einer kleinen Bearbeitung bis vor Kurzem 15 Jahre unverändert gültig war. All das, was du die letzten

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma: Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

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

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

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

WordPress. Dokumentation

WordPress. Dokumentation WordPress Dokumentation Backend-Login In das Backend gelangt man, indem man hinter seiner Website-URL einfach ein /wp-admin dranhängt www.domain.tld/wp-admin Dabei gelangt man auf die Administrationsoberfläche,

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

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

Wie Sie mit Mastern arbeiten

Wie Sie mit Mastern arbeiten Wie Sie mit Mastern arbeiten Was ist ein Master? Einer der großen Vorteile von EDV besteht darin, dass Ihnen der Rechner Arbeit abnimmt. Diesen Vorteil sollten sie nutzen, wo immer es geht. In PowerPoint

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst. 40-Tage-Wunder- Kurs Umarme, was Du nicht ändern kannst. Das sagt Wikipedia: Als Wunder (griechisch thauma) gilt umgangssprachlich ein Ereignis, dessen Zustandekommen man sich nicht erklären kann, so dass

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

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

YouTube: Video-Untertitel übersetzen

YouTube: Video-Untertitel übersetzen Der Easytrans24.com-Ratgeber YouTube: Video-Untertitel übersetzen Wie Sie mit Hilfe von Easytrans24.com in wenigen Schritten Untertitel für Ihre YouTube- Videos in mehrere Sprachen übersetzen lassen können.

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

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

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

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

Mehr

ACHTUNG: Voraussetzungen für die Nutzung der Funktion s-exposé sind:

ACHTUNG: Voraussetzungen für die Nutzung der Funktion s-exposé sind: ACHTUNG: Voraussetzungen für die Nutzung der Funktion s-exposé sind: - Upgrade auf FLOWFACT Version Performer CRM 2014 R2 (ab Juli erhältlich) - Mindestens SQL Server 2005 - vorhandene Installation von.net

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

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

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

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? UErörterung zu dem Thema Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? 2000 by christoph hoffmann Seite I Gliederung 1. In zu großen Mengen ist alles schädlich. 2.

Mehr

ARCO Software - Anleitung zur Umstellung der MWSt

ARCO Software - Anleitung zur Umstellung der MWSt ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

2.1 Erstellung einer Gutschrift über den vollen Rechnungsbetrag

2.1 Erstellung einer Gutschrift über den vollen Rechnungsbetrag 1. Einführung Manchmal ist es notwendig, dem Kunden eine Gutschrift zu einer bestimmten Rechnung, über einzelne Positionen oder auch völlig frei von einer Basis-Rechnung zu erstellen. Die verschiedenen

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

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

10.1 Auflösung, Drucken und Scannen

10.1 Auflösung, Drucken und Scannen Um einige technische Erläuterungen kommen wir auch in diesem Buch nicht herum. Für Ihre Bildergebnisse sind diese technischen Zusammenhänge sehr wichtig, nehmen Sie sich also etwas Zeit und lesen Sie dieses

Mehr

(im Rahmen der Exchange-Server-Umstellung am 15.-17.04.2005)

(im Rahmen der Exchange-Server-Umstellung am 15.-17.04.2005) Outlook-Umstellung (im Rahmen der Exchange-Server-Umstellung am 15.-17.04.2005) Die Umstellung des Microsoft Mailserver-Systems ntmail (Exchange) erfordert vielfach auch eine Umkonfiguration des Programms

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

TREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel

TREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel von Ricardo Gantschew btk Berlin Dozent / Till Nagel 01 IDEE Einige kennen vielleicht GoogleTrends. Hierbei handelt es sich um eine Anwendung, bei der man verschiedenste Begriffe auf die Häufigkeit ihrer

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft. Das ist ein Text in leichter Sprache. Hier finden Sie die wichtigsten Regeln für den Verein zur Förderung der Autonomie Behinderter e. V.. Das hier ist die Übersetzung der Originalsatzung. Es wurden nur

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

News & RSS. Einleitung: Nachrichten er-(veröffentlichen) und bereitstellen Nachrichten erstellen und bereitstellen

News & RSS. Einleitung: Nachrichten er-(veröffentlichen) und bereitstellen Nachrichten erstellen und bereitstellen News & RSS Nachrichten er-(veröffentlichen) und bereitstellen Nachrichten erstellen und bereitstellen Einleitung: Sie wollen Ihre Nutzer immer mit den neuesten Informationen versorgen bzw. auf dem laufendem

Mehr

Anleitung BFV-Widget-Generator

Anleitung BFV-Widget-Generator Anleitung BFV-Widget-Generator Seite 1 von 6 Seit dem 1. Oktober 2014 hat der Bayerische Fußball-Verband e.v. neue Widgets und einen neuen Baukasten zur Erstellung dieser Widgets veröffentlicht. Im Folgenden

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??

Mehr

Modellgetriebene Service-Entwicklung

Modellgetriebene Service-Entwicklung Modellgetriebene Service-Entwicklung Service-orientierte Architekturen (SOA), Prof. Dr. M. Jäger Johannes Tietje 24. Juni 2010 1 / 13 Motivation konkrete Teile eines Dienstes Rahmenimplementierung der

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

Windows XP Jugendschutz einrichten. Monika Pross Molberger PC-Kurse

Windows XP Jugendschutz einrichten. Monika Pross Molberger PC-Kurse Windows XP Jugendschutz einrichten Monika Pross Molberger PC-Kurse Um ein Benutzerkonto mit Jugendschutzeinstellungen zu verwenden, braucht man ein Eltern- Konto (Administrator) und eine Kinderkonto (Standard).

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

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

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

WhiteStarUML Tutorial

WhiteStarUML Tutorial WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/

Mehr

Wochenbericht. Firas Zoabi. Studienprojekt A: SIMPL. 28. Dezember 2009 I M P

Wochenbericht. Firas Zoabi. Studienprojekt A: SIMPL. 28. Dezember 2009 I M P Wochenbericht Firas Zoabi Studienprojekt A: SIMPL 28. Dezember 2009 S I M P L Geplante Aufgaben und Tätigkeiten Erledigte Aufgaben und Tätigkeiten Übersicht Benötigte Arbeitszeit/Aufwände Gewonnene Erkenntnisse

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

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO

Mehr

Online Newsletter III

Online Newsletter III Online Newsletter III Hallo zusammen! Aus aktuellem Anlass wurde ein neuer Newsletter fällig. Die wichtigste Neuerung betrifft unseren Webshop mit dem Namen ehbshop! Am Montag 17.10.11 wurde die Testphase

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

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

ICS-Addin. Benutzerhandbuch. Version: 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0 ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller Proseminar: Website-Managment-System NetObjects Fusion von Christoph Feller Netobjects Fusion - Übersicht Übersicht Einleitung Die Komponenten Übersicht über die Komponenten Beschreibung der einzelnen

Mehr

Studieren- Erklärungen und Tipps

Studieren- Erklärungen und Tipps Studieren- Erklärungen und Tipps Es gibt Berufe, die man nicht lernen kann, sondern für die man ein Studium machen muss. Das ist zum Beispiel so wenn man Arzt oder Lehrer werden möchte. Hat ihr Kind das

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Internet Explorer Version 6

Internet Explorer Version 6 Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost Adobe Photoshop Lightroom 5 für Einsteiger Bilder verwalten und entwickeln Sam Jost Kapitel 2 Der erste Start 2.1 Mitmachen beim Lesen....................... 22 2.2 Für Apple-Anwender.........................

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit Frau Dr. Eva Douma ist Organisations-Beraterin in Frankfurt am Main Das ist eine Zusammen-Fassung des Vortrages: Busines

Mehr

Was ist Sozial-Raum-Orientierung?

Was ist Sozial-Raum-Orientierung? Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume

Mehr

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon

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

INSTALLATION VON INSTANTRAILS 1.7

INSTALLATION VON INSTANTRAILS 1.7 INSTALLATION VON INSTANTRAILS 1.7 InstantRails 1.7 ist ein Paket, das Ruby, Rails, Apache, MySQL und andere Tools, z.b. phpmyadmin in vorkonfigurierter Form enthält. Das Paket muss in einem Verzeichnis

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

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

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

SEPA-Anleitung zum Release 3.09

SEPA-Anleitung zum Release 3.09 Hier folgt nun eine kurze Information was sich mit dem neuen Release 3.08 zum Thema SEPA alles ändert. Bitte diese Anleitung sorgfältig lesen, damit bei der Umsetzung keine Fragen aufkommen. Bitte vor

Mehr