• Keine Ergebnisse gefunden

(Statische) Konzepte und Notation der objektorientierten Analyse

N/A
N/A
Protected

Academic year: 2022

Aktie "(Statische) Konzepte und Notation der objektorientierten Analyse"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

(Statische) Konzepte und Notation der objektorientierten Analyse

Lernziele

1.Erklären können, was eine Assoziation ist

2.Erklären können, was Aggregation und Komposition ist 3.Erklären können, was Vererbung und was ein Paket ist

4.Assoziation, Vererbung und Paket aus einem vorgegebenen Text

identifizieren und mit entsprechender UML-Notation anwenden können.

(2)

Assoziation

Modelliert Verbindungen (Beziehungen) zwischen Objekten einer oder mehrerer Klassen

Objektdiagramm

Klassendiagramm

:Kunde :Konto

KontoNr = 4711 Art = Geschäft

Eröffnung = 20.11.02

:Konto

KontoNr = 9999 Art = Privat

Eröffnung = 21.11.02 Name = Käsi

Käsärmchen

Kunde Konto

KontoNr Art

Eröffnung

Name 1 *

besitzt 

(3)

Notation für Assoziationen

Modelliert Verbindungen (Beziehungen) zwischen Objekten einer oder mehrerer Klassen

Klasse1 Klasse2

Attribut

Attribut k1 k2

Rolle Operation() Operation()

Kardinalitäten:

1 genau 1 (=Muß-Assoziation)

* 0 bis viele (=Kann-Assoziation) 1..* 1 bis viele (Muß-Assoziation) 1..5,8 nicht 6, 7

Klasse1

Attribut Operation()

k1

k2

reflexive Assoziation

(4)

Beispiel 1

Klassendiagramm:

Objektdiagramm:

Kunde Konto

KontoNr Art

Eröffnung Name

1 1..*

Kontoinhaber

* 1..*

Kontoberechtigter

:Kunde

:Kunde

:Konto

(5)

Beispiel 2

Klassendiagramm

Objektdiagramm

Angestellter

Name Gehalt

Position 0..1

Chef

Mitar- * beiter

:Angestellter

:Angestellter :Angestellter

:Angestellter :Angestellter

Chef Mitarbeiter

Chef Mitarbeiter

Chef Mitarbeiter

Chef

Mitarbeiter

(6)

Restriktionen (Constraints)

Or-Restriktion

Subset-Restriktion

Kunde Konto

KontoNr Art

Eröffnung Name

1 1..*

Kontoinhaber

* 1..*

Kontoberechtigter

{Kunde.Kontoinhaber <> Kunde.Kontoberechtigter}

Palette1 Palette

Palette2 Hochregallager

Lagerraum

*

*

1

1 {or}

:Hochregallager

:Lagerraum

Sportler * * Wettbewerb

0..1 *

Teilnehmer

Sieger {subset}

S1:Sportler S2:Sportler S3:Sportler

W1:Wettbewerb W2:Wettbewerb

(7)

Qualifikationsangabe

Jeder Artikel ist ein keinem, einem oder mehreren Katalogen enthalten.

Ein Katalog enthält (normalerweise) viele Artikel.

Jeder Artikel ist ein keinem, einem oder mehreren Katalogen enthalten.

Zu jeder Bestellnummer in einem Katalog existiert genau 1 Artikel.

Wie wäre die Notation abzuändern, wenn es Bestellnummern in Katalogen gibt, zu denen es keine Artikel gibt?

Artikel

Bestellnummer

1

*

Katalog

Artikel

*

*

Katalog

(8)

Aggregation und Komposition

Verein

Name

Gründungsdatum

*

*

Unternehmen

Name

Rechtsform Gründung

* Komposition

1 Aggregation

Betriebe

Name Anschrift

Mitglieder

Name Art

Anschrift

 Aggregatklasse =>

(9)

Höherwertige (n-näre) Assoziationen (Beispiel einer ternären Assoziation)

Jahr

Unternehmen Mitarbeiter

Ergebnis Gehalt

*

*

*

zusätzliche assoziative Klasse

(10)

CRC-Karte

(Class/Responsibility/Collaboration)

CRC-Karten werden auf einer höheren Abstraktionsebene modelliert als Klassendiagramme. Ein Vergleich:

