Entwicklung Anwendungsbezogener Sprachen

Größe: px
Ab Seite anzeigen:

Download "Entwicklung Anwendungsbezogener Sprachen"

Transkript

1 Entwicklung Anwendungsbezogener Sprachen Eine Beschreibung der Phasen und Probleme bei der Erstellung von Domain Specific Languages Seminararbeit im Fachgebiet Softwaretechnik und Informationssysteme vorgelegt von: Achim Schumacher Seminar: Software Language Engineering Matrikelnummer: Betreuer: Prof. Dr. Uwe Kastens 18. Februar 2010

2 II Inhaltsverzeichnis 1. Grundlagen Eigenschaften Klassifikation Entwicklung in Phasen Das Phasenmodell Entscheidungsphase Analysephase Designphase Implementierungsphase Einsatzphase Benötigte Expertise zur Entwicklung Fazit...15 Anhang A: Literatur...16

3 1. Grundlagen 1 1. Grundlagen 1.1. Eigenschaften Es gibt Computersprachen, die auf bestimmte Anwendungen zugeschnitten sind und sich damit von allgemein anwendbaren Programmiersprachen, die für viele verschiedene Zwecke eingesetzt werden, abgrenzen. Diese anwendungsbezogenen Sprachen ( domain-specific language, DSL) unterscheiden sich in einigen Eigenschaften von allgemein einsetzbaren Programmiersprachen ( general purpose language, GPL). Einige dieser Eigenschaften sollen im Folgenden erläutert werden. Ein Beispiel für DSL ist die Sprache HTML. Die Sprache enthält Anweisungen für einen Webbrowser und wird in den Anwendungsbereichen (den Domänen ) Layout und Hypertext eingesetzt. Sie ist vor allem durch die Popularität des World Wide Web bekannt geworden. Mit HTML lässt sich eine Internetseite gestalten und durch das Einfügen von sogenannten Links auf andere Seiten verweisen. HTML-Quellcode <h1>lorem ipsum</h1> <p>dolor <i>sit</i> amet, <a href= index.html > consectetur</a></p> Bildschirmausgabe Lorem ipsum dolor sit amet, consectetur Abbildung 1.1.1: Layout und Links in HTML Wie im Beispiel auf Abbildung sichtbar, kann mit sehr kompakten, auf die Anwendungsgebiete spezialisierten Anweisungen, das Layout festgelegt werden. Will man das gleiche Ziel mit einer GPL erreichen, ist die Programmierung aufwändiger, da es keine GPL gibt, die vergleichbare Möglichkeiten zur Seitengestaltung bietet. Eine entsprechende Funktionalität muss dann vom Programmierer selbst umgesetzt werden.

4 1. Grundlagen 2 DSL Anwendungsgebiet LaTeX SQL VHDL Make Excel-Makro UML Typografie Datenbankanfragen Hardwaredesign Softwareaktualisierung Tabellenkalkulation Grafische Modellierung Kontextfreie Grammatiken Spezifikation von Syntax Tabelle 1: Bekannte DSL Es gibt noch viele weitere bekannte DSL (Tabelle 1). So wird in der Typografie häufig die Sprache LaTeX zur Beschreibung des Seitenlayouts verwendet. Für die Kommunikation mit Datenbanksystemen steht SQL zur Verfügung. VHDL wird zur Beschreibung von Schaltungen im Hardwaredesign genutzt. Die Eingabesprache von Make dient der Automatisierung des Übersetzungsprozesses von Programmen. Die Tabellenkalkulation Microsoft Excel liefert eine Makro-Sprache mit, die die Automatisierung von Aktionen der Tabellenkalkulation erlaubt. Zur Modellierung von Software ist die Sprache UML weit verbreitet, da sie eine grafische Syntax bietet und universell einsetzbar ist. Kontextfreie Grammatiken ermöglichen die Spezifikation von Syntax, also die Beschreibung der Syntax von Programmiersprachen. Dies sind nur einige Beispiele, die sich in ihrer Domäne durchsetzen konnten. Da die Sprachen auf ihren Anwendungsbereich zugeschnitten sind, sollten sie keine Konstrukte besitzen, die in der Domäne nicht benötigt werden. DSL sind damit schneller erlernbar und effizienter nutzbar. In anwendungsbezogenen Sprachen wird Wissen aus der Domäne gekapselt. Domänendetails können durch aussagekräftige und kompakte Sprachkonstrukte ersetzt werden. Für einen HTML-Entwickler ist es nicht wichtig, wie Kursivschrift im Anzeigeprogramm umgesetzt wird. Ebenso ist die Implementierung der Datenbank unerheblich, wenn ein Entwickler mit Hilfe der Sprache SQL seine Anfragen formulieren kann. In den Befehlen der Sprachen ist das Wissen enthalten, wie die Aktion in der Domäne ausgeführt wird. Ist außerdem das Anwendungsgebiet einer Sprache enger, kann die verwendete Sprache ausdrucksstärker sein. Aus einer sehr kompakten Notation lässt sich dann viel erzeugen. Eine kontextfreie Grammatik hat eine

