Protokoll 2012-06-05 Review Nikolas Herbst

Aus SDQ-Wiki

Teilnehmer

  • Nikolaus
  • Qais
  • Fabian
  • Axel Busch
  • Philipp

Protokoll

  • Philipp: Sequenzdiagramme fehlen, um Dynamik der Architektur zu veranschaulichen
  • Qais: besser mit Datenbank (z.B. SQLLite) arbeiten statt mit CSV-Files
  • Qais: bei CSV-Implementierung auf Lizenz achten
  • Qais: Abwägung zwischen Platzierung des R-Servers (lokal vs. remote), um Netzwer
  • Axel: Warum kein Observer-Pattern, um Workload Management über veränderten Workload/Zeitserie zu benachrichtigen?
    • würde Polling erfordern
    • Daten kommen periodisch (in bestimmter Taktung) an, daurch auch periodische Verarbeitung sinnvoll
  • Axel: Werden Zeitreihen in CopyOnWriteArrayList abgelegt?
    • Nicht mehr aktuell, da bereits durch andere Datenstruktur ersetzt
    • Axel: bei vielen Schreibzugriffen nicht sinnvoll
    • bei fehlender Nebenläufigkeit aber gar keine Thread-safe Implementierung nötig
    • bei Konsolidierung mit Andre darauf achten, dass TimeSeries Objekt in Kiel möglicherweise doch nebenläufig verwendet wird
  • Fabian, zur Review-Vorlage: beschreibender Text für Strukturdiagramme hätte zum Verständnis beigetragen
  • Fabian: Was sind Forecast Objectives? z.B. Overhead der Vorhersagemethode
  • Philipp, zur Workload-Klasse: eine Methode je Phase verwenden
  • Qais: Statt Workload besser WorkloadClass schreiben
  • Klassendiagramm Data Management
    • Kardinalität zwischen Workload und ITimeSeries falsch (richtig: 0..1)
    • Enums generell ohne Assoziationen zu anderen Klassen darstellen
    • Methoden wie getTs() etc. nicht ohne Doku verständlich
  • Klassendiagramm Forecast Strategy
    • pull up von forecast() z.B. in den AbstractForecaster
    • Abstract Factory für Erzeugung der Forecast-Strategien?
  • Niko: 1 Thread je Workload richtige Entwurfsentscheidung?
    • ermöglicht z.B. je Workload ein eigenes Polling-Intervall
    • generell keine Einwände dagegen :)
    • Philipp: Alternativ hätte man sich auch ThreadPool überlegen können, wobei Jobs in einer Queue liegen
  • Qais: Wie wurde Entscheidungsbaum erzeugt? Entscheidungsfindungsprozess dokumentieren!
  • Qais: AbstractClassificationStrategy.median(...): int/int immer int!
  • Qais: Einfacher &-Operator absichtlich?
  • Qais: RServerBridgeControl.getInstance() nicht thread-sicher (unsynchronized lazy initialisation)
  • Qais: "Magic-Numbers" vermeiden
  • Philipp: AbstractClassificationStrategy: Methoden in Utility-Klasse auslagern, außerdem Methoden mit Verben benennen sofern keine mathematischen Operatoren