2 Basiskonzepte und Notationen der objektorientierten Analyse Lernziele Erklären können, was ein Objekt ist

Größe: px
Ab Seite anzeigen:

Download "2 Basiskonzepte und Notationen der objektorientierten Analyse Lernziele Erklären können, was ein Objekt ist"

Transkript

1 Grundlagen der Softwaretechnik 2 Basiskonzepte und Notationen der objektorientierten Analyse Lernziele Erklären können, was ein Objekt ist Erklären können, was eine Klasse ist Den Unterschied zwischen Objekt und Klasse verstehen Das Geheimnisprinzip verstehen Erklären können, was ein Attribut ist Klassenattribut und Objektattribut unterscheiden können Erklären können, was eine Operation ist Verstehen, was eine Botschaft ist Objektoperation, Konstruktoroperation und Klassenoperation unterscheiden können UML-Notation für Objekt, Klasse, Attribut und Operation anwenden können 80

2 2.1 Grundbegriffe 2 Basiskonzepte und Notationen der objektorientierten Analyse 2.1 Grundbegriffe 2.2 Objekt 2.3 Klasse 2.4 Attribut 2.5 Operation 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) 2.7 Zusammenfassung 81

3 2.1 Grundbegriffe Der Begriff des Objekts Definition Ein Objekt ist allgemein ein Gegenstand des Interesses bei Beobachtungen, Untersuchungen oder Messungen Ein Objekt (object)... besitzt einen bestimmten Zustand reagiert mit definiertem Verhalten auf seine Umgebung Attribute Operationen besitzt eine Identität, die es von allen anderen Objekten unterscheidet kann Beziehungen zu anderen Objekten haben Beispiel: Der Student Paul wurde am geboren und finanziert sein Studium über ein Stipendium. Als besondere Fähigkeit fällt auf, dass er lernen und feiern kann. Abbildung Paul Geburtsdatum: Einkommen: Stipendium lernen() feiern() Attribute Operationen 82

4 2.1 Grundbegriffe Der Begriff der Klasse Definition Eine Klasse beschreibt die Struktur und das Verhalten gleichartiger Objekte. Abstraktion (Verallgemeinerung) Eine Klasse... definiert für eine Menge von Objekten deren Attribute, Operationen und Beziehungen (relationships). besitzt einen Mechanismus, um neue Objekte zu erzeugen Jedes erzeugte Objekt gehört zu genau einer Klasse. Beziehungen = Assoziationen und Vererbungsstrukturen 83

5 2.1 Grundbegriffe Beispiele für eine Klasse Modellierung eines Objekts Abbildung Paul Geburtsdatum: Einkommen: Stipendium Abbildung Tank1 Füllstand: 62 cm Soll-Niveau: 75 cm lernen() feiern() füllen() leeren() Modellierung einer Klasse Student Tank Abstraktion Geburtsdatum Einkommen lernen() feiern() Abstraktion Füllstand Soll-Niveau füllen() leeren() 84

6 2.1 Grundbegriffe Der Begriff Attribut Definition Attribute beschreiben die Daten, die von den Objekten einer Klasse angenommen werden können. Jedes Attribut ist von einem bestimmten Typ. Die Klasse legt fest, welche Attribute ihre Objekte besitzen Die Objekte enthalten die Attributwerte Alle Objekte einer Klasse besitzen dieselben Attribute, jedoch unterschiedliche Attributwerte. 85

7 2.1 Grundbegriffe Der Begriff Operation Definition Eine Operation ist eine Tätigkeit, die einem Objekt zugeordnet ist und von diesem abgearbeitet werden kann. Die Klasse legt Operationen für ihre Objekte fest Alle Objekte einer Klasse verwenden dieselben Operationen Menge aller Operationen einer Klasse Verhalten der Klasse Schnittstelle der Klasse Operationen = Methoden nicht Prozeduren oder Funktionen! Der Aufruf einer Operation X bei einem Objekt wird auch als Senden einer Botschaft X an das Objekt bezeichnet Senden der Botschaft X Aufruf der Operation X 86

8 2.1 Grundbegriffe Beispiel für Operation Professor schickt Botschaft lernen Student aktiviert Methode lernen lernen Peter:Professor Geburtsdatum: Einkommen: Gehalt lehren() forschen() lernen Paul:Student Geburtsdatum: Einkommen: Stipendium lernen() feiern() 87

9 2.1 Grundbegriffe Objekt vs. Klasse Objekt = eindeutige, konkrete Einheit, die in Zeit und Raum existiert Klasse = Abstraktion des Wesentlichen von Objekten an sich Die Klasse ist der >>Bauplan<< für ihre Objekte Ein Objekt ist ein Exemplar einer Klasse Alle Objekte einer Klasse verhalten sich konsistent Jedes Objekt >>weiß<<, zu welcher Klasse es gehört Die Klasse selbst existiert im Allgemeinen nicht als eigenständiges Objekt Praxistipp Die Begriffe instance, class instance und Exemplar sind Synonyme für den Begriff Objekt. 88

10 2.1 Grundbegriffe Objekt vs. Klasse: Hühnerfarm Klasse Name : Größe : Farbe : Huhn Eier legen() gackern() Berta Objekte Kunigunde Elsa Elfriede Berta, Elfriede, Kunigunde und Elsa wissen, dass sie Hühner sind 89

11 2.1 Grundbegriffe Objekt vs. Klasse: Hausbau A B C 2 Video: Objektorientierte Sichtweise und Modellierung 90

12 2 Basiskonzepte und Notationen der objektorientierten Analyse Frage zu 2.1 Welche Aussagen über Klassen und Objekte sind richtig? f Eine Klasse ist ein einzelnes Exemplar einer Menge von Objekten. Eine Klasse ist eine Abstraktion, die Gemeinsamkeiten von Objekten und Regeln zu ihrer Erzeugung beschreibt. Eine Klasse definiert gleichartige Objekte. f Alle Objekte einer Klasse haben die gleichen Attributwerte. Alle von einer Klasse erzeugten Objekte bilden die Menge aller Objekte dieser Klasse. Botschaften bewirken den Aufruf von Operationen 91

