Knowledge level

Aus THM-Wiki
Wechseln zu: Navigation, Suche

Knowledge Level ist ein w:de:Analysemuster von w:de:Martin Fowler und gehört zu den Organization Structures.

Problem

Bei der Domänenmodellierung für ein Projekt kann es dazu kommen, dass die Komplexität der Beziehungen zwischen den Klassen nicht mehr übersichtlich mit den einfachen Organization Structure Patterns abbildbar sind.

Lösungsansatz

Um die Komplexität zu bewältigen wird zwischen zwei Ebenen unterschieden, auf denen Objekte und deren Beziehungen modelliert werden. Im „Operational Level“ werden die individuellen Beziehungen zwischen den Klassen definiert. Im „Knowledge Level“, oft auch Metaebene genannt, werden die strukturellen Zusammenhänge. Die Beziehungen der Objekte auf betrieblicher Ebene folgen den dort definierten Strukturregeln.

Beispiel

Auf Metaebene wird eine Klasse Mitarbeitertyp definiert. Jedem Mitarbeitertyp wird eine bekannte Kombination aus Rentenplan und Vergütungsart zugewiesen. Sollte sich eine neue Art der Rentenplan/Vergütungsart ergeben wird ein neuer Mitarbeitertyp generiert. Dieser Typ steht dann zur Verfügung, um die Entlohnungsmethode für den Mitarbeiter festzulegen.Example.jpg

Knowledge Level

Durch die Einführung einer Metaebene (Knowledge Level) werden die strukturellen Abhängigkeiten von den betrieblichen Beziehungen getrennt. Es soll das Wissen um die komplexen strukturellen Abhängigkeiten der Klassen dynamisch angepasst werden können. Die Schwierigkeit bei der Einführung eines Knowledge Levels ist, herauszufinden, welche Klassen sich strukturell zusammenfassen lassen um Erweiterungen und Änderungen ohne, oder zumindest ohne große Veränderung am Quellcode vornehmen zu können.

Verwendungszweck

Die Verwendung von Knowledge Level erleichtert spätere Änderungen und Erweiterungen und führt zu einer besseren Wartbarkeit des Programms. Im Idealfall können Änderungen sogar ohne Quellcodeanpassung vorgenommen werden. Des weiteren wird durch die Trennung von „operational level“ und „knowledge level“ Komplexität aus dem Entwurf genommen und die Verständlichkeit verbessert. Eine Gefahr bei der Verwendung von Knowledge Leveln ihre Flexibilität. Durch die einfache Art der Anpassung des Knowledge Levels wird gern vernachlässigt, dass auch hier das Resultat getestet und auf seine Sinnhaftigkeit geprüft werden muss.

Weblinks

--Kraus-a75 12:35, 3. Aug. 2007 (CEST)