360 likes | 562 Views
OOM. Objektorientierte Modellierung. Paul Weishaupt Akademie für Lehrerfortbildung und Personalführung, Dillingen. Dillingen, 28.09.04. Quellen: Freiberger, Wiedemann, Heidrich. Grundlagen Vom Problem zur Lösung - Objektorientierung Struktur Assoziation-Kardinalität-Vererbung
E N D
OOM Objektorientierte Modellierung Paul WeishauptAkademie für Lehrerfortbildung und Personalführung, Dillingen Dillingen, 28.09.04 Quellen: Freiberger, Wiedemann, Heidrich
Grundlagen Vom Problem zur Lösung - Objektorientierung Struktur Assoziation-Kardinalität-Vererbung Interaktion Kapselung-Botschaft-Sequenzdiagramm Zusammenfassung Überblick
Grundlagen Modellbegriff Modellierung Systemanalyse Abstraktes Modell Reales Modell Objekt Klasse Ziele
Original - Modell Original Modell Wer braucht das Modell und wann? Subjekt Was ist relevant? Zu welchem Zweck? Quelle: Stachowiak 1974 Allgemeine Modelltheorie (AMT)
Original - Modell Original Modell relevant relevant Nicht relevant Zusätze Wer braucht das Modell und wann? Subjekt Was ist relevant? Zu welchem Zweck? Quelle: Stachowiak 1974 Allgemeine Modelltheorie (AMT)
Modellierung Struktur, Verhalten und Interaktionen - Modellierung: Abbildung eines realen oder geplanten Systems auf ein Modell. - Modell: Abstrahierte Beschreibung eines Systems, das die für eine bestimmte Zielsetzung wesentlichen Eigenschaften des Systems enthält. - Ziel: Leichtere formale Beschreibung und größere Anschaulichkeit als das reale System.
Weg zum Modell reales System AbgrenzungAbstraktionIdealisierungAggregationStrukturanalyse Systemanalyse abstraktes Modell Basiskonzepteder Informatik Modellbildung reales ModellRepräsentation
reales System AbgrenzungAbstraktionIdealisierungAggregationStrukturanalyse abstraktes Modell Basiskonzepteder Informatik reales ModellRepräsentation Beispiel: Sportverein Ein ländlicher Sportverein, bei dem die Mitglieder aus vielen umliegenden Gemeinden kommen, benötigt eine Computerprogramm, mit dem sich Verwaltungsvorgänge einfach und schnell durchführen lassen. Z. B. Listen erstellen, Adressen ausdrucken, Beiträge einfordern, Informationen an Mitglieder schnell weitergeben, usf.
Objektorientierte Modellierung 2 SportName = Schwimmen Beitrag = 45 4 SportName = Fußball Beitrag = 35 12 SportName = Turnen Beitrag = 55 2 OName = Brugschlag PLZ = 85368 7 OName = Attenkirchen PLZ = 85358 4 OName = Nandlstadt PLZ = 85364 400 Fahrzeug = Golf Baujahr = 2002 143 Vorname = AnitaNachname = KlaubGeburtsdatum = 1.6.80Geschlecht = wGröße = 1,67 34 Vorname = Inge Nachname = SchmidtGeburtsdatum = 3.8.87Geschlecht = w 1201 Vorname = Klaus Nachname = MaierGeburtsdatum = 22.2.82Geschlecht = mBeruf = Arzt 1203 Vorname = Hans Nachname = HuberGeburtsdatum = 12.3.81Geschlecht = mFahrzeug = Fahrrad Abgrenzung Bezeichner Attribute, Attributwerte
Objektorientierte Modellierung 2 SportName = Schwimmen Beitrag = 45 4 SportName = Fußball Beitrag = 35 12 SportName = Turnen Beitrag = 55 2 OName = Brugschlag PLZ = 85368 7 OName = Attenkirchen PLZ = 85358 4 OName = Nandlstadt PLZ = 85364 143: Vorname = AnitaNachname = KlaubGeburtsdatum = 1.6.80Geschlecht = w 34: Vorname = Inge Nachname = SchmidtGeburtsdatum = 3.8.87Geschlecht = w 1201: Vorname = Klaus Nachname = MaierGeburtsdatum = 22.2.82Geschlecht = m 1203 Vorname = Hans Nachname = HuberGeburtsdatum = 12.3.81Geschlecht = m 1203 ...Fahrzeug = Fahrrad Abstraktion Idealisierung Was ist gleich? Was ist verschieden?Was lässt sich vereinfachen?
Objektorientierte Modellierung 2: SportName = Tennis Beitrag = 45 12 SportName = Turnen Beitrag = 55 2: 7: 4 OName = Nandlstadt PLZ = 85364 143: Vorname = AnitaNachname = KlaubGeburtsdatum = 1.6.80Geschlecht = w 34: Vorname = Inge Nachname = SchmidtGeburtsdatum = 3.8.87Geschlecht = w 1201: Vorname = Klaus Nachname = MaierGeburtsdatum = 22.2.82Geschlecht = m 1203 Vorname = Hans Nachname = HuberGeburtsdatum = 12.3.81Geschlecht = m... Reduktion der Komplexität Objekte -> Abstraktion -> Klassen
Klassenbildung MITGLIED SPORTART ORT Vorname : Text Nachname : Text Geburtsdatum : Datum Geschlecht : Zeichen SportName : Text Beitrag : Zahl OName : Text PLZ : Text Reduktion der Komplexität Klasse, Attribut, Wertebereich
Klasse Objekte typische Attribute RECHTECK Gymnasium, Turnhalle Breite, Länge KREIS Baum1, Baum2, Baum3 Radius, Mittelpunkt LINIENZUG Pausenhof, Straße Liniendicke, Linienfarbe TEXTFELD Gymnasium-Text, Realschule-Text Text, Schriftart, Größe Klassifizierung von Grafikobjekten
Beispiel: Patient PATIENT PATIENT HERZ HERZ KNOCHEN Vorname : Text Nachname : Text Geburtsdatum : Datum Geschlecht : Zeichen Vorname : Text Nachname : Text Geburtsdatum : Datum Geschlecht : Zeichen Volumen: Zahl Zustand : Text Volumen: Zahl Zustand : Text Name: Text Zustand : Text schlage()zeigeZustand() gibName() gibAlter() Beispiel: Ein Patient soll mit seinen Körperfunktionen simuliert werden Verhalten Patient hat Vorname, Nachname.., Herz und Knochen. Das Herz kann schlagen und seinen Zustand zeigen.
Objekte und Klassen MITARBEITER Name Kleidung Abteilung NameNennen () AbteilungMerken (Abt) AbteilungNennen () KleidungNennen () m1:MITARBEITER m2:MITARBEITER Name = Huber Kleidung = Sakko Abteilung = Verwaltung Name = Müller Kleidung = Pullover Abteilung = Service NameNennen () AbteilungMerken (Abt) AbteilungNennen () KleidungNennen () NameNennen () AbteilungMerken (Abt) AbteilungNennen () KleidungNennen () Klasse Objekt erzeugen Objekte (Exemplare) - alle Objekte einer Klasse besitzen dieselben Attribute, jedoch i. A. unterschiedliche Attributwerte - alle Objekte einer Klasse verwenden dieselben Methoden
Objekt ObjektBez : KLASSENBEZ Attribut = Wert Methode() Ein Objekt ist ein individuelles und identifizierbares Exemplar von Dingen, Personen oder Begriffen der realen Welt oder der Vorstellungswelt. Es besitzt festgelegte Eigenschaften und reagiert mit einem definierten Verhalten auf seine Umwelt. Die Eigenschaften werden durch seine Attributwerte, das Verhalten durch seine Methoden (Operationen) festgelegt. Identität (ist was) Statisch (hat was) Dynamisch (kann was)
Klasse KLASSENBEZ Attribut1 Attribut2 : AttributN Methode1 () Methode2 () : MethodeM () Eine Klasse beschreibt die Gemein-samkeiten einer Menge von Objekten mit denselben Eigenschaften und demselben Verhalten. Attribute beschreiben die Eigen-schaften. Alle Objekte einer Klasse besitzen dieselben Attribute, jedoch i.a. unterschiedliche Attributwerte. Alle Objekte einer Klasse verwenden dieselben Methoden (Operationen). Es gibt einen Mechanismus zum Erzeugen von Objekten.
Struktur Aggregation Assoziation Kardinalität Aggregation, Komposition Vererbung Ziele
Beispiel: Patient PATIENT HERZ KNOCHEN Vorname : Text Nachname : Text Geburtsdatum : Datum Geschlecht : Zeichen Volumen: Zahl Zustand : Text Name: Text Zustand : Text schlage()zeigeZustand() gibName() gibAlter() Jedes Objekt der Klasse PATIENT enthält ein Objekt der Klasse HERZ und mehrere Objekte der Klasse KNOCHEN. Diese Zusammenfassung heißt Aggregation. Sie verringert die Komplexität des Modells.
Aggregation PATIENT HERZ KNOCHEN KLEIDUNG Vorname : Text Nachname : Text Geburtsdatum : Datum Geschlecht : Zeichen Volumen: Zahl Zustand : Text Name: Text Zustand : Text Name: Text Farbe : Text schlage()zeigeZustand() gibName() gibAlter() In dem Modell enthält jeder Patient mehrere Knochen und ein Herz. * 1 enthält
Beziehungsbündel Attribute Attribute Beziehungs-bündel Methoden Methoden ? Aufgabenstellung ? Objekt1 Objekt2 Objekt3 Objekt4 Objekt5 Objekt6 Objekt7 Objekt8 Objekt9 Objekt10 Objekt11 Objekt12 Klasse1 Klasse2 Klasse3
Assoziation Objekte der KLASSE1 Objekte der KLASSE2 Die Abhängigkeiten zwischen Objekten werden durch Objekt-beziehungen beschrie-ben. o4 o5 o6 o7 o8 o9 o1 o2 o3 OBeziehung > unterrichtet > o1 o4 Huber Max OBeziehung > unterrichtet > o2 OBeziehung > o5 Meier unterrichtet > Inge Objektdiagramm
Assoziation Beziehung > KLASSE1 KLASSE2 Objekte der KLASSE1 Objekte der KLASSE2 Die Abhängigkeiten zwischen Objekten werden durch Objekt-beziehungen beschrie-ben. o4 o5 o6 o7 o8 o9 o1 o2 o3 Die Menge aller gleich-artigen Beziehungen zwischen Objekten ist eine Assoziation(Beziehungsmenge, Klassenbeziehung, Beziehung). Klassendiagramm
Kardinalität Beziehung > * KLASSE1 KLASSE2 Die Kardinalität gibt an, mit wie vielen anderen Objekten ein Objekt einer bestimmten Klasse in einer konkreten Beziehung steht. 1 genau eines 0..1 keines oder eines * eines oder mehrere 0..* keines oder eines oder mehrere
Assoziation - Beispiel 1 < wird gelehrt In einer Schulklasse : unterrichtet in > * LEHRER FACH
Assoziation - Beispiel ist in > ist in > enthält > enthält > * n * n m * 1 1 < hat < hat < ist Teil von < ist Teil von In der Schule : LEHRER SCHULKLASSE SCHÜLER oder LEHRER SCHULKLASSE SCHÜLER
Assoziation - Beispiel wird benutzt > AUTO MITARBEITER 0..1 Name Abteilung Führerschein Hersteller Baujahr Fahrstrecke Tankinhalt 0..1 NameNennen () BaujahrNennen () Tanken (AnzLiter) Fahren (AnzKM) VerbrauchBerechnen () enthält > REIFEN 5 Größe Profilart Profiltiefe 0..1 0..1 GrößeNennen () MOTOR enthält > 1 Bauart Hubraum Leistung HubraumNennen ()
Vererbung Oberklasse Unterklasse1 Unterklasse2 Unterklasse3 Die Vererbung ist eine gerichtete Beziehung zwischen Klassen, wobei eine Unterklasse die Attribute und Operationen von einer (oder mehreren) Oberklasse übernimmt („ist ein“). Die Unterklasse definiert im Allgemeinen weitere Attribute und Operationen. Außerdem kann sie geerbte Operationen redefinieren (überdecken).
Vererbung - Beispiel ARBEITER PERSON Abteilung Arbeitszeit Stundenlohn Name Geschlecht Geburtsdatum AbteilungNennen () LohnBerechnen () GeburtsdatumNennen () AlterBerechnen () LohnBerechnen () VERTRETER Grundgehalt Kunden Umsatz UmsatzNennen () LohnBerechnen ()
Interaktion Kapselung Botschaft Sequenzdiagramm Ziele
Datenkapselung Methoden Daten Die Attributwerte (Daten) eines Objekts können nur über Methoden gelesen und verändert werden. Kto201345 Kto201345.BetragAbbuchen(10000,00) Z. B. können so Sicherheitsaspekte von der Methode berücksichtigt werden. BetragAbbuchen(Betrag) Botschaft
Botschaft Eine Botschaft (Nachricht) ist eine Aufforderung eines Senders (client) an einen Empfänger (server) eine Dienstleistung zu erbringen. Der Empfänger interpretiert diese Botschaft und führt eine Methode aus. Die Botschaft besteht in der Regel aus dem Namen der Methode und den Zusatzinformationen (Argumente, Parameter), die diese Aktion benötigt.
Datenaustausch Methoden Methoden Daten Daten Botschaft Botschaft
Sequenzdiagram Schlangenlinien fahren anhalten anhalten:ok Personalien prüfen Personalien prüfen:ok Fahrzeugpapiere prüfen Fahrzeugpapiere prüfen:ok sd Polizeikontrolle :Fahrer :Polizist :Alkomat :Auto par
Grundlagen Vom Problem zur Lösung - Objektorientierung Struktur Objekt-Klasse-Assoziation-Kapselung Interaktion Kapselung-Botschaft-Sequenzdiagramm Zusammenfassung Zusammenfassung
Ende Objektorientierte Modellierung