Erklären können, was eine assoziative Klasse und eine qualifizierte Assoziation sind. Erklären können, was Aggregation und Komposition bedeuten

Größe: px
Ab Seite anzeigen:

Download "Erklären können, was eine assoziative Klasse und eine qualifizierte Assoziation sind. Erklären können, was Aggregation und Komposition bedeuten"

Transkript

1 Grundlagen der Softwaretechnik 3 Statische Konzepte in der objektorientierten Analyse Lernziele Erklären können, was eine Assoziation ist Erklären können, was eine assoziative Klasse und eine qualifizierte Assoziation sind Erklären können, was Aggregation und Komposition bedeuten Erklären können, was Vererbung ist Erklären können, was ein Paket ist UML-Notation für Assoziation, Vererbung und Paket anwenden können Assoziationen und Vererbung in einem Text identifizieren und darstellen können Klassen zu Paketen gruppieren können 150

2 3.1 Statische vs. dynamische Konzepte 3 Statische Konzepte in der objektorientierten Analyse 3.1 Statische vs. dynamische Konzepte 3.2 Assoziation 3.3 Aggregation und Komposition 3.4 Vererbung 3.5 Paket 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) 3.7 Zusammenfassung 151

3 3.1 Statische vs. dynamische Konzepte OOA-Modell (Analysemodell): Vererbung Assoziation Statische Konzepte Paket Anwendungsfall Szenario Dynamische Konzepte Zustandsautomat Botschaft Attribut Operation Basiskonzepte Nicht veränderbare Aspekte (grundlegende Struktur) Statisches Modell Klasse Objekt Verhalten des Systems im Zeitverlauf (Abläufe, Kommunikationsfluss) Dynamisches Modell 152

4 3.1 Statische vs. dynamische Konzepte OOA-Modell (Analysemodell): Das statische Modell zeigt die Struktur Klassen beschreiben die Elemente des Fachkonzepts Assoziationen beschreiben die Beziehungen zwischen den Elementen Vererbung beschreibt die Verallgemeinerung von Klassen Attribute beschreiben Eigenschaften der Klassen (Daten des Systems) Pakete teilen das System in Teilsysteme auf Das dynamische Modell zeigt Funktionsabläufe Anwendungsfälle beschreiben die durchzuführenden Aufgaben auf einem sehr hohen Abstraktionsniveau Szenarios zeigen, wie Objekte miteinander kommunizieren, um eine bestimmte Aufgabe zu erledigen Zustandsautomaten beschreiben die Reaktionen eines Objekts auf verschiedene Ereignisse Video: Statisches Modell mit dem UML-Werkzeug Poseidon 153

5 3 Statische Konzepte in der objektorientierten Analyse Frage zu 3.1 : Statisches oder dynamisches Modell Ordnen Sie die folgenden Aussagen dem statischen oder dem dynamischen Modell zu Aussage Beschreibt das Verhalten des zu entwickelnden Softwaresystems Bildet den stabilen Kern des objektorientierten Modells Beschreibt die Beziehungen zwischen Klassen (bzw. ihren Objekten) Zeigt, wie Objekte miteinander kommunizieren, um eine bestimmte Aufgabe zu erledigen Modelliert die Struktur des Softwaresystems Beschreibt die Reaktionen eines Objekts auf verschiedene Ereignisse Enthält die Aufteilung des Systems in Teilsysteme Statisches Modell Dynamisches Modell 154

6 3.2 Assoziation 3 Statische Konzepte in der objektorientierten Analyse 3.1 Statische vs. dynamische Konzepte 3.2 Assoziation 3.3 Aggregation und Komposition 3.4 Vererbung 3.5 Paket 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) 3.7 Zusammenfassung 155

7 3.2 Assoziation Was ist eine Assoziation? Definition: Eine Assoziation modelliert Verbindungen zwischen Objekten einer oder mehrerer Klassen. Assoziation modelliert Verbindungen zwischen Objekten, nicht zwischen Klassen! Beispiel: Objekte der Klasse Student (z.b. Paul, Susi oder Peter) haben eine Verbindung zu Objekten der Klasse Lehrveranstaltung (z.b. Grundlagen der Softwaretechnik am Dienstag) Student besucht Lehrveranstaltung 156

8 3.2 Assoziation Beispiel: Assoziation zwischen Tank und Ventil Klassendiagramm Tank Füllstand Soll-Niveau 1 * besitzt Ventil Art Durchfluss Zustand Zeigt Klassen und ihre Beziehungen (statische Modellelemente) Objektdiagramm T1:Tank Füllstand = 75 Soll-Niveau = 80 Zeigt Objekte und ihre Beziehungen (zu einem bestimmten Zeitpunkt) V1:Ventil Art = Einlassventil Durchfluss = 4 Zustand = offen V2:Ventil Art = Auslassventil Durchfluss = 7 Zustand = geschlossen Die Menge aller Verbindungen wird als Assoziation zwischen den Objekten der Klassen Tank und Ventil bezeichnet. 157

9 3.2 Assoziation Eigenschaften von Assoziationen Es gibt binäre (zwischen zwei Objekten) und höherwertige Assoziationen Eine reflexive Assoziation besteht zwischen Objekten derselben Klasse Eine Assoziation hat eine Richtung (Navigierbarkeit) "Welches Objekt ist über die Beziehung informiert?" unidirektional bidirektional Assoziationen sind in der Systemanalyse inhärent bidirektional Objekte "kennen" sich gegenseitig 3 Arten von Assoziation einfache Assoziation Aggregation Komposition 158

10 3.2 Assoziation UML Notation einer Assoziation Binäre Assoziation Linie zwischen einer oder zwei Klassen Assozationsname An jedem Ende der Linie steht die Wertigkeit bzw. Kardinalität (multiplicity) "Wie viele Objekte kann ein bestimmtes Objekt kennen" An jedem Ende kann ein Rollenname stehen Klasse1 Klasse2 Attribut k1 k2 Attribut Operation() Operation() Klasse Attribut Operation() k2 k1 reflexive Assoziation 159

11 3.2 Assoziation Assoziation im Objektdiagramm (Live-Mitschrieb) ObjectTec Maier Müller Frage: Wie sieht das Klassendiagramm zu diesem Objektdiagramm aus? * 160

12 3.2 Assoziation Name einer Assoziation Beschreibt Semantik (Bedeutung) der Assoziation Beschreibt meistens nur eine Richtung der Assoziation Ein schwarzes Dreieck gibt die Leserichtung an Name darf fehlen, wenn die Bedeutung der Assoziation offensichtlich ist Prozessor Bezeichnung Taktfrequenz 1 * benutzt Speicher Bezeichnung Größe 161

