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

\label{MainsObj}

In diesem Abschnitt wird ein Modellierungssystem vorgestellt, um die

benutzten Modelle

leichter verst"andlich und vergleichbar darzustellen.



Die Methode der {\em Mainstream Objects} \cite{YWT*95} dient zur Modellierung 

von

Gesch"aftsvorg"angen auf einer objektorientierten Basis. Ziel der Methode ist

es, einen Gesch"aftsvorgang so abzubilden, da"s die Umsetzung in ein

Computersystem mit Hilfe 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 spielt die zentrale Rolle in dieser Entwurfsmethode.

In diesem Modell werden die Klassen, die im Projekt eingesetzt werden,

gefunden. Au"serdem werden die Verbindungen zwischen Klassen untersucht und

abgebildet, so da"s das Modell die Grundlage des Entwurfs bildet. Dieses Modell

spiegelt die Welt des Benutzers wider, weil die gleichen Begriffe wie in der

Realit"at benutzt werden.



Neben dem Objektstrukturmodell pr"azisieren weitere Modelle andere Aspekte des

Sys\-tem\-ent\-wurfs. Diese Modelle sind das Transaktionsfolgenmodell, die 

Interaktion der Objekte, das

Objektzyklusmodell und das "Uberblicksmodell.



\begin{figure}[bt]

\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 zeigt die steigende Detaillierung. Bis zum logischen

Entwurf werden die Objekte der abzubildenden Realit"at behandelt. W"ahrend

des logischen Entwurfs wird die Struktur des zu erstellenden

Anwendungsprogramms 

mit einbezogen. W"ahrend des physischen Entwurfs kommen die fehlenden

Implementierungsdetails hinzu.



Das Objektstrukturmodell besteht aus den 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}



Obwohl immer von Objekten gesprochen wird, sind eigentlich Objektklassen gemeint.



Zur weiteren Beschreibung der Objekte geh"oren die Operationen und Attribute 

eines Objekts und die Bedingungen an die Attribute. 



\begin{figure}[bt]

\centerline{\epsfbox{bilder/beztyp.eps}}

\caption{Beziehungstypen im Objektstrukturdiagramm}

\label{beztyp_osd}

\end{figure}



Im Objektstrukturmodell werden zu den Objekten die folgenden Beziehungen

zwischen den Objekten dargestellt (siehe auch Abbildung \ref{beztyp_osd}):



\begin{description}

\item [Statische Beziehungen] modellieren die Beziehung zwischen den

Objekten. 

Sie sind an Gegenstands-Beziehungs-Modelle angelehnt. Die Beziehungen k"onnen

mit Namen versehen werden. "Uber Kardinalit"aten werden die Zahlen der

verbundenen Objekte 

spezifiziert. Hierbei k"onnen f"ur jedes der beiden verbunden Objekte

Kardinalit"aten vom Typ $(\min 1, \max 1)$, $(\min 0, \max 1)$, $(\min 1, \max

n)$ 

oder $(\min 0, \max n)$ angegeben werden.



\item [Vererbung] wird durch Pfeile zur allgemeinen Klasse dargestellt, obwohl

eigentlich die Attribute und Operationen der allgemeineren Klasse in der

spezialisierten Klasse wieder auftauchen und dort erweitert werden.



\item [Aggregierung] zeigt, welche Objekte zu neuen Objekten zusammengefa"st

werden. Auch hier k"onnen die oben genannten Kardinalit"aten eingearbeitet

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 Arbeit keine Rolle und werden daher

nicht beschrieben.



\section{Das "Ubersichtsmodell}

\label{mainO-ueber}



Um die Entwicklung von gro"sen Systemen in kleinere, handhabbare Aufgaben zu

unterteilen, versucht man Subsysteme zu finden, die von verschieden

Entwicklergruppen bearbeitet werden k"onnen. Die Unterteilung von Systemen wird

mit dem "Ubersichtsmodell erleichtert. Au"serdem k"onnen die Entwicklergruppen

mit diesem Modell die Stellung ihres Subsystems im Gesamtsystem im Blick

behalten.



Das Zusammenspiel der verschiedenen Subsysteme wird "uber Dienste geregelt, die

den anderen Subsystemen zur Verf"ugung gestellt werden.



\begin{figure}[bt]

\centerline{\epsfbox{bilder/uebermod.eps}}

\caption{Komponenten des "Ubersichtsmodells}

\label{uebersicht}

\end{figure}



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 der Systemgrenze liegt, wird vom

Modell behandelt. Die Akteure liegen au"serhalb.



\item[Subsysteme:] Jedes Subsystem ist ein Kasten mit abgerundeten Ecken. Jeder

Kasten wird mit seinem Namen versehen.



\item[Dienste:] Die Dienste werden durch Halbkreise in den K"asten der

Subsysteme dargestellt. Auch die Dienste werden "uber ihre Namen

identifiziert.



\item[Benutzung von Diensten:] Wenn ein Akteur oder ein Subsystem einen Dienst

benutzt, zeigt ein Pfeil vom Akteur auf den Dienst.



\item[funktionale Benutzung von Diensten:] Eine eigene Erweiterung, die von den

Autoren der Methode nicht vorgesehen ist, erleichtert die Darstellung in dieser

Arbeit. Wenn ein Dienst benutzt wird, gibt er anschlie"send eine Antwort an den

Aufrufer zur"uck.



\end{description}