13 2.2 Objekt 2 Basiskonzepte und Notationen der objektorientierten Analyse 2.1 Grundbegriffe 2.2 Objekt 2.3 Klasse 2.4 Attribut 2.5 Operation 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) 2.7 Zusammenfassung 92

14 2.2 Objekt Objekt-Eigenschaften Der Zustand (state) eines Objektes: Attribute bzw. deren aktuelle Werte Attribute sind unveränderliche Merkmale des Objekts Attributwerte können Änderungen unterliegen jeweilige Verbindungen zu anderen Objekten alle Daten, die ein Objekt beinhaltet Das Verhalten (behavior) eines Objekts: Menge der Operationen (Methoden) Änderung oder Abfrage des Zustandes nur mittels Operationen möglich (Geheimnisprinzip) 93

15 2.2 Objekt Geheimnisprinzip Objektzustand (Daten) und -verhalten (Operationen) bilden eine Einheit Kapselung Daten dürfen nur mittels der Operation gelesen und geändert werden. Daten werden vor der Außenwelt verborgen Beispiel: Ein Sensor besitzt eine Nummer, einen Schwellwert und einen Ist-Wert. Der Sensor kann kalibriert werden, der Ist-Wert abgefragt werden und der Schwellwert des Sensors gesetzt werden. Sensorobjekt: Sensorobjekt (nachher): setze Schwellwert () kalibrieren () Nr.: 002 Schwellwert.: 20 Ist-Wert: 18 Nr.: 002 Schwellwert.: 22 Ist-Wert: 18 setze Schwellwert () kalibrieren () gib Ist-Wert () gib Ist-Wert () 94

16 2.2 Objekt Identität und Gleichheit von Objekten (1) Objektidentitäts-Prinzip Jedes Objekt ist per Definition unabhängig von seinen konkreten Attributwerten von allen anderen Objekten eindeutig zu unterscheiden Objektidentität (identity) Unterscheidet ein Objekt von allen anderen Objekten Kann sich nicht ändern Keine zwei Objekte besitzen dieselbe Identität (auch wenn sie zufällig die gleichen Attributwerte haben) Objektidentität hat keinen inhaltlichen Bezug zu den anderen Eigenschaften des Objekts Gleichheit: Verschiedene Objekte besitzen gleiche Attributwerte Objektorientierte Programmiersprachen beinhalten eigene Mechanismen zur Sicherstellung der Identität der Objekte (meist über Speicheradresse) 95

17 2.2 Objekt Identität und Gleichheit von Objekten (2) Beispiel Michael und Susi haben jeweils ein Kind mit dem Namen Daniel (Gleichheit) Michael und Janine sind Eltern desselben Kindes (Identität) Es handelt sich um dasselbe Objekt Person 1 Person 2 Person 5 Person 6 Name = Michael Name = Susi Name = Michael Name = Janine Person 3 Person 4 Person 7 Name = Daniel Name = Daniel Name = Daniel Gleichheit Identität 96

18 2.2 Objekt UML-Notation eines Objekts Darstellung eines Objekts als Rechteck mit 2 Feldern Name des Objekts wird immer unterstrichen Operationen, werden in der UML nicht angegeben Bezeichnung Attribute Aufbau von Objektbezeichung und Attributangaben (optional) Irgendein Objekt der Klasse Objekt soll über Namen angesprochen werden Nur möglich, wenn Klasse eindeutig aus dem Kontext ersichtlich :Klasse Objekt:Klasse Objekt Attribut1 = Wert1 Attribut2 sinnvoll, da Typ bereits bei Klasse definiert nur sinnvoll, wenn Attributwert uninteressant Beispiel Das Objekt mit dem Namen einkreis ist ein Exemplar der Klasse Kreis. einkreis:kreis radius = 25 mittelpunkt = (10,10) 97

19 2.2 Objekt UML-Notation eines Objektdiagramms Ein Objektdiagramm beschreibt Objekte, Attributwerte und Verbindungen zwischen Objekten zu einem bestimmten Zeitpunkt (Momentaufnahme bzw. Schnappschuss des Systems). :Pumpe Tank1:Tank Füllstand = Wert1 Soll-Niveau =Wert2 Tank2:Tank Objektname Muss nur innerhalb eines Diagramms eindeutig sein In verschiedenen Diagrammen unterschiedliche Objekte mit gleichem Namen möglich 98

20 2 Basiskonzepte und Notationen der objektorientierten Analyse Frage zu 2.2 Was ist der Unterschied zwischen einer Objektidentität und einem Objektnamen? Antwort Unterscheidet ein Objekt von allen anderen Objekten Identifiziert ein Objekt innerhalb eines Diagramms Kann in anderen Diagrammen bei anderen Objekten gleich sein Identifiziert das Objekt systemweit Kann sich ändern Objektname Objektidentität 99

21 2 Basiskonzepte und Notationen der objektorientierten Analyse Frage zu 2.2 Sind die beiden Objekte Kanne 1 und Kanne 2 gleich oder identisch? Kanne 1 Inhalt = Kaffee Kanne 2 Inhalt = Kaffee Kanne 3 Inhalt = Tee Antwort Die beiden Objekte sind gleich, weil ihr Attribut ( Inhalt ) den gleichen Wert hat ( Kaffee ). f Die beiden Objekte sind identisch Es handelt sich um zwei einzelne Objekte, Objektidentität ist deshalb gar nicht möglich 100

22 2.3 Klasse 2 Basiskonzepte und Notationen der objektorientierten Analyse 2.1 Grundbegriffe 2.2 Objekt 2.3 Klasse 2.4 Attribut 2.5 Operation 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) 2.7 Zusammenfassung 101

23 2.3 Klasse UML- Notation einer Klasse Vergleich zu Vorlesung Info I Attribut... Klasse Namensfeld Attributliste Klasse Attribut Operation()... Operationsliste Operation() Klasse Anmerkung: Zur besseren Unterscheidung von Klassen und Objekten ist das obere Feld bei Objekten in der Vorlesung immer blau hinterlegt. 102

