Systemanalyse Skripte
Systemanalyse Skripte
Objektorientierte Analyse
und objektorientierter Entwurf
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 2
Inhaltsverzeichnis
1.–2. Termin:
Einleitung
Einleitung,
Grundlagen
Grundkonzepte der Objektorientierung
Weitere UML-Diagramme
Enterprise Architect
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 3
Einleitung: Lernziele dieses Kapitels
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 4
DHBW-Verwaltungssystem: Strukturierte Modellierung (klassisch)
Studien- Verträge
fächer Vorlesungen für Dozenten
anlegen erfassen drucken
Notenbe-
scheinigung
Funktionale Zerlegung drucken
Klausur-
Datenstrukturen ergebnisse
werden häufig in den eingeben
einzelnen Funktionen Noten via
definiert Internet
abfragen
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 5
DHBW-Verwaltungssystem: Objektorientierte Modellierung
Vererbung Person
Klasse Komposition
Prüfungs-
Datenorientierte ergebnis hält
Zerlegung
ist Ergebnis von
Funktionen
wird gehalten für
werden den Vorlesung
Datenobjekten
zugeordnet gehört zu findet statt in
Fach Semester
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 6
Objektorientierte Analyse, Design und Programmierung
Objektorientierung = Durchgängiges Konzept für die Software-Entwicklung
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 7
Was ist die UML? UML
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 9
Literatur zu UML
Folgende Bücher geben einen schnellen Überblick:
M. Fowler (2004): UML konzentriert: Eine kompakte Einführung in die
Standard-Objektmodellierungssprache. Zu UML 2.0.
3. aktualisierte Auflage, Addison-Wesley, München.
G. Schneider, J.P. Winters (2001): Applying Use Cases: A Practical Guide,
2. Auflage. Addison-Wesley Longman, Amsterdam.
T. Quatrani, J. Palistrant (2006): Visual Modeling with IBM Rational Software
Architect and UML. Addison-Wesley Longman, Amsterdam.
Detaillierte Informationen zur UML findet sich in:
G. Booch et al. (2007): Das UML-Benutzerhandbuch. Aktuell zur Version 2.0.
Addison-Wesley, München.
J. Rumbaugh et al. (2004): The Unified Modeling Language Reference Manual.
Covers UML 2.0, 2. Auflage. Addison-Wesley Longman, Amsterdam.
I. Jacobson et al. (1999): The Unified Software Development Process.
Addison-Wesley Longman, Amsterdam.
Internet: [Link]/uml, [Link]
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 10
Grundkonzepte der Objektorientierung
Was ist ein Objekt?
Was ist eine Klasse?
Wie hängen Klassen und Objekte zusammen?
Wie werden Klassen in der UML dargestellt?
Was sind Attribute?
Was sind Operationen?
Wie funktioniert die Ausführung eines OO-Programms?
Was ist Kapselung?
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 11
Lernziele dieses Kapitels
Nach diesem Kapitel sollten Sie
die folgenden Grundbegriffe der Objektorientierung verstehen
erklären können:
– Objekt und Klasse
– Attribut und Operation
– Klassenattribut und Klassenoperation
– Botschaften
– Kapselung
das Grundprinzip der Objektorientierung der prozeduralen
Programmierung gegenüberstellen können,
wichtige Vorteile der Objektorientierung erklären können,
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 12
Was ist ein Objekt?
Objekte sind eigenständige, abgeschlossene Einheiten wie z. B.:
Abstrakte Dinge
Datenstrukturen
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 13
Merkmale eines Objekts: Zustand
Zustand: Der Zustand (engl. state) eines Objekts setzt sich aus den aktuellen
Attributwerten des Objekts und den jeweiligen Verbindungen zu
anderen Objekten zusammen. Jedes Objekt befindet sich zu jedem
Zeitpunkt in einem Zustand. Dieser kann sich während der Lebenszeit
des Objekts verändern.
Attribute des
Objekts
Ein Mitarbeiter Mitarbeiter
personal-
nummer
Attribut vs.
name Attributwert?
gehalt
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 14
Merkmale eines Objekts: Verhalten
Zustand
Verhalten (engl. behavior)
Die Menge der definierten Operationen beschreibt das Verhalten
eines Objekts.
Änderung oder Abfrage des Zustandes ist nur mittels Operationen
möglich (vgl. Kapselung am Ende dieses Kapitels).
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 15
Merkmale eines Objekts: Identität
Zustand
Verhalten
Identität
Peter Müller Hans Müller
Ein Objekt besitzt eine Identität,
die es von allen anderen Objekten unterscheidet.
- Die Identität eines Objekts kann sich nicht ändern.
- Keine zwei Objekte besitzen dieselbe Identität.
- Zwei Objekte sind auch dann verschieden, wenn… Zusammenhang
mit Zustand?
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 16
Übung: Welche Objekte befinden sich derzeit in diesem Raum?
Übung: Zeichnen Sie ein Objektdiagramm dieser Objekte in UML
Was ist eine Klasse?
In einem Programm gibt es viele Objekte mit teilweise Mitarbeiter
ähnlichen Eigenschaften. Eine Klasse fasst gleichartige personalnummer: Int
Objekte zusammen. name: String
gehalt: Währung
Eine Klasse definiert für eine Kollektion von
Objekten deren
Klasse
Struktur (Attribute), (Modell)
Verhalten (Operationen) und
Modell-
Beziehungen (relationships). bildung
Eine Klasse besitzt einen Mechanismus, um neue
Objekte
Objekte zu erzeugen. (Realität)
Jedes erzeugte Objekt gehört zu genau einer Klasse.
Andere Bezeichnungen für Objekte einer Klasse:
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 19
Definition von Klassen
Eine Klasse stellt eine klar definierte Abstraktion dar.
Jede Klasse sollte einen abgegrenzten Aufgabenbereich modellieren.
Komplexere Aufgaben werden durch Zusammenwirken mit anderen Klassen gelöst.
Anzahl und Bedeutung von Klassen hängt immer von der gestellten Aufgabe ab.
Jede Klasse hat einen eindeutigen Namen.
Substantiv im Singular, das durch ein Adjektiv ergänzt werden kann.
Zusammenhang von Klasse und Objekt:
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 20
Stereotypen und Eigenschaftswerte
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 21
Attribute (1) Attribut vs.
Objekt?
Attribute beschreiben die Daten, die von den
Objekten einer Klasse angenommen werden können.
Alle Objekte einer Klasse besitzen dieselben Attribute,
haben aber zumeist unterschiedliche Attributwerte.
Jedes Attribut ist von einem bestimmten Typ.
– Die UML gibt keine Standardtypen für Attribute vor. In dieser Vorlesung
werden die in diversen Programmiersprachen üblichen Datentypen verwendet.
– Der Datentyp eines Attributs kann selbst wieder eine Klasse sein. In diesem Fall
sollte im Entwurf allerdings besser eine Beziehung vorgesehen werden.
Klasse Objekt
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 23
Ergänzen
Operationen (1)
Eine Operation Student
beschreibt eine
ausführbare Tätigkeit.
Alle Objekte einer
Klasse verwenden
dieselben Operationen.
Jede Operation kann
auf alle Attribute eines
Objekts dieser Klasse
direkt zugreifen.
Die Menge aller
Operationen wird als das
Verhalten der Klasse
oder als die Schnittstelle
der Klasse bezeichnet.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 24
Operationen (2)
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 25
Klassenoperationen und Klassenattribute
Operationen, die sich auf alle oder mehrere Objekte einer Klasse, d. h. auf die Klasse
selbst beziehen, heißen Klassenoperationen.
Typische Klassenoperationen sind das Erzeugen und Löschen von Objekten.
Klassenoperationen benötigen kein Objekt zum Aufruf, sondern eine Klasse.
Klassenoperationen werden in UML unterstrichen dargestellt.
Bei einem Klassenattribut existiert nur ein Attributwert für alle Objekte einer Klasse.
Klassenattribute existieren auch dann, wenn es zu einer Klasse (noch) keine Objekte gibt und
werden ebenfalls in der UML unterstrichen dargestellt.
Beispiele für die Klasse Student:
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 26
Zusammenwirken von Objekten durch Botschaften/Nachrichten
Eine Botschaft (Synonym: Nachricht) ist die Aufforderung eines Senders an
einen Empfänger eine Dienstleistung zu erbringen.
Das Empfängerobjekt interpretiert diese Botschaft
und führt eine Operation gleichen Namens aus.
Das Senderobjekt der Botschaft weiß nicht, wie die
entsprechende Operation ausgeführt wird (Kapselung).
Die Ausführung eines Programms entsteht durch das
dynamische Zusammenwirken vieler Objekte.
Operationen werden nur durch Botschaften aufgerufen.
Beispiel: Aschmies:Student
alter = 21
WWI2020D:Kurs
Bauer:Student
alter = 22
:Benutzer
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 27
Kapselung = Trennung von Schnittstelle und Implementierung
Objekte verbergen ihre Daten
vor anderen Objekten.
Die Daten eines Objektes
können nur über die
Operationen des Objektes ab-
gefragt oder geändert werden.
Ein Objekt sendet dazu eine
Botschaft an ein anderes
Objekt, dadurch wird eine
Operation angestoßen.
Ein Objekt realisiert das …
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 28
Vor- und Nachteile von Kapselung
Kapselung ist ein wichtiges Konzept mit vielen Vor- und wenigen Nachteilen:
Übung: prozedurale in objektorientierte Lösung überführen
Erstellen Sie einen Algorithmus (klassisch, nicht objektorientiert) zur Ausgabe
von Angeboten für Neuwagen. Zu Beginn werden Name und Adresse des
Kunden sowie die Modellnummer eingegeben. Anschließend werden die
Nummern der von dem Kunden gewünschten Ausstattungen eingegeben. Es
können maximal 20 derartige Nummern eingegeben werden, die alle über eine
Schleife sequentiell abgefragt und in ein Feld (Array) mit 20 Elementen
(ganzzahlige Werte) abgelegt werden.
Bezeichnung und Preis des Modells sowie der Ausstattungen sind in einer
Datenbank hinterlegt. Nach Eingabe aller Daten wird der Gesamtpreis
berechnet und das Angebot ausgedruckt. Hierfür notwendige
Datenbankzugriffe können Sie umgangssprachlich formulieren:
Suche Modell über Modellnummer in Modell-Datenbank
Drucke [Link]
Ihr Algorithmus muss keinerlei Fehlerbehandlung beinhalten.
Welche Klassen, Attribute und Operationen sind für eine objektorientierte
Lösung dieses Ablaufs notwendig?
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 30
Zusammenfassung
Was sind Objekte?
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 32
Lernziele dieses Kapitels
Nach diesem Kapitel sollten Sie
die Phasen OOA und OOD verstehen
klar voneinander abgrenzen können,
die grundlegenden Elemente der
Anforderungsanalyse erläutern können,
die folgenden Grundbegriffe der
objektorientierten Analyse erklären können:
– Akteur
– Anwendungsfall
– Szenario
die Vorteile von Anwendungsfallmodellen kennen,
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 33
Übersicht: OOA und OOD
Anforderungs- Anwendungsfallmodell
OOA analyse Objektorientierte
Sonstiges Anforderungen Analyse
Testplan für Systemtests
Zusammenwirken
Realisierung Interaktionsdiagramm von Objekten
mit Objekten Klassendiagramm
Finden von Klassen
Beziehungen
Statische Klassenbeschreibung mit zwischen Klassen
OOD Attributen, Operationen
Klassenstruktur
und Beziehungen Vererbung
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 34
Arten von Anforderungen
Funktionale Anforderungen Beschreibung
in UML
Legen das nach außen sichtbare Systemverhalten fest.
Werden über Anwendungsfälle („Use Cases“) definiert.
– Ein Anwendungsfall beschreibt einen typischen Einsatz des Systems.
– Die Summe aller Anwendungsfälle stellt die Gesamtfunktionalität des Systems
dar.
Beschreibung
Nicht-funktionale Anforderungen in Textform
Diese werden nicht durch Anwendungsfälle beschrieben.
– Beschreibung wie in herkömmlichen Systemen.
Beispiele:
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 35
Probleme der Anforderungsanalyse (= Systemanalyse)
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 36
Aufgaben und Ziele der Systemanalyse (allgemein)
Die Wünsche und Anforderungen des Auftraggebers an ein neues
Softwaresystem müssen ermittelt, analysiert und modelliert werden.
Implementierungsaspekte werden weitgehend ausgeklammert
Der Systemanalytiker muss ein konsistentes, vollständiges, eindeutiges und
realisierbares Modell erstellen.
Die Systemanalyse (und damit auch die objektorientierte Analyse) gehört zu den
anspruchsvollsten Tätigkeiten in einem Projekt, da die Anforderungen des
Auftraggebers in der Regel unklar, widersprüchlich und fallorientiert sind (d. h.
nur bestimmte Ausschnitte sind dokumentiert) sowie sich auf unterschiedlichen
Abstraktionsebenen befinden.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 37
Objektorientierte Analyse und Entwurf: Einleitung
Ausgangsbasis für OOA und OOD sind Elemente aus der realen Welt.
Elemente des Anwendungsbereiches (z. B. „Administrator“, „ERP-System“, „Jahres-
abschluss“) werden in Modellelemente überführt (z. B. Akteure, Anwendungsfälle,
________________________________________________________________).
Nicht immer ist eine direkte Abbildung realer Elemente auf Elemente
objektorientierter Modelle sinnvoll.
Suche geeigneter Abstraktionen
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 38
Elemente eines Anwendungsfallmodells
Alternative Darstellung:
Akteur (engl. actor)
Rolle, die ein Benutzer des zu
erstellenden Systems einnimmt.
Name
Interaktionsbeziehung
Verbindet Akteure mit den
Anwendungsfällen.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 39
Was ist ein Akteur?
Akteure interagieren direkt mit der zu erstellenden Software.
Akteure können aktiv Informationen in das System eingeben.
Akteure können passiv Informationen vom System empfangen.
Akteure sind Abstraktionen. Name
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 40
Wie finde ich Akteure?
Checkliste:
Wer soll das neue System benutzen?
Welche Rollen nehmen diese Anwender ein?
Welche Personen führen diese Aufgaben derzeit durch?
Welche Personen sollen diese Aufgaben zukünftig
durchführen?
Welche Schnittstellen zu anderen Systemen gibt es?
Gibt es (Teil-)Systeme, die fest vorgegeben sind und deshalb
als externer Akteur modelliert werden?
– z. B. bereits bestehende Datenbank eines anderen Systems, die
eingebunden werden soll.
Wer wartet das System?
Welche Akteure werden für einen Anwendungsfall benötigt?
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 41
Was ist ein Anwendungsfall?
Ein Anwendungsfall (engl. use case) besteht aus mehreren zusammen-
hängenden Aufgaben, die von einem Akteur durchgeführt werden,
um ein Ziel zu erreichen bzw. ein gewünschtes Ergebnis zu erstellen.
Dialog zwischen Akteur(en) und der zu erstellenden Software
Wird stets von einem Akteur gestartet
Anwendungsfälle beschreiben die mit dem System auszuführenden Abläufe.
Anwendungsfälle haben ein nach außen
sichtbares Verhalten, d. h. sind keine
Ein Anwendungsfall
beschreibt immer einen kompletten Ablauf von Anfang bis Ende,
besteht daher meistens aus mehreren Schritten,
liefert ein Ergebnis für mindestens einen Akteur,
sollte aussagekräftig benannt werden ( Substantiv und Verb).
Die Summe aller Anwendungsfälle beschreibt das Gesamtverhalten des Systems.
Typische Systeme umfassen 10 bis 100 Anwendungsfälle.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 42
Übung: Anwendungsfälle des DHBW-Verwaltungssystems
Merkmale von Anwendungsfällen
Wie finde ich Anwendungsfälle?
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 46
Ablaufszenarios (1)
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 47
Ablaufszenarios (2)
Anwendungsfälle werden in
Textform dokumentiert:
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 49
Beispiel: Bestellung bearbeiten (1)
Kurzbeschreibung:
Der Verkäufer kann aus einem bestehenden Angebot eine Bestellung erzeugen und diese
an den Hersteller versenden.
Voraussetzungen:
Es muss bereits ein Angebot vorliegen.
Beteiligte Akteure:
Verkäufer, Drucker, Hersteller
Primärer Ablauf:
Der Verkäufer meldet sich beim System an.
Der Verkäufer sucht das vorhandene Angebot.
Der Verkäufer legt die Zahlungsmodalitäten fest (Bar, Vorausüberweisung, beglaubigter
Scheck).
Die Bestellung wird ausgedruckt und vom Kunden unterschrieben.
Die Bestellung wird elektronisch über das CarOrder-System an den Hersteller verschickt.
Es wird eine Auftragsbestätigung gedruckt.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 50
Beispiel: Bestellung bearbeiten (2)
Weitere Abläufe:
Angebot nicht vorhanden
– Der Verkäufer sucht ein Angebot.
– Das Angebot ist nicht vorhanden.
– Der Anwendungsfall wird mit einer Fehlermeldung abgebrochen.
Angebot ist abgelaufen
– Wenn das Angebot bereits abgelaufen ist, muss die Genehmigung des Chefs eingeholt
werden. Die Bestellung kann erst ausgeführt werden, wenn das Angebot verlängert
wurde.
Bestellung mit Finanzierung
Bestellung mit Leasing
Bestellung wird nicht unterschrieben
Bestellung wird vom Hersteller abgelehnt
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 51
Fortgeschrittene Konzepte
Anwendungsfall-Modelle können verfeinert werden:
Benutzt-Beziehungen zwischen Anwendungsfällen. Advanced
UML
Erweiterungsbeziehungen zwischen Anwendungsfällen.
Generalisierungen zwischen Anwendungsfällen.
Generalisierungen zwischen Akteuren.
Die obigen Möglichkeiten sollten mit Vorsicht eingesetzt werden!
Das Modell wird dadurch schwieriger zu verstehen.
Das Modell muss insbesondere für den Anwender lesbar bleiben.
Zielsetzung der Anforderungsanalyse ist
ein leicht verständliches Modell aller Anforderungen zu erstellen
und nicht die Verwendung aller vorhandenen UML-Konzepte.
Die meisten guten Modelle kommen mit den Basiskonzepten aus.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 52
Benutzt-Beziehung
Ermöglicht es, dass gemeinsame Funktionalität
mehrerer Anwendungsfälle durch einen Advanced
UML
eigenen Anwendungsfall beschrieben wird.
Vermeidung von redundanten Beschreibungen.
__________________________________ «include».
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 53
Erweiterungsbeziehung
Hinzufügen von Erweiterungen
Advanced
Der bestehende Anwendungsfall UML
______________________________ «extend».
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 54
Generalisierung zwischen Anwendungsfällen/Akteuren
Generalisierung zwischen Anwendungsfällen:
Ähnliche Funktionalität zusammenfassen. Verkäufer Advanced
Verhalten wird von oben nach unten anmelden UML
Vererbung.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 55
Beispiel: Use-Case-Diagramm Autohandel in UML
uc Autohandel
Verkäufer anmelden
Kunde über Modelle informieren
«include»
Privatkunde Firmenkunde
Angebot «include»
Drucker
erstellen
Verkäufer «extend»
Bestellung «extend» Hersteller
bearbeiten
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 56
Übung: Reisekostenabrechnung (1)
Grobanforderungen für ein Programm, mit dem Angestellte einer Firma ihre
Reisekostenabrechnungen effizienter durchführen können.
Das System verwaltet alle Reisen der Angestellten einer Firma.
Für jede Reise werden Reisebeginn und -ende, Abfahrtsort, Zielort inklusive
Ankunfts- und Abfahrtszeiten sowie Zweck der Reise gespeichert.
Umfasst die Reise mehrere Tätigkeitsstätten, sind die jeweiligen Zwischenorte
inklusive Ankunfts- und Abfahrtszeiten festzuhalten.
An Transportmittel stehen PKW, Bahn, Bus, Taxi und Flugzeug zur Verfügung. Alle
Ausgaben sind durch Belege nachzuweisen. Bei einer Reise mit Privat-PKW erfolgt
die Abrechnung per Kilometerpauschale.
Übernachtungen können nur nach Beleg abgerechnet werden.
Die Verpflegung wird pauschal abgerechnet.
Mögliche Zahlungsarten für Belege sind „Bar oder Privat“, Rechnung und
Firmenkreditkarte.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 57
Übung: Reisekostenabrechnung (2)
Zusätzliche Anforderungen:
Angestellte geben die Reisedaten selbst in das Programm ein.
Angestellte können einen Kontrollausdruck der Reisekostenabrechnung anfertigen.
Ein Buchhalter überprüft die Angaben mit den Belegen.
Die Abrechnungen werden nach Prüfung monatlich vom Buchhalter ausbezahlt: Die
Auszahlung erfolgt nach Wunsch bar, per Scheck oder Überweisung.
Für jeden Angestellten kann eine Übersicht über alle Reisen in einem bestimmten
Zeitraum erstellt werden.
Die Verpflegungspauschale richtet sich nach Ort und Dauer der Abwesenheit. Die
Pauschalen sind im Programm gespeichert und werden vom Buchhalter jedes Jahr
an die aktuellen Vorgaben des Finanzamts angepasst.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 58
Übung: Reisekostenabrechnung (3)
Besonderheiten bei Auslandsreisen:
Ziel- und Zwischenorte haben Länderangaben.
Bei Auslandsbelegen sind die Währung und der Wechselkurs anzugeben.
Bei eintägigen Reisen gilt der Pauschalbetrag für das Land der (letzten)
Tätigkeitsstätte.
Bei mehrtägigen Reisen gilt der Pauschalbetrag für das Land, welches der
Reisende vor 24:00 Ortszeit erreicht. Am Rückreisetag vom Ausland ins
Inland ist der letzte Tätigkeitsort für den Pauschalbetrag maßgebend.
Bei Flugreisen gilt ein Land zum Landezeitpunkt als erreicht.
Zwischenlandungen bleiben unberücksichtigt.
Inlands- und Auslandskilometer mit PKW werden wegen der Vorsteuer
unterschieden.
Für Ankunfts- und Abfahrtszeit ist die Ortszeit zu verwenden.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 59
Übung: Reisekostenabrechnung (4)
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 60
Warum sind Anwendungsfälle so wichtig?
Anwendungsfälle sind die Basis für die komplette Software-Entwicklung.
Sie grenzen klar den Projektumfang ab.
Sie dienen als Basis für die Verständigung zwischen Auftraggeber, Anwender
und Entwickler und helfen Missverständnisse zu vermeiden.
Verzögerungen und höhere Kosten durch nachträgliche Anforderungen werden
transparent.
Aus den Anwendungsfällen wird das Klassenmodell abgeleitet.
Anwendungsfälle definieren die Reihenfolge der Entwicklungsiterationen.
Anwendungsfälle liefern die Basis für den Systemtest.
Sie steuern den Abnahmeprozess durch den Auftraggeber.
Anwendungsfälle sind das Gerüst für die Benutzerdokumentation.
Die Dokumentation der Anwendungsfälle sollte daher gut verständlich sein,
da sie von vielen verschiedenen Personen gelesen wird.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 61
Iterative Entwicklung des Anwendungsfallmodells
Ad-hoc Anforderungen
Anwendungsfallmodell
abgelehnt
Entwickler
Kunde
Neues Modell
abgelehnt
Neues Modell
akzeptiert
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 62
Zusammenfassung
Ziel der Anforderungsanalyse ist:
Es werden funktionale und
nicht-funktionale Anforderungen unterschieden. Funktionale Anforderungen
werden in UML durch Anwendungsfälle dokumentiert.
Anwendungsfälle beschreiben das Systemverhalten.
– Nur das nach außen sichtbare Verhalten wird beschrieben.
Kommunikationsdiagramm
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 64
Lernziele dieses Kapitels
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 65
Verfeinerung von Anwendungsfällen
Die in Szenarios beschriebene Funktionalität wird intern durch die
Zusammenarbeit von Objekten erbracht.
Objekte tauschen _________________________________________ aus.
Der wird durch Interaktions-
______________________________ diagramme graphisch modelliert.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 69
Lebensdauer von Objekten
Auto auswählen
Ausgabeart festlegen
Angebot ausgeben
drucken
Daten drucken
[ausgabe=Fax] absenden
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 72
Gemeinsamkeiten und Unterschiede der beiden Diagrammarten
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 73
Finden von Klassen
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 74
Suchen nach Substantiven
Unterstreichen von Substantiven in Anforderungsbeschreibungen und
Anwendungsfällen.
Substantive geben erste Anhaltspunkte für Klassen:
Ergebnisliste muss gefiltert werden.
Ergebnis ist nicht vollständig.
Probleme:
Sprache ist mehrdeutig.
Worte werden synonym verwendet.
– Dieselbe Klasse wird durch unterschiedliche Substantive bezeichnet.
– Ein Substantiv wird für unterschiedliche Klassen verwendet
Substantive bezeichnen:
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 76
Übungsaufgabe: Suchen von Klassen
Die folgende Liste ist das Ergebnis einer Substantivselektion in einer
Sammlung von Use Cases zur Beschreibung einer Anwendung zur
elektronischen Terminverwaltung. Streichen Sie aus der Liste alle Begriffe, die
keine Klasse darstellen. Begründen Sie ihre Antwort!
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 77
Dokumentanalyse
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 78
Beispiel Dokumentanalyse: Seminaranmeldung
Anmeldung zu TEACHWARE-Seminaren
Aufgabe:
Als Teilnehmer zu nachfolgenden TEACHWARE- Leiten Sie die zu
Seminaren wird angemeldet:
modellierenden Klassen ab.
Titel Vorname Nachname
Firma Straße/Postfach
Telefon
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 79
CRC-Karten
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 82
Klassendiagramme
bietet an
Identifizierte Klassen werden in einem Verkäufer Auto
Klassendiagramm dargestellt.
Es sollten mehrere Klassendiagramme Sonderausstattung
erstellt werden:
Jedes Klassendiagramm hat
Polsterung Radio
einen bestimmten Schwerpunkt.
Zuviel Information in einem Diagramm erschwert die Lesbarkeit.
Besser mehrere kleine Diagramme als wenige umfangreiche Diagramme.
Beispiele für Diagramme:
Vererbungshierarchie
Klasse mit ihrem Umfeld (Collaborators von CRC-Karten).
Klassen, die zum Verständnis eines Mechanismus notwendig sind.
Klassen müssen zusätzlich noch dokumentiert werden.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 83
Checkliste
Merkmale guter Entwürfe:
Jede Klasse hat einen sinnvollen Namen aus dem Problembereich.
Verantwortlichkeiten innerhalb einer Klasse passen zusammen.
Wenige Verantwortlichkeiten pro Klasse.
Eine Klasse arbeitet nur mit wenigen anderen Klassen zusammen.
Zu vermeiden ist:
Gleiche Verantwortung bei mehreren Klassen.
Klasse benötigt sehr viele andere Klassen zur Erfüllung ihrer Aufgaben.
Kein Zusammenhang bei den Verantwortlichkeiten einer Klasse.
Missverständliche Klassennamen.
Verantwortlichkeiten beschreiben das „Wie“ und nicht das „Was“.
Klasse ohne Verantwortlichkeiten (weder Attribute noch Operationen).
Die Klasse ist über eine 1:1-Beziehung mit einer anderen Klasse
verbunden (Wirklich zwei unterschiedliche Klassen?).
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 84
Zusammenfassung
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 85
Beziehungen zwischen Klassen
Warum Beziehungen?
Beziehungsarten
– Assoziation
– Aggregation
– Komposition
Namensgebung
Rollen
Multiplizität
Navigierbarkeit
Vorgehensweise
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 86
Lernziele dieses Kapitels
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 88
Assoziation
Eine Assoziation beschreibt eine dauerhafte strukturelle
Beziehung zwischen Klassen:
Dies bedeutet, dass zwischen Objekten dieser Klassen eine
Verbindung existiert, über welche die Objekte kommunizieren können.
Diese Kommunikation kann, muss aber nicht, in beiden Richtungen erfolgen.
– Es gibt keine Vorzugsrichtung.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 89
Rollen
Klassen spielen Rollen in einer Beziehung.
Die Assoziation kann durch Angabe von Rollennamen identifiziert
werden:
Rollennamen sind optional. Verkäufer Auto
Der Rollenname wird am Anbieter Produkt
Linienende angegeben.
Ein Rollenname kann auch nur an einem Ende angegeben werden.
Für Rollennamen werden Substantive verwendet.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 90
Reflexive Assoziation
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 91
Multiplizität
Die Multiplizität (auch Kardinalität genannt) bei einer Klasse A legt fest, mit wie
vielen Objekten einer Klasse A ein einzelnes Objekt einer Klasse B verbunden
sein kann.
Die Multiplizität wird für jede Rolle getrennt angegeben.
Multiplizität sagt nichts über die Gesamtzahl der Objekte im System aus.
Beispiel:
Kunde Angebot
1 1..*
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 92
Gerichtete Beziehungen
Assoziationen und ihre Verfeinerungen sind bidirektionale
Beziehungen.
Man kann jeweils von einer Rolle zur anderen Rolle navigieren.
Bidirektionale Beziehungen sind häufig aufwendig zu implementieren.
Ausstattungspaket Ausstattung
0..*
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 93
Aggregation
Aggregation ist eine Verfeinerung der Assoziation.
Beschreibt eine „Ganze-Teile-Beziehung“.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 94
Wie erkennt man eine Aggregation?
Die Beziehung kann durch die Ausdrücke „hat“,
„besteht aus“ oder „ist Teil von“ beschrieben werden.
Aggregat nimmt Aufgaben stellvertretend für seine Teile wahr:
Ändern von Eigenschaften des Ganzen ändert auch
die Eigenschaften der Teile
– Ändern der Wagenfarbe ändert die Farbe der Türen.
Nachrichten, die an das Ganze gesendet werden, werden von diesem an die Teile
weitergeleitet.
– Bewegen des Autos bewegt die Türen.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 95
Komposition (1)
Komposition ist eine strengere Form der Aggregation:
Alle Aussagen über Aggregation gelten auch für Komposition.
Zusätzlich ist die Lebensdauer der Einzelteile
an die Lebensdauer des Aggregats gekoppelt. Aggregate
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 96
Komposition (2)
Multiplizität auf der Seite des Aggregats muss „0..1“ oder „1“ sein.
Jedes Element ist Teil genau eines Aggregats.
Ein Teil kann nicht gleichzeitig mit anderen Aggregaten geteilt werden.
Beispiel: Ein Rad gehört
Auto Rad
zu genau einem Auto. 1 4
1 *
Kurs Student Dozent
Fach Semester
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 98
Vorgehensweise
zunehmende Abhängigkeit
keit zwischen Klassen kurzzeitig besteht
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 100
Vererbung und Polymorphismus
Grundlagen der Vererbung
– Ähnlichkeiten zwischen Klassen
– Einfach- und Mehrfachvererbung
– Was wird vererbt?
Vererbungshierarchien
Klassifikation von
Programmiersprachen
Vererbung und Polymorphismus
– Zusammenhang der beiden Konzepte
Abstrakte Klassen und Schnittstellen
Praktische Hinweise zum Einsatz der Vererbung
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 101
Grundlagen der Vererbung
Vererbung ist eine Beziehung zwischen einer
allgemeinen Klasse (Oberklasse) und einer
spezialisierten Klasse (Unterklasse), bei der die
Unterklasse über alle Eigenschaften der Oberklasse verfügt.
Eine Klasse kann von einer oder mehreren
Oberklassen erben.
– Einfachvererbung
– Mehrfachvererbung
Vererbung drückt Ähnlichkeiten zwischen Abstraktionen aus.
– Eine Unterklasse ist eine Oberklasse.
– Statt Vererbung wird auch der Begriff Generalisierung verwendet.
Die Sitzheizung ist sowohl eine Sonderausstattung als auch ein elektrischer
Verbraucher und erbt daher von beiden Klassen.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 105
Erben von Verhalten
Ausstattung
gibName() Ein Radio unterstützt alle Operationen der
gibPreis() Oberklasse Ausstattung, d. h. man kann z. B. den
drucken() Namen und Preis eines Radios erfragen.
Zusätzlich kann man radiospezifische Operationen
aufrufen und abfragen, z. B. ob das Autoradio
einen ARI-Verkehrsfunkempfänger oder einen
Radio CD-Player hat.
hatARI() : bool
hatCD() : bool
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 106
Erben des Zustands
Ausstattung
name : string Ein Radio besitzt drei Attribute:
preis : währung
Die Attribute name und preis werden von
Ausstattung vererbt.
Zusätzlich hat es ein eigenes Attribut, das
die Anzahl der Stationstasten speichert.
Radio
anzahlStationstasten : integer
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 107
Erben von Beziehungen
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 108
Vererbungshierarchien
Vererbung kann über mehrere Ebenen erfolgen.
Theoretisch ist die Anzahl der Ebenen unbegrenzt.
Praktisch werden 3 bis 5 Ebenen selten überschritten.
Vererbungshierarchien entstehen auf verschiedene Weise:
Generalisierung (Verallgemeinerung)
– Ausgehend von spezialisierten Klassen wird nach Gemeinsamkeiten gesucht, die dann in
eine Oberklasse ausgelagert werden.
– Vorgehensweise: bottom-up
Spezialisierung
– Ausgehend von einer vorhandenen Klasse wird eine neue Unterklasse gebildet, in der die
Abweichungen von der Oberklasse modelliert werden.
– Vorgehensweise: top-down
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 109
Abstraktionsebenen
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 111
Nachteile der Vererbung
Enge Kopplung zwischen Unterklasse und Oberklasse.
Unterklasse kann nicht allein wiederverwendet werden.
Änderungen der Oberklasse können sich auf alle Unterklassen auswirken.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 112
Checkliste
Merkmale einer guten Vererbungshierarchie:
Zwischen Ober- und Unterklasse liegt eine
„ist-ein“-Beziehung vor.
Die Vererbungshierarchie entspricht der
Begriffshierarchie des Problembereichs.
Die Unterklasse benötigt alle geerbten Attribute und
Operationen (keine Redefinitionen).
Die Vererbungshierarchie ist flach (nicht mehr als drei Ebenen).
Jede Klasse hat nur wenige (max. 7) direkte Unterklassen.
Jede Klasse (auch jede abstrakte Klasse) hat einen sinnvollen
Namen.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 113
Übungsaufgabe: Vererbung
Entwickeln Sie für folgende Klassen ein Vererbungsdiagramm:
Dreieck, Kreis, Quadrat, Rechteck
Falls Sie für ihre Vererbungsstruktur weitere Klassen benötigen, können
Sie neue Klassen einfügen.
Beschreiben Sie Attribute und Operationen der Klassen. Dreiecke,
Quadrate und Rechtecke sollen dabei über die Länge der einzelnen
Kanten beschrieben werden.
Beschreiben Sie genau die für die Attribute geltenden Randbedingungen.
Verwenden Sie hierfür die UML-Erweiterungsmechanismen.
Stellen Sie für folgende Klassen ein Vererbungsdiagramm auf:
Ausführbare Datei, Datei, Dateiname, Dateisystem, Fest-
platte, Sektor, Spur, Textdatei, Verzeichnis, Zugriffsrecht
Führen Sie falls dies sinnvoll ist weitere Klassen ein.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 114
Klassifikation von Programmiersprachen (Peter Wegner)
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 115
Polymorphismus
Miau!
Bäääh!
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 116
Beispiel: Preisliste drucken
Ohne Polymorphismus
Mit Polymorphismus
druckePreisliste()
{ druckePreisliste()
// Schleife über alle Ausstattungen {
... // Schleife über alle Ausstattungen
switch ([Link]) { ...
case Sitzheizung: [Link]();
druckeHeizung(ausstattung); }
break;
case Polsterung:
druckePreisliste
druckePolster(ausstattung);
break; drucken
case Radio: : Radio
druckeRadio(ausstattung);
break;
: Preisliste
}
}
: Sitzheizung
drucken
Nicht Objektorientiert!
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 117
Polymorphismus und Vererbung (1)
Die Oberklasse gibt eine Operation vor.
Diese Operation wird von allen Unterklassen geerbt.
Damit ist sichergestellt, dass diese Operation in allen Unterklassen existiert.
Unterklassen können geerbte Operationen ersetzen (redefinieren).
Damit lassen sich in den Unterklassen verschiedene Varianten einer Operation
realisieren.
Zur Laufzeit wird automatisch die richtige Variante aufgerufen.
Das Objekt reagiert je nach Typ unterschiedlich.
Falls das Objekt die Operation nicht kennt, tritt ein Laufzeitfehler auf.
– Dies ist für viele Anwendungen nicht akzeptabel.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 118
Polymorphismus und Vererbung (2)
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 119
Beispiel
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 120
Vorteile des Polymorphismus
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 121
Abstrakte Klassen und abstrakte Operationen
Was soll die Klasse Ausstattung in der Operation „drucken“ ausgeben?
Sie kann nichts Sinnvolles ausdrucken, da die jeweilige Information erst in der
Unterklasse verfügbar ist.
Es ist nicht sinnvoll, Objekte der Klasse Ausstattung anzulegen.
Die Klasse ist unvollständig.
Sie dient nur als Basis für abgeleitete Klassen.
Klassen, von denen keine Objekte erzeugt werden dürfen heißen abstrakte
Klassen.
Um sie anwenden zu können, muss es mindestens eine Ausstattung
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 123
Darstellung von Schnittstellen
Darstellung
in UML:
Klasse1 benutzt Klasse2 realisiert
Schnittstelle Schnittstelle
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 125
Mehrfachvererbung
Mehrfachvererbung ist konzeptionell einfach zu verstehen.
In der Praxis ergeben sich eine Reihe von Schwierigkeiten.
Probleme bei der Implementierung von Mehrfachvererbung:
– Mehrfaches Erben von Attributen.
– Mehrfaches Erben von Oberklassen.
Mehrfachvererbung wird häufig falsch eingesetzt.
Nicht alle Sprachen unterstützen Mehrfachvererbung.
Mehrfachvererbung sollte nur mit Vorsicht eingesetzt werden!
Die Mehrfachvererbung von Schnittstellen birgt weniger Gefahren:
Schnittstellen geben nur abstrakte Operationen ohne Implementierung vor.
Implementierung mehrerer Schnittstellen unterstützt den modularen
Systementwurf.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 126
Zusammenfassung
Vererbung drückt Ähnlichkeiten zwischen Klassen aus:
Einfachvererbung bei einer Oberklasse.
Mehrfachvererbung bei mehreren Oberklassen.
Es werden Attribute, Operationen und Beziehungen vererbt.
Die Unterklasse kann die Oberklasse erweitern.
Vererbung ist häufig mit Polymorphismus gekoppelt.
Abstrakte Klassen sind Klassen, von denen keine Objekte erzeugt werden
dürfen.
Sie dienen als Basis für abgeleitete Klassen.
Schnittstellen sind abstrakte Klassen, die nur abstrakte Operationen enthalten.
Vererbung, insbesondere Mehrfachvererbung, muss richtig eingesetzt werden.
Eine Vererbungshierarchie sollte Spezialisierungen darstellen.
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 127
Beispiel Polymorphismus und Vererbung
© Duale Hochschule Baden-Württemberg Stuttgart, Prof. Dr. Jürgen Schwille Methoden WI: Systemanalyse Stand: 01.03.2021, Folie 128