Lade Inhalt...

Implementierung einer OS X-Anwendung zur Verarbeitung und Auswertung von P3T-Dateien

Masterarbeit 2016 82 Seiten

Informatik - Software

Leseprobe

Inhaltsverzeichnis

1 Einführung
1.1 Motivation
1.2 Ziel der Arbeit
1.3 Wissensvoraussetzungen
1.4 Vorgehensweise

2 Spezifikation von P3T
2.1 Begriffe und Definitionen
2.2 P3TML
2.2.1 Grundstruktur
2.2.2 Zeitelemente
2.2.3 Kategorien
2.2.4 Tags
2.2.5 Tätigkeitsbeschreibungen
2.2.6 Beispiel
2.3 P3TQL
2.3.1 Grundstruktur
2.3.2 FROM-Klausel
2.3.3 FILTER-Klausel
2.3.4 LIST-Klausel
2.3.5 Beispiel

3 Anforderungen der Anwendung
3.1 Funktionale Anforderungen
3.1.1 Dateioperationen
3.1.2 Syntaxhervorhebung
3.1.3 Fehlerprüfung
3.1.4 Auswertung
3.2 Benutzeroberfläche
3.3 Nicht-funktionale Anforderungen
3.3.1 Systemanforderungen
3.3.2 Fehlertoleranz
3.3.3 Performance

4 Theoretische Grundlagen zur Analyse formaler Sprachen
4.1 Begriffe und Definitionen
4.2 Lexikalische Analyse
4.2.1 Scanner
4.2.2 Reguläre Ausdrücke
4.2.3 Sieber
4.3 Syntaktische Analyse
4.3.1 Parser
4.3.2 Kontextfreie Grammatiken
4.3.3 Syntaxanalyseverfahren
4.3.4 Behandlung von Syntaxfehlern
4.4 Anwendung der Theorie auf P3T
4.4.1 P3TML
4.4.2 P3TQL

5 Theoretische Grundlagen zum Cocoa-Framework
5.1 Dokumentenbasierte Anwendungen
5.1.1 Überblick
5.1.2 Beteiligte Klassen und ihre Aufgaben
5.1.3 Festlegen des Dokumententyps
5.1.4 Erstellen neuer Dokumente
5.1.5 Öffnen von Dokumenten
5.1.6 Speichern von Dokumenten
5.1.7 Undo-Redo-Funktionalität
5.2 Anwendungsmenü
5.3 Textverarbeitung
5.4 Datum- und Zeitrechnung
5.4.1 Überblick
5.4.2 Erstellen von Zeitpunkten
5.4.3 Formatieren von Zeitpunkten
5.4.4 Zeitberechnungen

6 Implementierung
6.1 Verwendete Technologien
6.2 Erstellen einer dokumentenbasierten Anwendung .
6.2.1 Xcode-Template
6.2.2 Dokumentdaten lesen
6.2.3 Dokumentdaten speichern
6.2.4 UTI-Konfiguration
6.3 Anwendungsmenü
6.4 Textdarstellung
6.5 Trennen von P3TML und P3TQL
6.6 Lexikalische Analyse
6.6.1 Überblick
6.6.2 Scanner
6.6.3 Contexter
6.6.4 Screener
6.7 Syntaktische Analyse von P3TML
6.7.1 Erstellen der Elementliste
6.7.2 Generieren der Baumstruktur
6.8 Syntaktische Analyse von P3TQL
6.8.1 Grundstruktur
6.8.2 Parsen der LIST-Klausel
6.8.3 Parsen der FROM-Klausel
6.8.4 Parsen der FILTER-Klausel
6.9 Evaluation
6.9.1 Überblick
6.9.2 Auswertung der FROM-Klausel
6.9.3 Auswertung der FILTER-Klausel
6.9.4 Auswertung der LIST-Klausel
6.10 Performanceoptimierungen
6.10.1 Ansprechverhalten
6.10.2 Syntaxhervorhebung
6.10.3 Auswertung

7 Fazit

Literaturverzeichnis

Abbildungsverzeichnis

Tabellenverzeichnis

Verzeichnis der Listings

