07.10.2013 Aufrufe

Kontrolliertes Englisch für Anforderungsspezifikationen

Kontrolliertes Englisch für Anforderungsspezifikationen

Kontrolliertes Englisch für Anforderungsspezifikationen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

30 Kapitel 2<br />

Anforderungen und SpeziÞkationen 29<br />

2.5 Ein Spezifikationsbeispiel<br />

2.5.1 Das Bibliotheksproblem<br />

Das Bibliotheksproblem (engl. library problem) ist eine von vier Problembeschreibungen,<br />

die die Organisatoren des Fourth International Workshop on Software Specification<br />

and Design im Publikationsaufruf als Ausgangspunkt fŸr die BeitrŠge vorgelegt<br />

hatten [Marca 87, vgl. Kemmerer 85].<br />

Library Problem<br />

Petri-Netze [Peterson 81], Statecharts [Harel 87], logische Programmiersprachen<br />

[Lloyd 94] anstelle von voller natŸrlicher Sprache die PrŠzision der Anforderungsspezifikation<br />

erhšht und Mehrdeutigkeit ausschliesst, geht das fast immer zu Lasten der<br />

guten Lesbarkeit. Das Schreiben und Lesen von formalen Spezifikationen erfordert<br />

Kenntnisse der mathematischen Grundlagen (diskrete Mathematik, Logik), mit denen<br />

viele Anwendungsspezialisten nicht vertraut sind. Die Anwendungsspezialisten kšnnen<br />

deshalb eine formale SAS, nicht unmittelbar durch Reviews validieren, um festzustellen,<br />

inwieweit die formalisierten Anforderungen ihr VerstŠndnis der Sachverhalte<br />

wiedergibt. Hinzu kommt, dass formale SASen oftmals durch bereichsfremde Softwareentwickler<br />

geschrieben werden, die nicht das gleiche Sachwissen wie die Anwendungsspezialisten<br />

haben. Falls eine SAS unvollstŠndig ist, sind die Softwareentwickler<br />

gezwungen, Annahmen Ÿber das intendierte Systemverhalten zu treffen. Das kann zu<br />

MissverstŠndnissen und fehlerhaften Spezifikationen fŸhren. Da formale Spezifikationen<br />

bloss Abbildungen der wirklichen Welt sind, kšnnen sie natŸrlich auch Sachverhalte<br />

falsch beschreiben, was zu unzulŠssigen Schlussfolgerungen fŸhrt. Selbst<br />

wenn die formale Spezifikation korrekt ist, kann die verwendete Beweisprozedur<br />

Consider a small library database with the following transactions:<br />

1. Check out a copy of a book / Return a copy of a book.<br />

2. Add a copy of a book to / Remove a copy of a book from the library.<br />

3. Get the list of books by a particular author or in a particular subject area.<br />

4. Find out the list of books currently checked out by a particular borrower.<br />

5. Find out what borrower last checked out a particular copy of a book.<br />

.<br />

There are two types of users: staff users and ordinary borrowers. Transactions<br />

fehlerhaft sein.<br />

1, 2, 4 and 5 are restricted to staff users, except that ordinary borrowers can<br />

The real world is not a formal system. A proof, therefore, does not show that, in the real<br />

world, things will happen as you expect. So you can never be sure that your specifications<br />

perform transaction 4 to find out the list of books currently borrowed by<br />

are "correct", however much you prove about them [Hall 90:12].<br />

themselves. The data base must also satisfy the following constraints:<br />

¥ All copies in the library must be available for checkout or be checked out.<br />

¥ No copy of the book may be both available and checked out at the same time.<br />

¥ A borrower may not have more than a predefined number of books checked<br />

out at one time.<br />

Im Workshop-Band sind zwšlf BeitrŠge veršffentlicht worden, die das Bibliotheksproblem<br />

aus unterschiedlichen Blickwinkeln angegangen sind. Die BeitrŠge decken<br />

einen breiten Themenbereich ab und fokussieren verschiedene Aspekte im Software-<br />

Entwicklungsprozess. HauptsŠchlich ging es den Autoren darum, die in ihrer Forschungsarbeit<br />

verfolgten Spezifikationsmethoden und entwickelten Spezifikationssprachen<br />

(fragmentarisch) auf das Bibliotheksproblem anzuwenden. Zusammengenommen<br />

liefern die BeitrŠge eine Fundgrube von Ungenauigkeiten, auf die die<br />

Autoren beim Versuch gestossen sind, die informelle Problemspezifikation mit ihren<br />

eigenen Methoden zu verfeinern und in eine detailliertere informelle Spezifikation<br />

Ausserdem ist es sehr schwierig, eine formale Spezifikation von informellen Anforderungen<br />

abzuleiten, weil der Ableitungsprozess selber weder formalisierbar noch<br />

formal validierbar ist [Hoare 87:372]. Unverhofft kommt die natŸrliche Sprache wieder<br />

zur HintertŸr herein, wenn es darum geht, die formale Spezifikation in natŸrlicher<br />

Sprache zu paraphrasieren, um dem Anwendungsspezialisten verstŠndlich zu machen,<br />

what the specification means in real-world terms and why the specification says what it<br />

does [Hall 90:18]. Um die nštige Akzeptanz bei den Anwendungsspezialisten zu erreichen<br />

und den Zugang zu formalen Spezifikationen zu erleichtern, empfiehlt die Z<br />

Schule, formale Spezifikationen massiv mit natŸrlich-sprachlichen Kommentaren<br />

anzureichern [Clarke & Wing 96:14]. Dabei machen sich die Autoren aber keinerlei<br />

Gedanken Ÿber die Interdependenzen zwischen informellen Kommentaren und formalem<br />

Spezifikationstext.<br />

Die EinfŸhrung von formalen Sprachen fŸhrt zu enormen Schwierigkeiten, wenn es<br />

nicht gelingt, adŠquate Darstellungen zu finden, die auch fŸr den Anwendungsspe-<br />

zialisten in eindeutiger Weise verstŠndlich sind.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!