07.12.2012 Aufrufe

Anhang - Thomas Büsser

Anhang - Thomas Büsser

Anhang - Thomas Büsser

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Mobile Anwendung zur<br />

Kommunikation von<br />

schulrelevanten Informationen<br />

Abschlussarbeit Gymnasium 2012<br />

Verfasser:<br />

Kevin Stierli, P13<br />

Raphael Haslebacher, NP12<br />

Schwerpunktfach:<br />

Physik und Anwendungen<br />

der Mathematik<br />

Betreuende Lehrperson:<br />

<strong>Thomas</strong> <strong>Büsser</strong><br />

Lehrer für Informatik<br />

Schulische Institution:<br />

Kantonsschule Sargans<br />

Datum:<br />

3. Februar 2012


Inhaltsverzeichnis II<br />

Inhaltsverzeichnis<br />

Inhaltsverzeichnis ................................................................................................................ II<br />

1 Einleitung ...................................................................................................................... 1<br />

1.1 Ziele der Arbeit ...................................................................................................... 1<br />

1.2 Motivation .............................................................................................................. 1<br />

1.3 Methodik ................................................................................................................ 1<br />

2 Einführung ..................................................................................................................... 3<br />

2.1 Begriffserklärung .................................................................................................... 3<br />

2.1.1 Kommunikation ....................................................................................................3<br />

2.1.1.1 Allgemeines ..........................................................................................................3<br />

2.1.1.2 Computervermittelte Kommunikation .................................................................3<br />

2.1.2 Android ................................................................................................................3<br />

2.1.3 Programmiersprachen ...........................................................................................4<br />

2.1.3.1 Java .......................................................................................................................4<br />

2.1.3.2 C ...........................................................................................................................4<br />

2.1.3.3 C# .........................................................................................................................5<br />

2.1.4 Client-Server-Modell ...........................................................................................5<br />

3 Umfrage und deren Resultate ...................................................................................... 6<br />

3.1 Ziel und Methodik der Umfrage .............................................................................. 6<br />

3.2 Auswertung der Umfrage ....................................................................................... 6<br />

3.2.1 Bedürfnisabklärung ..............................................................................................6<br />

3.2.2 Mobile Betriebssysteme .......................................................................................7<br />

3.2.2.1 Unsere Wahl: Android .........................................................................................8<br />

3.3 Fazit ....................................................................................................................... 9<br />

4 Arbeiten des praktischen Teils .................................................................................. 10<br />

4.1 Vorgehensmodelle zum Softwareentwicklungsprozess ........................................ 10<br />

4.1.1 Analyse und Vergleich verschiedener Modelle ..................................................10<br />

4.1.1.1 Wasserfallmodell ................................................................................................10<br />

4.1.1.2 Spiralmodell .......................................................................................................11<br />

4.1.1.3 V-Modell ............................................................................................................12<br />

4.1.1.4 Extreme Programming (XP) ...............................................................................12<br />

4.1.1.5 Scrum .................................................................................................................13<br />

4.1.2 Unsere Wahl: Scrum ..........................................................................................14<br />

4.1.3 Bearbeitungsablauf .............................................................................................15<br />

4.2 Produktanforderungen und Tests ......................................................................... 15<br />

4.2.1 Produktanforderungen ........................................................................................15<br />

4.2.2 Use-Cases ...........................................................................................................15<br />

4.2.3 Test-Cases ..........................................................................................................16<br />

4.3 Probleme, und wie sie gelöst wurden ................................................................... 17<br />

5 Architektur und Prozessschema des Gesamtsystems ............................................ 18<br />

5.1 Funktionsweise des Systems ............................................................................... 18<br />

5.1.1 Infrastruktureinheiten .........................................................................................18<br />

5.1.1.1 Sekretariats-Computer ........................................................................................18


Inhaltsverzeichnis III<br />

5.1.1.2 Server .................................................................................................................18<br />

5.1.1.3 Mobiles Endgerät ...............................................................................................19<br />

5.1.1.3.1 Android System Design .....................................................................................19<br />

5.1.2 Softwareanforderungen ......................................................................................20<br />

5.1.3 Datenübertragung ...............................................................................................21<br />

5.1.3.1 Verbindungsauf- und -abbau ..............................................................................21<br />

5.1.4 Sicherheit ............................................................................................................22<br />

5.1.4.1 Risikoanalyse .....................................................................................................22<br />

5.1.4.2 Angemessenes Sicherheitsniveau .......................................................................22<br />

5.1.4.3 Funktionsweise ...................................................................................................23<br />

5.2 Benutzeroberfläche .............................................................................................. 23<br />

5.2.1 Sekretariatsanwendung .......................................................................................24<br />

5.2.1.1 Bedienung der Anwendung ................................................................................24<br />

5.2.1.2 Aufgaben der Sekretärin .....................................................................................26<br />

5.2.2 Mobile Anwendung ............................................................................................26<br />

5.2.2.1 Bedienung der Anwendung ................................................................................27<br />

5.2.2.2 Funktionen der Anwendung ...............................................................................27<br />

6 Zusammenfassung ..................................................................................................... 28<br />

7 Literatur-/Quellenverzeichnis ....................................................................................... V<br />

8 Abbildungsverzeichnis ................................................................................................ IX<br />

<strong>Anhang</strong> ...............................................................................................................................A1<br />

1 Umfrage-Formular .......................................................................................................A1<br />

2 Rohdaten der Umfrage ...............................................................................................A2<br />

2.1 Bedürfnisabklärung .............................................................................................. A2<br />

2.2 Mobile Betriebssysteme ....................................................................................... A3<br />

3 Codebeispiele .............................................................................................................A4<br />

3.1 C# ........................................................................................................................ A4<br />

3.2 Java ..................................................................................................................... A5<br />

3.3 C .......................................................................................................................... A6


Einleitung 1<br />

1 Einleitung<br />

1.1 Ziele der Arbeit<br />

Die Arbeit soll am Schluss als Produkt eine IT-Infrastruktur (bestehend aus einer mobilen Applikation,<br />

Anwendung für das Sekretariat und Server) bereitstellen, mit der die Schüler der Kantonsschule<br />

Sargans (KSS) schulrelevante Informationen bequem auf ihrem mobilen Endgerät abrufen können. So<br />

soll der Schüler beispielsweise am Morgen vor der Schule eine Meldung bekommen, falls eine Stunde<br />

im Verlaufe des Tages ausfallen wird. Es ist natürlich wünschenswert, dass dieses Projekt schlussend-<br />

lich auch wirklich eingesetzt wird.<br />

Zuerst wollten wir aufgrund einer Umfrage abklären, welche mobilen Betriebssysteme bei den Schü-<br />

lern der KSS im Einsatz sind und ob unsere geplante mobile Anwendung auch Verwendung finden<br />

würde.<br />

Nicht zuletzt würden wir uns freuen, wenn dieses Projekt auch ein paar andere Schüler der KSS für die<br />

Informatik begeistern würde, denn Nachwuchs in dieser Branche ist Mangelware und wird in naher<br />

Zukunft bzw. schon heute stark gefragt sein.<br />

1.2 Motivation<br />

Den Grundstein dieses Projekts bildet das beiderseitige Bedürfnis zweier Schulkollegen, gemeinsam<br />

eine Anwendung schreiben zu wollen, die nützlich ist für den Alltag. Wir haben generell ein sehr gros-<br />

ses Interesse an Informatik, zudem stören wir uns zunehmend an der analogen Kommunikation an der<br />

Schule. Des Weiteren haben wir sehr viele sich ergänzende Interessen, einerseits besteht ein grosses<br />

Interesse an Smartphones allgemein, Google-Produkten wie z. B. Android, Dokumentengestaltung und<br />

grundsätzlich allen neuen IT-Produkten, auf der anderen Seite am Programmieren, Internetkommuni-<br />

kation, Verschlüsselungstechnik und Betriebssystemfunktionsweise. Zudem ist es für uns sehr profita-<br />

bel, da wir durch dieses Projekt viel Neues lernen, was sich später in einem angestrebten Informatik-<br />

Studium sicher als nützlich erweisen wird.<br />

1.3 Methodik<br />

Nach einer generellen Einleitung werden einige wichtige Begriffe erklärt, die durch die ganze Arbeit<br />

begleiten. Anschliessend wird kurz auf einige Programmiersprachen eingegangen, mit denen wir den<br />

grössten Teil unserer Anwendungssoftware programmiert haben. Diese mussten wir zum Teil zuerst<br />

noch mithilfe von Büchern erlernen.<br />

Im wissenschaftlichen Teil der Maturaarbeit wurde aufgrund einer Umfrage eine Bedürfnisabklärung<br />

für den Kommunikationsdienst sowie eine Bestandsaufnahme der genutzten mobilen Plattformen er-<br />

stellt. In diesem Teil wird auch noch genauer auf unsere Wahl von Android als mobiles Betriebssys-<br />

tem eingegangen.


Einleitung 2<br />

Bei der Softwareentwicklung wollten wir uns auf eines der zahlreichen vorhandenen Modelle zum<br />

Softwareentwicklungsprozess stützen; dieses musste allerdings zuerst noch durch einen aufwendigen<br />

Vergleich mehrerer Modelle ausgewählt werden.<br />

Danach folgt ein umfangreicher Teil über die ganze Infrastruktur. Im ersten Teil davon geht es um die<br />

Funktionsweise im Hintergrund der Anwendungen, im zweiten um die Funktionsweise auf der Ober-<br />

fläche. Im erstgenannten Teil soll u. a. auch erklärt werden, wie das Betriebssystem Android funktio-<br />

niert.<br />

Abgeschlossen wird die Arbeit mit einer kurzen Zusammenfassung über das gesamte Projekt.


Einführung 3<br />

2 Einführung<br />

Durch eine Begriffserklärung am Anfang soll der Einstieg in das Thema erleichtert werden.<br />

2.1 Begriffserklärung<br />

Mehrere Begriffe sind in der ganzen Maturaarbeit von grosser Bedeutung, einige davon werden an<br />

dieser Stelle erklärt.<br />

2.1.1 Kommunikation<br />

2.1.1.1 Allgemeines<br />

Unter Kommunikation versteht man die Verständigung untereinander, bzw. der zwischenmenschliche<br />

Verkehr besonders mithilfe von Sprache und Zeichen (Bibliographisches Institut GmbH, 2011). Bei<br />

diesem Informationsaustausch braucht es immer einen Sender und einen Empfänger, das ist auch bei<br />

unserer praktischen Arbeit nicht anders (vgl. 2.1.4). Der Begriff stammt ursprünglich vom lateinischen<br />

Wort „communicatio“ für „Mitteilung“ (Bibliographisches Institut GmbH, 2011). Infolge der neuen<br />

Medien gewinnt er zunehmend an Bedeutung. In dieser Arbeit ist v. a. die computervermittelte Kom-<br />

munikation relevant.<br />

2.1.1.2 Computervermittelte Kommunikation<br />

Mit „Computervermittelte Kommunikation“ (cvK) ist die Kommunikation über das Internet (oder<br />

Intranet 1 ) gemeint, also die Kommunikation mithilfe von digitalen Medien 2 . Einige ältere Formen der<br />

cvK sind E-Mail-Nachrichten, Blogs und Foren, neuerdings setzen sich aber Chats, Internettelefonie<br />

(VoIP 3 ) und Videokonferenzen 4 immer mehr durch. Der Grösste Vorteil der cvK ist mit Sicherheit die<br />

Unabhängigkeit von Raum und Zeit.<br />

2.1.2 Android<br />

Android ist in erster Linie ein Betriebssystem, vor allem für Smartphones und Tablets 5 . Es wird von<br />

der Open Handset Alliance 6 unter der Leitung von Google entwickelt (Google Inc., 2011) und baut auf<br />

einem Linux-Kernel auf. 7 Das erste Smartphone mit Android als Betriebssystem wurde im Oktober<br />

2008 veröffentlicht. Seit da an erlangte Android eine immer grösser werdende Beliebtheit, so ist And-<br />

roid unter den mobilen Betriebssystemen in den USA mit 53 % Marktanteil die Nummer eins, gefolgt<br />

von Apples iOS mit 29 % und RIMs Blackberrys mit 10 % (AOL Inc., 2011).<br />

1<br />

Internes Netzwerk von Unternehmen und Organisationen (siemax CMS Webdesign & Internetservice<br />

Feldkirchen, 2011)<br />

2<br />

Z. B. Mobiltelefonen<br />

3<br />

Voice over IP, IP = Internet Protocol<br />

4<br />

Z. B. über Skype<br />

5<br />

Tragbarer flacher Computer mit grossem Touchscreen<br />

6<br />

Konsortium von 80 Firmen (Stand: 1. Januar 2012)<br />

7<br />

Mehr zum Android System Design auf S. 14


Einführung 4<br />

2.1.3 Programmiersprachen<br />

Um sich in fremden Ländern zu verständigen, muss man die jeweilige örtlich gesprochene Sprache<br />

beherrschen. Beim Programmieren ist das nicht anders, und da sich unser Projekt in verschiedene Ge-<br />

