You are here: Wiki>SE Web>ThesesHome>ThesisDiktierApp (07 Dec 2012, tbartsch)Edit

Diplomarbeit "Entwicklung einer Diktier-App für Mobiltelefone"

Problemstellung

Seit wenigen Jahren haben sich Smartphones so weiterentwickelt, dass diese grundsätzlich auch zur Aufnahme von Diktaten verwendet werden können. Vorteil der Nutzung von Smartphones als Diktiergerät ist, dass die Diktate auch von unterwegs – i.d.R. per E-Mail – verschickt werden können und ein Anschluss an den PC nicht mehr erforderlich ist. Zudem müssen nicht mehrere Geräte "mitgeschleppt" werden. Dagegen ist eine eventuell standardmäßig enthaltene Aufnahmefunktion i.d.R. jedoch sehr rudimentär und für den professionellen Diktierer, der bisher mit einem herkömmlichen Diktiergerät „blind“ gearbeitet hat, nicht ausreichend.

Ziel

Um auch dem professionellen Diktierer, der eine ganz bestimmte Bedienung eines Diktiergeräts gewohnt ist, ein Diktieren auf dem Smartphone zu ermöglichen, soll eine professionelle Diktier-App entwickelt werden. Ziel ist es, verschiedene Smartphone-Plattformen wie Android, iPhone und Windows Phone zu unterstützen. Ein besonderer Schwerpunkt liegt daher auf der Entwicklung eines plattformunabhängigen Systementwurfs. Der Anteil an individuell für eine Plattform zu schreibenden Code soll dabei möglichst gering gehalten werden.

Eine Schwierigkeit ist, dass es für die unterschiedlichen Betriebssysteme unterschiedliche Entwicklungsumgebungen gibt, es aber dennoch ein hohes Maß an Wiederverwendung geben soll. Die Arbeit soll dazu Konzepte erarbeiten und einen Weg vorgeben.

Vorgehen

Als ersten Schritt hin zu einer Plattformunabhängigkeit soll nach zu erbringender Anforderungsanalyse ein plattformunabhängiges Modell der Diktier-App entwickelt werden, d.h. eine modellgetriebene Architektur (Model Driven Architekture – MDA) zum Einsatz kommen. Dadurch ist eine klare Trennung von Funktionalität und Technik gewährleistet.

Daraus kann sich der Entwurf einer domänenspezifischen Sprache (DSL) ergeben. Eventuell steht damit sogar der Weg zu einer teilweisen automatischen Codegenerierung mit Hilfe verfügbarer Generatoren offen. Die Beschreibung des Modells erfolgt mittels einer DSL – textuell oder grafisch durch UML. Als Ergebnis der Arbeit soll die Diktier-App mindestens als Prototyp für mindestens eine Plattform, besser zwei, entwickelt werden. Sie soll darüber hinaus einheitlich vorgeben, wie weitere Plattformen einzubinden sind.

Kurzbeschreibung bisheriger Aktivitäten

10.05. – 09.08.2012

- Recherche nach geeigneten UML-Tools, Entscheidung für Altova UModel Enterprise aufgrund guter Übersichtlichkeit, Bedienbarkeit und gutem Preis-/Leistungsverhältnisses

- Recherche zu Tools für plattformunabhängige Entwicklung, z.B. PhoneGap, Mono, Rhodes (Ruby), Appcelerator Titanium Mobile, jQuery

- 25.-26.05. Besuch der „MMT 30“ in Köln, Kongress für die Entwicklung von Apps für Smartphones und Tablet-PCs mit Themen wie iOS, Android, Windows Phone 8, HTML5, Crossplattform-Tool PhoneGap, native Entwicklung, Web-Technologien, Hybrid-App…

- Anwendung von Altova UModel: Erstellung des Anwendungsfalldiagramms, Entwurf eines plattformunabhängigen Modells (PIM) mit Klassendiagramm, dann zusätzlich mit Aktivitätsdiagramm, Sequenzdiagramm angefangen, dieses aber später zugunsten des meiner Meinung nach hier mächtigeren UML-Zustandsdiagramms aufgegeben.

- 28.06. Besuch der BlackBerry 10 Jam World Tour, bei welcher das neue BlackBerry 10 Smartphone und das BlackBerry OS 10 und die verschiedenen Möglichkeiten für App-Entwicklungen vorgestellt worden sind.

- Versuch der Transformation des PIM in ein plattformspezifisches Modell (PSM) für C# und Java. Dabei leider auf Bugs in der Altova-Software gestoßen. Daher Entscheidung, anstelle des PIM direkt mit einem PSM als Erstes für C# weiterzumachen. Dieses Modell lässt sich später transformieren und kann daher immer noch als PIM betrachtet werden.

- Erfolgreiche Versuche mit automatischer Codegenerierung aus dem Modell, zunächst nur für die Klassenrümpfe.

