Kapitel 2 Objektorientierte Modellierungstechniken
|
|
|
- Gert Dressler
- vor 9 Jahren
- Abrufe
Transkript
1 Objektorientierte Software-Entwicklung Prof. Dr. Rolf Hennicker
2 Kapitel 2 Objektorientierte Modellierungstechniken
3 Ziele 3 Ziele Klassendiagramme in UML erstellen können. Objektdiagramme in UML erstellen können. Das Vererbungs- und Subtypprinzip verstehen, insbesondere abstrakte Klassen und Operationen Schnittstellen dynamische Bindung Klassendiagramme in Java implementieren können. (Flache und hierarchische) Zustandsdiagramme in UML erstellen können. Zustände, Ereignisse und Transitionen verstehen. Aktivitätsdiagramme in UML erstellen können. Das Prinzip der Metamodellierung verstehen.
4 Grundidee Kapitel 2 Objektorientierte Modellierungstechniken 4 Modellierung dient dazu, ein System zu verstehen, bevor es gebaut wird. Wesentliches Prinzip Abstraktion (auf wesentliche Aspekte konzentrieren, keine Details) Es werden i.a. verschiedene Sichten auf ein System modelliert: Statisches Modell: beschreibt strukturelle und datenbezogene Eigenschaften Dynamisches Modell: beschreibt das Verhalten der Objekte, deren Zustandsänderungen und Interaktionen. Notation UML (Unified Modeling Language), 1997 Version 1.0 (Booch, Rumbaugh, Jacobson), aktuelle Version 2.0
5 2.1 Statisches Modell Statisches Modell Klassen und Objekte Klassen Allgemeine Form: Beispiel: Kunde Klassenname attribut attribut: Typ attribut: Typ = Defaultwert operation operation(argumentenliste) operation(argumentenliste): Typ name: String adresse: String umsatz: Real Kunde(name: String) setname(name: String) getname(): String umsatzerhoehen(n: Real) Kurzform: Klassenname
6 2.1 Statisches Modell 6 Objekte Allgemeine Form: Beispiel: Objektname:Klassenname attribut = Wert attribut: Typ = Wert :Kunde name = "Fritz Meier" adresse = "München" umsatz = 4590,30 Kurzformen: objektname :Klassenname
7 2.1 Statisches Modell 7 Bemerkungen Als Typen verwenden wir Standarddatentypen (Boolean, Integer, Real, String) oder Klassennamen. In der Analysephase sollten als Typen von Attributen nur Standarddatentypen verwendet werden. Operationen mit Ergebnistyp liefern nach Ausführung einen Wert dieses Typs. Der Rückgabewert kann auch ein Objekt sein. Operationen ändern i.a. den Zustand eines Objekts. Operationen, die den Zustand nicht ändern, nennt man Queries.
8 2.1 Statisches Modell 8 Weiterführende Begriffe und Notationen Ein Attribut, das bei jedem existierenden Objekt der Klasse denselben Wert hat, heißt Klassenattribut und wird in UML unterstrichen. Beispiel: Kunde minumsatz: Real... Eine Operation, die vom Zustand konkreter Objekte unabhängig ist, heißt Klassenmethode und wird in UML unterstrichen. Beispiel: MathLib sin(x: Real): Real cos(x: Real): Real...
9 2.1 Statisches Modell Assoziationen und Objektbeziehungen Eine Objektbeziehung (Link) ist eine semantische (physikalische oder konzeptionelle) Verbindung zwischen Objekten. Eine Assoziation beschreibt eine Menge gleichartiger Beziehungen zwischen Objekten bestimmter Klassen. Assoziationen Allgemeine Form: Klasse attribute operationen Assoziationsname Klasse attribute operationen Beispiel: Kunde bucht Reise name ziel
10 2.1 Statisches Modell 10 Objektbeziehungen Beispiel: :Kunde bucht :Reise name = "Fritz Meier" ziel = "Rom" bucht :Kunde bucht :Reise name = "Maria Müller" ziel = "Kairo" Ein UML-Diagramm mit Klassen und Assoziationen (und Vererbung) heißt Klassendiagramm. Ein UML-Diagramm mit Objekten und Objektbeziehungen heißt Objektdiagramm (oder Instanzendiagramm). Es stellt einen augenblicklichen Systemzustand ( Snapshot ) dar.
11 2.1 Statisches Modell 11 Multiplizitäten Geben an, wieviele Objekte einer Klasse mit wievielen Objekten einer (meist anderen) Klasse gemäß einer Assoziation in Beziehung stehen können. Notation: Bedeutung: Jedes Objekt von A steht in Beziehung mit A 1 B genau einem Objekt von B A 0..1 B keinem oder einem Objekt von B A 1..* B einem oder mehreren Objekten von B A * B beliebig vielen Objekten von B (auch keinem) A 2..4, 7 B 2 bis 4 oder 7 Objekten von B Beispiel: Kunde * bucht * Reise
12 2.1 Statisches Modell 12 Assoziationsrollen Beschreiben, welche Funktionen die Objekte einer Klasse in einer Assoziation einnehmen. Beispiel: * mitarbeiter Person 1..* arbeitetbei 0..1 angestellte arbeitgeber Firma 0..1 chef Bemerkung: Assoziationsnamen und Rollennamen können weggelassen werden. Rollennamen sind dann implizit durch die kleingeschriebenen Klassennamen (evtl. im Plural) gegeben.
13 2.1 Statisches Modell 13 Mehrstellige Assoziationen Verbinden drei oder mehr Klassen. Darstellung: A k l B m C Die Multiplizität einer Rolle in einer n-stelligen Assoziation spezifiziert, wieviele Objekte mit dieser Rolle mit fest gegebenen (fixierten) n-1 Objekten der anderen Klassen in Beziehung stehen können. Beispiel: SW Entwickler * verwendet 0..1 Programmiersprache * Projekt
14 2.1 Statisches Modell 14 Zugriff auf die Merkmale eines Objekts Wird durch die. -Notation ausgedrückt. Beispiel: 1..* arbeitetbei 0..1 Person angestellte arbeitgeber alter: Integer Firma radfahren() alter = 30 p:person angestellte arbeitetbei arbeitgeber Kaufhaus X p.alter = 30; p.arbeitgeber = Kaufhaus X; p.radfahren(); //Aufruf der Operation "radfahren" für das Objekt p
15 2.1 Statisches Modell 15 Aggregation Spezielle Form der Assoziation, die eine Gesamtheit-Teil -Beziehung ausdrückt. z.b. ICE-Lok besitzt 6 Motoren (physikalisch), Stundenplan umfasst mehrere Vorlesungen (konzeptionell) Darstellung: A Aggregationsklasse A B Teileklassen B1 B2... Bn
16 2.1 Statisches Modell 16 Komposition Spezielle Form der Assoziation: das Teil ist existenzabhängig vom Ganzen. Darstellung (Beispiel): Window Header Body Scrollbar
17 2.1 Statisches Modell 17 Qualifizierte Assoziation Eine qualifizierte Assoziation unterteilt die Menge der Objekte auf einer Seite der Assoziation in Partitionen. Qualifizierer haben (wie Attribute) einen Typ, der auch eine Klasse sein kann. Beispiele: (1) Bank kontonr: Integer 0..1 konten Konto (2) Bank konto: Konto 1 Kunde (3) Zug klasse: Bahnklasse * Passagier
18 2.1 Statisches Modell 18 Gerichtete Assoziation Falls eine Assoziation nur in einer Richtung durchlaufen wird ( unidirektional ), wird das entsprechende Assoziationsende mit einer Pfeilspitze markiert. Beispiel: Person 1..* arbeitetbei 0..1 angestellte Firma
19 2.1 Statisches Modell Abhängigkeiten (Dependencies) Eine Abhängigkeit ist eine gerichtete Beziehung zwischen Modellelementen, die besagt, dass Änderungen im Zielelement möglicherweise Änderungen im davon abhängigen Element nach sich ziehen. Beispiel: A... B C x = new C(); do something; op1(b: B) op2() C
20 2.1 Statisches Modell Vererbung Relation zwischen einer allgemeineren Klasse (Ober- bzw. Superklasse) und einer spezielleren Klasse (Unter- bzw. Subklasse). Jedes Objekt der Subklasse ist auch ein Objekt der Oberklasse. Beispiel: Stoppuhr, Standuhr, Armbanduhr, Digitaluhr sind Uhren Darstellung: A Oberklasse A B Unterklassen B1 B2... Bn A ist eine Generalisierung von B. B ist eine Spezialisierung von A. Beachte: Die Vererbungsbeziehung ist transitiv.
21 2.1 Statisches Modell 21 Beispiel: Hafen 0..1 * flotte Boot geschwindigkeit flotte m0: Motorboot geschwindigkeit = 50 leistung = 20 Kieler Hafen s0: Segelboot Motorboot Segelboot flotte geschwindigkeit = 50 leistung segelfläche segelfläche = 10 Jede Unterklasse besitzt (erbt) alle Attribute, Assoziationen und Operationen der Oberklasse und kann eigene hinzufügen. Substitutionsprinzip Immer wenn ein Objekt einer Oberklasse A erwartet wird, kann ein Objekt einer Unterklasse von A eingesetzt werden.
22 2.1 Statisches Modell 22 Abstrakte Klasse Klasse, von der keine Instanzen erzeugt werden können. Operation ohne Implementierung. Abstrakte Operation Beachte: Eine Klasse mit mindestens einer abstrakten Operation ist abstrakt. Beispiel: Boot {abstract geschwindigkeit druckeinfo() {abstract Motorboot Segelboot print geschwindigkeit; print leistung; leistung druckeinfo() segelfläche druckeinfo() print geschwindigkeit; print segelfläche;
23 2.1 Statisches Modell 23 Überschreiben Eine in einer Oberklasse implementierte Operation wird in einer Unterklasse neu implementiert (redefiniert). Beispiel: Boot {abstract geschwindigkeit druckeinfo() print geschwindigkeit; Motorboot Segelboot super.druckeinfo(); print leistung; leistung druckeinfo() segelfläche druckeinfo() super.druckeinfo(); print segelfläche; Bemerkung: Durch Überschreiben soll die Semantik einer Operation nicht verändert werden.
24 2.1 Statisches Modell 24 Template Operation Operation, deren Implementierung eine oder mehrere abstrakte Operationen aufruft. Beispiel: Boot {abstract geschwindigkeit druckeinfo() druckedetails() {abstract print geschwindigkeit; druckedetails(); Motorboot Segelboot print leistung; leistung druckedetails() segelfläche druckedetails() print segelfläche;
25 2.1 Statisches Modell 25 Schnittstellen Sind abstrakte Klassen, deren sämtliche Operationen abstrakt sind und die keine Attribute und keine bidirektionalen oder wegführenden Assoziationen besitzen. Darstellung: <<interface>> I operation_1() operation_2()...
26 2.1 Statisches Modell 26 Realisierung und Benutzung von Schnittstellen Schnittstellen bieten Dienste an, die von verschiedenen Klassen realisiert (implementiert) werden können und die von anderen Klassen genutzt werden können. Beispiel: <<interface>> I operation_1() operation_2()... <<use>> op(x: I) A... x.operation_1();... <<realize>> K... operation_1() operation_2()...
27 2.1 Statisches Modell 27 Bemerkungen Überall, wo ein Bezeichner mit einem Interface-Typ verwendet wird, kann ein Objekt einer realisierenden Klasse eingesetzt werden. Implementierungen von Schnittstellen können ausgetauscht werden ohne Änderungen am Nutzer (Client) vornehmen zu müssen. Schnittstellen sind ein wichtiges Strukturierungsmittel für flexible Software-Architekturen. Häufig gibt es statt der Benutzungs-Abhängigkeit eine gerichtete Assoziation vom Client zum Interface.
28 2.1 Statisches Modell 28 Beispiel: MyApplication MyWindow Simulation s = new Simulation(); MyWindow w = new MyWindow(s); w.start(); main(args: String[]) MyWindow(is: ISimulation) start() sim = is; sim.compute(); 1 sim <<interface>> ISimulation compute() Simulation compute() perform simulation;
29 2.1 Statisches Modell 29 (Subtyp-)Polymorphismus Eine Operation einer Oberklasse (bzw. einer Schnittstelle) kann für alle Objekte von Unterklassen (bzw. realisierenden Klassen) aufgerufen werden. Beispiel: Hafen druckealleinfos() * flotte Boot {abstract geschwindigkeit druckeinfo() {abstract for all b in flotte do b.druckeinfo(); Motorboot Segelboot print geschwindigkeit; print leistung; leistung druckeinfo() segelfläche druckeinfo() print geschwindigkeit; print segelfläche; Vorteil: Einfache Erweiterbarkeit durch Hinzunahme neuer Subklassen.
30 2.1 Statisches Modell 30 Beispiel: Boot b; Motorboot m = new Motorboot(); Segelboot s = new Segelboot(); int x;... "x einlesen"... if (x > 0) b = m; else b = s; (*) b.druckeinfo(); Dynamisches Binden Zur Programmierzeit kann nicht festgestellt werden, welche Implementierung von druckeinfo() an der Stelle (*) gültig ist. Zur Laufzeit wird festgestellt, welchen Typ das mit b bezeichnete Objekt hat. Der in der entsprechenden Klasse implementierte Code wird dann ausgeführt.
31 2.1 Statisches Modell 31 Mehrfachvererbung Eine Subklasse hat mehr als eine (direkte) Oberklasse. Beispiel: Boot Motorboot Segelboot Motorsegelboot Vorteil: Zusammenfügen von Informationen aus mehreren Quellen.
32 2.1 Statisches Modell 32 Problem: Mögliche Konflikte... B op()... C op() D Welche Implementierung von op gilt für D-Objekte? Konfliktauflösung: D implementiert op neu durch Überschreiben oder op ist in B oder in C abstrakt.
33 2.1 Statisches Modell 33 Bemerkungen In Java ist Mehrfachvererbung nur bei Verwendung von Schnittstellen möglich. B <<interface>> C D Mehrfachvererbung von Klassen muss beim Entwurf aufgelöst werden, wenn die Zielsprache keine Mehrfachverebung unterstützt.
34 2.1 Statisches Modell 34 Vorteile des Vererbungsprinzips Konzeptionelle Vereinfachung durch Zusammenfassen gemeinsamer Merkmale verwandter Klassen in einer Oberklasse (Generalisierung) Wiederverwendung bereits vorhandener Klassen durch Subklassenbildung (Spezialisierung) Einfache Erweiterbarkeit von Vererbungshierarchien durch Hinzunahme von Subklassen Einfache Austauschbarkeit von Realisierungen von Schnittstellen.
35 2.1 Statisches Modell Zugriffsrechte (Sichtbarkeiten) Häufig sollen nur bestimmte Merkmale der Objekte einer Klasse von außen zugreifbar sein ( Kapselungsprinzip ). Zur Zugriffskontrolle verwendet man Sichtbarkeitsmarkierungen für Attribute, Rollennamen und Operationen: +name d.h. öffentlich zugreifbar ( public ) -name d.h. nur innerhalb der Klasse verwendbar ( private ) name d.h. nur innerhalb der Klasse und in allen Subklassen verwendbar ( protected ) Regel: Attribute und Rollennamen sollten nicht öffentlich zugreifbar sein! K a: Typ #b: Typ +geta(): Typ +seta(x: Typ) +getb(): Typ +getmyl(): L myl L
36 2.1 Statisches Modell 36 Zusammenfassung von Abschnitt 2.1 Klassendiagramme werden aus Klassen (einschl. Schnittstellen), Assoziationen, Abhängigkeiten und Vererbungsbeziehungen gebildet. Objektdiagramme werden aus Objekten und Objektbeziehungen gebildet. Mit Hilfe des Vererbungskonzepts kann spezialisiert und generalisiert werden. Es gilt das Substitutionsprinzip. Durch dynamische Bindung wird zur Laufzeit festgestellt, welchen Typ ein Objekt hat und der dementsprechende Code ausgeführt. Schnittstellen bieten ein wichtiges Strukturierungsmittel für flexible Software-Architekturen. Zugriffsrechte können mit Hilfe von Sichtbarkeitsmarkierungen spezifiziert werden.
37 2.2 Implementierung von Klassendiagrammen in Java Implementierung von Klassendiagrammen in Java Die statischen Informationen eines Klassendiagramms können direkt nach Java übersetzt werden. Das entstehende Codegerüst enthält noch keine Methodenimplementierungen Klassen und Schnittstellen deklarieren UML Java K class K {... K {abstract abstract class K {... << interface >> I interface I {...
38 2.2 Implementierung von Klassendiagrammen in Java 38 UML Java A class B extends A {... B << interface >> I class K implements I {... K
39 2.2 Implementierung von Klassendiagrammen in Java Attribute deklarieren UML attribut:typ Java JavaTyp attribut; wobei die verwendeten Standarddatentypen folgendermaßen in Java-Typen übersetzt werden: UML Boolean Integer Real String Java boolean int float oder double String
40 2.2 Implementierung von Klassendiagrammen in Java Methodenköpfe deklarieren UML Java op(x: Typ) void op(javatyp x) {...; op(x: Typ): ResTyp JavaResTyp op(javatyp x) {...; op() {abstract abstract void op(); K(x: Typ) K(JavaTyp x) {...; //Konstruktor
41 2.2 Implementierung von Klassendiagrammen in Java Zugriffsrechte bestimmen UML Java - private protected //in Subklassen und im selben Paket sichtbar + public
42 2.2 Implementierung von Klassendiagrammen in Java Assoziationen darstellen UML Java A 0..1 myb B class A { private B myb; //Referenzattribut A +addb(b: B)... * mybs B //Set = Interface für Mengen //HashSet = Implementierung v. Set import java.util.*; class A { private Set<B> mybs = new HashSet<B>();... public void addb(b b) { mybs.add(b);...
43 2.2 Implementierung von Klassendiagrammen in Java 43 UML Java... A +addb(key: T, b: B) +selectb(key: T): B... key: T //Map = Interface f. Schlüssel/Element Paare import java.util.*; class A { private Map<T,B> mybs = new HashMap<T,B>();... public void addb(t key, B b) { mybs.put(key, b); 0..1 B mybs public B selectb(t key) { return mybs.get(key);... A mybs B class A { private B[] mybs = new B[100];...
44 2.2 Implementierung von Klassendiagrammen in Java 44 Bidirektionale Assoziationen implementieren A 0..1 mya 1 myb B class A { private B myb; class B { private A mya; public A(B b) { public A getmya() { myb = b; return mya; myb.setmya(this); void setmya(a a) { public B getmyb() { mya = a; return myb; public void relate(b b) { myb = b; myb.setmya(this);
45 2.2 Implementierung von Klassendiagrammen in Java 45 Beispiel (Klassendiagramm) BankSimulation Bank + main(string[] args) + addaccount(a: Account) + selectaccount(no: Integer): Account Person name: String salary: Real + Person(n: String, s: Real) + getname(): String + getsalary(): Real 1 # owner # number: Integer # bal: Real + getnumber(): Integer + getbal(): Real + getowner(): Person + deposit(d: Real) * accounts Account {abstract + withdraw(d: Real): Boolean {abstract SavingsAccount CheckingAccount interestrate: Real chargerate: Real + SavingsAccount(no: Integer, ir: Real, o: Person) + CheckingAccount(no: Integer, cr: Real, o: Person) + withdraw(d: Real): Boolean + withdraw(d: Real): Boolean + addinterest() + paycharge()
46 2.2 Implementierung von Klassendiagrammen in Java 46 Beispiel (Codegerüst) class BankSimulation { public static void main(string[] args) { //Rumpf einfügen import java.util.*; class Bank { private Set accounts = new HashSet(); public void addaccount(account a) { //Rumpf einfügen public Account selectaccount(int no) { //Rumpf einfügen
47 2.2 Implementierung von Klassendiagrammen in Java 47 class Person { private String name; private double salary; public Person(String n, double s) { //Rumpf einfügen public String getname() { //Rumpf einfügen public double getsalary() { //Rumpf einfügen
48 2.2 Implementierung von Klassendiagrammen in Java 48 abstract class Account { protected int number; protected double bal; protected Person owner; public int getnumber() { //Rumpf einfügen public double getbal() { //Rumpf einfügen public Person getowner() { //Rumpf einfügen public void deposit(double d) { //Rumpf einfügen public abstract boolean withdraw(double d);
49 2.2 Implementierung von Klassendiagrammen in Java 49 class SavingsAccount extends Account { private double interestrate; public SavingsAccount(int no, double ir, Person o) { //Rumpf einfügen public boolean withdraw(double d) { //Rumpf einfügen public void addinterest() { //Rumpf einfügen
50 2.2 Implementierung von Klassendiagrammen in Java 50 class CheckingAccount extends Account { private double chargerate; public CheckingAccount(int no, double cr, Person o) { //Rumpf einfügen public boolean withdraw(double d) { //Rumpf einfügen public void paycharge() { //Rumpf einfügen : November 2, 2007
Kapitel 2. Objektorientierte Modellierungtechniken
Seite 1 Kapitel 2 Objektorientierte Modellierungtechniken Prof. Dr. Rolf Hennicker 26.10.2010 Ziele Seite 2 Klassendiagramme in UML erstellen können. Objektdiagramme in UML erstellen können. Das Vererbungs-
Objektorientierte Software-Entwicklung
Objektorientierte Software-Entwicklung Priv.- Doz Dr. Rolf Hennicker 04.10.2002 Kapitel 2 Objektorientierte Modellierungstechniken Kapitel 2 Objektorientierte Modellierungstechniken 2 Ziele Klassendiagramme
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
Vererbung. Martin Wirsing. Ziele. Vererbung
2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp
Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1
Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object
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
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
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
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:
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
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)
Objektorientierte Programmierung III
Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen
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
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
IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1
IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft
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
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
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
14. Java Objektorientierung. Klassen, Vererbung, Kapselung
427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen
Objektorientierte Modellierung
Objektorientierte Modellierung KLASSENDIAGRAMM Klasse = Typebene zum Beschreiben mehrerer Objekte der selben Struktur Objekt = konkrete Ausprägung einer Klasse Instanz = Objekt Klassendiagramm = beschreibt
7. Objektorientierung. Informatik II für Verkehrsingenieure
7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete
Abschnitt 15: Unified Modeling Language (UML)
Abschnitt 15: Unified Modeling Language (UML) 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML
15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595
Überblick 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML und Java 15.8 Zusammenfassung 15 Unified
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
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
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
Algorithmen und Datenstrukturen 07
(7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik
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
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,
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
Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
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.
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
Sommersemester Implementierung I: Struktur
Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.
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
FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
Objektorientierte Programmierung. Kapitel 14: Interfaces
14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/
Klassen und ihre Beziehungen I: Assoziation und Aggregation
Klassen und ihre Beziehungen I: Ziele Verstehen der Begriffe Assoziation, Aggregation und Komposition 2 Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, irk Pattinson 3 4 Assoziation
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
3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
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
Einführung in die Programmierung für NF. Vererbung
Einführung in die Programmierung für NF Vererbung Ziele Vererbungsprinzip der objektorien=erten Programmierung verstehen und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden
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
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
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
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
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,
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
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
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
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
Java Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
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...
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
Java Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
Kapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
Programmieren 1 09 Vererbung und Polymorphie
Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke [email protected] 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen
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
Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public
3. Objektorientierte Analyse
3. Objektorientierte Analyse 3. Systemanalyse Witzfrage (nach Booch 9): Welches ist der älteste Beruf: Arzt, Bauingenieur oder Systemanalytiker? Anforderungsanalyse Analyse Anforderungs- Ermittlung Anforderungs-
Einstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
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
Vorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
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
Programmieren I. Kapitel 8. Vererbung
Programmieren I Kapitel 8. Vererbung Kapitel 8: Vererbung Ziel: Wesentliches objektorientiertes Konzept kennenlernen Subtypen Idee Probleme und Varianten Vererbung in Java dynamische Bindung abstrakte
Kapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
Programmierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
Kapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme
UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme Musterklausur zur Einführung in die Informatik II 1. Teilklausur, 23.06.2006 Bitte lesen
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,
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-)
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,
Polymorphie und UML Klassendiagramme
Polymorphie und UML Klassendiagramme Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Vererbung hat einen sehr interessanten und effektiven Effekt: die Polymorphie. Darum geht es in dieser Veranstaltung. 2
Das UML Benutzerhandbuch
Grady Booch James Rumbaugh Ivar Jacobson Das UML Benutzerhandbuch Aktuell zur Version 2.0 Inhalt Vorwort 15 Ziele 15 Publikum 16 Wie Sie dieses Buch verwenden sollten 16 Aufbau und besondere Merkmale 17
Spezifikation, Klassen, Schnittstellen in Java. 2.4 Datenabstraktion, Objektorientierung, Java
Spezifikation, Klassen, Schnittstellen in Java 2.4 Datenabstraktion, Objektorientierung, Java 2.4.1 Grundlegende Begriffe der Objektorientierung (s. auch Alp2) Klassen sind wie Module eine Einheit der
9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1
9. Vererbung und Polymorphie 1 Wiederholung Vererbung bedeutet, dass eine Klasse Attribute und Methoden an eine andere Klasse weitergeben kann. Im Klassendiagramm stellt man dies durch einen durchgezogenen
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
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
Modellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 16. Dezember 2015 Modellierung Konzept Ein Modell ist die formale Darstellung
Muster in der Software Technik. Grundlegende Konzepte der Software Entwicklung und Objekt Orientierung
Muster in der Software Technik Grundlegende Konzepte der Software Entwicklung und Objekt Orientierung Grundlagen für die weitere Vorlesung: Aktivitäten und Prozesse der Software Entwicklung Objektorientierte
Arten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
Javakurs für Anfänger
Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