5 1. Grundlagen 3 sehr spezialisierte Aufgabe und kann mit ihrer Notation nur Syntax spezifizieren. Aus einer KFG ist aber beispielsweise direkt ein Parser für die beschrieben Sprache oder ein Syntax-Baum generierbar. Durch die beschriebenen Eigenschaften ist die Nutzung einer DSL einfacher als die Verwendung von GPL. Damit vergrößert sich die Zielgruppe für die Sprache und es ist leichter möglich, auch Benutzer ohne Programmiererfahrungen anzusprechen Klassifikation Anwendungsbezogene Sprachen lassen sich anhand des Grades ihrer Ausführbarkeit klassifizieren. Die Sprachen befinden sich auf einem Spektrum von ausführbar bis beschreibend (Abbildung 1.2.1). Zwischen den Extremen liegen Sprachen, die beide Eigenschaften mehr oder weniger stark ausgeprägt besitzen. Ausführbar Beschreibend Excel Makro HTML / LaTeX Backus- Naur-Form Datenstrukturen Abbildung 1.2.1: Ausführbarkeitsspektrum von DSL Die Sprachen am einen Ende des Spektrums besitzen eine wohldefinierte Ausführungssemantik, haben aber nur wenig oder gar keinen beschreibenden Charakter. Als Beispiel für diese Klasse von Sprachen kann die Makro- Sprache von Microsoft Excel herangezogen werden. Sie erlaubt die programmierte Ausführung von Operationen der Tabellenkalkulation, während sie keine Zustände oder Strukturen wiedergibt. Ebenfalls in erster Linie ausführbar, aber auch etwas beschreibend ist die Klasse der Eingabesprachen für Übersetzer, die in eine andere Sprache übersetzt und dann ausgeführt werden können. Die Sprache LaTeX kann in andere Sprachen wie PostScript oder das Portable Document Format übersetzt werden. Aber auch andere ausführbare Sprachen können beschreibenden Charakter besitzen. HTML besitzt ausführbare Befehle für den Browser, beschreibt aber gleichzeitig auch das Layout der Seite. Ist eine Sprache primär beschreibend, also definiert sie statische Strukturen, kann sie denn noch in gewissem Maße ausführbar sein. Kontextfreie Grammatiken oder die Backus-Naur-Form beschreiben die Syntax von Sprachen, sind in dieser Hinsicht also nicht ausführbar. Dennoch können

6 1. Grundlagen 4 Syntaxbeschreibungen in KFG oder BNF wie weiter oben erläutert zur Anwendungsgenerierung genutzt werden, wenn für die beschriebene Sprache automatisch Parser erstellt werden. Das andere Ende des Spektrums bildet die Klasse von Sprachen, die ausschließlich beschreibend und entsprechend nicht ausführbar sind. Sie repräsentieren domänenspezifische Datenstrukturen. Wie für die ausführbaren Klassen von DSL ist die Analyse einer solchen Sprache ebenso möglich wie die Überprüfung von Konsistenz oder die Visualisierung.

7 2. Entwicklung in Phasen 5 2. Entwicklung in Phasen Bei der Entwicklung einer DSL sind konkrete Vorschläge in verschiedenen Entwicklungsstadien der Sprache hilfreich Das Phasenmodell Stellvertretend für die Entwicklungsstadien wird die Entwicklung einer DSL im Phasenmodell nach Mernik [1] in mehrere Phasen unterteilt, nämlich Entscheidung, Analyse, Design, Implementierung und Einsatz (Abbildung 2.1.1). Es sei jedoch darauf hingewiesen, dass die Entwicklung in der Praxis meist kein sequenzieller Prozess ist. Eine vorausgehende Analyse kann beispielsweise den Entscheidungsprozess bestimmen, oder das Design wird möglicherweise von Implementierungsentscheidungen beeinflusst. Analyse Design Entscheidung Implementierung Einsatz Muster Muster Muster Muster Muster Abbildung 2.1.1: Entwicklungsphasen mit zugehörigen Mustern Für jede dieser Entwicklungsphasen wurden Klassen von Mustern gefunden, die typische Fälle beschreiben. Beispielsweise beschreiben die Muster der Entscheidungsphase Situationen, in denen sich ein Entwickler wiederfinden kann und in denen der Einsatz einer DSL meist sinnvoll ist. Die Muster aller Phasen können unabhängig voneinander eingesetzt werden, also beeinflusst die Auswahl in der Entscheidungsphase nicht das Analyse- oder Designmuster. Innerhalb einer Klasse müssen die Muster nicht unabhängig sein und können sich überlappen. Die einzelnen Phasen und ihre Muster werden im Folgenden näher beschrieben.

8 2. Entwicklung in Phasen Entscheidungsphase Meist ist nicht von Beginn an klar, ob sich die Entwicklung einer neuen DSL wirklich lohnt. Grundlegende Bestrebungen bei der Entscheidung sind die verbesserte Wirtschaftlichkeit der Software und die Öffnung der Softwareentwicklung für Benutzer mit weniger Domänen- und Programmierexpertise. Die Muster in dieser Phase (Tabelle 2) können als konkretere Untermuster dieser Bestrebungen gesehen werden, in denen der Einsatz einer DSL sinnvoll ist. Notation Muster Beschreibung Notation für Domäne hinzufügen - textliche zusätzlich zu visueller Notation - benutzerfreundliche Notation für API Aufgabenautomatisierung Vermeidung wiederholender Aufgaben Handhabung von Datenstrukturen Anpassung von Benutzungsschnittstellen Vereinfachung von Beschreibungen und Durchlaufen von Daten - Interaktion programmierbar machen - Vereinfachung der GUI-Erstellung Tabelle 2: Anwendungsgebiete für DSL Ein mögliches Anwendungsgebiet ist der Bedarf an weiteren Notationen für eine Domäne. Steht beispielsweise nur eine Sprache mit visueller Notation zur Beschreibung der Domäne zur Verfügung, kann diese durch eine weitere Sprache mit textlicher Notation ergänzt werden oder umgekehrt. Eine DSL kann aber auch die Benutzung einer API (Application Programming Interface, engl. Programmierschnittstelle) vereinfachen, indem sie eine benutzerfreundliche Notation zur Verfügung stellt. Die Sprache Java- Swul [2] ermöglicht die Erstellung von SWING-Objekten in Java, indem sie auf der SWING-API aufbaut. Beim Umgang mit GPL müssen Programmierer oftmals Aufgaben nach den gleichen Mustern abarbeiten. Insbesondere wenn die verwendete GPL keine Hilfsmittel wie Modularisierung bietet, kann die automatisierte Generierung des Programmcodes hilfreich sein. Nutzt man eine DSL als Eingabesprache für einen Anwendungsgenerator, lässt sich damit der benötigte Code leichter erzeugen. Auch die Handhabung von Datenstrukturen kann auf ähnliche Weise durch DSL vereinfacht werden (Abbildung 2.2.1). Stehen die Daten im Mittelpunkt des Codes, werden korrekt initialisierte Datenstrukturen oft vor-

