Kapitel 15. Die Kritiken

Inhaltsverzeichnis

15.1. Einleitung
15.1.1. Terminologie
15.1.2. Design-Mangel
15.2. Unkategorisiert
15.3. Klassenauswahl
15.3.1. Datentyp verbergen
15.3.2. Veringere die Anzahl der Klassen im Namensraum <Namensraum>
15.3.3. Diagramm aufr??umen
15.4. Benennung
15.4.1. L??se Assoziations-Namenskonflikt auf
15.4.2. ??berarbeite die Attributnamen, um einen Konflikt zu vermeiden
15.4.3. ??ndere Namen oder Signaturen in einem Modellelement
15.4.4. Doppelte End- (Rollen-) Namen in einer Assoziation
15.4.5. Rollenname steht im Konflikt mit einem Element
15.4.6. Einen Namen ausw??hlen (Klassen und Schnittstellen)
15.4.7. W??hlen Sie einen eindeutigen Namen f??r ein Modellelement aus (Klassen und Schnittstellen)
15.4.8. W??hlen Sie einen Namen aus (Attribute)
15.4.9. W??hlen Sie einen Namen aus (Operationen)
15.4.10. W??hlen Sie einen Namen aus (Zust??nde)
15.4.11. W??hlen Sie einen eindeutigen Namen f??r ein (zustandsbehaftetes) Modellelement aus.
15.4.12. ??ndern Sie den Namen, um eine Konfusion zu verhindern
15.4.13. W??hlen Sie einen legalen Namen aus
15.4.14. ??ndern Sie den Namen des Modellelementes in ein nicht-reserviertes Wort
15.4.15. W??hlen Sie einen besseren Namen f??r die Operation aus
15.4.16. W??hlen Sie einen besseren Attributnamen aus
15.4.17. Klassenname gro?? schreiben
15.4.18. Paketname ??berarbeiten
15.5. Speicher
15.5.1. ??berarbeiten Sie die Attributnamen, um einen Konflikt zu vermeiden
15.5.2. F??gen Sie Instanzvariablen zu einer Klasse hinzu
15.5.3. F??gen Sie der Klasse einen Konstruktor hinzu
15.5.4. Reduzieren Sie die Zahl der Attribute in der Klasse
15.6. Geplante Erweiterungen
15.6.1. Operationen in Schnittstellen m??ssen public sein
15.6.2. Schnittstellen d??rfen nur Operationen haben
15.6.3. Entferne die Referenz auf die spezifische Subklasse
15.7. Zustandsautomaten
15.7.1. Reduzieren Sie die Anzahl der Transitionen im <Zustand>
15.7.2. Reduzieren Sie die Anzahl der Zust??nde im Automaten <Automat>
15.7.3. F??gen Sie dem <Zustand> Transitionen hinzu
15.7.4. F??gen Sie ankommende Transitionen dem Modellelement <Modellelement> hinzu
15.7.5. F??gen Sie abgehende Transitionen dem Modellelement <Modellelement> hinzu
15.7.6. Entfernen Sie den zus??tzlichen Initialzustand
15.7.7. F??gen Sie einen initialen Zustand ein
15.7.8. Einer Transition ein Signal oder einen W??chter hinzuf??gen
15.7.9. ??ndere Vereinigungs-Transitionen
15.7.10. ??ndere Gabelungs-Transitionen
15.7.11. Entscheidungs-/Kreuzungstransitionen hinzuf??gen
15.7.12. Einer Transition W??chter hinzuf??gen
15.7.13. Das Diagramm aufr??umen
15.7.14. Eine Kante sichtbarer machen
15.7.15. Zusammengesetztes Assoziationsende mit der Kardinalit??t > 1
15.8. Designmuster
15.8.1. Die Nutzung des Singleton-Musters f??r eine <class> in Betracht ziehen.
15.8.2. Singleton Stereotyp-Verletzung in <Klasse>
15.8.3. Knoten haben normalerweise keine H??lle
15.8.4. Knoteninstanzen haben normalerweise keine H??lle
15.8.5. Komponenten befinden sich normalerweise innerhalb von Knoten
15.8.6. Komponenteninstanzen befinden sich normalerweise innerhalb von Knoten
15.8.7. Klassen befinden sich normalerweise innerhalb von Komponenten
15.8.8. Schnittstellen befinden sich normalerweise innerhalb von Komponenten
15.8.9. Objekte befinden sich normalerweise innerhalb von Komponenten
15.8.10. Verkn??pfungsenden haben nicht die gleiche Ebene
15.8.11. Klassifizierung einstellen (Verteilungsdiagramm)
15.8.12. Return-Aktionen werden vermisst
15.8.13. Vermisse Aufruf(Sende)-Aktion
15.8.14. Kein Ausl??seimpuls bei diesen Verkn??pfungen
15.8.15. Klassifizierung einstellen (Sequenzdiagramm)
15.8.16. Falsche Position dieses Ausl??seimpulses
15.9. Beziehungen
15.9.1. Zirkul??re Assoziation
15.9.2. <Assoziation> navigierbar machen
15.9.3. Entferne die Navigation von der Schnittstelle via <Assoziation>
15.9.4. Dem <Modellelement> eine Assoziation hinzuf??gen
15.9.5. Referenz auf ein spezifische Subklasse entfernen
15.9.6. Reduzieren Sie die Assoziationen des <Modellelementes>
15.9.7. Kanten sichtbarer machen
15.10. Instanzen bilden
15.11. Modularit??t
15.11.1. Der Klassifizierer befindet sich nicht im Namensraum seiner Assoziation.
15.11.2. F??gen Sie Elemente zum Paket <Paket> hinzu.
15.12. Erwartete Verwendung
15.12.1. Diagramm aufr??umen
15.13. Methoden
15.13.1. ??ndere Namen oder Signaturen im <Modellelement>
15.13.2. Die Klasse mu?? abstrakt sein
15.13.3. F??gen Sie der <Klasse> Operationen hinzu
15.13.4. Reduzieren Sie die Anzahl der Operationen im <Modellelement>
15.14. Code-Generierung
15.14.1. ??ndern Sie die Mehrfachvererbung in Schnittstellen
15.15. Stereotypen
15.16. Vererbung
15.16.1. ??berpr??fen Sie die Attributnamen, um einen Konflikt zu vermeiden.
15.16.2. Entfernen Sie die zirkul??re Vererbung der Klasse <Klasse>
15.16.3. Die Klasse mu?? abstrakt sein
15.16.4. Entfernen Sie das Schl??sselwort final oder entfernen Sie Subklassen
15.16.5. Illegale Generalisierung
15.16.6. Enferne unn??tige Realisierungen aus der Klasse <Klasse>
15.16.7. Definiere eine konkrete (Sub-)Klasse
15.16.8. Definieren Sie eine Klasse, um die Schnittstelle <Schnittstelle> zu implementieren
15.16.9. ??ndere Mehrfachvererbung in Schnittstellen
15.16.10. Machen Sie die Kanten sichtbarer
15.17. Containment
15.17.1. Entferne zirkul??re Komposition
15.17.2. Duplizieren Sie den Parameternamen
15.17.3. Zwei Aggregatenden (Rollen) in bin??rer Assoziation
15.17.4. Aggregatende (Rolle) in 3-Wege (oder mehr) Assoziation
15.17.5. Datentyp verbergen