13 3.2 Assoziation UML Notation der Kardinalität (Anzahl der Elemente) * 3..* , 4, , 8, 10..* genau 1 0 bis 1 0 bis viele 3 bis viele 0 bis 2 genau 2 2, 4 oder 6 nicht 6, 7 oder 9 162

14 3.2 Assoziation Bedeutung der Kardinalität Kann-Assoziation Untergrenze: Kardinalität 0 Muss-Assoziation Untergrenze: Kardinalität 1 oder größer muss kann Prozessor 1 Speicher Prozessor kann mehrere Speicher besitzen Es gibt Prozessoren, die keinen Speicher besitzen Jeder Speicher gehört genau zu einem Prozessor muss muss Prozessor Speicher Jeder Prozessor muss mindestens einen Speicher besitzen 163

15 3.2 Assoziation Rollenname (1) Beschreibt Bedeutung eines Objekts in einer Assoziation Binäre Assoziationen besitzen maximal zwei Rollen Wird an das Ende der Assoziation bei der Klasse geschrieben, deren Bedeutung in der Assoziation die Rolle beschreibt Beispiel für Klassendiagramm Beispiel für Implementierung Prozessor Bezeichnung Taktfrequenz 1 1..* CPU Speicher Bezeichnung Größe class Speicher { Prozessor CPU; }... Rollennamen tragen zur Verständlichkeit des Modells mehr bei als der Assoziationsname 164

16 3.2 Assoziation Rollenname (2) Rollenname ist nicht optional... wenn zwischen zwei Klassen mehr als eine Assoziation besteht Prozessor Bezeichnung Taktfrequenz 1 1..* CPU * 1..* Graphikkarte Speicher Bezeichnung Taktfrequenz bei reflexiven Assoziationen Rechner IP-Adresse Standort Protokolle Client * Server 1 165

17 3.2 Assoziation Gerichtete Assoziation Nur ein Objekt ist über Beziehung informiert (unidirektionale Navigierbarkeit) Nur in die Navigationsrichtung können Botschaften geschickt werden. Darstellung durch geöffnete Pfeilspitze Tank steuert 1..* Alarmsignal Hupe Einer Hupe ist nicht bekannt, von welchen Tanks sie als Alarmsignal verwendet wird. Jede bidirektionale Assoziation kann durch zwei unidirektionale Assoziationen ausgedrückt werden Tank 1..* steuert 1..* wird gesteuert von Hupe Tank 1..* steuert 1..* Hupe Navigierbarkeit in der Analyse nur in Ausnahmefällen festlegen 166

18 3.2 Assoziation Geordnete Assoziation Zeigt an, dass die Menge der Objektverbindungen geordnet ist Möglich bei Kardinalität größer eins Kennzeichnung der Ordnung durch das Schlüsselwort {ordered} Keine Aussage über Definition der Ordnung (z.b. zeitlich, alphabetisch) Register 1 {ordered}* Speicherstelle Bit 1. Stelle :Bit :Register 2. Stelle :Bit 3. Stelle :Bit 167

19 3.2 Assoziation Restriktion (constraint) einer Assoziation Bedingung, die stets erfüllt sein muss Einschränkung der möglichen Inhalte eines Modellelements Angestellter Name Gehalt Position Mitarbeiter * Chef 0..1 {Chef.Gehalt> Mitarbeiter.Gehalt} a1: Angestellter Gehalt = 7000 Chef Mitarbeiter a2: Angestellter Gehalt = 5000 a3: Angestellter Gehalt = 4500 Chef Mitarbeiter a4: Angestellter Gehalt =

20 3.2 Assoziation or-restriktion einer Assoziation Zu jedem beliebigen Zeitpunkt kann nur eine von mehreren möglichen Assoziationen gelten or- Restriktion kann sich auf mehr als zwei Assoziationen beziehen Wichtig: Einbezogene Klassen müssen unterschiedliche Rollennamen haben Fehlt der Rollenname, gilt: Name der Klasse = Rollenname lagert in 1 Hochregallager Palette1 Palette * * {or} lagert in 1 Lagerraum Palette2 :Hochregallager :Lagerraum subset-restriktion einer Assoziation Sportler Teilnehmer * Sieger {subset} * 0..1 * Wettbewerb siehe Kap. 3.6 Erweiterungsmechanismen 169

21 3.2 Assoziation Beispiel für or-restriktion: Umleitventil (Live-Mitschrieb) Umleit- ventil Abfluss 1 {or} 1 Speicherung Pumpe Druckspeicher Java Code class Umleitventil { Pumpe Abfluss; Druckspeicher Speicherung;... } 170

22 3.2 Assoziation Assoziative Klasse (association class) Assoziationen können zusätzlich die Eigenschaften einer Klasse besitzen Darstellung mit Klassensymbol und gestrichelter Linie Name der Assoziation und der Assoziationsklasse sind stets identisch Sender Name Adresse 1 * Kanal Protokoll Zustand Empfänger Name Adresse 171

23 3.2 Assoziation Verwendung von assoziativen Klassen (1) Erforderlich für Attribute und Operationen, die weder der einen noch der anderen Klasse zugeordnet werden können, sondern Eigenschaft der Beziehung selbst sind. Werden nur in der Analyse verwendet Im Entwurf Umwandlung in eine richtige Klasse Klasse 1 Rolle 1 k1 Rolle 2 k2 Klasse 2 Klasse 1 Rolle 1 Assoziationsklasse Assoziationsklasse Rolle 2 1 Rolle 2 Rolle 1 1 k2 k1 Wichtig: Übernahme der Kardinalitäten! Klasse 2 172

24 3.2 Assoziation Verwendung von assoziativen Klassen (2) Beispiel: Umwandlung einer Assoziationsklasse Sender Name Adresse 1 * Kanal Protokoll Zustand Empfänger Name Adresse Sender Name Adresse Empfänger Name Adresse 1 1 * Kanal Protokoll Zustand 1 173

25 3.2 Assoziation Qualifizierte Assoziation Einteilung der Menge der assoziierten Objekte durch spezielles Attribut, dessen Wert ein oder mehrere Objekte auf der anderen Seite selektiert Erhöhen den Informationsgehalt des Klassenmodells Das qualifizierende Attribut wird in einem Rechteck an der Seite der Klasse notiert Mitarbeiter Name Personalnr. * beschaeftigt 1 Unternehmen Name Anschrift Ein Unternehmen beschäftigt eine Menge von Mitarbeitern Jeder Mitarbeiter gehört genau zu einem Unternehmen Mitarbeiter Name Personalnr. 1 beschaeftigt 1 Personalnr. Unternehmen Name Anschrift Mitarbeiter werden über ihre Personalnummer identifiziert Qualifikationsangaben können die Kardinalität verändern! 174

