ScholarGate
Assistent

Softwaremodellierung und UML

Softwaremodellierung stellt ein System durch Abstraktionen dar, die seine Struktur und sein Verhalten erfassen, und die Unified Modeling Language (UML) ist die Standard-Grafiknotation zur Darstellung solcher Modelle.

Thema finden mit PaperMindDemnächstFind papers & topics
Tools & resources
Folien herunterladen
Learn & explore
VideoDemnächst

Definition

Softwaremodellierung ist die Konstruktion abstrakter Darstellungen eines Softwaresystems zu dessen Analyse, Design und Kommunikation, und UML ist eine standardisierte Allzweck-Modellierungssprache, die einen vereinheitlichten Satz von Diagrammtypen für diese Darstellungen bereitstellt.

Scope

Dieses Thema behandelt Strukturmodelle wie Klassen-, Komponenten- und Bereitstellungsdiagramme; Verhaltensmodelle wie Anwendungsfall-, Sequenz-, Aktivitäts- und Zustandsdiagramme; die Rolle von Modellen in Analyse, Design und Kommunikation; modellgetriebene Entwicklung und Codegenerierung; und den angemessenen Grad an Modellierungsgenauigkeit für ein bestimmtes Projekt.

Core questions

  • Welche Aspekte eines Systems werden durch Struktur- im Vergleich zu Verhaltensmodellen erfasst?
  • Wie stellen die wichtigsten UML-Diagrammtypen ein Design dar?
  • Wie viel Modellierungsgenauigkeit ist für ein bestimmtes Projekt angemessen?
  • Wann ist die automatische Codegenerierung aus Modellen sinnvoll?

Key theories

Mehrere Ansichten eines Systems
Ein System wird aus komplementären Blickwinkeln modelliert – statische Struktur, Interaktionen, Zustandsverhalten und Bereitstellung – wobei jeder durch geeignete Diagrammtypen erfasst wird, da keine einzelne Ansicht alle relevanten Designinformationen vermittelt.
Modellgetriebene Entwicklung
Modelle können als primäre Entwicklungsartefakte dienen, aus denen Implementierungen teilweise oder vollständig durch Transformationen generiert werden, wodurch das Abstraktionsniveau erhöht und das Design direkt an den Code gebunden wird.

Clinical relevance

Modelle machen Designabsichten explizit, unterstützen die Analyse, bevor Code existiert, und bieten eine gemeinsame Sprache innerhalb eines Teams; ihr Wert hängt von der Anwendung des richtigen Modellierungsumfangs ab, da übermäßige oder veraltete Modelle Kosten ohne Nutzen verursachen.

Evidence & guidelines

Die OMG UML-Spezifikation definiert die Standardnotation und -semantik, und verwandte OMG-Standards wie SysML und MOF erweitern die Modellierung auf Systemtechnik und Metamodellierung.

History

UML entstand Mitte der 1990er Jahre aus der Vereinigung der Booch-, OMT- und Objectory-Methoden, wurde 1997 als OMG-Standard angenommen und entwickelte sich über UML 2 weiter; modellgetriebene Ansätze und leichtgewichtige Skizzierung koexistieren mit Debatten darüber, wie viel formale Modellierung sich auszahlt.

Debates

Schwergewichtige modellgetriebene Entwicklung versus leichtgewichtige Skizzierung
Es wird kontrovers diskutiert, ob Modelle maßgebliche Artefakte sein sollten, die die Codegenerierung steuern, oder informelle Skizzen zur Kommunikation; die Vision des Modells als Programm verspricht Konsistenz, während der skizzenorientierte Ansatz geringen Overhead und Anpassungsfähigkeit schätzt.

Key figures

  • Grady Booch
  • James Rumbaugh
  • Ivar Jacobson
  • Martin Fowler

Related topics

Seminal works

  • booch2005
  • omg2017uml
  • fowler2003

Frequently asked questions

Ist UML in der agilen Entwicklung noch relevant?
Ja, wenn auch oft leichter eingesetzt. Agile Teams neigen dazu, UML-Diagramme eher als informelle Skizzen zur Kommunikation und zum Nachdenken über das Design zu verwenden, anstatt als erschöpfende Spezifikationen, wobei sie gerade so viel Modellierung anwenden, wie zur Klärung des jeweiligen Problems erforderlich ist.
Erfordert Modellierung UML?
Nein. UML ist die am weitesten standardisierte Notation, aber die Modellierung kann auch andere Notationen oder domänenspezifische Sprachen verwenden; die wesentliche Idee ist die Abstraktion von Struktur und Verhalten, wofür UML eine gut unterstützte Option ist.

Methods for this concept

Related concepts