biete hinein erstreckt, brauchen wir auch mehr als nur eine Sprache; jede davon hat ihre eigenen Stär-<br />

ken.<br />

2.1.3.1 Java<br />

Wenn es um plattformunabhängige Programmiersprachen geht, ist<br />

Java das Mass der Dinge. Mehr als 4.5 Milliarden Geräte werden un-<br />

terstützt (Oracle, 2011), alle Geräte, für welche eine sogenannte Java<br />

Virtual Machine (JVM) existiert, die dann wiederum das in Java ge-<br />

schriebene Programm ausführt. Neben der Hardwareunabhängigkeit ist<br />

die hohe Sicherheit ein weiterer wichtiger Vorteil von der Ausführung<br />

des Codes in einer JVM.<br />

Im Auftrag der Firma Sun Microsystems 8 wurde Oak 9 von James Gos-<br />

ling und seinem Team 1991 und 1992 ursprünglich zur Steuerung von<br />

Haushaltsgeräten entwickelt (Kersken-Canbaz, 2008). 1995 wurde<br />

Oak beerdigt, Teile davon aber unter dem heutigen Namen Java wei-<br />

tergeführt. Den Namen und das Logo erhielt Java aufgrund der Lieb-<br />

lings-Kaffeesorte seiner Entwickler (Infoworld, 2011). Bis heute wur-<br />

de die objektorientierte 10 , an C/C++ angelehnte Sprache Java<br />

(Kersken-Canbaz, 2008) ständig weiterentwickelt und ist derzeit mit<br />

fast 18 % Marktanteilen die beliebteste Programmiersprache bei den<br />

Programmierern (IDG Communications, 2011).<br />

Da für Android in Java programmiert wird, findet Java in unserem Projekt bei der Android-<br />

Applikation Verwendung (vgl. 5.2.2). Zur Veranschaulichung von Java-Code vgl. <strong>Anhang</strong> 3.2.<br />

2.1.3.2 C<br />

Abbildung 1: Die Kaffeetasse als<br />

Java-Logo (Wikipedia, 2006)<br />

C ist die zweitbeliebteste Programmiersprache hinter Java (IDG Communications, 2011). Im Gegen-<br />

satz zu Java ist C keine objektorientierte Programmiersprache, sondern eine imperative 11 , prozedurale.<br />

C findet vor allem Verwendung wenn es um hardwarenahe Programmierung und hohe Ausführungs-<br />

geschwindigkeit geht (Sommergut, 1997). Nur in Assembler geschriebene Programme werden schnel-<br />

ler ausgeführt, diese sind allerdings prozessorabhängig, somit also nicht portabel. Die Grammatik und<br />

Semantik von Assembler ist auch um einiges komplizierter als jene von C und somit noch fehleranfäl-<br />

8 Wurde Ende Januar 2010 von Oracle aufgekauft<br />

9 Object Application Kernel, engl. für „Eiche“ (in Anlehnung an die Eiche, die vor Goslings Fenster stand)<br />

10 auf der Idee, Verwendung von Objekten beruhend (Bibliographisches Institut GmbH, 2011)<br />

11 befehlend, zwingend, bindend (Bibliographisches Institut GmbH, 2011)


Einführung 5<br />

liger. Aus diesen Gründen werden Betriebssysteme, Compiler und auch Gerätetreiber meist in C pro-<br />

grammiert, so z. B. Linux oder auch Windows, grösstenteils.<br />

Erfunden wurde die im Jahre 1972 veröffentlichte Sprache C von Dennis Ritchie und Brian Kernig-<br />

han, sie ist eine Weiterentwicklung von BCPL und B. C wurde für die Entwicklung des Betriebssys-<br />

tems UNIX verwendet (Sommergut, 1997), dessen Erfolg wiederum C zum Durchbruch verhalf.<br />

In unserem Fall findet C aufgrund seiner Geschwindigkeit Einsatz beim Server (vgl. 5.1.1.2). Ge-<br />

schriebener Code dieser Programmiersprache befindet sich in <strong>Anhang</strong> 3.3.<br />

2.1.3.3 C#<br />

C# (see sharp) wurde von Microsoft entwickelt und im Jahre 2001 veröffentlicht. Es wird standard-<br />

mässig mit Microsofts Visual Studio 12 ausgeliefert. In Kombination mit dem .NET Framework 13 wer-<br />

den mit C# vor allem Windows-Anwendungen, Webdienste und z. B. Steuerelemente erstellt<br />

(Microsoft, 2011).<br />

C# ist eigentlich eine Weiterentwicklung von C++, so kam es auch zu seinem Namen 14 . Durch die<br />

Erhöhung um eine Stufe (++ in Programmiersprachen) von C++ entsteht ein vierfaches Plus, das als<br />

Doppelkreuz dargestellt wurde. C# weist enorme Ähnlichkeiten mit Java auf, so besitzt C# als Pendant<br />

zur JVM eine .NET Framework Common Language Runtime (Hinzberg).<br />

Zur Anwendung kommt bei uns C# beim Windows-Programm für das Sekretariat (vgl. 5.2.1). In An-<br />

hang 3.1 ist C#-Code zu sehen.<br />

2.1.4 Client-Server-Modell<br />

Ein Client-Server-System 15 besteht dem Namen entsprechend aus Server und Clienten, die durch ein<br />

Netzwerk verbunden sind. Der Server, der Dienste für die Clienten bereitstellt, wartet passiv auf eine<br />

Anforderung von einem Clienten. Kommuniziert wird dabei zwischen dem Client-Programm und dem<br />

Server-Programm. Das Client-Programm sendet dem Server-Programm Befehle, die vom Server-<br />

Programm ausgeführt werden, wodurch danach dem Client-Programm die angeforderten Daten über-<br />

mittelt werden (Dehmer, 2003).<br />

Im Gegensatz zum Peer-to-Peer-Modell 16 werden beim Client-Server-Modell die Ressourcen zentral<br />

auf dem Server gespeichert. Die Verwaltung der Ressourcen findet somit auf Ebene des Servers statt<br />

und gestaltet sich dadurch relativ einfach, die Clienten müssen dabei also nicht speziell beachtet wer-<br />

den (Kioskea, 2009).<br />

12 Vgl. http://www.microsoft.com/germany/express/<br />

13 eine Klassenbibliothek für Microsoft Windows<br />

14 Ausführliche Geschichte vgl. http://www.cul.de/data/csharppr2.pdf<br />

15 Auf Deutsch: Kunden-Diener-System<br />

16 Netzwerk ohne zentralen Server, alle Systeme sind Server und Client zugleich


Umfrage und deren Resultate 6<br />

3 Umfrage und deren Resultate<br />

3.1 Ziel und Methodik der Umfrage<br />

Mithilfe einer schulinternen Umfrage (siehe <strong>Anhang</strong> 1) an der Kantonsschule Sargans wollten wir<br />

einerseits herausfinden, wie gross die Nachfrage für eine App ist, die z. B. über Stundenausfälle in-<br />

formiert, und andererseits wollten wir in Erfahrung bringen, wie es mit den Marktanteilen der mobilen<br />

Betriebssysteme bei uns an der Schule steht.<br />

Die Umfrage wurde persönlich an die Klassenchefin/den Klassenchef geschrieben, die/der dann die<br />

Umfrage für die ganze Klasse ausfüllen sollte, nach Rücksprache mit den einzelnen Schülern. Wir<br />

erhofften uns dadurch eine grössere Teilnehmeranzahl. Die Gefahr, dass das Umfrageblatt umgehend<br />

ohne Beachtung entsorgt wird ist unserer Ansicht nach kleiner, wenn eine Person die Verantwortung<br />

für die ganze Klasse trägt, als wenn jede Schülerin/jeder Schüler selbst ein Blatt bekommt. Ferner<br />

konnten wir dank dieser Taktik zudem eine sinnlose Papierverschwendung vermeiden. Damit wir auch<br />

für den zweiten Teil der Umfrage mit einer hohen Teilnehmeranzahl rechnen konnten, baten wir die<br />

Klassenchefin/den Klassenchef, diesen Teil von einer Person der Klasse ausfüllen zu lassen, die sich<br />

besonders gut mit Handys auskennt.<br />

3.2 Auswertung der Umfrage<br />

3.2.1 Bedürfnisabklärung<br />

Bei der Bedürfnisabklärung handelte es sich - wie schon gesagt - um die Frage, ob die befragten Per-<br />

sonen eine App, wie sie von uns geplant war, herunterladen und installieren würden, falls sie für ihr<br />

jeweiliges Handy verfügbar wäre. Als Antwort standen „Ja“, „Nein“, „Vielleicht“ oder „kein Handy“<br />

zur Auswahl.<br />

Von den ca. 710 Schüler/innen der Kantonsschule (Kantonsschule Sargans, 2011), die maximal an der<br />

Umfrage hätten teilnehmen können, wirkten ansehnliche 490 mit, was einer Beteiligung von knapp<br />

mehr als zwei Dritteln (69 %) entspricht. 12 Personen gaben an, kein Handy zu besitzen. Dieser Anteil<br />

von gut 2 % stimmt erfreulich exakt mit dem Ergebnis der sogenannten JAMES 17 -Studie überein, bei<br />

der 2010 über 1000 Jugendliche von der ZHAW 18 befragt wurden (Willemse Isabel, 2010).<br />

„Vielleicht“ haben 11 % der Befragten als Antwort angegeben, „Nein“ 8 % und erstaunliche 78 %<br />

gaben an, die App herunterladen und installieren zu wollen. Ob sie das auch wirklich tun würden ist<br />

wiederum eine andere Frage. Aber grundsätzlich kann man sicherlich sagen, dass ein grosses Interesse<br />

vorhanden ist.<br />

17 Jugend, Aktivitäten, Medien – Erhebung Schweiz<br />

18 Zürcher Hochschule für Angewandte Wissenschaften


Umfrage und deren Resultate 7<br />

Kein Handy<br />

Vielleicht<br />

Abbildung 2: Diagramm zum Marktpotenzial einer Kommunikations-App an der KSS<br />

3.2.2 Mobile Betriebssysteme<br />

Beim zweiten Teil der Umfrage wollten wir vor allem herausfinden, wie gross der Marktanteil von<br />

Android bei uns an der Schule ist, denn eine App für ein Betriebssystem, das niemand nutzt, wäre<br />

nicht sinnvoll. Aus diesem Grund mussten die befragten Personen angeben, welches Betriebssystem<br />

auf ihrem Handy installiert ist. Zur Auswahl gaben wir „Android“ von Google, „iOS“ von Apple,<br />

„Windows Phone 7“ von Microsoft, „Symbian“ von Nokia und „Sonstiges“ vor, zu dem wir alle ande-<br />

ren mobilen Betriebssystem und sämtliche individuellen Eigenproduktionen von den Handyherstellern<br />

zählen.<br />

Nein<br />

Ja<br />

0% 10% 20% 30% 40% 50% 60% 70% 80% 90%<br />

Logischerweise konnten alle Schüler, die nicht im Besitze eines Handys sind, sich bei diesem Teil<br />

nicht beteiligen. Somit ergab sich eine Teilnehmeranzahl von 478 Personen. Der grösste Anteil geht an<br />

die Kategorie „Sonstiges“. Dies ist nicht weiter erstaunlich, da zu dieser Kategorie beispielsweise alle<br />

alten, beliebten Handys von Sony Ericsson und alle Blackberrys dazugezählt werden. Des Weiteren<br />

haben wir zu dieser Kategorie auch alle Antwortenden dazugerechnet, die nicht wussten, welches Be-<br />

triebssystem auf ihrem Handy installiert ist. Diese Kategorie ist allerdings auch nicht von allzu grosser<br />

Bedeutung, da sich für diese Handys keine App mit solchen Funktionen, wie wir sie verwenden woll-<br />

ten, programmieren lässt. Symbian, das vor ein paar Jahren bei den Smartphones noch dominierend<br />

war, kommt noch auf einen bescheidenen Anteil von knapp 7 %. Noch weniger Marktanteile verbuch-<br />

te Windows Phone 7, immerhin steht es im Gegensatz zu Symbian nicht auf dem absteigenden Ast.<br />

Mit gut 1 % Anteil konnte sich Microsofts neues mobiles Betriebssystem allerdings auch bei uns in<br />

der Schule noch überhaupt nicht behaupten.<br />

Marktpotenzial<br />

142 Teilnehmer nutzt iOS, dies entspricht einem beträchtlichen Anteil von 30%, es besitzt also fast<br />

jeder dritte Schüler ein iPhone! Mit bemerkenswerten 26% (126 Geräte) liegt Android erstaunlich


Umfrage und deren Resultate 8<br />

knapp hinter iOS. Dieses Resultat ist für uns doch ziemlich erstaunlich, da Android noch ein relativ<br />

junges Betriebssystem ist und wir iOS dominierender erwartet hätten. Zudem ist das iPhone in der<br />

Schweiz traditionell sehr beliebt. So lief im Jahre 2010 in der Schweiz auf jedem zweiten Smartphone<br />