24 2.3 Klasse Beispiel Klasse Tank Typ: String Füllstand: float Soll-Niveau: float füllen() leeren() Soll vorgeben(soll: int) Programmcode in Java (vereinfacht): class Tank { private String Typ; private float Fuellstand; private float Soll-Niveau; public void fuellen() {... }... } Tank1:Tank Typ = Wasser Füllstand = 3.2 Soll-Niveau = 20.0 Objekt Tank2:Tank Typ = Bier Füllstand = 16.0 Soll-Niveau = Tank Tank1 = new Tank(); Tank Tank2 = new Tank();

25 2.3 Klasse UML-Notation der Beziehung zwischen Klasse und Objekt (Live-Mitschrieb) Beziehung zwischen Klasse und Objekt = Exemplarbeziehung: 104

26 2.3 Klasse Klassendiagramme und UML-Notation beinhaltet Klassen und weitere Symbole (z.b. Assoziationen, Vererbung) Statisches Modell des Systems Bei großen Systemen mehrere Klassendiagramme Klassenname Beispiele: Konto, externer Mitarbeiter Substantiv im Singular, ggf. durch Adjektiv ergänzt Eindeutigkeit des Klassennamens Erweiterungen der Klassennotation in der UML Stereotyp (stereotype) Siehe Kap 2.6 (Selbststudium) Übergreifender Bezeichner, klassifiziert Elemente des Modells Beispiel: <<interface>> <<GUI>> Merkmal (property) Beschreibt Eigenschaften (z.b. Einschränkungen) für Modellelement Beispiel: Füllstand {0 <= Füllstand <= Max-Niveau} Zusätzliche Informationen über Klassen, Attribute, usw. im UML-Modell 105

27 2.3 Klasse Kurzbeschreibung der Klasse Beschreibung des Zwecks einer Klasse innerhalb des Softwaresystems durch natürlich sprachliche Kurzbeschreibung möglich. Beschreibt den Zweck der Klasse mit 25 Wörtern oder weniger. Beispiel: Klasse Student Studierender, der an einer Hochschule immatrikuliert ist Festlegung der Verantwortlichkeiten von Klassen Jede Klasse soll für genau einen Aspekt des Gesamtsystems verantwortlich sein. Die in diesem Verantwortlichkeitsbereich liegenden Eigenschaften sollen in einer einzelnen Klasse zusammengefasst sein und nicht auf verschiedene Klassen aufgeteilt werden Eine Klasse soll keine Eigenschaften enthalten, die nicht zu diesem Verantwortlichkeitsbereich gehören Verantwortlichkeiten frühzeitig festlegen 106

28 2.3 Klasse Beispiel: Festlegung der Verantwortlichkeiten Kunde Anschrift Bankverbindung Verwaltet alle personenbezogenen Daten eines Kunden Verwaltet Anschrift Telekommunikationsverbindungen und Bankverbindungen Verwaltet und repräsentiert eine postalische Anschrift Prüft soweit möglich und sinnvoll die Anschrift gegen vorhandene PLZ- und Straßenverzeichnisse Verwaltet und repräsentiert ein Konto bei einem Geldinstitut Prüft IBAN auf Korrektheit durch integrierte Checksumme Vorgehen zur Ermittlung von Verantwortlichkeiten einer Klasse siehe Kapitel 5 CRC-Karten Video: Anwendungsbeispiel Sortierband 107

29 2 Basiskonzepte und Notationen der objektorientierten Analyse Frage zu 2.3 Kann das Verhalten eines einzelnen Objektes einer Klasse geändert werden? Antwort Verhalten kann nicht exklusiv geändert werden Ändern der Methoden einer Klasse ändert das Verhalten aller Objekte einer Klasse 108

30 2.4 Attribut 2 Basiskonzepte und Notationen der objektorientierten Analyse 2.1 Grundbegriffe 2.2 Objekt 2.3 Klasse 2.4 Attribut 2.5 Operation 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) 2.7 Zusammenfassung 109

31 2.4 Attribut Bezug zu Klassen und Objekten In der Klasse werden die Attribute definiert In den Objekten werden die Attribute mit Werten versehen Beispiel für Attribute in UML-Notation StudentIn Matrikelnr Name Geburtsdatum Immatrikulation Bachelor Noten :StudentIn Matrikelnr = Name = (Hans, Meyer) Geburtsdatum = Immatrikulation = Noten = ((2.3, Analysis), (1.3, Informatik)) Das Attribut Bachelor besitzt -noch- keinen Wert 110

32 2.4 Attribut Definition von Attributen mit der UML Attribut: Typ = Anfangswert {Restriktion, Eigenschaftswert,...} Füllstand: int = 0 {0 <= Füllstand <= Max-Niveau} Attributname Typ Anfangswert (optional) Liste von Merkmalen (optional): Restriktionen (Beschränkungen) Zusätzliche Eigenschaftswerte Beispiele für Attributnotationen name : String = 'Unbekannt' gebdatum : Date radius : Integer = 25 {readonly} Attributname Muss im Kontext der Klasse eindeutig sein Beschreibt die gespeicherten Daten Im Allgemeinen ein Substantiv Außerhalb des Klassenkontextes kann der Attributname nicht immer eindeutig sein Beschreibung mit Klasse.Attribut 111

33 2.4 Attribut Attributtyp Jedes Attribut wird durch einen Typ beschrieben. Verwendung folgender Typen zur Erstellung des OOA-Modells Standardtypen, z.b. String, Int Aufzählungstypen Listen; list of Typ, wobei Typ ein beliebiger Standardtyp sein kann (z.b. Arrays, Vektoren) (elementare) Klassen Typ = [Standardtyp Aufzählungstyp list of Typ Klasse] Wie genau soll der Attributtyp festgelegt werden? Analyse Möglichst präzise Beschreibung des Attributs aus fachlicher Sicht Entwurf und Implementierung Ggf. Neudefinition des Typs in Abhängigkeit von der gewählten Programmiersprache 112

34 2.4 Attribut Standardtypen in UML String Zeichenkette (Länge) Int ganze Zahl UInt positive ganze Zahl Float Gleitkommanzahl 32 Bit Double Gleitkommazahl 64 Bit Fixed (Vorkommastellen, Nachkommastellen) Festkommazahl Boolean Date Time 113

