% ------------------------------------------------------------------ %
%                                                                    %
% Datei:        repos.tex                                            %
% Autor:        Oliver Nietsch                                       %
%                                                                    %
% Universitaet Hamburg                                               %
% Fachbereich Informatik                                             %
% Arbeitsbereich DBIS                                                %
%                                                                    %
% Thema: Studienarbeit: "Gateway zwischen dem StP-Repository         %
%                        und Tycoon"                                 %
%                                                                    %
% Inhalt: LaTeX-Dokument: Studienarbeit,                             %
%                         Kapitel 3: Das StP Repository              %
%                                                                    %
% Version vom  22. 2.1996                                            %
% ------------------------------------------------------------------ %

\chapter{Das StP Repository}
\label{Chap:Repos}

Jedes einzelne in der Abbildung~\ref{Fig:Architektur} dargestellte {\sf StP} CASE-Werkzeug ben"otigt oder erzeugt eine Vielzahl von Informationen innerhalb des Entwicklungsprozesses. In der verteilten \engl{Client-Server} Umgebung entsteht somit innerhalb eines jeden Werkzeugs eine hohe Anzahl von Zugriffsoperationen auf die Datenbasis aller Entwicklungswerkzeuge. Das {\sf StP Repository} integriert s"amtliche Datenbasen aller Werkzeuge der {\sf StP} Umgebung. Es ist der "`zentrale Speicher"' der Projektinformation \cite{StPoms94}.

Um eine anwendungsunabh"angige Speicherung der Modellierungsobjekte in der Entwicklungsdatenbank zu erreichen und ein hohes Ma"s an Konsistenz innerhalb des Anwendungsentwicklungsprozesses zu erzielen, verwendet die {\sf StP} Umgebung das {\sf StP Object Management System}. Es beinhaltet neben den im Abschnitt~\ref{Sec:Objekt} dargestellten Aspekten die in der {\sf StP Query and Reporting Language} enthaltene {\sf OMS Query Language} und das {\sf StP Application Program Interface (API)}, um auf Repositoryobjekte werkzeugunabh"angig zugreifen zu k"onnen.

\section{Objektmanagement}
\label{Sec:Objekt}

Das Objektmanagement ist innerhalb des {\sf OMS} durch eine Menge von Funktionen realisiert, welche die Schnittstelle zwischen Anwendungsprogrammen und dem {\sf StP Repository} definieren. Die Ablage der Projektinformation erfolgt anwendungsunabh"angig auf der Grundlage des \engl{Persistent Data Model} (PDM). 

\subsection{Persistent Data Modell (PDM)}
\label{SubSec:PDM}

Das \engl{Persistent Data Model} ist ein konzeptuelles Schema, welches die Attribute und Beziehungen von Repositoryobjekten auf der Basis abstrakter Datentypen definiert. Somit entsteht f"ur jede Anwendung die gleiche Zugriffssicht auf die im Repository abgelegten Objekte \cite{StPoms94}.

\begin{figure}[hbt]
  \begin{center}
    \ 
    \epsfig{figure=pdm.eps,width=12cm}
  \end{center}
  \caption{\label{Fig:PDModell} {\sf StP Persistent Data Modell (PDM)}}
\end{figure}

Die in der Abbildung~\ref{Fig:PDModell} dargestellten abstrakten Datentypen stehen in einer exklusiven Subtypbeziehung. Das hei"st, da"s jeder Typ in einer Sub-/Supertypbeziehung zu einem anderen Typ steht. Der \engl{CASE Type} ist der Supertyp aller anderen Typen dieses Datenmodells. Supertypen, wie der \engl{CASE Type}, der \engl{Annotated Object Type}, der \engl{Reference Type} und der \engl{Software Engineering (SE) Type} werden als "`Kategorien"' bezeichnet und k"onnen nicht direkt im Repository gespeichert werden. Nur die Subtypen, die nicht Supertypen anderer Typen sind, k"onnen als Repositoryobjekte instantiiert werden. Eine Interpretation der PDM-Typen erfolgt an dieser Stelle nicht. Tabellen aller PDM-Typen und ihrer Attribute befinden sich in \cite{StPoms94}.

\subsection{PDM-Typen und Beziehungen}
\label{SubSec:PDMTypen}

Abgesehen von den konzeptuellen Sub-/Supertypbeziehungen stehen die PDM-Typen noch in einer, f"ur die Modellierung der Tycoon-Bibliothek wesentlichen Beziehung: F"ur die Ablage der Modellierungsobjekte im Repository gelten referentielle Integrit"atsbedingungen \cite{StPoms94}.