(52%) iOS, mit knapp 23% lag Android deutlich auf dem zweiten Rang (20 Minuten AG, 2012).<br />

Windows Phone 7<br />

Marktverteilung der mobilen Betriebssysteme<br />

Sonstiges<br />

Symbian<br />

iOS<br />

Android<br />

Abbildung 3: Diagramm zur Marktverteilung der mobilen Betriebssysteme an der KSS<br />

3.2.2.1 Unsere Wahl: Android<br />

Wenn man für iOS entwickeln will stösst man als Windows-, bzw. Linux-User, wie wir es sind,<br />

schnell auf die erste Hürde. Man benötigt dazu einen Mac mit Intel-Prozessor, auf dem OS X Snow<br />

Leopard oder neuer läuft (Apple Inc., 2011). Zusätzlich fallen noch Kosten von 99$/Jahr an (Apple<br />

Inc., 2011), damit man Member beim iOS Developer Program ist. Ohne diese Mitgliedschaft kann<br />

man keine Apps im App-Store veröffentlichen. Auch um für Android zu entwickeln kommt man nicht<br />

kostenlos davon, allerdings gibt es hier nur eine einmalige Registrierungsgebühr in Höhe von 25$<br />

(Google, 2011). Apple überprüft im Gegensatz zu Google alle eingereichten Apps, bevor sie im App-<br />

Store veröffentlicht werden. Das ist natürlich mit einer gewissen Wartezeit verbunden und somit für<br />

uns auch nicht optimal.<br />

Der für uns entscheidende Grund ist die Tatsache, dass wir beide weder ein iPhone noch ein iPad be-<br />

sitzen, sondern beide ein Android-Smartphone. Theoretisch wäre es schon möglich eine App für ein<br />

iPhone zu entwickeln, ohne eines zu besitzen, aber es ist nicht gerade empfehlenswert. Für uns wäre es<br />

also eine kostspielige Angelegenheit geworden, für iOS zu entwickeln. Abgesehen davon liegt uns die<br />

Philosophie von Google besser als jene von Apple. Android ist ein offenes Betriebssystem, kommt auf<br />

einer Vielfalt von Geräten mehrerer Hersteller zum Einsatz, und man ist nicht wie bei iOS von iTunes,<br />

iPhone etc. abhängig.<br />

0% 5% 10% 15% 20% 25% 30% 35% 40%


Umfrage und deren Resultate 9<br />

Der wichtigste Punkt, den es bei unserer Entscheidung zu beachten gab, sprach allerdings gegen And-<br />

roid: die Anzahl der Benutzer. Es muss ja ein Ziel sein, dass unser Endprodukt von möglichst vielen<br />

Schülern verwendet werden kann. Es wäre also aufgrund der Umfrage naheliegender, eine App für<br />

iOS zu schreiben. Aber nicht zuletzt deswegen sind wir hocherfreut über das Resultat der Umfrage,<br />

die zeigt, dass Android nur knapp dahinter am Zweitmeisten angewendet wird. Unsere Angst, eine<br />

App nur für ein paar wenige Schüler zu entwickeln, hat sich glücklicherweise nicht bestätigt. Und<br />

auch die Tatsache, dass Android im Aufschwung ist, stimmt uns positiv. Es wäre nicht erstaunlich,<br />

wenn in einem Jahr mehr Schüler der Kantonsschule Android als iOS nutzen würden. (Vgl. z. B. Arti-<br />

kel: Android überholt Apple iOS in Deutschland (SPIEGELnet GmbH, 2011))<br />

3.3 Fazit<br />

Die Umfrage werten wir als vollen Erfolg, da zum einen eine überwältigende Mehrheit von 78 % der<br />

Kantonsschüler Interesse an unserer App gezeigt hat und da zum anderen unsere Wahl Android nicht<br />

widerlegt wurde. Gestützt auf diese Umfrage könnten wir ohne schlechtes Gewissen das Sekretariat<br />

der KSS bitten, unsere Infrastruktur zumindest für eine gewisse Testphase einzusetzen. Voraussicht-<br />

lich wird es die mobile Applikation allerdings nur für Android geben, eine Version für iOS wird even-<br />

tuell zu einem späteren Zeitpunkt noch folgen, abhängig davon ob die Android-App schlussendlich<br />

wirklich Anklang findet.


Arbeiten des praktischen Teils 10<br />

4 Arbeiten des praktischen Teils<br />

4.1 Vorgehensmodelle zum Softwareentwicklungsprozess<br />

Softwareentwicklungsprojekte werden oft rasch sehr komplex. Damit man nicht den Faden verliert, ist<br />

es ratsam, eines der zahlreichen, möglichen Vorgehensmodelle anzuwenden. Sie umfassen je nach<br />

Modell den ganzen Prozess von der Analyse der Anforderungen für eine Anwendung bis hin zur War-<br />

tung des Endprodukts (Informatik Forum Simon GmbH, 2011).<br />

4.1.1 Analyse und Vergleich verschiedener Modelle<br />

Hier folgend werden einige bekannte Vorgehensmodelle etwas genauer erklärt.<br />

4.1.1.1 Wasserfallmodell<br />

Anforderungen<br />

Schritt<br />

Phase<br />

Einstufige Iteration<br />

Analyse<br />

Entwurf<br />

Programmierung<br />

Implementierung<br />

Test<br />

Abbildung 4: Die einzelnen Schritte des Wasserfallmodells, gemäss (TEIA AG, 2009)<br />

Inbetriebnahme<br />

Wartung<br />

Wie ein Wasserfall geradlinig nach unten fällt geht man bei diesem Modell Schritt für Schritt in Rich-<br />

tung Ziel. Man fängt beim ersten Schritt an, schliesst ihn vollständig ab und geht zum nächsten. Ein-<br />

stufige Iterationen 19 sind grundsätzlich möglich, aber häufig nicht erwünscht. In der Geschäftswelt ist<br />

dieses Modell nicht stark verbreitet, da auf Kundenwünsche im Nachhinein nicht mehr reagiert werden<br />

kann (Baur, 2011). Allerdings liefert es im Grunde genommen eine gute Basis, weshalb viele andere<br />

Modelle vom Wasserfallmodell her abgewandelt und weiterentwickelt worden sind (Software Quality<br />

Lab, 2003, S. 4).<br />

19 Lat. iteratio = Wiederholung


Arbeiten des praktischen Teils 11<br />

4.1.1.2 Spiralmodell<br />

Abbildung 5: Das Spiralmodell von Barry W. Boehm (Wikipedia, 2004)<br />

Das Spiralmodell ist ein Beispiel einer Weiterentwicklung des Wasserfallmodells. Im Gegensatz dazu<br />

aber ist es iterativ, da die einzelnen Schritte mehrmals durchlaufen werden. Das Softwareprodukt<br />

wächst spiralförmig, wobei die Entwicklung in vier Quadranten 20 unterteilt ist. Ein vollständiger Um-<br />

lauf ergibt dabei den nächsten Prototyp (Baur, 2011), nach dem letzten Durchlauf ist das Produkt fer-<br />

tig.<br />

Im Gegensatz zu vielen anderen Modellen besitzt das Spiralmodell eine umfassende Risikoanalyse,<br />

wodurch das Flop-Risiko beträchtlich abnimmt. Dadurch wird es aber auch zeitintensiv und kostspie-<br />

lig.<br />

20 Je ein 90°-Sektor


Arbeiten des praktischen Teils 12<br />

4.1.1.3 V-Modell<br />

Anforderungsdefinitionen<br />

Grobentwurf<br />

Feinentwurf<br />

Modulimplementation<br />

Modultest<br />

Abbildung 6: Schichten des (vereinfachten) V-Modells, gemäss (Bürger, 2003)<br />

Integrationstest<br />

Systemtest<br />

Abnahmetest<br />

Für die deutschen Bundesbehörden ist das V-Modell 21 der Entwicklungsstandard. Es bekam seinen<br />

Namen durch die schematische Darstellung, bei dem es für jede Phase auf dem Weg zur Modulimple-<br />

mentation auch entsprechend eine Phase auf dem Weg zur Abnahme gibt (Golesny, 2006, S. 40). Die-<br />

ses Modell ist je nach Ausführung sehr umfangreich und berücksichtigt abgesehen vom eigentlichen<br />

Entwicklungsprozess auch weitere Bereiche wie Projektmanagement und Qualitätsmanagement<br />

(Software Quality Lab, 2003, S. 4). Im Jahre 2005 wurde dieses Modell überarbeitet und durch das V-<br />

Modell XT 22 ersetzt. So lässt sich dieses Modell nun durch Tailoring 23 an die eigenen Bedürfnisse und<br />

an die Umstände anpassen. Somit ist es für Grossprojekte, aber auch für kleine, gut anwendbar.<br />

4.1.1.4 Extreme Programming (XP)<br />

Geschichten<br />

(Anforderungen)<br />

Architekturtreffen<br />

Funktionstests<br />

Fehler<br />

Metapher Versions- Versionsplan akt. Version<br />

plan<br />

Iteration<br />

Akzeptanz- vollständige<br />

tests<br />

Release<br />

Version<br />

geänderte<br />

Anforderungen<br />

Abbildung 7: Ablauf eines XP-Projekts (FHS St. Gallen, 2011)<br />

21 Das V-Modell baut ebenfalls auf dem Wasserfallmodell auf.<br />

22 V-Modell Extreme Tailoring, engl. to tailor = schneidern<br />

23 wegschneiden bzw. anpassen von Teilen des V-Modells<br />

Nächste Iteration


Arbeiten des praktischen Teils 13<br />

Bei XP, der bekanntesten Methode der agilen 24 Entwicklungsprozesse, geht es vor allem um die Er-<br />

stellung des Quellcodes und den kürzesten Weg dorthin (FHS St. Gallen, 2011), es wird also zu Be-<br />

ginn der Entwicklung auf einen umfassenden Anforderungskatalog verzichtet (Golesny, 2006, S. 45).<br />

Alle denkbaren Phasen der Softwareentwicklung laufen in kurzen Schritten nacheinander, also fast<br />

parallel ab, das hat den Vorteil, dass man sehr schnell auf neue Kundenwünsche eingehen kann. Für<br />

XP eignen sich nur kleine Teams, häufig wird auch zu zweit programmiert, wodurch die Fehlerrate<br />

massiv abnimmt und komplexe Sachverhalte sich in kürzester Zeit lösen lassen. Nachteilig bei dieser<br />

Methode sind, dass ständig ein Kunde vor Ort sein sollte und dass Festpreisprojekte und fixe Fertig-<br />

stellungstermine kaum möglich sind (FHS St. Gallen, 2011).<br />

4.1.1.5 Scrum<br />

Abbildung 8: Grafische Darstellung von Scrum (it-agile, 2008)<br />

Scrum 25 ist mittlerweile ebenfalls eine der bekanntesten agilen Entwicklungsmethoden. Es folgt den<br />

Prinzipien Transparenz, Überprüfung und Anpassung, d. h., dass immer alle Beteiligten über den aktu-<br />

ellen Entwicklungsstand informiert sind, dass verschiedene Aspekte des Prozesses immer wieder auf<br />

inakzeptable Abweichungen inspiziert werden und dass, falls solche vorhanden sind, der Entwick-<br />

lungsprozess schnell angepasst wird.<br />

24 agil = von großer Beweglichkeit zeugend (Bibliographisches Institut GmbH, 2012)<br />

25 Der Begriff stammt vom Rugby-Sport und bezeichnet das sogenannte „Angeordnete Gedränge“.


Arbeiten des praktischen Teils 14<br />

In Scrum gibt es drei Rollen für am Prozess beteiligte Personen: den ScrumMaster, den Product-<br />

Owner und das (Entwicklungs-) Team. Der ScrumMaster beseitigt Hindernisse und schaut dafür, dass<br />

Scrum möglichst gut angewendet wird. Der Product-Owner erstellt die Anforderungen an das System<br />

und priorisiert sie (Kriegisch, 2010). Das Team entwickelt das eigentliche Produkt.<br />

Die vom Product-Owner erstellte Liste mit allen Anforderungen an das Produkt nennt sich Product<br />

Backlog. Es ist veränderlich, es wird also ständig durch neue bzw. veränderte Anforderungen aktuali-<br />

siert. Aus dem Product Backlog werden in regelmässigen Abständen (z. B. vier Wochen) mehrere<br />

Aufgaben herausgenommen und zu einer neuen Liste, dem Sprint Backlog, zusammengefügt. Dieses<br />

Sprint Backlog wird danach vom Team in einem sogenannten Sprint (z. B. vier Wochen) ungestört<br />

abgearbeitet. Nach jedem Sprint ist ein Teil des Produkts fertiggestellt, es wäre also potenziell auslie-<br />

ferbar. Zu Beginn von jedem Arbeitstag findet ein Daily Scrum statt, das dem Informationsaustausch<br />

zwischen den Team-Mitgliedern dient.<br />

Scrum basiert also v. a. durch seine Sprints auf einem iterativen, inkrementellen 26 Ansatz.<br />

Für mehr Informationen über Scrum bzw. über weitere Elemente von Scrum verweisen wir an dieser<br />

Stelle auf den offiziellen Scrum-Guide: http://www.scrum.org/scrumguides/ (Schwaber & Sutherland,<br />

2011).<br />

4.1.2 Unsere Wahl: Scrum<br />

Scrum haben wir gewählt, weil es unseren Vorstellungen mit seinen Sprints relativ gut entsprach, es<br />

uns mehrfach empfohlen wurde und wir ein Entwicklungsmodell anwenden wollten, das in der Reali-<br />

tät auch häufig eingesetzt wird. Es könnte also durchaus sein, dass zumindest einer von uns dieses<br />

Modell später allenfalls in professionellem Umfeld einsetzen wird. Als weiterer Punkt zur Wahl von<br />

Scrum hat die Aussage beigetragen, Scrum sei verhältnismässig einfach zu lernen und lasse sich<br />

schnell einsetzten (it-agile, 2008), was wir nun allerdings nur teilweise bestätigen können.<br />

Da wir lediglich ein Zweier-Team sind und der ScrumMaster nicht gleichzeitig auch den Product-<br />

Owner verkörpern darf, waren die Rollen in unserem Fall schnell verteilt. Da unser Projekt nicht von<br />

riesiger Komplexität ist, ist es auch kein Problem, dass sowohl der ScrumMaster als auch der Product-<br />

Owner selbst Entwickler sind. Wir mussten das Prozessschema anbelangend einige Anpassungen vor-<br />

nehmen, so z. B. aufgrund der geringen Produktgrösse die Dauer eines Sprints etwas herabsetzen. Wir<br />

haben allgemein aufgrund der Grösse der Arbeit alles etwas verkleinert und gekürzt.<br />

Im Nachhinein ist an dieser Stelle zu ergänzen, dass wir uns sehr schwer taten mit dieser Methode. Die<br />

ersten Wochen klappte das Ganze noch recht gut, mit der Zeit ging jedoch Element um Element verlo-<br />

ren. Nur das Daily-Scrum konnte sich bis zum Schluss durchsetzen. Unser effektiv angewendetes Mo-<br />

dell entwickelte sich selbstständig immer mehr in Richtung von XP, sodass wir das nächste Mal an-<br />

statt auf Scrum auf XP setzen würden.<br />

26 inkrementell = schrittweise erfolgend, aufeinander aufbauend (Bibliographisches Institut GmbH, 2012)


Arbeiten des praktischen Teils 15<br />

Unserer Meinung nach ist Scrum für ein solch kleines Projekt wie das unsrige etwas zu komplex und<br />

verkompliziert die Sache mehr als dass es ihr nützt. Wir können uns gut vorstellen, dass es ein sehr<br />

gutes Entwicklungsmodell ist für eine Gruppe von etwa zehn Personen, aber für ein Zweierteam<br />

scheint es nicht geeignet zu sein.<br />

4.1.3 Bearbeitungsablauf<br />

Nach der Wahl eines Software-Entwicklungsmodells ging es an das eigentliche Werk, das Program-<br />

mieren der Anwendungen und das Erklären im schriftlichen Teil. Diese Arbeiten waren sehr umfas-<br />

send und zogen sich über mehrere Monate hin. Speziell das Programmieren war sehr zeitraubend; man<br />

sieht sich, v. a. als nicht professionelle Entwickler, laufend mit irgendwelchen Problemen konfrontiert.<br />

Kaum einer wird die Anzahl Stunden erahnen, die unser Endprodukt verschlungen hat.<br />

Damit wir möglichst viel von der Arbeit profitieren konnten, wollten wir zuerst beide sowohl pro-<br />

grammieren als auch beschreiben. Aufgrund der unterschiedlichen Ausgangslage und Kenntnisse kam<br />

es allerdings relativ rasch zu einer Aufteilung der beiden Bereiche. Durch intensiven Austausch über<br />

den Werdegang, den Stand der Arbeiten sowie über Probleme und deren Lösungen konnten wir den-<br />

noch parallel vorwärtsarbeiten. Die Qualität der Arbeit hat dadurch sicher profitiert.<br />

4.2 Produktanforderungen und Tests<br />

Damit man bei der Software-Entwicklung nicht vom Weg abkommt, sollte man sein Ziel immer vor<br />

Augen haben, sprich: man sollte am Anfang die Produktanforderungen festlegen, damit immer klar ist,<br />

was erreicht werden will. Zudem ist es auf dem Weg zum Endprodukt wichtig, kontinuierlich Tests<br />

durchzuführen, damit gravierende Fehler rasch aufgedeckt werden können. Vor Veröffentlichung des<br />

Produkts wird es eingehend ausgetestet, damit selbst kleine Schönheitsfehler vermieden werden kön-<br />

nen.<br />

4.2.1 Produktanforderungen<br />

Unsere eigenen Anforderungen an das Produkt sind, dass es den einzelnen Schüler mindestens über<br />

Stundenausfälle informieren kann. Die App soll den Benutzer selbständig über einen Ausfall informie-<br />

ren, damit der Endnutzer nicht jeden Morgen selbst nachschauen muss. Zudem sollte die App den<br />

Schüler auch nur relevante Informationen liefern, d. h. nur für diejenigen Lehrer eine Benachrichti-<br />

gung ausgeben, bei denen er auch wirklich Schule hätte. Zudem legen wir grossen Wert auf die Si-<br />

cherheit, so müssen z. B. Passwörter unabdingbar verschlüsselt übertragen werden. Die Benutzerober-<br />

fläche der App sollte so einfach wie möglich aufgebaut sein, damit sie auch jeder versteht. Für erfah-<br />

renere Benutzer sollte es zusätzlich eine Möglichkeit geben, einige Parameter wie z. B. die Aktualisie-<br />

rungshäufigkeit selber zu verändern.<br />

4.2.2 Use-Cases<br />

Aus den Produktanforderungen können die Anwendungsfälle direkt abgeleitet werden. In unserem Fall<br />

sind sie sehr kurz gefasst, es handelt sich somit vielmehr um sogenannte User-Stories.


Arbeiten des praktischen Teils 16<br />

Unsere drei wichtigsten User-Stories:<br />

Absenz erstellen<br />

Benachrichtigung<br />

Sicherheit<br />

4.2.3 Test-Cases<br />

Die Sekretärin erstellt mittels Windows-Programm eine Absenz, damit die Basis<br />

zur digitalen Benachrichtigung gelegt ist.<br />

Die Android-App gibt eine Benachrichtigung aus, sobald für den Schüler eine<br />

relevante Information vorliegt, damit er frühzeitig informiert ist.<br />

Das ganze System muss sicher sein, damit keine persönlichen Daten verloren<br />

gehen können und damit keine Rückgriffe auf das EDV-System der KSS mög-<br />

lich sind.<br />

Testen ist im Grunde genommen eine sehr mühselige Angelegenheit, denn fertig ist man damit eigent-<br />

lich nie. Es kann durchaus auch vorkommen, dass man dabei Fehler findet, die man gar nicht gesucht<br />

hat. Ab einer gewissen Komplexität der Anwendung wird es praktisch unmöglich, alle Fehler zu fin-<br />

den. So wird davon ausgegangen, dass durchschnittlich etwa 3 Fehler pro 1000 Zeilen geschriebenem<br />

Softwarecode existieren (Ezunov & Grundmeier, 2011).<br />

Aufgrund unserer sehr abstrakt abgefassten Use-Cases ergeben sich aus einem einzelnen Anwen-<br />

dungsfall sehr viele kurze Test-Cases. Sie werden zudem unterteilt in Positiv- und Negativ-Testfälle.<br />

Es wird also einerseits untersucht, ob die Anforderungen erfüllt sind, andererseits werden durch be-<br />

wusst falsche Benutzereingaben Fehler erzwungen. Ziel dabei ist es, dass das Programm am Schluss<br />

auf jede noch so falsche Eingabe des Benutzers stabil reagiert, z. B. in Form einer hilfreichen Fehler-<br />

meldung.<br />

Einige Beispiele für Testfälle zum Anwendungsfall „Absenz erstellen“:<br />

Schritt: Erwartetes Ergebnis:<br />

Sekretärin klickt auf den Button „Absenz hin-<br />

zufügen“<br />

Sekretärin wählt in den Dropdown-Feldern<br />

„Von“ bzw. „Bis“ „Lektion 1“ bzw. „Lektion<br />

8“ aus (jeweils gleiches Datum)<br />

Sekretärin wählt in den Dropdown-Feldern<br />

„Von“ bzw. „Bis“ „Lektion 8“ bzw. „Lektion<br />

1“ aus (jeweils gleiches Datum)<br />

Dialogfenster „Absenz erstellen…“ öffnet sich<br />

Die Absenz wird erfolgreich mit der Absenz-<br />

Gültigkeit von Lektion 1 bis Lektion 8 gespei-<br />

chert<br />

Auswahl von „Lektion 1“ ist nicht möglich (auf-<br />

grund des gleichen Datums und „Lektion 1“<br />

„Lektion 8“)


Arbeiten des praktischen Teils 17<br />

Nach der Durchführung eines Testfalls erfolgt die Testauswertung; wenn das erwartete Ergebnis ein-<br />

trifft, ist er somit erledigt, wenn nicht, bleibt er offen. Der Test muss nach der notwendigen Bearbei-<br />

tung des Codes erneut ausgeführt werden.<br />

4.3 Probleme, und wie sie gelöst wurden<br />

Während des Programmierens stösst man ab und zu auf ein Problem, das sich in den nächsten Stunden<br />

nicht lösen lassen wird. Einige uns widerfahrene Probleme dieser Art werden hier beispielhaft etwas<br />

genauer erläutert.<br />

Eines der ersten Probleme stellte die Kommunikation über das Internet dar. Wie kann mit einem ande-<br />

ren Computer via Internet kommuniziert werden, bzw. wie kann eine Verbindung von Smartphone zu<br />

Server aufgebaut werden? Gelöst wurde dies mittels KSSP/TCP/IP 27 (vgl. 5.1.3).<br />

Durch die Lösung dieser Frage entstand bereits ein zweites Problem, und zwar folgendes: Die Daten<br />

werden primitiv übertragen, und theoretisch könnte somit jedermann diese abfangen und manipulie-<br />

ren. Dies wollten wir natürlich nicht zulassen. Deshalb verwenden wir Verschlüsselungen und andere<br />

Schutzmassnahmen.<br />

Während der Bewältigung des zweiten Problems sahen wir uns im Rahmen der Absicherung der Da-<br />

tenübertragung bereits mit einem weiteren konfrontiert. Ein Prozessor kann „nur“ mit Zahlen bis zu<br />

einer durch ihn begrenzten Grösse direkt rechnen (z. B. mit Zahlen im Bereich von 0 bis für<br />

vorzeichenlose Zahlen oder von bis für vorzeichenbehaftete Zahlen). Um jedoch ext-<br />

rem grosse Zahlen (z. B. Zahlen im Bereich von 0 bis ) zu berechnen, braucht es mathemati-<br />

sche Funktionen aus dem Gebiet der Algorithmischen Zahlentheorie 28 . Wir bedienten uns Funktions-<br />

Bibliotheken, da das Thema zu komplex ist und den Umfang der praktischen Arbeit sprengen würde.<br />

Wie man sieht, hört das nie auf. Ein Problem entsteht durch das andere.<br />

27 KSSP steht für das von uns genutzte, eigene Protokoll<br />

28 U. a. Primzahltests, Logarithmusberechnungen und Faktorisierungs-Algorithmen, vgl.<br />

http://www.kuertz.name/files/Zahlentheorie.pdf


Architektur und Prozessschema des Gesamtsystems 18<br />

5 Architektur und Prozessschema des Gesamtsystems<br />

5.1 Funktionsweise des Systems<br />

Der grösste Teil der Zeit, die die Erstellung eines Programms verschlingt, wird in den Programm-Code<br />

gesteckt. Beim fertigen Produkt sieht man allerdings nur die Benutzeroberfläche und nicht, was sich<br />

im Hintergrund alles abspielt. Um diesen Sachverhalt zu erklären wurde dieser Berichts-Teil erstellt.<br />

5.1.1 Infrastruktureinheiten<br />

Für unser Projekt braucht es nicht nur das Android-Handy und die Android-Anwendung, sondern auch<br />

einen PC mit einer Windows-Anwendung für das Sekretariat und einen Server mit darauf ausgeführ-<br />

tem Programm.<br />

mobile<br />

Endgeräte<br />

Z. B. UMTS<br />

Wireless<br />

Haus eines Schülers<br />

Internet<br />

Abbildung 9: Infrastruktureinheiten: Sekretariats-PC, Server und zwei mobile Endgeräte<br />

5.1.1.1 Sekretariats-Computer<br />

KSS<br />

Server<br />

Sekretariats-PC<br />

Wenn ein Lehrer z. B. krank ist ruft er aufs Sekretariat an und gibt der Sekretärin Bescheid. Sie füllt<br />