26 3.2 Assoziation Beispiel zu qualifizierte Assoziation Ohne Qualifikation Schnittstellenkarte Typ Steckplatznr. * bedient 0..1 PC-Bus Übertragungsrate PC-Bus bedient viele Schnittstellenkarten Mit Qualifikation Schnittstellenkarte Typ Steckplatznr. 1 bedient 0..1 Steckplatznr. PC-Bus Übertragungsrate PC-Bus-Objekt zusammen mit Steckplatznummer selektiert genau eine Schnittstellenkarte Veranschaulichung: Bezeichnung(Karte) Steckplatznr. Typ (PC-Bus) Graphikkarte 1 IDE-Bus Soundkarte 2 IDE-Bus Festplattencontroller 5 SCSI-Bus Video: Anwendungsbeispiel Sortierband - Assoziationen 175

27 3 Statische Konzepte in der objektorientierten Analyse Frage zu 3.2 Beschreiben Sie mit eigenen Worten, welche Art von Beziehung zwischen den zwei Klassen in dem nachfolgend abgebildeten Modell besteht. Person Name Vorname 1..* * Volkshochschulkurs Nummer Bezeichnung Antwort Bidirektionale Assoziation zwischen Person und Volkshochschulkurs Eine Person kann null oder mehrere VHS-Kurse besuchen Jeder VHS-Kurs hat mindestens einen Teilnehmer 176

28 3 Statische Konzepte in der objektorientierten Analyse Frage zu 3.2 Folgendes Diagramm ist gegeben: Student 4 Verein 1 3 Unternehmen 2 Raum a) "arbeitet für, b) "besitzt, c) "nutzt, d) "ist Mitglied", e) "befreundet mit, f) "schraubt" Wie könnte die Bezeichnung der Assoziationen lauten? Antwort Möglichkeit 1: Möglichkeit 2: Student arbeitet für Unternehmen Student arbeitet für Unternehmen ist Mitglied Verein nutzt Raum besitzt arbeitet für Verein besitzt Raum nutzt 177

29 3.3 Aggregation und Komposition 3 Statische Konzepte in der objektorientierten Analyse 3.1 Statische vs. dynamische Konzepte 3.2 Assoziation 3.3 Aggregation und Komposition 3.4 Vererbung 3.5 Paket 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) 3.7 Zusammenfassung 178

30 Füllstandsmesser 3.3 Aggregation und Komposition Aggregation Definition: Eine Aggregation bezeichnet eine "Teil-Ganzes - (whole-part) oder "ist-teil-von -Beziehung zwischen Klassen Ganzes Aggregatklasse Teil Teilklasse Aggregation ist eine spezielle Form der Assoziation Lässt sich durch ist Teil von bzw. besteht aus beschreiben (Ganzes Teile) Raute kennzeichnet das Ganze Beispiel: Max-Niveau Soll-Niveau Füllstand Tank Füllstand Max-Niveau Soll-Niveau besteht aus > < ist Teil von Füllstandsmesser 179

31 3.3 Aggregation und Komposition Eigenschaften der Aggregation ist asymmetrisch wenn B Teil von A ist, dann darf A nicht Teil von B sein ist transitiv wenn A Teil von B und B Teil von C, dann ist auch A Teil von C Anlage besteht aus 1 1..* Tank besteht aus 1 1..* Füllstandsmesser muss nicht exklusiv sein B darf gleichzeitig Teil von A und Teil von C sein Abteilung beschäftigt 1..* 1..* arbeitet für Freier Mitarbeiter Das Ganze übernimmt Aufgaben stellvertretend für seine Teile 180

32 3.3 Aggregation und Komposition Transivität einer der Aggregation (Live-Mitschrieb) Beispiel Pkw: 181

33 3.3 Aggregation und Komposition Wann liegt eine Aggregation vor? Eine Aggregation liegt vor, wenn die folgenden Fragen mit ja beantwortet werden können: 1. Ist die Beschreibung Teil von zutreffend? 2. Werden manche Operationen auf das Ganze automatisch auch auf die Teile angewandt? 3. Pflanzen sich manche Attribute vom Ganzen auf alle oder einige Teile fort? 4. Ist die Verbindung durch eine Asymmetrie gekennzeichnet, bei der die Teile dem Ganzen untergeordnet sind? Beispiele für Aggregationsbeziehungen Das Ganze und seine Teile Bsp.: Pkw (Ganzes) und Motor (Teil) Der Behälter und sein Inhalt Bsp.: Kaffeemaschine (Behälter) und Kaffeepulver (Inhalt) Die Kollektion und ihre Mitglieder Bsp.: Firma (Kollektion) und Angestellte (Mitglieder) 182

34 3.3 Aggregation und Komposition Komposition Definition: Eine Aggregation mit starker Bindung (Existenzabhängigkeit) wird als Komposition bezeichnet Ganzes Aggregation Teil Komposition Existenzabhängiges Teil Kennzeichung durch gefüllte Raute Beispiel: Buch besteht aus ist Teil von Kapitel 183

35 3.3 Aggregation und Komposition Eigenschaften der Komposition Zusätzlich zur Aggregation gilt: Jedes Objekt der Teilklasse kann zu einem bestimmten Zeitpunkt nur Komponente eines einzigen Objekts der Aggregatklasse sein Kardinalität der Aggregatklasse <= 1 Ein Teil darf evtl. auch anderem Ganzen zugeordnet werden (aber nicht gleichzeitig) Dynamische Semantik des Ganzen gilt auch für seine Teile (propagation semantics) Wird das Ganze kopiert, werden auch seine Teile kopiert Beispiel Ordner und Datei: 1 * enthält Nicht gleichzeitig möglich! 184

36 3.3 Aggregation und Komposition Vergleich Aggregation vs. Komposition (2) PKW 1 hat 4..5 Rad Fenster 1 hat 1..* Rahmen Aggregation: "Pkw hat Räder Räder gehören notwendigerweise zu einem Auto Aggregation Räder können aber eigenständig und zwischen Pkw austauschbar betrachtet werden keine Komposition Komposition: Fenster hat Rahmen Wird das Fenster gelöscht, werden auch alle existenzabhängigen Einzelteile mitgelöscht Komposition 185

37 3.3 Aggregation und Komposition Beispiel Reiseunternehmen Ein Reiseunternehmen erarbeitet ein Klassenmodell für die Verwaltung seiner Reisekataloge, seiner Reisebeschreibungen und der Reiseunterlagen. Selbstverständlich beschreibt eine Klasse auch den Touristen, der die Reisen bucht. Ein Reisekatalog enthält eine oder mehrere Reisebeschreibungen. Die Reiseunterlagen für den Touristen werden aus einzelnen Reisebeschreibungen, eventuell aus verschiedenen Katalogen, zusammengestellt. Mehrere Touristen können auch gemeinsame Reiseunterlagen erhalten. hat bezieht sich auf Tourist Reiseunterlagen Katalog 1..* 1..* 0..* 1..* 1 1 besteht aus besteht aus 1..* 1..* Reisebeschreibung 186

