HOME | DEUTSCH | IMPRESSUM | KIT

Software Engineering Practice: DivingComputerApp - Security-sensitive Applications for Android

Vorbesprechung: Dienstag den 26.10. um 13:30 Uhr in Raum 207 im AVG (Gebäude 50.41)

Aufgabenstellung


Tauchen ist ein schönes, aber auch nicht ganz ungefährliches Hobby. Wenn man zu lange oder zu tief taucht, dann reichert sich das Gewebe des Tauchers mit Stickstoff an. Beim Auftauchen kann es dann passieren, dass der Stickstoff (wie beim Öffnen einer Flasche Sprudel) aus dem Gewebe ausperlt und dadurch starke Schmerzen und Verletzungen verursacht.

Deshalb muss jeder Taucher einen Tauchcomputer mitführen. Dieser misst über einen Drucksensor den Tauchverlauf und bestimmt mit Hilfe eines mathematischen Modells den aktuellen Zustand des Tauchers. Aufgrund des Modells gibt der Tauchcomputer dem Taucher Anweisungen wie er sich zu verhalten hat. Z.B. "Langsames Auftauchen bis auf 20m und dort 10min verweilen.". Da diese Hinweise über das Wohlergehen des Tauchers entscheiden, darf bei deren Berechnung kein Fehler unterlaufen. Hierfür ist bei der Implementierung spezielle Sorgfalt, sowie der Einsatz von geeigneten Softwaretechniken nötig.

Ihre Aufgabe ist die Implementierung eines Tauchcomputers für mobile Java-Geräte. Zur Erprobung des Programms ist als Zielgerät des Tauchcomputers ein Java-fähiges Handy vorgesehen. Darüber hinaus sollen Sie eine Meeressimulation entwickeln, mit der Tauchgänge modelliert werden können und die die entsprechenden Daten an den Tauchcomputer übermittelt. Die Meeressimulation soll als herkömmliche Java-Applikation realisiert werden.

Kommunikation zwischen Tauchcomputer und Simulationsumgebung


Die Programmiersprache Java existiert nicht nur in ihrer Standardausführung, der Java Standard Edition, sondern auch in einigen verschiedenen Variationen für spezielle Einsatzgebiete, wie etwa Java Card für Smart Cards oder die Java Micro Edition (JavaME) sowie die Android Platform für mobile, vernetzte Geräte wie z.B. Handys.

Sie werden dabei Ihr System nach dem Stand der Softwaretechnik in einem Team mit ca. 5 Teilnehmern entwerfen und realisieren. Dazu müssen Sie insbesondere Verfahren des Software-Entwurfs und der Qualitätssicherung praktisch einsetzen, sowie Teamarbeit planen und koordinieren.

Vorbesprechung


Die erste Vorbesprechung für alle 4 Teams wird am Dienstag den 26.10. um 13:30 Uhr in Raum 207 im AVG (Gebäude 50.41) stattfinden.

Termine

Datum Ort Thema Unterlagen
26.10.2010, 13:30 Uhr SR 207, AVG Erstes gemeinsames Gruppentreffen
29.10.2010, 09:45 Uhr SR 207, AVG Tauchcomputer Grundlagen
12.11.2010, 09:45 Uhr SR 207, AVG Kolloquium: Pflichtenheft
10.12.2010, 09:45 Uhr SR 207, AVG Kolloquium: Entwurf
21.01.2011, 09:45 Uhr SR 207, AVG Kolloquium: Implementierung
11.02.2011, 09:45 Uhr SR 207, AVG Kolloquium: Validierung
09.03.2011, 13:00 Uhr R. 029, AVG Interne Abnahme
30.03.2011, ab 10:00 Uhr (ganztägig) HS -101, 50.34 Abschlusspräsentation

Zeitlicher Ablauf

Die Veranstaltung gliedert sich insgesamt in fünf Phasen. Jede Phase wird durch ein Kolloquium abgeschlossen, in dem die Gruppen ihre Ergebnisse vorstellen. Die Termine für die Kolloquien werden noch bekanntgegeben.

Woche Zeitraum Phase Kolloquium
42 18.10. Auftaktveranstaltung
42 18.10. - 22.10. Gruppen- und Aufgabeneinteilung mit WebInScribe
43 25.10. - 29.10. Erstes Gruppentreffen mit Betreuer
44 - 45 01.11. - 12.11. Pflichtenheft
46 - 49 15.11. - 10.12. Entwurf
50 - 3 13.12. - 21.01. Implementierung
4 - 6 24.01. - 11.02. Qualitätssicherung/Validierung
7 - 8 14.02. - 25.02. Klausurpause
9 28.02. - 04.03. Interne Abnahme
10 30.03. Abschlusspräsentation

Material

Nur aus dem Uni-Netz erreichbar. Verwenden Sie ggf. den VPN-Client des KIT.


Topic Documents
Aufgabenstellung [PDF]
Tauchcomputer [PDF]
Schnittstelle zwischen Tauchcomputer und Simulationsumgebung [PDF]
Folien aus dem ersten Gruppentreffen [PDF]
Anmerkungen zum Pflichtenheft [PDF]
Anmerkungen zum Entwurf [PDF]
Anmerkungen zur Implementierung [PDF]
Anmerkungen zur Validierung [PDF]

Links

Versionsverwaltung

Als Versionsverwaltung empfehlen wir Subversion:

Entwurf

Es existieren Unmengen von Tools zur Erstellung von und zur Generierung von Quellcode aus UML-Diagrammen. Einige der besseren sind nachfolgend aufgelistet:

Spezifikation

Eine Reihe von Tools bieten werkzeugunterstütztes Testen für JavaME an:

Testen

Um die Qualität Ihrer Tests zu bestimmen, werden Sie Tools verwenden, die die Anweisungs- und Zweigüberdeckung Ihrer Tests messen. Einige Tools sind nachfolgend aufgelistet:

Programmieren mit Java

Threads und GUI

Infrastruktur: Auszüge aus dem Wiki des Lehrstuhls

Personnel

Department Head
Prof. Gregor Snelting
Former Staff Member
Dr.-Ing. Jürgen Graf
Dipl.-Inform. Denis Lohner