\chapter {"Uberblick "uber die Methode der {\em Mainstream Objects}}
\label{MainsObj}

Die Methode der {\em Mainstream Objects} \cite{YO95} dient der Modellierung
von Gesch"aftsprozessen auf einer objektorientierten Basis. Ziel der Methode
ist, einen Gesch"aftsvorgang derart zu strukturieren, da"s die Umsetzung in ein Informationssystem unter Verwendung einer objektorientierten Programmiersprache leicht f"allt. Um dieses Ziel zu erreichen, wird der Vorgang mit Hilfe mehrerer
Modelltypen von verschiedenen Seiten betrachtet.

\section{Das Objektstrukturmodell}
\label{mainsO-struk}

Das Objektstrukturmodell ist das Kernelement der Entwurfsmethode.
In diesem Modell werden die Klassen, die im Projekt realisiert werden sollen,
ermittelt. Au"serdem werden die Verbindungen zwischen Klassen untersucht und
abgebildet, so da"s das Modell die Grundlage des Systementwurfs bildet. Es
spiegelt dabei die Welt des Benutzers wider, wobei alle Objekte mit Begriffen der Anwendungdom"ane bezeichnet werden.

Neben dem Objektstrukturmodell pr"azisieren weitere Modelle andere Aspekte
des Sys\-tem\-ent\-wurf\-es. Diese Modelle sind das Transaktionsfolgenmodell,
das Objektzyklusmodell und das "Ubersichtsmodell.

\begin{figure}
\centerline{\epsfbox{bilder/modproj.eps}}
\caption{Einsatz der Modelle im Projektzyklus}
\label{modzykl}
\end{figure}

Die Abbildung \ref{modzykl} zeigt, wann welches Modell im Projektzyklus
erstellt werden soll. Dabei nimmt das Objektstrukturmodell im Laufe des
Projektes  einen immer gr"o"seren Umfang ein.

Der wachsende Umfang entspricht dem steigenden Detaillierungsgrad des Modells. Bis zum logischen
Entwurf werden lediglich die Objekte der abzubildenden Realit"at behandelt. W"ahrend des logischen Entwurfes wird die Struktur des zu erstellenden
Anwendungsprogramms mit einbezogen. Im physischen Entwurf werden schlie"slich die fehlenden Implementierungsdetails erg"anzt.

Ein Objektstrukturmodell beinhaltet die folgenden Komponenten:
\begin{itemize}
\item Gegenstandsobjekte
\item Schnittstellenobjekte
\item Kontrollobjekte
\item abstrakte Objektklassen
\end{itemize}

In der Abbildung \ref{obtyp} sind die zugeh"origen Symbole zu sehen.

\begin{figure}[bt]
\centerline{\epsfbox{bilder/objtyp.eps}}
\caption{Darstellung der Objekttypen}
\label{obtyp}
\end{figure}

Zur weiteren Beschreibung der Objekte (bzw. der Objektklassen) geh"oren die Operationen und Attribute eines Objektes und deren zugesicherte Eigenschaften (Typen, Bedingungen, \dots).

\begin{figure}
\centerline{\epsfbox{bilder/beztyp.eps}}
\caption{Beziehungstypen im Objektstrukturdiagramm}
\label{beztyp_osd}
\end{figure}

Im Objektstrukturmodell werden zus"atzlich zu den Objekten die folgenden Objektbeziehungen dargestellt (siehe auch Abbildung \ref{beztyp_osd}):

\begin{description}
\item [Statische Beziehungen] modellieren die Beziehung zwischen den
Objekten. Sie sind an Ge\-gen\-st\-ands-Beziehungs-Modelle angelehnt. Die Beziehungen k"onnen
mit Namen versehen werden. Kardinalit"aten werden als Zahlenpaare an den
verbundenen Objekten spezifiziert. Hierbei k"onnen f"ur jedes der beiden
verbunden Objekte Kardinalit"aten der Art $(\min 1, \max 1)$, $(\min 0, \max
1)$, $(\min 1, \max n)$ oder $(\min 0, \max n)$ angegeben werden.

\item [Vererbung] wird durch Pfeile von den spezialisierten Klassen zur allgemeineren Klasse dargestellt.

\item [Aggregation] zeigt, welche Objekte zu neuen Objekten in
einer Teil-Ganzes-Beziehung zusammengefa"st werden. Auch hier k"onnen die oben
genannten Kardinalit"aten verwendet werden.

\item [Kommunikation "uber Nachrichten] ist die einzige Verbindungsart, die
Objekte verschiedener Typen erreichen kann.
\end{description}

Die Modelle f"ur Gesch"aftsvorg"ange, Transaktionsfolgen, Objektinteraktionen
und Objektzyklen spielen in der vorliegenden Arbeit keine Rolle und werden daher
nicht n"aher betrachtet.

\section{Das "Ubersichtsmodell}
\label{mainO-ueber}

Um die Entwicklung gro"ser Systeme in kleinere, handhabbare Teilaufgaben zu
untergliedern, zerlegt man diese Systeme in Subsysteme, die dann getrennt  voneinander bearbeitet werden k"onnen. Diese Unterteilung von Systemen wird mit dem "Uberblicksmodell erleichtert. Au"serdem bietet es den involvierten Entwicklergruppen die M"oglichkeit, die Stellung ihres Subsystems im Gesamtsystem im Blick zu behalten.

Das Zusammenwirken der verschiedenen Subsysteme erfolgt in der Form von Diensten, die den anderen Subsystemen zur Verf"ugung gestellt werden.

Im "Ubersichtsmodell werden die folgenden Komponenten aus Abbildung
\ref{uebersicht} aufgenommen:

\begin{description}
\item[Akteure:] Personen werden als ``Strichm"annchen'' und maschinelle
Akteure als Blitz dargestellt.

\item[Systemgrenze:] Alles, was innerhalb einer Systemgrenze liegt, wird vom
betrachteten Modell behandelt. Die Akteure liegen au"serhalb.

\item[Subsysteme:] Jedes Subsystem wird als benanntes Rechteck mit abgerundeten Ecken dargestellt. 

\item[Dienste:] Die Dienste werden durch Halbkreise in den Piktorgrammen der
Subsysteme dargestellt. Dienste werden ebenfalls "uber ihren Namen
identifiziert.

\item[Benutzung von Diensten:] Wenn ein Akteur oder ein Subsystem einen Dienst
nutzt, zeigt ein Pfeil vom Akteur auf den entsprechenden Dienst.

\end{description}

\begin{figure}[bt]
\centerline{\epsfbox{bilder/uebermod.eps}}
\caption{Komponenten des "Ubersichtsmodell}
\label{uebersicht}
\end{figure}