38 3.3 Aggregation und Komposition Beispiel Tanksystem Ein Tanksystem besteht aus mehreren Tanks, Ein- bzw. Auslassventilen, Füllstandsmessern und Rohrleitungen Jeder Tank hat ein bis zwei Einlassventile, ein Auslassventil und einen Füllstandsmesser Je zwei Ventile unterschiedlichen Typs können über Rohrleitungen miteinander verbunden sein. 1 Füllstandsmesser Tank Füllstand Soll-Niveau füllen() leeren() setze_soll-niveau() Einlassventil Auslassventil Rohrleitung 187

39 3 Statische Konzepte in der objektorientierten Analyse Frage zu Gegeben seien die Klassen Haus und Zimmer. Welche Art Beziehung würden Sie zwischen beiden modellieren? Die einfache Assoziation "hat Beziehung zu Die Aggregation "besteht aus" Begründung: Existenzabhängigkeit zwischen Haus und Zimmer Die Komposition "besteht aus" 2. Gegeben seien die Klassen Haus und Mieter. Welche Art der Assoziation würden Sie modellieren? Die einfache Assoziation "hat" Die Aggregation "setzt sich zusammen aus" Die Komposition "besteht aus" Begründung: Die Beziehung zwischen Haus und Mietern ist nicht so innig. Aggregation ist auch noch vertretbar. 188

40 3.4 Vererbung 3 Statische Konzepte in der objektorientierten Analyse 3.1 Statische vs. dynamische Konzepte 3.2 Assoziation 3.3 Aggregation und Komposition 3.4 Vererbung 3.5 Paket 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) 3.7 Zusammenfassung 189

41 3.4 Vererbung Ähnliches Verhalten von Objekten (Live-Mitschrieb) Ordner einfügen = im Ordner abheften Mappe einfügen = in der Mappe ablegen Ablage einfügen Ordner Mappe 190

42 3.4 Vererbung Was ist Vererbung? Definition: Eine Vererbung (generalization) ist eine Beziehung zwischen einer allgemeinen Klasse und einer spezialisierten Klasse. Vererbung findet nur zwischen Klassen statt! Vererbung ist ein Abstraktionsprinzip zur hierarchischen Strukturierung (Einordnung der Klassen in eine Hierarchie) Ziel: Gemeinsame Eigenschaften und Verhaltensweisen zusammenfassen Spezialisierte Klasse ist vollständig konsistent mit allgemeiner Klasse, kann aber zusätzliche Informationen (Attribute, Operationen, Assoziationen) haben Allgemeine Klasse = Oberklasse (super class) Spezialisierte Klasse = Unterklasse (sub class) Oberklasse Unterklasse Generalisierung Spezialisierung Substitutionsprinzip: Objekt der Unterklasse kann überall verwendet werden, wo ein Objekt der Oberklasse erlaubt ist, aber nicht umgekehrt! 191

43 3.4 Vererbung Beispiel einer Vererbungsstruktur Zustand Ventil öffnen() schliessen() Leitungselement Nummer Länge Breite Höhe Durchfluss Umschaltventil Anzahl Abflüsse ändererichtung() Pumpe Typ Pumpleistung start() stop() Pumpe Typ Nummer Länge Breite Höhe Durchfluss Pumpleistung start() stop() Vererbung ist eine "ist ein" Beziehung Ventil Nummer Länge Breite Höhe Durchfluss Zustand öffnen() schliessen() Umschaltventil Nummer Länge Breite Höhe Durchfluss Zustand Anzahl Abflüsse öffnen() schliessen() ändererichtung() 192

44 3.4 Vererbung UML Notation der Vererbung Weißes bzw. transparentes Dreieck bei der Oberklasse Klasse1 Klasse1 Klasse2 Klasse3 Klasse2 Klasse3 Darstellungen gleichwertig alternativ verwendbar 193

45 3.4 Vererbung Was wird vererbt? Operationen, Attribute und Assoziationen Objektdiagramm Klassendiagramm Obj3:AnyClass Objekt1 <<instance of>> SuperClass 1 AnyClass AttributA = Wert1 AttributA Klassenattribut = W OperationA() Klassenoperation() Obj4:AnyClass Objekt2 <<instance of>> SubClass 1 OtherClass Obj5:OtherClass AttributA = Wert2 AttributB = Wert3 AttributB OperationB() 1. Attribut A von Superclass wird nach Subclass vererbt 2. 0perationenA() von Superclass auch auf Subclass anwendbar 3. Klassenattribut mit dem Wert W von Superclass an Subclass 4. Klassenoperation() von Superclass auch auf Subclass anwendbar 5. Assoziation zwischen Superclass und AnyClass an Subclass 194

46 3.4 Vererbung Überschreiben von Operationen Unterklassen können das Verhalten ihrer Oberklassen verfeinern, redefinieren bzw. überschreiben (redefine, override) Operationen können in der Unterklasse überschrieben, aber nicht eliminiert werden Gleiche Signatur der Operationen erforderlich! Konto Kontonummer Kontostand buchen () Durchfluss Zustand öffnen () Ventil buchen () Sparkonto Magnetventil öffnen () 195

47 3.4 Vererbung Abstrakte Klasse Unterscheidung zwischen abstrakten und konkreten Klassen Von einer abstrakten Klasse können keine Objekte erzeugt werden Verwendung, um ihre Informationen an spezialisierte Klassen zu vererben Kennzeichnung durch kursiven Namen oder durch Merkmal {abstract} Eine abstrakte Klasse kann abstrakte Operationen enthalten. Abstrakte Operationen müssen in der Unterklasse implementiert werden. Abstrakte Klasse ohne Vererbung sinnlos Person {abstract} Säugetier {abstract} Pflanzenfresser {abstract} Fleischfresser {abstract} Frau Mann Kuh Tiger 196

48 3.4 Vererbung Polymorphismus Definition: Eine Botschaft ist polymorph, wenn sie bei unterschiedlichen Objekten Methoden aktiviert, die verschiedene Semantiken besitzen. Polymorphie bedeutet unterschiedliches Verhalten verschiedener Objekte auf die gleiche Botschaft Beispiel Methode move(position) bei den verschiedenen Spielfiguren unterschiedlich implementiert Turm: Nur geradeaus Läufer: Nur diagonal Springer: 1 Feld gerade, 1 Feld diagonal Gleiche Botschaft move(position) löst unterschiedliche Reaktion aus Turm move(pos) Schachfigur {abstract} Position move(pos) {abstract} Läufer move(pos) Springer move(pos) 197