anschliessend von Hand ein Absenzen-Formular aus und bringt es am Anschlagbrett an. Für unsere<br />

digitale Lösung füllt die Sekretärin ebenfalls ein Absenzen-Formular aus, allerding eines in digitaler<br />

Form. Dazu muss unser erstelltes Sekretariats-Programm auf ihrem PC installiert sein. Nachdem die<br />

Sekretärin das für Absenzen vorgesehene Formular ausgefüllt und gespeichert hat, wird vom Pro-<br />

gramm eine Verbindung zum Server aufgebaut (vgl. 5.1.3.1), die Absenz über die Verbindung über-<br />

mittelt und auf dem Server gespeichert. Die Sekretärin greift also via den Sekretariatscomputer auf<br />

den Server zu, um eine neue Datei darauf zu speichern, die gespeicherten Daten zu verändert oder zu<br />

löschen, dies z. B. wenn die Absenz wieder gelöscht werden muss.<br />

5.1.1.2 Server<br />

Der Server bzw. das darauf installierte Programm ist dafür verantwortlich, dass die vom Sekretariats-<br />

Programm erhaltenen Befehle und Daten ausgeführt bzw. richtig gespeichert werden. Des Weiteren<br />

muss der Server auch Anfragen von Seiten des Android-Handys bearbeiten und die angeforderten


Architektur und Prozessschema des Gesamtsystems 19<br />

Daten zur Verfügung zu stellen. Der Server wartet also passiv, dem Client-Server-Modell (vgl. 2.1.4)<br />

entsprechend, auf Anfragen und Befehle.<br />

5.1.1.3 Mobiles Endgerät<br />

Das Android-Handy kontaktiert (aktiv) in einem bestimmten Intervall 29 den Server. Falls neue Infor-<br />

mationen auf dem Server vorliegen, die für den Schüler des nachfragenden Handys von Bedeutung<br />

sind, wird der Schüler durch eine Benachrichtigung darauf aufmerksam gemacht.<br />

5.1.1.3.1 Android System Design<br />

Eine wichtige Rolle bei der App-Programmierung spielt natürlich das auf dem Handy installierte Be-<br />

triebssystem. Da dies in unserem Fall Android ist, wird an dieser Stelle die technische Basis von And-<br />

roid etwas genauer betrachtet.<br />

Android ist ein Linux-Betriebssystem 30 . Da es ein Smartphone-Betriebssystem ist, wurden typische<br />

Desktoperweiterungen weggelassen und es wurde v. a. für Telefonie-Funktionen optimiert, allerdings<br />

auch für das Zusammenspiel mit diversen Sensoren. Bedient wird ein Android-Smartphone über einen<br />

Touchscreen und die Tasten "Home", "Menü" und "Zurück".<br />

Abbildung 10: Architektur von Android (Google, 2011)<br />

29 In unserem Fall standardmässig alle fünf Minuten<br />

30 Linux-Kernel 2.6x


Architektur und Prozessschema des Gesamtsystems 20<br />

Die Architektur von Android besteht aus vier Schichten: die Apps, das Application Framework, die<br />

Bibliotheken neben der Android Runtime und der Linux-Kernel.<br />

Zur obersten Schicht gehört all das, was der Benutzer sieht, so z. B. ein Mailprogramm oder den<br />

Webbrowser.<br />

Das Application Framework 31 beinhaltet Anwendungen wie den Resource Manager, den Content Pro-<br />

vider (zuständig für den Austausch von Daten zwischen verschiedenen Anwendungen), den Telephony<br />

Manager (für alle Telefonie-Dienste) und den für uns v. a. wichtigen Notification Manager, durch den<br />

es möglich ist, Benachrichtigungen in der Statusleiste anzuzeigen.<br />

Eine Schicht darunter liegen die Bibliotheken und die Android Runtime 32 . Neben Java-Bibliotheken<br />

gibt es auch neue Android-Bibliotheken; sie stellen Entwicklern fertige Methoden für u. a. Datenban-<br />

ken, Multimedia und den Browser bereit. Die Core-Bibliotheken mit der Java-API 33 sowie Androids<br />

virtueller Maschine, der Dalvik Virtual Machine (DVM), stellt die Android Runtime zur Verfügung.<br />

Zuunterst liegt der Linux-Kernel, der für die Speicher- und Prozessverwaltung verantwortlich ist. Zu-<br />

sätzlich verwaltet er die Hardware-Treiber und kümmert sich um das Power-Management.<br />

Dieser Abschnitt wurde sinngemäss übernommen vom Artikel „Technik erklärt: Google Android-<br />

Architektur im Detail“ (PC Welt, 2010). Wir empfehlen den Artikel auch für zusätzliche Informatio-<br />

nen z. B. über die DVM oder den Lebenszyklus einer Android-App.<br />

5.1.2 Softwareanforderungen<br />

Um das Sekretariatsprogramm ausführen zu können, muss Windows XP oder höher 34 installiert sein.<br />

Da auf allen Computern der Schule Windows 7 zum Einsatz kommt, stellt dies überhaupt kein Prob-<br />

lem dar.<br />

Das Server-Programm wurde für Ubuntu 35 geschrieben, es läuft aber auch auf den anderen uns be-<br />

kannten Linux-Distributionen. Server, auf denen eine Linux-Distribution installiert ist, sind keine Sel-<br />

tenheit, daher gibt es im Internet auch genügend Angebote von Servern, auf denen Ubuntu bereits<br />

vorinstalliert ist, die man mieten kann.<br />

Die Android-Applikation haben wir auf Basis von Android 2.1 (Eclair 36 ) programmiert. Mit den vor-<br />

hergehenden Versionen wird sie also nicht kompatibel sein. Dazu gehören allerdings nur etwa 2 %<br />

aller Android-Geräte.<br />

31 Der Anwendungsrahmen<br />

32 Die Laufzeitumgebung<br />

33 application programming interface = Programmierschnittstelle<br />

34 D. h. Windows XP, Windows Vista oder Windows 7<br />

35 Eine bekannte Linux-Distribution, vgl. http://www.ubuntu.com/<br />

36 Die Android-Versionen werden üblicherweise mit dem Namen einer süssen Leckerei versehen


Architektur und Prozessschema des Gesamtsystems 21<br />

Android 4 (Ice Cream Sandwich)<br />

Android 2.3 (Gingerbread)<br />

Abbildung 11: Die Android-Versionen im Vergleich, Stand: 3. Januar 2012 (Google Inc., 2012)<br />

5.1.3 Datenübertragung<br />

Damit das Android-App und das Sekretariatsprogramm mit dem Server kommunizieren können, wird<br />

ein Protokoll zur Übertragung der Daten benötigt. Ein Protokoll regelt das Format und die Reihenfolge<br />

der gesendeten Daten. Bekannt ist z. B. das HTTP 37 , das dazu verwendet wird, um Webseiten aus dem<br />

WWW 38 in einen Webbrowser 39 zu laden. In unserem System kommt ein vergleichbares Protokoll<br />

zum Einsatz, das gleichermassen auf TCP 40 basiert und zur Anwendungsschicht 41 gehört. Allerdings<br />

ist es nicht so komplex wie HTTP, und es wurde darauf ausgelegt, dass möglichst einfach z. B. Ab-<br />

senzenformulare vom Server abgerufen werden können oder neue Lehrpersonen ins Lehrerverzeichnis<br />

hinzugefügt werden können.<br />

Die Android-Versionen im Vergleich<br />

Android 3 (Honeycomb)<br />

Android 2.2 (Froyo)<br />

Android 2.1 (Eclair)<br />

Android 1.6 (Donut)<br />

Android 1.5 (Cupcake)<br />

5.1.3.1 Verbindungsauf- und -abbau<br />

Um Daten zu übermitteln muss zuerst eine Verbindung zum Server aufgebaut werden. Dies geschieht<br />

in dem der Client, das Android-App oder das Sekretariatsprogramm, ein sogenanntes SYN-Paket 42 an<br />

den Server sendet. Wenn jener das Paket erhält, sendet er ein SYN/ACK-Paket 43 zurück, sowohl um<br />

den Erhalt des SYN-Pakets zu bestätigen, als auch um seinerseits eine Bestätigung des Erhalts anzu-<br />

fordern. Dies geschieht mit dem darauffolgend vom Client gesendeten ACK-Paket. Nachdem nun<br />

beide Seiten die Verbindung bestätigt haben, ist sie aufgebaut und kann verwendet werden.<br />

37<br />

Hypertext Transfer Protocol<br />

38<br />

World Wide Web<br />

39<br />

Z. B. Internet-Explorer, Google Chrome, Mozilla Firefox<br />

40<br />

Transmission Control Protocol<br />

41<br />

Vlg. dazu OSI-Modell, http://de.wikipedia.org/wiki/OSI-Modell<br />

42<br />

SYN für synchronize<br />

43<br />

ACK für acknowledgement = Bestätigung<br />

0% 10% 20% 30% 40% 50% 60%


Architektur und Prozessschema des Gesamtsystems 22<br />

Client<br />

SYN<br />

SYN/ACK<br />

ACK<br />

Server<br />

Abbildung 12: Verbindungsauf- und abbau<br />

FIN<br />

FIN/ACK<br />

ACK<br />

Server / Client Client / Server<br />

Ähnlich wie der Aufbau funktioniert auch der Abbau einer Verbindung. Statt des SYN- bzw. des<br />

SYN/ACK-Pakets wird ein FIN- bzw. ein FIN/ACK-Paket 44 gesendet, das dem Empfänger signali-<br />

siert, dass keine Daten mehr vom Sender kommen werden. Mit dem Abbau der Verbindung kann so-<br />

wohl der Client als auch der Server beginnen.<br />

5.1.4 Sicherheit<br />

Sicherheit wird immer wichtiger im Bereich der Informatik. Hacker-Angriffe sind an der Tagesord-<br />

nung. Viele Firmen lassen sich daher die Sicherheit einiges kosten. Auch wir wollen diesen Bereich<br />

nicht missachten.<br />

5.1.4.1 Risikoanalyse<br />

Jeder Schüler muss sich beim erstmaligen Starten der Android-App mit Benutzernamen und Passwort<br />

anmelden. Es wird also ein Passwort vom Smartphone an den Server übermittelt, auf Wunsch von der<br />

App gespeichert und auf dem Server auf Korrektheit überprüft. Ein Hacker kann sich theoretisch auf<br />

dem Smartphone, auf dem Server oder während der Übertragung des Passworts Zugriff darauf ver-<br />

schaffen 45 . Folglich muss es zwangsläufig verschlüsselt übertragen werden.<br />

Des Weiteren sind mehr oder weniger heikle Daten auf dem Server gespeichert. Eine Lehrerabsenz<br />

müsste nicht gross geschützt werden, da jede Person Zutritt zur KSS hat und sich diese Absenz auch<br />

vor Ort in Augenschein nehmen kann, schaden kann es jedoch nicht. In einem weiteren Stadium könn-<br />

ten aber durchaus auch persönlichere Daten auf dem Server gespeichert werden. Dies ist der Fall wenn<br />

die App um neue Funktionen wie z. B. einer Notentabelle erweitert werden sollte. Solche Informatio-<br />

nen müssen dann wiederum unbedingt verschlüsselt abgelegt sein.<br />

5.1.4.2 Angemessenes Sicherheitsniveau<br />

Die Passwörter anbelangend wollen wir keinen Aufwand scheuen und alles uns mögliche unterneh-<br />

men, um sie bestmöglich zu schützen. Das ist uns ein sehr wichtiges Anliegen, weil es viele Personen<br />

gibt, die ein und dasselbe Passwort für mehrere Accounts verwenden (IDG Communications AG,<br />

2008). Es muss hier nicht weiter ausgeführt werden, welche Folgen es also haben könnte, wenn es<br />

jemandem gelingen sollte, sich die Passwörter durch unser System anzueignen.<br />

44 FIN für finisch = Ende<br />

45 Genannt Phisphing


Architektur und Prozessschema des Gesamtsystems 23<br />

Was die restlichen Daten betrifft, ergibt es keinen zusätzlichen Aufwand auch diese verschlüsselt zu<br />

übermitteln, im Gegenteil. Es werden also auch jene Daten verschlüsselt versandt, die nicht notwendi-<br />

gerweise geschützt werden müssten.<br />

5.1.4.3 Funktionsweise<br />

Um eine sichere Übertragung der Daten zu garantieren nimmt die clientseitige Software zuerst mit<br />

dem Server eine Verbindung auf und fragt ihn nach dem öffentlichen Schlüssel 46 . Danach verschlüs-<br />

selt der Client einen Sitzungsschlüssel 47 mithilfe des erhaltenen öffentlichen Schlüssels und übermit-<br />

telt ihn dem Server. Da der Server den privaten Schlüssel 48 kennt, kann er den Sitzungsschlüssel ent-<br />

schlüsseln. Somit kennen nun beide Seiten den Sitzungsschlüssel. Mit ihm werden die Informations-<br />