1 Einführung

The continued dominance of the command line among experts is a testament to the power of linguistic abstraction: when it comes to computing, a word is worth a thousand pictures.

— Matt Might1

1.1 Motivation

Bestehende OS X-Anwendungen zur Zeiterfassung wie Klok 2, On The Job 3 oder Res cueTime 4 arbeiten mit einem mehr oder weniger aufwendigem Nutzerinterface, keine nutzt Klartext zur Datenerfassung und -auswertung. Zwar bieten manche dieser Anwendungen Exportfunktionen in Formate wie XML, die exportierten Daten sind jedoch in der Regel unübersichtlich und eignen sich nicht zur manuellen Pflege. Des Weiteren sind die Möglichkeiten zur Auswertung der Daten auf die häufigsten Anwendungsfälle beschränkt und bieten somit eine geringe Flexibilität.

Aus den genannten Gründen wurde im Vorfeld dieser Arbeit das P3T-Format entwi- ckelt. P3T steht abkürzend für Plain Text Time Tracking und bezeichnet ein Daten- format zum Zweck der Zeiterfassung und der Auswertung der erfassten Daten. Das Format kombiniert die P3T-Auszeichnungssprache, die zur Datenerfassung dient und die P3T-Abfragesprache, die zur Auswertung der erfassten Daten verwendet wird. An- gelehnt an die Einfachheit von Markdown5 wurde die P3T-Auszeichnungssprache mit dem Ziel entwickelt, Zeitdaten möglichst übersichtlich und mit geringer Tipparbeit er- fassen zu können. Die Datenerfassung mit Klartext bietet dem Nutzer Unabhängigkeit von einer speziellen Anwendung und eine hohe Kontrolle über die Daten. Das Ziel der P3T-Abfragesprache ist es, eine hohe Flexibilität bei der Datenauswertung zu bieten, d.h. der Nutzer ist nicht auf vordefinierte Abfragen beschränkt, sondern kann diese mithilfe der Sprache nach eigenen Bedürfnissen formulieren und anpassen.

1.2 Ziel der Arbeit

Das Ziel dieser Arbeit ist die Implementierung einer OS X-Anwendung zum Verarbeiten und Auswerten von P3T-Dateien. Unter Verarbeiten ist insbesondere der Parseprozess mit visuellem Feedback zu verstehen. Dazu gehört die Darstellung der Dateiinhalte in ihrer Klartextform mit Syntaxhervorhebung und Fehlerprüfung. Zum Verarbeiten gehören des Weiteren Funktionen wie Editieren und Speichern bestehender oder mit der Anwendung erstellter P3T-Dateien.

Die Implementierung erfolgt für die OS X Plattform unter Verwendung des Cocoa- Frameworks und der Programmiersprache Swift. Zu den zentralen Aufgaben gehört die lexikalische und syntaktische Analyse beider Sprachen sowie die Auswertung der Daten. Durch die Analyse werden die Dateiinhalte auf die Einhaltung der Spezifika- tionsregeln überprüft und auf eine interne Programmstruktur abgebildet. Die interne Programmstruktur bildet die Basis für die Auswertung, deren Ergebnisse dem Nutzer in Textform präsentiert werden.

1.3 Wissensvoraussetzungen

Im Rahmen dieser Arbeit werden grundlegende Kenntnisse zur OS X-Entwicklung vorausgesetzt. Dazu gehören Kenntnisse zum Cocoa-Framework6, zum Umgang mit der Entwicklungsumgebung Xcode7 sowie zur Programmiersprache Swift8.

1.4 Vorgehensweise

Zunächst wird in Kapitel 2 das P3T-Format spezifiziert. Die Spezifikation bildet die Basis für die Anforderungen der Anwendung, die in dem darauffolgenden Kapitel 3 aufgestellt werden.

In Kapitel 4 werden die theoretischen Grundlagen zur Analyse formaler Sprachen erläutert. Dazu gehören die lexikalische und syntaktische Analyse. Zur Veranschaulichung wird die Theorie auf P3T angewendet. Die Theorieanwendung stellt gleichzeitig eine Vorarbeit für die Implementierung des P3T-Parsers dar.