Class Bestellung

Bestellung Nummer

Datum erfassen() drucken()

Bestellposition Artikelnummer Bezeichnung Anzahl

1 1..*

Responsibilities

 verwaltet eine Bestellung

 delegiert Aufgaben an Bestellpositionen

Collaborations

 Bestellposition

(11)

Vererbung (= generalization)

Beschreibt eine Beziehung zwischen einer allg. Klasse (Basisklasse = Oberklasse =

super class) und einer spezialisierten Klasse (= Unterklasse, sub class). Die spez. Klasse ist vollständig konsistent mit der Basisklasse, enthält aber zusätzliche Informationen (Attribute, Operationen, Assoziationen).

Ist nicht nur gedacht, gemeinsame Eigenschaften und Verhaltensweise zusammenzufassen, sondern stellt immer auch eine Generalisierung bzw.

Spezialisierung dar.

Was wird vererbt ?

1. Besitzt die SuperClass ein Attribut A, dann besitzen es auch alle Objekte der SubClass (der Wert des Attributs wird jedoch nicht vererbt).

2. Alle Operationen, die auf Objekte der SuperClass anwendbar sind, sind auch auf Objekte der SubClass anwendbar (Gilt analog für Klassenoperationen).

3. Besitzt die SuperClass ein Klassenattribut mit dem Wert W, dann besitzt auch die SubClass dieses Klassenattribut mit dem Wert W.

4. Existiert eine Assoziation zwischen SuperClass und einer Klasse AnyClass, dann wird diese Assoziation an SubClass vererbt.

Unterklassen können das Verhalten ihrer Oberklassen verfeiner und redefinieren (= überschreiben)

(12)

Vererbung

Person

Name Adresse

Geburtsdatum drucke Adresse()

Angestellter

PersNr Gehalt

Bankverbindung überweise Gehalt()

Student

MatrikelNr

Immatrikulation drucke Ausweis()

HiWi

Beschäftigung drucke A’Zeugnis()

(13)

Mechanismus der Vererbung

SuperClass

AttributA

Klassenattribut = W OperationA()

SubClass

AttributB

Klassenattribut = W OperationB()

AnyClass

OtherClass 1

1

Objekt1 AttributA = Wert1

:AnyClass Objekt1 AttributA = Wert2 AttributB = Wert3

:AnyClass :OtherClass

(14)

Überschreiben einer Operation

Konto

Kontonummer Kontostand buchen()

Sparkonto

Zinssatz buchen()

(15)

Paket (package) [synonym: Subsystem, Subject, Category]

Fasst Modellelemente (z.B. Klassen) zusammen. Kann selbst wiederum Pakete enthalten. Beschreibt die Systemstruktur auf hoher Abstraktionsebene.

Warenwirtschaftssystem

Einkauf Verkauf

Produktion Materialwirtschaft

(16)

Notation in UML

-) Abhängigkeiten

-) Werden im Klassendiagramm eingetragen

-) Jede Klasse (jedes Modellelement) gehört zu höchstens einem Paket

-) Ein Paket def. einen Namensraum für alle in ihm enthaltenen Modellelemente

-) Wird eine Klasse eines bestimmten Paktes in einem anderen Paket verwendet, wird als Klassenname Paket::Klasse verwendet.

Beispiel: Paket1::Paket11::Paket111::Klasse

Paket1 Paket2

Paket3

(17)

Aufgabe 1

Identifizieren Sie anhand nachfolgender Beschreibung Klassen, Attribute, Operationen, Assoziationen und Vererbungsstrukturen und zeichnen Sie diese in ein Klassendiagramm ein. Erstellen Sie für Beispielsdaten zusätzlich ein Objektdiagramm.

Wir betrachten eine Bank und ihre Kunden. Eine Person wird Kunde, wenn sie ein Konto eröffnet. Ein Kunde kann beliebig viele weitere Konten eröffnen. Für jeden neuen Kunden werden Name, Adresse und Datum der ersten Kontoeröffnung erfaßt. Bei Kontoeröffnung muß der Kunde gleich eine erste Einzahlung vornehmen.

Wir unterscheiden Girokonten und Sparkonten. Girokonten dürfen bis zu einem

