15.3. Klassenauswahl

Dies sind Kritiken, die sich darauf beziehen, wie Klassen ausgewählt und verwendet wurden.

ArgoUML hat die folgenden Kritiken in dieser Kategorie.

15.3.1. Datentyp verbergen

Datentypen sind innerhalb von UML 1.4 keine vollständigen Klassen. Sie können nur Aufzählungsliterale als Werte haben und nur Abfrage-Operationen unterstützen (Das sind Operationen, die nicht den Zustand des Datentyps verändern).

Datentypen können nicht mit Klassen assoziiert werden, es sei denn, der Datentyp ist Teil einer Komposition (schwarzer Diamant). So eine Assoziation reflektiert die feste Verbindung einer Sammlung von Datentyp-Instanzen zu einer Klasseninstanz. In der Konsequenz ist so ein Datentyp ein Attribut der Klasse mit einer Kardinalität.

Eine gute OOA&D hängt von der richtigen Auswahl der Entities ab, welche die vollständigen Objekte und welche die Attribute von Objekten repräsentieren.

Es gibt zwei Optionen, um dieses Problem zu lösen.

  • Ersetze den Datentyp durch eine ganze Klasse.

  • oder ändere die Aggregation in eine Komposition am Ende das Datentyps.

15.3.2. Veringere die Anzahl der Klassen im Namensraum <Namensraum>

Ein Vorschlag, die Verständlichkeit durch weniger Klassen in einem Namensraum zu verbessern. Wenn ein Namensraum (wie ein Modell, ein Paket, oder eine Klasse) zu viele Klassen aufweist, wird es für Menschen sehr schwierig dies zu verstehen. Einen verständlichen Satz von Namensräumen zu definieren ist ein wichtiger Teil Ihres Designs.

Der Assistent dieser Kritik erlaubt das Setzen eines Schwellwertes, z.B. die maximale Anzahl von Klassen, ab der die Kritik ausgelöst wird.

[Achtung]Achtung

Diese Anzahl wird nicht dauerhaft gespeichert und es gibt keinen Weg, diese zu reduzieren, nachdem sie hochgesetzt wurde. Es sei denn, man erzeugt mehr Klassen, bis die Kritik erneut ausgelöst wird. Der Neustart von ArgoUML setzt dieses Anzahl wieder auf seinen Standardwert: 20.

15.3.3. Diagramm aufräumen

Vorschlag, dass das Diagramm verbessert werden sollte, indem man sich überlappende Modellelemente auseinander zieht.