Modellierung So klappt’s mit der UML

Autor / Redakteur: Andreas Willert* / Martina Hafner

Seit der Einführung der Hochsprache ANSI-C hat es keinen Paradigmenwechsel im Software Engineering gegeben. Mit der Methode „Strukturierte Programmierung“ auf Basis der Notation ANSI-C und den Tools Compiler, IDE und HLL-Debuggersind die Anforderungen an das Software Engineering oft nicht mehr zu erfüllen. Ein Paradigmen-Wechsel steht an, hin zum objektorientierten Design auf Basis von UML und CASE Tools. Dieser sollte aber konsequent durchgeführt werden.

Firmen zum Thema

( Archiv: Vogel Business Media )

Andere Methode, andere Notation, andere Tools, das klingt nach Aufwand, langen Einarbeitungszeiten, hohen Investitionen und Risiko. Deshalb wird der Schritt zu UML (Unified Modelling Language) gerne vor sich her geschoben. Oft wird versucht, ihn in kleine verdauliche Häppchen mit entsprechend kurzer Einarbeitungszeit, geringen Investitionen und kleinem Risiko aufzuteilen.

Ein beliebtes Vorgehen ist, die UML auf Basis eines preiswerten grafischen UML-Editors erst einmal zu Dokumentations-Zwecken einzusetzen um UML zu erlernen und Erfahrungen zu sammeln. Eine beliebte Alternative dazu ist es auch, nur das Architektur-Design auf Basis der UML zu designen. Dieses kann dann automatisch in C-Rümpfe umgesetzt werden die dann herkömmlich in C implementiert werden.

Wie UML funktioniert: die Voraussetzungen

Die Erfahrung aus weit mehr als 50 Projekten, in denen die Einführung der UML begleitet wurde, zeigt jedoch, dass nur der konsequente Einsatz der UML zur Modellierung mit anschließender Codegenerierung langfristig erfolgreich ist. Denn wenn wir uns die heutigen Anforderungen an das Software Engineering ansehen dann gilt es, Arbeiten, die auf Grund von Redundanzen im Verlauf der Entwicklung Änderungen an mehreren Stellen (Dokumenten) nach sich ziehen, so gering wie möglich zu halten.

Gleichzeitig wird Reverse Engineering benötigt, um existierenden Code nicht wegwerfen zu müssen, und so genanntes Round-Trip-Engineering, um bei bestimmten Gelegenheiten auch einmal schnell auf der C-Ebene Änderungen durchführen zu können. Automatisches Round-Tripping sorgt dafür, dass diese Änderungen auch auf Modellebene nachgezogen werden. Um genauer zu vermitteln, dass nur ein konsequenter Ansatz mit UML zum Erfolg führen kann wird im folgenden exemplarisch auf drei Beispiele aktueller Anforderungen an das Software Engineering eingegangen.

Die Forderung nach besserer und aktueller Dokumentation

Probleme bereitet oftmals nicht die Dokumentation an sich, sondern der veraltete Stand, hervorgerufen durch mangelnde Zeit um Dokumentation parallel zum Code zu pflegen. Um diese Situation zu verbessern gibt es zwei prinzipielle Möglichkeiten:

  • Aus dem C-Code wird automatisch die Dokumentation erzeugt. Dies ist mit Tools wie z.B. DoxyGen möglich und wird häufig eingesetzt. Nachteilig ist, dass nicht mehr Information erzeugt werden kann, als in den C-Quellen enthalten ist. Das Ergebnis wird immer unzureichend sein, wenn Architektur-Beschreibungen oder Experten-Informationen gewünscht werden.
  • Vorwärts-Dokumentation: Erst wird die Dokumentation erstellt und daraus auf Basis eines Codegenerators ablauffähiger C-Code generiert. Hauptargument gegen dieses Vorgehen war lange Zeit die mangelnde Effizienz der Codegeneratoren. Diese Angst ist heute in der Regel unbegründet. Es gibt sehr effiziente Codegeneratoren. Dieser Weg ist jedoch nur auf Basis einer formalen Notation möglich, die sowohl Codierungs- als auch Informations-Konstrukte enthält. Das tut die UML.
10102260

Wiederverwendung und effizienter Test

Beim Thema Wiederverwendung wird zuerst immer an den C-Code gedacht. Aber es gibt viele weitere Bereiche, in denen sich die Effizienz steigern lässt. Wird zum Beispiel bei der Arbeit auf Basis eines Pflichtenheftes dieses auf Basis von UML erstellt und es existiert in dem Repository (zentrale Datenbank des CASE Tools), können geeignete Elemente daraus direkt zur Dokumentation von Design oder Implementation genutzt werden. Dies geschieht nicht in Form von Copy & Past, was redundante Informationen schafft, sondern mit einem direkten Link. Dies bringt weitere Vorteile. Werden z.B. vom Auftraggeber Änderungen gewünscht, können diese auf Basis des Pflichtenheftes durchgeführt werden. Auf Grund der Links ist sofort ersichtlich wo sich im Design Änderungen ergeben. Das hilft Pflichtenheft, Design, Code und Dokumentation in sich konsistent zu halten.

(ID:269153)