Entwicklung Anwendungsbezogener Sprachen
|
|
- Dominik Martin
- vor 8 Jahren
- Abrufe
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 Entwicklungsphasen für Anwendungsbezogene Sprachen (Domain Specific Language, DSL) präsentiert von Achim Schumacher im Seminar Software Language Engeneering 07.01.2010 Achim Schumacher:
MehrFachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
MehrWEBSEITEN 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
Mehr4 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
MehrZahlen 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.
Mehrhttp://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
MehrDokumentation 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
MehrEinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2
EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
Mehr4. 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
MehrDatenbanken 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,
MehrIst Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers
Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
Mehretutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche
etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrVermeiden 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
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrKennen, 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
MehrAnleitung 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
MehrEinführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
MehrDieses 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
MehrSoftware 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
MehrIn 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
MehrHTML5. 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,
MehrProfessionelle 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
MehrOECD 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
MehrNicht 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.
Mehr10 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
MehrZwischenablage (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
MehrGrundbegriffe 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
MehrDiese 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
MehrVgl. 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,
MehrSchreiben 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
MehrSpeicher 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
MehrFormale Sprachen und Grammatiken
Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax
MehrMobile 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
MehrDie 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
MehrEnergetische 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
MehrBildquelle: 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.
MehrZeichen 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
MehrInformatik 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
MehrAutoTexte 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.
MehrDie 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...
MehrErweiterung 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
MehrWord 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 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
MehrWie 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
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrÜ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:
MehrPHP - 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
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
MehrHandbuch 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
MehrHandbuch 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
MehrAnimationen 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
MehrProgrammiersprachen 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
MehrUnified Modeling Language (UML)
Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine
MehrErstellen 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
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrAnleitung ü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
MehrGeld 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
MehrErstellen 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
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22
Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften
MehrErstellen 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
MehrVersion 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
MehrKapitel 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
MehrFlyer, 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
MehrNotation 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
MehrGä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
MehrHochschule 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
MehrWelche 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
MehrGEONET 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
MehrPä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
MehrTutorial 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
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrSoftware 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
MehrDr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht
Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??
MehrSo 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
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
MehrStellen 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.
MehrBedienung 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
MehrFormat- 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
MehrHTML. 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
MehrPrimzahlen 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
MehrSemantic 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
MehrMit 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
MehrBedienungsanleitung: 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
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrProduktskizze. 28. November 2005 Projektgruppe Syspect
28. November 2005 Carl von Ossietzky Universität Oldenburg Fakultät II Department für Informatik Abteilung Entwicklung korrekter Systeme Inhaltsverzeichnis 1 Einleitung 3 2 Die graphische Oberfläche der
MehrHerzlich 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
MehrDrei-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
MehrZusammenfü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
MehrHinweise 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
MehrKurzanleitung 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
MehrZur 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:
MehrGuide 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
MehrInhalt. 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
MehrGI-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
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
MehrKurzeinfü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
MehrWü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