% ------------------------------------------------------------------ %
%                                                                    %
% Datei:        case.tex                                             %
% Autor:        Oliver Nietsch                                       %
%                                                                    %
% Universitaet Hamburg                                               %
% Fachbereich Informatik                                             %
% Arbeitsbereich DBIS                                                %
%                                                                    %
% Thema: Studienarbeit: "Gateway zwischen dem StP-Repository         %
%                        und Tycoon"                                 %
%                                                                    %
% Inhalt: LaTeX-Dokument: Studienarbeit,                             %
%                         Kapitel 2: Die CASE-Umgebung Software      %
%                                    through Pictures (StP)          %
%                                                                    %
% Version vom  19. 3.1996                                            %
% ------------------------------------------------------------------ %

\chapter{Die CASE-Umgebung Software through Pictures (StP)}
\label{Chap:CASE}

Werkzeuge des \engl{Computer Aided Software Engineering} sollen, neben den im Kapitel~\ref{Chap:Einl} erw"ahnten Verbesserungen, zu einer Optimierung des Prozesses der Softwareentwicklung f"uhren, um somit unter anderem die Transparenz und Kommunikation innerhalb der Produktentwicklung zu erh"ohen. Dabei hat sich die Bedeutung des Begriffs der computerunterst"utzten Softwareentwicklung im Verlauf der vergangenen Jahre ver"andert. Verstand man fr"uher unter automatisierter Unterst"utzung isolierte Softwarewerkzeuge, so ist es heute eine integrierte Anzahl von Werkzeugen, mit denen alle Phasen des Softwarelebenszyklus umgesetzt werden k"onnen. 

{\sf Software through Pictures (StP)} der Firma {\sf Interactive Development Environments (IDE)} entspricht diesem Ansatz integrierter CASE-Umgebungen. Bei {\sf StP} handelt es sich um eine Familie integrierter Mehrbenutzer CASE-Umgebungen zur Entwicklung neuer und zum \engl{Re-Engineering} bestehender Systeme.

Jedes {\sf StP} Produkt beinhaltet eine Familie integrierter Werkzeuge, zum Beispiel, wie in der Abbildung~\ref{Fig:Architektur} skizziert, grafische Editoren f"ur die Systemmodellierung, Systeme zur Dokumenterstellung, Schnittstellen zu Versionskontrollsystemen etc., wobei die Grafikeditoren anerkannte Methoden der Softwareentwicklung unterst"utzen. Desweiteren benutzen alle {\sf StP} Produkte eine gemeinsame Entwicklungsdatenbank, das im Kapitel~\ref{Chap:Repos} erl"auterte {\sf StP Repository}.

\section{Anforderungen an eine computerunterst"utzte Anwendungsentwicklung}
\label{Sec:Anford}

Grundlage einer automatisierten Anwendungsentwicklung ist nicht allein die Leistungsf"ahigkeit der einzelnen CASE-Werkzeuge. Vielmehr m"ussen die eingesetzten Werkzeuge im Kontext mit der ihnen zugrundeliegenden CASE-Umgebung betrachtet werden. Dabei lassen sich die Anforderungen je nach Kategorie der eingesetzten Computerunterst"utzung trennen. Nach allgemeinen Anforderungen, die an eine CASE-Umgebung gestellt werden, und solchen, die von den einzelnen Werkzeugen dieser Umgebung zu erf"ullen sind \cite{balzert93}. F"ur diese Arbeit relevante Anforderungen umfassen:\\

{\bf {\sf Basisanforderungen an die CASE-Umgebung:}}

\begin{itemize}
  \item Integrierte Datenhaltung aller Datenbasen jedes separaten CASE-Werkzeugs zur Bildung von Werkzeugketten
  \item Erweiterbarkeit um weitere Werkzeuge
  \item Offenheit und Transparenz bez"uglich der Export- und Importschnittstellen
  \item Multi- und Interprojekt-F"ahigkeit
  \item Portabilit"at (wegen Langlebigkeit und hoher Investitionskosten)
\end{itemize}

{\bf {\sf Anforderungen an einzelne CASE-Werkzeuge:}}

\begin{itemize}
  \item Export- und Importschnittstellen zur Kommunikation mit anderen Werkzeugen oder der CASE-Umgebung
  \item Integrierbarkeit in die CASE-Umgebung
\end{itemize}

Neben diesen technisch bedingten Anforderungen m"ussen die eingesetzten Werkzeuge nat"urlich auf die der CASE-Umgebung zugrundeliegende Methode der Anwendungsentwicklung abgestimmt sein, um "uberhaupt eine durchg"angige Werkzeugkette "uber alle Phasen des Softwareerstellungsprozesses gew"ahrleisten zu k"onnen.

\section{Werkzeugintegration}
\label{Sec:Werkzeug}

Eine effektive Unterst"utzung des Anwendungsentwicklungsprozesses kann erfolgen, indem s"amtliche verwendeten separaten Werkzeuge in einer integralen Art miteinander verkn"upft werden, so da"s ihre Kombination ein einziges, gro"ses Gesamtwerkzeug, n"amlich die komplette Entwicklungsumgebung, ergibt. Die Integrationsbeziehungen zwischen den einzelnen Werkzeugen beziehen sich auf die Pr"asentation der Mensch-Werkzeug-Schnittstelle (\engl{Presentation Integration}), die von allen Werkzeugen verwendeten Daten (\engl{Data Integration}), den Kontrollflu"s zwischen den Werkzeugen innerhalb des Entwicklungsprozesses (\engl{Control Integration}) und den Proze"s des effektiven Einsetzens der Werkzeuge selbst (\engl{Process Integration}) \cite{thomas92}. Die Integration aller Werkzeuge einer verteilten Anwendungsentwicklungsumgebung findet ihre Ber"ucksichtigung in der Plattformintegration.\\

\begin{figure}[hbt]
  \begin{center}
    \ 
    \epsfig{figure=env.eps,width=12cm}
  \end{center}
  \caption{\label{Fig:Integra} Integrierte CASE-Umgebung}
\end{figure}

In der Abbildung~\ref{Fig:Integra} sind die erw"ahnten Integrationsbeziehungen zwischen Werkzeugen einer computerunterst"utzten, verteilten Entwicklungsumgebung dargestellt \cite{StPpc93}. Wichtig ist hierbei, da"s die Integration aller Werkzeuge im Rahmen der Datenintegration "uber das Repository erfolgt. Auf die Entwicklungsdatenbank greifen sowohl die den Entwicklungsproze"s in den jeweiligen Phasen unterst"utzenden Werkzeuge ({\engl{Vertical Tools}), als auch die phasen"ubergreifenden Werkzeuge (\engl{Horizontal Tools}) zu.

{\sf Software through Pictures} Umgebungen realisieren eine offene Architektur, da die Werkzeugkommunikation "uber die Entwicklungsdatenbank unter Ber"ucksichtigung von Netzwerk-, Druck- und Benutzeroberfl"achenstandards erfolgt. Die offene Architektur erm"oglicht eine Erweiterung oder Individualisierung der {\sf StP} Umgebung.

\section{Basisdienste des StP Kerns}
\label{Sec:Kern}

Alle Produkte der {\sf StP} Familie sind oberhalb eines methodenunabh"angigen Kerns angesiedelt. Dieser leistet die im Abschnitt~\ref{Sec:Anford} geforderten, grundlegenden Dienste der integrierten {\sf StP} Entwicklungsumgebung, auf welche die jeweiligen CASE-Werkzeuge zugreifen. In unterschiedliche Kategorien zusammengefa"st, handelt es sich konkret bei diesen Diensten um das Desktopmanagement, die Proze"smodellierung, die Versionskontrolle und das Konfigurationsmanagement, die Mehrbenutzerkoordination, die Systemindividualisierung und Erweiterbarkeit sowie die optimale Visualisierung komplexer Diagramme.

F"ur die Realisierung dieser Arbeit sind drei weitere Dienste des {\sf StP} Kerns n"aher zu betrachten:

\begin{description}
  \item[Objektmanagement:] Das {\sf StP Object Management System (OMS)} implementiert das Informationsmodell (\engl{Persistent Data Model}), nach dem die werkzeugunabh"angige Ablage der Modellierungsdaten im Repository erfolgt. Au"serdem stellt es den Zugriff auf das {\sf StP Repository} durch eine Menge von Funktionen zur Verf"ugung. Somit definiert das {\sf OMS} die Schnittstelle zwischen Werkzeugen der {\sf StP} Umgebung und dem Repository. Eine werkzeugunabh"angige Interaktion zwischen einem Anwendungsentwickler und dem {\sf OMS} kann mit Hilfe der im Kapitel~\ref{Chap:Zugriff} dargestellten {\sf StP Query and Reporting Language} oder dem {\sf StP Application Program Interface} erfolgen.
  \item[Repositoryverwaltung:] Die Verwaltung des Repositorys erfolgt auf der Grunglage des relationalen Datenbankverwaltungssystems {\sf Sybase} in einer heterogenen \engl{Client-Server} Umgebung. Der Zugriff auf die Datenbankverwaltung wird direkt vom {\sf OMS} umgesetzt, ohne dabei einen n"aheren Einblick in das zugrundeliegende relationale Datenbankmodell zu gew"ahren. Mit Hilfe von {\sf Sybase SQL} oder "ahnlicher {\sf StP} unabh"angiger Datenbankwerkzeuge kann der Zugriff auf die Repositoryobjekte auch unter Umgehung des {\sf StP Object Management Systems} realisiert werden. Diese M"oglichkeit des Zugriffs auf die Entwicklungsdatenbank ist jedoch kein Untersuchungspunkt dieser Arbeit.
  \item[G"ultigkeitspr"ufung:] {\sf StP} Umgebungen bieten im Zusammenhang mit der Repositoryverwaltung noch einen weiteren Dienst zur Erzielung von Konsistenz innerhalb des Entwicklungsprozesses. Beim Speichern erstellter Modellierungsobjekte im Repository werden diese auf semantische und syntaktische Korrektheit "uberpr"uft. Sind Integrit"atsbedingungen im Rahmen des \engl{Persistent Data Models} mi"sachtet oder ist eine Abbildung eines Anwendungsdatentyps auf einen PDM-Datentyp nicht m"oglich, so kann das betreffende Objekt nicht im Repository abgelegt werden.
\end{description}

\section{Architekturmerkmale}
\label{Sec:Architekt}

Zur Unterst"utzung der Anwendungsentwicklung bieten alle Produkte der {\sf StP} Familie, wie in der Abbildung~\ref{Fig:Architektur} angedeutet, eine Menge grafischer Werkzeuge, welche die Entwicklungskonzepte in allen Phasen des Softwarelebenszyklus unterst"utzen \cite{klees94}.

\begin{figure}[hbt]
  \begin{center}
    \ 
    \epsfig{figure=omtarch2.eps,width=12cm}
  \end{center}
  \caption{\label{Fig:Architektur} {\sf StP/OMT} Architektur}
\end{figure}

Diese speziellen grafischen Werkzeuge sind wie sonstige allgemeine oberhalb eines me\-tho\-den\-un\-ab\-h"angigen Kerns, bestehend aus dem {\sf StP Object Management System}, Systemdateien und dem {\sf StP Repository}, und unterhalb des {\sf StP} Desktops angeordnet.

Die Abbildung~\ref{Fig:Architektur} zeigt den schematischen Aufbau einer {\sf StP} CASE-Umgebung am Beispiel von {\sf StP/OMT}, wobei die wei"s unterlegten Komponenten bei einer anderen CASE-Umgebung der {\sf StP} Produktfamilie durch methodenad"aquate Komponenten auszutauschen sind. Die grau unterlegten Grundkomponenten der {\sf StP} Umgebung stellen die Voraussetzung f"ur die Integration der {\sf StP} Werkzeuge dar.

Die Anbindung des Tycoon-Systems erfolgt unterhalb des {\sf StP} Desktops und oberhalb des {\sf StP} Kerns, also parallel zu den anderen installierten CASE-Werkzeugen.

\clearemptydoublepage
