Ich habe Scenerio wie Bibliothekar sucht nach dem Telefon im Computer-Verzeichnis, wählt Student ID und retrives die Schülerakte. Danach aktualisiert und speichert sie den Datensatz. Wie könnte ich das Domänenmodell dafür zeichnen? Die Objekte wären: 1) Bibliothekar 2) Computer-Verzeichnis 3) Student Record Was noch? Wie würde ich alle Verbände vertreten?Designing Domain-Modell
Antwort
Ein Domänenmodell stellt die tatsächliche Geschäftslogik dar, die jedes System ignoriert. Zum Beispiel, während Sie vielleicht ein Verzeichnis (oder ein Register) von Studenten haben, war es egal, ob es ein Computersystem oder Daten sind, die auf kleine Blätter Papier geschrieben sind.
Eine gängige Methode, um mit der Erstellung der Domäne zu beginnen, besteht darin, alle Substantive in der beschriebenen Geschäftsbeschreibung zu unterstreichen. Sie sind mögliche Namen für Ihre Klassen und Attribute. Ähnlich werden Verben Ihre möglichen Namen für Vereinigungen und Operationen sein.
Der nächste Schritt ist zu entscheiden, welche Rolle jedes unterstrichene Objekt und welche Logik zwischen ihnen spielen. Darauf basierend definieren Sie Ihre Klassen und deren Attribute. Beachten Sie, dass der Name manchmal nicht genau dem Namen entspricht, der ursprünglich aufgeschrieben wurde. In Ihrem Beispiel sollten Sie register of students
anstatt computer directory
verwenden. Auch einige Namen werden vielleicht gar nicht gebraucht oder Sie entdecken etwas, das Ihnen fehlt, aber das können Sie aus der Logik erraten.
Beachten Sie, dass, obwohl es nicht explizit aufgeführt ist, Sie einen Studenten in Ihrer Geschäftsumgebung (verknüpft mit einem Student Record, Assoziation möglicherweise benannt) hat. Sie können auch deutlich sehen, dass Student Record ein Teil von Register of Students ist (es wird eine zusammengesetzte Aggregation darstellen, die auf Systemebene entmutigt werden kann, aber definitiv auf dieser Business-Ebene verwendet werden kann). Student Record sollte Attribute id und phone haben.
- 1. Designing Fluent Interface-Methoden
- 2. Designing Parsing Code Parsec
- 3. Designing API mit WCF
- 4. Designing OpenCV GUI mit Qt
- 5. Designing DTOs, die Listen von Objekten
- 6. Designing einzigen API für zwei verschiedene Typen
- 7. Designing Web-Service-Anrufe, die/Schreiben von Datenbank lesen
- 8. Designing REST-URL für Ressource mit mehreren Kennungen
- 9. Designing Services mit verschiedenen Arten von Parametern Java
- 10. Designing Websites für Retina-Geräte: Welche Dimensionen sollten Sie beim Entwerfen verwenden?
- 11. Kann ich position relative für ein div verwenden, wenn ich Responsive Designing-Methoden verwende?
- 12. Designing zwei äquivalenten Elementfunktionen eine const und einen nicht-const pointer-to-Element zurückkehrt, jeweils
- 13. Suche im dreidimensionalen Array
- 14. Welche Websites sind verfügbar, die gute Beispiele für Benutzeroberflächengestaltung enthalten?
- 15. Build-Mysql-Abfrage von dynamischen PHP-Array
- 16. Filter Videos auf der Grundlage einer Eigenschaft in JSON in angularJs angezeigt werden
- 17. Vertikal zentrierten Text im Wochenkalender
- 18. Chart.js Änderung Label Schriftfarbe
- 19. multi Abfrage, um das gleiche Ergebnis aus zwei Tabellen zu erhalten
- 20. Ist es richtige TDD-Praxis, Ihr Modell zu entwerfen, bevor Sie Tests schreiben, oder Tests schreiben, die Ihr Modell entwerfen?
- 21. Woher weiß man genaue Pixelgröße/Beziehungen zwischen CSS-Elementen?
- 22. Java statische Variable in Cluster-Umgebung
- 23. senden Sie Formulardaten an Admin-E-Mail in CodeIgniter
- 24. iPhone freundliche Websites mit ASP.NET MVC
- 25. Was macht ein Software-Architekt und welche Programme benutzen sie?
- 26. Gibt es eine Referenz/Ressource zum Entwerfen der Struktur einer Datendatei?
- 27. Thread Destruktoren in C++ 0x vs Boost
- 28. Design-Maßnahmen (außer Backups), um die Zuverlässigkeit und Integrität eines Dateisystems zu gewährleisten?
- 29. Cassandra Load Balancing mit einem geordneten Partitionierer?
- 30. iPhone Simulator für Windows
Bitte fragen Sie nicht genau die gleiche Frage zweimal. Entfernen Sie http://stackoverflow.com/questions/40198543/domain-models-and-uml und bearbeiten Sie in Zukunft einfach das, was Sie bereits erstellt haben. – Ister
Haben Sie es versucht? Sie können ein Klassendiagramm ausprobieren. Zeigen Sie etwas Mühe, bevor Sie nach der Lösung fragen. – darlinton
Aus der Beschreibung gehe ich davon aus, dass er feststeckte, nachdem er nur wenige potentielle Klassen entdeckt hatte. – Ister