\begin{figure}[hbt]
  \begin{center}
    \ 
    \epsfig{figure=integr.eps,width=12cm}
  \end{center}
  \caption{\label{Fig:PDBeziehg} Integrit"atsbedingungen zwischen PDM-Typen}
\end{figure}

Die in der Abbildung~\ref{Fig:PDBeziehg} dargestellten Integrit"atsbedingungen zur Speicherung von Objekten im Repository haben einen gro"sen Einflu"s auf die im Abschnitt~\ref{Sec:Modellierg} vorgeschlagene Modularisierung der zu erstellenden Bibliothek auf der Tycoon-Ebene hinsichtlich ihrer Typisierung.

Beispielsweise kann ein {\tt cntx} Objekt nicht im Repository abgelegt werden, solange das referenzierte {\tt link} Objekt dort noch nicht vorhanden ist. In der Abbildung~\ref{Fig:PDBeziehg} zeigt ein Pfeil von einem abh"angigen Objekttypen auf einem unabh"angigen, dessen Existenz die Voraussetzung f"ur die Ablage des von diesem Objekttypen abh"angigen Objekts im Repository darstellt. 

Objektattribute, deren Name auf {\tt \_id} endet, verweisen also auf ein unabh"angiges Repositoryobjekt. Ein mit einem Stern ({\tt *}) gekennzeichnetes Attribut eines Repositoryobjekts, zum Beispiel {\tt annot\_file\_id*}, kann den Wert "`0"' annehmen, was bedeutet, da"s das {\sf Object Management System} bei der Speicherung dieses Objekts im Repository nicht auf der Existenz des von diesem Objekt unabh"angigen Objekttyps besteht.

\section{Anwendungssicht auf das StP Repository}
\label{Sec:Sicht}

Die Verbindung zwischen den Datentypen von Anwendunsprogrammen und denen des \engl{Persistent Data Models} wird mit Hilfe der "`Anwendungstypen"'-Datei {\tt app.types} realisiert. Die Anwendungssicht auf das {\sf StP Repository} ist in der Abbildung~\ref{Fig:AnwSicht} dargestellt \cite{StPoms94}.\\

\begin{figure}[hbt]
  \begin{center}
    \ 
    \epsfig{file=rep.eps,width=10cm}
  \end{center}
  \caption{\label{Fig:AnwSicht} Anwendungssicht auf das {\sf StP Repository}}
\end{figure}

In der momentanen DBIS-Installation von {\sf Software through Pictures} tr"agt die Abbildungsdatei die Bezeichnung {\tt omt.app.types}. Hierbei handelt es sich um eine um beliebige Anwendungsdatentypen erweiterbare Datei, welche die von Anwendungsprogrammen referenzierten Anwendungsdatentypen auf die vom {\sf StP Repository} verwendeten PDM-Datentypen abbildet \cite{StPoms94}.\\

\begin{figure}[hbt]
  \begin{center}
  \ 
  \epsfig{file=app.eps,width=13cm}
  \end{center}
  \caption{\label{Fig:appTyp} Abbildung von Anwendungsdatentypen auf PDM-Datentypen}
\end{figure}

In der Abbildung~\ref{Fig:appTyp} ist ein Ausschnitt der erweiterbaren Datei {\tt app.types} wiedergegeben, in dem einige Anwendungsdatentypen definiert sind (\engl{Application Types}), die auf einen \engl{Persistent CASE Object Type} (hier: {\tt NodeObject}) abgebildet werden. Dabei wird jedem Anwendungsdatentypen ein eindeutiger Wert vom Typ {\tt int} zugeordnet. Jeder \engl{Persistent CASE Object Type} ist ein g"ultiger PDM-Datentyp (hier: {\tt node}), dessen Attribute an jeden, auf diese Weise definierten Anwendungsdatentypen, vererbt werden.

Zus"atzlich zu den geerbten Eigenschaften kann ein Anwendungsdatentyp um zus"atzliche Attribute spezialisiert werden, was mit Hilfe einer sogenannten \engl{Annotation} Schablone geschieht (\engl{Annotation File}). Hierbei handelt es sich jeweils um eine, die neuen Attribute spezifizierende, Datei.

Eine  tiefergehende Erl"auterung der Abbildung jedes einzelnen Anwendungsdatentypen dieser Datei soll an dieser Stelle nicht erfolgen.

\clearemptydoublepage
