Analysemuster. Lösungsmodelle für Probleme aus Fachdomänen.
Wofür braucht man ein Analysemuster? Welche Vorteile bietet es und welche Analysemuster gibt es?
Mit Analysemustern erhalten Sie Vorlagen, um Problemstellungen in einer Fachdomäne zu lösen. Diese Vorlagen wenden Sie in der Analysephase zur Erstellung von Modellen (Klassendiagrammen) an.
Dieses Beispiel ist das Muster "Koordinator", das von H. Balzert beschrieben wurde.
Was ist ein Analysemuster?
Zum Beispiel hat eine Bibliothek üblicherweise mehrere Exemplare eines bestimmten Buches. Diese Exemplare haben immer denselben Autor und Titel. Daraus ergibt sich, dass diese Eigenschaften – da mehrere Exemplare vorliegen – auch mehrfach vorhanden sind. Auf die Modellierung mit Klassendiagrammen übertragen, bedeutet dies: Wenn Sie nur mit einer Klasse wie Buch arbeiten würden, dann haben Sie das Problem, die gleichen Eigenschaften mehrfach bzw. redundant zu speichern.
Analysemuster wenden Sie somit in der Analysephase – also für die Erstellung fachlicher Modelle – an, um Strukturen von Geschäftsprozessen widerzuspiegeln. Die Muster beschreiben, wie eine Fachdomäne über ein Problem denkt, repräsentieren jedoch keine technische Implementierung. Sie dienen als Basis für die Anforderungsermittlung und geben die Interaktion und die Verantwortlichkeiten zwischen den Klassen vor.
Analysemuster sind für die Arbeit von Analysten und Designer, die objektorientierte Geschäftsprozessmodellierung mit der UML betreiben, von hoher Bedeutung.
Definition von Analysemuster:
Ein Analysemuster ist eine Vorlage, um eine organisationale, soziale oder wirtschaftliche Problemstellung in einer Fachdomäne zu lösen.
Vorteile von Analysemustern
Analysemuster in der Software-Entwicklung helfen Ihnen, die Problemstellungen besser zu verstehen. Die Klassendiagramme repräsentieren erprobtes Wissen, das Sie auf einer hohen Abstraktionsstufe anwenden können. Außerdem bieten Analysemuster ein Mittel für die Kommunikation zwischen Systemanalytikern und Domänenexperten. Denn durch die standardisierte Darstellung lassen sich die Modelle einfacher verstehen und auf die konkreten Problemstellungen kann genauer eingegangen werden. Dadurch können Sie mit Analysemustern den Aufwand in der Analysephase reduzieren und gleichzeitig eine höhere Qualität der Ergebnisse erzielen.
Klassifizierung von Analysemustern
Es gibt 2 Arten von Analysemustern:
Allgemeine/universelle (vor allem durch Balzert definiert):
- Vorlagen zur Modellierung
- Bausteine für andere Muster
Anwendungsspezifische (vor allem durch Fowler definiert):
- für Planungssysteme und Warenwirtschaftssysteme (Muster, die wiederkehrende Probleme bei der Analyse betrieblicher Informationssysteme betreffen)
Analysemuster in der Anforderungsanalyse
Indem Sie Modelle in der Analysephase erstellen, schaffen Sie eine Grundlage für die Anforderungsermittlung bzw. für die Ableitung von Use Cases. Vor allem Fowler lieferte mit seinem Musterkatalog in “Analysis Patterns: Reusable Object Models” ein Mittel, um spezifische Domänen wie Gesundheitswesen, Buchhaltung oder Finanzhandel objektorientiert zu analysieren und die Anforderungsanalyse damit schneller durchführen zu können. Daneben entwickelten Darimont und Lamsweerde Analysemuster zur Verfeinerung von Stakeholder-Zielen. Jackson schaffte mit seinem sogenannten “Problem Frames Approach” ebenfalls so etwas Ähnliches wie Analysemuster. Sie helfen Ihnen, Anforderungen effizient zu ermitteln. Hier entsprechen Problem Frames aber nicht Lösungen, sondern wiederkehrenden Problemen.
Da die nach Balzert definierten Analysemuster allgemein gehalten sind, lassen sie sich für alle Fachdomänen anwenden und anpassen. Somit bieten sie das flexibelste Hilfsmittel, um Klassendiagramme zu modellieren und Anforderungen sowie Use Cases abzuleiten.
Mit objectiF RPM analysieren Sie Fachdomänen mithilfe von Analysemustern.
Erfahren Sie mehr darüber, wie objectiF RPM Sie durch Musterkataloge unterstützt »
Die 10 allgemeinen Analysemuster
(nach H. Balzert: Lehrbuch der Objektmodellierung)
Liste
Beispiel: Eine Rechnung enthält eine oder mehrere Rechnungspositionen.
Eigenschaften
- Beziehungstyp: Komposition
- Ein Ganzes besteht aus gleichartigen Teilen (es gibt nur eine Teil-Klasse).
- Teil-Objekte sind einem Aggregat-Objekt fest zugeordnet, lassen sich aber löschen, ohne das Ganze zu löschen.
- Die Attribut-Werte des Aggregat-Objekts sind auch für die Teil-Objekte gültig (hier: Nummer und Datum der Rechnung)
- Das Aggregat-Objekt enthält in der Regel mindestens ein Teil-Objekt (Kardinalität ist mindestens 1, meistens 1…*).
Exemplartyp
Beispiel: In einer Bibliothek gibt es mehrere Exemplare eines Buches, die verwaltet werden müssen.
Eigenschaften
- Beziehungstyp: einfache Assoziation
- Ein Typ kann – zeitweise – unabhängig von seinen Exemplaren existieren (Kardinalität ist in der Regel *).
- Die neue Klasse enthält oft Begriffe wie Typ, Gruppe oder Beschreibung.
- Objektbeziehungen können nicht verändert, sondern nur gelöscht/entfernt werden.
- einziger Nachteil: Ein Verzicht auf die Klasse “Typ” würde zu einer redundanten Speicherung von Attributwerten führen.
Baugruppe
Beispiel: Ein Motorrad hat einen Motor und zwei Räder. Es liegen hier physische Objekte vor.
Eigenschaften
- Beziehungstyp: Komposition
- Physische Objekte
- Objektbeziehungen bestehen meist über einen längeren Zeitraum.
- Teil-Objekte können vom Aggregat-Objekt getrennt und einem anderen Ganzen zugeordnet werden.
- Ein Ganzes kann aus unterschiedlichen Teilen bestehen.
Rollen
Beispiel: Mehrere Studenten nehmen an einer Vorlesung teil oder halten einen Vortrag in der Vorlesung. Ein Student ist somit Zuhörer einer Vortragsveranstaltung, kann aber auch Vortragender sein.
Eigenschaften
- Beziehungstyp: zwei oder mehrere einfache Assoziationen zwischen zwei Klassen
- Objekt kann in Bezug zu Objekten der anderen Klasse mehrere Rollen annehmen.
- Unabhängig von der Rolle haben die Objekte die gleichen Eigenschaften
Historie
Beispiel: Ein Angestellter übt mehrere Tätigkeiten in einem Unternehmen aus. Nur eine Tätigkeit kann zu einem Zeitpunkt gültig sein. Er lässt sich außerdem weiterbilden.
Eigenschaften
- Beziehungstyp: einfache Assoziation
- Für ein Objekt müssen mehrere Kriterien dokumentiert werden.
- Für jedes Kriterium muss ein Zeitraum vorhanden sein.
- Bestehende Objektbeziehungen zu den Kriterien können nur erweitert werden.
Koordinator
Beispiel: Ein Student nimmt an einer Klausur eines Professors teil.
Eigenschaften
- Beziehungstyp: einfache Assoziation
- Statt einer n-ären Assoziation (n>=2) gibt es eine Koordinator-Klasse (hier: Teilnahme).
- Die Koordinator-Klasse weist wenig Attribute oder Operationen auf, dafür aber mehrere Assoziationen zu anderen Klassen (sie speichert Informationen in Bezug auf “Wer kennt wen?”).
Stückliste
Beispiel: Ein Verzeichnis kann andere Verzeichnisse, Dateien und Verknüpfungen enthalten. Wenn man ein Verzeichnis löscht, löscht man auch alle darin enthaltenen Elemente. Man kann aber einzelne Elemente eines Verzeichnisses auch woanders ablegen. Somit können alle eine Einheit bilden, aber auch einzeln für sich stehen.
Eigenschaften
- Beziehungstyp: Komposition
- Aggregat-Objekt und Teil-Objekte können Einheit sein, aber auch individuell behandelt werden.
- Teil-Objekte lassen sich anderen Aggregat-Objekten zuordnen.
- Kardinalität der Aggregat-Klasse entspricht 0…1.
- Ein Objekt kann sich aus mehreren Objekten unterschiedlicher Art zusammensetzen.
- Sonderfall Stückliste: Ein Objekt kann nur aus Objekten gleicher Art bestehen.
Wechselnde Rollen
Beispiel: Ein kassenärztlich registrierter Arzt übt im ersten und zweiten Halbjahr 2020 jeweils eine Tätigkeit als angestellter Arzt aus. Am 1.1.2021 erhält er seine Zulassung. Die zu speichernden Informationen für angestellte und zugelassene Ärzte können sich unterscheiden.
Eigenschaften
- Beziehungstyp (in Bezug auf Rollen): Generalisierung
- Ein Objekt der realen Welt kann unterschiedliche Rollen in unterschiedlichen Zeiträumen annehmen. Diese Rollen können ebenfalls unterschiedliche Eigenschaften und Operationen aufweisen.
- Objektbeziehungen zwischen Objekt und seinen Rollen lassen sich nur erweitern und nicht löschen oder zu anderen Objekten herstellen.
Gruppe
Beispiel: Zu einer Abteilung gehören mehrere Angestellte. Eine Abteilung könnte ohne Angestellte – für einen kurzen Zeitraum – existieren (Kardinalität: *) oder muss immer mindestens einen Angestellten umfassen (Kardinalität: 1…*).
Eigenschaften
- Beziehungstyp: einfache Assoziation
- Ein Gruppen-Objekt umfasst zu einem Zeitpunkt mehrere einzelne Objekte.
- Zu treffende Modellierungsentscheidung: Gruppe kann ohne einzelne Objekte existieren oder muss mindestens eines umfassen (wirkt sich auf die Kardinalität aus).
- Objektbeziehungen lassen sich auf- und abbauen.
Gruppenhistorie
Beispiel: Die Zugehörigkeit einer Gruppe soll für einen Zeitraum festgehalten werden.
Eigenschaften
- Beziehungstyp: Assoziation
- Einzelne Objekte gehören im Laufe der Zeit zu verschiedenen Gruppen-Objekten.
- Bestehende Objektbeziehungen bleiben auch bestehen; neue können hinzugefügt werden.
Wissen zum Mitnehmen
Alles über objectiF RPM – Software für Requirements Engineering und Projektmanagement
So nutzen Sie Analysemuster in objectiF RPM
objectiF RPM bietet einen Musterkatalog für die Analysemuster nach Balzert. Um ein Muster anzuwenden, markieren Sie einen Ordner bzw. Package. Dann machen Sie einfach einen Rechtsklick und wählen den Befehl Muster anwenden… . Dort entscheiden Sie, welche Vorlage für ein Analysemuster Sie brauchen. Schon sind die benötigten Klassen mit den Attributen erzeugt und Sie können ein UML-Klassendiagramm erstellen.