# Observation (Analysemuster)

Observation (englisch für Beobachtung) ist ein Analysemuster aus der Softwaretechnik zur Modellierung von qualitativen Eigenschaften für ein Objekt. Das Muster wurde von Martin Fowler in einem Projekt des National Health Service zur Modellierung des Gesundheitswesens entwickelt und erstmals 1996 in seinem Buch Analysis Patterns beschrieben.

## Problem

Objekte der realen Welt können als Datensätze, Attribute, Objekte und auf andere Art und Weisen in Computersystemen abgebildet werden. In der objektorientierten Softwaretechnik ergeben sind grundsätzlich zwei unterschiedliche Möglichkeiten. Die Information kann als Assoziation in Form eines referenzierten Objektes abgelegt werden oder als Attribut in Form eines einfachen Datentyps gespeichert werden.
Um eine eindeutige Zuordnung von Messwerten und deren Einheiten zu gewährleisten und somit eine semantische Fehlinterpretation des internationalen Einheitensystems auszuschließen, hat Martin Fowler das Quantity-Muster entwickelt.
Sobald aber zu einem Objekt mehr als eine Messung (engl. Measurement) anfällt, müssten bei der Anwendung des Quantity-Musters mehrere Attribute in dem Objekt in Form von Referenzen erstellt werden, was zu einer unnötigen Aufblähung der Klasse führen würde. Des Weiteren ist eine Abbildung von messungsspezifischen Daten und einer Integration der qualitativen Eigenschaften nicht ohne Erweiterung des Modells möglich.

## Kontext

Martin Fowler hat sich im Zuge eines Projekts des National Health Service in ein Projektteam aus Ärzten, Krankenschwestern und -pflegern und Analysten eingebunden und war mit der Aufgabe betraut, ein System zur Abbildung des Gesundheitswesens aus klinischer Perspektive zu erstellen. Seine Anregungen und Beispiele basieren daher auf dem klinischen Alltag, hier im Besonderen der Umgang mit der Messung und Verarbeitung klinischer Parameter wie Laborwerte, Blutgruppen, Krankheitsdiagnosen, Geschlecht etc. Seine entwickelten Modelle sind jedoch auch zu allgemeineren Lösungen entwickelt worden (vgl. Motivation von Mustern).
Beobachtungen spielen im medizinischen Umfeld eine wesentliche Rolle, da sie eine Zuordnung spezifischer Bedingungen und Messungen zu einem Patienten zu einem bestimmten Zeitpunkt ermöglichen. Diese Tatsache veranlasste Fowler schließlich zur Entwicklung des Observation-Analysemusters.
Solche Beobachtungen können Blutdruck, Augenfarbe, Blutgruppe oder ähnliche Ausprägungen sein.

## Kräfte

In seinem Buch Analysis Patterns führt Martin Fowler über die Entwicklung der Muster Quantity, Conversion Ratio, Compound Units, Measurement schließlich das Muster Observation ein. In der Beschreibung beinhaltet ist die Einführung des Musters Knowledge Level sowie der musterähnlichen Struktur Phenomenon Type. Das Measurement -Muster wurde in Form des Observation Musters unter Berücksichtigung und Verarbeitung von qualitativen Informationen ergänzt.

## Lösung

Da im Gesundheitssystem ein Objekt auch qualitative (= einordnende) Eigenschaften besitzen muss, dies aber in seinen bisherigen Mustern Quantity, Measurement und Phenomenon so nicht darstellbar war, schlägt Martin Fowler vor, das Measurement-Muster unter Berücksichtigung von qualitativen Informationen als Observation-Muster weiterzuentwickeln.
Eine Observation (engl. für Beobachtung, Wahrnehmung) kann eine Messung (engl. Measurement) sein, also aus Einheit und gemessenem Wert bestehen oder der Einteilung in eine Kategorie entsprechen.
Zu einem Objekt (Klasse Person) wird eine Referenz auf Objekte der Klasse Observation definiert. Eine Beobachtung tritt immer in Form einer Messung oder einer Beobachtungs-Kategorie (z. B. männlich, weiblich; positiv, negativ; A, AB, B, 0; etc.) auf. Somit ist eine Instanz des Typs Beobachtung aus konzeptioneller Sicht entweder eine Instanz vom Typ Messung oder eine Instanz vom Typ Kategorie Beobachtung. Damit dies bei der Modellierung umgesetzt werden kann, wird Modellierungssprache um Klassifikationen, eine Verallgemeinerung der Generalisierung, erweitert.
Mehrere Phänomene sind zu einem Phänomenentyp assoziiert, jedes Phänomen gehört zu genau einem Typ. Die feste Zuordnung einer Kategorie-Beobachtung zu genau einem Phänomenentyp geschieht über das festgestellte Phänomen. Der Phänomenentyp gib an, um welche Art von Wahrnehmung es sich handelt. Die zu einem Phänomenentyp assoziierte Menge von Phänomenen beschreibt alle möglichen Ergebnisse einer Kategorie-Observation vom gewählten Phänomenentyp an einer Person.
Die Assoziation zwischen Phänomen und Phänomentyp bildet die Wissensebene. Durch die Assoziation werden Regeln formalisiert die sonst nur als Kommentare berücksichtigt worden wären. Wissensebene und operationelle Ebene sind so miteinander verbunden, dass Regelverstöße nicht möglich sind.
Die Untergliederung in Wissensebene und operationelle Ebene wird der Natur der erfassten Daten gerecht. Objekte der Wissensebene ändern sich seltener als Objekte der operationellen Ebene. Die Wissensebene beschreibt gewissermaßen das Verhalten von Objekten.