In Kapitel 5 werden die theoretischen Grundlagen zum Cocoa-Framework erläutert. Der Schwerpunkt liegt dabei auf speziellen Aspekten des Frameworks, die für die Umsetzung der Anforderungen notwendig sind. Dazu gehören dokumentenbasierte Anwendungen, Textverwaltung sowie Datum- und Zeitrechnung mit Cocoa.

In Kapitel 6 werden anschließend die Schritte zur Umsetzung der Anwendung beschrieben. Aufgrund des hohen Umfangs des Projektes werden nur die wichtigsten Implementierungsdetails aufgezeigt.

Zum Schluss erfolgt in Kapitel 7 die Zusammenfassung der Ergebnisse. Es wird des Weiteren ein Ausblick mit Verbesserungsvorschlägen und Erweiterungsmöglichkeiten gegeben.

2 Spezifikation von P3T

In diesem Kapitel wird das P3T-Format spezifiziert. Die Spezifikation legt den Funktionsumfang von P3T fest und bildet somit die Basis für die Anforderungen und die Implementierung der Anwendung.

2.1 Begriffe und Definitionen

P3T

P3T steht abkürzend für Plain Text Time Tracking und bezeichnet ein kompaktes Datenformat in einer einfach lesbaren Textform zum Zweck der Zeiterfassung und der Auswertung der erfassten Daten. Eine P3T-Datei besteht aus P3TML-Daten und P3TQL-Daten, getrennt durch die Zeichenfolge ____.

P3TML

P3TML steht abkürzend für die P3T-Auszeichnungssprache (Plain Text Time Tracking Markup Language) und dient zur Erfassung von Zeitdaten. In der Arbeit wird von P3TML-Daten gesprochen, wenn die konkreten Auszeichnungsdaten einer P3T-Datei gemeint sind.

P3TQL

P3TQL steht abkürzend für die P3T-Abfragesprache (Plain Text Time Tracking Query Language). In der Arbeit wird von P3TQL-Daten bzw. P3TQL-Abfragen gesprochen, wenn die konkreten Abfragen einer P3T-Datei gemeint sind.

2.2 P3TML

2.2.1 Grundstruktur

Die Grundstruktur von P3TML ist in Listing 2.1 angedeutet.

Abbildung in dieser Leseprobe nicht enthalten

Listing 2.1: Grundstruktur von P3TML

Wie zu sehen ist, können mit der Sprache Hierarchien von Kategorien erstellt werden. Jeder Kategorie können Zeitelemente zugewiesen werden. Des Weiteren besteht die Möglichkeit, Tags zuzuweisen und Tätigkeitsbeschreibungen anzulegen. In den Unterabschnitten 2.2.2 bis 2.2.5 werden diese Elemente im Detail beschrieben.

2.2.2 Zeitelemente

Zeitelemente sind die zentralen Elemente von P3TML. Alle weiteren Elemente sind Hilfskonstrukte, um Zeitelemente zu verwalten.

Unter dem Begriff Zeitelement ist eine zeitliche Spanne zu verstehen, deren Anfang und Ende je durch ein Datum und eine Uhrzeit gekennzeichnet sind. Die Definition ist in Abbildung 2.1 veranschaulicht.

Ein Zeitelement wird in dem Format <Datum>: <Zeit> - <Datum>: <Zeit> angegeben. Falls es sich um das gleiche Start- und Enddatum handelt, ist die Kurzschreibweise <Datum>: <Zeit> - <Zeit> erlaubt, z.B. 2015-05-11: 10:00 - 14:30.

Die Schreibweise 2015-05-11: 10:00 - 14:30, 16:00 - 18:00 ist ebenfalls mög- lich. Als Datum für eine Zeitangabe ohne eine explizite Datumsangabe gilt das zuletzt

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.1: Veranschaulichung des Begriffs Zeitelement

verwendete Datum. Der Doppelpunkt nach der Datumsangabe sowie die Kommas zwi- schen den Zeitpunkten dienen lediglich der besseren Lesbarkeit und sind damit optio- nal.