49 3.4 Vererbung Funktionsweise des Polymorphismus (Live-Mitschrieb) Beispiel Schachspiel Spieler meinefiguren: list of SchachFigur meinefiguren = (:Turm, :Bauer, :Springer, :Läufer, :Turm,...) move(pos) Methode move(pos) unterschiedliche Reaktionen Z.B. meinefiguren[2].move(a3) 198

50 3.4 Vererbung Beispiel für Vererbung (1) Auf einer Fensterfläche sollen Kreise, Rechtecke und Dreiecke angezeigt, verschoben und entfernt werden können. Die Begriffe Kreis, Rechteck und Dreieck können generalisiert und ganz allgemein als geometrische Figuren bezeichnet werden. Die Klassen Kreis, Rechteck und Dreieck sind demnach Spezialisierungen der gemeinsamen Oberklasse GeomFigur GeomFigur Oberklasse Figurenform Diskriminator: Unterscheidungsmerkmal: gibt an, nach welchem Kriterium eine Vererbungsstruktur erstellt wird Dreieck Kreis Rechteck Unterklasse 199

51 3.4 Vererbung Beispiel für Vererbung (2) Klassendiagramm GeomFigur {abstract} x: Integer y: Integer sichtbar: Boolean anzeigen() {abstract} entfernen() {abstract} verschiebezu(px, py) Figurenform Abstrakte Klasse Diskriminator Kreis Rechteck Dreieck radius {radius > 0} setradius(pr) anzeigen() entfernen() a {a > 0} b {b > 0} setkanten(pa, pb) anzeigen() entfernen() a {c-b < a < b+c} b {a-c < b < a+c} c {a-b < c < a+b} setkanten(pa, pb, pc) anzeigen() entfernen() Konkrete Klassen 200

52 3.4 Vererbung Beispiel für Vererbung (3) Java-Programmcode (Ausschnitt) abstract class GeomFigur { int x, y; boolean sichtbar; } public abstract void anzeigen(); public abstract void entfernen(); public void verschiebezu(int px,py) { if (sichtbar) { entfernen(); this.x = px; this.y = py; anzeigen(); } else { this.x = px; this.y = py; } } class Rechteck extends GeomFigur { int a, b; } public void anzeigen() {...} public void entfernen() {...} public void setkanten(int pa, pb) { if ((a > 0) && (b > 0)) { this.a = pa; this.b = pb; } } 201

53 3.4 Vererbung Vor- und Nachteile der Vererbung + Unterstützung der Änderbarkeit Änderung von Attributen in der Oberklasse wirkt sich automatisch auf alle Unterklassen aus + Einsparung von Code + Unterstützung der Wiederverwendbarkeit Verletzung des Geheimnisprinzips Unterklasse ist von Änderungen der Oberklasse abhängig Um die Unterklasse zu verstehen, muß auch die Oberklasse betrachtet werden Vererbung ist ein mächtiges, aber auch schwieriges Konzept 202

54 3 Statische Konzepte in der objektorientierten Analyse Frage zu 3.4 Kann ein Objekt Attribute und Methoden erben? Antwort Ja Nein Ja, außer Klassenattribute und -operationen Begründung Die Klasse kann Attribute und Methoden von anderen Klassen erben Objekt bekommt die Attribute und Methoden seiner Klasse bei der Erzeugung aufgeprägt 203

55 3.5 Paket 3 Statische Konzepte in der objektorientierten Analyse 3.1 Statische vs. dynamische Konzepte 3.2 Assoziation 3.3 Aggregation und Komposition 3.4 Vererbung 3.5 Paket 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) 3.7 Zusammenfassung 204

56 3.5 Paket Was ist ein Paket? Definition: Ein Paket (package) fasst Modellelemente (z.b. Klassen) zusammen Pakete schaffen eine bessere Übersicht über ein großes Modell Ein Paket kann selbst Pakete enthalten Beschreibung der Systemstruktur auf einer hohen Abstraktionsebene Das vollständige System kann als ein großes Paket aufgefasst werden Beispiel: Brauerei Malzproduktion Gärstation Abfüllung Lager 205

57 3.5 Paket UML-Notation von Paketen Paketname muss im gesamten System eindeutig sein Paketdiagramm: enthält Pakete und deren Abhängigkeiten Notation von Paketen Abhängigkeiten von Paketen System Paket1 Paket1 Paket2 Paket2 Paket3 Paket1 und Paket2 sind von Paket3 abhängig Jede Klasse (jedes Modellelement) gehört zu höchstens einem Paket Es kann in mehreren anderen Paketen darauf verwiesen werden Ein Paket definiert einen Namensraum für alle enthaltenen Klassen Verweis von außerhalb des Pakets Paket::Klasse oder Paket1::Paket11::Paket111::Klasse 206

58 3.5 Paket Vererbung bei Paketen Abgeleitete Pakete erben öffentliche (public) und geschützte (protected) Elemente des Oberpaketes Elemente können in den abgeleiteten Paketen überschrieben werden Vorteile der Aufteilung in Pakete + Besseres Verständnis durch Betrachtung von Teilsystemen bzw. Systemausschnitten + Vermeidung von Namenskonflikten + Zugriffskontrolle für Elemente in Paketen, Kapselung + Vereinfachung der Testphase durch separates Testen von Paketen 207

59 3 Statische Konzepte in der objektorientierten Analyse Frage zu 3.5 Welche Richtlinien zur Bildung von Paketen sind sinnvoll? Antwort Zusammenfassung von Klassen mit intensiver Kommunikation f f Es müssen mind. drei Pakete pro System existieren Paketname aus Namen der beinhalteten Klassen ableiten Identifikation aus zusammengehörigen Anwendungsfällen Aggregationen, Kompositionen und Vererbungsstrukturen im selben Paket zusammenfassen 208

60 3 Statische Konzepte in der objektorientierten Analyse Frage zu 3.5 Unterteilen Sie die Klassen Tourist, Vertrag, Reiseunterlagen, Reiseinformation und Katalog in die Pakete Reise und Kundeninformation. Antwort Reise Reiseunterlagen Reiseinformation Vertrag Kundeninformation Tourist Katalog 209

61 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) 3 Statische Konzepte in der objektorientierten Analyse 3.1 Statische vs. dynamische Konzepte 3.2 Assoziation 3.3 Aggregation und Komposition 3.4 Vererbung 3.5 Paket 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) 3.7 Zusammenfassung 210

62 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) Weitere Arten von Restriktionen bei Assoziationen subset-restriktion subset- Restriktion bildet Teilmenge Existiert nur, wenn die Hauptassoziation auch existiert Sportler Teilnehmer * Sieger {subset} * 0..1 * Wettbewerb Sieger eines Wettbewerbs muss auch Teilnehmer sein s1: Sportler s2: Sportler s3: Sportler w1: Wettbewerb w2: Wettbewerb 211