## Beispiel

* Die Tatsache, dass eine Person zur Blutgruppe A gehört wird durch eine Kategorie-Observation einer Person dargestellt, dessen Phänomen Blutgruppe A ist. Dieses Phänomen ist mit dem Phänomentyp Blutgruppe verknüpft.
* Der niedrige Ölstand eines Kfz kann als Kategorie-Observation modelliert werden. Der Phänomentyp ist der Ölstand mit möglichen Phänomenen zu viel, OK und zu niedrig. Die Observation verknüpft das KFZ mit dem Phänomen zu niedrig.

## Besonderheiten
### Dual-Time-Record

Oftmals haben Beobachtungen einen beschränkten zeitlichen Rahmen, in dem sie angewandt werden können. Der Endpunkt dieses Zeitfensters gibt an, ab wann diese Beobachtung ihre Gültigkeit verliert. Meist geschieht diese Beobachtung zu einem anderen Zeitpunkt als das festgelegte Zeitfenster. Dadurch existieren zwei Zeiteinträge: Das Zeitfenster der Gültigkeit der Beobachtung wurde und wann sie aufgezeichnet wurde. Dazu hat Fowler folgendes Modell konstruiert.

### Rejected Observation

Fehlerhafte Beobachtungen können im medizinischen Umfeld nicht einfach gelöscht werden, da z. B. Behandlungen oder Therapien auf diesen falschen Beobachtungen beruhen. Zudem gibt es hier eine Reihe von gesetzlichen Regelungen die einzuhalten sind, z. B. Dokumentation, Meldung an die Behörden etc. Um dies ebenfalls im Modell abbilden zu können, wird eine Objekt Rejected Observation eingefügt. Dieses muss mit der Beobachtung verknüpft sein, die es verwirft.

### Active Observation, Hypothesis und Projection

Gerade im klinischen Bereich sind 100 % verifizierte Diagnosen ohne eingehende Untersuchungen die Ausnahme. Oftmals lassen sich Diagnosen erst nach einer ganzen Reihe von klinischen Tests und Untersuchungen bestätigen. Bis zu diesem Zeitpunkt stellt der Kliniker Vermutungen an, was der Patient haben könnte, wie dies durch Tests nachzuweisen sei und wie er dementsprechend zu behandeln sei.
Es gibt also aus Sicht des Patienten lange Zeit keine Gewissheit, an welcher Krankheit er denn nun leidet (z. B. kann die Beobachtung von Durst, Gewichtsverlust und Polyurie für Diabetes sprechen, dies muss durch entsprechende Tests verifiziert werden).
Damit dieser Umstand im Modell Fowlers Berücksichtigung finden kann, werden die Beobachtungen in drei Untergruppen unterteilt:
Hypothese: Vermutung, die durch weitere Tests bestätigt werden soll Active Observation: Diese Beobachtung ist verifiziert und sämtliche Behandlungsschritte basieren auf dieser Beobachtung Projektion: Was kann der Zukunft alles als Folge der Krankheit passieren?

### Associated Observation

Um einzelne Beobachtungen miteinander zu verknüpfen (z. B. der übermäßige Durst des Patienten kann auf einen Diabetes hinweisen), hat Fowler die Erweiterung der Associative Observation eingefügt. Das Zusammentragen und Auswerten der einzelnen Beobachtungen mündet in einer sog. Associated Observation (engl. für miteinander verknüpfte Beobachtungen), z. B. Diabetes Mellitus. Diese Associated Observation wird mit einer Associative Function, deren Argumente die Beobachtungsbegriffe (wie z. B. Gewichtsverlust, Durst, Polyurie etc.) sind, verknüpft. Das daraus resultierende Produkt ist die Diagnose, z. B. Diabetes Mellitus.