 |
| Renate Stücka, Telelogic Deutschland GmbH |
Was ist Verifikation? Der Begriff ist allgegenwärtig, auf die Frage nach der Definition erhält man als Antwort jedoch häufig eher eine Interpretation. Verifikation ist ‚The process of determining that a model implementation accurately represents the developer's conceptual description of the model and the solution to the model.‘ Diese Definition stammt von der NASA. Bei der Verifikation geht es also um den Nachweis, dass die Implementierung eines Modells exakt der Beschreibung des Modells entspricht und eine Lösung für im Modell implizierte Aufgabenstellung darstellt. In der Praxis wird dies meist so umgesetzt, dass man das Ergebnis der Projektphase Pi gegen das Ergebnis der vorangegangenen Phase Pi-1 prüft. Wenn alle Prüfungen der Kette zwischen P1 und Pn zu einem positiven Ergebnis führen, geht man induktiv davon aus, dass dann auch Pn die korrekte Umsetzung von P1 darstellt. Idealerweise ist P1 die Phase der Anforderungssammlung und -gewichtung und Pn der letzte Systemtest vor der Freigabe, so dass die Kette vollständig geschlossen ist. Doch leider sind wir in der Praxis - gerade bei Softwareentwicklungsprojekten - noch nicht ganz soweit. Zwar wurden bereits durch den Einsatz durchgängiger Werkzeugketten gewaltige Fortschritte erzielt bei der Effizienz der Projektdurchführung und der erreichten Qualität. Die Verifikation begleitet bereits mehrere Phasen des Prozesses, doch leider gibt es noch einen Bruch an entscheidender Stelle. Letztendlich bedeutet Qualität Konformität zu den Anforderungen. Die Kette der automatischen Verifikation greift im Projektverlauf jedoch erst ab der Spezifikationsphase. Für die Verifikation der Ergebnisse der vorhergehenden Phasen - Anforderungsanalyse und Modellierung - verlässt man sich bisher weitgehend auf den scharfen Blick und die Erfahrung der Projektmitarbeiter. Es gilt, ergänzende Konzepte für die Verifikation zu entwickeln, und die formalen Grundlagen findet man in dem neuen Standard UML 2.0, der einen Quantensprung für die Modellierung und Spezifikation von Software und Systemen darstellt. Anhand der Anforderungen, die mit Hilfe eines entsprechenden Werkzeuges erfasst und gewichtet werden, wird das Verhalten des zu entwickelnden Systems analysiert und in einer formalen Sprache (z.B. MSCs, Message Sequence Charts) beschrieben. Im nächsten Schritt, der Design-Phase, wird das System in UML 2.0 modelliert, ebenfalls basierend auf den Anforderungen. Nun ist UML 2.0 (im Gegensatz zu den semi-formalen Vorgängerversionen) eine formale Sprache, und daraus ergibt sich eine höchst interessante Perspektive: das UML 2.0 Modell lässt sich automatisch verifizieren. Das Verhalten des UML Modells des zu entwickelnden Systems kann automatisch auf Konformität zur formalen Beschreibung des angestrebten Verhaltens geprüft werden. Mit anderen Worten: Wir sind mit der Verifikation einen entscheidenden Schritt näher an die Anforderungen gerückt! Nach Untersuchungen der Standish Group gelingen nur 28% aller Softwareentwicklungsprojekte, fast 50% führen zu Resultaten, die nicht alle Anforderungen erfüllen. Mit der UML 2.0 als ‚missing link‘ in der Verifikationskette werden diese verheerenden Zahlen in wenigen Jahren nur noch von historischer Bedeutung sein. |
| |
|
 |
|