63 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) Abgeleitete Assoziation (derived association) Assoziation, deren konkrete Objektbeziehungen jederzeit aus den Werten anderer Objektbeziehungen und Objekte abgeleitet werden ( redundant) wird durch das Präfix / gekennzeichnet Ableitungsvorschrift wird ggf. als Restriktion notiert Professor 1 liest * Vorlesung * l ist Hörer von * * * hört Student :Professor :Vorlesung :Student :Vorlesung :Student 212

64 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) Verwendung von Assoziationen in Objektdiagrammen Steigerung des Aussagegehalts eines Objektdiagramms durch Verwendung von Rollennamen Assoziationsname bei Objektverbindung optional, muss unterstrichen werden! Qualifikationsangaben Symbole für Aggregation bzw. Komposition (siehe Kap. 3.3) :Kunde Herbst/Winter.Katalog Kontoinhaber Kontoberechtigter Bestellnummer :Konto Ski-Anorak:Artikel 213

65 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) Höherwertige Assoziation Prinzipiell sind auch Assoziationen zwischen drei und mehr Klassen möglich Bezeichnung: n-äre Assoziation (n-ary association) Ternäre und höhere Assoziationen können keine Aggregation oder Komposition bilden Jahr * Verein * * Fußball-Spieler Ergebnis Anzahl Tore 214

66 3 Statische Konzepte in der objektorientierten Analyse 3.1 Statische vs. dynamische Konzepte 3.2 Assoziation 3.3 Aggregation und Komposition 3.4 Vererbung 3.5 Paket 3.6 Erweiterungsmechanismen der UML (zum Selbststudium) 3.7 Zusammenfassung 215

67 3 Statische Konzepte in der objektorientierten Analyse Zusammenfassung 3 Eine Assoziation modelliert Verbindungen zwischen Objekten einer oder mehrerer Klassen Sonderfälle der Assoziation sind Aggregation und Komposition Vererbung beschreibt die Beziehung zwischen einer allgemeinen Klasse und einer spezialisierten Klasse Ein Paket gruppiert Modellelemente und ermöglicht die Darstellung des Softwaresystems auf einem höheren Abstraktionsniveau Vererbung Assoziation Gerichtete Assoziation Aggregation Komposition Assoziative Klasse Qualifizierte Assoziation Höherwertige Assoziation 216

68 3 Statische Konzepte in der objektorientierten Analyse Frage zu 3 Beschreiben Sie in dem Klassendiagramm für eine Kontoverwaltung die Beziehungen zwischen den Klassen! 1 1..* 1 1..* Kunde Konto Kontobewegung Girokonto Sparkonto Zwischen Kunde und Konto besteht eine, einfache Assoziation weil weder der Kunde Teil von Konto ist, noch umgekehrt Zwischen Konto und Kontobewegung existiert eine Komposition, weil eine Beziehung whole-part- vorliegt: dynamische Semantik eines Kontos gilt stets für alle Kontobewegungen Weil bei der Eröffnung eines Kontos gleich eine Einzahlung vorzunehmen ist, ist bei die Kontobewegung Kardinalität 1..* eingetragen Komposition von Konto zu Kontobewegung wird an beide Unterklassen vererbt, d.h. jedes Sparkonto- und Girokonto-Objekt hat Kontobewegungen Die Vererbung der Assoziation zu Kunde bedeutet, dass Verbindungen zwischen Kunde und Girokonto bzw. Sparkonto existieren 217

69 3 Statische Konzepte in der objektorientierten Analyse Vorbereitungsfragen zu 3 Frage 1: Welche Aussagen zu Paketen sind richtig? (WS 02/03) Antwort Eine Schnittstelle kann Bestandteil mehrerer Pakete sein. Existieren in zwei Paketen Klassen mit dem selben Namen, müssen die Paketnamen explizit angegeben werden. Pakete dienen als Strukturierungsmittel zur Aufteilung von großen Modellen. Pakete in der UML lassen sich nicht schachteln. Pakete müssen immer voneinander unabhängig sein. 218

70 3 Statische Konzepte in der objektorientierten Analyse Vorbereitungsfragen zu 3 Frage 2: Welche Aussagen zu Assoziation, Aggregation und Komposition sind richtig? (WS 03/04) Antwort Eine Assoziation beschreibt die Beziehung zwischen den Objekten der beteiligten Klassen. Aggregation und Komposition sind Assoziationen. In einer Komposition kann ein Objekt gleichzeitig Teil mehrerer Aggregatobjekte sein. Bei einer Aggregation erbt die Teilklasse von der Aggregatklasse. Die Programmiersprache Java unterscheidet nicht zwischen Assoziation, Aggregation und Komposition. 219

71 3 Statische Konzepte in der objektorientierten Analyse Vorbereitungsfragen zu 3 Frage 3: Welche der folgenden Aussagen zur Vererbung sind richtig? (WS 06/07) Antwort Es ist möglich, sowohl von konkreten als auch von abstrakten Klassen Objekte zu erzeugen. Eine Unterklasse stellt eine Spezialisierung ihrer Oberklasse dar. In einer Komposition kann ein Objekt gleichzeitig Teil mehrerer Aggregatobjekte sein. Erben mehrere Unterklassen von einer gemeinsamen Oberklasse, so spricht man von Mehrfachvererbung. Eine Oberklasse ist vollständig konsistent mit ihrer Unterklasse, enthält aber zusätzlich noch weitere Informationen. 220

72 3 Statische Konzepte in der objektorientierten Analyse Vorbereitungsfragen zu 3 Frage 4: Welche der folgenden Aussagen zur objektorientierten Analyse sind richtig? (WS 06/07) Antwort In der Analyse wird festgelegt, was das System tun und wie es realisiert werden soll. Die Analyse ist stark mit der Implementierung verknüpft. In der Analyse wird ein Fachkonzept des zu realisierenden Systems erstellt. Das OOA-Modell besteht nur aus einem statischen Modell. Die Analyse beschreibt den Problembereich aus Anwendersicht. 221

2 Konzepte und Notation der objektorientierten Analyse (Statische Konzepte)

2 Konzepte und Notation der objektorientierten Analyse (Statische Konzepte) Objektmodellierung 2 Konzepte und Notation der objektorientierten Analyse (Statische Konzepte) Prof. Dr. Heide Balzert Fachbereich Informatik Fachhochschule Dortmund Heide Balzert 2000 2 Lernziele Erklären

Mehr

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation zwischen

Mehr

UML -Klassendiagramme

UML -Klassendiagramme UML -Klassendiagramme UML - offline: ArgoUML http://argouml.stage.tigris.org/ UML online: Links genmymodel.com umlet.com/umletino/umletino.html Arten von UML-Diagrammen Diagramm Strukturdiagramm Verhaltensdiagramm

Mehr

Übungen Softwaretechnik I

Übungen Softwaretechnik I 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

