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.
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.