UML - Modellbasiertes Entwickeln: Wie gehe ich vor?
lima-city → Forum → Programmiersprachen → C/C++ und D
ansammlung
assoziation
aussehen
automat
beliebig lange frei testen
diagramm
entwickeln
form
interessanter wichtiger aspekt
konsistenz
korrektheit
modell
pointer
quellcode
software
starkes tool
testen
unterschiedlichster art
url
verzahnung
-
Ich bin mir nie wirklich sicher, ob man mit UML (2.0?) überhaupt tatsächlich modellbasiert entwickeln kann. Für mich sieht es immer wie eine "Ansammlung" Diagramme aus, mit der man das Verhalten der Software "solala" beschreiben kann, aber von Vollständigkeit und Korrektheit kann nie die Rede sein. Von daher:
Hat jemand Erfahrungen gesammelt mit modellbasiertem Entwickeln, vor allem für C++ Software?
Mich interessieren vor allem folgende Aspekte:
(1) Vollständigkeit der Beschreibung eines Software-Modells durch unterschiedliche Beschreibungs-Formen
(2) Verzahnung der einzelnen Beschreibungs-Formen
(3) Generierung von Quellcode (-rahmen)
(4) Reverse Engineering (Quellcode-Änderungen zurückimportieren)
(5) Unterstützung für automatische Tests
zu (1): ein Software-Modell kann mit unterschiedlichen Hilfsmitteln (z.B. Diagramme unterschiedlichster Art oder textuelle Formen) beschrieben werden. Klassen-Diagramme, Sequenz-Diagramme, Zustands-Automaten, etc. Inwiefern sind diese Diagramme eindeutig?
zu (2): inwiefern greifen die Beschreibungs-Formen aus (1) ineinander und geben ein einheitliches Bild der Software wieder?
zu (3): Inwiefern weiß man, wie bestimmte Modell-Eigenschaften in dem generiertem Code aussehen werden? (z.B. wie wird eine "Assoziation", "Komposition", etc. im Quellcode aussehen? Als Pointer/Referenz?)
zu (4): schafft man es, dass Modell mit der tatsächlichen Software "synchron" zu halten? Vor allem wie?
zu (5): Interessanter wichtiger Aspekt, der bisher nur Stiefmütterlich behandelt wird. Inwiefern gibt es Hilfe, um:
(a) das Modell selbst auf Konsistenz, Richtigkeit, Vollständigkeit während der Entwicklungs-Zeit des Modells zu testen?
(b) den generierten Quellcode zu testen? Man spezifiziert das Verhalten der Software, also muss es im Prinzip möglich sein, daraus auch Testfälle zu generieren. Weiß nicht, ob ich mich hier verständlich ausdrücke.
Ein wirklich starkes Tool dafür scheint StarUML 2 zu sein. Das ist zumindest das beste, das ich gefunden habe, zumal man es auch beliebig lange frei testen kann, bevor man die Lizenz erwirbt und es auch noch auf meinem präferierten Linux-System läuft.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage