5. Vorlesung: Grundkonzepte Objekt-Orientierung

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Blue J.
ER-Modell: Objekte und Klassen
der Universität Oldenburg
Objektorientierung Auffassung der Software als eine Sammlung
Objektorientierte Programmierung
Zur Rolle der Sprache bei der Modellierung von Datenbanken
Fragen 2 Werden die Funktionen des Betriebssystemkernes wie normale Funktionen aufgerufen? Einf. In die WI, DV-Infrastruktur WS 03/04.
Programmorganisation
Arbeitstitel: DV-Infrastruktur
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Kapitel 4 Datenstrukturen
Objektorientierte Programmierung Definition von Klassen
Das Entity-Relationship-Modell
Objektorientierter Entwurf
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
CPU, Programmausführung
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Objektorientierte Konzepte und Notation in UML
Sebastian Grahn Sebastian Kühn
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Datenmodellierung - Aufbau einer Datenbank -
DVG Ausnahmen. DVG Was sind Programmfehler? 4 Programm erzielt gar kein Ergebnis. 4 Berechnetes Ergebnis stimmt nicht mit dem erwarteten.
DVG Klassen und Objekte
RelationentheorieObjektorientierte Datenbanken AIFB SS Die Objekt-Definitionssprache ODL (1/24) Alle Elemente des Objektmodells können beschrieben.
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
2. Vorlesung Ansätze der Systemanalyse: Strukturierte Analyse (SA)
7. Vorlesung Vererbung Einfach- und Mehrfachvererbung Polymorphismus
11. Vorlesung: Dynamische Konzepte am Fallbeispiel
4. Vorlesung: Use Case Diagramme Fallbeispiel
9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel
8. Vorlesung: Klassendiagramm für Fallbeispiel
3. Vorlesung: UML Use Case Diagramme
6. Vorlesung: Statische Konzepte
12. Vorlesung: Aktivitätsdiagramme
10. Vorlesung: Dynamische Konzepte
Objektorientierte Programmierung
Entwurfs- und Implementationsdiagramme
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
25. Januar 2007Klasse IT '041 Projekt Solar Server Schulprojekt der Klasse IT `04.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Objektorientierte Analyse
Java Programmierung.
Relationale Datenbanken
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Objekte und Literale ODMG-Objektmodell kennt zwei Arten von Datenelementen: Literale: Identität ist ausschließlich durch Wert gegeben. Nur maximal eine.
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
A Workshop About this chapter General description Units Time Schedule
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java-Kurs Übung Besprechung der Hausaufgabe
Sichtbarkeit einschränken
Gerhard Röhner September 2012
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Objektorientierte Programmierung Was ist das eigentlich ?
November 18 Informatik Kurse
Implementieren von Klassen
Juli 19 Informatik Kurse
 Präsentation transkript:

5. Vorlesung: Grundkonzepte Objekt-Orientierung Objektorientierte Prinzipien Klasse Objektverwaltung Operationen Stereotypes Hans-Jürgen Steffens Systemanalyse SS 04

Objektorientierung In der realen Welt begegnen wir zahlreichen Objekten Menschen, Tieren, Autos, ... Verträge, Gruppen, Dreiecke, ... Objekte haben Eigenschaften (Attribute) Z. B. Name, Alter, Farbe Objekte haben ein Verhalten Z. B. können Menschen ihr Alter nennen, ihre Adresse ändern usw. Objekte können in Beziehung miteinander stehen Z. B. Freundschaft, Heirat, eine Person ist Kunde einer Firma, .. Objekte können sich aus anderen Objekten zusammen setzen Gleichartige Objekte können zusammen gefasst werden zu Klassen Z. B. umfasst die Klasse Person einzelne Objekte wie „Edmund Stoiber“, „Gerhard Schröder“, „Angela Merkel“, „Joschka Fischer“ Hans-Jürgen Steffens Systemanalyse SS 04

Objektorientierte Modellierung Reale Welt Objektorientiertes Modell Sandra Müller Abbildung Name = Sandra Müller Wohnort = Zweibrücken Beruf = Informatikerin besitzt : Fahrzeug Abbildung Marke = Peugeot Autonr = ZW-AB 97 Baujahr = 2001 Hans-Jürgen Steffens Systemanalyse SS 04

Objekt Ein Objekt im Sinne der objektorientierten Software-Entwicklung besitzt eine Struktur (Attribute) hat zu einem Zeitpunkt einen definierten Zustand (repräsentiert durch Attribut-Werte) hat ein bestimmtes Verhalten (beschrieben durch eine Menge von Operationen) Änderungen oder Abfrage des Zustands nur über Operationen möglich Hat eine eindeutige Identität, die es von allen anderen Objekten unterscheidet Kann ein oder mehrere andere Objekte kennen (mit diesen in Beziehung stehen) Hans-Jürgen Steffens Systemanalyse SS 04