Daten verschlüsselt.<br />

Um sicherzustellen, dass die verschlüsselten Daten unterwegs nicht manipuliert wurden, wird vor dem<br />

Versand ein Hashwert 49 erstellt und den Daten angehängt. Er wird bei Erhalt nach der Entschlüsselung<br />

nochmals erstellt und mit dem versandten verglichen. Stimmen beide Werte überein, sind die Daten<br />

aller Wahrscheinlichkeit nach nicht manipuliert worden.<br />

Dazu einige Code-Beispiele im <strong>Anhang</strong> (<strong>Anhang</strong> 3).<br />

5.2 Benutzeroberfläche<br />

Mit der Benutzeroberfläche ist das gemeint, was der Benutzer von einem Programm auch wirklich<br />

sieht. Die Sekretariats-Anwendung und das Android-App sind mit einer GUI 50 ausgestattet. Der Server<br />

wird vollständig über die Konsole 51 bedient, weil er keine solche grafische Oberfläche besitzt.<br />

46<br />

Bestandteil der implementierten RSA-2048-Verschlüsselung<br />

47<br />

Mittels AES-256-Methode<br />

48<br />

Bestandteil der implementierten RSA-2048-Verschlüsselung<br />

49<br />

Mittels der BLAKE-512-Methode, vgl. http://en.wikipedia.org/wiki/BLAKE_(hash_function)<br />

50<br />

Graphical User Interface<br />

51<br />

Auch Kommandozeile, Eingabeaufforderung oder Terminal genannt


Architektur und Prozessschema des Gesamtsystems 24<br />

5.2.1 Sekretariatsanwendung<br />

Abbildung 13: Hauptfenster der Sekretariatsanwendung<br />

5.2.1.1 Bedienung der Anwendung<br />

Die Anwendung wird gleich gestartet wie jede andere<br />

Windows-Anwendung, z. B. durch einen Doppelklick auf das<br />

Desktop-Icon. Beim erstmaligen Starten wird man nach dem<br />

Hostname 52 des Servers, dem zugewiesenen Port 53 , dem Be-<br />

nutzernamen und dem Passwort gefragt (vgl. Abbildung 14<br />

und Abbildung 15). Nach erfolgreicher Eingabe erscheint das<br />

normale Fenster der Anwendung, zu dem man ab jetzt bei<br />

Abbildung 15: Dialogfenster zur Abfrage der<br />

Benutzer-Daten<br />

jedem weiteren Starten direkt weitergeleitet wird (vgl. Ab-<br />

bildung 13). Diese Einstellungen lassen sich zu einem spä-<br />

teren Zeitpunkt im Menüpunkt „Extras“ verändern.<br />

Im Programmfenster sind von oben nach unten die Menü-<br />

Leiste, die Symbol-Leiste und eine Tab-Leiste platziert; sie<br />

sind permanent sichtbar. Darunter folgt dar Hauptbereich,<br />

der sich dem gewählten Tab entsprechend präsentiert.<br />

Die Menü-Leiste besteht aus den Schaltflächen „Datei“, „Extras“ und „Hilfe“. Unter „Datei“ befinden<br />

sich die Grundfunktionen der Anwendung 54 (vgl. Abbildung 16), die zusätzlich auch in der Symbol-<br />

Leiste sind. Eine ausführliche Bedienungsanleitung lässt sich unter „Hilfe“ finden (vgl. Abbildung<br />

18).<br />

52 Adresse zur eindeutigen Identifizierung eines Rechners im Internet<br />

53 „Türe“ durch die eine Verbindung hergestellt werden kann<br />

54 Wie z. B. „Absenz erstellen…“<br />

Abbildung 14: Dialogfenster zur Abfrage<br />

der Server-Daten


Architektur und Prozessschema des Gesamtsystems 25<br />

Abbildung 16: Untermenü von<br />

„Datei“<br />

entfernen…“ gelöscht werden.<br />

Um im Hauptbereich eine Liste der Benutzer oder der<br />

Stundenpläne zu sehen klickt man auf den entspre-<br />

chenden Tab. Aufgrund der allfällig enormen Länge<br />

der Benutzerliste befinden sich in der Symbolleiste<br />

ein Such- und ein Dropdown-Feld. Durch das<br />

Dropdown-Feld wird eine der Benutzer-Gruppen<br />

(Administrator/in, Sekretär/in, Lehrer/innen oder<br />

Schüler/innen) ausgewählt, die in Folge dessen im<br />

Hauptbereich angezeigt wird 55 . Durch das Such-Feld<br />

lässt sich die Auswahl noch genauer einschränken.<br />

Eine genaue Bedienungsanleitung befindet sich in der<br />

Sekretariatsanwendung selbst im Menü „Hilfe“ (vgl.<br />

CD-ROM auf der hinteren Umschlagseite).<br />

Abbildung 18: Hauptfenster der Hilfe<br />

55 Standardmässig ist die Gruppe Lehrer/innen ausgewählt<br />

In der Symbol-Leiste befinden sich die bereits erwähnten Buttons,<br />

um Benutzer, Absenzen und Stundenpläne hinzuzufügen bzw. wie-<br />

der zu entfernen. So öffnet sich beispielsweise nach Auswahl einer<br />

Lehrperson und einem Klick auf „Absenz erstellen…“ ein Dialog-<br />

fenster (vgl. Abbildung 17), in das die Sekretärin Start-, Endtermin<br />

und Grund der Absenz einträgt. Nach einem bestätigenden Klick auf<br />

„Erstellen“ wird die Absenz auf dem Server gespeichert und er-<br />

scheint nun in der Liste der Absenzen im Hauptbereich. Nach Ab-<br />

lauf der Absenz wird sie selbstständig entfernt, bei Bedarf kann sie<br />

aber auch manuell per Auswahl derselben und Klick auf „Absenz<br />

Abbildung 17: Dialogfenster zur Erstellung einer<br />

Absenz


Architektur und Prozessschema des Gesamtsystems 26<br />

5.2.1.2 Aufgaben der Sekretärin<br />

Die Aufgabe der Sekretärin besteht nun darin, die Listen der Benutzer, der Absenzen und der Stun-<br />

denpläne auf dem Laufenden zu halten. Der Schwerpunkt liegt dabei natürlich auf den Absenzen, die<br />

unter Umständen mehrmals täglich aktualisiert werden müssen. Benutzer müssen jeweils am Anfang<br />

des Schuljahres hinzugefügt werden, wenn neue Schüler/Lehrpersonen an die Schule kommen bzw.<br />

sie verlassen. Damit man nicht jede/n Schüler/in einzeln hinzufügen muss, besteht die Möglichkeit,<br />

alle Schüler/innen direkt aus einer Schülerliste im Excel 56 -Format, wie sie dem Sekretariat sowieso<br />

vorliegt, zu importieren. Die Stundenpläne müssen jeweils vor Semesterbeginn neu importiert werden.<br />

Dazu wird eine Textdatei verwendet, die zuvor aus dem Programm GP-Untis 57 , mit dem die Schullei-<br />

tung die Stundenpläne erstellt (Kantonsschule Sargans, 2011), exportiert werden muss.<br />

5.2.2 Mobile Anwendung<br />

Abbildung 19: Die Android-App, von der Installation bis zu den Details einer Absenz<br />

Die mobile Anwendung sieht eher unspektakulär aus. Sie besteht zum grössten Teil aus weisser<br />

Schrift auf schwarzem Hintergrund, sowie dem Kanti-Logo.<br />

56<br />

Tabellen- und Kalkulationsprogramm aus dem Hause Microsoft<br />

57<br />

Vgl. http://www.grupet.at/


Architektur und Prozessschema des Gesamtsystems 27<br />

5.2.2.1 Bedienung der Anwendung<br />

Nach einem Tippen auf das Icon unserer App erscheint beim erstmaligen Start ebenfalls ein Fenster,<br />

das den Anwender nach den Server- und Benutzer-Daten fragt. Danach folgt eine Übersicht mit allen<br />

Funktionen der Anwendung (vgl. Abbildung 19.3). Nach Betätigung der Menü-Taste kann man die<br />

App beenden oder weiter in die Einstellungen gelangen. Eine Funktion wählt man durch einfaches<br />

Antippen aus.<br />

Wenn eine Benachrichtigung (vgl. 5.1.1.3.1 und Abbildung 19.6) der App eintrifft, zieht der Schüler<br />

die Status-Leiste nach unten und tippt auf den entsprechenden Eintrag, die App startet und der Schüler<br />

bekommt die Informationen zur betreffenden Absenz (vgl. Abbildung 19.7).<br />

5.2.2.2 Funktionen der Anwendung<br />

Zum jetzigen Zeitpunkt besteht die Anwendung lediglich aus einer Funktion, der Absenzen-Funktion.<br />

Sie präsentiert dem Schüler übersichtlich alle zurzeit aktuellen Lehrer-Absenzen, dazu Anfangs- und<br />

Enddatum, den Grund und eventuell noch sonstige Informationen zu der jeweiligen Absenz.<br />

Weitere Funktionen wie z. B. eine Notentabelle oder ein Chat-Client sind in Planung und werden zu<br />

einem späteren Zeitpunkt lanciert, falls die App Anklang finden sollte und wirklich eingesetzt wird.<br />

Der Aufwand für die Programmierung solcher Funktionen würde sich in Grenzen halten, da die ganze<br />

Basis, bestehend aus Verbindungsprotokollen, Verschlüsselungstechnologien usw., bereits komplett<br />

implementiert ist. Die Anwendung ist somit beliebig erweiterbar und auf weitere Systeme portierbar<br />

(z. B. an anderen Schulen, etc.).


Zusammenfassung 28<br />

6 Zusammenfassung<br />

Durch diese Arbeit wurde klar aufgezeigt, dass von Seite der Schüler ein grosses Bedürfnis besteht,<br />

per Smartphone-Applikation über schulrelevante Informationen, wie z. B. Stundenausfälle, informiert<br />

zu werden. In einer Umfrage an der KSS gaben 78 % der befragten Personen an, dass sie eine mobile<br />

Applikation, die diesen Dienst bieten würde, auf ihr Smartphone herunterladen und installieren wür-<br />

den. Gegenüber dem jetzigen Informations-Medium der KSS, dem Anschlagbrett, bietet eine solche<br />

digitale Lösung enorme Vorteile. Die Informationen gelangen praktisch in Echtzeit zum Schüler, und<br />

sie können auf den Schüler spezifisch zugeschnitten werden.<br />

Für die Entwicklung einer App mit dazu benötigtem Serverprogramm und Anwendung für das Schul-<br />

sekretariat wurde als Hilfsmittel zuerst ein Vorgehensmodell für den Softwareentwicklungsprozess<br />

zugezogen. Dies bedurfte zuerst einer Analyse diverser Modelle. Anhand des gewählten Modells und<br />

verschiedener Programmiersprachen wurden nun die angestrebten Funktionen programmiert und op-<br />

timiert. Nun steht eine Infrastruktur bereit, zumindest für eine kurze Testphase, eingesetzt zu werden.<br />

Um den Entwicklungsprozess zu vereinfachen wurden zuerst diverse Vorgehensmodell zum Software-<br />

entwicklungsprozess analysiert, eines davon ausgewählt und danach mithilfe von diesem entwickelt.<br />

Zurzeit beschränkt sich die App ausschliesslich auf die Absenzen-Funktion, dafür wurde darauf geach-<br />

tet, dass diese auf einer soliden Basis aufbaut, sodass die Grundelemente und zahlreiche Sicherheits-<br />

vorkehrungen in vollem Umfang vorhanden sind. Die App kann somit ohne weiteres zu einem späte-<br />

ren Zeitpunkt und ohne grossen Aufwand mit neuen Funktionen erweitert werden.<br />

Aus Sicherheitsgründen darf auf einem Computer einer kantonalen Schule eine x-beliebige Anwen-<br />

dung nicht ohne weiteres ausgeführt bzw. installiert werden. Sie bedarf zuerst einer Zertifizierung<br />

durch den Kanton; für diesen Prozess muss mit einer Wartezeit von zwei Monaten gerechnet werden.<br />

Eine allfällige Testphase könnte demnach im April/Mai 2012 stattfinden.


Literatur-/Quellenverzeichnis V<br />

7 Literatur-/Quellenverzeichnis<br />

20 Minuten AG. (11. Januar 2012). 20 Minuten Online - Android im Sinkflug - News. Von<br />

http://www.20min.ch/digital/dossier/google/story/29298110 abgerufen<br />

AOL Inc. (14. Dezember 2011). Android leads US market share, iOS may have stopped growing, RIM<br />

is still falling -- Engadget. Von http://www.engadget.com/2011/12/14/shocker-android-grew-<br />

us-market-share-after-q2-ios-was-static/ abgerufen<br />

Apple Inc. (2011). Apple Developer Program Enrollment. Abgerufen am 21. Oktober 2011 von Apple<br />

Developer Program Enrollment: http://developer.apple.com/programs/start/standard/<br />

Apple Inc. (2011). iOS Developer Program - Apple Developer. Abgerufen am 21. Oktober 2011 von<br />