9 2. Entwicklung in Phasen 7 ausgesetzt. Deren Komplexität kann es schwierig machen, den entsprechenden Code zu schreiben und zu warten. Das Durchlaufen komplizierter Datenstrukturen kann durch eine passende DSL ebenfalls besser und zuverlässiger ausgedrückt werden. int{nummer} String{name vorname} private int nummer; private String name, vorname; public int getnummer() { return this.nummer; } Weitere Anwendungsgebiete für DSL sind zum Beispiel die Erschaffung von Benutzerschnittstellen oder die Ermöglichung von Interaktivität mit einer Anwendung, wie beispielsweise die Makro-Sprache von Excel, die komplizierte und sich wiederholende Eingaben erleichtern soll Analysephase Abbildung 2.2.1: Codegenerierung für Datenstrukturen Um eine DSL an die Domäne anpassen zu können, muss die Domäne identifiziert und Wissen gesammelt werden. Da dies ein sehr komplexer Sachverhalt ist, der über den Rahmen dieser Ausarbeitung hinausgeht, soll er an dieser Stelle nur sehr kurz angesprochen werden. public void setnummer(int nummer) { this.nummer=nummer; } public String getname() { return this.name; } public void setname(string name) { this.name=name; } public String getvorname()... Zentral für die Analysephase ist die Erstellung einer Ontologie für den Anwendungsbereich. Die Ontologie der Domäne (Beispiel in Tabelle 3) ist eine Sammlung von Begriffen, die in der Sprache umgesetzt werden sollen. Begriffe aus Domänen Layout und Hypertext Absatz, Aufzählung, Bild, Fettschrift, Hyperlink, Kursivschrift, Tabelle, Überschrift, Zeilenumbruch,... Tabelle 3: Beispiel einer Ontologie: Begriffssammlung für HTML (Auszug) Zur Erfassung der Domäne gibt es verschiedene Quellen mit explizitem oder implizitem Wissen: Technische Dokumente, Wissen von Domänenexperten, bereits existierender GPL-Code und Benutzerumfragen.

10 2. Entwicklung in Phasen Designphase Ist festgelegt, welche Elemente der Domäne in der DSL umgesetzt werden sollen, kann die Notation der Sprache festgelegt werden. Dabei ist vor Allem von Bedeutung, welche Beziehung die neue Sprache zu bereits existierenden hat. Also muss die Entscheidung getroffen werden, ob sie auf einer bestehenden Sprache aufbaut oder neu entworfen werden soll (Tabelle 4). Muster Sprachausnutzung Spracherfindung Beschreibung (Teilweises) Nutzen einer existierenden GPL/DSL Huckepack : Teilweise Nutzung Spezialisierung: Begrenzung der existierenden Sprache Erweiterung der existierenden Sprache Kompletter Neuentwurf ohne Gemeinsamkeiten mit existierenden Sprachen Tabelle 4: Beziehung einer neuen DSL zu existierenden Sprachen Lässt man die neue Sprache auf einer existierenden Sprache basieren, kann das die Implementierung einfacher machen, und möglicherweise kennen die Benutzer die existierende Sprache bereits. Drei Untermuster werden bei dieser Möglichkeit unterschieden: Im ersten Fall werden die domänenspezifischen Funktionen Huckepack auf Teile der existierenden Sprache übernommen. Das bedeutet, dass Teile der bestehenden Sprache weiter genutzt werden, aber um fremde Elemente erweitert werden. Der zweite Ansatz ist die Beschränkung der bestehende Sprache, um sie auf einen Bereich ihrer Funktionalität zu beschränken. Ein Beispiel hierfür ist die Sprache OWL (Web Ontology Language), die die eingeschränkte Untersprache OWL Lite besitzt [3]. Der dritte Weg zur Sprachausnutzung ist die Erweiterung einer Sprache. Die existierende Sprache wird dabei im kompletten Umfang übernommen und um an die Domäne angepasste Funktionalität ergänzt. Gleichzeitig sollte wohlüberlegt sein, ob Konstrukte und Semantiken wirklich wiederverwendet werden. Nimmt man Teile einer Sprache weg und fügt neue hinzu, kann das aufwändiger sein, als eine Sprache ohne Bezug auf andere Sprachen neu zu erstellen.

11 2. Entwicklung in Phasen 9 Um die Verschiedenartigkeit der möglichen Notationen zu zeigen, werden im Folgenden mehrere bekannte DSL mit ihrer speziellen Syntax vorgestellt Notation von HTML Bei HTML handelt es sich um eine Auszeichnungssprache, die sogenannte Tags zur Beschreibung der Daten benutzt (Beispiel in Abbildung 2.4.1). Diese Tags sind in den Text eingebettet und strukturieren ihn. Um einen Textteil zu klassifizieren, wird er zwischen einen Starttag (zum Beispiel <h1>) und einen entsprechenden Endtag (</h1>) geschrieben. Außerdem sind auch Tags ohne Inhalt möglich, beispielsweise für einen Zeilenumbruch (<br/>). <h1>lorem ipsum</h1> <p>dolor <b> <i>sit</i> amet </b>, <a href= index.html > consectetur </a> </p> Abbildung 2.4.1: HTML-Quelltext Außerdem lässt HTML die Schachtelung von Tags zu. Im Beispiel befindet sich der Text sit amet innerhalb des durch <b> beschrieben Bereichs und wird in Fettschrift ausgegeben, während sit desweiteren durch <i> klassifiziert ist und somit zusätzlich kursiv ausgegeben wird. Zudem können Starttags auch Attribute enthalten. Das Beispiel enthält den Link-Tag <a>, der im Attribut href die Zieladresse des Links beinhaltet. Durch Kombination der Tags wird in HTML die Beschreibung einer Seite sowie die Verlinkung zwischen den Seiten möglich, womit die Domäne Layout und Hypertext abgedeckt ist Notation kontextfreier Grammatiken Eine einfache Sprache zur Definition von konkreter Syntax ist die kontextfreie Grammatik (Beispiel in Abbildung 2.4.2) [4]. Jede kontextfreie Grammatik besteht aus vier Teilen:

12 2. Entwicklung in Phasen 10 T, die Menge der Terminalsymbole, aus denen die Sätze der Sprache bestehen N, die Menge der Nichtterminalsymbole, aus denen die Sprachkonstrukte abgeleitet werden P, die Menge der Produktionen, die Regeln der Grammatik S, ein Startsymbol aus der Menge N, aus dem die Sätze der Grammatik abgeleitet werden. Die Notation der Produktionen besitzt keine überflüssigen Sprachkonstrukte; jede Zeile stellt eine weitere Produktion da. Jede dieser Produktionen belegt genau eine Zeile, weshalb kein abschließendes Zeichen am Zeilenende benötigt wird. Meist werden nur die Produktionen und das Startsymbol der KFG angegeben, da sich die Mengen T und N daraus ergeben: Die Terminalsymbole (im Beispiel blau eingefärbt) sind die Symbole, die sich ausschließlich auf der rechten Seite der Produktionen befinden, während Nichtterminalsymbole auch auf der linken Seite erscheinen. Mit einer äußerst kompakten Schreibweise lässt sich somit die ganze Grammatik definieren Notation von UML Die Sprache UML wird vor allem zur Modellierung von Softwaresystemen einsetzt. Sie besitzt eine grafische Notation, die die Darstellung der einzelnen Systemkomponenten als Diagramme erlaubt. In einem Klassendiagramm werden die Eigenschaften von und die Beziehung zwischen Klassen dargestellt. Es gibt unterschiedliche Arten von Beziehungen: Mengen T und N, Startsymbol S T = {'a', 'b', 'x', 'y'} N = {A, B} S = A Menge P der Produktionen A ::= 'x' A 'y' A ::= B B ::= 'a' B ::= 'b' Abbildung 2.4.2: Beispiel einer KFG Erzeugbare Sätze a, b, xay, xby, xxayy, xxbyy... Assoziation (Beispiel in Abbildung 2.4.3): Beschreibung einer Relation zwischen Klassen. Im Beispiel wird zusätzlich zur Verbindung angegeben, wie viele Objekte in welcher Rolle in Assoziation zu den Objekten der anderen Klasse stehen: Ein Vortrag ist Bestandteil genau eines

13 2. Entwicklung in Phasen 11 Seminars, während ein Seminar der Rahmen für mindestens einen Vortrag ist. Seminar name: String rahmen Generalisierung (Beispiel in Abbildung 2.4.4): eine speziellere Klasse übernimmt implizit Eigenschaften einer generelleren Klasse. Die Linie zwischen den Klassen erhält ein unausgefülltes Dreieck auf der Seite der generelleren Klasse. Im Beispiel erbt ein Seminarvortrag die Eigenschaften eines Vortrags. bestandteil * Vortrag Abbildung 2.4.3: Beispiel eines Klassendiagramms mit Assoziation in UML Vortrag Komposition und Aggregation: Beziehung zwischen einem Ganzen und seinen Teilen. Die Komposition wird verwendet, wenn die Teile nicht ohne das Ganze existieren können. Hier wird auf der Seite des Ganzen ein Raute auf der Linie eingefügt. Im Falle einer Komposition ist die Raute gefüllt, bei einer Aggregation nicht. Seminarvortrag Abbildung 2.4.4: Beispiel eines Klassendiagramms mit Generalisierung in UML Die Beziehung zwischen Klassen unterscheidet sich grafisch durch Variation des Symbols, das auf der Linie zwischen den Klassen eingefügt wird. Je nach Diagramm- und Beziehungstyp ist auch die Veränderung der Linie möglich, beispielsweise die Nutzung einer gestrichelten Linie. Seminarvortrag Vorbereitung Vortragender Präsentation Zuhörer Abbildung 2.4.5: Beispiel eines Anwendungsfalldiagramms in UML Mit anderen Diagrammtypen lassen sich weitere Eigenschaften von Systemen zeigen. Die Anwendungsfälle (engl. use casew) bestimmen, wie welcher Anwender mit dem System verfahren soll. Zum Beispiel (Abbildung 2.4.5) können an einem Seminarvortrag Personen in der Rolle Vortragender und Zuhörer teilnehmen. Während nur der Vortragende die Vorbereitung

