Читать книгу API-Design - Kai Spichale - Страница 40
3.4Wenn Use Cases nicht ausreichen
ОглавлениеUse Cases sind eine etablierte Technik zur Ausarbeitung von Benutzeranforderungen. Use Cases dokumentieren die Vereinbarungen zwischen den Beteiligten eines Projektes über das Verhalten des geplanten Systems. Das Verhalten des Systems ist die Reaktion auf das Handeln eines Hauptakteurs, der ein bestimmtes Ziel verfolgt. Für jeden Use Case werden deswegen Szenarien für die Verwendung des Systems entwickelt. Ein Use Case ist relativ abstrakt und fasst mehrere Szenarien, die dieselben Ziele betreffen, zusammen.
Man kann Use Cases formlos schreiben, häufig werden auch Templates verwendet. Alistair Cockburn empfiehlt eine kurze informelle Variante (casual version) und eine stark strukturierte Variante (fully dressed version) [Cockburn 2000]. Wem keine der beiden Varianten gefällt, kann diese für sein Projekt anpassen. Man sollte in jedem Fall sicherstellen, dass Use Cases ein Ziel haben, einfach zu lesen sind und nicht zu viele Schritte enthalten.
Use Cases vermitteln Entwicklern ein allgemeines Verständnis über das beabsichtigte Verhalten des Systems. Allerdings brauchen Entwickler mehr Informationen als in Use Case enthalten sind. Aus diesem Grund ist neben den Use Cases auch eine Anforderungsspezifikation (software requirements specification) notwendig, die die funktionalen und nicht funktionalen Anforderungen detaillierter beschreibt.
Use Cases sind ungeeignet für beispielsweise Hardwareprodukte mit Steuerungssoftware, für Data-Warehouse-Projekte, Datenverarbeitung mit Batch-Jobs und andere komplexe Datenverarbeitungssoftware. Denn in den genannten Beispielen ist die Komplexität in den Berechnungsalgorithmen verborgen. Der Gebrauch der Software, die mit den Use Cases dargestellt wird, ist im Vergleich dazu trivial. Die Use Cases können in diesen Fällen die für Entwickler interessanten Informationen nicht beschreiben.
Eine wichtige Alternative sind die Event-Response-Tabellen [Wiegers 2006]. In Abhängigkeit des Zustandes des Systems reagiert das System auf ein Ereignis mit einer bestimmten Reaktion oder Antwort. Ereignisquellen sind beispielsweise Sensoren, zeitbasierte Trigger oder Benutzeraktionen.