Kontrolliertes Englisch für Anforderungsspezifikationen
Kontrolliertes Englisch für Anforderungsspezifikationen
Kontrolliertes Englisch für Anforderungsspezifikationen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2 Kapitel 1<br />
Einleitung 1<br />
1.2 Aufgabenstellung<br />
Ausgehend von einer Untersuchung der Begriffe Anforderung und Spezifikation sowie<br />
einem Vergleich zwischen natŸrlichen und formalen Spezifikationssprachen, soll anhand<br />
eines Spezifikationsbeispiels aus der Literatur (Bibliotheksproblem) illustriert<br />
werden, welche Probleme sich fŸr den Anwendungsspezialisten ergeben, wenn eine<br />
informelle Problembeschreibung in eine formale Anforderungsspezifikation ŸberfŸhrt<br />
wird. Um die konzeptionelle LŸcke, die bei der Verwendung von formalen Spezifikationssprachen<br />
zwischen den Anwendungsspezialisten und den Softwareentwicklern<br />
entsteht, zu ŸberbrŸcken, soll nach einer geeigneten Spezifikationssprache gesucht<br />
werden. Zu diesem Zweck soll abgeklŠrt werden, inwieweit kontrollierte natŸrliche<br />
Sprachen, die vor allem in der Industrie fŸr die bessere VerstŠndlichkeit und Verarbeitbarkeit<br />
von technischen Dokumenten entwickelt worden sind, als Modell fŸr eine<br />
anwendungsspezifische Spezifikationssprache dienen kšnnen. FŸr die Softwareentwicklung<br />
stellt sich dann die Frage, ob eine kontrollierte natŸrliche Sprache definiert<br />
werden kann, die erstens die gleichen Eigenschaften wie eine formale Spezifikationssprache<br />
hat, die zweitens nach computerlinguistischen Gesichtspunkten effizient verarbeitet<br />
werden kann und die drittens fŸr den Anwendungsspezialisten leicht erlernbar<br />
ist. Abschliessend soll die zu entwickelnde Spezifikationssprache am Bibliotheksproblem<br />
erprobt werden, so dass die Ergebnisse der Arbeit ŸberprŸfbar werden. Die<br />
englische Sprache ist als Ausgangspunkt gewŠhlt worden, weil die Problembeschreibung<br />
fŸr das Spezifikationsbeispiel bereits englischsprachig vorliegt und weil die relativ<br />
feste Wort- und Satzgliedstellung des <strong>Englisch</strong>en unsere Zielsetzung unterstŸtzen.<br />
1. Einleitung<br />
Somewhere between ridiculous pedantry and erroneous formulation there presumably<br />
exists a reasonably precise way of specifying a problem in English [Dodd 90:17].<br />
1.3 Resultate<br />
Mit Attempto Controlled English (ACE) wird eine kontrollierte natŸrliche Sprache als<br />
textuelle Sicht auf eine formale Spezifikation in Logik vorgeschlagen. Die Sprache ACE<br />
erlaubt es dem Anwendungsspezialisten, wahre und bedingte Sachverhalte in einer<br />
begriffsnahen Notation direkt und prŠzis zu beschreiben. ACE besteht aus einer wohldefinierten<br />
Teilmenge der englischen Sprache und wirkt deshalb informell und vertraut,<br />
obwohl die Sprache in ihrem Kern formal ist. ACE kann eindeutig in DiskursreprŠsentationstheorie<br />
(d.i. eine strukturierte Form der PrŠdikatenlogik) Ÿbersetzt<br />
werden. Um den nštigen Grad an PrŠzision zu erreichen, verwendet der Anwendungsspezialist<br />
beim Schreiben der Spezifikation einen einfachen abstrakten Satzbauplan<br />
als mnemotechnisches Hilfsmittel und eine Reihe von Konnektoren (d.h. Koordinatoren<br />
und Subordinatoren), mit denen er aus einfachen ACE SŠtzen zusammengesetzte<br />
ACE SŠtze bilden kann. Die Sprache ACE basiert auf einer leicht merkbaren<br />
1.1 Problembeschreibung<br />
Der Werkstoff fŸr die Entwicklung von Softwareprodukten sind Sprachen. In der<br />
Regel werden Sprachen mit ganz unterschiedlichen Eigenschaften dazu verwendet,<br />
Anforderungen zu klŠren, Anforderungen zu spezifizieren und Programme zu schreiben.<br />
Die natŸrliche Sprache bildet den Ausgangspunkt fŸr die Softwareentwicklung.<br />
Sie dient einerseits im gesamten Entwicklungsprozess als Kommunikationsmittel zwischen<br />
den Beteiligten (= Systembenutzern, Anwendungsspezialisten und Softwareentwicklern)<br />
und andererseits als Werkstoff, durch den die wahrgenommenen PhŠnomene<br />
aus einem Anwendungsbereich in den ganz frŸhen Phasen der Entwicklung<br />
ausgedrŸckt, beurteilt und zueinander in Beziehung gesetzt werden. NatŸrliche Sprache<br />
ist ein praktischer Werkstoff, um unsichere Sachverhalte versuchsweise zu skizzieren.<br />
Aufgrund ihrer inhŠrenten Mehrdeutigkeit und Vagheit erweist sich die natŸrliche<br />
Sprache aber als ungeeignet, wenn es darum geht, gesicherte Sachverhalte eindeutig<br />
und prŠzis in einer Anforderungsspezifikation niederzuschreiben. Da das Endprodukt<br />
der Entwicklung immer ein formales Computerprogramm ist, das eine Maschine<br />
mit genau definiertem Verhalten und spezifischen Eigenschaften beschreibt,<br />
sind fŸr den nahtlosen †bergang von der Spezifikation zum Programm bereits fŸr das<br />
Schreiben von <strong>Anforderungsspezifikationen</strong> formale Sprachen vorgeschlagen worden.<br />
Formale Sprachen haben eine eindeutige Syntax, eine prŠzise Semantik und sind<br />
oft zusammen mit einer Beweistheorie definiert. Diese Eigenschaften bilden die<br />
Grundlage fŸr ausfŸhrbare Spezifikationen und fŸr die automatische Verifikation von<br />
Programmen. Formale Sprachen werden von den Softwareentwicklern als Werkstoff<br />
bevorzugt. FŸr die meisten Systembenutzer und Anwendungsspezialisten sind formale<br />
Sprachen jedoch nicht verstŠndlich. Die Lesbarkeit einer Anforderungsspezifikation<br />
ist aber ein ganz entscheidendes Kriterium fŸr die AdŠquatheitsprŸfung (=<br />
Validierung) der einzelnen Anforderungen. Sobald ein Softwareentwickler die informellen<br />
Anforderungen interpretiert und in eine formale Anforderungsspezifikation<br />
ŸberfŸhrt hat, ist das Dokument fŸr die Systembenutzer und Anwendungsspezialisten<br />
normalerweise nicht mehr zugŠnglich. Es ist fŸr diese Beteiligten nicht mehr ŸberprŸfbar,<br />
ob die Anforderungsspezifikation die relevanten Sachverhalte korrekt, ein-<br />
deutig und vollstŠndig beschreibt.