- Entwurf eines Zustandsautomaten für die Klasse „Diktat“ und daraus Generierung von Quellcode in C#

- Verfeinerung des Klassendiagramms und Zustandsautomaten, Ergänzung von Funktionen, die nicht automatisch als Quellcode generiert werden konnten, Weiterentwicklung am C# Quellcode und Reverse Engineering, so dass Modell und Code ab jetzt immer synchron sind.

- Erstellung eines Prototyps zum Testen des Zustandsautomaten als Windows-Anwendung.

10.08.2012 Besprechung mit Prof. Prechelt:

- Vorstellung bisheriger Ergebnisse

- Festlegen der Priorität auf Erstellung eines Konzepts zur Realisierung der Diktier-App für verschiedene Plattformen, so dass manuell für einzelne Plattformen zu schreibender Code klein gehalten wird.

- Durch mich zu klärende Fragen: Wie sieht z.B. die Lösung für iOS aus? Altova kann nicht direkt Objectice C-Code erzeugen. Wie werden Schwierigkeiten gelöst?

- Hinweis von Prof. Prechelt, dass konzeptionell heikle Sachen bearbeitet werden müssen, dafür andererseits die Diktier-App bei Abgabe der Diplomarbeit nicht komplett fertig sein muss. „Proof of concept“ sei wichtig.

* NEU *

11.08.2012 bis 26.09.2012:

- Entscheidung zur Nutzung von Xamarin Mono für Android, Xamarin MonoTouch für IPhone und Microsoft Visual Studio für Windows Phone. Beschaffung der erforderlichen Lizenzen und des Mac-Rechners. Registrierung als Entwickler bei Apple und Microsoft.

- Schaffung einer Ordnerstruktur, die die gemeinsame Verwendung der für alle drei Plattformen genutzten Quelldateien erlaubt.

- Anlage von Projekten in allen drei Entwicklungsumgebungen. Die gemeinsam genutzten Quelldateien werden dabei nur als Referenzen hinzugefügt. So können Änderungen vorgenommen werden, die dann automatisch in den Projekten der anderen Plattformen zur Verfügung stehen, ohne dass kopiert werden müsste.

- Programmierung der für alle drei Plattformen jeweils individuellen Anteile. Dazu zählen die Benutzeroberfläche, die Aufnahme- und Wiedergabefunktionalitäten und Dateizugriffe.

- Erstellung funktionsfähiger Prototypen für Android, iPhone ind Windows Phone 7. Auf allen drei Smartphones Samsung Galaxy, iPhone 4 und DELL Windows Phone funktioniert Folgendes: Aufnahme (Hinzufügen), Überschreiben, Einfügen, Vor- und Zurückspulen, Wiedergabe, Abspeichern und neues Laden des Diktats (momentan noch keine Dateiauswahl, sondern eine Datei zum Testen festgelegt). Die Bedienung erfolgt z.Z. noch über einfache Buttons. Unter Android funktioniert sogar schon die Bedienung mit den Seitentasten (Lautstärketasten).

27.09.2012 Besprechung mit Prof. Prechelt:

- Vorstellung der Prototypen für Android, iOS und Windows Phone 7

- Ich bin mit Herrn Prof. Prechelt übereingekommen, dass der praktische Teil der Arbeit damit erledigt ist. Laut Prof. Prechelt sei es üblich, dass aus einer Diplomarbeit keine vollständig fertige Anwendung hervorgeht. Den letzten Monat werde ich jetzt auf den theoretischen/schriftlichen Teil verwenden. Dabei sind insbesondere folgende Punkte zu erörtern:

- In welchen Bereichen erwartet man Änderungen und wie ist dabei das Vorgehen, so dass man weiterhin die Gemeinsamkeiten maximiert, also nicht für die verschiedenen Plattformen individuell programmiert.

- Es muss sehr gut erklärt werden, wo Probleme entstanden sind und wie sie gelöst worden sind. Analyse ist wichtig.

- Wo kann man und wo kann man nicht gemeinsamen Code verwenden? Warum ist nicht zu erwarten, dass es an solchen Stellen eine gemeinsame Lösung gibt?

- Entwurfsprozess beschreiben, also auch die Sackgassen.

- Wie und warum man welche Werkzeuge gewählt hat.

- Es soll ein sinnvolles Maximum an gemeinsamen Code erreicht werden.

- Aufzeigen, was nicht ging.

Seitdem:

- Verfassung der Ausarbeitung

02.11.2012 Zusage für Zweitgutachten von Herrn Prof. Jochen Schiller erhalten.

12.11.2012 Abgabe der Arbeit

13.12.2012 Abschlusspräsentation im Rahmen des Seminars "Beiträge zum Software Engineering" von 16:15 bis 17:45 Uhr im Raum 005 in der Takustraße 9

Comments

 
Topic revision: r7 - 07 Dec 2012, tbartsch
 
  • Printable version of this topic (p) Printable version of this topic (p)