![Page 1: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/1.jpg)
1
Module, Klassen, Verträge
Abstraktion und SpezifikationKunden-Lieferanten-ModellModule und SchnittstellenSpezifikation durch VertragKlassen und ObjekteGeneralisierung und SpezialisierungKapselung
![Page 2: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/2.jpg)
Module, Klassen, Verträge 2
Abstraktion und Spezifikation
Ein Kaffeeautomat
Kaffeeautomat
0,30
Kaffee ausgebenPreis EUR
eingenommener
gesammelter
außer
initialisieren
Geld einnehmen
Geld zurückgeben
0,60
31,20
Betrag EUR
Betrieb
Betrag EUR
Geld-schlitz
![Page 3: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/3.jpg)
Module, Klassen, Verträge 3
Abstraktion und Spezifikation
Formales Zustands-Verhaltens-Modell
Aktionen: e Geld_einnehmenr Geld_zurückgebena Kaffee_ausgeben
Zustände: n neutralg geladen mit Geld
Reaktionen: G GeldrückgabeK Kaffeeausgabe0 keine Reaktion
(e, 0)
(r, G)
(e, G)
(a, 0)
(r, 0)
(a, K)gg nn
![Page 4: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/4.jpg)
Module, Klassen, Verträge 4
Abstraktion und Spezifikation
Textuelles Softwaremodell: Schnittstellenspezifikation
MODULE Kaffeeautomat
QUERIES
außer_Betrieb : BOOLEAN
eingenommener_Betrag : INTEGER
Preis : INTEGER
QUERIES FOR Betriebspersonal
gesammelter_Betrag : INTEGER
ACTIONS
Geld_einnehmen (IN Betrag : INTEGER)
Kaffee_ausgeben
Geld_zurückgeben
ACTIONS FOR Betriebspersonal
initialisieren (IN neuer_Preis : INTEGER)
END Kaffeeautomat
![Page 5: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/5.jpg)
Module, Klassen, Verträge 5
Kunden-Lieferanten-Modell
Kunde (Client)
Schnittstelle = Dienste
Lieferant (Supplier)
benutzt bietet
![Page 6: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/6.jpg)
Module, Klassen, Verträge 6
Kunden-Lieferanten-Modell
Aufrufender
Dienste sind- Abfragen - Aktionen
Aufgerufener
Aufruf Antwort
![Page 7: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/7.jpg)
Module, Klassen, Verträge 7
Module und Schnittstellen
Module
• Eine Schnittstelle legt fest, was + ein Lieferant bereitstellt und+ ein Kunde erhalten kann.
• Dienste haben einen Namen und ggf. Parameter.• Parameter müssen vom Kunden versorgt werden.
• Abfragen (QUERIES) geben Auskunft über den Zustand eines Moduls, verändern ihn aber nicht.Sie liefern als Ergebnis einen Wert.
• Aktionen (ACTIONS) verändern den Zustand eines Moduls, liefern aber kein Ergebnis.
• Rechte regeln, welche Kunden welche Dienste nutzen dürfen (FOR-Klausel).
![Page 8: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/8.jpg)
Module, Klassen, Verträge 8
Module und Schnittstellen
Nutzung von Diensten durch Kunden
• Qualifizierung von NamenModulname.Dienstname (aktuelle Parameter)
• Beispiele zur Nutzung:
Kaffeeautomat.Preis Kaffeeautomat.Kaffee_ausgebenKaffeeautomat.Geld_einnehmen (120) Kaffeeautomat.Kaffee_ausgeben (5 Tassen)
IF Kaffeeautomat.außer_Betrieb THEN anderen Automaten suchen END
Kaffeepreis := Kaffeeautomat.Preis
![Page 9: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/9.jpg)
Module, Klassen, Verträge 9
Module und Schnittstellen
Signatur eines Dienstes
• Name des Dienstes• Anzahl, Namen und Typen der Parameter; ggf. Ergebnistyp
MODULE Kaffeeautomat
QUERIES
außer_Betrieb : BOOLEAN
eingenommener_Betrag : INTEGER
Preis : INTEGER
QUERIES FOR Betriebspersonal
gesammelter_Betrag : INTEGER
ACTIONS
Geld_einnehmen (IN Betrag : INTEGER)
Kaffee_ausgeben
Geld_zurückgeben
ACTIONS FOR Betriebspersonal
initialisieren (IN neuer_Preis : INTEGER)
END Kaffeeautomat
![Page 10: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/10.jpg)
Module, Klassen, Verträge 10
Module und Schnittstellen
Statische Semantik
• Festlegung der Zugriffskontrolle
mein_Geldbeutel := Kaffeeautomat.gesammelter_Betrag
Kaffeeautomat.eingenommener_Betrag := 240
• Typbindung: Abfragen, Parameter, Variablen sind an Typen gebunden.
durstig : BOOLEAN
...
durstig := Kaffeeautomat.Preis
• Prüfung der statischen Semantik ist ohne Ausführung möglich.
![Page 11: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/11.jpg)
Module, Klassen, Verträge 11
Module und Schnittstellen
Dynamische Semantik
• Die bisherige Schnittstellenspezifikation
+ erlaubt logisch falsche Parameter,
+ sagt nichts über die Reihenfolge der Aufrufe.
• Prüfung der dynamischen Semantik ist erst während der Ausführung möglich.
• Mittel zur Spezifikation der dynamischen Semantik: Verträge aus
+ Vor- und Nachbedingungen
+ Invarianten
![Page 12: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/12.jpg)
Module, Klassen, Verträge 12
Spezifikation durch Vertrag
Vor- und Nachbedingungen
• Vorbedingungen des Auftragnehmers in Hinblick auf die Vertragsannahme
• Der Kunde ist verantwortlich für die Einhaltung der Vorbedingungen.
• Der Auftragnehmer kann Aufträge, die die Vorbedingungen verletzen, zurückweisen.
• Beispiel:
Kunde: Kaffeeautomat.Geld_einnehmen (-1000)
Vorbedingung: Betrag >= 0
![Page 13: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/13.jpg)
Module, Klassen, Verträge 13
Spezifikation durch Vertrag
Vor- und Nachbedingungen
• Nachbedingungen, die der Lieferant dem Kunden garantiert
• Der Lieferant ist verantwortlich für die Erfüllung der Nachbedingungen.
• Der Kunde verlässt sich darauf, dass der Lieferant die Nachbedingungen erfüllt.
• Beispiel:
Nachbedingung für Geld_einnehmen:
eingenommener_Betrag = OLD (eingenommener_Betrag) + Betrag
![Page 14: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/14.jpg)
Module, Klassen, Verträge 14
Spezifikation durch Vertrag
Invarianten
• Nicht alle Zustände eines Moduls, die syntaktisch erlaubt sind, sind semantisch sinnvoll.
• Beispiel:
Kaffeeautomat.Preis = -100
Invariante: Preis >= 0
• Invarianten können während der Ausführung eines Dienstes kurzzeitig verletzt werden.
• Invarianten gelten vor und nach jedem Aufruf des Moduls.
![Page 15: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/15.jpg)
Module, Klassen, Verträge 15
Spezifikation durch Vertrag
Kunden-Lieferanten-Modell mit Bedingungen
Kunde
Prüfung bzgl. angeforderten Dienst
Invarianten, Vorbedingungenggf. Ausführung
Invarianten, Nachbedingungen
Lieferant
Auftrag Rückmeldung
![Page 16: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/16.jpg)
Module, Klassen, Verträge 16
Spezifikation durch Vertrag
Schnittstellenspezifikation mit Bedingungen
MODULE Kaffeeautomat
QUERIES
außer_Betrieb : BOOLEAN
eingenommener_Betrag : INTEGER
Preis : INTEGER
QUERIES FOR Betriebspersonal
gesammelter_Betrag : INTEGER
. . .
![Page 17: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/17.jpg)
Module, Klassen, Verträge 17
Spezifikation durch Vertrag
Schnittstellenspezifikation mit Bedingungen
ACTIONS
Geld_einnehmen (IN Betrag : INTEGER)
PRE
NOT außer_Betrieb
Betrag >= 0
POST
eingenommener_Betrag = OLD (eingenommener_Betrag) + Betrag
. . .
![Page 18: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/18.jpg)
Module, Klassen, Verträge 18
Spezifikation durch Vertrag
Schnittstellenspezifikation mit Bedingungen
Kaffee_ausgeben
PRE
NOT außer_Betrieb
eingenommener_Betrag >= Preis
POST
eingenommener_Betrag = OLD (eingenommener_Betrag) - Preis
gesammelter_Betrag = OLD (gesammelter_Betrag) + Preis
Geld_zurückgeben
PRE
NOT außer_Betrieb
POST
eingenommener_Betrag = 0
. . .
![Page 19: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/19.jpg)
Module, Klassen, Verträge 19
Spezifikation durch Vertrag
Schnittstellenspezifikation mit Bedingungen
ACTIONS FOR Betriebspersonalinitialisieren (IN neuer_Preis : INTEGER)PREneuer_Preis >= 0POSTNOT außer_Betriebeingenommener_Betrag = 0Preis = neuer_Preisgesammelter_Betrag = 0
INVARIANTSeingenommener_Betrag >= 0Preis >= 0gesammelter_Betrag >= 0
END Kaffeeautomat
![Page 20: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/20.jpg)
Module, Klassen, Verträge 20
Spezifikation durch Vertrag
Verhältnis statische und dynamische Semantik
• Typ INTEGER umfasst Werte: . . ., -2, -1, 0, 1, 2, . . .
• Typ NATURAL umfasst Werte: 0, 1, 2, . . .
• Die Grenze zwischen statischer und dynamischer Semantik ist unscharf.
Transformationen von Semantiken sind u.U. möglich.
• Welche Auswirkung hat die Einführung des Typs NATURAL auf die Schnittstellenspezifikation?
• Was bedeutet die Verwendung des Typs NATURAL für die dynamische Semantik?
![Page 21: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/21.jpg)
Module, Klassen, Verträge 21
Spezifikation durch Vertrag
Auswirkungen des Typs NATURAL
MODULE Kaffeeautomat
QUERIES
außer_Betrieb : BOOLEAN
eingenommener_Betrag : NATURAL
Preis : NATURAL
QUERIES FOR Betriebspersonal
gesammelter_Betrag : NATURAL
. . .
![Page 22: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/22.jpg)
Module, Klassen, Verträge 22
Spezifikation durch Vertrag
Auswirkungen des Typs NATURAL
ACTIONS
Geld_einnehmen (IN Betrag : NATURAL)
PRE
NOT außer_Betrieb
POST
eingenommener_Betrag = OLD (eingenommener_Betrag) + Betrag
. . .
![Page 23: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/23.jpg)
Module, Klassen, Verträge 23
Spezifikation durch Vertrag
Auswirkungen des Typs NATURAL
ACTIONS Geld_einnehmen (IN Betrag : NATURAL)PRENOT außer_BetriebPOSTeingenommener_Betrag = OLD (eingenommener_Betrag) + Betrag
Kaffee_ausgebenPRENOT außer_Betriebeingenommener_Betrag >= PreisPOSTeingenommener_Betrag = OLD (eingenommener_Betrag) - Preisgesammelter_Betrag = OLD (gesammelter_Betrag) + Preis
Geld_zurückgebenPOST eingenommener_Betrag = 0
. . .
![Page 24: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/24.jpg)
Module, Klassen, Verträge 24
Spezifikation durch Vertrag
Auswirkungen des Typs NATURAL
ACTIONS FOR Betriebspersonalinitialisieren (IN neuer_Preis: NATURAL)
PREneuer_Preis > 0
POSTNOT außer_Betriebeingenommener_Betrag = 0Preis = neuer_Preisgesammelter_Betrag = 0
INVARIANTSPreis > 0gesammelter_Betrag MOD Preis = 0
END Kaffeeautomat
Neue, nichttriviale Invariante
![Page 25: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/25.jpg)
Module, Klassen, Verträge 25
Klassen und Exemplare
Kaffeeautomaten gleicher Bauart
• Unterscheidung: Beschreibung des Baumusters gegenüber der Beschreibung eines Exemplars
• Automaten gleicher Bauart gehören zu einer Klasse, der ein Baumuster (Blaupause, Schablone,... ) zugrunde liegt.
• Ein konkreter Automat ist ein Objekt einer Klasse baugleicher Automaten.
• Ersetzen des Schlüsselworts MODULE durch CLASS
![Page 26: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/26.jpg)
Module, Klassen, Verträge 26
Klassen und Exemplare
Spezifikation einer Klasse
CLASS Kaffeeautomat
QUERIES
außer_Betrieb : BOOLEAN
eingenommener_Betrag : NATURAL
Preis : NATURAL
QUERIES FOR Betriebspersonal
gesammelter_Betrag : NATURAL
. . .
. . .
END Kaffeeautomat
![Page 27: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/27.jpg)
Module, Klassen, Verträge 27
Klassen und Exemplare
Objekte und Module
• Erzeugen von Objekten durch Deklaration:
KA1, KA2 : Kaffeeautomat
• Aufruf von Objekten als Lieferanten:
KA1.Geld_einnehmen (120)
KA2.Kaffee_ausgeben
• Die Klasse legt alle möglichen Zustände und das Verhalten für jedes Objekt fest.
• Jedes Objekt nimmt zu einem Zeitpunkt einen eigenen Zustand ein.
• Ein Modul ist ein einzelnes Objekt, der keine Klasse zugrundeliegt.
Klasse
Objekt
istTypvon
istExemplar
von
![Page 28: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/28.jpg)
Module, Klassen, Verträge 28
Klassen und Exemplare
Eine weitere Klasse
CLASS TasseQUERIES
leer : BOOLEANvoll : BOOLEAN
ACTIONS leeren
PRENOT leer
POSTNOT voll
füllenPRE
leerPOST
vollINVARIANTS
NOT (leer AND voll)END Tasse
![Page 29: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/29.jpg)
Module, Klassen, Verträge 29
Klassen und Exemplare
Tassen
• Tasse kann teilweise gefüllt sein:teilvoll = (NOT leer AND NOT voll)
• Wie sieht auf Basis der Klassenspezifikation ein Zustandsdiagramm aus?
+ Zustände: leer, voll, teilvoll
+ In welchem Verhältnis stehen Vorzustände der Übergänge zu Vorbedingungen und Nachzustände zu Nachbedingungen?
+ Lässt sich Ihre Tasse “ex” leeren?
![Page 30: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/30.jpg)
Module, Klassen, Verträge 30
Klassen und Exemplare
Ergänzung der Aktion Kaffee_ausgeben
Kaffee_ausgeben (INOUT Pott: Tasse)
PRENOT außer_Betriebeingenommener_Betrag >= PreisPott.leer
POSTeingenommener_Betrag = OLD (eingenommener_Betrag) -
Preisgesammelter_Betrag = OLD (gesammelter_Betrag) + PreisPott.voll
![Page 31: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/31.jpg)
Module, Klassen, Verträge 31
Klassen und Exemplare
Kaffeeautomaten und Tassen - als Klassen
• Erzeugen einer Tasse als Objekt:mein_Kump : Tasse
• Tasse am Automat KA1 füllen:KA1.Kaffee_ausgeben (mein_Kump)
• Trinken:mein_Kump.leeren
• Benutztstruktur der Klassen: Kunde
Kaffeeautomat
benutztbenutzt
Tassebenutzt
![Page 32: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/32.jpg)
Module, Klassen, Verträge 32
Abstraktion und Spezifikation
Ein Warenautomat
Warenautomat
...
Ware ausgebenPreis EUR
eingenommener
gesammelter
außer
initialisieren
Geld einnehmen
Geld zurückgeben
...
...
Betrag EUR
Betrieb
Betrag EUR
Geld-schlitz
![Page 33: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/33.jpg)
Module, Klassen, Verträge 33
Generalisierung und Spezialisierung
Automaten
• Kaffeeautomaten, Fahrkartenautomaten sind spezielle Ausprägungen von Warenautomaten.
• Der Oberbegriff ist allgemeiner, abstrakter als seine Unterbegriffe.
• Ein Unterbegriff ist spezieller, konkreter als seine Oberbegriffe.
Oberbegriff
Unterbegriff
SpezialisierenGeneralisieren
abstrakt
konkret
![Page 34: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/34.jpg)
Module, Klassen, Verträge 34
Kapselung
Trennung von Schnittstelle und Implementation
• Schnittstelle umfasst alle Informationen, die+ ein Kunde zur Auftragsvergabe an den Lieferanten wissen muss,+ der Lieferant für die Implementation benötigt.
• Der Kunde kann die Schnittstelle benutzen, ohne die dahinter verborgene Implementation zu kennen (information hiding).
• Die Implementation kann ohne Auswirkung auf den Kunden geändert werden.
Implementation
Schnittstelle
![Page 35: 1 Module, Klassen, Verträge l Abstraktion und Spezifikation l Kunden-Lieferanten-Modell l Module und Schnittstellen l Spezifikation durch Vertrag l Klassen](https://reader035.vdokument.com/reader035/viewer/2022062512/55204d7349795902118c6911/html5/thumbnails/35.jpg)
Module, Klassen, Verträge 35
Kapselung
Schnittstelle und Implementation
Schnittstelle Implementation
Verhalten Struktur
WAS wird gemacht? WIE wird es gemacht?
Spezifikation Realisation
öffentlich privat
extern intern
zugreifbar verborgen