14 2. Entwicklung in Phasen 12 eines Seminarvortrags durchführt, sind an der Präsentation sowohl Vortragende als auch Zuhörer beteiligt Implementierungsphase Wenn die Notation der Sprache festgelegt ist, kann der passende Implementierungsansatz (Tabelle 5) gewählt werden. Muster Interpretierer (Interpreter) Übersetzer (Compiler) Präprozessor Einbettung Beschreibung Zyklus: Holen, Dekodieren, Ausführen Flexibel und langsam Übersetzung in existierende Sprache Komplette statische Analyse des DSL-Codes Übersetzung in existierende Sprache Analyse des generierten Codes bei dessen Ausführung Einfügen in bestehende Sprache Definition neuer abstrakter Datentypen,... Einfachste Form: Anwendungsbibliothek Tabelle 5: Implementierungsmuster für DSL Wird ein Interpretierer (engl. Interpreter) eingesetzt, werden die Konstrukte der DSL erkannt und interpretiert, indem ein Holen-Dekodieren- Ausführen-Zyklus ausgeführt wird. Dieser Ansatz ist sinnvoll, wenn die Sprache einen dynamischen Charakter hat oder wenn die Ausführungsgeschwindigkeit nicht relevant ist. Ein Beispiel für interpretierbare Sprachen ist HTML. Die bekanntesten Interpretierer für HTML sind Webbrowser. Sie stellen Internetseiten oftmals dar, bevor sie komplett heruntergeladen sind. Die Ausführungsgeschwindigkeit beim Interpretieren von HTML ist nicht in erster Linie wichtig, da andere Vorgänge wie die Bildschirmdarstellung normalerweise im Vordergrund stehen. Nutzt eine Sprache vor der Ausführung einen Übersetzer (engl. Compiler), erfolgt zunächst die Übersetzung der DSL-Konstrukte in eine Basissprache und in Aufrufe von Programmbibliotheken. Auf dem DSL-Programm oder der Spezifikation kann eine komplette statische Analyse durchgeführt werden. Die Sprache LaTeX kann komplett analysiert und übersetzt werden. Die Anwendung pdflatex überprüft ein LaTeX-Dokument zuerst auf Vollständigkeit und Fehlerfreiheit und übersetzt das Dokument dann in die Seitenbeschreibungssprache PDF (Abbildung 2.5.1). Zudem ist es möglich, aus

15 2. Entwicklung in Phasen 13 LaTeX Übersetzung durch pdflatex PDF kontextfreien Grammatiken Parser für die spezifizierten Sprachen zu erstellen. Entsprechende Anwendungsgeneratoren verwenden eine KFG als Eingabesprache und übersetzen diese in eine ausführbare Programmiersprache. Beim Einsatz eines Präprozessors werden die DSL-Konstrukte ebenfalls in eine existierende Basissprache übersetzt. Die syntaktische Korrektheit kann allerdings nicht garantiert werden, da die Analyse nur beim späteren Verarbeiten der Basissprache durchgeführt wird. Beim Ansatz der Einbettung implementiert man die DSL, indem eine bestehende Sprache durch Definition spezifischer Datentypen und Operatoren erweitert wird. Ein anwendungsbezogenes Problem kann dann mit diesen neuen Konstrukten beschrieben werden. Die einfachste Form der Einbettung sind Anwendungsbibliotheken. Noch weitere Implementierungsansätze sind möglich, etwa die Erweiterung eines GPL-Übersetzers, was in der Praxis jedoch schwierig ist, wenn der Übersetzer nicht mit Rücksicht auf Erweiterbarkeit gestaltet wurde. Ebenso können die vorgestellten Implementierungsverfahren kombiniert werden, um die entworfene DSL passend umzusetzen Einsatzphase Die Entwicklung einer DSL ist jedoch nicht mit der Erstellung des Programmcodes abgeschlossen. Damit die entwickelte Sprache von den Benutzern angenommen wird, ist die Erstellung von Trainingsmaterial erforderlich. Das Trainingsmaterial wird den Benutzern vermittelt und auf Rückmeldungen der Anwender muss Rücksicht genommen werden. Die Entwicklung darf nach auch im Einsatz nicht stagnieren, denn die Sprache muss gegebenenfalls an Änderungswünsche angepasst werden. Wenn sich die Domäne ändert, ist außerdem eine Anpassung oder der Neuentwurf einer DSL notwendig. Abbildung 2.5.1: Übersetzung von LaTeX in PDF

16 2. Entwicklung in Phasen Benötigte Expertise zur Entwicklung Um eine DSL entwickeln zu können, wird sowohl Domänen- als auch Sprachentwicklungswissen benötigt. Einerseits ist die Erfassung des Wissensgebiet eine wichtige und umfangreiche Aufgabe, denn wenn die Domäne nicht richtig verstanden wurde, kann keine gute DSL entworfen werden. Auf der anderen Seite muss auch die Implementierung einer Sprache umgesetzt werden, wofür Vorwissen aus der Sprachentwicklung unerlässlich ist. Da sich selten beide Fähigkeiten in einer Person finden, sind Erfahrung und gegenseitige Hilfe wichtig. Wie in den vergangenen Kapiteln gezeigt wurde, erfordert die Entwicklung einer DSL die Verbindung von Sprachentwicklung und Erfassung von Anwendungsgebieten. Die vorgestellten Vorgehensmuster können in den verschiedenen Entwicklungsstadien eine Hilfe sein.

17 3. Fazit Fazit Das Papier von Mernik, Heering und Sloane gibt einen guten Überblick über die verschiedenen Entwicklungsstadien einer DSL. Das Phasenmodell liefert einen Rahmen, in dem die Muster als konkrete Vorschläge zur Vorgehensweise in den einzelnen Phasen verankert sind. Auch wenn die Entwicklung nicht linear wie im Modell ablaufen muss, können die einzelnen Muster unabhängig von anderen Phasen genutzt werden. Somit zeigen die Autoren eine Möglichkeit zur strukturierten Entwicklung von DSL auf. Die zweite Primärquelle, ein Papier von Kelly und Pohjonen [5], erhebt den Anspruch, durch Gegenbeispiele zu zeigen, wie DSL-Entwicklung nicht aussehen darf. Erreicht werden soll dies durch Verdeutlichung von praktischen Problemen während der Entwicklung. Dem Papier liegt jedoch eine sehr eingeschränkte Datenbasis zugrunde: es wurden 76 Fälle bei nur einer Firma mit nur einem Werkzeug untersucht. Die Autoren sind selbst Mitarbeiter dieser Firma und haben die Erkenntnisse ihrer Untersuchungen noch während der Forschung als Ratschläge an Kunden weitergegeben, was diese Kunden laut den Autoren wahrscheinlich dazu veranlasst hat, die Probleme zu vermeiden und das Ergebnis zu verändern. Das Papier enthält viele vage Aussagen und meist unbelegte Thesen, die sich die Autoren nach eigenen Angaben selbst überlegt haben. Damit erreicht das Papier kaum wissenschaftliches Niveau und taugt allenfalls zur Sensibilisierung gegenüber Problemen während der Entwicklung. Die Entwicklung anwendungsbezogener Sprachen ist insbesondere durch die Kombination von Domänen- und Sprachentwicklungsexpertise ein spannendes Forschungsgebiet, das durch das Papier von Mernik eine Struktur erhalten hat. Diese Arbeit hat die theoretischen Ausarbeitungen der Autoren durch Beispiele ergänzt, um den möglichen Ablauf der DSL-Entwicklung anhand bekannter Sprachen zu verdeutlichen und den Einstieg zu erleichtern.