Mehr

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure 8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:

Mehr

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 -

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 - Systemanalyse - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 5 - Hans-Jürgen Steffens (by courtesy of Prof. Dr. Thomas Allweyer) Fachbereich Informatik und Mikrosystemtechnik Fachhochschule

Mehr

Objektorientierung. Objekte

Objektorientierung. Objekte Eine Einführung G. Futschek Objekte Objekte Fragen: Wie unterscheiden sich Objekte? Wie sind Objekte einander ähnlich? Was können Objekte? Wie stehen Objekte zueinander in Beziehung? Objekte Im täglichen

Mehr

Geoinformation I Datenmodellierung

Geoinformation I Datenmodellierung Seite 1 von 61 Geoinformation I Datenmodellierung Seite 2 von 61 Datenmodellierung Übersicht Datenverwaltung und Datenbanken objektorientierte Abbildung der Realität Grundlagen der Objektorientierung Darstellung

Mehr

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 4 -

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 4 - Systemanalyse - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 4 - Hans-Jürgen Steffens (by courtesy of Prof. Dr. Thomas Allweyer) Fachbereich Informatik und Mikrosystemtechnik Fachhochschule

Mehr

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt. Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt. Was ist eine Klasse? Was ist ein Objekt? Geben Sie ein

Mehr

Objektorientierte Analyse (OOA) Strukturmodellierung

Objektorientierte Analyse (OOA) Strukturmodellierung Strukturmodellierung Seite 1 Strukturmodellierung Seite 2 Anwendung im Projekt Strukturmodellierung Voraussetzung: Use Case Diagramm liefert die funktionelle Gliederung mit Angabe der Ein- und Ausgaben

Mehr

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Software Engineering, SoSe 07, WSI, D. Huson, May 7, Software Engineering, SoSe 07, WSI, D. Huson, May 7, 2007 17 4 Modellierung in UML Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken. 4.1

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Vgl. Oestereich Kap 2.4 Seiten

Vgl. Oestereich Kap 2.4 Seiten Vgl. Oestereich Kap 2.4 Seiten 99-110 1 Vgl. Oestereich Kap 2.41 Seiten 99ff 2 Wie das Klassendiagramm ist auch das Objektdiagramm ebenfalls ein Strukturdiagramm. Da die Anzahl der Attribute sehr groß

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2 HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3

Mehr

Techniken der Projektentwicklung

Techniken der Projektentwicklung diagramme Termin 6 Denken in Schnittstellen Was nun? Einführung Bisher kennengelernt: Modellierung auf Konzeptlevel Usecase-Diagramme Domänenmodelle Jetzt: Übergang zu Spezifikation und Implementierung!

Mehr

Instanz ist objeket einer klasse. bsp: elefant Name gewicht alter Frisst scheißt fliegt. Assoziation haben?

Instanz ist objeket einer klasse. bsp: elefant Name gewicht alter Frisst scheißt fliegt. Assoziation haben? A u f g abe 1 : a ) Was ist eine Klasse? Was ist ein Objekt? Geben Sie ein Beispiel fur eine Klasse mit mindestens je 3 Attributen und je 3 Operationen. Finden Sie zu dieser Klasse mindestens 3 Instanzen.

Mehr

Programmieren 2 C++ Überblick

Programmieren 2 C++ Überblick Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 5. Behälter und Iteratoren 6. Templates

Mehr

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Musterlösung Name: Matrikelnummer: Note: Prüfungstag:

Mehr

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Name: Matrikelnummer: Note: Prüfungstag: 21.09.2012 Prüfungsdauer:

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

Mehr

Kurzeinführung in UML

Kurzeinführung in UML Kurzeinführung in UML Die Unified Modeling Language (UML) ist eine Sprache zur Beschreibung von Softwaresystemen. Der Grundgedanke bei UML bestand darin, eine einheitliche Notation für viele Einsatzgebiete

Mehr

Rückblick: Entity-Relationship-Modell

Rückblick: Entity-Relationship-Modell Rückblick: Entity-Relationship-Modell Entity-Relationship-Modell für konzeptuellen Entwurf Entitytypen (entity types) (z.b. Studenten) Beziehungstypen (relationships) (z.b. hören) Attribute beschreiben

Mehr

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen 06 31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung

Mehr

Software Engineering Klassendiagramme weiterführende Konzepte

Software Engineering Klassendiagramme weiterführende Konzepte Software Engineering Klassendiagramme weiterführende Konzepte Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassenattribut: static Implementierung in Java public

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Prof. Dr. Christian Böhm in Zusammenarbeit mit Michael Eckert und Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfows WS 07/08 2 Ziele Verstehen der Begriffe Assoziation und

Mehr

Unified Modelling Language

Unified Modelling Language Unified Modelling Language SEP 72 Software-Entwicklung Software-Entwicklung ist Prozess von Anforderung über Modellierungen zu fertigen Programmen Anforderungen oft informell gegeben fertige Programme

Mehr

Blöcke. Block Definitionsdiagramm. Dr. Beatrice Amrhein

Blöcke. Block Definitionsdiagramm. Dr. Beatrice Amrhein Blöcke Strukturelemente Block Definitionsdiagramm Dr. Beatrice Amrhein Definition: Block (Systembaustein) Eine Block beschreibt den Aufbau, die Eigenschaften und das Verhalten einer Komponente (eines Systems)

Mehr

Software Entwicklung 2. UML in der Analyse

Software Entwicklung 2. UML in der Analyse Software Entwicklung 2 UML in der Analyse Inhalt Objektorientierte vs. klassische Softwareentwicklung Imperative Programmierung Objektorientierte Programmierung Grundprinzipien der objektorientierten Denkweise

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr

Teil II: OOP und JAVA (Vorlesung 9)

Teil II: OOP und JAVA (Vorlesung 9) Teil II: OOP und JAVA (Vorlesung 9) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 14.06.06 1 Teil

Mehr

Objektorientierte Modellierung

Objektorientierte Modellierung Objektorientierte Modellierung KLASSENDIAGRAMM Klasse = Typebene zum Beschreiben mehrerer Objekte der selben Struktur Objekt = konkrete Ausprägung einer Klasse Instanz = Objekt Klassendiagramm = beschreibt

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Blöcke Strukturelemente. Dr. Beatrice Amrhein

Blöcke Strukturelemente. Dr. Beatrice Amrhein Blöcke Strukturelemente Block Definitionsdiagramm Dr. Beatrice Amrhein Definition Ein Block Definitionsdiagramm (oder Blockdiagramm) o zeigt die statische Struktur des Systems, o beschreibt, welche Systembausteine

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Modellierungstipps für die Anwendungsfallmodellierung