Orientiert an dem internationalen Standard ISO 86011 und der DIN-Norm DIN 50082 werden folgende Datumsformate akzeptiert:

- JJJJ-MM-TT z.B. 2015-05-11
- TT-MM-JJJJ z.B. 11-05-2015

Als Trennzeichen können anstatt - ebenso die Zeichen / und . verwendet werden. Führende Nullen in der Monats- und Tagesangabe können weggelassen werden, die Schreibweise 1.1.2015 ist beispielsweise gültig.

Als Zeitformat wird die Form hh:mm akzeptiert, z.B. 12:30. Führende Nullen in der Stundenangabe können weggelassen werden. Die Angabe 8:15 ist dementsprechend valide.

2.2.3 Kategorien

Kategorien dienen zum Gruppieren von Zeitelementen in Form einer hierarchischen Struktur. Eine Kategorie wird mit Hilfe des Rautezeichens # ausgezeichnet, gefolgt vom Namen der Kategorie. Die Anzahl der Rautezeichen bestimmt die Hierarchiestufe einer Kategorie. Abbildung 2.2 verdeutlicht das Prinzip. Zu einer Kategorie gehören alle ihr direkt zugeordneten Zeitelemente sowie jedes Zeitelement ihrer Unterkategorien.

Zum Beispiel gehören Zeitelement 1 und Zeitelement 2 zu den Kategorien C1, C2 und C3.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.2: Gruppieren der Zeitelemente mit Kategorien

Für die Benennung einer Kategorie sind alle UTF-8-Zeichen erlaubt. Die Zeichen [Abbildung in dieser Leseprobe nicht enthalten]sind als Metazeichen definiert und müssen deswegen mit Backslash[Abbildung in dieser Leseprobe nicht enthalten]maskiert werden.

2.2.4 Tags

Tags dienen ebenfalls zum Gruppieren der Zeitelemente, jedoch ohne Hierarchiebildung. Sie können jeder beliebigen Kategorie und jedem beliebigen Zeitelement zugeordnet werden. Es ist weiterhin möglich, eine Kategorie oder ein Zeitelement mit mehreren Tags zu versehen. Tags werden mit dem Zeichen @ gekennzeichnet, gefolgt vom Namen des Tags. Für die Benennung gelten die selben Regeln wie für die Kategoriebenennung. Wird einer Kategorie ein Tag zugewiesen, gilt dieser Tag ebenso für die Menge der Zeitelemente, die zu dieser Kategorie gehören. Der Zusammenhang ist in Abbildung

2.3 veranschaulicht.

2.2.5 Tätigkeitsbeschreibungen

Jedem Zeitelement kann eine Beschreibung zugewiesen werden, um beispielsweise die Aufgabe, die in dieser Zeit erledigt wurde, zu präzisieren. Diese steht in Klammern

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.3: Gruppieren der Zeitelemente mit Tags hinter dem Zeitelement. Für die erlaubten Zeichen gelten die selben Regeln wie für die Kategoriebenennung.

2.2.6 Beispiel

Als Beispiel soll die Zeiterfassung aus dem Bereich Sport dienen. In Listing 2.2 ist eine mögliche Auszeichnung dargestellt.

Abbildung in dieser Leseprobe nicht enthalten

Listing 2.2: Beispiel zur Zeiterfassung mithilfe von P3TML

Die Kategorien dienen der Gliederung der Zeitelemente nach Sportarten. Die Tags wurden genutzt, um den Sportarten einen Bereich zuzuweisen.

2.3 P3TQL

2.3.1 Grundstruktur

Die P3T-Abfragesprache dient dazu, P3TML-Daten auszuwerten. Die Grundstruktur von P3TQL ist in Listing 2.3 dargestellt.

Abbildung in dieser Leseprobe nicht enthalten

Listing 2.3: Grundstruktur von P3TQL

Eine Abfrage besteht aus einem Namen, einer LIST-, FROM- und FILTER-Klausel. Für die LIST- und FILTER-Klausel sind Standardwerte definiert, d.h. diese sind op- tional.