18 Anhang A: Literatur 16 Anhang A: Literatur [1] M. Mernik, J. Heering und A. M. Sloane. When and how to develop domain-specific languages. In ACM Computing Surveys, Band 37, Nummer 4, Seiten , [2] M. Bravenboer und E. Visser. Concrete Syntax for Objects: Domain- Specific Language Embedding and Assimilation without Restrictions. In Proceedings of the 19th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Seiten , [3] I. Herman. Web Ontology Language (OWL). Verfügbar unter (Zuletzt abgerufen am ) [4] U. Kastens. Vorlesung Grundlagen der Programmiersprachen. Verfügbar unter ( ) [5] S. Kelly und R. Pohjonen. Worst Practices for Domain-Specific Modeling. In Software, IEEE, Band 26, Nummer 4, Seiten 22 29, 2009.

Domain Specific Languages

Domain Specific Languages Domain Specific Languages Entwicklungsphasen für Anwendungsbezogene Sprachen (Domain Specific Language, DSL) präsentiert von Achim Schumacher im Seminar Software Language Engeneering 07.01.2010 Achim Schumacher:

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

WEBSEITEN ENTWICKELN MIT ASP.NET

WEBSEITEN ENTWICKELN MIT ASP.NET jamal BAYDAOUI WEBSEITEN ENTWICKELN MIT ASP.NET EINE EINFÜHRUNG MIT UMFANGREICHEM BEISPIELPROJEKT ALLE CODES IN VISUAL BASIC UND C# 3.2 Installation 11 Bild 3.2 Der Webplattform-Installer Bild 3.3 IDE-Startbildschirm

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Zahlen auf einen Blick

Zahlen auf einen Blick Zahlen auf einen Blick Nicht ohne Grund heißt es: Ein Bild sagt mehr als 1000 Worte. Die meisten Menschen nehmen Informationen schneller auf und behalten diese eher, wenn sie als Schaubild dargeboten werden.

Mehr

http://train-the-trainer.fh-joanneum.at IINFO Storyboard

http://train-the-trainer.fh-joanneum.at IINFO Storyboard IINFO Storyboard Allgemeine Bemerkungen und Richtlinien zur Handhabung. Das Storyboard besteht aus einem Web, d.h. einer vernetzten Struktur von HTML-Seiten welche später von den Programmieren direkt als

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

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

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

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

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

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

Mehr

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

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

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

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

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

Kennen, können, beherrschen lernen was gebraucht wird www.doelle-web.de

Kennen, können, beherrschen lernen was gebraucht wird www.doelle-web.de Inhaltsverzeichnis Inhaltsverzeichnis... 1 Grundlagen... 2 Hyperlinks innerhalb einer Datei... 2 Verweisziel definieren... 2 Einen Querverweis setzen... 3 Verschiedene Arten von Hyperlinks... 3 Einfache

Mehr

Anleitung zur Verwendung der VVW-Word-Vorlagen

Anleitung zur Verwendung der VVW-Word-Vorlagen Anleitung zur Verwendung der VVW-Word-Vorlagen v1.0. Jun-15 1 1 Vorwort Sehr geehrte Autorinnen und Autoren, wir haben für Sie eine Dokumentenvorlage für Microsoft Word entwickelt, um Ihnen die strukturierte

Mehr

Einführung in. Logische Schaltungen

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

Mehr

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html

Mehr

Software Entwicklung II (SS12)

Software Entwicklung II (SS12) Prof. Dr. P. Liggesmeyer Dipl.-Inf. K. Bizik M.Sc. K. Nehring TU Kaiserslautern Fachbereich Informatik AG Software Engineering: Dependability Software Entwicklung II (SS12) Übung 5 Ausgabe: 04.06.2012

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

HTML5. Wie funktioniert HTML5? Tags: Attribute:

HTML5. Wie funktioniert HTML5? Tags: Attribute: HTML5 HTML bedeutet Hypertext Markup Language und liegt aktuell in der fünften Fassung, also HTML5 vor. HTML5 ist eine Auszeichnungssprache mit der Webseiten geschrieben werden. In HTML5 wird festgelegt,

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

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003 Nicht kopieren Der neue Report von: Stefan Ploberger 1. Ausgabe 2003 Herausgeber: Verlag Ploberger & Partner 2003 by: Stefan Ploberger Verlag Ploberger & Partner, Postfach 11 46, D-82065 Baierbrunn Tel.

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

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

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

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3 Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer Inhalt Erste Anmeldung. Schritt 1: Anmeldung..2 Schritt 2: Passwort setzen 3 Schritt 3: Nachträgliches Ändern des Passworts..4 Schreiben

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

Schreiben fürs Web. Miriam Leifeld und Laura Schröder Stabsstelle Kommunikation und Marketing. 4. Mai 2015

Schreiben fürs Web. Miriam Leifeld und Laura Schröder Stabsstelle Kommunikation und Marketing. 4. Mai 2015 Schreiben fürs Web 4. Mai 2015 Anleitung zum webgerechten Texten 2 Online-Texte werden in der Regel anders gelesen als Print-Texte. Wer online liest, scannt Texte, nimmt Inhalte nur selektiv auf und entscheidet

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

