14 Design Patterns Einführung 14.2 Composite Pattern

Größe: px
Ab Seite anzeigen:

Download "14 Design Patterns. 14.1 Einführung 14.2 Composite Pattern"

Transkript

1 14 Design Patterns 14.1 Einführung 14.2 Composite Pattern

2

3 14.1 Einführung Motivation Was ist ein Design Pattern? Beschreibung eines Design Patterns Katalog von Design Patterns Organisation des Katalogs Beziehungen zwischen Design Patterns Wie Design Patterns Probleme lösen Literatur

4 Motivation Das Entwerfen von objektorientierter Software ist schwierig, insbesondere das Entwerfen wiederverwendbarer objektorientierter Software Erfahrene Software-Entwickler vermeiden es, jedes Problem neu zu lösen, stattdessen verwenden sie erfolgreiche Lösungen wieder Daraus entstehen wiederkehrende Muster von Klassen und kommunizierenden Objekten

5 Was ist ein Design Pattern? Christopher Alexander: Jedes Muster beschreibt ein in unserer Umwelt beständig wiederkehrendes Problem und erläutert den Kern der Lösung für dieses Problem, so dass diese Lösung beliebig oft angewendet werden kann, ohne sie jemals ein zweites Mal gleich auszuführen. Definition: Ein Design Pattern ist eine Beschreibung zusammenarbeitender Klassen und Objekte, um ein allgemeines Design-Problem in einem bestimmten Kontext zu lösen. Ein Design Pattern besteht aus folgenden Elementen: der Name benennt das Design-Problem und ermöglicht, Software auf einer höheren Abstraktionsebene zu entwerfen das Problem beschreibt die Situation, in welcher das Pattern anzuwenden ist, welches Design-Problem damit adressiert wird und was sein Kontext ist die Lösung beschreibt die Klassen und Objekte, aus denen der Design besteht, sowie ihre Zuständigkeiten und Interaktionen die Konsequenzen beschreiben die Vor- und Nachteile des resultierenden Designs und diskutieren verschiedene Varianten

6 Beschreibung eines Design Patterns Name vermittelt knapp und präzise den wesentlichen Inhalt des Patterns Klassifizierung definiert den Aufgabenbereich und den Gültigkeitsbereich des Patterns Auch bekannt als gibt andere wohlbekannte Namen für das Pattern an Zweck beschreibt kurz, was das Pattern macht und welche Fragestellungen oder Probleme es behandelt Motivation besteht aus einem Szenario, welches ein konkretes Design-Problem schildert und wie das Pattern dieses Problem löst Anwendbarkeit beschreibt, in welchen Situationen das Pattern angewendet werden kann Struktur besteht aus einer grafischen Repräsentation des Patterns (Klassen-, Objekt-, Sequenzdiagramm) Teilnehmer beschreibt die am Pattern beteiligten Klassen und Objekte sowie ihre Zuständigkeiten Interaktionen beschreibt, wie die Teilnehmer zur Erfüllung der gemeinsamen Aufgabe zusammenarbeiten Konsequenzen beschreibt die Vor- und Nachteile des Patterns und welche Varianten es gibt Implementierung präsentiert Fallen, Tipps oder Techniken für die Implementierung des Patterns Beispielcode diskutiert Codefragmente zur Veranschaulichung des Patterns Bekannte Verwendungen führt Beispiele von existierenden Systemen auf, in denen das Pattern eingesetzt wird Verwandte Patterns setzt das Pattern in Bezug zu andern Patterns, diskutiert die Unterschiede und erläutert mögliche Kombinationen

7 Katalog von Design Patterns Abstract Factory Biete eine Schnittstelle zum Erzeugen von Familien verwandter oder voneinander abhängiger Objekte, ohne ihre konkreten Klassen zu benennen. Adapter Passe die Schnittstelle einer Klasse an eine andere von ihren Klienten erwartete Schnittstelle an. Das Adapter Pattern lässt Klassen zusammenarbeiten, die wegen inkompatibler Schnittstellen sonst nicht in der Lage dazu wären. Bridge Entkopple eine Abstraktion von ihrer Implementierung, so dass beide unabhängig voneinander variiert werden können. Builder Trenne die Konstruktion eines komplexen Objekts von seiner Repräsentation, so dass derselbe Konstruktionsprozess unterschiedliche Repräsentationen erzeugen kann. Chain of Responsibility Vermeide die Koppelung des Auslösers einer Anfrage an seinen Empfänger, indem mehr als ein Objekt die Möglichkeit erhält, die Anfrage zu erledigen. Verkette die empfangenden Objekte und leite die Anfrage an der Kette entlang, bis ein Objekt sie erledigt. Command Kapsle einen Befehl als ein Objekt. Dies ermöglicht es, Klienten mit verschiedenen Anfragen zu parametrisieren, Operationen in eine Warteschlange zu stellen, ein Logbuch zu führen und Operationen rückgängig zu machen. Composite Füge Objekte zu Baumstrukturen zusammen, um Teil-Ganzes-Hierarchien zu repräsentieren. Das Composite Pattern ermöglicht es Klienten, einzelne Objekte sowie Kompositionen von Objekten einheitlich zu behandeln. Decorator Erweitere ein Objekt dynamisch um Zuständigkeiten. Ein Decorator bietet eine flexible Alternative zur Subklassierung, um die Funktionalität einer Klasse zu erweitern. Façade Biete eine einheitliche Schnittstelle zu einer Menge von Schnittstellen eines Subsystems. Die Façade Klasse definiert eine abstrakte Schnittstelle, welche die Verwendung des Subsystems vereinfacht. Factory Method Definiere eine Klassenschnittstelle mit Operationen zum Erzeugen eines Objekts, aber lasse Unterklassen entscheiden, von welcher Klasse das zu erzeugende Objekt ist. Factory Methoden ermöglichen es einer Klasse, die Erzeugung von Objekten an Unterklassen zu delegieren. Flyweight Nutze Objekte kleinster Granularität gemeinsam, um grosse Mengen von ihnen effizient verwenden zu können.

8 Interpreter Definiere für eine gegebene Sprache eine Repräsentation der Grammatik sowie einen Interpreter, der die Repräsentation nutzt, um Sätze in der Sprache zu interpretieren. Iterator Biete eine Möglichkeit, um auf die Elemente eines zusammengesetzten Objekts sequentiell zugreifen zu können, ohne die zugrundeliegende Repräsentation offenzulegen. Mediator Definiere ein Objekt, welches das Zusammenspiel einer Menge von Objekten in sich kapselt. Ein Mediator fördert die lose Koppelung, indem er Objekte davon abhält, aufeinander explizit Bezug zu nehmen, und ermöglicht, das Zusammenspiel der Objekte unabhängig zu variieren. Memento Erfasse und externalisiere den internen Zustand eines Objekts, ohne seine Kapselung zu verletzen, so dass das Objekt später in diesen Zustand zurückversetzt werden kann. Observer Definiere eine 1-zu-n-Abhängigkeit zwischen Objekten, so dass die Änderung des Zustands eines Objekts dazu führt, dass alle abhängigen Objekte benachrichtigt und automatisch aktualisiert werden. Prototype Bestimme die Arten zu erzeugender Objekte durch die Verwendung eines prototypischen Exemplars, und erzeuge neue Objekte durch Kopieren dieses Prototypen. Proxy Kontrolliere den Zugriff auf ein Objekt mit Hilfe eines vorgelagerten Stellvertreterobjekts. Singleton Sichere ab, dass eine Klasse genau ein Exemplar besitzt, und stelle einen globalen Zugriffspunkt darauf bereit. State Ermögliche es einem Objekt, sein Verhalten zu ändern, wenn sein interner Zustand sich ändert. Es wird so aussehen, als ob das Objekt seine Klasse gewechselt hat. Strategy Definiere eine Familie von Algorithmen, kapsele jeden einzelnen und mache sie austauschbar. Das Strategy Pattern ermöglicht es, den Algorithmus unabhängig von den nutzenden Klienten zu variieren. Template Method Definiere das Skelett eines Algorithmus in einer Operation und delegiere einzelne Schritte an Unterklassen. Die Verwendung einer Template Method ermöglicht es Subklassen, bestimmte Schritte eines Algorithmus zu überschreiben, ohne seine Struktur zu verändern. Visitor Kapsle eine auf den Elementen einer Objektstruktur auszuführende Operation als ein Objekt. Das Visitor Pattern ermöglicht es, eine neue Operation zu definieren, ohne die Klassen der von ihr bearbeiteten Elemente zu verändern.

9 Organisation des Katalogs Design Patterns können nach ihrer Aufgabe klassifiziert werden: Erzeugungsmuster betreffen den Prozess der Objekterzeugung Strukturmuster befassen sich mit der Zusammensetzung von Klassen und Objekten Verhaltensmuster definieren, wie Klassen und Objekte zusammenarbeiten und ihre Zuständigkeiten aufteilen Design Patterns können nach ihrem Gültigkeitsbereich klassifiziert werden: Klassenbasierte Patterns befassen sich mit Klassen und ihren Unterklassen (statische Beziehungen) Objektbasierte Patterns befassen sich mit Objektbeziehungen, die sich zur Laufzeit ändern können (dynamische Beziehungen) Erzeugungsmuster Strukturmuster Verhaltensmuster klassenbasiert Factory Method Adapter Interpreter Template Method objektbasiert Abstract Factory Builder Prototype Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor

10 Beziehungen zwischen Design Patterns Manche Patterns werden oft zusammen genutzt (z.b. Composite und Iterator) Manche Patterns stellen Alternativen zueinander dar (z.b. Prototype und Abstract Factory) Manche Patterns führen zu einem ähnlichen Design, obschon sie unterschiedliche Ziele verfolgen (z.b. Composite und Decorator) Manche Patterns haben Beziehungen zu andern Patterns

11 Wie Design Patterns Probleme lösen Finden passender Objekte, insbesondere solcher, die keine Entsprechung in der realen Welt haben Bestimmen der Objektgranularität (Grösse und Anzahl von Objekten) Spezifizieren von Objektschnittstellen durch Identifikation der zentralen Operationen und zu vermittelnden Daten Spezifizieren von Objektimplementierungen (z.b. Programmieren gegen Schnittstellen) Anwenden von Wiederverwendungsmechanismen wie Klassenvererbung und Objektkomposition (Delegation) Verstehen von Laufzeitstrukturen wie Assoziations- und Aggregationsbeziehungen Vorsehen von Veränderungen im Design durch Einbau von Flexibilität: Erzeugen von Objekten ohne explizite Nennung ihrer Klassen Unabhängigkeit von spezifischen Operationen Unabhängigkeit von Hardware- oder Software-Plattformen Unabhängigkeit von Algorithmen Lose Kopplung zwischen Klassen Möglichkeit zur Erweiterung von Funktionalität Möglichkeit zur Änderung bestehender Klassen Design Patterns können einen Design unnötig kompliziert machen oder zu Performance-Einbussen führen Design Patterns sollten nur angewendet werden, wenn die gebotene Flexibilität auch wirklich benötigt wird!

12 Literatur Erich Gamma, Richard Helm, Ralph E. Johnson Design Patterns. Elements of Reusable Object-Oriented Software Addison Wesley, 1995 Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad A System of Patterns. Pattern-Oriented Software Architecture John Wiley & Sons, 1996 Douglas C. Schmidt, Michael Stal, Hans Rohnert Pattern-Oriented Software Architecture 2. Patterns for Concurrent and Networked Objects John Wiley & Sons, 2000 Eric Freeman, Elisabeth Freeman, Kathy Sierra Head First Design Patterns O'Reilly, 2004 Steven J. Metsker, William C. Wake Design Patterns in Java Addison Wesley, 2006

13 14.2 Composite Pattern Objektbasiertes Strukturmuster Zweck Motivation Anwendbarkeit Struktur Teilnehmer Interkationen Konsequenzen Implementierung Beispielcode Bekannte Verwendungen Verwandte Patterns

14 Zweck Füge Objekte zu Baumstrukturen zusammen, um Teil-Ganzes-Hierarchien zu repräsentieren. Das Composite Pattern ermöglicht es Klienten, einzelne Objekte sowie Kompositionen von Objekten einheitlich zu behandeln.

15 Motivation Kontext: Zeicheneditoren ermöglichen es oft, komplexe Figuren aus einfachen Figuren wie Linien, Rechtecke, Kreise usw. zusammenzusetzen. Problem: Wie können sowohl einfache als auch zusammengesetzte Figuren einheitlich behandelt (zeichnen, verschieben, drehen usw.) werden? Lösung: Es wird eine abstrakte Basisklasse Figure definiert, welche sowohl einfache als auch zusammengesetzte Figuren repräsentiert. Die Schnittstelle von Figure enthält Operationen für das Zeichnen von Figuren und für die Verwaltung von Kindobjekten. Die Unterklassen Line, Rectangle und Circle definieren einfache Figuren und implementieren die Zeichen-Operationen. Die Klasse ComposedFigure definiert eine zusammengesetzte Figur und delegiert die Zeichen-Operationen an ihre Kindobjekte. Eine zusammengesetzte Figur kann wieder zusammengesetzte Figuren enthalten. Dadurch können beliebig tiefe Baumstrukturen aufgebaut werden:

16 Anwendbarkeit Das Composite Pattern wird angewendet, wenn Teil-Ganzes-Hierarchien von Objekten repräsentiert werden sollen Klienten sowohl einzelne als auch zusammengesetzte Objekte einheitlich behandeln sollen

17 Struktur Das folgende Klassendiagramm zeigt die Strukur des Composite Patterns: Eine typische Objektstruktur sieht wie folgt aus:

18 Teilnehmer Component Leaf Composite Client deklariert die Schnittstelle aller Objekte der Baumstruktur implementiert eventuell ein Defaultverhalten deklariert eine Schnittstelle für die Verwaltung von Kindobjekten definiert optional eine Schnittstelle für den Zugriff auf die Elternkomponente repräsentiert Blattobjekte definiert das Verhalten für die einfachen Objekte definiert das Verhalten für Komponenten mit Kindobjekten speichert die Kindobjekte implementiert die Kindobjekt-spezifischen Operationen manipuliert Objekte in der Baumstruktur über die gemeinsame Schnittstelle

19 Interaktionen Klienten interagieren mit den Objekten der Baumstruktur über die Schnittstelle von Component Ein Leaf-Objekt behandelt eine Anfrage selbst Ein Composite-Objekt leitet die Anfrage an seine Kindobjekte weiter

20 Konsequenzen Vorteile: Nachteile: Einfache Objekte können rekursiv zu komplexeren Objekten zusammengesetzt werden Klienten können einfache und zusammengesetzte Objekte gleich behandeln Neue Komponenten können einfach hinzugefügt werden Der Design kann zu allgemein sein, indem z.b. die Typen der Kindobjekte einer Komponente nicht eingeschränkt werden können

21 Implementierung Explizite Referenzen auf das Elternobjekt können die Traversierung und Verwaltung der Baumstruktur vereinfachen Die gemeinsame Nutzung von Komponenten kann den Speicherbedarf senken Die Maximierung der Komponentenschnittstelle erlaubt, den Unterschied zwischen einfachen und zusammengesetzten Objekten weitgehend zu verstecken Das Deklarieren der Verwaltungsoperationen für Kindobjekte in der Component-Klasse verschafft Transparenz, weil alle Komponenten gleich behandelt werden Composite-Klasse gibt die Sicherheit, dass keine Kindobjekte zu Blattkomponenten hinzugefügt werden Der Behälter für die Kindobjekte sollte in der Composite-Klasse definiert werden Die Ordnung der Kindobjekte kann in einer Anwendung relevant sein Zwischenspeichern von Information beim Traversieren der Baumstruktur kann das Laufzeitverhalten verbessern Das Löschen von Komponenten erfolgt normalerweise durch die Elternkomponente

22 Beispielcode Widerstände sind elektrische Bauteile mit einem bestimmten Widerstandswert. Aus einzelnen Widerständen lassen sich hierarchisch Widerstandsnetze zusammensetzen: Dabei gelten folgende Regeln: Ein einzelner Widerstand ist ein Netz Zwei Netze können in Serie, d.h. hintereinander, geschaltet werden Das resultierende Netz hat den Widerstandswert R = R 1 + R 2 Zwei Netze können parallel, d.h. nebeneinander, geschaltet werden Der Widerstandswert des resultierenden Netzes erfüllt die Gleichung 1/R = 1/R 1 + 1/R 2 Das folgende Klassendiagramm zeigt die Umsetzung mithilfe des Composite Patterns: Das Interface ResistorNet definiert die Schnittstelle eines Widerstandsnetzes und enthält Methoden zum Bestimmen des Widerstandswerts und zum Verwalten von Teilnetzen: public interface ResistorNet { public double getvalue(); public void add(resistornet net); public void remove(resistornet net); public List getsubnets();

23 Die Unterklasse Resistor implementiert einen einfachen Widerstand: public class Resistor implements ResistorNet { private final double value; public Resistor(double value) { this.value = value; public double getvalue() { return value; public void add(resistornet net) { throw new UnsupportedOperationException(); public void remove(resistornet net) { throw new UnsupportedOperationException(); public List getsubnets() { throw new UnsupportedOperationException(); Die abstrakte Unterklasse Connection repräsentiert eine allgemeine Schaltung und implementiert die Methoden zum Verwalten von Teilnetzen: public abstract class Connection implements ResistorNet { protected List subnets = new ArrayList(); public void add(resistornet net) { subnets.add(net); public void remove(resistornet net) { subnets.remove(net); public List getsubnets() { return subnets; Die konkreten Unterklassen Serial und Parallel implementieren eine serielle bzw. parallele Schaltung und berechnen die entsprechenden Widerstandswerte: public class Serial extends Connection { public double getvalue() { double value = 0; for (ResistorNet subnet : subnets) value += subnet.getvalue(); return value; public class Parallel extends Connection { public double getvalue() { double value = 0; for (ResistorNet subnet : subnets) value += 1 / subnet.getvalue(); return 1 / value;

24 Die Klasse Client implementiert einen Klienten, welcher ein Widerstandsnetz aufbaut und seinen Widerstandswert bestimmt: public class Client { public static void main(string[] args) { Resistor r1 = new Resistor(100); Resistor r2 = new Resistor(200); Resistor r3 = new Resistor(300); Resistor r4 = new Resistor(400); Resistor r5 = new Resistor(500); Resistor r6 = new Resistor(600); ResistorNet n1 = new ParallelNet(); n1.add(r1); n1.add(r2); ResistorNet n2 = new SerialNet(); n2.add(n1); n2.add(r3); ResistorNet n3 = new SerialNet(); n3.add(r4); n3.add(r5); ResistorNet n4 = new ParallelNet(); n4.add(n2); n4.add(n3); n4.add(r6); System.out.println(n4.getValue());

25 Bekannte Verwendungen Ursprüngliche View-Klasse von Smalltalk Klassenbibliotheken und Frameworks für grafische Benutzeroberflächen Anwendungen der Finanzwelt, in welchen Portfolios mehrere Anlagen zusammenfassen

26 Verwandte Patterns Die Verbindung zwischen Komponente und Elternobjekt wird oft zur Implementierung des Chain of Responsibility Pattern verwendet Das Decorator Pattern wird oft mit dem Composite Pattern kombiniert Das Flyweight Pattern ermöglicht, Komponenten gemeinsam zu nutzen Das Iterator Pattern kann verwendet werden, um die Baumstruktur zu traversieren Das Visitor Pattern kann Operationen lokalisieren, die sonst in die Composite- und Leaf-Klasse verteilt werden müssen

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel 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

Mehr

Behavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul

Behavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul Behavioral Patterns Seminar Software-Entwurf WS 04/05 Przemyslaw Dul Gliederung Design Pattern (Wiederholung) Einordnung Übersicht über die Kategorien: Creational,Structural,Behavioral Übersicht über die

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster

Mehr

Objektorientiertes Software-Engineering

Objektorientiertes Software-Engineering Objektorientiertes Software-Engineering Vorlesung VIII Inhalt der Vorlesung Wiederholung Vorlesung VII Factory Method Observer s Übung Vorstellung des (Gruppe Jukebox) Folie 2 Definiert ein Objekt zur

Mehr

Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D

Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D 1 1. EINLEITUNG... 3 2. ZWECK... 3 3. MOTIVATION... 3 4. ANWENDBARKEIT... 6 5. STRUKTUR... 6 6. TEILNEHMER... 7 7. INTERAKTION...

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 9 Dr. H. Ehler, S. Wagner 11. Januar 2007 Übungen zu Softwaretechnik Aufgabe 15 Systemerstellung / Systemarchitektur nach dem V- Modell XT Machen Sie sich mit den

Mehr

Überblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio

Ü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

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Entwurfsprinzip. Entwurfsprinzip

Entwurfsprinzip. Entwurfsprinzip Die Komposition (hat ein Beziehung) ist der Vererbung (ist ein Beziehung) vorzuziehen. Es können Familien von Algorithmen in eigenen Klassensätzen gekapselt werden. Das Verhalten lässt sich zu Laufzeit

Mehr

Software-Entwurfsmuster

Software-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

Mehr

Software-Architektur Design Patterns

Software-Architektur Design Patterns Design Patterns Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides: Design Patterns:

Mehr

Factory Method (Virtual Constructor)

Factory Method (Virtual Constructor) Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Entwurfsmuster Martin Fesser 00IN

Entwurfsmuster Martin Fesser 00IN Entwurfsmuster Martin Fesser 00IN Inhalt Was sind Entwurfsmuster? Vorteile, Nachteile Entwurfsmusterkatalog (nach GoF) Variation von Entwurfsaspekten Wie Entwurfsmuster Entwurfsprobleme lösen Beispiele

Mehr

Entwurfsmuster in Java

Entwurfsmuster in Java Entwurfsmuster in Java Das Observer- und das Decorator-Pattern Friederike Löwe 13. März 2011 Inhaltsverzeichnis Einleitung Wozu eigentlich Entwurfsmuster? Die Grundlage: Design-Prinzipien Das Decorator-Pattern

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

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

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

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Lukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster

Lukas 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

Mehr

Design Patterns. 5. Juni 2013

Design Patterns. 5. Juni 2013 Design Patterns 5. Juni 2013 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Refactoring und Design Patterns: Welchen Zusammenhang gibt es

Mehr

Design Patterns 2. Model-View-Controller in der Praxis

Design Patterns 2. Model-View-Controller in der Praxis Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden

Mehr

Entwurfsmuster (Design Patterns)

Entwurfsmuster (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

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr

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

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

Mehr

Design Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff

Design 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:

Mehr

8 Design Patterns. Events

8 Design Patterns. Events 8 Design Patterns. Events Jörn Loviscach Versionsstand: 28. März 2015, 19:13 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

am Beispiel von JUnit

am Beispiel von JUnit Aufbau eines Testwerkzeugs am Beispiel von JUnit Üblicher Ansatz für Tests und Fehlersuche: Print-Befehle, Debugger-Ausdrücke, Test-Skripte möglichst über globale Variable debug steuerbar Command Pattern

Mehr

Inhaltsverzeichnis. Vorwort Geleitwort von Grady Booch Einleitung... 23

Inhaltsverzeichnis. Vorwort Geleitwort von Grady Booch Einleitung... 23 Vorwort.................................................. 17 Geleitwort von Grady Booch................................. 21 Einleitung................................................ 23 1 Einführung...............................................

Mehr

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26

Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26 Design Patterns (Software-Architektur) Prof. Dr. Oliver Braun Letzte Änderung: 11.07.2017 15:12 Design Patterns 1/26 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides:

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Design Pattern - Strukturmuster CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Agenda Einleitung Strukturmuster Fassade Model View Controller Vergleich 2 Einleitung Strukturmuster

Mehr

3. Konzepte der objektorientierten Programmierung

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

Mehr

Software-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Software-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Software-Architektur Design Patterns Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 11.07.2017 15:12 Inhaltsverzeichnis Standardwerk.................................... 2 Design

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

SDD System Design Document

SDD System Design Document SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen

Mehr

4. AuD Tafelübung T-C3

4. AuD Tafelübung T-C3 4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

SWE5 Übungen zu Software-Engineering

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

Mehr

Analyse und Modellierung von Informationssystemen

Analyse 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

Mehr

Analyse und Modellierung von Informationssystemen

Analyse 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

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Entwurfsmuster - Iterator & Composite

Entwurfsmuster - 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

Mehr

SE Besprechung. Übung 4 Architektur, Modulentwurf

SE Besprechung. Übung 4 Architektur, Modulentwurf SE Besprechung Übung 4 Architektur, Modulentwurf SE, 22.11.11 Mengia Zollinger 2.1 Architekturstile (6 Punkte) 2.1.A Ausgabe eines Monatsabos an Angestellte Lösung: Pipe-and-Filter Beispiel Lösung [Benz,

Mehr

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen 1 Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen In moneyplex lässt sich ein Konto und ein Bankzugang nur einmal anlegen. Wenn sich der Bankzugang geändert hat oder das Sicherheitsmedium

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Objektorientiertes JavaScript

Objektorientiertes JavaScript Objektorientiertes JavaScript Christoph Fabritz dm121506@fhstp.ac.at http://goo.gl/jzqxnw Inhalt JavaScript Objektorientierung OO in JavaScript Literatur JavaScript Interpretiert / gescriptet Dynamische

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Software Engineering II

Software Engineering II Software Engineering II 9 Entwurfsmuster Prof. Dr. Dirk Müller Übersicht Einführung Geschichte Anforderungen und Nutzen Grundlegende Elemente Alphabetischer GoF-Katalog 11 GoF-Muster im Detail Nachteile

Mehr

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

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

Mehr

U08 Entwurfsmuster (II)

U08 Entwurfsmuster (II) U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange

Mehr

Objektorientierte und Funktionale Programmierung SS 2014

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

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

BIF/SWE - Übungsbeispiel

BIF/SWE - Übungsbeispiel BIF/SWE - Übungsbeispiel Arthur Zaczek Feb 2015 1 Allgemein 1.1 Ziele Ziele dieses Übungsbeispieles ist es: GUI: Implementierung einer grafischen Oberfläche mit JavaFX oder WPF UI-Komponente: Implementierung

Mehr

Structural Patterns. B. Sc. Andreas Meißner

Structural Patterns. B. Sc. Andreas Meißner Structural Patterns B. Sc. Andreas Meißner Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Systeme, Universität Hannover 11/16/2004 Gliederung 1. Wiederholung Entwurfsmuster

Mehr

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

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

Mehr

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Applet Firewall und Freigabe der Objekte

Applet Firewall und Freigabe der Objekte Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable

Mehr

3 Objektorientierte Konzepte in Java

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

Mehr

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

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

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter Prof. Dr. Dr. h.c. Manfred Broy Sommersemester Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter Einführung in die Softwaretechnik Übung 6: Feinentwurf Aufgabe 17: Entwurfsmuster

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Acceptor-Connector. Acceptor-Connector

Acceptor-Connector. Acceptor-Connector Acceptor-Connector Das Acceptor-Connector Pattern trennt den Verbindungsaufbau zwischen zwei Peer-Services und der Verarbeitung, welche bei bestehender Verbindung durchgeführt wird. Kontext Ein Netzwerksystem

Mehr

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum

Mehr

Elektrischer Widerstand

Elektrischer Widerstand In diesem Versuch sollen Sie die Grundbegriffe und Grundlagen der Elektrizitätslehre wiederholen und anwenden. Sie werden unterschiedlichen Verfahren zur Messung ohmscher Widerstände kennen lernen, ihren

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Software Engineering II (IB) Design Patterns

Software Engineering II (IB) Design Patterns Software Engineering II (IB) Design Patterns Prof. Dr. Oliver Braun Letzte Änderung: 16.05.2017 20:56 Software Engineering II (IB), Design Patterns 1/43 Standardwerk Gang of Four: Erich Gamma, Richard

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

macs Support Ticket System

macs Support Ticket System macs Support Ticket System macs Software GmbH Raiffeisenstrasse 8 78658 Zimmern ob Rottweil Tel. (0741)9422880 1 ALLGEMEIN... 3 2 ABLAUF TICKET-SYSTEM... 4 2.1 Ticket Erstellung... 4 2.2 Ablauf... 4 2.3

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??

Mehr

SharePoint Demonstration

SharePoint Demonstration SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Unified Modeling Language (UML)

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

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Kapitel 6. Vererbung

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

Mehr

Klassendiagramm. (class diagram)

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

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Software Engineering II (IB) Design Patterns

Software Engineering II (IB) Design Patterns Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 16.05.2017 20:56 Inhaltsverzeichnis Standardwerk.................................... 2 Erzeugungsmuster.................................

Mehr