Modellierungstipps für die Anwendungsfallmodellierung Modellierungstipps für die Anwendungsfallmodellierung Identifiziere nur relativ grobe Abläufe als Anwendungsfälle! Anwendungsfälle werden nicht in weitere Anwendungsfälle zerlegt, höchstens unter Verwendung

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Objektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation

Objektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation Objektorientierte Konzepte und Notation in UML Objekt Klasse Attribut Operation Objekt Wodurch zeichnet sich ein Objekt aus? - Zustand - Verhalten - Identität Objektdiagramm - Notationsregeln :Kuh Elsa:Kuh

Mehr

Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme. 11. November 2014

Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme. 11. November 2014 Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme 11. November 2014 Überblick Was ist die Unified Modeling Language (UML)? die Standardmodellierungssprache für Softwaresysteme

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

Überblick. Überblick zum weiteren Inhalt

Überblick. Überblick zum weiteren Inhalt Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

Mehr

Vererbung. Oberklassen und Unterklassen

Vererbung. Oberklassen und Unterklassen Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)

Mehr

Einführung. Einführung

Einführung. Einführung Einführung Einführung Im Oktober 1994 haben sich Grady Booch und Jim Rumbaugh bei der Rational Software Corporation zusammengeschlossen, um ihre erfolgreichen Methoden zu einem einheitlichen Industriestandard

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur

Mehr

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die Programmierung mit Java. Hörsaalübung Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung

Mehr

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete 2 Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, und Pakete Martin Wirsing Ziele Den Begriff der einfachen und mehrfachen Vererbung verstehen Verstehen, wann Vererbung eingesetzt wird deklarationen

Mehr

Übersicht. Vorstellung des OO-Paradigmas

Übersicht. Vorstellung des OO-Paradigmas Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java

Mehr

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

Beziehungen zwischen Objekten

Beziehungen zwischen Objekten 1/19 Beziehungen zwischen Objekten Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/19 Outline 1 Vererbung (Wiederholung)

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

Mehr

Konzepte und Notation der Analyse gelten auch in Entwurf und Implementierung Erweiterung der Konzepte und Notation für den Entwurf

Konzepte und Notation der Analyse gelten auch in Entwurf und Implementierung Erweiterung der Konzepte und Notation für den Entwurf 1 Vorteil der Objektorientierung Konzepte und Notation der Analyse gelten auch in Entwurf und Implementierung Erweiterung der Konzepte und Notation für den Entwurf Ziel der Analyse OOA-Modell als fachliche

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

Vorlesung "Software-Engineering"

Vorlesung Software-Engineering Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse

Mehr

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM Objektorientierte Programmierung 5. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Objektorientierter Entwurf nach Folie 1 Folie 2 Objektorientierter Entwurf

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)

Mehr

I SWT - Definitionsphase - Objektorientierte Sicht 2

I SWT - Definitionsphase - Objektorientierte Sicht 2 Software-Technik 2 Einführung und Überblick LE V Unternehmensmodellierung 2 Die Definitionsphase Objektorientierte Sicht 2 [leicht gekürzt] Prof. Dr. Helmut Balzert Lehrstuhl für Software-Technik Ruhr-Universität

Mehr

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Objektorientierung Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.

Mehr

Objektorientierte Analyse (OOA) OOA-Pattern

Objektorientierte Analyse (OOA) OOA-Pattern OOA-Muster (Architektur Pattern) Ein Pattern (Entwurfsmuster) ist ein Problem mit seiner Lösung in einem Kontext. Der Kontext enthält in der Regel Zielkonflikte, die der Designer lösen muss, z.b. Performance

Mehr

Media Engineering. Objektorientierte Modellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.de

Media Engineering. Objektorientierte Modellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.de Media Engineering Objektorientierte Modellierung R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.de Der Software Development-Lifecycle Requirements Analysis Evolution Design Testing Implementation

Mehr

VU Objektorientierte Modellierung Übung 1

VU Objektorientierte Modellierung Übung 1 VU Objektorientierte Modellierung Übung Übungsgruppen: 3..2008-7..2008 Aufgabe : Strukturmodellierung mittels Klassendiagramm Theoriefragen Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Programmiertechnik Objektorientierung

Programmiertechnik Objektorientierung Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Objektorientierung Was ist Objektorientierung Es einige Grundprinzipien, die (fast) allen Definitionen des Begriffs Objektorientierung

Mehr

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish UML Klassendiagramm Igor Karlinskiy, Mikhail Gavrish Agenda Wichtigste Eigenschaften Syntaktische Elemente mit entsprechendem C++ Code Analysemodell Designmodell Quellen 2 Klassendiagramm gibt die Möglichkeit,

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 10 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Begriffe 1 (Wiederholung)

Begriffe 1 (Wiederholung) Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.

Mehr

VU Objektorientierte Modellierung Übung 2

VU Objektorientierte Modellierung Übung 2 VU Objektorientierte Modellierung Übung 2 Übungsgruppen: 2.4.2008-25.4.2008 Aufgabe : Objektdiagramm Gegeben ist folgendes Objektdiagramm: z = :A w = 3 :B x = 8 :C z = 2 :A w = 4 :B y = 9 :E w = 5 :B x

Mehr

4. Übung zu Software Engineering

4. Übung zu Software Engineering 4. Übung zu Software Engineering WS 2007/2008 Aufgabe 8 Erstellen Sie für den aus Aufgabe 1 bekannten Function-Point-Kalkulator ein Pflichtenheft. Bitte begrenzen Sie dessen Umfang auf maximal 2 DIN A4

Mehr

Klassendiagramm. (class diagram)

Klassendiagramm. (class diagram) : Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

So#waretechnologie für Fortgeschri4ene Teil Eide. Stunde IV: UML. Köln 26. Januar 2017

So#waretechnologie für Fortgeschri4ene Teil Eide. Stunde IV: UML. Köln 26. Januar 2017 So#waretechnologie für Fortgeschri4ene Teil Eide Stunde IV: UML Köln 26. Januar 2017 Model of vs. model for TheoreKcal model model for comparison calibra9on verifica9on Empirical model model of deduc9on

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

Java für Bauingenieure

Java für Bauingenieure 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

Mehr

Java Einführung Objektorientierte Grundkonzepte

Java Einführung Objektorientierte Grundkonzepte Java Einführung Objektorientierte Grundkonzepte Inhalt Verständnis der grundlegenden Konzepte der Objektorientierung: Objekte Nachrichten Kapselung Klassen und Instanzen Vererbung Polymorphismus Darstellung

Mehr

Themen. Unified Modelling Language (UML) Assoziation. Aggregation. Komposition

Themen. Unified Modelling Language (UML) Assoziation. Aggregation. Komposition Themen Unified Modelling Language (UML) Assoziation Aggregation Komposition Unified Modeling Language (UML) Geschichte der Methodik Quelle: www.pearson-studium.de Unified Modeling Language (UML) Stichwort:

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr