![]() |
Comelio GmbH
|
Comelio-Blog > UML > Use Cases Use Case-Diagramme mit der UML
Use CasesEinsatzgebiet von Use CasesDie im Deutschen so genannten Anwendungsfalldiagramme (Spezifikation: Use Cases) zeigen den Nutzen eines Systems, also das, was ein System dem Nutzer an Funktionalität bereitstellt. Somit sind die Anwendungsfalldiagramme insbesondere dazu geeignet, die Funktionalität der zu programmierenden Software genau darzustellen. Die so genannte Use-Case-Beschreibung ist zunächst rein textuell und wird nicht mit UML-2.0-Notationselementen beschrieben. Diese rein textuelle Beschreibung ist damit nicht Gegenstand der Prüfung, sondern vielmehr die UML-Variante, die nachfolgend beschrieben wird. Bei den im Folgenden beschriebenen Notationselementen dreht sich im Grunde alles um die Akteure und den Use Case. Der Akteur ist sozusagen der Außenstehende, der den Use Case nutzt. Es muss sich dabei nicht unbedingt um einen Menschen handeln, der das System nutzt; es kann sich bei dem Akteur auch um ein Fremdsystem handeln, das die Dienste eines anderen Systems nutzt. Der Use Case (also der Geschäftsanwendungsfall) ist die Funktionalität, die ein System sozusagen dem Akteur bereitstellt. Der Akteur nutzt also aktiv einen Use Case. Zum Beispiel nutzt ein Passagier am Flughafen den Check-In. Wobei der Passagier in diesem Beispiel der Akteur wäre und der Vorgang des Check-In der eigentliche Use Case. Use Cases werden oft benutzt, um mit dem Kunden, der eine Software in Auftrag gibt, genauer zu kommunizieren und die Funktionalität zunächst einmal zu bestimmen. Hier geht es im Prinzip noch nicht um die genaue Konzeption der Software, sondern eher darum, wirklich herauszuarbeiten, welche kundenspezifischen Wünsche an sie gestellt werden. Oftmals weiß der Kunde oder Auftraggeber eher nur schemenhaft und relativ unkonkret, wie die genauen Probleme beschaffen sind, die er mit der zu entwickelnden Software lösen möchte. Für den Programmierer, beziehungsweise meistens den Projektleiter, gibt es zunächst die Aufgabe, den Kunden genau zu befragen und für ihn zu skizzieren, welches Geschäftsmodell die Software als Dienstleistung enthalten soll und welcher Vorteil dadurch erreicht werden kann. Auf diese Weise soll der Kunde durch das Use-Case-Diagramm der UML 2.0 die Möglichkeit erhalten, mit dem Programmierer eine gemeinsame Sprache zu finden und sich auszudrücken. Dies ist natürlich auch der Hauptgrund, warum die Anzahl der Notationselemente sehr eingeschränkt ist. Es ist ja notwendig, auf einem sehr niedrigen Abstraktionsgrad zu beginnen und erst einmal eine gemeinsame Sprache zu sprechen, mit der alles Notwendige geklärt und ggf. auch ein Angebot und eine Lösung vorgeschlagen werden kann. Wichtig ist es auch, dass Sie gar nicht erst versuchen sollten, hier schon ins Detail zu gehen. Bedenken Sie, dass die Use Cases grundsätzlich eher in der ersten Phase eines Projektes, der so genannten Analysephase, stehen und einen Überblick über die Funktionalität schaffen sollen. Das MetamodellDie Abhängigkeiten der Pakete des Use Cases sind in Abbildung 2.1: Abhängigkeiten von UseCases-Paketen aus der Spezifikation beschrieben. Die Use Cases sind dabei ein Teil aus dem Paket BasicBehaviors.
In Abbildung 2.2: Metamodell Use Cases sehen Sie zunächst einen Überblick über das Metamodell zu den Use Cases.
Notationen von Use CasesAkteurDer Akteur (Spezifikation: Actor) interagiert mit dem System. Er steht allerdings außerhalb des Systems und nutzt die durch den Use Case beschriebene Funktionalität. Untereinander dürfen die Akteure keine Beziehungen beispielsweise in Form einer Assoziation besitzen. Erlaubt ist allerdings die Generalisierung von Akteuren. Somit kann ein Akteur von einem anderen Akteur alle Eigenschaften erben. Der Erblasser darf in diesem Falle auch abstrakt sein, was bedeutet, dass von ihm keine Objekte instanziert werden dürfen und er ein reines Konzept darstellt. Es gibt unterschiedliche Darstellungsformen des Akteurs, wie man in Abbildung 2.3: Akteur ersehen kann.
In Abbildung 2.3: Akteur wäre es auch erlaubt, den Namen des Akteurs, also hier in diesem Falle selbst Akteur genannt, über dem Kopf anzubringen.
Alternativ gilt die Notation, die den Akteur als Classifier darstellt. Diese nutzt man eher, wenn man Fremdsysteme darstellt, die diese Funktionalität nutzen. Das Strichmännchen symbolisiert eine Notation dafür, dass es sich um einen menschlichen Akteur handelt. In Abbildung 2.5: Darstellung des Akteurs als Classifier könnte beispielsweise eine Bank ein Akteur sein, indem sie etwas kauft, also ein System nutzt.
Es gibt noch eine Notationsmöglichkeit, bei der direkt klar wird, dass ein Akteur ein ganz anderes System darstellen soll, das einen Use Case nutzt. In diesem Fall wäre dies beispielsweise ein Webservice oder eine andere Software, die Teile der zu erstellenden Logik nutzt. Dies zeigt Abbildung 2.6: Ein anderes System, das ein Akteur darstellt .
Use CaseEin Use Case beschreibt in Deutsch übersetzt einen Anwendungsfall, der die Funktionalität eines Teilaspektes in einem System darstellt. Zum Beispiel wären dies einzelne Funktionalitäten, die in einem Software-Programm zur Verfügung gestellt werden müssen. Die Use Cases zeigen nicht das benötigte Verhalten auf, dafür wäre beispielsweise das Aktivitätsdiagramm zuständig. Es soll lediglich dazu dienen, die Funktionalität aufzuzeigen, die ein System zur Verfügung stellen soll. Ein typisches Beispiel für einen Anwendungsfall ist der Eintrag eines neuen Kunden in ein Software-System. Ein Anwendungsfall, der selbst den Namen Use Case hat, sieht wie in Abbildung 2.7: Anwendungsfall gezeigt aus.
Natürlich gibt es auch hier eine Alternativnotation, wobei in dieser Notation auch Attribute und Operationen dargestellt werden können. Es ist z.B. erlaubt, den Namen eines Anwendungsfalls in der Ellipse anzugeben (siehe Abbildung 2.7: Anwendungsfall), oder unterhalb wie in Abbildung 2.8: Der Name des Use Cases kann auch unterhalb des Use Cases notiert werden.
Im Gegensatz zum Akteur ist es hier nicht erlaubt, den Namen oberhalb der Ellipse zu notieren. Die Darstellung als Classifier ist auch noch möglich, dies zeigt Abbildung 2.9: Classifier-Darstellung
Eine Reihenfolge bei der Abarbeitung der Use Cases wird nicht beschrieben, auch wenn mehrere Use Cases untereinander angeordnet sind. Später werden Sie sehen, dass die Use Cases auch in einer Beziehung zueinander stehen können. Einfache AssoziationDie Verbindung zwischen einem Akteur und einem Use Case geschieht über die so genannte einfache Assoziation (Spezifikation: Binary Association). Ähnlich wie bei der Assoziation im Klassendiagramm können hier natürlich auch Multiplizitäten angegeben werden, die auf der Seite des Anwendungsfalls angeben, wie oft er gleichzeitig ausgeführt werden darf. Standardmäßig, wenn also nichts anderes angegeben ist, gilt hier die Angabe 0..1. Anders herum gibt die Multiplizität auf der Seite des Akteurs an, wie viele Akteure in derselben Rolle den Anwendungsfall nutzen können. Standardmäßig ist der Wert 1. In seltenen Fällen nutzt man gerichtete Assoziationen, die darstellen, wer von beiden die Kommunikation anstößt. Im Falle einer Assoziation zwischen einem Akteur und einem Use Case verläuft die gerichtete Assoziation wie in Abbildung 2.10: Gerichtete Assoziation fast immer vom Akteur zum Use Case.
SubsystemAnwendungsfälle sind meistens in Subsystemen untergebracht, die wiederum benannt werden können. Die entsprechenden Akteure befinden sich – wie bereits erwähnt – außerhalb der Subsysteme, wie man in Abbildung 2.11: Subsystem ersieht.
Das Subsystem ist vom Prinzip her eine Komponente mit dem so genannten Stereotyp "subsystem", das ein spezieller Classifier ist: <<subsystem>> Ein Anwendungsfall kann auch in einem Classifier selbst dargestellt sein. Somit gibt es zum Beispiel den Fall, dass eine Komponente Anwendungsfälle bereitstellt. Enthält-BeziehungDie Enthält-Beziehung wird zwischen zwei Anwendungsfällen angewendet. Sie drückt aus, dass ein entsprechender Anwendungsfall einen anderen Anwendunsgfall einbindet und ihn prinzipiell mit einbezieht. Somit ist in Abbildung 2.12: Include-Beziehung zwischen zwei Anwendungsfällenzu sehen, dass der Use Case 2 ein Teil von Use Case 1 ist. Er kann auch an anderer Stelle als Teilfunktionalität aufgerufen werden, genauso wie er hier innerhalb von Use Case 1 aufgerufen werden. Ein Beispiel wäre die Neuregistrierung von Kunden auf einer Webseite, die entweder als eigenständige Aktion oder kurz vor dem Kassenbesuch ausgeführt werden kann und sogar notwendig ist, wenn man noch kein Kunde bei diesem Online-Shop ist.
Natürlich können Anwendungsfälle auch generalisiert werden. ErweiterungsbeziehungBei einer Erweiterungsbeziehung bindet ein Anwendungsfall einen anderen unter bestimmten Bedingungen ein. Diese Bedingungen lassen sich in einem Kommentar unterbringen. Ein Anwendungsfall kann hierbei durchaus beliebig viele Erweiterungspunkte definieren; wenn es sehr viele sind, sollte man jedoch die Notation des Classifiers vorziehen. Im Beispiel der Abbildung 2.13: Erweiterungsnotation wird Use Case 2 entsprechend reagieren, wenn die Bedingung eintritt, die für den Extension Point angegeben ist.
Es kann beliebig viele Erweiterungspunkte von Use Cases geben, wie Sie aus obigem Metamodell durch die Angabe der Multiziplität erkennen können. Für die Erweiterungspunkte müssen nicht unbedingt Akteure verbunden sein, während dies für die Enhält-Beziehung verpflichtend ist. In der Prüfung werden häufig Beispiele genannt, bei denen dies abgefragt wird.
|
||