Werkzeug- und Materialansatz - LinkFang.de





Werkzeug- und Materialansatz


Der Werkzeug- und Materialansatz (WAM-Ansatz) ist eine Methode zur Software-Entwicklung, die auf Anwendungsorientierung und hohe Gebrauchsqualität ausgerichtet ist.

Das Akronym "WAM" steht für die Worte Werkzeug Automat Material, welche die zentralen Entwurfsmetaphern des Ansatzes bilden. Seine Analysedokumente, Leitbilder, Arbeitsplatztypen, sowie Architektur-Richtlinien unterstützen die Entwicklungsteams bei iterativen, agilen Software-Projekten mit Prototyping und der Analyse von Geschäftsprozessen. Beim WAM-Ansatz handelt es sich um einen der wenigen eigenständigen europäischen Beiträge zur objektorientierten Methodik.

Der WAM-Ansatz stützt sich auf Erkenntnisse aus der Arbeitspsychologie und Soziologie: In Fabriken und Handwerksbetrieben bearbeiten Menschen Materialien mit geeigneten Werkzeugen. Dieses Bild lässt sich auf computergestützte Arbeit übertragen.

Geschichte

Der WAM-Ansatz wurde von Reinhard Budde und Heinz Züllighoven an der GMD in Bonn begründet[1]. In der Folge wurde er an der Universität Hamburg von Heinz Züllighoven und seiner Gruppe weiterentwickelt[2] und wird derzeit dort gelehrt. Der Ansatz basiert auf dem (Werk-)Zeug-Begriff von Martin Heidegger.

Unabhängig voneinander haben sich WAM-Ansatz und Domain-driven Design (DDD) entwickelt. Trotzdem haben die beiden Ansätze große Ähnlichkeiten.

Grundlagen

Im WAM-Ansatz befindet sich eine Reihe von Metaphern aus teils handwerklichen Bereichen, die verschiedene Entwurfskonzepte modellieren. Die wichtigsten fünf Bestandteile dieser Konzepte sind hier aufgelistet[2][3].

Fachwerte

Fachwerte sind Erweiterungen von primitiven Datentypen objektorientierter Programmiersprachen. Sie halten Informationen und sind unveränderlich, weswegen sich Fachwerte zum Beispiel für Geldbeträge anbieten: Es ergibt Sinn zwei Geldbeträge miteinander zu addieren, jedoch nicht sie zu multiplizieren. Hier ist es also angebracht einen unveränderlichen Geldbetrag als eigenen Fachwert zu behandeln und für jede Änderung an diesem einen neuen zu erstellen. Ein Fachwert kennt niemanden außer sich selbst und andere Fachwerte. Im DDD ist dieses Konzept als Value Object bekannt.

Materialien

Materialien sind Gegenstände, die ein Anwender im Rahmen einer Aufgabe mit einem Werkzeug bearbeitet und aus denen seine Arbeitsergebnisse bestehen. Ein Material darf andere Materialien, sowie Fachwerte benutzen und verändern, sowie neue Fachwerte erzeugen. Viele Eigenschaften von konkreten fachlichen Gegenständen, wie beispielsweise Verträgen, Formularen, Bankkonten oder Plänen, lassen sich sinnvoll auf Software-Materialien übertragen. Materialien sind Entity im DDD-Sinne.

Services

Services, auch als Dienstleistung bezeichnet, bieten fachlich motivierte Schnittstellen, an denen Fachwerte und Materialien entgegen genommen und zurückgeliefert werden können. Ein Service beinhaltet die Implementation der Fachlogik, welche nicht in ein Werkzeug oder einen Automaten passt. Er kennt und benutzt sowohl Fachwerte als auch Materialien, stellt diese jedoch nicht dar. Für die Bereitstellung von externen Daten (z.B. einer Netzwerkverbindung, Datenbank, Datei, etc.), bietet sich meistens ein Service an.

Automaten

Ein Automat ist einem Werkzeug sehr ähnlich, jedoch besitzt ein Werkzeug eine Grafische_Benutzeroberfläche ein Automat jedoch nicht. Ein typisches Anwendungsfeld sind Hintergrundaktivitäten bei denen er vor Ausführung seiner Tätigkeit konfiguriert wird und anschließend ohne Interaktion mit dem Benutzer arbeitet. Somit bietet er sich für z.B. Datenarchivierung, dem herunterladen von Dateien oder anderen länger andauernden Prozessen.

Werkzeuge

Werkzeuge ermöglichen dem Anwender über eine grafische Benutzeroberfläche zügig und flexibel Materialien zu bearbeiten: Sie nehmen ihm lästige Routinetätigkeiten ab, indem der Benutzer einen Prozess nur noch anstößt, den die Software anschließend ausführt. Weil sich die Bedienung eines Computers jedoch grundlegend von der Bedienung manueller Werkzeuge unterscheidet, ist es notwendig, das hinter dem manuellen Werkzeug stehende Konzept von Arbeit zu erkennen. Eine direkte Abbildung (manueller) Werkzeuge in Software ist - im Gegensatz zu Materialien - daher selten sinnvoll. Ein Werkzeug kann Services, Automaten, Materialien und Fachwerte verwenden, benutzen und verändern, was bei der Implementation zu zyklischen Abhängigkeiten führen kann. Um dem vorzubeugen ist die Verbindung zweier Subwerkzeuge (ein Werkzeug, welches selbst von einem anderen Werkzeug benutzt wird) nicht linkskomparativ.

Hierarchie

Alle Bestandteile sind in einer bestimmten Hierarchie angeordnet, wodurch eine klare und gut wartbare Struktur entsteht. Fachwerte kennen zum Beispiel nur sich selbst und andere Fachwerte, wohingegen Werkzeuge andere Werkzeuge, Automaten, Services, Materialien und Fachwerte kennen. Um die Klassenhierarchie nicht zu brechen und keine zyklischen Abhängigkeiten zu erzeugen, wird oftmals auf das Beobachtermuster zurückgegriffen, damit Klassen unterer Hierarchie-Ebenen höheren Ebenen Zustandsänderungen mitteilen können.

Siehe auch

Literatur

  1. Reinhard Budde, Heinz Züllighoven: Software-Werkzeuge in einer Programmierwerkstatt. Berichte der Gesellschaft für Mathematik und Datenverarbeitung Nr.182, Oldenbourg, München, 1990.
  2. 2,0 2,1 Heinz Züllighoven et. al.: Object-Oriented Construction Handbook. dpunkt.verlag/Copublication with Morgan-Kaufmann, 2004, ISBN 3-89864-254-2.
  3. http://wam-ansatz.de

Kategorien: Softwaretechnik

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Werkzeug- und Materialansatz (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.