Beispiel: Mitarbeiter-Objekt einstellen () UML-Darstellung: Personalnr = 1234 Name = Müller Gehalt = 3000 erhöhe Gehalt () drucke Ausweis () Hans-Jürgen Steffens Systemanalyse SS 04

UML-Notation von Objekten Objektname immer unterstrichen! Wenn der Name keine Rolle spielt, wird nur die Klasse angegeben (Doppelpunkt davor!) :Klasse Angabe von Attributen: Attribut : Typ = Wert (i.d.R. ist der Typ aber bei der Klasse definiert) Attribut = Wert Attribut Operationen werden nicht beim Objekt angegeben (sondern bei seiner Klasse) Hans-Jürgen Steffens Systemanalyse SS 04

Prinzipien Kapselung: Zustand und Verhalten eines Objekts bilden eine Einheit, das Objekt kapselt Zustand (Daten) und Verhalten (Operationen) Geheimnisprinzip: Attribute sind von außen nicht sichtbar Es kann nur über Operationen darauf zugegriffen werden Objektidentität: Auch wenn zwei Objekte identische Attributwerte besitzen (Gleichheit der Objekte), sind sie aufgrund ihrer Identität verschieden. Hans-Jürgen Steffens Systemanalyse SS 04

Klasse Objekte mit gleichartiger Struktur und gleichartigem Verhalten werden zu Klassen zusammengefasst Die Klasse definiert für ihre Objekte die Attribute, Operationen und Beziehungen (Assoziationen und Vererbungsstrukturen) Jedes Objekt gehört zu genau einer Klasse Verhalten einer Klasse: Wird beschrieben durch die Botschaften, auf die seine Objekte reagieren können Eine Botschaft aktiviert eine Operation gleichen Namens Hans-Jürgen Steffens Systemanalyse SS 04

Beispiel Müller : Mitarbeiter Meyer : Mitarbeiter Personalnr = 1234 Name = Müller Name = Meyer Gehalt = 3000 Gehalt = 2800 Mitarbeiter Personalnr Name Gehalt einstellen() erhöheGehalt() druckeAusweis() Hans-Jürgen Steffens Systemanalyse SS 04

Darstellung von Klassen Attribut 1 Attribut2 Klasse ... Operation 1() Operation 2() ... Hans-Jürgen Steffens Systemanalyse SS 04

Objektverwaltung Jedes Objekt kennt seine Klasse Attribute und ihre Typen Operationen In der Systemanalyse geht man vereinfachend davon aus, dass eine Klasse ihre Objekte ebenfalls kennt Objektverwaltung kann dann bei der Klasse dokumentiert werden, z. B.: Erzeugen und Löschen von Objekten Anfragen und Manipulationen auf allen Objekten einer Klasse Im Entwurf und der Implementierung muss die Objektverwaltung explizit realisiert oder von der verwendeten Umgebung bereit gestellt werden Hans-Jürgen Steffens Systemanalyse SS 04

Klasse und Klassen-Extension Ist eine Abstraktion, die Gemeinsamkeiten von Objekten und Regeln zu ihrer Erzeugung beschreibt Klassen-Extension: Menge aller Objekte dieser Klasse (Ansammlung von Objekten) Wird z. B. für die Objektverwaltung benötigt. Beschreibung: Personen haben einen Namen und ein Alter Brad Pitt Nicole Kidmann Max Meier Michael Schumacher Hans-Jürgen Steffens Systemanalyse SS 04

Attribute Beschreiben die Daten, die von Objekten angenommen werden können Jedes Attribut ist von einem bestimmten Typ Alle Objekte einer Klasse besitzen dieselben Attribute, jedoch unterschiedliche Attributwerte Hans-Jürgen Steffens Systemanalyse SS 04

Attribute: Beispiel Student : Student Matrikelnr Matrikelnr = 868768 Name Name = (Hans, Meyer) Geburtsdatum Geburtsdatum = 4.7.1983 Immatrikulation Immatrikulation = 1.10.2001 Vordiplom Vordiplom Noten Noten = ((2.3, Mathematik), (1.3, Informatik)) Hans-Jürgen Steffens Systemanalyse SS 04

Attribut-Typen Angabe des Typs ist optional UML gibt keine bestimmten Typen vor Hängen von der jeweiligen Programmiersprache ab Häufig in der Analyse verwendete Typen: String Int Float Fixed (Vorkommastellen, Nachkommastellen) Boolean Date Time Aufzählungstypen: {Wert1, Wert2, Wert3} Listen: List of ... Student Matrikelnr:Int Name:String Geburtsdatum: Date Immatrikulation:Date Vordiplom:Date Noten:List of Note Hans-Jürgen Steffens Systemanalyse SS 04

Spezielle Attribute Klassenattribute Es existiert nur ein Attributwert für alle Objekte einer Klasse Existieren auch, wenn noch kein Objekt für die Klasse besteht Klassenattribute werden unterstrichen Z. B. MaximaleAnzahlObjekte Abgeleitete Attribute Attribute, die jederzeit aus anderen Attributen berechnet werden können Werden mit Präfix / gekennzeichnet Z. B.: /Alter : Int {Akt. Datum – Geburtsdat., abge- rundet auf ganze Jahre} /AnzahlObjekte Hans-Jürgen Steffens Systemanalyse SS 04

Operationen Ausführbare Tätigkeiten Alle Objekte einer Klasse verwenden dieselben Operationen Jede Operation kann auf alle Attribute eines Objekts dieser Klasse direkt zugreifen Menge aller Operationen: Verhalten oder Schnittstelle der Klasse Hans-Jürgen Steffens Systemanalyse SS 04

Beispiel, Notation Student Matrikelnr Name Geburtsdatum Klasse Immatrikulation Attribut Vordiplom Klassenattribut Noten Operation() immatrikulieren() Klassenoperation() exmatrikulieren() AbstrakteOperation() druckeStudienbescheinigung() notiereNoten() berechneDurchschnitt() druckeVordiplomsliste() anmeldePraktikum() druckePraktbescheinigung() Hans-Jürgen Steffens Systemanalyse SS 04

Objekt- und Klassen-Operationen Objekt-Operationen: Werden auf einzelnes (bereits bestehendes) Objekt angewendet (Abstrakte Operation: Operation einer abstrakten Klasse, wird erst in einer Unterklasse implementiert - siehe nächste Vorlesung). Klassen-Operationen: Ist der Klasse zugeordnet und kann nicht auf ein einzelnes Objekt der Klasse angewendet werden Wird unterstrichen (z. B. drucke Vordiplomsliste( )) Konstruktor-Operationen: Erzeugt ein neues Objekt und führt entsprechende Initialisierungen und Datenerfassungen durch (z. B. Operation „immatrikulieren( )“) Hans-Jürgen Steffens Systemanalyse SS 04

Darstellung von Operationen in der Analyse Meist genügt der Name der Operation, gefolgt von einer leeren Argumentenliste ( ) Es werden vornehmlich die fachlich relevanten, von außen sichtbaren Operationen angegeben. Interne Operationen, d. h. solche, die nur von anderen Operationen aufgerufen werden, werden nur dann angegeben, wenn dies für das Verständnis erforderlich ist. Trivial-Operationen zum Auslesen und Ändern von Attributwerten („get“, „set“) müssen nicht angegeben werden Hans-Jürgen Steffens Systemanalyse SS 04

Arten von Operations Operationen mit lesendem Zugriff auf Attribute Operationen mit schreibendem Zugriff auf Attribute Operationen zur Durchführung von Berechnungen Operationen zum Erzeugen und Löschen von Objekten (Konstruktur, Dekonstruktor) Operationen zur Selektion von bestimmten Objekten einer Klasse Operationen zum Herstellen und Löschen von Verbindungen Operationen, die Operationen der Objekte anderer Klassen aktivieren Hans-Jürgen Steffens Systemanalyse SS 04

Namens-Konventionen Klassen: Substantiv im Singular, kann durch Adjektiv ergänzt werden Sollte innerhalb des Systems eindeutig sein Attribute: Name beschreibt Daten, meist Substantiv Innerhalb der Klasse eindeutig Operationen: Name drückt aus, was die Operation tut, enthält daher meist ein Verb Hans-Jürgen Steffens Systemanalyse SS 04

Zusammenfassung Ein Objekt besitzt Attribute, einen Zustand (repräsentiert durch Attributwerte) und ein Verhalten (beschrieben durch seine Operationen). Es hat eine eindeutige Identität. Eine Klasse beschreibt Objekte mit gleichartiger Struktur und Verhalten. Sie definiert deren Attribute, Operationen und Beziehungen. Die Verantwortung für die Objektverwaltung liegt in der Systemanalyse ebenfalls bei der Klasse. Attribute beschreiben die Daten eines Objekts. Spezielle Attribute sind Klassenattribute und abgeleitete Attribute. Operations beschreiben die Tätigkeiten, die ein Objekt ausführen kann. Hans-Jürgen Steffens Systemanalyse SS 04

Übungsfragen Was ist ein Objekt? Wie wird es in der UML dargestellt? Was versteht man unter Kapselung? Was besagt das Geheimnisprinzip? Erläutern Sie Gleichheit und Identität von Objekten Was ist eine Klasse? Erläutern Sie Verhalten und Schnittstelle einer Klasse. Was ist ein Objektattribut? Was ist ein Klassenattribut? Was ist ein abgeleitetes Attribut? Was ist eine Operation? Was ist eine Konstruktor-Operation? Welche Arten von Operationen kann man unterscheiden? Hans-Jürgen Steffens Systemanalyse SS 04