Skip to content

Latest commit

 

History

History
77 lines (60 loc) · 3.49 KB

File metadata and controls

77 lines (60 loc) · 3.49 KB

CRC Card Speichermedium 💾

Class Responsibility Card of the database

Konzeptuelle Identitäten

  • erhobene Daten
  • Datei und/oder Datenbank
  • Speicherungsmethode
  • Format
  • Zugehörige Identitäten:
    • Tools
    • Einstellungsmöglichkeiten

Adjektive (bilden eventuell eigenständige Klasse)

  • erhoben
  • gespeichert
  • dauerhaft
  • einheitlich
  • konfigurierende

Verben (eventuelle Verantwortlichkeiten)

  • speichern
  • gesetzt werden (auch evtl gelöscht werden)
  • besitzen
  • gleich sein

folgende Klassen sind zustande gekommen:

Collections

  • Config File Collection
  • Bubble View Collection
  • Zoom Map Collection
  • Code Chart Collection
  • Eyetracking Collection

erhobene Daten, Tools, Einstellungsmöglichkeiten und Adjektive:


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

gelöscht werden, besitzen, gleich sein (Queries):


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.