Archiv für den Monat: April 2012

MindMaps Teil 2

Wie im vorigen Beitrag angekündigt wird jetzt untersucht, wie ein Metamodell für MindMaps aussehen könnte. Dabei soll es am Ende möglich sein, einfache MindMaps als Instanzen des Metamodells darzustellen.

Als Ausgangspunkt dient das UML-Metamodell. Eine MindMap besteht hauptsächlich aus Topics, die untereinander in einer Beziehung stehen. Im Metamodell gibt es daher die Klasse „Topic“. Ein „Classifier“ ist laut der UML-Spezifikation folgendermaßen definiert: „A classifier is a classification of instances, it describes a set of instances that have features in common“. Im Metamodell ist ein „Classifier“ eine Generalisierung von „Topic“.

Topics

Jedes Topic kann in der Mitte eines weiteren MindMap-Diagramms stehen, deshalb gibt es keine Klasse „RootTopic“ mit „SubTopics“, sondern alle Topics sind Instanzen derselben Metamodellklasse. Nichtsdestotrotz muss die Beziehung „Topic“-„SubTopic“ im Modell dargestellt werden, dafür dient eine Assoziation mit Rollenbezeichnung. An dieser Stelle würde eine Komposition dafür sorgen, dass Topics nicht separat angelegt und nachträglich untereinander verbunden werden können. Das kann an dieser Stelle durchaus Sinn ergeben, ich habe mich aufgrund der größeren Flexibilität aber für eine Assoziation entschieden. Mit der „Topic“-„SubTopic“-Beziehung sieht das Metamodell folgendermaßen aus:

SubTopics

Die Beziehung ist ungerichtet, je nach Anforderung kann die Assoziation auch nur in Richtung des SubTopics navigierbar sein.

Im Moment fehlt zur Darstellung des Beispiels des ersten Teils noch der „Link“ zwischen „Verständnis des Lesers“ und „MindMap to class diagram“. Der Link ist eine gerichtete Beziehung zwischen zwei Topics, er wird mit Hilfe der „DirectedRelationship“ des UML-Metamodells modelliert.

Links

Das Beispiel des ersten Teils kann jetzt als Instanz dieses Metamodells dargestellt werden:
Beispiel

Instanzen

MindMaps Teil 1

MindMaps sind Modelle, mit denen Sachverhalte strukturiert dargestellt werden. Ein Beispiel für eine MindMap ist folgendes Bild, welches diesen Blogeintrag beschreibt.

Beispiel für MindMaps

Fast jeder kennt MindMaps, aber nur wenige benutzen sie. Denn die Stärken von MindMaps, nämlich die strukturierte Darstellung auf einer hohen Abstraktionsebene, sind von dem Ruf begleitet, dass MindMaps zwar von ihrem Autor intensiv genutzt werden können, der unbeteiligte Leser ihnen aber nur wenige Informationen entnehmen kann.

Dieser Nachteil kann durch den Einsatz von Werkzeugen gemildert werden, denn durch die bereitgestellten Weiterverarbeitungsmöglichkeiten sind MindMaps keine „Sackgasse“ mehr, sondern können direkt in einen Prozeß eingebunden werden, zum Beispiel in der Softwareentwicklung. Dieses Video zeigt, wie MindMaps in UseCase- und Klassendiagramme umgewandelt werden.

Dieser Teil hat sich mit den Grundlagen von MindMaps beschäftigt. Im nächsten Teil wird ein einfaches Metamodell für MindMaps entwickelt.