15.1. Einleitung

Die Schl??sselfunktion, die ArgoUML von anderen UML-Werzeugen unterscheidet, ist die Verwendung von Konzepten der kognitiven Psychologie. Die dahinter stehende Theroie ist in Jason Robbins' PhD Dissertation http://argouml.tigris.org/docs/robbins_dissertation/ beschrieben.

Kritiken sind einer der Hauptarten mit denen diese Ideen implementiert wurden. Im Hintergrund laufend, bieten Sie dem Designer Ratschl??ge an, die akzeptiert oder ignoriert werden k??nnen. Der Schl??sselpunkt ist, dass sie keine Entscheidung des Designers ausschliessen.

[Anmerkung]Anmerkung

Die Kritiken sind asynchrone Prozesse, die parallel zu ArgoUML ablaufen. ??nderungen ben??tigen eine oder zwei Sekunden, bis die Kritiken erneut erzeugt wurden.

15.1.1. Terminologie

Die Kritiken sind Hintergrundprozesse, die das aktuelle Modell anhand verschiedener „guter“ Designkriterien ??berpr??fen. Es gibt eine Kritik f??r jedes Designkriterium.

Die Ausgabe einer Kritik ist eine Kritik— eine Anweisung ??ber einige Aspekte des Modelles, die nicht der guten Designpraxis folgen.

Nat??rlich wird eine Kritik nur vorschlagen, wie der gefundene Designmangel behoben werden kann, in dem es ein Zu-Bearbeiten-Element erzeugt.

15.1.2. Design-Mangel

ArgoUML kategorisiert Kritiken entsprechend der von ihnen adressierten Designm??ngel (einige Kritiken k??nnen in mehr als einer Kategorie erscheinen). Aktuell gibt es 16 solcher Kategorien.

In diesen Handbuch sind die Beschreibungen der Kritiken entsprechend ihres Designmangels in Abschnitten gruppiert.