Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der UML UML dient zur Modellierung objektorientierter (Software-)Systeme Was bedeutet objektorientiert? Bei der objektorientierten Entwicklung werden die in der realen Welt vorkommenden Gegenstände und Begriffe als Objekte betrachtet. Objekt Gegenstand, der im allgemeinen aus dem Vokabular des Problem- oder Lösungsbereichs stammt. Zusammenfassung mehrerer Objekte zu einer. Eine definiert gleichartige Objekte, beschreibt Gemeinsamkeiten im Verhalten und in der Struktur und liefert den Bauplan für ein Objekt. Objekt vs. Ein Objekt ist eine eindeutige, konkrete Einheit, die in Zeit und Raum existiert, während eine die Abstraktion des Wesentlichen von Objekten an sich ist. IAS, Universität Stuttgart 2
Objekt vs. Name : Größe : Farbe : Huhn Eier legen() gackern() Berta Objekte Elfriede Kunigunde Elsa IAS, Universität Stuttgart 3 Definition - Objekt Ein Objekt (object)... besitzt einen bestimmten Zustand reagiert mit einem definierten Verhalten auf seine Umgebung besitzt eine Identität, die es von allen anderen Objekten unterscheidet kann ein oder mehrere andere Objekte kennen (Verbindungen bzw. links) UML-Notation für Objekt Attribut1 Attribut2 Objekt IAS, Universität Stuttgart 4
Definition - Eine... definiert für eine Kollektion von Objekten deren Struktur (Attribute), Verhalten (Operationen) und Beziehungen (relationships). besitzt einen Mechanismus, um neue Objekte zu erzeugen (object factory). UML-Notation für IAS, Universität Stuttgart 5 Definition - Attribute Attribute beschreiben die Daten, die von den Objekten einer angenommen werden können. Jedes Attribut ist von einem bestimmten Typ. Alle Objekte einer besitzen dieselben Attribute, jedoch unterschiedliche Attributwerte. UML-Notation für Attribute Attribut1 Attribut2 IAS, Universität Stuttgart 6
Definition - Operation Eine Operation beschreibt eine ausführbare Tätigkeit. Alle Objekte einer verwenden dieselben Operationen. Jede Operation kann auf alle Attribute eines Objekts dieser direkt zugreifen. Die Menge aller Operationen wird als das Verhalten der oder als die Schnittstelle der bezeichnet. UML-Notation für Operation Attribut1 Attribut2 Operation1 () Operation2 () IAS, Universität Stuttgart 7 Definition - Assoziation Definition: Eine Assoziation modelliert Verbindungen zwischen Objekten einer oder mehrerer n. Eine Assoziation modelliert stets Verbindungen zwischen Objekten, nicht zwischen n UML- Notation für Assoziation Assoziation Linie zwischen einer oder zwei n An jedem Ende der Linie steht die Wertigkeit bzw. Kardinalität (multiplicity) 1 1..* IAS, Universität Stuttgart 8
3 Arten von Assoziationen Einfache Assoziation (ordinary association) Aggregation (aggregation) Komposition (composite aggregation) Aggregation Lässt sich durch ist Teil von bzw. besteht aus beschreiben (Ganzes und Teile, whole part) UML- Notation für Aggregation Ganzes * * Teil Auto 1 4..5 Rad IAS, Universität Stuttgart 9 Komposition Starke Aggregation Kardialität der Aggregatklasse = 1 Ein Teil darf nur einem Ganzen zugeordnet sein Dynamische Semantik des Ganzen gilt auch für seine Teile (propagation semantics) Wird das Ganze gelöscht, werden automatisch seine Teile gelöscht (they live and die with it) UML-Notation für Komposition Ganzes 1 * Teil Bildschirm 1 * Pixel IAS, Universität Stuttgart 10
Definition - Vererbung Definition: Eine Vererbung (generalization) ist eine Beziehung zwischen einer allgemeinen (Basisklasse) und einer spezialisierten. - Die spezialisierte ist vollständig konsistent mit der Basisklasse, enthält aber zusätzliche Informationen (Attribute, Operationen, Assoziationen) - Allgemeine = Oberklasse (super class) - Spezialisierte = Unterklasse (sub class) UML- Notation für Vererbung Super Person Sub Student IAS, Universität Stuttgart 11 Definition - Anwendungsfall Ein Anwendungsfall (Use Case) besteht aus mehreren zusammenhängenden Aufgaben, die von einem Akteur durchgeführt werden, um ein Ziel zu erreichen bzw. ein gewünschtes Ergebnis zu erstellen. Anwendungsfall in einem Informationssystem Sequenz von zusammengehörenden Transaktionen, die von einem Akteur im Dialog mit einem System durchgeführt werden, um ein Ergebnis von messbarem Wert zu erhalten Alle Anwendungsfälle zusammen dokumentieren alle Möglichkeiten der Benutzung des Systems (Use Case Model) Ziel von Anwendungsfällen Spezifikation der ergebnisorientierten Arbeitsabläufe bei Benutzung der zu realisierenden Software IAS, Universität Stuttgart 12
Was ist ein Akteur (actor)? Rolle, die ein Benutzer des Systems spielt Häufig eine Person Kann auch Organisationseinheit oder anderes System sein Befindet sich immer außerhalb des Systems Akteur hat Einfluss auf das System Notation Akteur (actor) Akteur 1 Akteur 2 IAS, Universität Stuttgart 13 Anwendungsfall-Spezifikationsschablone (Use Case Template) Anwendungsfall: <Name des Anwendungsfalls> Ziel: <Zielsetzung bei erfolgreicher Ausführung des Anwendungsfalls> Kategorie: <primär (notwendig, häufig benötigt) sekundär (notwendig, selten benötigt) optional (nützlich, nicht unbedingt notwendig)> Vorbedingung: <erwarteter Zustand, bevor der Anwendungsfall beginnt> Nachbedingung Erfolg: Nachbedingung Fehlschlag: Akteure: Auslösendes Ereignis: Beschreibung: <Hier wird der Standardfall beschrieben> 1 <Erste Aktion> 2 <Zweite Aktion> Erweiterungen: 1a <Erweiterung des Funktionsumfangs der ersten Aktion> Alternativen: 1a <Alternative Ausführung der ersten Aktion> IAS, Universität Stuttgart 14
3r uet k A p met sy S 2r 1r uet uet k A k A Anwendungsfalldiagramm (Use Case Diagram) Notation Anwendungsfall1-1ßez or stf G ähcse - p 2ßez or stf G ähcse Anwendungsfall2 Anwendungsfall3 - p 3ßez or stf G ähcse Übersicht über die Beziehungen zwischen Akteuren und Anwendungsfällen IAS, Universität Stuttgart 15 Beziehungen im Anwendungsfalldiagramm - Extend-Beziehung Auftrag durchführen <<extend>> Auftrag mit Nachlieferung ausführen Erweiterung eines vorhandenen Anwendungsfalls - Include-Beziehung Von Einkauf - Wareneingang bearbeiten <<include>> Von Produktion - Wareneingang bearbeiten <<include>> Zwei Anwendungsfälle besitzen gemeinsames Verhalten Ware einlagern Extends- und Include-Beziehungen vermeiden redundante Anwendungsfall-Spezifikationen IAS, Universität Stuttgart 16
Definition - Szenario Ein Szenario (Scenario) ist eine Sequenz von Verarbeitungsschritten, die unter bestimmten Bedingungen auszuführen ist. - Die Verarbeitungsschritte sollen das Hauptziel des Akteurs realisieren und ein entsprechendes Ergebnis liefern - Szenarien beginnen mit dem auslösenden Ereignis und werden fortgesetzt bis das Ziel erreicht ist oder aufgegeben wird Szenarios werden durch Interaktionsdiagramme (Interaction Diagram) dargestellt UML bietet zwei Arten von Interaktionsdiagrammen an Sequenzdiagramm (Sequence Diagram) Kommunikationsdiagramm (Communication Diagram) IAS, Universität Stuttgart 17 Notation Sequenzdiagramm (sequence diagram) IAS, Universität Stuttgart 18
Sequenzdiagramm Zwei Dimensionen Vertikale repräsentiert die Zeit Horizontal werden die Objekte eingetragen Jedes Objekt wird dargestellt durch Objektsymbol Vertikal gestrichelte Linie (Objektlinie) Bedingung (condition) [<Bedingung>] Operation() Wiederholung (iteration) *Operation() oder * [<Bedingung>] Operation() IAS, Universität Stuttgart 19