%*
%* Copyright (c) 2007 by Lbukas Ruf (lukas.ruf@lpr.ch)
%*
%* Create: 2007-01-30:1549
%* Modify: 2007-01-30:1626
%* Commit: $Id: design.tex 272 2007-03-06 21:45:29Z ruf $
%*

\chapter{Methodik- und Architekturentscheide}
\label{design}
\label{platform:architecture}
Nach der Feststellung der in \ref{platform:comparison} aufgeführten Unterschiede zwischen Vorgänger- und Zielplattform entschieden wir uns, die Arbeit unter Verwendung eines iterativen Rapid Prototyping-Ansatzes voranzutreiben, auf welchen auch im Abschnitt \ref{evaluation:assessment} eingegangen wird. Da wir diese Aufgabe als Doppelsemesterarbeit in Angriff nehmen konnten, bot sich ausserdem die Verwendung eines vereinfachten Extreme Programming-Ansatzes \cite{xp} an, der die Programmierarbeit in Zweiergruppen vorschreibt und im Interesse einer teamtauglichen Verantworlichkeitsstruktur eine ständig wechselnde Rollenverteilung vorsieht. \\
Dazu motivierten uns primär folgende Gründe: 
\begin{itemize}
	\item Während eine Aufteilung der Anpassungsarbeiten in disjunkte Teilmengen grundsätzlich möglich schien und in vergleichbaren Arbeiten erfolgreich demonstriert worden war \cite{sddr}, war uns doch klar, dass nicht alle Designentscheide vor dem Beginn der Codierarbeiten getroffen werden können. Ebenfalls von Anfang an klar war aber auch, dass die Portierung innerhalb einer Prozessorfamilie keine grundsätzlichen Änderungen der Struktur von TOPSY bedingen würden. Um Reibungsverluste und das Risiko von Inkompatibilitäten zu reduzieren und gleichzeitig die Motivation aller Beteiligten auf hohem Niveau zu halten, entschieden wir uns deshalb, jeweils gemeinsam denselben Codebereich zu bearbeiten.
	\item Während das Hauptziel der Arbeit darin bestand, innert eines Semesters TOPSY~v3 auf der IXP2400-Plattform zur Lauffähigkeit zu bringen, wollten wir auch die Gelegenheit ergreifen, in allen berührten Teilgebieten der Betriebssystemprogrammierung praktische Erfahrung zu sammeln und so unseren Lernerfolg zu steigern.
\end{itemize}

Deshalb gingen wir die im Kapitel \ref{coding} beschriebenen Arbeiten nach und nach an und überprüften unseren Fortschritt, indem wir regelmässig bis zum jeweils letzten lauffähigen Punkt testeten. Auf die Themen der Validierung und Evaluation wird im Kapitel \ref{evaluation} nochmals näher eingegangen.