Identification Scheme

Aus THM-Wiki
Wechseln zu: Navigation, Suche

Identification Scheme (deutsch: Identifikationsschema) ist ein von Martin Fowler vorgestelltes Analysemuster aus dem Bereich der Softwaretechnik. Es beschreibt die Möglichkeit der Vergabe unterschiedlicher, aber dennoch eindeutiger Bezeichner für Objekte.


Kontext

In der Realität werden sehr oft unterschiedliche Bezeichner (englisch: Identifier) für ein Objekt benutzt. Trotz der unterschiedlichen Identifier lässt sich auf das Objekt schliessen, häufig auch durch dessen Bezeichnung (Identifier String). Die Identifier Strings werden oft nach einem bestimmten Schema vergeben, weshalb sie dadurch auch die Zugehörigkeit zu einem System widerspiegeln können. Diese Schema nennt Martin Fowler Identification Scheme.

Problem

In einfachen System reicht meist eine eindeutige Bezeichnung für die Identifizierung von Objekten aus, aber in komplexeren System können mehrere Bezeichnungen für ein und dasselbe Objekt schon mal notwendig sein bzw. vorkommen, was aber wiederum die Identifizierung der Objekte erschwert. Als Beispiel führt Martin Fowler hierbei die Identifizierung von Banken an. Dabei können Bankleitzahlen, SWIFT Codes und IBAN Codes eindeutige Bezeichnungen für eine Bank darstellen, die sich aber in ihrer Ausprägung unterscheiden und daher wiederum als gültige Identifier zulässig sind. Sie wären dann Teil des Banken Identification Scheme. Wie lassen sich aber solche unterschiedlichen Ausprägungen der Identifier softwaretechnisch modellieren?


Lösung

Die Lösung des Problem besteht aus der Zuweisung der Identifier zu einem bestehendem Identification Scheme, wobei erst durch die Zuweisung der Identifier zu Strings die unterschiedliche Ausprägung der Identifier ermöglicht wird. Die UML Modellierung der Lösung lässt aber zu, dass gleiche Strings für Identifier gültig sind, d.h. dass unterschiedliche Objekte den gleichen String im gleichen Identification Scheme enthalten können. Eine eindeutige Identifizierung der Objekte wäre aber dadurch nicht gewährleistet. Daher muss die Lösung um Constraints (deutsch: Bedingungen) erweitert werden, um die Eindeutigkeit zu bewahren.

Identification scheme.jpg

Eindeutigkeit

Mehrere Eindeutigkeitsbedingungen (englisch: Uniqueness Constraint) wären denkbar, aber die sinnvollste wäre zwischen Identification Scheme und String. Dadurch ist gewährleistet, dass es keine zwei Identifier mit dem gleichen String im gleichem Identification Scheme geben kann. Die anderen Möglichkeiten sind schwer durchführbar, unbequem und damit weniger sinnvoll.

Unveränderbarkeit

Wird ein Identifier einem Objekt zugewiesen, so besteht diese Zuweisung bis zur Zerstörung diese Objektes. Diese Zuweisung ist unveränderbar (englisch: immutable ). Die Eindeutigkeit wird bewahrt, da ein Identifier nicht anderen Objekten zugwiesen werden kann.

Stärken

  • Mehrere unterschiedliche Identifier sind für ein Objekt zulässig, die, jeder Identifier für sich, eine eindeutige Identifizierung der Objekte erlauben.
  • Mit der Auswahl eines Identification Schemes wird auch die Sinnhaftigkeit der Identifier aufrecht erhalten. Identifier des Bankensystems könnten keine Identifier des Gesundheitssystems darstellen.


Schwächen

  • Ohne Einführung der Bedingungen ist das Analysemuster kaum brauchbar, da es zu Konflikten führen kann, da unterschiedliche Objekte gleiche Kennungen besitzen können.
  • Bei der Vergabe der Identifier Strings besteht die Gefahr, das über die Strings Angaben zu den Funktionen der Objekte preisgegeben werden, indem z.B. die Identifier Strings Kürzel für Funktionen enthalten. Dies gilt aber als bad practise, da solche Informationen in einem zusätzlichen String untergebracht werden sollten.

Siehe auch


Literatur


Weblinks