Formale Sprachen und Grammatiken

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

Mehr

Mobile Intranet in Unternehmen

Mobile Intranet in Unternehmen Mobile Intranet in Unternehmen Ergebnisse einer Umfrage unter Intranet Verantwortlichen aexea GmbH - communication. content. consulting Augustenstraße 15 70178 Stuttgart Tel: 0711 87035490 Mobile Intranet

Mehr

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

Die Textvorlagen in Microsoft WORD und LibreOffice Writer Die Textvorlagen in Microsoft WORD und LibreOffice Writer Liebe Teilnehmer(-innen) am Landeswettbewerb Deutsche Sprache und Literatur Baden- Württemberg, Diese Anleitung soll Ihnen helfen Ihren Wettbewerbsbeitrag

Mehr

Energetische Klassen von Gebäuden

Energetische Klassen von Gebäuden Energetische Klassen von Gebäuden Grundsätzlich gibt es Neubauten und Bestandsgebäude. Diese Definition ist immer aktuell. Aber auch ein heutiger Neubau ist in drei (oder vielleicht erst zehn?) Jahren

Mehr

Bildquelle: http://bild2.qimage.de/diamant-computergesteuerte-naehmaschine-foto-bild-86314142.jpg

Bildquelle: http://bild2.qimage.de/diamant-computergesteuerte-naehmaschine-foto-bild-86314142.jpg Bildquelle: http://bild2.qimage.de/diamant-computergesteuerte-naehmaschine-foto-bild-86314142.jpg Unsere digitale Welt konfrontiert uns mit einer Unmenge an computergesteuerten Geräten, Maschinen und Steueranlagen.

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

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Informatik Kurs Simulation. Hilfe für den Consideo Modeler Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke

Mehr

AutoTexte und AutoKorrektur unter Outlook verwenden

AutoTexte und AutoKorrektur unter Outlook verwenden AutoTexte und AutoKorrektur unter Outlook verwenden Die Hilfsmittel "AutoKorrektur" und "AutoTexte", die schon unter Microsoft Word das Arbeiten erleichtern, sind natürlich auch unter Outlook verfügbar.

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

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Word 2010 Schnellbausteine

Word 2010 Schnellbausteine WO.001, Version 1.0 02.04.2013 Kurzanleitung Word 2010 Schnellbausteine Word 2010 enthält eine umfangreiche Sammlung vordefinierter Bausteine, die sogenannten "Schnellbausteine". Neben den aus den früheren

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

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

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach - Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6

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

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen Dateiname: ecdl6_05_01_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 6 Präsentation - Diagramm

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

Animationen erstellen

Animationen erstellen Animationen erstellen Unter Animation wird hier das Erscheinen oder Bewegen von Objekten Texten und Bildern verstanden Dazu wird zunächst eine neue Folie erstellt : Einfügen/ Neue Folie... Das Layout Aufzählung

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

Unified Modeling Language (UML)

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

Mehr

Erstellen eigener HTML Seiten auf ewon

Erstellen eigener HTML Seiten auf ewon ewon - Technical Note Nr. 010 Version 1.2 Erstellen eigener HTML Seiten auf ewon 30.08.2006/SI Übersicht: 1. Thema 2. Benötigte Komponenten 3. Funktionsaufbau und Konfiguration 3.1. Unterpunkt 1 3.2. Unterpunkt

Mehr

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

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

Mehr

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

Geld Verdienen im Internet leicht gemacht

Geld Verdienen im Internet leicht gemacht Geld Verdienen im Internet leicht gemacht Hallo, Sie haben sich dieses E-book wahrscheinlich herunter geladen, weil Sie gerne lernen würden wie sie im Internet Geld verdienen können, oder? Denn genau das

Mehr

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) 3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere

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

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1): Supportanfrage ESN Bitte füllen Sie zu jeder Supportanfrage diese Vorlage aus. Sie helfen uns damit, Ihre Anfrage kompetent und schnell beantworten zu können. Verwenden Sie für jedes einzelne Thema jeweils

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

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Wir wollen, dass ihr einfach für eure Ideen und Vorschläge werben könnt. Egal ob in ausgedruckten Flyern, oder in sozialen Netzwerken und

Mehr

Notation und Gestaltung

Notation und Gestaltung Kapitel 1 Zahlen visualisieren die Grundlagen Notation und Gestaltung Gestaltungsregeln aus dem Corporate Design sollten nur dann zur Anwendung kommen, wenn sie dem Verständnis dienen. Alle dekorativen

Mehr

Gästeverwaltung. Gästestammdaten. Gäste verwalten. Hotelsoftware für Klein- und Mittelbetriebe

Gästeverwaltung. Gästestammdaten. Gäste verwalten. Hotelsoftware für Klein- und Mittelbetriebe Gästeverwaltung Hotelsoftware für Klein- und Mittelbetriebe Gästestammdaten Gäste verwalten Gästeverwaltung für Windows ermöglicht Ihnen die komfortable Erfassung Ihrer Gästestammdaten und stellt diese

Mehr

Hochschule Ravensburg-Weingarten. Technik Wirtschaft Sozialwesen. Projektarbeit

Hochschule Ravensburg-Weingarten. Technik Wirtschaft Sozialwesen. Projektarbeit Hochschule Ravensburg-Weingarten Technik Wirtschaft Sozialwesen Projektarbeit Entwicklung eines Reitmoduls mit Reitstundenverwaltung für eine existierende Homepage eines Reitvereins vorgelegt von: Tobias

Mehr

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen. Wir wollen mit Ihnen Ihren Auftritt gestalten Steil-Vorlage ist ein österreichisches Start-up mit mehr als zehn Jahren Erfahrung in IT und Kommunikation. Unser Ziel ist, dass jede einzelne Mitarbeiterin

Mehr

GEONET Anleitung für Web-Autoren

