% ------------------------------------------------------------------ % % % % Datei: einleitu.tex % % Autor: Oliver Nietsch % % % % Universitaet Hamburg % % Fachbereich Informatik % % Arbeitsbereich DBIS % % % % Thema: Diplomarbeit: Die Modellierung und Validierung dynamischen % % Systemverhaltens am Beispiel von StP/OMT % % und Tycoon % % % % Inhalt: LaTeX-Dokument: Diplomarbeit, % % Kapitel 1: Einleitung % % % % Version vom 10. 2.1997 % % ------------------------------------------------------------------ % \chapter{Einleitung} \label{Chap:Einleitung} ... \section{Motivation} \label{Sec:Motiv} Die kommerzielle Entwicklung von Softwaresystemen ist dadurch gekennzeichnet, da"s gro"se Entwicklungsprojekte mit einer Vielzahl von Mitarbeitern ohne eine der Softwareerstellung zugrundeliegende Entwicklungsmethode und ohne die Unterst"utzung durch computerbasierte Entwicklungswerkzeuge kaum noch durchzuf"uhren bzw. zu handhaben sind \cite{sommer96}. Steigende Produktivit"atsanforderungen an die Systementwicklung bei einer zunehmenden Kostensensibilit"at auf der Seite der Auftraggeber und die Nachfrage nach immer leistungsf"ahigeren Anwendungssystemen k"onnen nur durch stetige Verbesserungen des Systementwicklungsprozesses und seiner optimalen Werkzeug- und Methodenunterst"utzung befriedigt werden. Desweiteren soll eine steigende Produktkomplexit"at innerhalb verk"urzter Entwicklungszeitr"aume bei wachsenden Qualit"atsanforderungen gehandhabt werden.\\ \begin{figure}[hbt] \begin{center} \ \epsfig{figure=determ.eps,width=12cm} \end{center} \caption{\label{Fig:Determ} Produktivit"atsdeterminanten eines Softwareentwicklungsprojekts} \end{figure} Vor diesem Hintergrund kommt der Gestaltung des operationalen Teils eines Anwendungsentwicklungsprojekts eine wichtige Funktion zu, um die in der Abbildung~\ref{Fig:Determ} dargestellten Produktivit"atsanforderungen an den Softwareentwicklungsproze"s erf"ullen zu k"onnen. Diesen Anforderungen versucht man innerhalb des \engl{Computer Aided Software Engineering} (CASE) durch den Einsatz geeigneter Softwarewerkzeuge nachzukommen \cite{balzert93}. Dabei werden diese Werkzeuge sowohl zur Unterst"utzung der einzelnen produktiven Aktivit"aten innerhalb des Softwareentwicklungsprozesses als auch bei der Handhabung des Entwicklungsprozesses selbst (Proze"smanagement) eingesetzt. Im Bereich des Entwurfs reaktiver (ereignisorientierter) Systeme ist vor allem die Modellierung des dynamischen Verhaltens von gro"ser Bedeutung. Deshalb stellt die Validierung der Proze"sspezifikation zur Analyse des Systemverhaltens einen wesentlichen Meilenstein innerhalb der Modellbildung dar. Die spezifizierte Steuerungslogik eines Systems kann ausgehend vom dynamischen Systemmodell getestet, simuliert und bei Bedarf ohne gro"sen Aufwand ge"andert werden. Solch eine Komponente zur Analyse des durch die Diagrammsemantik wiedergegebenen Systemverhaltens kann in die dem Softwareentwicklungsproze"s zugrundeliegende Entwurfsmethode integriert werden. Somit gilt die Validierung des dynamischen Systemverhaltens als Erg"anzung zur statischen und dynamischen Modellierung von Anwendungssystemen innerhalb der Spezifikationsphase von Softwaresystemen. Auf diese Weise sollen kostenintensive Konzept"anderungen oder Fehlerbehebungen in sp"ateren Projektphasen umgangen werden, um die Effizienzanforderungen eines Entwicklungsprojekts zu erf"ullen \cite{leveson94}. \section{Problemstellung} \label{Sec:Problem} Den Ausgangspunkt dieser Arbeit bildet die CASE-Umgebung {\olisf Software through Pictures (StP)} der Firma {\olisf Interactive Development Environments (IDE)}, auf deren Basis die implementierte objektorientierte Softwareentwicklungsmethode {\olisf Object Modeling Technique (OMT)} \cite{rumb91} unter anderem eine werkzeugspezifische Notation zur grafischen Modellierung von dynamischem Systemverhalten dem Anwendungsentwickler bereitstellt. Bei dieser Notation handelt es sich um eine \engl{Statechart} "ahnliche Darstellung \cite{harel87} von Zust"anden und Zustands"uberg"angen zur Proze"sbeschreibung innerhalb von Objektklassen eines ereignisgesteuerten Systems. Diese Zustandsautomaten dienen dem Anwendungsentwickler im Rahmen der Modellierung des Systemverhaltens als eine Erg"anzung zu Modellierungsmethoden des statischen Systemaufbaus wie z.B. \engl{Entity Relationship} Modelle oder Objektdiagramme. Neben der Modellierung des zeitabh"angigen Verhaltens der Objektklassen eines Systems im eigentlichen dynamischen {\olisf OMT} Modell gibt es ein weiteres Spezifikationsmodell im Kontext mit dem Proze"smodell: Sogenannte Ereignisflu"sdiagramme (\engl {Event Trace Diagrams}) werden auf Basis der Analyse von Ereignisszenarios (Folgen von Ereignissen) erstellt, um alle auftretenden Ereignisse an Zustands"uberg"angen zwischen Objektklassen zusammenzufassen, ohne dabei eine Reihenfolge des Auftretens der Ereignisse zu repr"asentieren. Szenarios in der Form von Ereignispfaden stellen in diesem Zusammenhang den Kontrollflu"s innerhalb des modellierten Systems dar. Die persistente Ablage der Modellierungsobjekte der grafischen Repr"asentation der Proze"sspezifikation und der Ereignisflu"sdiagramme erfolgt im {\olisf StP Repository}. Vor der eigentlichen Speicherung der Modellierungsdaten in der Entwicklungsdatenbank erfolgt eine Auswertung dieser Daten, um Konsistenzverletzungen oder Verst"o"se gegen die Diagrammsyntax zu erkennen. In der Entwicklungsumgebung ist kein Werkzeug vorhanden, das zum Zweck der Entwurfsvalidierung das dynamische Modell oder das Ereignisflu"sdiagramm separat oder beide in Abh"angigkeit voneinander simuliert und animiert und die Analyseergebnisse f"ur eine weitere Verarbeitung sammelt und in ad"aquater Form protokolliert und ausgibt. Eine Voraussetzung f"ur die Realisierung solch einer Validierungskomponenten ist die M"oglichkeit zur "Ubernahme und Transformation der gesamten mit den {\olisf StP/OMT} Grafik- und Tabelleneditoren des dynamischen {\olisf OMT} Modells entwickelten und in der relationalen Entwicklungsdatenbank abgelegten Modellierungsobjekte auf die Sprachsyntax der verwendeten Zielprogrammierumgebung. Der Entwicklungsdatenbankzugriff als Grundlage dieser Arbeit ist in \cite{nietsch96} realisiert. Um flexibel, problemad"aquat und zuverl"assig auf die hohe Anzahl der von den CASE-Werkzeugen angelegten persistenten Modellierungsobjekte im {\olisf StP Repository} zugreifen zu k"onnen, ist eine geeignete Klasse von Softwaresystemen erforderlich. Zur Entwicklung solcher Systeme, der sogenannten persistenten Objektsysteme \cite{matthes92}, bietet das Tycoon\footnote{Tycoon: Typed Communicating Objects in open Environments}-System als integrierte Programmierumgebung am Arbeitsbereich DBIS\footnote{DBIS: Datenbanken und Informationssysteme} der Universit"at Hamburg einen geeigneten sprachlichen und architektonischen Rahmen, der unter anderem Konzepte der Erweiterbarkeit, Offenheit, Modularit"at, Nebenl"aufigkeit, Persistenz, Typisierung und Polymorphie ber"ucksichtigt. Nutzen erbringen diese Eigenschaften des Tycoon-Systems bei der Transformation der grafischen Repr"asentation der {\olisf StP/OMT} Objekte eines dynamischen Systemmodells oder eines in Beziehung dazu stehenden Ereignisflu"sdiagramms in eine ad"aquate und ausf"uhrbare TL\footnote{TL: Tycoon Language}-Repr"asentation. Darauf aufbauend werden auf der Tycoon-Ebene die Operationen f"ur die szenariobasierte Validierung der Proze"sspezifikation realisiert. Die Validierungsergebnisse werden zu weiteren Analysezwecken gesammelt, protokolliert oder ausgegeben. Desweiteren k"onnen auf der Basis von Ereignisszenarios auf der Tycoon-Ebene ad"aquate Repr"asentationen von {\olisf StP/OMT} Ereignisflu"sdiagrammen generiert werden, welche "uber das {\olisf StP} Repository auf der {\olisf StP} Ebene wieder in die Spezifikationsphase des Softwareerstellungsprozesses rekursiv eingebracht werden k"onnen. Als Resultat der Arbeit entsteht eine generische Tycoon-Validierungsbibliothek, welche die im Kapitel~\ref{Chap:Harel} dargestellte \engl{Statechart} Syntax und Semantik umfa"st. Desweiteren wird diese Bibliothek an die {\olisf StP/OMT} Infrastruktur zur Erstellung des dynamischen {\olisf OMT} Modells angebunden, so da"s eine Modellvalidierung im Rahmen der {\olisf StP/OMT} Proze"sspezifikation eines ereignisgesteuerten Systems m"oglich wird. Desweiteren k"onnen externe Dienste sowohl ereignisausl"osend als auch ereignisaufnehmend an die entwickelte Modellierungs- und Validierungsumgebung auf der Tycoon-Seite angebunden werden. \section{Struktur der Arbeit} \label{Sec:Struktur} Dieser Einleitung anschlie"send folgt im Kapitel~\ref{Chap:WerkSystem} ein "Uberblick "uber werkzeugorientierte Systementwicklung unter besonderer Ber"ucksichtigung der CASE-Umgebung {\olisf Software through Pictures}. Neben Anforderungen an eine computergest"utzte Anwendungsentwicklung und Aspekten der Werkzeugintegration innerhalb einer CASE-Umgebung werden die Basisdienste des {\olisf StP} Kerns und die {\olisf StP} Architekturmerkmale dargestellt. Desweiteren wird das {\olisf StP Repository} mit der Zielsetzung untersucht, Details "uber das der Entwicklungsdatenbank zugrundeliegende Datenmodell und die Anwendungssicht auf die Entwicklungsdatenbank, also die Abbildung der Modellierungsobjekte auf das {\olisf StP Repository} wiederzugeben. Prinzipien des objektorientierten Modellierens und Entwerfens werden speziell anhand der implementierten Methode {\olisf OMT} dargestellt. Ein Hauptaugenmerk wird hierbei auf die Bereiche der Modellierung und Analyse dynamischer Systemaspekte gelegt. Im Kapitel~\ref{Chap:Anbindung} wird die Anbindung des Tycoon-Systems an die {\olisf StP} Umgebung betrachtet. Dabei wird das Tycoon-System als eine in das {\olisf StP} Produktumfeld integrierbare Entwicklungsumgebung dargestellt. Exemplarisch wird die in dieser Arbeit verwendete Tycoon-Bibliothek f"ur die Realisierung des Repositoryzugriffs dargestellt, welche die grundlegenden Operationen f"ur die Entwicklung der TL-Validierungskomponente zur Verf"ugung stellt. Neben der innerhalb von {\olisf StP/OMT} verwendeten \engl{Statechart} "ahnlichen grafischen Notation zur Proze"sspezifikation ereignisgesteuerter Systeme gibt es f"ur die Modellierung des dynamischen Systemverhaltens noch andere Darstellungsm"oglichkeiten wie z.B. Petri-Netze, Sprachen oder endliche Automaten. Zwischen solchen ad"aquaten Modellierungsm"oglichkeiten und den dieser Arbeit zugrundeliegenden \engl{Statecharts} sollen die vorhandenen Zusammenh"ange oder Unterschiede im Kapitel~\ref{Chap:Spez} untersucht und bewertet werden. Im Kapitel~\ref{Chap:Harel} werden \engl{Statecharts} und ihre Funktion bei der Modellierung von ereignisgesteuerten Systemen detailliert dargestellt. Dabei werden ihre Aufgaben und Umfang ihrer Elemente allgemein und speziell im {\olisf StP/OMT} Umfeld betrachtet und erl"autert. Konzepte ihrer grafischen Notation werden vorgestellt. Abweichungen ihrer Notation innerhalb von {\olisf StP/OMT} werden untersucht und begr"undet. Kapitel~\ref{Chap:Validierung} stellt Validierungsaspekte bei der Modellierung von dynamischem Systemverhalten dar und zeigt, wie sie bei der Implementierung der TL-Validierungskomponenten ber"ucksichtigt werden. Anschlie"send erfolgt die Integration in das {\olisf StP} Umfeld. Abschlie"send wird im Kapitel~\ref{Chap:Bewertung} eine Bewertung der entwickelten Bibliothek vorgenommen und hinsichtlich unterschiedlicher Kriterien bewertet. Als Ausblick ergibt sich im Kapitel~\ref{Chap:Zusammen} die Fragestellung, ob eine Einbindung der entwickelten Validierungskomponente in den Entwicklungsproze"s erfolgen kann, um daraus eine Methode zur Implementierung des Systementwurfs abzuleiten, d.h. durch Erg"anzung des dynamischen Modells anstatt wie im Moment innerhalb von StP/OMT vorgesehen durch Erg"anzung des statischen Modells und ob eventuell eine Erweiterung auf die Simulation, Animation und Implementierung von Workflow-Modellen m"oglich ist. Momentan ist allerdings noch keine Integration von Workflow-Modellen in die CASE-Umgebung StP realisiert. \clearemptydoublepage