Das Ergebnis einer solchen Abfrage ist eine Liste von Zeitergebnissen. Unter dem Begriff Zeitergebnis ist dabei eine Zeitdauer innerhalb eines bestimmten Zeitraumes zu verstehen. Die Definition ist in Abbildung 2.4 veranschaulicht.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.4: Veranschaulichung des Begriffs Zeitergebnis

Die Zeitdauer wird durch eine Länge in Form von Stunden und Minuten definiert. Der Zeitraum wird durch ein Anfangs- und ein Enddatum angegeben.

Die Klauseln werden in den Unterkapiteln 2.3.2 bis 2.3.4 näher erläutert. Bei der Verwendung von Schlüsselwörtern und Operatoren wird in allen Klauseln die Groß- und Kleinschreibung ignoriert.

2.3.2 FROM-Klausel

Die FROM-Klausel bestimmt die Grundmenge der Zeitelemente, die ausgewertet wer- den. Zur Bildung der Menge werden in der FROM-Klausel Argumente angegeben, die mit Mengenoperatoren verknüpft werden können. Ein Argument wird entweder durch eine Kategorie oder einen Tag bestimmt, deren Name in einfachen Anführungszeichen angegeben wird. Zur Unterscheidung wird bei einem Tag das @-Zeichen mit angege- ben.

Argumente können mit folgenden Mengenoperatoren verbunden werden:

- INTERSECTION - bildet die Durchschnittsmenge A B der Mengen A und B, d.h. die Ergebnismenge enthält nur die Einträge, die sowohl in A als auch in B vorhanden sind.
- UNION - bildet die Vereinigungsmenge A B der Mengen A und B, d.h. die Ergebnismenge enthält die Einträge, die entweder in A oder in B vorhanden sind.
- DIFFERENCE - bildet die Differenzmenge A \ B der Mengen A und B. Die Differenz erhält man, indem Einträge, die in B vorhanden sind, aus A entfernt werden.

Abbildung 2.5 zeigt verschiedene Beispiele und veranschaulicht den Zusammenhang zwischen P3TML-Daten, der FROM-Klausel und der Ergebnismenge. ZE steht hierbei abkürzend für Zeitelement.

Die Anzahl von Argumenten ist dabei nicht beschränkt. Präferenzen werden durch Klammerung angegeben. Werden keine Klammern gesetzt, wird der Ausdruck von links nach rechts verarbeitet.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.5: Veranschaulichung der FROM-Klausel und deren Ergebnismenge

2.3.3 FILTER-Klausel

Die FILTER-Klausel dient zur Filterung der Grundmenge, die durch die FROM-Klausel bestimmt wird. Die Filterung erfolgt durch Angabe eines Zeitraumes. Aus der Grund- menge werden die Zeitelemente herausgefiltert, die nicht innerhalb des festgelegten Zeitraums liegen.

Ein Zeitraum wird mit <Datum> - <Datum> angegeben. Es ist weiterhin möglich, nur ein spezielles Datum mit <Datum> anzugeben.

Alternativ können die Schlüsselwörter all, today, this week, this month, this year verwendet werden. Der Wert all ist der Standardwert, bei dem keine Filterung erfolgt. Mit today werden die Zeitelemente des aktuellen Tages, mit this week die Zeitelemente der aktuellen Woche usw. ausgewertet. Damit wird dem Nutzer in be- stimmten Fällen die Arbeit erspart, den Filterzeitraum fortwährend aktualisieren zu müssen.

2.3.4 LIST-Klausel

Die LIST-Klausel liefert das Endergebnis in Form von Zeitergebnissen. Sie bestimmt, wie die durch FROM- und FILTER-Klausel festgelegte Ergebnismenge dargestellt wird. Genauer gesagt legt die LIST-Klausel fest, aus welchen Zeiträumen die Zeitergebnisse bestehen. Mögliche Schlüsselwörter sind days, weeks, months, years, sum.

Zum Beispiel liefert die LIST months-Anweisung Monate als Zeiträume, wie in Listing 2.4 beispielhaft dargestellt. Die Ergebnismenge wird also auf Monate abgebildet. Damit erhält der Nutzer die Information, wie viele Stunden pro Monat für bestimmte Tätigkeiten aufgewendet wurden.

