Betriebssystemtechnik (OSE) - SS 2007
Aufgabe 2: Domänenanalyse
In dieser Aufgabe soll für als Gemeinschaftsprojekt für unsere Domäne "AO-Stubs - Eine
Betriebssystemfamilie
für RCX" eine Domänenanalyse durchgeführt
werden.
| Ausgabetermin |
Vorgabe |
(spätester) Abgabetermin + Präsentation |
| 26.04.2007 |
Die Vorgabe wird über svn "ausgecheckt". Siehe dazu die Hinweise unten
|
03.05.2007, 8:00 erste Version
10.05.2007, 8:00 endgültige Version
09.05.2007, 8:00 Vortragsfolien
(Siehe auch Hinweise zur Abgabe weiter unten)
|
Lernziele
- Praktische Anwendung der in der Vorlesung gelernten Techniken zur Domänenanalyse.
- Kenntnisse über die Funktionen und Möglichkeiten des RCX (Zielplattform).
- Präsentation und Diskussion der Ergebnisse für die jeweilige Teildomäne.
Bearbeitung
Auch die Bearbeitung dieser Aufgabe erfolgt wieder gruppenweise.
Das ist dieses Mal auch besonders wichtig, da viel diskutiert werden
sollte.
Zu einer Domänenanalyse gehören drei Schritte (siehe Vorlesungsfolien):
- Festlegung, welche Domäne überhaupt modelliert werden soll.
- Sammeln relevanter Informationen über die Domäne.
- Erstellung eines Domänenmodells.
Das Domänenmodell dokumentiert sozusagen die Ergebnisse der
ersten beiden Schritte und besteht aus folgenden Teilen:
- Domänendefinition: Eine textuelle Abgrenzung der zu
modellierenden Domäne.
- Domänenlexikon: Definition aller relevanter Begriffe der Domäne.
- Konzeptmodelle: Eine informell textuelle oder auf geeigneten
Modellierungstechniken beruhende Beschreibung der relevanten Konzepte
der Domäne, ihrer Zusammenhänge und Abhängigkeiten.
- Merkmalmodell: Eine strukturierte Darstellung der
wiederverwendbaren und konfigurierbaren Eigenschaften der Systeme
der Domäne.
Das Domänenmodell soll in einem LyX-Dokument beschrieben
werden, das mit svn (Subversion) versionsverwaltet
wird. Dabei soll schon während der Bearbeitung der Aufgabe
häufiger mal mit dem Repository synchronisiert werden ("update" und "commit"), damit die jeweiligen Gruppen auch
Abhängigkeiten zwischen den Features ihrer Domäne und den
anderen Domänen zuordnen können (weiteres dazu siehe unten). Domänenanalyse ist
ein iterativer Prozess - es ist am Anfang normal, dass man häufig
alles ändert.
Vorträge
Damit jeder ein tieferes Verständinis für das
Gesamtmodell erhalten kann, ist außerdem pro
Teildomäne ein Kurzvortrag
(ca. 5-10 Min.) zu halten. Die Kurzvorträge sollen in der Übung am 10.5.2007 und in der Vorlesung am 14.5.2007 gehalten werden. Die Einteilung, welche Gruppe wann ihren Vortrag hält, erfolgt in der Übung am 3.5.2007.
Abgabe
Die Aufgabe läuft über zwei Wochen. Damit ihr eine Chance habt, frühzeitig Rückmeldung zu eurer Analyse zu bekommen, erfolgt die Abgabe iterativ in mehreren Schritten.
- Eine erste Version, die mindestens schon mal die Domänendefinition, das Domänenlexikon und das Merkmalmodell enthält, muss bis zum
3.5.2007, 8:00 (Donnerstagmorgen) abgegeben werden (durch "commit" in das Repository). Wir erwarten nicht, dass zu diesem
Zeitpunkt bereits vollständige Merkmalbeschreibungen und Konzeptmodelle vorliegen, aber wir sollten bereits einen guten Eindruck bekommen können.
Je nach Bedarf diskutieren wir die Vorgehensweise dann in der Übung und vereinbaren ggfs. Besprechungstermine mit einzelnen Gruppen.
- Die entgültige Version der Domänenanalyse wird dann bis zum 10.5.2007, 8:00 (eine Woche später) abgegeben.
- Die
Vortragsfolien solltet ihr mir (Julio) mindestens 24 Stunden vor dem jeweiligen Vortragstermin als PDF-Dokument schicken.
Anwendungsfälle und Anforderungen
Damit ihr euch bei der Domänenanalyse nicht "im Feature-Dschungel verliert",
haben wir ein paar Anwendungsfälle und weitere Anforderungen
zusammengestellt. Beachtet bitte, dass es nicht Aufgabe ist, die
Anwendungen selber zu implementieren, sondern aus den
Anwendungsbeschreibungen die Anforderungen an das Betriebssystem zu ermitteln (z.B.
benötigte Geräte, Multithreading, Speicherverwaltung usw.)
Diese Anforderungen stellen
den absoluten Mindestumfang der späteren AO-Stubs
Betriebssystemproduktlinie dar. Ihr sollt aber auch noch
weitere Features identifizieren und beschreiben. Behaltet dabei jedoch
die angestrebte Zielplattform und insbesondere das Ziel der
"Skalierbarkeit nach oben und unten" im Blick.
Anwendung LEGO-Cash
Wie in der Übung schon gezeigt, hat unser Kunde vor, ein Kassensystem aus
RCX-Bausteinen zu entwickeln. AO-Stubs soll dafür die notwendige
BS-Funktionalität bereitstellen.
Die Beschreibung von LEGO-Cash findet ihr im Subversion Repository, wie unten beschrieben. Wie im echten Leben ist die Beschreibung bestimmt nicht eindeutig - es ist zu erwarten, dass ihr Fragen habt. Diese Fragen dann bitte auf der Mailingliste diskutieren (damit alle es mitbekommen). Falls es komplizierter wird, könnt ihr natürlich auch direkt mit dem Kunden (Horst) sprechen.
Zielplattform
Die Zielplattform ist, wie bereits mehrfach erwähnt, der RCX-Baustein
des Lego MINDSTORMS. Zu dieser Plattform findet ihr tonnenweise
Informationen im Netz. Einen guten Einstieg bietet die
Informationssammlung zu Mindstorms
von Stephan Höhrmann an der Uni Kiel.
Teildomänen
Im Rahmen dieser und der
folgenden Aufgaben soll die Betriebssystemfamilie AO-Stubs entstehen. Die
Gesamtdomäne, die von den Systemen am Ende abgedeckt werden soll,
wurde von uns in der letzten Übung in Teildomänen
zerlegt. Die Zuordnung der Arbeitsgruppen zu Teildomänen ist der
folgenden Tabelle zu entnehmen. Jede Gruppe soll einen Koordinierungsbeauftragten benennen,
der für die Koordination mit den anderen Gruppen zuständig
ist und für diese als primärer Ansprechpartner dient.
Die fett gedruckten Personen sind die Koordinierungsbeauftragten.
Repository-Organisation und Vorgabe
Repository-Organisation
Alle Dokumente
zu Domänenanalyse (und später auch dem Entwurf) sollen im Projektverzeichnis unter doc/<my-domain>/
gespeichert werden.
Dazu "checkt" ihr das Repository am besten zunächst mal aus:
lohmann@faui48>svn co --username lohmann https://www4.informatik.uni-erlangen.de:8088/i4ose/ose-2007/trunk ose
lohmann@faui48>cd ose/doc/
In diesem Verzeichnis findet ihr dann ein Unterverzeichnis <my-domain>/ in dem sich jeweils die Datei
<my-domain>.lyx befindet. Das ist eure Vorgabe. Das jeweilige Unterverzeichnis <my-domain>/fig ist für etwaige Abbildungen gedacht. Weitere Informationen zum Umgang mit svn (Login, Hinzufügen von Dateien,
"committen", etc.) findet ihr auf der Tools-Seite.
Vorgabe
Durch Eingabe von:
lohmann@faui48>cd <my-domain>
lohmann@faui48>lyx <my-domain>.lyx
könnt ihr die Vorgabe öffnen und editieren. Da das händische Malen von Merkmaldiagrammen recht aufwändig ist,
integriert die Vorgabe bereits das LaTeX pst-featdiag-Paket von Georg Blaschke. Das Merkmaldiagramm wird in dem LyX-Dokument als
LaTeX-Code eingegeben. Weitere Informationen dazu gab es in der Übung, einiges findet sich auch noch mal in Schriftform auf der Tools-Seite.
Die Beschreibung der LEGO-Cash Applikation findet sich unter doc/app/.
Zusätzlich stellen wir Euch als Hilfestellung eine (relativ) vollständige Domänenanalyse bereit, die als Beispiel dienen soll. Sie behandelt die
aus der Vorlesung bekannte Wetterstation. Die Analyse findet ihr unter doc/examples/. Sie dient als Richtschnur für Stil und Umfang einer
Domänenanalyse - und kann außerdem verwendet werden, um nachzuschauen, wie man diverse Effekte mit LyX hinbekommt.
Da es sich bei AO-Stubs um ein Gemeinschaftsprojekt handelt, soll das Ergebnis der Domänenanalyse ein einzelnes
PDF-Dokument mit allen Teildomänen sein. Die Teildomänen-spezifischen LyX-Dokumente sowie (als Anhang) die Applikationsbeschreibung werden dazu von einem gemeinsamen Master-Dokument (doc/AOStubs.lyx) eingebunden. Wenn man das Master-Dokument öffnet, kann man das gemeinsame PDF generieren. Außerdem kann man vom Master-Dokument aus die einzelnen Kapitel öffnen, was den Vorteil hat, dass LyX beim Einfügen eines Querverweises nun die "Labels" aus allen Dokumentteilen anbietet. So ist es einfach möglich, auf Teile der anderen Gruppen (z.B. für Merkmalabhängigkeiten) oder die Szenarien zu verweisen. Wir empfehlen deshalb, nach den "ersten Spielereien" immer das Master-Dokument zu verwenden und häufig
ein svn update ; svn commit durchzuführen, damit ihr im Blick behaltet, was die anderen Gruppen so treiben.
Dank eines Makefiles kann
man AOStubs.pdf auch einfach durch einen Aufruf von make generieren.