http://developer.apple.com/programs/ios/<br />

Aumasson, J.-P., Henzen, L., Meier, W., & Phan, R. C.-W. (16. Dezember 2010). SHA-3 proposal<br />

BLAKE.<br />

Baur, S. K. (16. Januar 2011). Entwicklungsmodelle. Abgerufen am 22. Juli 2011 von<br />

http://www.stefan-baur.de/cs.se.modelle.html?glstyle=print<br />

Becker, A., & Pant, M. (Mai 2009). Android - Grundlagen der Programmierung.<br />

Bibliographisches Institut GmbH. (31. Dezember 2011). Duden | imperativ | Bedeutung,<br />

Rechtschreibung, Synonyme, Grammatik. Von<br />

http://www.duden.de/rechtschreibung/imperativ abgerufen<br />

Bibliographisches Institut GmbH. (2011). Duden | Kommunikation | Bedeutung, Rechtschreibung,<br />

Synonyme, Grammatik. Abgerufen am 13. Juli 2011 von<br />

http://www.duden.de/rechtschreibung/Kommunikation<br />

Bibliographisches Institut GmbH. (31. Dezember 2011). Duden | objektorientiert | Bedeutung,<br />

Rechtschreibung. Von http://www.duden.de/rechtschreibung/objektorientiert abgerufen<br />

Bibliographisches Institut GmbH. (1. Januar 2012). Duden | agil | Bedeutung, Rechtschreibung,<br />

Synonyme, Herkunft. Von http://www.duden.de/rechtschreibung/agil abgerufen<br />

Bibliographisches Institut GmbH. (1. Januar 2012). Duden | inkrementell | Bedeutung,<br />

Rechtschreibung, Herkunft. Von http://www.duden.de/rechtschreibung/inkrementell abgerufen<br />

Bürger, R. (25. März 2003). V-Modell. Von http://www.ralfbuerger.de/sse/Vorgehensweise/Fenster/V-<br />

ModellSeite.htm abgerufen<br />

Dehmer, J. (4. Juli 2003). Informatik in der Oberstufe - Vernetzung von Rechnern (1). Abgerufen am<br />

25. August 2011 von http://www.lehrer.uni-<br />

karlsruhe.de/~za714/informatik/infkurs/vernetzung1.html


Literatur-/Quellenverzeichnis VI<br />

Ezunov, A., & Grundmeier, N. (15. März 2011). Fehler im Programmcode | Sicherheitslücken im<br />

Internet. Von http://www.informatik.uni-oldenburg.de/~iug10/sli/index01ce.html abgerufen<br />

FHS St. Gallen. (25. März 2011). Extreme Programming (altervative Beschreibung) – FHS Software<br />

Engineering Wiki. Abgerufen am 22. Juli 2011 von<br />

http://morpheus.fhsg.ch/~mw_swe/index.php/Extreme_Programming_(altervative_Beschreibu<br />

ng)<br />

Frauenhofer Institut Rechnerarchitektur und Softwaretechnik FIRST. (18. Juni 2004).<br />

Testfallerzeugung aus Use-Case-Beschreibungen. Von http://www.gm.fh-<br />

koeln.de/~winter/tav/html/tav21/TAV21F5Friske.pdf abgerufen<br />

Free Software Foundation. (2011). The GNU MP Bignum Library. Von http://gmplib.org/ abgerufen<br />

Golesny, D. (1. Februar 2006). 5.2.3 Vorgehensmodelle. Abgerufen am 22. Juli 2011 von<br />

http://www.golesny.de/bin/diplom/diplomarbeit.pdf<br />

Google. (2011). Anmeldung für Entwickler. Abgerufen am 21. Oktober 2011 von<br />

https://market.android.com/publish/signup<br />

Google. (27. Oktober 2011). What is Android? | Android Developers. Von<br />

http://developer.android.com/guide/basics/what-is-android.html abgerufen<br />

Google Inc. (2011). Philosophy and Goals | Android Open Source. Abgerufen am 16. Juli 2011 von<br />

http://source.android.com/about/philosophy.html<br />

Google Inc. (3. Januar 2012). Platform Versions | Android Developers. Von<br />

http://developer.android.com/resources/dashboard/platform-versions.html abgerufen<br />

Gummlich, W. (18. Januar 2007). Advanced Encryption Standard Rijndael.<br />

Hinzberg, H. (kein Datum). C# Übersicht. Abgerufen am 24. August 2011 von<br />

http://www.hinzberg.net/csharp/csharp/uebersicht.html<br />

IDG Communications. (11. Januar 2011). Java bleibt beliebteste Programmiersprache -<br />

computerworld.ch. Abgerufen am 25. Juli 2011 von<br />

http://www.computerworld.ch/news/software/artikel/java-bleibt-beliebteste-<br />

programmiersprache-55440/<br />

IDG Communications AG. (23. Januar 2008). Immer das gleiche Passwort - Sie auch? - PCtipp.ch -<br />

News. Von<br />

http://www.pctipp.ch/news/sicherheit/42015/immer_das_gleiche_passwort_sie_auch.html<br />

abgerufen


Literatur-/Quellenverzeichnis VII<br />

Informatik Forum Simon GmbH. (2011). INffORUM: Anwendungsentwicklung - Vorgehensmodell<br />

Software Engineering. Abgerufen am 13. Juli 2011 von<br />

http://www.infforum.de/themen/anwendungsentwicklung/thema_SE-vorgehensmodelle.htm<br />

Infoworld. (2011). So why did they decide to call it Java? - JavaWorld. Abgerufen am 25. Juli 2011<br />

von http://www.javaworld.com/javaworld/jw-10-1996/jw-10-javaname.html?page=3<br />

it-agile. (2008). it-agile: Was ist Scrum? Abgerufen am 21. August 2011 von http://www.it-<br />

agile.de/scrum.html<br />

Jürgen, W. (2009). C von A bis Z. Bonn: Galileo Press.<br />

Kantonsschule Sargans. (2011). Stundenplan. Von<br />

http://www.kantisargans.ch/home/service/stundenplan.html abgerufen<br />

Kantonsschule Sargans. (2011). Zahlen & Fakten. Abgerufen am 10. Oktober 2011 von<br />

http://www.kantisargans.ch/home/unsere_schule/zahlen___fakten.html<br />

Kersken-Canbaz, S. (2008). Geschichte | Programmieren in Java. Abgerufen am 25. Juli 2011 von<br />

http://programmieren-in-java.de/de/content/geschichte<br />

Kioskea. (1. April 2009). Client/Server Umgebung. Abgerufen am 25. August 2011 von<br />

http://de.kioskea.net/contents/cs/csintro.php3<br />

Kriegisch, A. (2010). Scrum - auf einer Seite erklärt. Abgerufen am 21. August 2011 von http://scrum-<br />

master.de/Was_ist_Scrum/Scrum_auf_einer_Seite_erklaert<br />

Kühnel, A. (2010). Visual C# 2010. Bonn: Galileo Press.<br />

Microsoft. (2011). Erste Schritte mit Visual C#. Abgerufen am 24. August 2011 von<br />

http://msdn.microsoft.com/de-de/vcsharp/dd919145.aspx<br />

Oracle. (7. April 2011). Lernen über Java-Technologie. Abgerufen am 25. Juli 2011 von<br />

http://www.java.com/de/about/<br />

PC Welt. (17. September 2010). Smartphone-Grundlagen - Technik erklärt: Google Android-<br />

Architektur im Detail - Smartphone - PC-WELT. Abgerufen am 14. September 2011 von<br />

http://www.pcwelt.de/ratgeber/Smartphone-Grundlagen-Technik-erklaert-Google-Android-<br />

Architektur-im-Detail-1005294.html<br />

Queins, D. S., & Rupp, C. (15. September 2003). Vom Use-Case zum Test-Case. Von<br />

http://www.gm.fh-koeln.de/~winter/tav/html/tav20/P7RuppQueinsTAV20.pdf abgerufen<br />

RSA Laboratories. (14. Juni 2002). RSA Cryptography Standard.<br />

Schwaber, K., & Sutherland, J. (Juli 2011). Scrum Guides - Scrum.org. Abgerufen am 22. August<br />

2011 von http://www.scrum.org/storage/scrumguides/Scrum%20Guide%20-%20DE.pdf


Literatur-/Quellenverzeichnis VIII<br />

siemax CMS Webdesign & Internetservice Feldkirchen. (2011). Glossar:: Begriffe wie Homepage,<br />

Website und WWW werden hier für den Internet-User erklärt. Abgerufen am 13. Juli 2011 von<br />

http://www.siemax.com/DE/h_computer.html<br />

Software Quality Lab. (8. November 2003). http://www.software-quality-lab.at/. Abgerufen am 22.<br />

Juli 2011 von http://www.software-quality-lab.at/swql/uploads/media/SWQL-Newsletter-<br />

200311.pdf<br />

Sommergut, W. (1. Oktober 1997). Was ist C ?: C im Vergleich zu anderen Programmiersprachen.<br />

Abgerufen am 23. August 2011 von http://c-buch.sommergut.de/Kapitel1/C-im-Vergleich-zu-<br />

anderen-Programmiersprachen.shtml<br />

SPIEGELnet GmbH. (9. Mai 2011). Smartphone-Studie: Android überholt Apple iOS in Deutschland -<br />

SPIEGEL ONLINE - Nachrichten - Netzwelt. Von<br />

http://www.spiegel.de/netzwelt/netzpolitik/0,1518,761434,00.html abgerufen<br />

Stein, S. (26. Mai 2004). 6.3.2 Vorgehensmodell Wasserfallmodell und V-Modell. Von<br />

http://emergenz.hpfsc.de/html/node42.html abgerufen<br />

TEIA AG. (1. Juni 2009). Projektplanung und Projektoptimierung mit MS Project 2003 - 2.2.3<br />

Vorgehensmodelle - TEIA AG. Von http://www.teialehrbuch.de/Kostenlose-<br />

Kurse/Projektplanung-mit-MS-Project-2003/31132-Vorgehensmodelle.html abgerufen<br />

Ullenboom, C. (2011). Java ist auch eine Insel. Bonn: Galileo Press.<br />

Wikipedia. (17. November 2004). Datei:Spiralmodel nach Boehm.png – Wikipedia. Von<br />

http://de.wikipedia.org/w/index.php?title=Datei:Spiralmodel_nach_Boehm.png abgerufen<br />

Wikipedia. (21. Dezember 2006). Datei:Java-Logo.svg – Wikipedia. Von<br />

http://de.wikipedia.org/wiki/Datei:Java-Logo.svg abgerufen<br />

Willemse Isabel, W. G. (2010). www.news.admin.ch - Medienmitteilungen und Reden. Abgerufen am<br />

11. Oktober 2011 von<br />

http://www.news.admin.ch/NSBSubscriber/message/attachments/24286.pdf


Abbildungsverzeichnis IX<br />

8 Abbildungsverzeichnis<br />

Abbildung 1: Die Kaffeetasse als Java-Logo (Wikipedia, 2006) ............................................................ 4<br />

Abbildung 2: Diagramm zum Marktpotenzial einer Kommunikations-App an der KSS ....................... 7<br />

Abbildung 3: Diagramm zur Marktverteilung der mobilen Betriebssysteme an der KSS ...................... 8<br />

Abbildung 4: Die einzelnen Schritte des Wasserfallmodells, gemäss (TEIA AG, 2009) ..................... 10<br />

Abbildung 5: Das Spiralmodell von Barry W. Boehm (Wikipedia, 2004) ........................................... 11<br />

Abbildung 6: Schichten des (vereinfachten) V-Modells, gemäss (Bürger, 2003)................................. 12<br />

Abbildung 7: Ablauf eines XP-Projekts (FHS St. Gallen, 2011) .......................................................... 12<br />

Abbildung 8: Grafische Darstellung von Scrum (it-agile, 2008) .......................................................... 13<br />

Abbildung 9: Infrastruktureinheiten: Sekretariats-PC, Server und zwei mobile Endgeräte .................. 18<br />

Abbildung 10: Architektur von Android (Google, 2011) ...................................................................... 19<br />

Abbildung 11: Die Android-Versionen im Vergleich, Stand: 3. Januar 2012 (Google Inc., 2012) ...... 21<br />

Abbildung 12: Verbindungsauf- und abbau .......................................................................................... 22<br />

Abbildung 13: Hauptfenster der Sekretariatsanwendung ...................................................................... 24<br />

Abbildung 14: Dialogfenster zur Abfrage der Server-Daten ................................................................ 24<br />

Abbildung 15: Dialogfenster zur Abfrage der Benutzer-Daten ............................................................ 24<br />

Abbildung 16: Untermenü von „Datei“................................................................................................. 25<br />

Abbildung 17: Dialogfenster zur Erstellung einer Absenz ................................................................... 25<br />

Abbildung 18: Hauptfenster der Hilfe ................................................................................................... 25<br />

Abbildung 19: Die Android-App, von der Installation bis zu den Details einer Absenz ...................... 26


