Anwendungsfalldiagramm: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 2: | Zeile 2: | ||
Die '''Unified Modeling Language''' (Vereinheitlichte Modellierungssprache), kurz '''UML''', ist eine standardisierte grafische Modellierungssprache zur Beschreibung von Anforderungen und Softwarearchitekturen. Das '''Anwendungsfalldiagramm''' ist Teil der UML und wird im englischsprachigen Raum auch als '''Use Case Diagramm''' bezeichnet. | Die '''Unified Modeling Language''' (Vereinheitlichte Modellierungssprache), kurz '''UML''', ist eine standardisierte grafische Modellierungssprache zur Beschreibung von Anforderungen und Softwarearchitekturen. Das '''Anwendungsfalldiagramm''' ist Teil der UML und wird im englischsprachigen Raum auch als '''Use Case Diagramm''' bezeichnet. | ||
Ziel des Anwendungsfalldiagramms ist es, in der Analysephase die | Ziel des Anwendungsfalldiagramms ist es, in der Analysephase die Anforderungen des Auftraggebers aus fachlicher Sicht für alle Beteiligten verständlich, übersichtlich und vollständig zu modellieren. Es dient als zentrales Kommunikationsmittel, um zwischen potenziellen Anwendern, Auftraggebern (Fachseite) und Auftragnehmern (Entwicklerteam) zu vermitteln. Als strukturierte Anforderungsbeschreibung können Anwendungsfalldiagramme direkt in das Lastenheft mit aufgenommen werden. | ||
Das Anwendungsfalldiagramm besteht aus drei wesentlichen Elementen:<ref>Heide Balzer: ''Lehrbuch der Objektmodellierung - Analyse und Entwurf'', Spektrum Akademischer Verlag, S. 62 ff.</ref> | Das Anwendungsfalldiagramm besteht aus drei wesentlichen Elementen:<ref>Heide Balzer: ''Lehrbuch der Objektmodellierung - Analyse und Entwurf'', Spektrum Akademischer Verlag, S. 62 ff.</ref> | ||
| Zeile 10: | Zeile 10: | ||
''Hinweis zur Abgrenzung:'' Der detaillierte, prozessuale Ablauf von Anwendungsfällen wird nicht hier, sondern vorzugsweise in einem UML-Aktivitätendiagramm dargestellt. | ''Hinweis zur Abgrenzung:'' Der detaillierte, prozessuale Ablauf von Anwendungsfällen wird nicht hier, sondern vorzugsweise in einem UML-Aktivitätendiagramm dargestellt. | ||
== Gesamtbeispiel (Systemkontext) == | |||
Ein vollständiges Anwendungsfalldiagramm führt alle Elemente innerhalb eines umschließenden '''Systemrahmens (System Boundary)''' zusammen. Die Akteure befinden sich außerhalb des Systems, während die Anwendungsfälle innerhalb des Systems liegen und über Beziehungen miteinander verknüpft sind. | |||
<html> | |||
<svg width="680" height="340" viewBox="0 0 680 340" xmlns="http://www.w3.org/2000/svg" style="background-color: transparent;"> | |||
<rect x="160" y="20" width="360" height="300" rx="8" fill="#ffffff" stroke="#222222" stroke-width="2" /> | |||
<text x="175" y="45" font-family="Arial, sans-serif" font-size="14" font-weight="bold" fill="#222222">System: Onlineshop</text> | |||
<g transform="translate(30, 90)"> | |||
<circle cx="30" cy="20" r="15" fill="#ffffff" stroke="#222222" stroke-width="2"/> | |||
<line x1="30" y1="35" x2="30" y2="75" stroke="#222222" stroke-width="2"/> | |||
<line x1="10" y1="50" x2="50" y2="50" stroke="#222222" stroke-width="2"/> | |||
<line x1="30" y1="75" x2="10" y2="105" stroke="#222222" stroke-width="2"/> | |||
<line x1="30" y1="75" x2="50" y2="105" stroke="#222222" stroke-width="2"/> | |||
<text x="30" y="125" font-family="Arial, sans-serif" font-size="12" font-weight="bold" text-anchor="middle" fill="#222222">Kunde</text> | |||
</g> | |||
<line x1="90" y1="145" x2="185" y2="105" stroke="#222222" stroke-width="2" /> | |||
<line x1="90" y1="155" x2="185" y2="235" stroke="#222222" stroke-width="2" /> | |||
<g transform="translate(185, 70)"> | |||
<ellipse cx="85" cy="30" rx="75" ry="25" fill="#ffffff" stroke="#222222" stroke-width="2"/> | |||
<text x="85" y="34" font-family="Arial, sans-serif" font-size="11" font-weight="bold" text-anchor="middle" fill="#222222">Artikel bestellen</text> | |||
</g> | |||
<g> | |||
<line x1="270" y1="95" x2="375" y2="135" stroke="#222222" stroke-width="1.5" stroke-dasharray="4,4" /> | |||
<polygon points="383,138 373,130 369,139" fill="#222222" /> | |||
<text x="335" y="112" font-family="Arial, sans-serif" font-size="10" font-weight="bold" fill="#222222">«include»</text> | |||
</g> | |||
<g transform="translate(370, 125)"> | |||
<ellipse cx="85" cy="30" rx="75" ry="25" fill="#ffffff" stroke="#222222" stroke-width="2"/> | |||
<text x="85" y="34" font-family="Arial, sans-serif" font-size="11" font-weight="bold" text-anchor="middle" fill="#222222">Login durchführen</text> | |||
</g> | |||
<g> | |||
<line x1="260" y1="210" x2="260" y2="132" stroke="#222222" stroke-width="1.5" stroke-dasharray="4,4" /> | |||
<polygon points="260,124 256,134 264,134" fill="#222222" /> | |||
<text x="268" y="175" font-family="Arial, sans-serif" font-size="10" font-weight="bold" fill="#222222">«extend»</text> | |||
</g> | |||
<g transform="translate(185, 210)"> | |||
<ellipse cx="85" cy="30" rx="75" ry="25" fill="#ffffff" stroke="#222222" stroke-width="2"/> | |||
<text x="85" y="34" font-family="Arial, sans-serif" font-size="11" font-weight="bold" text-anchor="middle" fill="#222222">Reklamation einreichen</text> | |||
</g> | |||
<g transform="translate(590, 90)"> | |||
<rect x="0" y="35" width="70" height="40" fill="#ffffff" stroke="#222222" stroke-width="2" rx="3" /> | |||
<text x="35" y="25" font-family="Arial, sans-serif" font-size="11" font-style="italic" text-anchor="middle" fill="#555555">«system»</text> | |||
<text x="35" y="58" font-family="Arial, sans-serif" font-size="11" font-weight="bold" text-anchor="middle" fill="#222222">Support</text> | |||
</g> | |||
<line x1="535" y1="155" x2="590" y2="120" stroke="#222222" stroke-width="2" /> | |||
</svg> | |||
</html> | |||
== Notation == | == Notation == | ||
| Zeile 177: | Zeile 233: | ||
=== Generalisierung === | === Generalisierung === | ||
Zwischen zwei Anwendungsfällen und Akteuren kann eine Generalisierungsbeziehung existieren (Vererbungspfeil). Ausgedrückt wird damit, dass der spezialisierte Anwendungsfall oder Akteur alle Bestandteile des allgemeinen Anwendungsfalls oder Akteurs beinhaltet. Der spezialisierte Anwendungsfall oder Akteur konkretisiert oder erweitert den allgemeinen Anwendungsfall. | Zwischen zwei Anwendungsfällen und Akteuren kann eine Generalisierungsbeziehung existieren (Vererbungspfeil). Ausgedrückt wird damit, dass der spezialisierte Anwendungsfall oder Akteur alle Bestandteile des allgemeinen Anwendungsfalls oder Akteurs beinhaltet. Der spezialisierte Anwendungsfall oder Akteur konkretisiert oder erweitert den allgemeinen Anwendungsfall. | ||
==== Generalisierung von Akteuren ==== | |||
<html> | <html> | ||
| Zeile 207: | Zeile 265: | ||
Im obigen Beispiel ist der Akteur '''Fahrer''' eine Spezialisierung von '''Anwender'''. Ein Fahrer besitzt alle Fähigkeiten, Use Cases und Eigenschaften eines allgemeinen Anwenders, wie z.B. Vorname, Nachname, Benutzername und dass er sich mit dem Benutzernamen und Passwort anmelden kann (login), fügt jedoch spezifische Eigenschaften oder Rollen hinzu. | Im obigen Beispiel ist der Akteur '''Fahrer''' eine Spezialisierung von '''Anwender'''. Ein Fahrer besitzt alle Fähigkeiten, Use Cases und Eigenschaften eines allgemeinen Anwenders, wie z.B. Vorname, Nachname, Benutzername und dass er sich mit dem Benutzernamen und Passwort anmelden kann (login), fügt jedoch spezifische Eigenschaften oder Rollen hinzu. | ||
==== Generalisierung von Anwendungsfällen ==== | |||
<html> | |||
<svg width="540" height="200" viewBox="0 0 540 200" xmlns="http://www.w3.org/2000/svg" style="background-color: transparent;"> | |||
<g transform="translate(175, 10)"> | |||
<ellipse cx="95" cy="30" rx="90" ry="25" fill="#ffffff" stroke="#222222" stroke-width="2"/> | |||
<text x="95" y="34" font-family="Arial, sans-serif" font-size="11" font-weight="bold" text-anchor="middle" fill="#222222">Zahlung durchführen</text> | |||
</g> | |||
<g> | |||
<line x1="130" y1="115" x2="200" y2="70" stroke="#222222" stroke-width="2" /> | |||
<polygon points="212,62 195,64 203,77" fill="#ffffff" stroke="#222222" stroke-width="2" /> | |||
</g> | |||
<g> | |||
<line x1="410" y1="115" x2="340" y2="70" stroke="#222222" stroke-width="2" /> | |||
<polygon points="328,62 337,77 345,64" fill="#ffffff" stroke="#222222" stroke-width="2" /> | |||
</g> | |||
<g transform="translate(15, 115)"> | |||
<ellipse cx="95" cy="30" rx="90" ry="25" fill="#ffffff" stroke="#222222" stroke-width="2"/> | |||
<text x="95" y="34" font-family="Arial, sans-serif" font-size="11" font-weight="bold" text-anchor="middle" fill="#222222">Mit Kreditkarte bezahlen</text> | |||
</g> | |||
<g transform="translate(335, 115)"> | |||
<ellipse cx="95" cy="30" rx="90" ry="25" fill="#ffffff" stroke="#222222" stroke-width="2"/> | |||
<text x="95" y="34" font-family="Arial, sans-serif" font-size="11" font-weight="bold" text-anchor="middle" fill="#222222">Per PayPal bezahlen</text> | |||
</g> | |||
</svg> | |||
</html> | |||
Ebenso können Anwendungsfälle untereinander generalisiert werden. Der allgemeine Use Case ''„Zahlung durchführen“'' wird hierbei durch die konkreten, spezialisierten Ausprägungen ''„Mit Kreditkarte bezahlen“'' und ''„Per PayPal bezahlen“'' geerbt und ausdifferenziert. | |||
[[Kategorie:Modellierung]] | [[Kategorie:Modellierung]] | ||
[[Kategorie:FI_I_SDM]] | [[Kategorie:FI_I_SDM]] | ||
[[Kategorie:AHR_I_Informatik LK]] | [[Kategorie:AHR_I_Informatik LK]] | ||