Class Responsibility Card of the database
- erhobene Daten
- Datei und/oder Datenbank
- Speicherungsmethode
- Format
- Zugehörige Identitäten:
- Tools
- Einstellungsmöglichkeiten
- erhoben
- gespeichert
- dauerhaft
- einheitlich
- konfigurierende
- speichern
- gesetzt werden (auch evtl gelöscht werden)
- besitzen
- gleich sein
folgende Klassen sind zustande gekommen:
- Config File Collection
- Bubble View Collection
- Zoom Map Collection
- Code Chart Collection
- Eyetracking Collection
| Responsibility | Collaboration |
|---|---|
| Speicherung Daten Config File | Datenverwaltungsklasse (Analytics Repository) Config File |
| Speicherung Daten Bubble View | Datenverwaltungsklasse (Analytics Repository) BubbleView |
| Speicherung Daten Zoom Maps | Datenverwaltungsklasse (Analytics Repository) ZoomMaps |
| Speicherung Daten Code Charts | Datenverwaltungsklasse (Analytics Repository) CodeCharts |
| Speicherung Daten Eyetracking | Datenverwaltungsklasse (Analytics Repository) Eyetracking |
| Responsibility | Collaboration |
|---|---|
| Löschen, Finden, SaveMany,... Config File | Datenverwaltungsklasse (Analytics Repository) Config File |
| Löschen, Finden, SaveMany,... BubbleView | Datenverwaltungsklasse (Analytics Repository) BubbleView |
| Löschen, Finden, SaveMany... Zoom Maps | Datenverwaltungsklasse (Analytics Repository) ZoomMaps |
| Löschen, Finden, SaveMany... Code Charts | Datenverwaltungsklasse (Analytics Repository) CodeCharts |
| Löschen, Finden, SaveMany... Eyetracking | Datenverwaltungsklasse (Analytics Repository) Eyetracking |
| Finden, Queries, ... Datenanalyseclient | Datenverwaltungsklasse Datenanalyseclient |
-
Da alle Collections eine ähnliche bzw. fast die gleiche Struktur aufweisen, bietet sich eine abstrakte Oberklasse an, z.B. "abstract Collection".
-
Man könnte noch eine weitere Klasse zwischen den Collections und den Datenverwaltungsklassen einführen, um den "direkten" Zugriff auf die Datenbank zu verhindern oder um Funktionen zu schreiben, welche auf den in der Collection enthaltenen, trivialen Funktionen aufbauen. Dies würde jedoch (bei aktueller Aufgabenstellung) Dinge und Architektur eher verkomplizieren.
-
Auch gab es die Überlegung eine solche "Zwischenklasse" für den Datenanalyseclienten zu entwerfen (um beispielsweise bestimmte, "nicht triviale" Queries festzulegen), jedoch soll auch dieser bei aktueller Aufgabenstellung direkt auf die Collections zugreifen und eventuelle Queries darüber schicken. Hierfür sprechen auch die Pelrine's Laws, denn: "Don't do anything you can push off to someone else." Daraus folgt:
- Die Datenbank und zugehörige Collections sind nur dafür da, grundlegende Operationen auf den Daten auszuführen, nicht mehr.
- Alle weiteren, nicht trivialen Funktionen gehören zu den jeweiligen Tools und werden dort implementiert, sie gehören aber nicht zur Datenbank.