2010-04-26 11 views
11

Der erste Schritt, den ich ein DFD erstellt habe. Dann ging ich weiter, um ein Klassendiagramm zu erstellen. Und währenddessen fühlte ich, dass ich zuerst das ER-Diagramm erstellen sollte. Da es viele Details gab, die in einem Klassendiagramm nicht erfasst werden konnten. Also, meine Frage sollte ich ERD ersten OR Class Diagrams erstellen?Welches soll zuerst erstellt werden ER Diagramm OR Klassendiagramm?

Ihre wertvollen Eingaben sind geschätzte Leute !!! Danke für das Lesen

Antwort

8

Wenn Modellierung, ich in Begriffen zu denken neigen dazu, die Diagramme in was auch immer zu tun, um macht zu der Zeit für mich am meisten Sinn. Manchmal ist das zuerst das Klassendiagramm, manchmal ist das das Entity-Relationship-Diagramm, manchmal ist das sogar das Sequenzdiagramm. Die Hauptsache ist, dass du versuchst, Dinge zu verstehen und sie aufzuschreiben, so dass andere sie auch verstehen können; Sich darüber zu ärgern, was der beste Weg ist, um Ihre Gedanken zu ordnen, ist nicht annähernd so hilfreich, als nur darauf zu kommen und die Teile zu schreiben, die Sie verstehen.

[EDIT]: FWIW, ich tendiere auch dazu, meine Modellierung auf Papier oder einem Whiteboard zu starten und nur auf einen Computer umzusteigen, wenn ich näher an das herankomme, was ich verstehe. (Ich glaube, ich mag es einfach nicht, auf Computer zu zeichnen.) Der Schlüssel ist, dass es beim Modellieren um Verstehen geht und nicht (sehr) um Computer.

+0

Donal, gute Einsicht. danke –

+0

Ja, ich stimme dir zu, dass du so genau bist, wie du zu der Zeit sein kannst. Wenn Sie Eigenschaften noch nicht konkretisiert haben, können Mapping-Beziehungen der logische erste Schritt sein. – Russell

0

ER Diagramme saugen als Start - weil sie weniger Informationen enthalten als das Objektdiagramm, das viel mehr Informationen über Methoden auf Objekte und Vererbungsbäume enthält - beide Elemente wird das ER-Diagramm verpassen.

Als solches Sie besser mit der Objekthierarchie (Klassendiagramm) beginnen und dann mov auf der Abbildung Seite der Dinge;)

+3

Warum beginnt mit weniger (allgemeineren) Informationen schlecht? Es ist ein üblicher Weg, um auf einer höheren Ebene zu beginnen und mehr Details zu liefern, während Sie fortfahren. Sie beginnen damit, Designentscheidungen zu treffen, etwa ob eine Person mit einem Tier verwandt sein soll, und nicht, ob wir einen Personen Vor- und Nachnamen in das Objektmodell aufnehmen sollen. – Russell

+0

Russell, danke für deine Gedanken. Das macht Sinn. –

+1

Aber Ignoranz zahlt sich nicht aus. Das Ignorieren der Vererbung bedeutet, dass Sie mit dummen Entwürfen wie einem Objekt "Kunde" in einer Kundentabelle, einem Objekt "Mitarbeiter" in einer Angestellten-Tabelle usw. enden. – TomTom

3

OO-Puristen neigen dazu, zuerst das Klassendiagramm zu machen. Menschen mit einem Datenbankhintergrund machen zuerst das ER-Diagramm und "leiten" daraus das Klassendiagramm ab (dieser Ansatz wird von OO-Puristen missbilligt)

Ich bevorzuge einen hybriden Ansatz.

Identifizieren Sie zuerst die Entitäten. Dies sollte sowohl für die Datenbank als auch für die Anwendung (Klassen) der Fall sein.

Sobald Sie die Entitäten auf einer hohen Ebene vereinbart haben, fahren Sie mit Klassendiagramm und ER-Diagramm in parallelen Richtungen fort - weil die "Beziehungen" in jedem unterschiedlich sind. (Wenn Sie die einzige Person sind, die an ihnen arbeitet, dann beginnen Sie zuerst mit dem Klassendiagramm und dann mit der ERD. Identifizieren Sie jedoch zuerst die Berechtigung).

Meiner Meinung nach sollten die High-Level-Entitäten gleich sein, sowohl in der Datenbank als auch in der Anwendung (Java/C# ...). Und es ist sehr einfach, mit der gemeinsamen Basis fortzufahren - vor allem, wenn verschiedene Leute an verschiedenen Teilen (Klassen, Datenbanken) arbeiten.

2

Ich würde sagen, es hängt wirklich von Ihrer Anwendung ab. & Ich weiß ein wenig über UML und ich weiß, dass Sie die Beziehung Multiplizität sowie Primärschlüssel nur mit Standard-UML-Klassendiagramme modellieren können, so oft Klassendiagramm ist genug. Ich beginne am Anfang mit dem Klassendiagramm, weil ich gerne objektorientierte Analyse und Design, Anwendungsfälle, Anwendungsfälle und analytische Klassen verwende. Auf der anderen Seite verlangt gutes Datenbankdesign nach Normalisierung und manchmal nach Denormalisierung, nach verschiedenen Optimierungen für die Datenabfrage ... Aber zuerst müsste ich wissen, wonach ich suchen werde und möglicherweise wie. Ich persönlich sehe den relationalen Teil der meisten Anwendungen nur als Speichermechanismus, ich denke an das System in Bezug auf objektorientierte Programmierung. Dies ist besonders nützlich bei zB Ruby on Rails, welches dank des Active Record Patterns komplett vom relationalen Model abstrahiert, so dass ich nicht zweimal modellieren muss.

Verwandte Themen