GEONET Anleitung für Web-Autoren GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden

Mehr

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig?

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig? Pädagogik Melanie Schewtschenko Eingewöhnung und Übergang in die Kinderkrippe Warum ist die Beteiligung der Eltern so wichtig? Studienarbeit Inhaltsverzeichnis 1. Einleitung.2 2. Warum ist Eingewöhnung

Mehr

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Tutorial about how to use USBView.exe and Connection Optimization for VNWA. Tutorial about how to use USBView.exe and Connection Optimization for VNWA. Tutorial über den Gebrauch von USBView.exe und die Anschluss-Optimierung für den VNWA. Es wurde beobachtet, dass bestimmte VNWA

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

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

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

So gehts Schritt-für-Schritt-Anleitung

So gehts Schritt-für-Schritt-Anleitung So gehts Schritt-für-Schritt-Anleitung Software WISO Mein Büro Thema Eigene Auswertungen, Tabellenauswertungen Version/Datum V 13.00.05.101 Über die Tabellen-Auswertungen ist es möglich eigene Auswertungen

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

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

Bedienung des Web-Portales der Sportbergbetriebe

Bedienung des Web-Portales der Sportbergbetriebe Bedienung des Web-Portales der Sportbergbetriebe Allgemein Über dieses Web-Portal, können sich Tourismusbetriebe via Internet präsentieren, wobei jeder Betrieb seine Daten zu 100% selbst warten kann. Anfragen

Mehr

Format- oder Stilvorlagen

Format- oder Stilvorlagen Vorraussetzung Sie sollten Grundkenntnisse der HTML-Sprache besitzen, um die Ausbildungseinheit Formatvorlagen, auch Stilvorlagen genannt, ohne Probleme verstehen zu können. Ist dies nicht der Fall, empfehlen

Mehr

HTML. HyperText Markup Language. Die Programmiersprache des WWW. Keine eigentliche Programmiersprache, sondern eher Seitenbeschreibungssprache

HTML. HyperText Markup Language. Die Programmiersprache des WWW. Keine eigentliche Programmiersprache, sondern eher Seitenbeschreibungssprache HTML HyperText Markup Language Die Programmiersprache des WWW Keine eigentliche Programmiersprache, sondern eher Seitenbeschreibungssprache systemübergreifend, plattformunabhängig (im Idealfall) HTML-Text

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

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

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter. Stundenverwaltung Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter. Dieses Programm zeichnet sich aus durch einfachste

Mehr

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien Sie haben von der VR DISKONTBANK GmbH ein signiertes PDF-Dokument (i.d.r. eine Zentralregulierungsliste mit dem Status einer offiziellen Rechnung) erhalten und möchten nun die Signatur verifizieren, um

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

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

Herzlich willkommen zum Kurs "MS Word 2003 Professional"

Herzlich willkommen zum Kurs MS Word 2003 Professional Herzlich willkommen zum Kurs "MS Word 2003 Professional" 3 Datenaustausch Zum Austausch von Daten zwischen Word und anderen Programmen können Sie entweder über die Zwischenablage oder über Einfügen/Objekt

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Zusammenführen mehrerer Dokumente zu einem PDF In drei Abschnitten erstellen Sie ein Dokument aus mehreren Einzeldokumenten:

Zusammenführen mehrerer Dokumente zu einem PDF In drei Abschnitten erstellen Sie ein Dokument aus mehreren Einzeldokumenten: Zusammenführen mehrerer Dokumente zu einem PDF In drei Abschnitten erstellen Sie ein Dokument aus mehreren Einzeldokumenten: 1. Das erste Dokument drucken 2. Weitere Dokumente hinzufügen 3. Alle Dokumente

Mehr

Hinweise zum Übungsblatt Formatierung von Text:

Hinweise zum Übungsblatt Formatierung von Text: Hinweise zum Übungsblatt Formatierung von Text: Zu den Aufgaben 1 und 2: Als erstes markieren wir den Text den wir verändern wollen. Dazu benutzen wir die linke Maustaste. Wir positionieren den Mauszeiger

Mehr

Kurzanleitung für Verkäufer

Kurzanleitung für Verkäufer Kurzanleitung für Verkäufer Registrieren auf www.easybasar.de Einloggen Am Basar anmelden Artikel erfassen Artikel abgeben Artikel abholen Registrieren bei www.easybasar.de Sie sollten sich bereits vor

Mehr

Zur drittletzten Zeile scrollen

Zur drittletzten Zeile scrollen 1 Fragen und Antworten zur Computerbedienung Thema : Zur drittletzten Zeile scrollen Thema Stichwort Programm Letzte Anpassung Zur drittletzten Zeile scrollen Scrollen VBA Excel 1.02.2014 Kurzbeschreibung:

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

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen Beispielheft Inhalt Allgemeine Einführung Test Eins: Test Zwei: Test Drei: Test Vier: Test Fünf: Argumentationsvermögen Auffassungsvermögen Zahlenvermögen Sprachverständnis Räumliches Vorstellungsvermögen

Mehr

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie. GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen Teil 1: Einführung: Wissensbasis und Ontologie Was ist eine Wissensbasis? Unterschied zur Datenbank: Datenbank: strukturiert

Mehr

... MathML XHTML RDF

... MathML XHTML RDF RDF in wissenschaftlichen Bibliotheken (LQI KUXQJLQ;0/ Die extensible Markup Language [XML] ist eine Metasprache für die Definition von Markup Sprachen. Sie unterscheidet sich durch ihre Fähigkeit, Markup

Mehr

Kurzeinführung zum Plotten in Maple

Kurzeinführung zum Plotten in Maple Kurzeinführung zum Plotten in Maple Dies ist eine sehr kurze Einführung, die lediglich einen Einblick in die Visualisierung von Funktionen und Mengen gestatten soll und keinesfalls um Vollständigkeit bemüht

Mehr

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr