Kontrolliertes Englisch für Anforderungsspezifikationen
Kontrolliertes Englisch für Anforderungsspezifikationen
Kontrolliertes Englisch für Anforderungsspezifikationen
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
46 Kapitel 3<br />
InformalitŠt und FormalitŠt im Einklang 45<br />
3.1 Textuelle Sichten auf formale Spezifikationen<br />
Um die informellen und die formalen Aspekte beim Schreiben einer SAS in deklarativen<br />
Einklang zu bringen, fŸhren wir textuelle Sichten (Views) auf formale Spezifikationen<br />
in Logik ein. Textuelle Sichten erscheinen informell und werden direkt auf<br />
dem Computer in einer anwendungsspezifischen Benutzersprache B erstellt. Zwischen<br />
einer textuellen Sicht V und der entsprechenden formalen Spezifikation Spez<br />
besteht eine Korrespondenz. Die Korrespondenz kommt durch eine Abbildung der<br />
textuellen Sicht V auf die formale Spezifikation Spez mit Hilfe einer eindeutigen<br />
†bersetzungsfunktion f: V -> Spez zustande. Diese †bersetzungsfunktion weist der<br />
Sicht V die formale Semantik [[a]] M der aus der logischen Sprache L konstruierten<br />
Spezifikation Spez zu, und zwar relativ zu einem vorgegebenen Modell M. Die inverse<br />
Abbildung der formalen Spezifikation Spez auf die textuelle Sicht V entsteht durch die<br />
Umkehrfunktion f-1 , die die formale Spezifikation Spez in der anwendungsspezifischen<br />
Benutzersprache B paraphrasiert.<br />
3. InformalitŠt und FormalitŠt im Einklang<br />
Die Praxis zeigt, dass die Benutzer und Anwendungsspezialisten die faktischen Anforderungen<br />
an ein zu entwickelndes Softwareprodukt vorzugsweise informell beschreiben.<br />
Sie verwenden dazu die natŸrliche Sprache als Spezifikationssprache mit der aus<br />
dem Anwendungsbereich vertrauten fachsprachlichen Terminologie. Das fŸhrt zu<br />
zwei Nachteilen: Erstens ist die natŸrliche Sprache mehrdeutig und vage und zweitens<br />
ist die Fachterminologie fŸr die Softwareentwickler oft nur schwer zugŠnglich. Das hat<br />
zur Konsequenz, dass die Konzepte und die akzeptierten Verfahrensweisen aus dem<br />
Anwendungsbereich fŸr die Softwareentwickler nicht immer klar erkennbar sind.<br />
Die Softwareentwickler haben die schwierige Aufgabe die informelle Problembeschreibung<br />
in eine formale SAS zu ŸberfŸhren. Bei diesem †bergang werden die AusdrŸcke<br />
der natŸrlichen Sprache in eine formale (logikbasierte) Sprache Ÿbersetzt und<br />
modelltheoretisch interpretiert oder allenfalls beweistheoretisch hergeleitet [vgl. Kowalski<br />
94]. Das Resultat ist eine eindeutige formale SAS, die die SystemfunktionalitŠt<br />
in erster Linie aufgrund der intendierten Interpretation der Softwareentwickler festlegt<br />
und nicht aufgrund der Vorstellungen der Anwendungsspezialisten.<br />
Die Autoren der SAS schreiben ihre faktischen Anforderungen direkt auf der Sichtebene<br />
mit Hilfe eines Editors, der den Schreibprozess unterstŸtzt. Sie verwenden dazu<br />
eine wohldefinierte Teilmenge der natŸrlichen Sprache als Benutzersprache, die aus<br />
einem anwendungsspezifischen Vokabular, einer eingeschrŠnkten Grammatik und<br />
einer Menge von Schreibprinzipien besteht. Die Autoren entscheiden, welche AusdrŸcke<br />
der eingeschrŠnkten Sprache die Sachverhalte hinreichend exakt beschreiben<br />
und bauen das inhaltsbezogene Vokabular fŸr die SAS selber auf. Durch diese Vorgehensweise<br />
kann die Vagheit von AusdrŸcken mit Bezug auf die Situation und den<br />
Kontext abgefedert werden. Die Schreibprinzipien haben die Funktion von Kontrollstrukturen,<br />
denn sie reduzieren die Menge der lexikalischen, syntaktischen, semantischen<br />
und pragmatischen AmbiguitŠten der vollen natŸrlichen Sprache bereits vor<br />
der maschinellen Analyse, so dass die auf der Sichtebene erstellte SAS eindeutig in<br />
eine (ausfŸhrbare) logische Spezifikation Ÿbersetzt werden kann. Die Autoren brauchen<br />
die zugrundeliegende formale Sprache nicht zu kennen, sondern sie mŸssen<br />
bloss mit den Schreibprinzipien vertraut sein. Die automatische †bersetzung macht<br />
die scheinbar informelle textuelle Sicht formal, ohne dass die interne formale ReprŠsentation<br />
fŸr die Autoren sichtbar wird. Die Interpretation der textuellen Sicht wird<br />
durch eine Paraphrase auf der textuellen Ebene verdeutlicht. Zwei textuelle Sichten<br />
sind Paraphrasen voneinander, wenn sie in den verwendeten AusdrŸcken oder den<br />
syntaktischen Strukturen voneinander abweichen, aber dieselbe modelltheoretische<br />
Interpretationen haben. Paraphrasierung wird hier als ein syntaktisches Verfahren<br />
verstanden, bei dem das Ergebnis durch kontrollierte Ersetzung und Einsetzung von<br />
SASen sind Schnittstellen zwischen den faktischen Anforderungen aus dem Anwendungsbereich<br />
und dem prozeduralen Verhalten eines Computers. Wenn an dieser<br />
Schnittstelle bei der Formalisierung Fehler passieren oder bereits vorschnell Entwurfsentscheidungen<br />
getroffen werden und die Anwendungsspezialisten keine Mšglichkeit<br />
haben, das Dokument zu ŸberprŸfen und die Sachverhalte richtig zu stellen, weil<br />
sie mit der formalen Spezifikationsmethode nicht vertraut sind, dann wird der Computer<br />
die geforderte FunktionalitŠt im Anwendungsbereich nicht erbringen kšnnen.<br />
Unter welchen Rahmenbedingungen kann man eine formale Spezifikationssprache<br />
den Anwendungsspezialisten zugŠnglich machen? Auf der einen Seite mšchte man<br />
von den Eigenschaften einer formalen Spezifikationssprache profitieren, um die Validierung<br />
und die Verifikation maschinell unterstŸtzen zu kšnnen. Auf der anderen<br />
Seite muss man aber feststellen, dass formale Spezifikationssprachen fŸr Leute aus<br />
dem Anwendungsgebiet, die nicht Ÿber die nštigen mathematische Grundlagen verfŸgen,<br />
kaum zugŠnglich sind. Wir schlagen deshalb vor, dass man eine anwendungsspezifische<br />
Spezifikationssprache einfŸhrt, mit der die faktischen Anforderungen auf<br />
eine natŸrliche Weise eindeutig dargestellt werden kšnnen. Die Sprache soll informell<br />
erscheinen, aber die gleichen formalen und operationalen Eigenschaften wie eine<br />
logikbasierte Spezifikationssprache haben [vgl. Fuchs & Robertson 96].