35 2.4 Attribut Aufzählungstyp Für einen Aufzählungstyp sind anzugeben: Bereich Alle Werte, die das Attribut annehmen kann Selektionsart Anzahl der selektierbaren Elemente Erweiterbarkeit Der Benutzer kann neue Werte eingeben Fehlt eine Angabe, gelten die Voreinstellungen Notation { values: W1, W2,, select: min..max, noadd } Wertebereich Selektionsart mit min. und max. Anzahl Wertebereich nicht erweiterbar Beispiel Notenwert {values: 1.0, 1.3, 1.7, 2.0, 2.3, 2.7, 3.0, 3.3, 3.7, 4.0, 5.0,noAdd} 114

36 2.4 Attribut Elementare Klasse (support class) Typ eines Attributs kann selbst wieder durch eine Klasse beschrieben werden Verwendung einer Klasse als komplexer Datentyp In der Regel: Einmalige Definition und Wiederverwendung bei jedem Projekt Zur Verdeutlichung kann der Name einer elementaren Klasse mit dem Postfix "T" versehen werden NameT Vorname: String Nachname: String 115

37 2.4 Attribut Beispiel: Verwendung von elementaren Klassen StudentIn Matrikelnr: String(7) Name: NameT Geburtsdatum: Date Immatrikulation: Date Abschluss: Date Noten: list of NoteT Klasse NameT Vorname: String Nachname: String NoteT Fach: String Wert: Notenwert elementare Klasse Notenwert {values: 1.0, 1.3, 1.7, 2.0, 2.3, 2.7, 3.0, 3.3, 3.7, 4.0, 5.0,noAdd} Aufzählungstyp 116

38 2.4 Attribut Verwendung von Merkmalen bei Attributen Restriktion (constraint) Restriktion = Invariante = Zusicherung, die immer wahr sein muss Zusätzliche Eigenschaftswerte (tagged values) Zusätzliche modellrelevante Informationen über das Attribut Beispiel StudentIn Matrikelnr: String(7) {Schlüsselattribut} Name: NameT Geburtsdatum: Date Immatrikulation: Date Abschluss: Date {Abschluss > Immatrikulation > Geburtsdatum} Eigenschaftswert Restriktion Siehe Kap 2.6 (Selbststudium) 117

39 2.4 Attribut Klassenattribut Gehört nicht zu einem einzelnen Objekt, sondern ist Attribut einer Klasse Es existiert nur ein Attributwert für alle Objekte einer Klasse Änderung des Attributwertes gilt für alle Objekte dieser Klasse Klassenattribute existieren auch, wenn es zu einer Klasse (noch) keine Objekte gibt Verwendung: z.b. Zähler für Objektverwaltung Kennzeichnung durch Unterstreichen Beispiel: Klassenattribut Java-Code: static private double Mehrwertsteuersatz = 0,19; Abgeleitetes Attribut Wert wird automatisch aus anderen Attributwerten berechnet Darf nicht direkt geändert werden. Kennzeichnung mit dem Präfix /. Angabe eines Anfangswertes entfällt Berechnungsvorschrift kann in Form einer Restriktion angegeben werden 118

40 2.4 Attribut Beispiel: Klassenattribut und abgeleitetes Attribut (Live- Mitschrieb) StudentIn Matrikelnr: String Geburtsdatum : Date AnzahlStudentInnen: Int /Alter: Integer {Alter = today - Geburtsdatum} Klassenattribut Abgeleitetes Attribut Berechnungsvorschrift als Restriktion Tank Füllstand: Integer Max-Niveau: Integer /Restkapazität: Integer {Restkapazität = Max-Niveau - Füllstand} 119

41 2 Basiskonzepte und Notationen der objektorientierten Analyse Frage zu 2.4 Sie sollen eine Software zur grafischen Entwicklung von Schaltplänen erstellen. Modellieren Sie die Klasse Widerstand mit möglichen Attributen. Was ist ein Klassenattribut? Antwort Widerstand ID-Nummer: int Widerstandswert: float Leistung: float Toleranz: float Symbol: Bild Anzahl: int Klassenattribut = nur ein Attributwert für alle Objekte der Klasse. 120

42 2.5 Operation 2 Basiskonzepte und Notationen der objektorientierten Analyse 2.1 Grundbegriffe 2.2 Objekt 2.3 Klasse 2.4 Attribut 2.5 Operation 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) 2.7 Zusammenfassung 121

43 2.5 Operation Übersicht Alle Objekte einer Klasse verwenden dieselben Operationen Menge aller Operationen = Verhalten bzw. Schnittstelle der Klasse Jede Operation kann auf alle Attribute eines Objekts direkt zugreifen Beispiele Typ Füllstand Soll-Niveau Max-Niveau Tank füllen() leeren() Soll vorgeben(soll-füllstand: int) setze Max-Niveau(Max-Füllstand: int) Für jedes Objekt dieser Klassen existieren die angegebenen Operationen StudentIn Matrikelnr Name Geburtsdatum Immatrikulation Noten Anzahl immatrikulieren() exmatrikulieren() drucke Bescheinigung() notiere Noten() berechne Durchschnitt() drucke Studentenliste() melde Praktikum an() 122

44 2.5 Operation Definition von Operationen mit der UML Operation (Parameter1: Parametertyp,...): Rückgabetyp {Merkmal1,... } Soll vorgeben(soll-füllstand: int): void {Soll-Füllstand < Max-Niveau} Runde Klammern Unterschied zu Attributen Rückgabetyp Parametertyp Operationsname Parameter Liste von Merkmalen: Restriktionen Eigenschaftswerte z.b. Bedingung für Aufruf, Werte von Argumenten Pflichtangaben Optionale Angaben Signatur einer Operation = Name + Parameter + Rückgabewert Ausreichend für Aufruf der Operation 123

45 2.5 Operation UML-Notation für Operationen Klasse operation() klassenoperation() Beispiele getposition(x, y) getposition(x : Integer, y : Integer) vergroessern(umfaktor: Real): GeomFigur addrufnummer(rufnummer: String, Art: Rufart= Fax) <<constructor>> create() 124