bestimmten Betrag überzogen werden. Für jedes Konto wird ein indiv. Habenzins, für Girokonten auch ein indiv. Sollzins festgelegt.

Jedes Konto besitzt eine eindeutige Kontonummer. Für jedes Konto wird die Art des Sparens - z.B. Festgeld - gespeichert. Ein Kunde kann Beträge einzahlen und abheben.

Habenzinsen werden gutgeschrieben, Überziehungszinsen vom Girokonto abgebucht.

Um Zinsen zu berechnen, muß für jede Kontobewegung das Datum und der Betrag notiert werden.

Die Gutschrift/Abbuchung der Zinsen erfolgt bei den Sparkonten jährlich und bei den Girokonten quartalsweise. Ein Kunde kann jedes seiner Konten wieder auflösen. Bei der Auflösung des letzten Kontos hört er auf, Kunde zu sein.

(18)

Aufgabe 1: Beschreibung

Weil bei der Kontoeröfnung sofort eine Einzahlung vorzunehmen ist, wird bei der Klasse Konto die Kardinalität 1..* eingetragen.

Zwischen Kunde und Konto besteht eine einfache Assoziation, weil weder der Kunde Teil eines Kontos ist, noch umgekehrt. Zwischen Konto und Kontobewegung existiert eine Komposition, weil eine whole-part-Beziehung vorliegt (Jede Kontobewegung ist Teil genau eines Kontos und die

dynamische Semantik eines Kontos gilt stets für alle Kontobewegungen). Wenn beispielsweise das Konto bei einer anderen Filiale weitergeführt werden soll, dann werden auch alle Kontobewegungen der neuen Filiale zugeordnet. Die Kontobewegungen werdenf ür die Berechnung der Zinsen

benötigt. Die Operation einzahlen() ist für Giro- und Sparkonten gleich. Deshalb wird sie bei der Basisklasse eingetragen und vererbt. Beim Abheben verhalten sich Giro- und Sparkonto jedoch unterschiedlich. Sparkonto: Werden mehr als 1.000 Euro/Monat abgehoben, dann fallen Gebühren an. Der Kontostand kann nicht „negativ“ werden. Beim Girokonto steht der Dispo-Kredit zur

Vergüung.

Die Operation gutschreibenZinsen() ist jeweils unterschiedlich, da dies einmal quartalsweise und einmal jährlich erfolgt. Das Attribut Kontostand ist abgeleitet.

Die Komposition von Konto zu Kontobewegung wird an die beiden Unterklassen vererbt.

Konto ist eine abstrakte Klasse, weil es keine Konto-Objekte gibt, die nicht bereits den Klassen

Girokonto oder Sparkonto angehören. Analoges gilt für die Vererbung der Assoziation zu Kunde. Die Vererbung der Assoziation bedeutet, dass Verbindungen zwischen Kunde und Girokonto etc.

existieren. Anhand des Objektdiagramms wird deutlich, dass es keine Objekte der Klasse Konto gibt.

(19)

Aufgabe 1: Klassendiagramm

Konto

Kontonummer Habenzins /Kontostand eröffnen() einzahlen() auflösen()

Girokonto

Sollzins Dispo-Kredit abheben()

gutschreibenZinsen() abbuchenZinsen()

Sparkonto

Art

abheben()

gutschreibenZinsen()

Kontobewegung

Betrag Datum

Kunde

Name Adresse Kunde seit

1 1..* 1 1..*

(20)

Aufgabe 1: Objektdiagramm

:Kunde

:Girokonto

:Kontobewegung

:Kontobewegung

:Sparkonto :Kontobewegung

:Kunde :Girokonto :Kontobewegung

(21)

(Dynamische) Konzepte und Notation der objektorientierten Analyse

Lernziele

Erklären können, was

1.ein Geschäftsprozess ist 2.eine Botschaft ist

3.ein Szenario ist

4.ein Zustandsautomat ist 5.ein Aktivitätsdiagramm ist

Erklären können, wie das Klassendiagramm und Diagramme des dynamischen Modells zusammenwirken.

Geschäftsprozesse modellieren können

Sequenz- und Kollaborationsdiagramme erstellen können

Zustandsdiagramme erstellen können.

(22)

Geschäftsprozess (use case)

Besteht aus mehreren zusammenhängenden Aufgaben, die von einem Akteur durchgeführt werden, um ein gewünschtes Ergebnis zu erstellen.

Ein Akteur (häufig eine Person) ist eine Rolle, die ein Benutzer des Systems spielt.

Notation Geschäftsprozessschablone (use case template)

Geschäftsprozess: Name (was wird getan)

Ziel

Kategorie (primär, sekundär oder optional)

Vorbedingung

Nachbedingung Erfolgsfall Nachbedingung Fehlschlag Akteure

Auslösndes Ereignis Beschreibung

Geschäftsprozess: Auftrag aussführen Ziel: Ware an Kunden geliefert

Vorbedingung: -

Nachbedingung Erfolg: Ware ausgeliefert (auch Teillieferungen), Rechnungskopie bei Buchhaltung

Nachbedingung Fehlschlag: Mitteilung an Kunden, dass nichts lieferbar ist Akteure: Kundensachbearbeiter, Lagersachbearbeiter, buchhaltung

Auslösendes Ereignis: Bestellung des Kunden liegt vor Beschreibung:

1. Kundendaten abrufen 2. Lieferbarkeit prüfen 3. Rechnung erstellen

4. Auftrag vom Lager ausführen lassen 5. Rechnungskopie an Buchhaltung geben Erweiterung:

1a Kundendaten aktualisieren Alternativen:

1a Neukunden erfassen

3a Rechnung mit Nachnahme erstellen 3b Rechnung mit Bankeinzug erstellen

(23)

Beispiel für ein Geschäftsprozessdiagramm

Warenwirtschaftssystem

Kundensach- bearbeiter

Lieferanten- sachbearbeiter

Lagersach- bearbeiter Buchhaltung Auftrag

ausführen

Lager verwalten

(24)

Geschäftsprozessdiagramm mit „extends“- und „uses“- Beziehungen

Extends-Beziehung: Wenn Geschäftsprzess B ähnlich A ist, aber noch etwas darüber hinausreicht;

Notation: Vererbungspfeil + Stereotyp „extends“

Uses-Beziehung: Wenn zwei Geschäftsprzesse ein gemeinsames Verhalten besitzen (analog Unterprogramm)

Auftrag ausführen

Auftrag mit Nachlieferung

ausführen

«extends»

Auftrag ausführen

Auftrag mit Nachlieferung

ausführen

«uses»

Ware einlagern

«uses»

Referenzen

ÄHNLICHE DOKUMENTE

Wurden nur die Placeboarme von 8 Therapiestudien mit 19 633 Patienten ausgewertet, wies die Gruppe mit guter Therapie- treue gegenüber der Gruppe mit schlechter Compliance ein

Wegen der ungeklärten Situation und des auch von RT/RCT ausgehenden Risikos für Funktionsverschlechterungen sollten Patienten, die nach den bisherigen Standards keine RT/RCT

Auch wenn das ANP eine wichtige Rolle in der Blutdruckregulierung spielt, konnte in dieser Arbeit kein Zusammenhang zwischen den vier untersuchten Polymorphismen G664A,

 Jedes Objekt (i.d.R. als anonymes Objekt dargestellt) wird durch eine Objektlinie dargestellt (gestrichelte Linie); am oberen Ende: Objektsymbol.  Wird ein Objekt erst im Laufe

 Jedes Objekt (i.d.R. als anonymes Objekt dargestellt) wird durch eine Objektlinie dargestellt (gestrichelte Linie); am oberen Ende: Objektsymbol.  Wird ein Objekt erst im Laufe

Lenz M, Richter T, Mühlhauser I: The morbidity and mortality associated with overweight and obesity in adulthood [Morbidität und Mortalität bei Übergewicht und

Ich gehe davon aus, dass wir es im Moment, parallel zu den zunehmenden Konflikt- und Bedrohungslagen in der politischen Sphäre, nicht nur mit einer »Re-Maskulinisierung« in der

Als Novum haben wir uns dieses Mal für den Wiederabdruck des Tex- tes »Wenn dein Kind dich fragt … Gespräche, Beispiele und Ratschläge zur Sexualerziehung« aus dem Jahre