Abbildung in dieser Leseprobe nicht enthalten

Listing 2.4: Beispiel für Zeitergebnisse für das Schlüsselwort months der LIST-Klausel

Die Anweisung LIST days liefert dementsprechend Tage, LIST weeks Wochen und LIST years Jahre als Zeiträume. Die Anweisung LIST sum summiert alle Stunden zu einem Wert auf. Der Zeitraum wird dabei durch das früheste und das späteste Datum der Ergebnismenge definiert. sum ist der Standardwert der LIST-Klausel.

2.3.5 Beispiel

Als Beispiel soll die Auswertung der Sportzeiten aus den Bereichen Ausdauer und Ko- ordination dienen. Die dazugehörigen P3TML-Beispieldaten wurden in Unterkapitel 2.2.6 dargestellt. In Listing 2.5 ist die Abfrage und das entsprechende Ergebnis darge- stellt.

Abbildung in dieser Leseprobe nicht enthalten

Listing 2.5: P3TQL-Beispielabfrage und Ergebnis

Damit wurde der volle Funktionsumfang von P3T anhand von Erläuterungen und Beispielen beschrieben. Eine Ergänzung zu diesem Kapitel erfolgt in Unterkapitel 4.4, nachdem die Grundlagen zur lexikalischen und syntaktischen Analyse geschaffen wurden. Dabei werden die Tokenklassen und die Grammatiken von P3T ausgearbeitet. Diese stellen eine formale Ergänzung der Spezifikation dar.

3 Anforderungen der Anwendung

In diesem Kapitel erfolgt die Anforderungsspezifikation für die Anwendung, die im Rahmen dieser Arbeit entwickelt wird. Die P3T-Spezifikation des vorhergehenden Ka- pitels bildet die Basis dafür. Die zentrale Aufgabe der Anwendung ist es, P3T-Dateien zu verarbeiten. Die genauen Anforderungen werden im Folgenden beschrieben.

3.1 Funktionale Anforderungen

3.1.1 Dateioperationen

P3T-Dateien können mit der Anwendung erstellt, geöffnet, editiert und gespeichert wer- den. Das Verhalten dieser Operationen entspricht denen einer nativen OS X-Anwendung, wie beispielsweise die Anwendungen Pages, Numbers oder Keynote von Apple Inc.

3.1.2 Syntaxhervorhebung

Die Dateiinhalte werden beim Öffnen in Klartextform mit Syntaxhervorhebung darge- stellt. Zur Syntaxhervorhebung gehört die farbliche Unterscheidung folgender P3TML- Elemente:

- Zeitelemente
- Kategorien
- Tags
- Tätigkeitsbeschreibungen

und folgender P3TQL-Bestandteile:

- Abfragenamen
- Klausel-Kennzeichnungen LIST, FROM, FILTER
- Argumente der FROM-Klausel
- Operatoren der FROM-Klausel
- Schlüsselwörter der LIST- und der FILTER-Klausel

3.1.3 Fehlerprüfung

Die P3T-Daten werden nach dem Öffnen und nach jeder Änderung auf Korrektheit, also auf die Einhaltung der Spezifikationsregeln geprüft. Wurde ein Fehler festgestellt, wird die entsprechende Stelle im Text gekennzeichnet. Zusätzlich wird eine Meldung mit einer Fehlerbeschreibung ausgegeben.

3.1.4 Auswertung

Der Nutzer hat die Möglichkeit, die Auswertung durch einen Befehl zu starten. Die Ergebnisse werden in Textform für die erste P3TQL-Abfrage dargestellt. Der Nutzer hat die Möglichkeit, zwischen allen Abfragen hin- und herzuschalten.

3.2 Benutzeroberfläche

Basierend auf den funktionalen Anforderungen veranschaulicht Abbildung 3.1 die Benutzeroberfläche der Anwendung.

Die P3TML- und P3TQL-Daten werden in zwei separaten Ansichten, die nebeneinander angeordnet sind, präsentiert. Dies dient zur besseren Übersicht.