46 2.5 Operation Operationsname soll ausdrücken, was die Operation leistet sollte daher ein Verb enthalten Beispiel: verschiebe(), erhöhe Gehalt() muss im Kontext der Klasse eindeutig sein Bezeichnung außerhalb der Klasse: Klasse.Operation() UML erlaubt Leerzeichen in Operationsnamen erhöht die Lesbarkeit in Programmiersprachen nicht möglich Alternativen Unterstrich Groß-/Kleinschreibung erhoehe_gehalt() erhoehegehalt() 125

47 2.5 Operation Beschreibung von Operationen Jede Operation kann aus Benutzersicht beschrieben werden: in der Regel durch umgangssprachliche Formulierung oder komplexere Operationen durch Diagramme des dynamischen Modells Beispiel: Operation: machetwas() Eingabe: Eingabedaten Ausgabe: Ausgabedaten Wirkung: Beschreibung der Wirkung aus Benutzersicht, wobei der Fokus auf dem Normalverhalten liegt. Sonderfälle werden separat beschrieben 126

48 2.5 Operation Klassenoperation ist Klasse zugeordnet und nicht nur einzelnem Objekt drucke Studentenliste() Alle Objekte der Klasse (Objektverwaltung) erhöhe Stundenlohn() Zugriff auf Klassenattribute StudentIn immatrikulieren() exmatrikulieren() drucke Studienbescheinigung() notiere Noten() berechne Durchschnitt() drucke Studentenliste() melde Praktikum an() Programmcode in Java (vereinfacht): class StudentIn { void notierenoten() {... } float berechnedurchschnitt() {... } static void druckestudentenliste() {... } } Verwendung von Klassenoperationen in der Systemanalyse für Aufgaben, die unabhängig von einem ausgewählten Objekt sind für Operationen, die sich auf alle oder mehrere Objekte der Klasse beziehen 127

49 2.5 Operation Verwaltungsoperationen... sind grundlegende Operationen, die fast jede Klasse benötigt. Aus Gründen der Lesbarkeit werden sie nicht in das Klassendiagramm eingetragen. Interne Verwaltungsoperationen new(), delete() Erzeugen / Löschen von Objekten setattribute(), getattribute() Schreiben / Lesen von Attributwerten link(), unlink(), getlink() Verbindungen zwischen Objekten Externe Verwaltungsoperationen erfassen() ändern() löschen() erstelleliste() 128

50 2 Basiskonzepte und Notationen der objektorientierten Analyse Frage zu 2.5 Welche Aussagen zu Botschaften und Operationen sind richtig? Antwort Eine Botschaft ist eine Nachricht, die eine Operation (Methode) gleichen Namens aufruft. f Objekte kommunizieren mit ihrer Klasse über Botschaften. f Für den Aufruf einer Operation ist der Name ausreichend Eine Operation heißt Klassenoperation, wenn Klassenattribute ohne Beteiligung eines einzigen Objekts manipuliert werden Eine Konstruktoroperation ist eine Klassenoperation. 129

51 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) 2 Basiskonzepte und Notationen der objektorientierten Analyse 2.1 Grundbegriffe 2.2 Objekt 2.3 Klasse 2.4 Attribut 2.5 Operation 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) 2.7 Zusammenfassung 130

52 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) Erweiterungen von Modellelementen in der UML Stereotyp (stereotype) Merkmal (property) Stereotypen und Merkmale werden verwendet, um zusätzliche Informationen über eine Klasse, Attribut oder Operation im UML-Modell darzustellen Stereotyp (stereotype) Klassifiziert Elemente (z.b. Klassen, Operationen) des Modells mit Namen Projekt-, unternehmens- oder methodenspezifische Erweiterung Verwendung z.b. zur Angabe möglicher Verwendungszwecke einer Klasse UML enthält vordefinierte Stereotypen Es können weitere Stereotypen definiert werden. Angabe in französischen Anführungszeichen mit Spitzen nach außen. Ein Stereotyp kann sowohl die gesamte Klasse als auch Gruppen von Attributen und Methoden beschreiben 131

53 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) Erweiterungen von Modellelementen in der UML Merkmal (property) Beschreibt Eigenschaften eines bestimmten Elements des Modells. Mehrere Merkmale können zu einer Liste zusammengefasst werden: {Schlüsselwort = Wert,...} Beispiel: <<Stammdaten>> Mitarbeiter {Autor=Maier Version=1.0} Stereotyp Merkmal Merkmale sind keine Attribute! Attribute beschreiben die Eigenschaften einer Klasse Merkmale beschreiben die Eigenschaften eines beliebigen UML Modellelements (z.b. Klasse oder auch Attribut) 132

54 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) Beispiel: Verwendung von Stereotypen und Merkmalen <<Konto>> Bankkonto {Verantwortlicher=Direktor, Kontenart=Privatkunde, Kondition=Vorzug} Kontoinhaber : string Kontostand : float <<Nutzung>> einzahlen(betrag) abheben(betrag) <<Verwaltung>> Kontoinhaber setzen(inhaber) Kontoinhaber abfragen <<Ausgabe>> drucken 133

55 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) Verwendung von Merkmalen bei Attributen Als Restriktion (constraint) Beziehung zwischen Attributwerten eines Objekts, die während der Ausführung des Systems unverändert erhalten bleiben muss. Einschränkung des Wertebereichs bzw. der Wertemenge des Attributs Restriktion = Invariante = Zusicherung, die immer wahr sein muss. Notation wenn möglich direkt nach einem Attribut Notation in natürlicher Sprache oder in einer formalen Sprachen Z.B. Object Constraint Language OCL Beispiele: Klasse StudentIn {Abschluss > Immatrikulation > Geburtsdatum} Klasse Artikel {Verkaufspreis >= 1.5 * Einkaufspreis} 134

56 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) Verwendung von Merkmalen bei Attributen Als Eigenschaftswerte (tagged values) Für die genauere Spezifikation der Attribute kann eine Liste von Merkmalen in der folgenden Form verwendet werden: Name: Typ = Anfangswert { mandatory, key, frozen, Einheit:..., Beschreibung:... } Dabei bedeutet mandatory: Muss-Attribut key: Schlüssel frozen: Attributwert nicht änderbar Weitere Eigenschaftswerte definierbar z.b. {readonly} 135

57 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) Beispiel: Verwendung von Merkmalen (Restriktionen und Eigenschaftswerten) bei Attributen Student Matrikelnr: String(7) {mandatory, key} Name: NameT {mandatory} Geburtsdatum: Date {mandatory} Immatrikulation: Date Abschluss: Date {Beschreibung: Datum der abschließenden Prüfung} Noten: list of NoteT {mandatory, Beschreibung: Datum des Studienbeginns} Restriktionen: {Geburtsdatum < Immatrikulation < Abschluss} 136

58 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) Verwendung von Stereotypen zum Gruppieren von Operationen Besitzt eine Klasse viele Operationen, dann können sie mit Hilfe von Stereotypen gruppiert werden Beschreibung des Verwendungszwecks Beispiel Aushilfe <<constructor>> einstellen() <<update>> ändere Stundenzahl() erhöhe Stundenlohn() <<query>> drucke Adressliste() drucke Stundenliste() Stereotyp <<query>> = keine Seiteneffekte auf den Zustand des Objekts oder anderer Objekte 137

59 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) Klassifikation von Operationen (1) Operationen lassen sich nach ihren Aufgaben einteilen: Operationen... mit lesendem Zugriff auf Attribute (accessor operation) Beispiel: drucke Studienbescheinigung () schreibendem Zugriff auf Attribute (update operation) Beispiel: notiere Note () zur Durchführung von Berechnungen Beispiel: berechne Durchschnitt () zum Erzeugen (constructor operation) und Löschen (destructor operation) von Objekten Beispiel: immatrikulieren (), exmatrikulieren () 138

60 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) Klassifikation von Operationen (2) Operationen... zum Selektieren von Objekten nach bestimmten Kriterien (query operation und select operation) Beispiel: drucke Studentenliste () (Selektion der StudentInnen, die sich immatrikuliert haben) zum Herstellen von Verbindungen zwischen Objekten (connect operation) Beispiel: anmelde Praktikum () (Verbindungsaufbau zwischen Objekten StudentIn s1 und Firma f1) s1:student f1:firma zum Aktivieren von Operationen anderer Klassen Beispiel: drucke Praktikumsnachweis () (Operation in s1 verwendet Operation von f1) 139

61 2 Basiskonzepte und Notationen der objektorientierten Analyse 2.1 Grundbegriffe 2.2 Objekt 2.3 Klasse 2.4 Attribut 2.5 Operation 2.6 Erweiterungsmechanismen der UML (zum Selbststudium) 2.7 Zusammenfassung 140

62 2 Basiskonzepte und Notationen der objektorientierten Analyse Zusammenfassung 2 (1) Die objektorientierte Softwareentwicklung basiert auf folgenden Konzepten: Ein Objekt besitzt einen Zustand, reagiert mit einem definierten Verhalten und hat eine Identität Objekte und Ihre Verbindungen werden im Objektdiagramm dargestellt Eine Klasse beschreibt eine Sammlung von Objekten mit gleicher Struktur, gleichem Verhalten und gleichen Beziehungen Sie wird im Klassendiagramm dargestellt Jedes Attribut ist von einem bestimmten Typ Unterscheidung zwischen (Objekt-)Attributen und Klassenattributen Operationen beschreiben das Verhalten bzw. die Schnittstelle einer Klasse Unterscheidung zwischen (Objekt-)Operationen und Klassenoperationen 141

63 2 Basiskonzepte und Notationen der objektorientierten Analyse Zusammenfassung 2 (2) UML-Notation von Klasse, Objekt, Attribut und Operation Klassenname Attributname Attributtyp Operationen Kreis radius:int {radius>0} mittelpunkt:point = (10,10) anzeigen() setposition(pos:point) setradius(neuerradius) Restriktion Initialwert Parameter Objektname Attributname einkreis:kreis radius = 25 mittelpunkt = (10,10) Klassenname Attributwerte 142

