Programmierkurs. 13. Vorlesung. Sven Mallach. 27. Januar Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 1/ 69
|
|
- Bertold Franke
- vor 7 Jahren
- Abrufe
Transkript
1 Programmierkurs 13. Vorlesung Sven Mallach Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 27. Januar / 69
2 UML Teile der Vorlesungsfolien dieses Kapitels enthalten Grafiken und Inhalte aus dem Buch: Heide Balzert - Lehrbuch der Objektmodellierung 2. Auflage, 2005, Elsevier Verlag. 2/ 69
3 UML Was ist UML? UML bedeutet Unified Modelling Language und ist ein Standard zur graphischen Darstellung von Programmbestandteilen wie Klassen, Methoden und Attributen und der Modellierung der Beziehungen zwischen ihnen. Die aktuelle Version des UML-Standards ist die Version 2.0. Wir behandeln heute insbesondere die Diagrammformen, mit denen sich o.g. Dinge anschaulich visualisieren lassen. 3/ 69
4 UML Warum UML? Im wesentlichen 2 Gründe: Einerseits dienen UML-Diagramme der Veranschaulichung und ermöglichen es, Programmbestandteile einfach und kompakt darzustellen und unter Entwicklern auszutauschen. Andererseits werden insbesondere größe Softwareprojekte vor Schreiben der ersten Zeile Quellcode erstmal sehr ausführlich geplant. Auch dies geschieht häufig mit Modellierungswerkzeugen wie UML. Die Kenntnis dieser Konzepte bildet für Sie eine Grundlage im Umgang mit typischer Programmierer-Literatur und professionellen Entwicklern. 4/ 69
5 UML - Notation für Klassen Eine Klasse wird in UML auf folgende dreiteilige Art und Weise dargestellt: Klassenname Attribute Methoden 5/ 69
6 UML - Notation für Klassen Für Attribute und Methoden kann zusätzlich ihr Zugriffsmodifizierer modelliert werden, indem vor den Bezeichner eines der folgenden Symbole (gefolgt von einem Leerzeichen) angegeben wird. Symbol Modifizierer + public # protected - private ~ package-private 6/ 69
7 UML - Notation für Klassen Es gibt noch weitere Feinheiten in der Darstellung: Klassenattribute und -Methoden (static) werden unterstrichen. Für Attribute kann eine Multiplizität angegeben werden, die definiert, wieviele Werte ein solches Attribut speichern können soll. Dies dient insbesondere der Modellierung von Arrays und Vektoren, bzw. Listen. Attributen kann außerdem ein Startwert zugewiesen werden. Bei abstrakten Klassen wird der Klassenname kursiv gestellt 7/ 69
8 UML - Notation für Klassen Beispiele für Multiplizitäten: Attribut Bedeutung note: float [0..10] 0 bis 10 Noten sollen gespeichert werden können note: float [1..10] Höchstens 10 können, aber mindestens 1 Note muss gespeichert werden note: float [0..*] Die obere Schranke kann nicht festgelegt werden note: float [1..1] Verstärkter Ausdruck, dass es genau eine Note sein muss Außerdem möglich Startwert: note: float = 1.0 Angabe von zusätzlichen Eigenschaften mittels geschweifter Klammern, etwa: note: float {readonly} 8/ 69
9 UML - Notation für Objekte Wie wir wissen können (nicht-abstrakte) Klassen instantiiert werden, es gilt daher auch Objekte darstellen zu können. Wenn man einen Schnappschuss der Zustände eines Programms zur Laufzeit darstellen möchte, kann man Objekte konkret benennen. Für eine beispielhafte Referenzbeschreibung eines Objekts ist dies in der Regel aber nicht notwendig. 9/ 69
10 UML - Notation für Objekte Ein Objekt wird in UML auf folgende Art und Weise dargestellt: Klassenname Attribute Der Name des Objekts kann optional vor dem Doppelpunkt in der Kopfzeile angegeben werden. Auf die erneute Darstellung der Methoden der Klasse wird hier aus offensichtlichen Gründen verzichtet. 10/ 69
11 UML Zwischen Klassen oder Objekten können Beziehungen bestehen. In UML nennen wir solche Beziehungen auch Assoziationen. Zwischen konkreten Objekten besteht in der Regel eine direkte 1-zu-1-Beziehung, d.h. ein Objekt besitzt ein anderes als Attribut. Zwischen Klassen kann es auch eine 1-zu-viele-Beziehung geben, die in UML erneut mit Hilfe von Multiziplitäten ausgedrückt wird. 11/ 69
12 UML - Objektdiagramm Ein kleines Objektdiagramm mit Assoziationen: 12/ 69
13 UML - Klassendiagramm Ein sehr kleines Klassendiagramm mit Assoziationen: 13/ 69
14 UML - Klassen- und Objektdiagramme Multiziplitäten für Klassen- und Objektdiagramme: 14/ 69
15 UML - Assoziationsklassen Wenn eine Assoziation zwischen Objekten zweier Klassen eine feste Struktur hat und ebenfalls in Attributen bzw. einer Klasse ausgedrückt werden kann, so kann man zur Modellierung eine Assoziationsklasse verwenden. 15/ 69
16 UML - spezielle Assoziationen Neben der allgemeinen Assoziation, die die Art der Beziehung zwischen Objekten und Klassen noch wenig spezifiziert (aber auch durch Texte an den Linien bereichert werden darf), gibt es drei weitere spezielle Formen in der UML: Aggregation Komposition Generalisierung 16/ 69
17 UML - Aggregation Eine Aggregation drückt aus, das eine Klasse aus mehreren Teilen zusammengesetzt ist. Ihre Objekte können nicht ohne ihre Bestandteile existieren. Eine Aggregation wird mittels einer transparenten Raute an der jeweiligen Klasse ausgedrückt. Als Beispiel betrachten wir etwa ein Buch, welches aus Teilen (den Kapiteln) zusammengesetzt ist. 17/ 69
18 UML - Aggregation 18/ 69
19 UML - Komposition Eine Komposition ist eine sehr starke Aggregation. Die zusätzlichen Anforderungen sind: Jedes Objekt einer Teilklasse kann - zu einem Zeitpunkt - nur Komponente eines einzigen Objekts der Aggregat-Klasse sein. Bei der Erzeugung des Aggregat-Objekts können auch Teil-Objekte erzeugt werden. Bei Zerstörung des Aggregat-Objekts können automatisch auch Teile von ihm gelöscht werden. Eine Komposition wird mittels einer intransparenten (ausgefüllen / schwarzen) Raute an der jeweiligen Klasse ausgedrückt. Als Beispiel betrachten wir etwa ein Verzeichnis, welches aus Teilen (den enthaltenen Dateien) zusammengesetzt ist. Wird es gelöscht, werden auch alle enthaltenen Dateien gelöscht. 19/ 69
20 UML - Komposition 20/ 69
21 UML - Generalisierung Wie der Name schon andeutet, modelliert die Generalisierung exakt das Vererbungskonzept objektorientierter Programmiersprachen. Das generalisierte Objekt entspricht der Basisklasse, die Subklassen sind die Spezialisierungen. Ein Subklassen-Objekt ist ein Objekt der generalisierenden Klasse. Eine Generalisierung wird mittels ein transparentes Dreieck an der generalisierenden Klasse ausgedrückt. 21/ 69
22 UML - Generalisierung 22/ 69
23 UML - Anwendungsfälle Neben der reinen Modellierung von Programmbestandteilen und ihren Zusammenhängen, kann mit Hilfe von UML auch die Verwendung eines Programms modelliert werden. Eine typische (und intendierte) Verwendung eines Programms, nennt man einen Anwendungsfall, engl. Use Case. Ein Anwendungsfall besteht aus: einem oder mehreren Akteuren (Personen oder Systeme), die nicht Bestandteil des Programms sind, sondern von außen mit ihm interagieren und einer Sequenz von Aktionen, etwa Aufrufe von Methoden angelegter Objekte. 23/ 69
24 UML - Anwendungsfälle Ein Anwendungsfalldiagramm beschreibt nun, welche Art von Akteuren welche Interaktionen mit dem Programm ausführen (sollen). 24/ 69
25 UML - Anwendungsfälle Ähnlich wie Klassen können Anwendungsfälle auch spezialisiert werden. Die Darstellung einer Generalisierung erfolgt wie beim Klassendiagramm. 25/ 69
26 UML - Anwendungsfälle Unter Verwendung von gestrichelten Linien zwischen Anwendungsfällen und den Schlüsselworten <<include>> - Enthaltenseins-Beziehung - modelliert Aufruf einer untergeordneten Prozedur <<extends>> - Erweiterungs-Beziehung - Erweiterung einer Basisfunktionalität, ggf. unter Angabe von Bedingungen, wann die erweiterte Funktionalität zu verwenden ist. können weitere Feinheiten in Anwendungsfalldiagrammen beschrieben werden. 26/ 69
27 UML - Aktivitäten Stark mit der Idee eines Anwendungsfalls verbunden ist das Konzept der Aktivitäten. Eine Aktivität ist ein zusammengehöriger Kontrollfluss, wie er bei der Verwendung eines Programms entsteht oder entstehen soll. Aktivitäten können mit Hilfe von Aktivitätsdiagrammen modelliert werden. 27/ 69
28 UML - Aktivitätsdiagramm Startsymbol Bedingung Zusammenführung Aktion Verzweigung Endsymbol Ereignis-Sender Ereignis-Empfänger 28/ 69
29 UML - Sequenzdiagramme Eine weitere Möglichkeit Programmabläufe zu modellieren und dabei nun die Interaktion konkreter Objekte mit einzubinden, ist das Sequenzdiagramm. Sequenzdiagramme beinhalten die Lebensdauer von Objekten und zeigen, welche Informationen sie untereinander (durch Methodenaufrufe, -Parameter, und -Rückgabewerte) austauschen. 29/ 69
30 UML - Sequenzdiagramme 30/ 69
31 UML - Sequenzdiagramme - Beispiel 31/ 69
32 UML - Zustandsdiagramme 32/ 69
33 Entwurfsmuster (Design Patterns) Die Vorlesungsfolien dieses Kapitels basieren auf dem Standardwerk der Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Design Patterns. Elements of Reusable Object-Oriented Software. Addison Wesley, / 69
34 Entwurfsmuster Was sind Entwurfsmuster? Viele Aufgaben und Probleme wiederholen sich in der Programmierung immer und immer wieder. Ob innerhalb eines Programms oder in verschiedenen Programmen, so orientiert sich beispielsweise der Aufbau einiger Klassen immer nach einem mehr oder weniger gleichen Schema. Entwurfsmuster bieten eine standardisierte, bewährte, generische und programmiertechnisch saubere Lösung für viele typische Klassenentwurfsprobleme. Kernziel sind etwa Vermeidung von redundantem Code, Erweiterbarkeit, Modularität und andere programmiertechnische Gesichtspunkte. 34/ 69
35 Mustertypen Klassifikation von Entwurfsmustern nach ihrem Anwendungsbereich: Klassenmuster beschreiben Beziehungen zwischen Klassen und bauen vorrangig Vererbungsstrukturen auf. Die Strukturen sind damit zur Übersetzungszeit festgelegt. Objektmuster nutzen vorrangig Assoziationen und Aggregationen zur Beschreibung von Beziehungen zwischen Objekten. Die durch sie beschriebenen Strukturen zwischen Objekten sind zur Laufzeit dynamisch änderbar. 35/ 69
36 Mustertypen Hinsichtlich ihrer konkreten Aufgaben wird außerdem noch eine weitere Klassifikation von Entwurfsmustern vorgenommen. Erzeugungsmuster - Helfen, ein System unabhängig davon zu machen, wie seine Objekte erzeugt, zusammengesetzt und repräsentiert werden. Strukturmuster - Erlauben den strukturierten Aufbau größerer Klassen und Objekte aus kleineren Teilen. Verhaltensmuster - Helfen, die Interaktion zwischen Objekten in den Fokus der Implementierung zu legen. 36/ 69
37 Erzegungsmuster 1. Erzeugungsmuster Hier behandelt: Factory Singleton 37/ 69
38 Erzeugungsmuster - Factory Das Klassen-Erzeugungsmuster Factory wird auch Fabrikmethode oder virtueller Konstruktor genannt (virtuelle bzw abstrakte Konstruktoren sind in direkter Form weder in C++ noch in Java erlaubt). Ein anschauliches Anwendungsszenario thematisiert ein Framework für verschiedene Anwendungen, die verschiedene Dokumenttypen bearbeiten können. Es liegt eine Aggregation derart vor, dass die Anwendung (z.b. geöffnete oder neue) Dokumente verwaltet. Man möchte gerne abstrakte Klassen Anwendung und Dokument erstellen, welche die Interaktionen bereits implementieren. D.h. die Klasse Anwendung soll beispielsweise Funktionen wie NewDocument() oder OpenDocument() bereitstellen, wie sie üblicherweise in der Menüleiste zur Verfügung stehen. 38/ 69
39 Erzeugungsmuster - Factory Problem: Die Klasse Anwendung kennt nur die abstrakte Klasse Dokument, aber keine konkreten Dokumenttypen. Folglich kann sie für NewDocument() keine Instantiierung vornehmen. 39/ 69
40 Erzeugungsmuster - Factory Das Factory-Pattern ermöglicht nun, diese Aufgabe an konkrete Anwendungsklassen zu delegieren. Anstatt eines Konstruktoraufrufs der Form new Document() definiert die Klasse Anwendung eine abstrakte Methode CreateDocument(), welche man die Fabrikmethode nennt. 40/ 69
41 Erzeugungsmuster - Factory Diese Fabrikmethode kann nun von konkreten Anwendungen für konkrete Dokumenttypen überschrieben werden. Auf Grund der Vererbungsbeziehung ist jedes konkrete Dokument ein Objekt vom Typ Document, welches die abstrakte Fabrikmethode in der Klasse Anwendung zurückliefern kann. 41/ 69
42 Erzeugungsmuster - Factory Sämtliche Funktionalität, die bereits in der abstrakten Basisklasse definiert wurde, kann entweder einfach übernommen oder in der Subklasse spezialisiert werden (dynamische Bindung). Das Erweitern um zusätzliche Anwendungen und Dokumente reduziert sich somit im Idealfall auf die Implementierung der jeweiligen CreateDocument()-Fabrikmethode und des neuen Dokumenttyps. 42/ 69
43 Erzeugungsmuster - Singleton Ein wichtiger Vertreter der Objekt-Erzeugungsmuster ist Singleton. Dieses Konzept sorgt dafür, dass zur Laufzeit des Programms immer nur eine Instanz einer bestimmten Klasse existieren kann. Singleton stellt eine saubere Alternative zu statischen globalen Variablen dar und findet Verwendung bei allen Klassen, die nur einmalig instantiiert werden sollen. Ein klassisches Beispiel für Klassen, von denen nur ein Objekt benötigt wird, sind Kontroll- und Managementklassen, wie z.b. ein Speichermanager. Ebenso sind Hauptfenster einer graphischen Oberfläche natürliche Kandidaten für Singletons. 43/ 69
44 Erzeugungsmuster - Singleton 44/ 69
45 Erzeugungsmuster - Singleton Singleton-Implementierung in Java: public class Singleton { private static Singleton instance = null; private Singleton() { } public static Singleton instance() { if (instance == null) instance = new Singleton(); } } return instance; 45/ 69
46 Strukturmuster 2. Strukturmuster Hier behandelt: Composite 46/ 69
47 Strukturmuster - Composite Der Anwendungsfall für das Kompositum (Composite) ist eine Klasse, die Objekte unterschiedlicher Subklassen einer abstrakten Basisklasse verwaltet, und selbst eine solche Subklasse ist. Es geht also um die rekursive Verschachtelung von Objekten, die entweder sich selbst oder anderweitig spezialisierte Objekte eines gleichen Basistyps beinhalten. 47/ 69
48 Strukturmuster - Composite Als anschauliches Beispiel dient eine Klasse zur Repräsentation graphischer Bausteine, wie Linien, Rechtecke und Bildern, die alle von einer abstrakten Basisklasse Graphic abgeleitet sind. 48/ 69
49 Strukturmuster - Composite In der Klasse Picture kann nun etwa ein Array von Graphic-Objekten verwaltet werden, die anschließend gezeichnet werden sollen. Dabei kann ein solches Graphic-Objekt auch eine Instanz von Picture sein, welches seinerseits wieder alle möglichen Subtypen von Graphic in einem Array beinhalten kann. 49/ 69
50 Strukturmuster - Composite Es liegt also gleichermaßen eine Aggregation sowie Generalisierungsbeziehungen vor. Diese (auch rekursiv mögliche) Verschachtelung von Objekten kann man sich in etwa folgermaßen vorstellen: 50/ 69
51 Verhaltensmuster 3. Verhaltensmuster Hier behandelt: Observer Visitor 51/ 69
52 Verhaltensmuster - Observer Das Observer-Muster kommt in der Regel zum Einsatz, wenn eine Eins-zu-viele-Beziehung mit starken Abhängigkeiten vorliegt. Die Idee ist es, die Implementierung derart anzupassen, dass wenn sich das beobachtete Objekt verändert, alle davon abhängenden Klassen automatisch über diese Veränderung benachrichtigt werden. Es handelt sich also um ein Objektmuster. 52/ 69
53 Verhaltensmuster - Observer Die Implementierung erfolgt derart, dass die beobachtete Klasse (Subject) eine Schnittstellen-Methode anbietet, über die sich alle ihre Beobachter registrieren können. Alle Klassen, deren Objekte über Änderungen informiert werden sollen, implementieren nun ein gemeinsames Observer-Interface. Anschließend können sich die Objekte selbst mittels o.g. Methode bei der Subject-Klasse als Beobachter registrieren. 53/ 69
54 Verhaltensmuster - Observer Findet nun eine Änderung des Zustands in Subject statt, ruft diese die Methode notify() auf, welche ihrerseits für alle registrierten Observer die update() auslöst. Folglich können diese Objekte nun den neuen Zustand auslesen und somit auf dem aktuellen Stand bleiben. 54/ 69
55 Model-View-Controller Das Verhaltensentwurfsmuster Model-View-Controller (MVC) ist ein Spezialfall des Observer-Modells, welches insbesondere im Zusammenhang mit graphischen Benutzeroberflächen häufig Anwendung findet. Ziele / Eigenschaften des Musters sind insbesondere: Einfache Erweiterbarkeit um neue Ansichten auf dieselben Daten Strikte Trennung von Datenzugriff und Ansicht Zentrale Bündelung der Interaktion zwischen Programm und Benutzer 55/ 69
56 Model-View-Controller - View Die View-Komponente(n) dieses Musters entsprechen in aller Regel Fenstern oder Bestandteilen von Fenstern, die eine gewisse Information graphisch darstellen / aufbereiten. Beispiel: Verschiedene Diagramme zu Wahlergebnissen, die bei Änderung der Prognose alle aktualisiert werden sollen. Es bietet sich daher an, eine Anzeige als Observer zu implementieren. Sie registriert sich als Beobachter des Datenmodells und wird folglich über Änderungen benachrichtigt, auf die sie dann reagiert. 56/ 69
57 Model-View-Controller - Model Das Modell hat in diesem Muster folgende Funktionen: Kapselung sämtlicher Daten und Datenbanken Bereitstellen von Interface-Methoden zur kontrollierten Modifikation dieser Daten Benachrichtigen der observierenden (registrierten) Objekte 57/ 69
58 Model-View-Controller - Controller Der Controller stellt die zentrale Verwaltungseinheit dieses Entwurfsmusters dar. Verursacht der Benutzer oder ein externes Ereignis Änderungen der Modelldaten, so nimmt der Controller diese entgegen und führt diese Änderungen durch Aufruf der Modell-Interfacemethoden durch. 58/ 69
59 Model-View-Controller - Controller Die Interface-Methoden des Modells, die eine Änderung der Daten nach sich ziehen, rufen nun intern die update()-funktion aller registrierten Beobachter (Views) auf. Auch der Controller kann selbst ein Beobachter sein (etwa könnte durch ein erstmaliges Eingeben von Daten eine Speicherfunktion im Menü aktiviert werden.) 59/ 69
60 Model-View-Controller - Controller Sind alle Änderungen propagiert und die Ansichten / Steuerungskomponenten aktualisiert, kann die Kontrolle an den Benutzer zurückgegeben und auf das nächste Ereignis gewartet werden. Abbildung: Model-View-Controller (aus Frank Buschmann - Pattern-orientierte Software-Architektur) 60/ 69
61 Verhaltensmuster - Visitor Zu guter letzt betrachten wir das Besucher-Modell, engl. Visitor, welches ebenfalls ein Objektmuster ist. Visitor findet Anwendung, wenn eine Klassenhierarchie aus vielen Subklassen besteht, auf deren Objekten dieselben Funktionen ausgeführt werden sollen, diese sich in ihrer Implementierung aber stark unterscheiden. 61/ 69
62 Verhaltensmuster - Visitor Natürlich kann in diesem Fall von einer abstrakten Klasse vererbt werden, jedoch muss (nahezu) jede Methode überschrieben werden. Insbesondere aber führt das Hinzufügen neuer Methoden dazu, dass alle implementierenden Klassen überarbeitet werden müssen. Visitor trennt Klassen und ihre Operationen (Methoden), indem es sie in eigens dafür vorgesehene Besucher-Klassen auslagert. 62/ 69
63 Verhaltensmuster - Visitor Anschaulich und stark abstrahiert könnte man in etwa sagen, dass Visitor aus einer nachfolgenden Klassendefinition public class Klasse { void methode() {... } } so etwas macht: public class VisitorClass implements Visitor { void methode (Klasse k) {... } } 63/ 69
64 Verhaltensmuster - Visitor Doch wie funktioniert das im großen Stil und im Zusammenspiel mit Vererbungshierarchien? Wir sagen, dass eine Klasse aus der Hierarchie ein Visitor-Objekt akzeptieren muss. Dazu implementiert diese Klasse eine Methode accept(visitor v), welche folglich für sämtliche implementierenden Klassen von Visitor verwendet werden kann. accept() macht nun nichts anders, als im Visitor die Methode aufzurufen, die sonst Teil der Klasse gewesen wäre. Für jeden Visitor, den wir accept() übergeben, wird also dessen Methode aufgerufen, die für die jeweilige Klasse gedacht ist. 64/ 69
65 Verhaltensmuster - Visitor 65/ 69
66 Verhaltensmuster - Visitor Werden nun Objekte der Klassenhierarchie erzeugt, wird diesen ein (oder mehrere) Visitor-Objekt(e) übergeben, welche(s) die für sie passende Implementierung ihrer Methoden enthält. Wird eine Operation verändert, muss dies lediglich im Rahmen der Visitor-Klasse erfolgen, alle anderen Klassen bleiben unberührt. Ähnlich ist es für das Hinzufügen neuer Methoden. In diesem Fall kann ein neue Klasse von Visitor abgeleitet und für diese bei den erzeugten Objekten die accept() Methode aufgerufen werden. 66/ 69
67 Verhaltensmuster - Visitor Zur etwas anschaulicheren Darstellung, folgt nun eine einfache Beispielimplementierung mit 2 besuchbaren Klassen und einem TestVisitor. Zunächst das Interface des Visitors: interface Visitor { void method(visitableclass1 vc1); void method(visitableclass2 vc2); } 67/ 69
68 Verhaltensmuster - Visitor Nun das Interface der besuchbaren Klassen: interface Visitable { void accept(visitor v); } und die Implementierung einer der beiden Klassen: public class VisitableClass1 implements Visitable { public VisitableClass1() { System.out.println("Visitable1-Object created"); } public void accept(visitor v) { v.method(this); } 68/ 69
69 Verhaltensmuster - Visitor Was nun noch fehlt ist der konkrete TestVisitor: public class TestVisitor implements Visitor { public void method(visitableclass1 vc1) { System.out.println("Called Visitor-Method for VisitableClass1"); } public void method(visitableclass2 vc2) { System.out.println("Called Visitor-Method for VisitableClass2"); } public static void main (String[] args) { VisitableClass1 vc1 = new VisitableClass1(); VisitableClass2 vc2 = new VisitableClass2(); TestVisitor tv = new TestVisitor(); } } vc1.accept(tv); vc2.accept(tv); 69/ 69
Objektorientierte und Funktionale Programmierung SS 2014
Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten
MehrVorlesung 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)
MehrEinführung in die Informatik II
Einführung in die Informatik II SS 2012 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Einführung in die Informatik II 1 Prüfungstermine EI II im Sommersemester 2012 Klausurtermine
MehrEntwurfsmuster. Marc Monecke
Entwurfsmuster Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 20. Mai 2003 Inhaltsverzeichnis 1 Grundlagen
MehrUML (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...
MehrAlgorithmen 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
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 29 UML Einführung Klassendiagramme in der UML Relationen zwischen Klassen Einführung:
MehrEntwurfsmuster (Design Patterns)
Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder
Mehr09.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)
MehrVorlesung 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)
Mehr8. 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:
MehrProgrammieren 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
MehrCreational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.
Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational
MehrUML -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
MehrKapitel 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
MehrUniversitä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
MehrEinführung in die objektorientierte Programmierung
Einführung in die objektorientierte Programmierung Seminarunterlage Version: 4.04 Copyright Version 4.04 vom 17. Juni 2016 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten.
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 29 UML Einführung Klassendiagramme in der UML Relationen zwischen Klassen Einführung:
MehrUnified 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
MehrModel-View-Controller
Software Design Pattern Model-View-Controller Michael Lühr Gliederung Einführung und Problemstellung Ansatz durch MVC Detaillierte Darstellung der Komponenten Model View Controller Vor- und Nachteile Zusammenfassung
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2
MehrUnified Modeling Language 2
Unified Modeling Language 2 Marvin Frommhold 17.11.2008 Gliederung Einleitung Geschichte Strukturierung der Spezifikation Diagrammtypen Strukturdiagramme Verhaltensdiagramme CASE-Werkzeuge Quellen Was
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2
MehrDesign Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff
Design Patterns II Der Design Muster Katalog Prof. Dr. Nikolaus Wulff Wiederverwendung Wiederverwendung ist das Schlagwort von OOP zur Erhöhung der Produktivität. Es gibt im Prinzip drei Methoden hierzu:
MehrEinstieg 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
Mehr3. Konzepte der objektorientierten Programmierung
3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung
MehrEinstieg 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
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrUnified 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
MehrProgrammieren in Java
Programmieren in Java Vorlesung 06: Das Visitor Pattern Prof. Dr. Peter Thiemann (vertreten durch Luminous Fennell) Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg)
MehrLukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster
Entwurfsmuster Lukas Klich Projektgruppe SHUTTLE Seminar: 28.11.2002 Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1 Motivation Die Menschheit löst Probleme, indem sie beobachtet, Beobachtungen
MehrVererbung. 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
MehrKlassendiagramm. (class diagram)
: Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau
MehrVererbung, 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
MehrAlgorithmen und Datenstrukturen 07
5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7
MehrKlassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla
BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung
Mehr1 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,
Mehr3 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
MehrEinfü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
MehrEinfü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
MehrInformatik I Eprog HS12
software evolution & architecture lab Informatik I Eprog HS12 Übung 11 1 Aufgabe: Interfaces & Visitor-Pattern 1.1 Lernziele 1. Die Verwendung von Interfaces trainieren. 2. Das Visitor Design-Pattern kennenlernen.
Mehr15 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
MehrNeben 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
MehrPrinzipien der objektorientierten Programmierung (OOP)
Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm
MehrSommersemester 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.
MehrFH 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
MehrAlgorithmen 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
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrÜberblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio
Entwurfsmuster Eine Einführung Botond Draskoczy Marcus Vitruvius Pollio Überblick Historie, Literatur Das Flugapparat-Bildschirmschoner-Projekt (FBP) Das internetbasierte Solar-Netzwerk (SNW) Zusammenfassung
MehrNACHRICHTENTECHNISCHER SYSTEME
Einführung UML COMPUTERSIMULATION NACHRICHTENTECHNISCHER SYSTEME 11. Unified Modeling Language UML 220 Standardsprache d zur Visualisierung, i Spezifikation, Konstruktion und Dokumentation komplexer (Software-)
MehrObjektorientierte 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
Mehr1 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
MehrJason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel
Jason T. Roff UML IT Tutorial Übersetzung aus dem Amerikanischen von Reinhard Engel Inhaltsverzeichnis Inhaltsverzeichnis Einführung 11 Grundlagen der UML 15 Warum wir Software modellieren 16 Analyse,
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrVererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
MehrObjektorientierte 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Ü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
MehrObjektorientierte Systementwicklung
Karl-Heinz Rau Objektorientierte Systementwicklung Vom Geschäftsprozess zum Java-Programm Mit 162 Abbildungen vieweg Überblick und Vorbemerkungen 1 1 Objektorientierte Software-Entwicklung 5 1.1 Überblick
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 18 UML Einführung Klassendiagramme in der UML Relationen zwischen Klassen 2 / 18 UML: Grundsätzliches
MehrProgrammiersprache 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
MehrKapitel 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
MehrTeil II: OOP und JAVA (Vorlesung 9)
Teil II: OOP und JAVA (Vorlesung 9) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 14.06.06 1 Teil
MehrSo#waretechnologie für Fortgeschri4ene Teil Eide. Stunde IV: UML. Köln 26. Januar 2017
So#waretechnologie für Fortgeschri4ene Teil Eide Stunde IV: UML Köln 26. Januar 2017 Model of vs. model for TheoreKcal model model for comparison calibra9on verifica9on Empirical model model of deduc9on
MehrKapitel 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
Mehr14. 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
MehrStrategy & Decorator Pattern
Strategy & Decorator Pattern Design Patterns Nutzen Wouldn t it be dreamy if only there were a way to build software so that when we need to change it, we could do so with the least possible impact on
MehrProgrammieren 2 C++ Überblick
Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 5. Behälter und Iteratoren 6. Templates
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrÜberblick. Überblick zum weiteren Inhalt
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
MehrEin Entwurfsmuster der GoF. vorgestellt von. Sigrid Weil 16. Januar 2008
Ein Entwurfsmuster der GoF vorgestellt von Sigrid Weil 16. Januar 2008 Einleitung 2 Entwurfsmuster (Design Patterns) beschreiben Probleme, die wiederholt in unterschiedlichsten Zusammenhängen aufreten
MehrSoftware 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
MehrSoftwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler
Übungen zur Vorlesung Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungsblatt 7 Lösungshilfe Aufgabe 1. Analysephase (12 Punkte) Eine Firma hat den Auftrag erhalten eine
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrSoftwarearchitektur, UML, Design Patterns und Unit Tests
Softwarearchitektur, UML, Design Patterns und Unit Tests Stefan Wehr Prof. Dr. Peter Thiemann 7. Dezember 2005 Übersicht Softwarearchitektur UML Design Pattern Unit Tests 2 / 34 Softwarearchitektur Softwarearchitektur
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrObjektorientierte 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Übersicht. Softwarearchitektur. Softwarearchitektur, UML, Design Patterns und Unit Tests. Softwarearchitektur
Übersicht Object Oriented Organization Das System besteht aus Objekten, die mittels Methodenaufrufe (Nachrichten) miteinander kommunizieren. 2 / 34 4 / 34,, Design Patterns und Stefan Wehr Prof. Dr. Peter
Mehr12 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,
MehrProgrammieren 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
MehrEinführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 10. Vererbung und Polymorphie Vererbung und Polymorphie in C++ Seite 2 Klassen können von anderen Klassen
MehrHandbuch für die Erweiterbarkeit
Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6
MehrEntwurfsmuster - Iterator & Composite
Entwurfsmuster - Iterator & Composite Alexander Rausch Seminar Entwurfsmuster WS08/09 19. November 2008 Gliederung 1 Einführung 2 Das Iterator Entwurfsmuster 3 Das Composite Entwurfsmuster 4 Quellen 5
MehrObjektorientierte Modellierung
Objektorientierte Modellierung KLASSENDIAGRAMM Klasse = Typebene zum Beschreiben mehrerer Objekte der selben Struktur Objekt = konkrete Ausprägung einer Klasse Instanz = Objekt Klassendiagramm = beschreibt
MehrKapitel 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
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
MehrGeoinformation 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
MehrUML. Weiteres Vorgehen im Projekt
UML Download objectif Personal Edition (kostenlos): http://www.microtool.de/objectif/de/download.asp Weiteres Vorgehen im Projekt Komponenten, Klassen, Objekte Prozesse Nichtfunktionale Anforderungen Skizzen,
Mehr7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrEntwurfsmuster. Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr
Entwurfsmuster Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr Was sind Entwurfsmuster (1) Muster (allg.) sind schematische Lösungen für eine Klasse verwandter Probleme Beschreibung:
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrDesign Patterns. 3. Juni 2015
Design Patterns 3. Juni 2015 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Taentzer Softwarequalität 2015 138 Was sind Design Patterns?
MehrSoftware-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere)
2014-01-08 Software-Entwurfsmuster (weitere) 1 185.A01 OOP Software-Entwurfsmuster (weitere) 2014-01-08 Software-Entwurfsmuster (weitere) 2 OOP Vererbung versus Delegation class A { public void x() { z();
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrProf. 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
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2009
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2009 Überblick I 1 Entwurfsmuster Entwurfsmuster: Entwurfsmuster
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/15 1 / 26 Allgemeines Progammiersprachen Objektorientierte Programmierung Grundlegende Eigenschaften
Mehr