2011-01-13 33 views
15

Wenn ich ein konzeptuelles Klassendiagramm erstelle, in dem jede Klasse "Name" und "Attribute" erfasst, aber nicht "Operationen", habe ich dann nicht grundsätzlich etwas erstellt, was sonst als ERD betrachtet würde? Ich versuche zu verstehen, was die Unterschiede zwischen dem Erstellen eines konzeptionellen Klassendiagramms, wie ich es beschrieben habe, und dem Aufrufen eines ERDs? Wenn das immer noch zwei verschiedene Tiere sind, kann mir bitte jemand erklären, was die Unterschiede sind?Unterschiede zwischen einem konzeptionellen UML-Klassendiagramm und einem ERD?

Antwort

4

wurde leider wenig Unterschied in der Ausdruckskraft von beiden (wenn wir uns auf die Attribute, Klassen und Assoziationen Teil konzentrieren nur), wenn Sie Entity-Relationship-Diagramme Erweiterte verwenden (die häufigste Fall heute)

Es stimmt, sie aussehen auf der grafischen Ebene sehr unterschiedlich, da sie unterschiedliche Symbole für die Elemente verwenden, aber die "Semantik" ist ziemlich ähnlich. Beide erlauben Vererbung (wieder, ich spreche über EER), n-ary Assoziationen, Assoziationsklassen, ...

+0

Wie ermöglicht ERD Vererbung ?! – Trix

+0

Wie ich bereits sagte, begann ER mit einem ersten Vorschlag von Peter Cheng, entwickelte sich jedoch schnell zu einer vollständigen Familie von (erweiterten) ER-Sprachen, die der sprachartigen Vererbung neue Funktionen hinzufügten. Also, ja, einige (E) ER-Versionen erlauben die Vererbung –

17

Das Klassendiagramm enthält nur die Klassen in Ihrem Objektmodell mit eventuellen Verknüpfungen/Beziehungen, die Diagrammelemente verbinden. Diese Verbindungen entsprechen jedoch nicht unbedingt den physikalischen Beziehungen wie in einem ERD-Diagramm, sondern repräsentieren logische Verbindungen.

Das Klassendiagramm ist nur das Objektmodell Ihrer Anwendung und enthält keine persistenzspezifischen Informationen. Wenn Sie über das Klassendiagramm nachdenken, vergessen Sie die Datenbank oder andere Speicher, die Sie verwenden können.

Das ERD-Diagramm auf der anderen Seite ist ein Persistenz-spezifisches Diagramm, das die Entitäten (Tabellen) anzeigt, die in einer (meist) relationalen Datenbank existieren. Außerdem werden die physischen Beziehungen (und Kardinalitäten) zwischen diesen Tabellen und allen anderen datenbankspezifischen Informationen angezeigt. Das ERD-Diagramm kann manchmal ähnlich dem Klassendiagramm aussehen, aber das bedeutet nicht, dass es dasselbe wie ein Klassendiagramm ist.

+0

Ich verstehe, was Sie sagen, dass das ERD-Diagramm Persistenz-spezifisch ist und das Klassendiagramm keine Persistenz-spezifischen Informationen enthält, jedoch würde ich dies eher als abgeleitete Tatsache betrachten, als wenn man die Diagramme nebeneinander betrachtet. Sie erwähnen auch, dass das Klassendiagramm keine expliziten Beziehungen zwischen Diagrammelementen enthält. Wenn ich jedoch sowohl Zuordnungen als auch Multiplizität zwischen Elementen im Klassendiagramm zeige, unterscheidet sich dies von den Beziehungen und Kardinalitäten, die zwischen Entitäten auf der ERD angezeigt werden Diagramm? – Adam

+0

Die Beziehung im Klassendiagramm ist logisch, aber auf der anderen Seite ist eine ERD-Beziehung eine echte physische Einschränkung zwischen Tabellen. Sie haben Recht, dass die Diagramme in einfachen Szenarien sehr ähnlich aussehen können, aber in komplexeren Fällen ist der Unterschied offensichtlich. Das Klassendiagramm unterstützt weit mehr Abstraktion als die ERD. Wenn Sie das ERD-Diagramm mit der klassischen Chen-Notation zeichnen, ist der visuelle Unterschied zu einem UML-Klassendiagramm selbst in einfachen Szenarien enorm. –

+0

OK, danke für die Erklärung und was du über eine logische gegenüber einer physischen Konstanz sagst macht für mich Sinn. Angesichts der Tatsache, dass ein Klassendiagramm weit mehr Abstraktion als ein ERD-Diagramm unterstützt, kann man in einem komplexeren Szenario sagen: – Adam

1

Es hängt von der Situation ab, wo Sie nicht möchten, die ER-D zu tun. Aber stellen Sie sich vor, wenn Sie eine separate Datenschicht haben, in der die Datenlogik behandelt wird. In diesem Fall dürfen viele Details der Daten nicht mit der Anwendungsschicht geteilt werden. Und Ihr Klassendiagramm sollte nicht über die Anwendungsschicht hinausgehen. Ich muss betonen, dass beide Diagramme nicht gleich sind. Und es gibt Situationen, in denen Sie beides tun müssen, hauptsächlich in der Multi-Tier-Architektur, und es gibt Situationen, in denen Sie vielleicht nur das Klassendiagramm verwenden können; z.B. einstufige Anwendung.

Ich befürworte stark die Ansicht, dass Klassendiagramm das E-R-Diagramm nicht aufhebt.

1

Designklassendiagramme werden aus konzeptuellen Modell- und Kollaborationsdiagrammen erstellt. Design-Klassendiagramme sind:

  1. Klassen, Assoziationen und Attribute
  2. Methoden
  3. Typen von Attributen
  4. Schiffbarkeit
  5. Abhängigkeiten
1

Die ER-Diagramme ich gesehen habe (die meisten häufig ERWin IE Notation) haben sich auf das Design für eine Datenbank konzentriert. Sie beschäftigen sich mit Primärschlüsseln, Fremdschlüsseln, haben unbenannte Beziehungen und haben in der Regel keine Generalisierung/Spezialisierung.

Ein gutes UML konzeptuellen Klassendiagramm, auf der anderen Seite, ist nicht betroffen mit Schlüsseln, spiegelt die Problemdomäne und hat Assoziationsend-Eigenschaften, die mindestens Hinweis bei der Semantik, warum Dinge verwandt sind. Dies hilft dabei, die Domäne an jüngere Entwickler zu kommunizieren, sodass sie nicht raten müssen.

Verwandte Themen