64 2 Basiskonzepte und Notationen der objektorientierten Analyse Zusammenfassung 2 (3) Der entsprechende Programmcode in Java (vereinfacht): class Kreis { private int radius; private Point mittelpunkt; } public void setradius(int neuerradius) { if (neuerradius > 0) // Restriktion { radius = neuerradius;... } } public void setposition(point pos) {... } public void anzeigen() {... } 143

65 2 Basiskonzepte und Notationen der objektorientierten Analyse Vorbereitungsfragen zu 2 Frage 1: Warum muss ein Objekt wissen, zu welcher Klasse es gehört? (WS 02/03) Antwort Damit die Klassenzugehörigkeit während der Laufzeit eines Programms herausgefunden werden kann. Die Operationen sind nur bei der Klasse gespeichert. Um eine Botschaft ausführen zu können, muss das Objekt auf die eigene Klasse und dort auf die gewünschte Operation zugreifen können. Damit auf Klassenattribute zugegriffen werden kann. Damit ein Objekt über seine Klasse während der Laufzeit auf ein anderes Objekt zugreifen kann. Keine der Antworten ist richtig. 144

66 2 Basiskonzepte und Notationen der objektorientierten Analyse Vorbereitungsfragen zu 2 Frage 2: Das Geheimnisprinzip bedeutet: (WS 03/04) Antwort Objekte kennen Ihre Klassen nicht. Direkter Zugriff auf die Attributwerte ist nicht möglich, außer innerhalb der eigenen Klasse. Eine Klasse hat nur Operationen, die auf ihre eigenen Attribute zugreifen. Auf die Attributwerte eines Objekts kann nur über Operationen zugegriffen werden. Die Attributwerte werden verschlüsselt abgespeichert. 145

67 2 Basiskonzepte und Notationen der objektorientierten Analyse Vorbereitungsfragen zu 2 Frage 3: Für Objektdiagramme gilt: (WS 03/04) Antwort Sie stellen die Erzeugung von Objekten dar. Sie können zu Kommunikationsdiagrammen erweitert werden. Sie stellen Verbindungen unter Objekten dar. Sie können zu Sequenzdiagrammen erweitert werden. Ein Objektdiagramm beschreibt immer nur eine Situation zu einem bestimmten Zeitpunkt. 146

68 2 Basiskonzepte und Notationen der objektorientierten Analyse Vorbereitungsfragen zu 2 Frage 4: Welche Aussagen über Klassenoperationen sind richtig? (WS 04/05) Antwort Klassenoperationen werden in UML-Notation durch ein $-Zeichen gekennzeichnet. Eine Operation heißt Klassenoperation, wenn Klassenattribute ohne Beteiligung eines einzelnen Objekts manipuliert werden. Wenn eine Operation auf alle Objekte einer Klasse wirkt, spricht man von einer Klassenoperation. Klassenattribute können nur über Klassenoperationen manipuliert werden. Klassenoperationen können Objektattribute manipulieren. 147

69 2 Basiskonzepte und Notationen der objektorientierten Analyse Vorbereitungsfragen zu 2 Frage 5: Welche der folgenden Aussagen über Objekte sind richtig? (WS 06/07) Antwort Alle Objekte einer Klasse besitzen dieselben Attribute und Attributwerte. Ein Objekt kann in der UML als Rechteck dargestellt werden mit Objektnamen, Operationen, Attributen und Attributwerten. Alle Objekte einer Klasse verwenden dieselben Operationen. Objekte werden durch Aufruf der Konstruktoroperation der Klasse erzeugt. Eine Klasse kennt von Natur aus die von ihr erzeugten Objekte. 148

70 2 Basiskonzepte und Notationen der objektorientierten Analyse Vorbereitungsfragen zu 2 Frage 6: Welche der folgenden Aussagen über Klassenattribute sind richtig? (WS 06/07) Antwort Ein Klassenattribut bewirkt, dass alle Objekte einer Klasse denselben Attributwert bei diesem Klassenattribut haben. Ein Klassenattribut wird mit dem Präfix / gekennzeichnet. Klassenattribute legen die Eigenschaft einzelner Objekte fest. Der Wert eines Klassenattributs kann nachträglich nicht geändert werden. Klassenattribute existieren auch, wenn es zu einer Klasse noch keine Objekte gibt. 149

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

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

Objektorientes Design & Programm

Objektorientes Design & Programm Objektorientes Design & Programm Ziele Motivation für OO-Design Softwarekomponenten mit Objektbeschreibungen Klassen und Objekte Konstruktoren zum Erzeugen von Objekten Motivation Vermischung von Variablendeklarationen

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

Ü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

IT kompakt. UML 2 kompakt. mit Checklisten. Bearbeitet von Heide Balzert

IT kompakt. UML 2 kompakt. mit Checklisten. Bearbeitet von Heide Balzert IT kompakt UML 2 kompakt mit Checklisten Bearbeitet von Heide Balzert 1. Auflage 2010. Taschenbuch. viii, 92 S. Paperback ISBN 978 3 8274 2506 5 Format (B x L): 12,7 x 19 cm Gewicht: 113 g Weitere Fachgebiete

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

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

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

Java-Programmierung mit NetBeans

Java-Programmierung mit NetBeans Java-Programmierung mit NetBeans Klassen, Objekte, Alternativen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Grundlegende Definitionen - Objekt Ein Objekt ist allgemein ein Gegenstand

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 04. UML Objekte und Klassen 1 Motivation

Mehr

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

10. Programmierungs-Phase: Objektorientierung Software Engineering

10. Programmierungs-Phase: Objektorientierung Software Engineering 10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

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

1.4 Attribute die objektorientierten Datenfelder

1.4 Attribute die objektorientierten Datenfelder 1.4 Attribute 21 1.4 Attribute die objektorientierten Datenfelder Die Attribute beschreiben die Daten, die von den Objekten einer Klasse angenommen werden können. Jedes Attribut ist von einem bestimmten

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

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

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

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

Grundbegriffe der Objektorientierung

Grundbegriffe der Objektorientierung Grundbegriffe der Objektorientierung Objekt Merkmale Zustand Verhalten Lebenszyklus Beziehungen zwischen Objekten Kategorisierung von Objekten Grundbegriffe der Objektorientierung Objekt Merkmale Zustand

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

NACHRICHTENTECHNISCHER SYSTEME

NACHRICHTENTECHNISCHER SYSTEME Einführung UML COMPUTERSIMULATION NACHRICHTENTECHNISCHER SYSTEME 11. Unified Modeling Language UML 220 Standardsprache d zur Visualisierung, i Spezifikation, Konstruktion und Dokumentation komplexer (Software-)

Mehr

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE Nutzung des AMCS (Auditorium Mobile Classroom Service) https://amcs.website Einloggen/Registrieren mit beliebigem Pseudonym Passwort Kurs Softwaretechnologie PIN:

Mehr

Einführung in die Objektorientierung

Einführung in die Objektorientierung Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de Objektorientiert daisy : Kunde 2. angebot Nein Prozedural Schleife über alle Projekte Noch was zu tun? Manager informieren... Ja Daten

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Tag 7 Repetitorium Informatik (Java)

Tag 7 Repetitorium Informatik (Java) Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

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

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

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

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

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

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

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

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Christian-Albrechts-Universität zu Kiel CAU 8-1 Objektorientiertes Programmieren Die Programme, die bisher in diesem Kurs verwendet wurden, sind alle klein und überschaubar

Mehr

2. Vererbung und Kapselung

2. Vererbung und Kapselung 2. Vererbung und Kapselung Die Objekte der Klasse BALL werden im Gegensatz zu den Objekten von KREIS noch nicht graphisch dargestellt. Um die BALL-Objekte auch graphisch darzustellen zu können, muss BALL

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

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Praktische Informatik 1

Praktische Informatik 1 Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode

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

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

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

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch Klassen (Java) vs. Records (Pascal) 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Pascal RECORDs in Pascal sind reine

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

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!

Mehr

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.

Mehr

5.2 Entity-Relationship-Modell

5.2 Entity-Relationship-Modell 5.2 Entity-Relationship-Modell Mod-5.8 Entity-Relationship-Modell, ER-Modell (P. Chen 1976): Kalkül zur Modellierung von Aufgabenbereichen mit ihren Objekten, Eigenschaften und Beziehungen. Weitergehende

Mehr

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte

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

Unified Modelling Language

Unified Modelling Language Proseminar Systemmodellierung mit SysML Martin Fobian 04.05.2010 Unified Modelling Language Klassendiagramm Objekt, Klasse, Operation 1 Überblick 1. Objekt 2. Klassen 3. Attribute 4. Operationen 2 1. Objekt

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

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Vorlesung Software Engineering I

Vorlesung Software Engineering I Vorlesung Software Engineering I 8 Unified Modeling Language: Klassendiagramme Prof. Dr. Dirk Müller Übersicht Einführung Software-Entwicklungsprozesse Anforderungsanalyse Prozessanalyse und -modellierung

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM Objektorientierte Programmierung 11. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Die 2. lgruppe von KobrA: : le der : e Folie 1 Zur Erinnerung: 1. lgruppe:

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

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

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode: Klassenvariablen Klassenmethoden Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit

Mehr

Arbeitsblätter zu Teil I des Praktikums

Arbeitsblätter zu Teil I des Praktikums Arbeitsblätter zu Teil I des Praktikums Allgemeine Hilfsmittel Bitte benutzen Sie bei Schwierigkeiten mit spezifischem Domänenwissen das Internet als Recherchemöglichkeit (beispielsweise Google oder Wikipedia).

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

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

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

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

SWE5 Übungen zu Software-Engineering

SWE5 Übungen zu Software-Engineering 1 Übungen zu Software-Engineering 1) Klassen und Objekte 2) Telefonanlage 3) Objekt- und Klassendiagramme 4) Assoziationen 5) Telefonanlage (Erweiterung) 6) Fahrzeuge 7) Familien 2 Aufgabe 1: Klassen und

Mehr

Datenbanksysteme: Entwurf

Datenbanksysteme: Entwurf Wichtigste Themen hier: Datenbanksysteme: Entwurf DB Entwurf ist in der Regel eingebettet in ein größeres Projekt: siehe Informationssysteme Die Daten dienen einem Zweck und sind dennoch universell nutzbar:

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

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

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

Mehr

3.2 Objekte und Klassen. Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen.

3.2 Objekte und Klassen. Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen. 3.2 Objekte und Klassen Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.2-1 Objektorientierte

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

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

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank... Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch

Mehr

Techniken der Projektentwicklungen

Techniken der Projektentwicklungen Dynamische Modellierung 8. Termin Rückblick auf statische Modellierung Dynamische Modellierung Basiskonzepte Beispiel Erweiterungen Eigenschaften Syntax Rückblick auf statische Modellierung Dynamische

Mehr

Klassen als Datenstrukturen

Klassen als Datenstrukturen Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung

Mehr

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

Mehr

OOI mit Java. Unsere Beispielklasse. Hund name: String laut: String groesse: int gewicht: int gibname(): String giblaut(): String

OOI mit Java. Unsere Beispielklasse. Hund name: String laut: String groesse: int gewicht: int gibname(): String giblaut(): String OOI mit Java Unsere Beispielklasse Hund name: String laut: String groesse: int gewicht: int gibname(): String giblaut(): String Deklaration eines Objekts So wie eine Variable deklariert wird: Typ Name

Mehr

Grundlagen der Informatik 0

Grundlagen der Informatik 0 Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg

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

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Prof. Dr. Uwe Schmidt. 31. Januar Aufgaben zur Klausur Softwaredesign im WS 2010/11 (WI h253, MI h405, BInf v310, BMInf v300, BWInf v310 )

Prof. Dr. Uwe Schmidt. 31. Januar Aufgaben zur Klausur Softwaredesign im WS 2010/11 (WI h253, MI h405, BInf v310, BMInf v300, BWInf v310 ) Prof. Dr. Uwe Schmidt 31. Januar 2011 Aufgaben zur Klausur Softwaredesign im WS 2010/11 (WI h253, MI h405, BInf v310, BMInf v300, BWInf v310 ) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen

Mehr

Analyse und Design mituml2.1

Analyse und Design mituml2.1 Analyse und Design mituml2.1 Objektorientierte Softwareentwicklung Von Bernd Oestereich 8., aktualisierte Auflage Oldenbourg Verlag München Wien nhaltsverzeichnis Objektorientierte Softwareentwicklung

Mehr

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl 26.07.21 Themenübersicht Objektorientierte Software-Entwicklung Objektorientierte Analyse und Design OOA OOD Objektorientierte

Mehr

Analyse und Entwurf objektorientierter Systeme

Analyse und Entwurf objektorientierter Systeme Analyse und Entwurf objektorientierter Systeme Teil 3 Modellbildung in der Analysephase 3.1 Statische und dynamische Notationselemente Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik

Mehr

Lösungen zu Übung 1 Grundlagen

Lösungen zu Übung 1 Grundlagen Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Lösungen zu Übung 1 Grundlagen Aufgabe 1.1 Unterschiede der Phasen Analyse und Entwurf Bevor mit

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

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

Mehr

Vorlesung Programmieren

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

Mehr

Softwareentwicklung Lösungen zu Programmierung von Klassen mit BlueJ

Softwareentwicklung Lösungen zu Programmierung von Klassen mit BlueJ Klasse, Objekt, Eigenschaften und Verhalten Aufgaben: 1. Erläutern Sie die im obigen Text fett gedruckten Worte. 2. Stellen Sie eine Klasse, die als Bauanleitung für Objekte vom Typ "frische Lebensmittel"

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

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: 03.03.2011 Prüfungsdauer:

Mehr

UML Eine kurze Einführung

UML Eine kurze Einführung UML Eine kurze Einführung Programmiermethodik Eva Zangerle Universität Innsbruck Modell und Diagramm Ein Modell stellt Abstraktion eines Realitätsausschnitts dar. Um Informationen verständlicher darzustellen

Mehr