Entwurfsdokument AirBrowser Projektgruppe AirWeb 21.02.2001 1 Inhaltsverzeichnis 1. EINLEITUNG ......................................................................................................................................................... 3 1.1. ÄNDERUNGSÜBERSICHT ...................................................................................................................................... 3 1.2. ANLAGEN ............................................................................................................................................................ 3 2. STATISCHES MODELL ....................................................................................................................................... 4 2.1. OOD-KLASSEN ................................................................................................................................................... 4 2.2. GESAMTÜBERSICHT ............................................................................................................................................ 4 2.3. EINGABE – PACKAGE AWP.INPUT ........................................................................................................................ 6 2.3.1. Diagramm ................................................................................................................................................... 6 2.3.2. Schnittstelle ................................................................................................................................................. 6 2.3.3. Unterschiedliche Quellen ............................................................................................................................ 6 2.4. SOUND-TEILSYSTEM – PACKAGE AWP.SOUND ..................................................................................................... 7 2.4.1. Diagramm ................................................................................................................................................... 7 2.4.2. Übersicht ..................................................................................................................................................... 7 2.5. GUI UND INTERNET EXPLORER – PACKAGE AWP.VISUAL.................................................................................... 8 2.5.1. IEx-Schnittstelle .......................................................................................................................................... 8 2.5.2. GUI ............................................................................................................................................................. 8 2.6. DATENHALTUNG UND KONFIGURATION.............................................................................................................. 9 2.6.1. AWFile ........................................................................................................................................................ 9 2.6.2. AWProgramSetup........................................................................................................................................ 9 2.6.3. Datendatei ................................................................................................................................................... 9 2.7. STEUERUNG ...................................................................................................................................................... 12 2.7.1. Raumarten – AWRA .................................................................................................................................. 12 2.7.2. Slotarten – AWSA ...................................................................................................................................... 12 Diagramme der Slots I ........................................................................................................................................ 13 Diagramm der Slots II......................................................................................................................................... 14 2.8. GRAPHISCHE DIALOGE ...................................................................................................................................... 15 2.9. OPTIONSDIALOG ............................................................................................................................................... 15 3. DYNAMISCHES MODELL ................................................................................................................................ 16 3.1. USE CASES ........................................................................................................................................................ 16 3.1.1. Akteur – System ......................................................................................................................................... 16 3.1.2. Liste der Programmfunktionen ................................................................................................................. 16 3.2. PROGRAMMSTART............................................................................................................................................. 17 3.3. GRUNDSÄTZLICHE EREIGNISBEHANDLUNG ....................................................................................................... 17 3.3.1. Diagramm ................................................................................................................................................. 17 3.3.2. Beschreibung des Ablaufs ......................................................................................................................... 17 3.4. BLÄTTERN ........................................................................................................................................................ 18 3.4.1. Diagramm ................................................................................................................................................. 18 Verlaufsbeschreibung.......................................................................................................................................... 18 3.5. RAUMWECHSEL................................................................................................................................................. 19 4. SONSTIGES .......................................................................................................................................................... 20 4.1. INHALT.............................................................................................................................................................. 20 4.2. ENTWICKLUNGSUMGEBUNG.............................................................................................................................. 20 4.3. PROZEßDOKUMENTATION ................................................................................................................................. 20 4.4. QUALITÄTSSICHERUNG ..................................................................................................................................... 20 2 1. Einleitung Aufbauend auf der Problem- und Anforderungsanalyse soll dieses Dokument festlegen, wie die vorgegebenen Anforderungen realisiert werden sollen. 1.1. Änderungsübersicht Datum Kommentar 4.2.2001 Erste Version 15.2.2001 Erweiterte Version 21.2.2001 Schlußfassung 1.2. Anlagen Zu diesem Dokument gehören folgende Anlagen: - Die per Javadoc erzeugten Methodenbeschreibungen zu den Klassendiagrammen Die Formatierungskonventionen für den Javacode vom Prototypen Noch zu beachten: - Anforderungsdefinition in der korrigierten Fassung vom 23.1.2001 Anlage zur Anforderungsdefinition 1 (Sounds und Slots) Anlage zur Anforderungsdefinition 2 (Fortgesetzte Änderungen der Anf.-Def.) 3 2. Statisches Modell 2.1. OOD-Klassen Die nachfolgenden UML-Klassendiagramme enthalten die objektorientierte Architektur des Programms. Zunächst sollte hier auffallen, daß zusätzlich zur Namenskonvention des Prototypen alle Klassennamen mit AW beginnen, um die Namen im Quelltext leicht von denen der Sprache Java unterscheiden zu können. Das Programm wird in fünf Themenbereiche eingeteilt: THEMENBEREICH KLASSEN Eingabe durch verschiedene Geräte awp.input.AW* Zentrale Steuerung, Datenhaltung und Konfiguration awp.control.AW* Sound awp.sound.AW GUI und Internet Explorer awp.visual.AW* Programmstart und Globales awp.AW* 2.2. Gesamtübersicht Eingetragen sind die Pakete und die wichtigsten Klassen, insbesondere die Schnittstellen(-Klassen) der Pakete. 4 awp.control AWSlot AWSA_EnterURL ... AWSA_GoToExam ple AWSA_Help awp 6..9 AWGlobals 1 AWRoom AWAirBrow ser AWRA_Room Mark AWRA_Room Main AWRA_Room Program n AWURLHelper 1 AWProgram Setup AWFlat AWFile 1 1 1 1 AWController 1 1 1 1 AWSound AWSound AWSound AWIExInterface AWIExInterface AWIExInterface 1 awp.sound 1 AWInput AWInput AWInput 1 AWMainWindow AWMainWindow AWMainWindow awp.visual 1 1 awp.input 5 2.3. Eingabe – package awp.input 2.3.1. Diagramm AWChangeDeviceEvent AWMainWindow AWKeyListener AWController AWMouseInputListener AWUniEvent AWEvSpeechCommand AWJ3DJoystick AWEvJoystick AWSpeechHandler 2.3.2. Schnittstelle Durch ein Eventkonzept wird versucht, die sehr unterschiedlich anzusprechenden Quellen von Eingabesignalen zu vereinheitlichen. Zentaler Übergabepunkt an den Controller ist die Klasse AWInput, die eine der Klassen AWUniEvent oder AWChangeDeviceEvent an den Controller übergibt. Das bedeutet u. a., daß die Umrechung in logische Koordinaten und Aktionen in diesem Paket erfolgt. 2.3.3. Unterschiedliche Quellen Maus- und Tastaturevents kommen bereits vom Java GUI und müssen nur weitergeleitet werden. Der Joystick wird kontinuierlich von einem Java3D-Thread abgefragt, wobei jedesmal ein entsprechender Event mit der aktuellen Position an den Controller geschickt wird. Im Falle der Spracherkennung gibt es ein spezielles API, das sich ebenfalls leicht an dieses Eventkonzept anpassen läßt. 6 2.4. Sound-Teilsystem – package awp.sound 2.4.1. Diagramm AWSound 1 1 AWSndEffectProcessor 1 1 1 AWSndDistributor 1 1 1 AWSndListener n n AWSoundA3D AWSndVirtualSource AWSndTextToSpeech AWSndEffect AWSndA3DEffect AWSpeechEffect AWSndEffect_Gain AWSndEffect_Gain AWSndEffect_Gain A3D Speech 2.4.2. Übersicht Die Klassen zur Bearbeitung von Soundereignissen und der A3D-Schnittstelle entsprechen denen des Prototyps. Nähere Informationen können der damals erstellten ausführlichen Dokumentation entnommen 7 werden. Die Aktivierung der Effekte und Zusammenstellung des Klangbildes der einzelnen Räume wird im Gegensatz zum Prototypen nicht mehr von SoundScene-Managern, sondern von den Klassen im Paket awp.control übernommen (liegt also ausserhalb des Sound-Pakets). Neu hinzu kommt hier die Sprach-Engine, die entsprechend aufbereitete Text-Strings vorlesen kann. 2.5. GUI und Internet Explorer – package awp.visual Der Controller hat Zugriff auf zwei Klasen in diesem Paket. 2.5.1. IEx-Schnittstelle Die Schnittstelle von AWIExInterface stellt alle Funktionen zur Verfügung, die im AIRBrowser vom InternetExplorer benötigt werden. AWIEx ist als Java-Interface realisiert, welches die benötigten Funktionen definiert. Die Verwaltung einer dieses Inferface implementierenden Instanz liegt in den Händen von AWMainWindow, da es sich um ein GUI-Element handelt. Von der implementierenden Klasse gibt es auch noch eine Verbindung zum Kontroller in umgekehrte Richtung. Der IEx unterrichtet den Kontroller davon, wenn er eine neue Seite dargestellt hat oder wenn er gescrollt hat, durch Aufruf entsprechender Methoden im Kontroller. 2.5.2. GUI Die Klasse AWMainWindow repräsentiert die graphische Oberfläche. Sie baut das Hauptfenster auf und bettet den IEx ein. Außerdem ist hier die Verbindung zu den Input-Klassen, da hier die Event-Listener angemeldet werden. 8 2.6. Datenhaltung und Konfiguration 2.6.1. AWFile AWFile dient dazu, die Programmdaten ein- und auszulesen, und zwar sowohl für die Datendatei, die Datei mit den Programmoptionen und die Datei mit den Markern. AWFile liefert dabei strukturierte Information, im Prinzip unabhägig von der tatsächlichen Beschaffenheit der persistenten Datei. Die Struktur der Übergabe orientiert sich an XML, deshalb besteht jeder Eintrag (bzw. jede Zeile) aus einem Tag zusammen mit seinen Attributen und deren Werten. Dabei ist zu beachten: - alle Tags und Attribute in Großbuchstaben - ein ununterbrochenes Textstück, d.h. ein Bereich, der nicht von „<>“ umschlossen ist, ist auch ein Tag mit dem Text als Attributwert. Beim Einlesen der Datendatei wird der Filehandle zwischen den Räumen und den Slots durchgereicht, damit diese Objekte jeweils ihre Information dort auslesen; wenn sie dann auf ein End-Tag stoßen, geben sie das Filehandle wieder an die übergeordnete Klasse zurück. Die XML-Dateien müssen, damit normale Umlaue verstanden werden, folgende erste Zeile besitzen: <?xml version="1.0" encoding="ISO-8859-1" ?> 2.6.2. AWProgramSetup Die Klasse AWProgramSetup ist für die Programmoptionen zuständig. Sie kann also die Programmoptionen laden und speichen sowie den Dialog realisieren und anschliessend die Informationen an den Controller übergeben. Der Dialog zum Einstellen der Programmoptionen s.u. 2.6.3. Datendatei Die Datendatei ersetzt einen festimplementierten Teil, um während der Entwicklung leichter Änderungen am Programmverhalten vorzunehmen Die Datei besitzt folgendes Format (* = Mehrfaches Auftreten hintereinander möglich): 9 Datei Beschreibung <AIRWEB> * <DEFPOS ID=“<id>” X=”<x>” Y=”<y>” > </DEFPOS> Die Koordinaten der Hearcons. <id> ist das Schlüsselwort (z.B. „R“) für die POS-Tags in den SLOT-Tags s. u. <x> und <y> sind die Koordinaten des Hearcons * <DEFSPEAKER ID=”<id>” USE=”<engine>” > </DEFSPEAKER> Die verschiedenen Stimmen. <id> ist das Schlüsselwort (z.B. „F“) für die SPEECH-Tags in den SLOTTags s. u. <engine> ist die Sprecherberschreibung * <LINKTYPE ID=“<bez>“ HREF=“<wav>“ > </LINKTYPE> Zuordnung Linkarten zu Geräuschen. <bez> ist die Bezeichung der Linkart: „OUTSIDE“, „VIEWBACK“, „SHORT“, „MIDDLE“ „LONG“ (s.a .Attribute des A-Tags in der Inhaltssprache). <wav> ist der Dateiname der Sounddatei. * <MARKHINT HREF=“<wav>“ ></MARKHINT> Alle möglichen Markergeräusche. <wav> ist dier Dateiname der Sounddatei. <INNERRADIUS MIN=“<min>“ MAX=“<max>“ > </INNERRADIUS> Radius der Trefferfläche. <min> und <max> sind die Minimalund Maxiumalwerte, die der Benutzer wählen kann. <max> darf nicht größer sein, als dass sich die Trefferflächen zweier Hearcons überlappen. <OUTERRADIUS MIN=“<min>“ MAX= “<max>“ > Radius, wo das Heracon zu hören ist. </OUTERRADIUS> <min> ist der Wert, falls der Benutzer „Hearcons nicht in der Mitte hören“ wählt, und <max> falls der Benutzer „Hearcons in der Mitte hören“ wählt. * <ROOM> ... (s.u.) </ROOM> Die Räume </AIRWEB> 10 * Datei Beschreibung <ROOM NAME=“<name>” > <name> ist einer der Raumbezeichner s.u., z.B. „RoomProgram“ <SLOT> … (s.u.) </SLOT> Die Slots </ROOM> Datei Beschreibung <SLOT ID=”<id>” > <id> ist eine der Slotarten s.u., z.B. „MultipleForward“. <POS ID=”<id>” ></POS> Die Position dieses Hearcons. <id> ist der mit dem DEFPOS-Tag eingeführte Bezeichner. <HINT HREF=”<wav>” ></HINT> Das Geräusch dieses Slots. <wav> ist der Dateiname der Sounddatei. <ICON HREF=“<icon>“ ></ICON> Das Icon dieses Slots. <icon> ist der Dateiname der Bilddatei. * <SPEECH SAY=“<text>” SPEAKER=”<id>” > </SPEECH> Der Vorlesetext (Dieser Tag erscheint z.B. beim Slottyp „MultipleForward“ mehrmals) <text> ist der Text, der gelesen wird. <id> ist das mit DEFSPEAKER eingeführte Schlüsselwort. * <VOICE ID=“<id>“ ></VOICE> Die verschiedenen Stimmen. <id> ist das mit DEFSPEAKER eingeführte Schlüsselwort. </SLOT> 11 2.7. Steuerung Für die spezifischen Aktionen der Räume und der Slots gibt es jeweils eine Klasse. Daraus ergeben sich drei verschiedene Räume und 21 verschiedene Slots. Die spezielle Funktionalität eines Raums bzw. eines Slots sind dort gebündelt. Dies steht im Gegensatz zum Prototypen, wo die speziellen Funktionalitäten im Soundteilsystem, im GUI-Teil usw. angesiedelt waren. Grundsätzlich gibt es folgenden Verlauf: AWController gibt eine Information an AWFlat, den Verwalter aller Räume. Dieser verteilt die Information an alle relevanten Räume, also Söhne von AWRoom. Der jeweilige Raum, Verwalter seiner Slots, gibt diese Information weiter an seine Slots. In der Instanz von AWFlat, den Instanzen von Söhnen von AWRoom und den Instanzen von AWSlot werden dann die Funktionalität „gemacht“. Die 21 Slotarten sind untereinander nach ähnlichen Funktionaliäten gruppiert, so daß die gemeinsame Funktionalität in der jeweilig gemeinsamen Oberklasse implementiert werden kann. 2.7.1. Raumarten – AWRA Aus den Raumbezeichnern ergeben sich die Klassennamen für die Raumklassen-Klassen durch voranstellen von „AWRA_, also z.B. aus „RoomMark“ wird die Klasse „AWRA_RoomMark“. Bezeichner Raum RoomProgram Programmraum Default für maximaler Hörradius: Max. RoomMain Leseraum Default für maximaler Hörradius: Min. RoomMark Markerraum Default für maximaler Hörradius: Min. 2.7.2. Slotarten – AWSA Jeder Slot hat eine eindeutige ID. Anhand dieser ID können die Slotaktionen bestimmt und ausgeführt werden Aus den Slotarten ergeben sich die Klassennamen für die Aktionen-Klassen durch Voranstellen von „AWSA_“, also z.B. aus „MultipleForward“ wird die Klasse „AWSA_MultipleForward“. Die Slotaktionen (ID) : ChangeToTextroom GoToReference ChangeToProgramroom GoToExample ChangeToTextroomOrProgramroom GoToStructure EndAirweb DeleteMarkerFromThisRoom Help GoToPreviousMarkedPage EnterURL GoToNextMarkedPage ChangePreferences JumpBack10Markers SetMarkerMenu JumpForward10Markers MultipleBack DeleteAllMarkersOfThisType MultipleForward ChangeToAllMarkerrooms ChangeToOtherMarkerrooms 12 2.7.3. Diagramme der Slots I AWSlot AWSA_RoomChange AWSA_ToFixed AWSA_ToVariable AWSA_ChangeToTextroom AWSA_ChangeToOtherMarkerroom s AWSA_Dialog AWSA_ChangeToProgram room AWSA_ChangeToAllMarkerroom s AWSA_ChangePreferences AWSA_ChangeToTextroom OrProgram room AWSA_EnterURL AWSA_M ultiple AWSA_GoTo AWSA_MultipleBack AWSA_MultipleForw ard AWSA_GoToStructure AWSA_GoToExam ple AWSA_GoToReference 13 2.7.4. Diagramm der Slots II AWSlot AWSA_DeleteM ark AWSA_SetMarkerMenu AWSA_DeleteAllMarkersOfThisType AWSA_EndAirw eb AWSA_DeleteMarkerFrom ThisRoom AWSA_Help AWSA_JumpM ark AWSA_Jum pBack10Markers AWSA_GoToPreviousMarkedPage AWSA_Jum pForw ard10Markers AWSA_GoToNextMarkedPage 14 2.8. Graphische Dialoge Einige seltener benötigte Funktionen werden nur graphisch zugänglich sein. Dies sind Dialog zur Eingabe einer URL und der Optionsdialog 2.9. Optionsdialog Den Optionendialog zeigt folgende Abbildung: Die hier eingetragenen Werte werden beim Verslassen des Programms persistent gespeichert. Achtung: Eine weitere Option, nämlich das Eingabegerät, wird auch beim Verlassen des Programms gespeichert. Dabei wird immer das gerade aktuelle Eingabegerät gespeichert, so das diese Einstellung hier im graphischen Dialog nicht auftaucht. AirBrowser Optionen Start OK Startseite file://index.html Aktuelle Seite Startraum Abbrechen Standard Textraum Audio Lautstärke Stimme Lautstärke Geräusche Geräusche in der Mitte hören Winkel der Hearcon-Ebene Programmraum Leseraum Markerräume 90 Größe der Trefferflächen Min. Max. Stimmenwechsel erlauben 15 3. Dynamisches Modell 3.1. Use Cases 3.1.1. Akteur – System Alle vorkommenden Anwendungsfälle sind durch eine einheitliche Form gekennzeichnet: Es ist jeweils nur ein Akteur beteiligt, und auch auf der Seite der Anwendung lassen sich die einzelnen Fälle unabhängig voneinander betrachten, es sind also Use-Cases mit einer 1:1-Beziehung zu untersuchen. Auch komplexe Anwendungssituationen, die mehrere Schritte erfordern, lassen sich leicht auf diese Grundfunktionen zurückführen. Aktion Benutzer Für einige charakteristische Use-Cases werden hier im folgenden die internen Abläufe in Form von Sequenzdiagrammen dargestellt. 3.1.2. Liste der Programmfunktionen - Programmstart Programmende Blättern vor/zurück Raumwechsel Wechsel ins Menu Optionen einstellen Startseite Startraum Lautstärke Text Lautstärke Geräusche Geräusche in der Mitte hörbar Stimmenwechsel Eingabegerät Größe der Trefferflächen Winkel der Hearcon-Ebene Hilfe URL eingeben Link wählen Marker setzen/auswählen 16 3.2. Programmstart Der Verlauf ist folgendermaßen: - - Einlesen der Datendatei (mit den Raumkonfogurationen) Einlesen der Datei mit den Programmoptionen und den Markerlisten, die Initialisierung der entsprechenden Klassendaten (d.h. Auslösen der nötigen Ereignisse) erfolgt simultan, da die entsprechenden Klassen das Einlesen der Datei(-Abschnitte) selbst erledigen. Initialisierung von A3D Akustik des Startraums aufbauen, ggf. auch Icons Initialisierung des Internet Explorer, Startseite laden, das dadurch ausgelößte Event wertet die XML-Info aus der Startseite bzgl. Linkgröße etc. aus 3.3. Grundsätzliche Ereignisbehandlung 3.3.1. Diagramm Folgendes Diagramm veranschaulicht die grundsätzliche Ereignisbehandlung. aw p.input.* AWIExInterface AWProgramSetup AWFlat AWController AWSA_* AWRA_* AWIExInterface und AWMainWindow AWSound (1) (2) (3) (4a) (4b) (4c) 3.3.2. Beschreibung des Ablaufs Der Ablauf ist folgendermaßen : Ereignisse auslösen können die Klassen AWInput, AWProgramSetup und AWIExInterface, wie in der Abbildung unter Punkt (1) dargestellt. AWInput gibt dabei die Benutzung der Eingabegeräte weiter, also die Benutzung der Maus, des Joysticks, der Tastatur oder der Sprachsteuerung. AWProgramSetup lößt mehrere Ereignisse aus, wenn die Programmoptionen per Dialog geändert worden sind, auf diese Weise verbreiten sich dann die neuen Einstellungen. AWIExInterface lößt Ereignisse aus, wenn eine neue Seite 17 dargestellt wurde oder wenn gescrollt wurde, daraufhin müssen z.B. die Slots mit den Linklisten sich die neuen Listen vom IEx-Interface holen. Unter Punkt (2) und (3) in der Abbildung ist dann dargestellt, wie der Controller diese Informationen weitergibt. Zum einen nimmt er einige Einstellungen am Sound und an der Darstellung selbst vor, wie unter Punkt (2) dargestellt. Im wesentlichen werden diese Informationen aber an AWFlat usw. übergeben, so daß die entsprechenden Räume und Slots darauf mit ihrer speziellen Funktionalität reagieren können, dies ist unter Punkt (3) dargestellt. Die Räume und die Slots realisieren dann die Aktionen, in dem Sie den Sound und die GUI steuern und auch als Ereignisauslöser gegenüber dem Controller agieren, wie unter Punkt (4a), (4b) und (4c) dargestellt. Der Slot für die Programmoptionen triggert außerdem noch den Dialog zum Einstellen der Programmoptionen, wie unter Punkt (4c) dargestellt. 3.4. Blättern Die Eingabeverwaltung am Beispiel Blättern bei Joystick als aktives Eingabegerät ist im Diagramm zu sehen. 3.4.1. Diagramm AWJ3DJoystick Joystickknopf w ird gedrückt AWController aw p.input.* AWRA_RoomMain AWFlat AWSA_MultipleForw ard AWIExInterface AWSound handleInputEvent Seite w ird geladen 3.4.2. Verlaufsbeschreibung Der Verlauf ist folgendermaßen: - Joystick wird gerade abgefragt, Taste 2 ist gedrückt. Joystick-Task sendet Event mit Koordinaten und Info über gedrückte Taste an AWInput. In AWInput erfolgt die Verwaltung und Umrechnung in das eingaberätunabhängige Ereignis AWUniEvent. AWInput gibt das universale Event an den Controller. 18 - - Der Controller gibt das Event an AWFlat und so fließt das Event bis zum passenden Slot, in diesem Fall AWSA_MultipleForward. Angenommen, es wurde schon zweimal Knopf1 gedrückt, dann hat sich AWSA_MultipleForward dies gemerkt. Die Klasse überprüft, ob die Koordinaten noch innerhalb ihrer Trefferfläche liegen, Falls ja, wird jetzt die Aktion des zweiten Menüeintrags ausgelößt, z.B. „Blättern zur nächsten Seite“ Dies erfolgt, indem die entsprechenden Funktionen beim Sound und in der GUI (und eventuell im Controller) aufgerufen werden. Der Internet-Explorer lädt die neue Seite ein und lößt dann das Ereignis „Neue Seite wurde geladen“ aus, dies Eregnis gibt er dem Controller, der diese Information dann an alle interessierten Klassen weiterverteilt. 3.5. Raumwechsel Der Verlauf ist folgendermaßen: - Eingabeevent s.o. Akustik des alten Raums deaktivieren Icons tauschen Akustik des neuen Raums aufbauen 19 4. Sonstiges 4.1. Inhalt HTML-Seiten zum Testen des Browsers und für die Hilfefunktion sind bereits erstellt und im CVS erhältlich. Die Beschreibungssprache für die zusätzliche Audio-Information in diesen Dokumenten ist dem Anforderungsdokument zu entnehmen. 4.2. Entwicklungsumgebung Zu den für die Implementierung verwendeten Werkzeugen gehören neben der im Anforderungsdokument erwähnten Laufzeit-Systemumgebung (A3D, Windows, etc.) folgende Software: Borlands J-Builder DIE, CVS Versionsverwaltung, Das Java SDK. 4.3. Prozeßdokumentation Es ist zu erwarten, daß die in diesem Dokument beschriebenen Schnittstellen während der Entwicklung noch erweitert werden. Die Dokumentation ist dem stets anzupassen. Dies kann auf drei verschiedene Arten geschehen. - - - Grundlegende Veränderungen am Entwurf sollten regelmäßig in diesem Dokument ergänzt werden. Dazu gehören alle Modifikationen an öffentlichen Schnittstellen und grundsätzliche Änderungen im Verhalten der einzelnen Komponenten . Auf Teilbereiche beschränkte neue Erkenntnisse und Implementationsdetails werden von den jeweiligen ‚SpezialistInnen‘ in separaten Dokumenten beschrieben, wenn diese für die Gruppe von Interesse sind. In den Entwurf werden dann entsprechende Verweise aufgenommen. Der Quelltext sollte einerseits zum besseren Verständnis dokumentiert sein, und andererseits den Ablauf der Entwicklung widerspiegeln, indem entsprechende Hinweise auf Veränderungen oben in die Datei und in die CVS-Kommentare geschrieben werden. Für die Quelltextkommentare gelten die Konventionen des Hilfsprogramms Javadoc. 4.4. Qualitätssicherung Im Gegensatz zum Prototyp muß beim AirBrowser verstärkt auf die Zuverlässigkeit geachtet werden, da hier der Funktionsumfang und der Anspruch an die Benutzbarkeit größer sind. Die implementierten Klassen sollten mindestens im Verbund getestet werden, ein Modultest einzelner Klassen ist dort sinnvoll, wo das Verhalten der Komponente im Gesamtprogramm nicht ausreichend erkennbar ist. Bei der Zeitplanung erscheint es angebracht, einen Meilenstein zu setzen, ab dem die Funktionalität nicht mehr verändert und nur noch an der Zuverlässigkeit gearbeitet wird. 20