Das größte Problem eines Softwareprojekts besteht oft darin, irgendwie einen guten Anfang zu schaffen. Das geht nämlich bereits schon dann los, wenn der Kunde mitteilen soll, was er überhaupt möchte. So steht einem Projekt oft eine Gruppe von Stakeholdern entgegen, die alle unterschiedliche Vorstellungen von dem haben, was am Ende herauskommen soll.
Ein Worst-Case-Scenario was so nie vorkommt wäre wie folgt:
Der Kunde weiß nicht was er wirklich will, der Entwickler arbeitet am Thema vorbei. Am Ende machen beide Partein dicke Backen, weil der Kunde vor einem Produkt steht, was er so gar nicht haben wollte, und der Entwickler darüber entsetzt ist, dass der Kunde kein Geld für das hergeben will, was dort präsentiert ist. Verdammt.
Von daher sind große Projekte ohne eine gescheite Anforderungsanalyse und Definition von Spezifikationen und Anwendungsfällen gar nicht mehr denkbar. Es muss eine unmissverständliche, klare Sprache zwischen allen Stakeholdern geschaffen werden.
Eine ideales Werkzeug, mit der alle Gruppen sich verstehen können, bietet dabei die standardisierte Sprache UML (Unified Modeling Language).
Hiermit kann Software überschaulich und einfach modelliert werden. Einfache Diagramme können im Vorfeld mit dem Kunden angelegt werden, wie zum Beispiel durch das Anwendungsdiagramm (Use Case Diagram):
Natürlich decken solche Anwendungsfälle nur die funktionalen Aspekte ab. Es muss sich im Normalfall bemüht werden, auch noch zusätzlich Anforderungen in Prosa zu formulieren, was nicht immer gelingen mag (zumal Anforderungen keine Lösungswege beschreiben sollen). Und mal ehrlich, wer beschreibt schon gerne was in Prosa - und dann auch noch ein Entwickler? Ich glaube mein Schwein pfeift. Häufig werden diese Anforderungen in Anwendungsfälle verknüpft und es gibt einen Mix aus Dokumenten und Diagrammen. Gewonnen hat man hier also nicht immer was...
Anwendungsfälle sind im die Anforderungen der UML
Eine neue und sehr elegante Lösung bietet genau an dieser Stelle die SysML, welche Konzept der Anforderungen in die Modellierungssprachen einführt und auf der UML aufbaut.
Genau darüber hat gestern Abend bei oose.de Herr Tim Weilkiens referiert, was (wieder einmal) sehr interessant war. Grundsätzlich gilt: SysML basiert auf der UML 2.1. Man kann in den meisten Fällen also mit einem vorhanden UML Tool auch SysML darstellen.
Diese Schnittmengen verdeutlichen die Zusammensetzungen:

Folgende Erweiterungen bietet die SysML:
- Strukturdiagramm für Systeme
- Anforderungsdiagramm (Modellierung funktionaler und nicht-funktionaler Anforderung)
- Parametrisches Diagramm (Modellierung parametrischer Beziehungen zwischen Modellelementen)
- Unterstützung des Datenaustauschformats ISO AP-233
- Unterstützung der Enhanced Functional Flow Block Diagrams (EFFBD)
Diese elegante Vereinigung von Requirements und Use Cases zu Einem finde ich äußerst interessant. Denn wer sich schon einmal durch einen Haufen von Anforderungen geschlagen hat, weiß wie zeitaufwendig es sein kann, ein komplexes System zu verstehen. Ein Diagramm sagt eben mehr als tausend Anforderungen. UML kann das, SysML erst recht. Ich hoffe in Zukunft meine ersten eigenen Erfahrungen auf diesem Bereich machen zu können.
Tools, welche SysML mit anbieten sind dabei unter anderem: MDG Technology for SysML als Enterprise Architect Plugin,Rhapsody, SysML Toolkit (EmbeddedPlus), Artisan Studio (Artisan Software) oder MagicDraw.

0 Trackbacks