<strong>Anhang</strong> A1<br />

<strong>Anhang</strong><br />

1 Umfrage-Formular<br />

Kantonsschule Sargans Kevin Stierli,<br />

Gymnasium Raphael Haslebacher<br />

Umfrage Abschlussarbeit 2012 Physik und Anwendungen der Mathematik<br />

Liebe/r Klassenchef/in<br />

Im Rahmen unserer Maturaarbeit mit dem Titel „Mobile Anwendung zur Kommunikation von<br />

schulrelevanten Informationen“ werden wir eine Applikation (App) für Handys erstellen, mit der es<br />

unter anderem möglich sein wird, sich über Stundenausfälle zu informieren, beispielsweise wenn<br />

eine Lehrperson krank ist. Die App soll also nicht zuletzt als digitales Anschlagbrett dienen.<br />

Wir bitten dich, den ersten Teil dieser Umfrage mit Hilfe deiner Klasse auszufüllen und uns dieses<br />

Blatt bis spätestens Freitag, 9. September 2011, ins Klassenfach der 3P oder der 4NP zu legen. Den<br />

zweiten Teil sollte eine Person der Klasse ausfüllen, die sich besonders gut mit Handys auskennt.<br />

1. Teil – Bedürfnisabklärung<br />

Angenommen es gäbe bereits heute eine App wie oben beschrieben, wie viele Personen der Klasse<br />

(jeweils Anzahl einsetzen) würden diese App herunterladen und auf ihrem Handy installieren, wenn<br />

diese App für ihr jeweiliges Handy verfügbar wäre; wie viele „vielleicht“ und wie viele „nicht“?<br />

Ja: ______ Nein: ______ Vielleicht: ______ kein Handy: ______<br />

2. Teil – Mobile Betriebssysteme<br />

In diesem Teil möchten wir erfahren, wie viele Personen der Klasse welches der folgenden mobilen<br />

Betriebssysteme auf ihrem Handy installiert haben.<br />

� Android von Google (z. B. Samsung Galaxy S, HTC Desire, Sony Ericsson Xperia)<br />

� iOS von Apple (iPhone)<br />

� Windows Phone 7 von Microsoft (z. B. HTC 7 Trophy, Samsung Omnia 7)<br />

� Symbian von Nokia (fast alle Nokia-Modelle)<br />

Viele vor allem ältere Handys, wie z. B. das Sony Ericsson W810i, besitzen<br />

individuelle Eigenproduktionen, die in dieser Umfrage unter „Sonstiges“<br />

einzutragen sind.<br />

Android-Geräte erkennt man beispielsweise<br />

durch die drei immer vorhandenen Tasten:<br />

Zurück, Menu und Home, eventuell zusätzlich noch Suchen.<br />

Für Windows Phone 7 ist die quadratische Menüführung (meist hellblau) und das<br />

Windows-Logo als Home-Button charakteristisch.<br />

Android: ______ iOS: ______ WP7: ______ Symbian: ______<br />

Sonstiges: ______<br />

Name der Klasse: ________ Vielen Danke für eure Teilnahme!<br />

29.08.2011 Seite 1/1


<strong>Anhang</strong> A2<br />

2 Rohdaten der Umfrage<br />

2.1 Bedürfnisabklärung<br />

n = 490<br />

Klasse Ja Nein Vielleicht kein Handy<br />

1bNPW 16 2 1 6<br />

1F 12 9 4 0<br />

1GM 15 2 7 0<br />

1LWA 19 2 0 2<br />

1NP 14 2 4 1<br />

1WB 15 1 1 0<br />

2bNPW 21 1 1 0<br />

2F 12 1 4 0<br />

2IWA 15 3 5 0<br />

2LS 16 0 1 1<br />

2NP 18 0 3 0<br />

2WB 15 0 0 0<br />

3EA 13 0 3 0<br />

3F 19 0 1 0<br />

3GM 10 7 1 0<br />

3IS 18 0 0 0<br />

3LN 17 0 3 0<br />

3P 16 0 0 1<br />

3WA 8 1 11 0<br />

3WB 18 0 0 0<br />

4FP 10 1 1 0<br />

4IL 12 6 0 0<br />

4NP 17 0 2 1<br />

4S 23 0 0 0<br />

4WA 15 3 0 0<br />

Summe 384 41 53 12<br />

Prozent 78.4 % 8.4 % 10.8 % 2.5 %<br />

Abweichungen zu 100 % sind rundungsbedingt.


<strong>Anhang</strong> A3<br />

2.2 Mobile Betriebssysteme<br />

Klasse Android iOS WP7 Symbian Sonstiges<br />

1bNPW 7 9 0 0 3<br />

1F 5 4 0 4 12<br />

1GM 6 1 0 4 13<br />

1LWA 12 7 0 2 0<br />

1NP 5 6 0 3 6<br />

1WB 3 11 0 1 2<br />

2bNPW 9 5 1 1 7<br />

2F 9 2 1 3 2<br />

2IWA 10 4 0 0 9<br />

2LS 5 5 0 0 7<br />

2NP 7 8 0 2 4<br />

2WB 4 6 0 0 5<br />

3EA 2 9 0 0 5<br />

3F 4 7 0 0 9<br />

3GM 5 5 1 0 7<br />

3IS 1 4 0 0 13<br />

3LN 2 8 0 1 9<br />

3P 8 3 1 4 0<br />

3WA 4 5 0 0 11<br />

3WB 5 8 0 2 3<br />

4FP 0 3 1 0 8<br />

4IL 3 2 0 1 12<br />

4NP 2 8 1 3 5<br />

4S 2 6 0 1 14<br />

4WA 6 6 0 0 6<br />

Summe 126 142 6 32 172<br />

Prozent 26.4 % 29.7 % 1.3 % 6.7 % 36.0 %<br />

n = 478<br />

Abweichungen zu 100 % sind rundungsbedingt.


<strong>Anhang</strong> A4<br />

3 Codebeispiele<br />

Die folgenden drei Codebeispiele sind dazu da, um in der schriftlichen Arbeit, neben der Benutzer-<br />

oberfläche der Anwendungen (vgl. 5.2), einen weiteren Eindruck der praktischen Arbeit zu vermitteln.<br />

Es soll einem bewusst werden, was wirklich hinter der Oberfläche steckt. Wir haben für jede von uns<br />

verwendete Programmiersprache einen Ausschnitt aus dem Quellcode als Beispiel zur Veranschauli-<br />

chung des jeweiligen Code-Bilds ausgewählt. Die nachfolgenden 184 Programmier-Zeilen stellen nur<br />

etwa 1.5 % der beinahe 12‘000 Code-Zeilen dar. Die vollständigen Quellcodes der erstellten Pro-<br />

gramme befinden sich auf der beiliegenden CD-ROM.<br />

C# findet bei der Sekretariatsanwendung Verwendung. Als Beispiel dazu wird beschrieben, wie eine<br />

Absenz zum Server hochgeladen wird. Durch das Java-Beispiel wird veranschaulicht, wie die benut-<br />

zerspezifischen Absenzen durch das Android-Smartphone vom Server heruntergeladen werden. Wie<br />

sie aus Sicht des Servers dem Android-Client übertragen werden, ist im dritten Beispiel dargestellt.<br />

3.1 C#<br />

/*<br />

Funktion: bool addAbsence(PAddAbsence abs);<br />

Beschreibung: Lädt eine Absenz abs zum Server hoch.<br />

Rückgabewert: true bei Erfolg, false bei Fehler<br />

*/<br />

private static bool addAbsence(PAddAbsence abs)<br />

{<br />

SecureSocket ssock = new SecureSocket(Config.getHostname(), Config.getPort(),<br />

RSAPUBLICKEY); // sicheres Socket erstellen<br />

}<br />

if (!ssock.connect()) // Verbindung zu Server herstellen<br />

{<br />

return false;<br />

}<br />

KSSPRequest req = new KSSPRequest(Const.VERSION, Cmd.ADD_ABSENCE, Config.getUsername(),<br />

Config.getPassword(), abs.getBytes());<br />

// Anfrage mit Benutzername, Passwort und Absenz erstellen<br />

ssock.send(req.getEncryptedBytes()); // Anfrage senden<br />

byte[] buf; // Puffer<br />

if ((buf = ssock.receive(KSSPResponse.bytelength, TIMEOUT)) == null)<br />

// Antwort empfangen<br />

{<br />

ssock.close();<br />

return false;<br />

}<br />

ssock.close(); // Verbindung schliessen<br />

KSSPResponse resp = new KSSPResponse(buf); // Antwort erstellen<br />

return resp.successful();


<strong>Anhang</strong> A5<br />

3.2 Java<br />

/*<br />

Funktion: ArrayList getAbsences();<br />

Beschreibung: Lädt alle benutzerspezifischen Absenzen herunter.<br />

Rückgabewert: Eine Absenzenliste(ArrayList) mit allen<br />

heruntergeladen Absenzen bei Erfolg, null bei Fehler<br />

*/<br />

private ArrayList getAbsences(){<br />

KSSPRequest req=new KSSPRequest(Const.VERSION,<br />

Cmd.GET_PERSONAL_ABSENCES, this.username, this.password, null);<br />

// Anfrage mit Benutzername und Passwort<br />

try{<br />

SecureSocket ssock=new SecureSocket(this.hostname, this.port, RemoteService.RSAPUBLICKEY,<br />

getApplicationContext());<br />

// sicheres Socket erstellen<br />

ssock.connect(); // Verbindung zu Server herstellen<br />

ssock.send(req.getBytes()); // Anfrage senden<br />

ArrayList absl=new ArrayList(); // Absenzenliste<br />

Absence abs; // Absenz<br />

KSSPResponse resp; // Antwort<br />

byte[] buf; // Puffer<br />

}<br />

for(;;){<br />

if((buf=ssock.receive(KSSPResponse.bytelength, RemoteService.TIMEOUT))==null){<br />

// Antwort empfangen<br />

ssock.close();<br />

return null;<br />

}<br />

}<br />

resp=new KSSPResponse(buf); // Antwort erstellen<br />

if(resp.getState()==KSSPResponse.STATE_FIN ||<br />

!resp.successful()){ // Status überprüfen<br />

break;<br />

}<br />

if((buf=ssock.receive(Absence.length, RemoteService.TIMEOUT))==null){<br />

// Absenz empfangen<br />

ssock.close();<br />

return null;<br />

}<br />

abs=new Absence(buf); // Absenz erstellen<br />

absl.add(abs); // Absenz der Absenzenliste hinzufügen<br />

ssock.close(); // Verbindung schliessen<br />

if(absl.size()==0){ // Absenzenliste überprüfen<br />

absl=null;<br />

}<br />

return absl;<br />

}<br />

catch(Exception e){<br />

return null;<br />

}


<strong>Anhang</strong> A6<br />

3.3 C<br />

/*<br />

Funktion: int _getpersabss(int clnd, struct _usr *usr, char *aeskey);<br />

Beschreibung: Alle Absenzen, die für den Benutzer usr bestimmt sind,<br />

werden mithilfe des AES-256-Schlüssels aeskey<br />

AES-256-verschlüsselt an den Clienten mit dem Deskriptor<br />

clnd übertragen.<br />

Rückgabewert: 0(SUC) bei Erfolg, -1(ERR) bei Fehler<br />

*/<br />

int _getpersabss(int clnd, struct _usr *usr, char *aeskey){<br />

int fd; // Datei-Deskriptor<br />

if((fd=open(ABSFILE, O_RDONLY|O_CREAT, ACC_RIGHTS))==ERR){<br />

// Absenzen-Datei mit Leserechte öffnen<br />

return ERR;<br />

}<br />

struct _abs abs; // Absenzen-Variable<br />

struct _usr tchr; // Lehrer-Variable<br />

struct _sched sched; // Stundenplan-Variable<br />

int ret;<br />

resp.state=STATE_MORE; // Status für Client<br />

for(;;){<br />

_zero((char*)&abs, sizeof(struct _abs));<br />

// Absenzen-Variable leeren<br />

if((ret=read(fd, &abs, sizeof(struct _abs)))==ERR){<br />

// Absenz einlesen<br />

break;<br />

}<br />

if(ret


<strong>Anhang</strong> A7<br />

}<br />

}<br />

if(abs.strtdw6 || abs.enddw6){<br />

// Absenz überprüfen<br />

continue;<br />

}<br />

strtless=(abs.strtdw-1)*LESS_PER_DAY+abs.strtl;<br />

// Lektionsstart berechnen<br />

endless=(abs.enddw-1)*LESS_PER_DAY+abs.endl;<br />

// Lektionsende berechnen<br />

int yes;<br />

yes=0;<br />

if(strtless


Selbstständigkeitserklärung<br />

Wir, Kevin Stierli und Raphael Haslebacher, bestätigen hiermit, dass wir diese Maturaarbeit unter<br />

Verwendung der angegebenen Quellen selbstständig entwickelt, gestaltet und geschrieben haben.<br />

Sargans, 3. Februar 2012 _________________________________<br />

_________________________________

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!