Der Befehl zur Auswertung befindet sich im Menü der Anwendung. Die Zeitergebnisse der Auswertung werden in einem neuen Fenster angezeigt. Die Abfragen werden in einer aufklappbaren Liste zur Verfügung gestellt. Wird eine Abfrage ausgewählt, werden die zugehörigen Ergebnisse angezeigt.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.1: Anforderungen an die Benutzeroberfläche

3.3 Nicht-funktionale Anforderungen

3.3.1 Systemanforderungen

Die Anwendung ist ab OS X 10.10 aufwärts lauffähig.

3.3.2 Fehlertoleranz

Die Anwendung kann mit fehlerhaften Dateien umgehen, d.h. sie kann fehlerhafte Da- teien öffnen, lesen und die Fehler lokalisieren, um dem Nutzer eine Hilfestellung zu geben.

3.3.3 Performance

Die Anwendung weist keine spürbaren Performancemängel auf und bleibt zu jedem Zeitpunkt ansprechbar. Zu den kritischen Stellen gehört die Reaktionszeit der Anwendung nach einem Editiervorgang im Text und die Wartezeit bei der Auswertung. Als Anforderungen werden folgende Richtwerte festgelegt:

- die Aktualisierung der Syntaxhervorhebung im sichtbaren Bereich dauert nicht länger als eine Sekunde nach Beenden des Editiervorganges.
- die Wartezeit auf die Ergebnisanzeige einer Abfrage bei einem Projekt mit 1000 Zeitelementen überschreitet die Zeit von 3 Sekunden nicht.

Damit ist der Funktionsumfang der Anwendung festgelegt. Die beschriebenen Anfor- derungen werden in Kapitel 6 zur Implementierung umgesetzt. Dafür werden zunächst theoretische Kenntnisse geschaffen. Dazu gehören Grundlagen zur lexikalischen und syntaktischen Analyse im folgenden Kapitel 4, auf deren Basis das Parsen von P3T erfolgt. Das Kapitel bildet die Voraussetzungen für die Erfüllung der Anforderungen zur Syntaxhervorhebung, Fehlerprüfung und Auswertung. Des Weiteren werden in Ka- pitel 5 vertiefende Kenntnisse zum Cocoa-Framework geschaffen, mit deren Hilfe die Anforderungen zu Dateioperationen und zur Benutzeroberfläche umgesetzt werden.

4 Theoretische Grundlagen zur Analyse formaler Sprachen

Um die Nutzereingaben in eine Programmstruktur zu überführen, die zur Weiterverarbeitung wie Fehlerprüfung, Syntaxhervorhebung oder Auswertung geeignet ist, ist eine Analyse der Eingaben notwendig. Die Analyse besteht dabei hauptsächlich aus zwei Schritten, der lexikalischen und der syntaktischen Analyse.

Für die lexikalische Analyse ist der sogenannte Lexer zuständig. Dieser zerlegt den Quelltext in eine Folge lexikalischer Einheiten. Die syntaktische Analyse wird durch einen Parser realisiert. Seine Aufgabe ist es, die syntaktische Struktur der Eingabe zu generieren.

[...]


1 vgl.[29].

2 siehe http://getklok.com

3 siehehttps://stuntsoftware.com/onthejob/

4 siehehttps://www.rescuetime.com/features

5 siehe http://markdown.de

6 vgl.[15] Mac App Programming Guide.

7 vgl.[6] Xcode Overview.

8 vgl. [13] The Swift Programming Language.

1 vgl. [27].

2 vgl. [24].

Details

Seiten
82
Jahr
2016
ISBN (eBook)
9783668158603
ISBN (Buch)
9783668158610
Dateigröße
890 KB
Sprache
Deutsch
Katalognummer
v316094
Institution / Hochschule
Hochschule für Technik, Wirtschaft und Kultur Leipzig – HTWK Leipzig
Note
1.0
Schlagworte
Swift OS X

Autor

Zurück

Titel: Implementierung einer OS X-Anwendung zur Verarbeitung und Auswertung von P3T-Dateien