7. Zusammenfassung (1)

Ähnliche Dokumente
3. Entwurfsmuster zur Entkopplung von Modulen

Objektorientierte Programmierung OOP

Objektorientierte Programmierung mit Java

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

3. Entwurfsmuster zur Entkopplung von Modulen. Übersicht zu Entwurfsmustern

Informatik II Übung 6 Gruppe 7

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Entwurfsprinzip. Entwurfsprinzip

Objektorientierte Programmierung. Kapitel 12: Interfaces

Design Patterns. 3. Juni 2015

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

Objektorientierte und Funktionale Programmierung SS 2014

Software Engineering

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

Java lernen mit BlueJ

Inhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung. Kapitel 1 Objekte und Klassen Objekte und Klassen Instanzen erzeugen Methoden aufrufen

Teil 2: OOP und JAVA (Vorlesung 11)

Programmieren I. Kapitel 8. Vererbung

Java 6 lernen mit Eclipse

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

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Design Patterns. 5. Juni 2013

Probeklausur: Programmierung WS04/05

10. Programmierungs-Phase: Objektorientierung Software Engineering

Wolmerin; Java lernen y. mit Eclipse 3. Galileo Computing

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Inhaltsverzeichnis ... Danksagung 11. Einführung 13. Wie Sie Ihr erstes objektorientiertes Programm schreiben 23

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET

Einführung in die Programmierung mit Java

Objektorientierte Entwurfsmuster

4. Programmbausteine, Bibliotheken und Programmgerüste

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Faustregeln zu Zusicherungen

SE Besprechung. Übung 4 Architektur, Modulentwurf

Die SOLID-Prinzipien Fünf Grundsätze für bessere Software

4. Programmbausteine, Bibliotheken und Programmgerüste. Unterschied zwischen Progammgerüst und Bausteinbibliothek ... Anwendung

Klassenbeziehungen & Vererbung

Java lernen mit BlueJ

FACHHOCHSCHULE MANNHEIM

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

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

Informatik II (D-ITET) Übungsstunde 6

Einstieg in die Informatik mit Java

Decorator Pattern. Analyse- und Design-Pattern CAS SWE FS14. Roland Müller Samuel Schärer

Objekt-Funktionale Programmierung. am Beispiel von SCALA. Thorsten Jolitz

Arten von Klassen-Beziehungen

Informationsverarbeitung im Bauwesen

Auf einen Blick. 1 Einführung Funktionen und funktionale Aspekte Objektorientierte Programmierung mit JavaScript...

Vorwort Einleitung Entstehung und Historie 18

Objektorientiertes Programmieren in C++

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

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

6. Jenseits von Java 6.1 Generik Generik: zusätzliche Ebene der Parametrisierung zur Übersetzungszeit

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Beziehungen zwischen Objekten

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches...

Objektorientierte Programmierung OOP

Prinzipien Objektorientierter Programmierung

Entwurfsmuster Martin Fesser 00IN

Klausur Grundlagen der Programmierung

2 Grundsätzliches zur objektorientierten Programmierung.. 33

Muster in der Software Technik. Grundlegende Konzepte der Software Entwicklung und Objekt Orientierung

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

Software-Architektur Design Patterns

Arten von Klassen-Beziehungen

Objektorientiertes JavaScript

Vererbung versus Delegation

Programmierkurs C++ Abstrakte Klassen und Methoden

Vorlesung Software aus Komponenten

Javakurs für Anfänger

Programmiertechnik II SS Fakultät Informatik Bachelor Angewandte Informatik

Model-View-Controller

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

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

Softwarepraktikum: Enigma

Einführung in die Informatik II

Programmieren I. Überblick Objektorientierung Heusch 12 Ratz 7. Institut für Angewandte Informatik

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Modellarbeit I: Entwurfsgerechte Klassenmodellierung

Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE

Objektorientiert in C++

Java Generics & Collections

Vererbung & Schnittstellen in C#

Design Pattern. Motivation, Beispiel Definition "Das" Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe

Funktionale Programmierung (in Clojure)

Softwaretechnik 2015/2016

Übungsaufgaben zum Software Engineering: Management

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design

- Antipatterns - der Softwareentwicklung. Tanja Brockmeier

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

Comparing Software Factories and Software Product Lines

Zwischenbericht Diplomarbeit Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen

Grundkurs Software- Entwicklung mit C++

Transkript:

Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung Rollen, Eigenschaften Schnittstellenabstraktion Programmentwicklung: Inkrementelle Weiterentwicklung Komposition statt Vererbung Varianten in mehreren Dimensionen Eingebettete Agenten 7. Zusammenfassung (1) Entwurfsmuster zur Entkopplung von Software Abstract Factory Factory Method Bridge Observer Strategy Bibliotheken Programmbausteine am Beispiel Ausnahmen Kopplung, Kohärenz Entkoppeln durch Interfaces, Funktoren Programmgerüste am Beispiel AWT OOP-7.1

Zusammenfassung (2) Entwurfsfehler OO Sprachkonzepte und ihr Einsatz Klassen - Objekte vs. Typen - Werte Missbrauch von Vererbung: Verkannter Schauspieler Attribute, Methoden, Konstruktoren Januskopf Zugriffsrechte Ungeplanter Anbau Schnittstelle, Implementierung AntiPatterns Vererbung, Subtyping The Blob Polymorphie, dyn. Methodenbindung OOP-7.2 Poltergeister Funktionale Zerlegung Spaghetti Code Üble Gerüche im Code Symptome für Refaktorisieren, Katalog Unangenehme OOP-Überraschungen Ursache: meist Überschreiben Jenseits von Java Konkatenation - Delegation Multiple Inheritance Selektives Erben Mixin Inheritance Varianten der Methodenbindung Prototypen statt Klassen

OOP-7.3 Verständnisfragen zur Objektorientierten Programmierung (1) 1. Erklären Sie, dass Subclassing und Subtyping unterschiedliche Relationen sind. 2. Erklären Sie Subtyping für Records, Funktionen, Variable, Arrays und Objekte. 3. Leiten Sie die Typregel für das Überschreiben aus dem Subtyping ab. 4. Vergleichen Sie Generik in C++ und Java. 5. Wie löst Generik das Typproblem für binäre Methoden? 6. Nennen Sie Paradigmen der Vererbung auf Entwurfsebene. 7. Was bedeuten Ersetzbarkeit und Subtyping beim Einsatz von Vererbung? 8. Nennen Sie einige Kriterien gegen die Anwendung von Vererbung. 9. Erklären Sie Vererbung zum Zwecke der Abstraktion. 10. Grenzen Sie die Vererbungsparadigmen Abstraktion und Spezialisierung gegeneinander ab. 11. Warum muss man beim Paradigma Abstraktion mehr als 2 Klassen zugleich betrachten? 12. Welches Design Pattern basiert auf dem Abstraktions-Paradigma? 13. Erklären Sie Vererbung zum Zwecke der Spezialisierung. 14. Grenzen Sie die Paradigmen Spezialisierung und inkrementelle Weiterentwicklung gegeneinander ab.

Verständnisfragen zur Objektorientierten Programmierung (2) 15. Welche Rolle spielt Spezialisierung bei Programmgerüsten? 16. Erklären Sie die Vererbungsparadigmen Rollen, Eigenschaften. 17. Erklären Sie das Schema der Delegation an implementierten Rollen. 18. Grenzen Sie die Paradigmen Rollen und Abstraktion gegeneinander ab. 19. Erklären Sie das Vererbungsparadigma Spezifikation. 20. Grenzen Sie das Paradigma Spezifikation gegen Spezialisierung, Abstraktion und Rollen ab. 21. Erklären Sie die Technik inkrementelle Weiterentwicklung. 22. Wie kann man Probleme der inkrementellen Weiterentwicklung vermeiden? 23. Unter welchen Umständen ist Komposition der Vererbung vorzuziehen? 24. Erklären Sie die Technik der Varianten in mehreren Dimensionen. OOP-7.4 25. Erklären Sie die Technik der eingebetteten Agenten. 26. Nennen Sie Entwurfsmuster, die speziell der Entkopplung von Software dienen. 27. Erläutern Sie das Entwufsmuster Abstract Factory. 28. Erläutern Sie das Entwurfsmuster Factory Method.

Verständnisfragen zur Objektorientierten Programmierung (3) 29. Erläutern Sie das Entwurfsmuster Bridge. 30. Erläutern Sie das Entwurfsmuster Observer. 31. Erläutern Sie das Entwurfsmuster Strategy. 32. Charakterisieren Sie unabhängige, eigenständige und eng kooperierende Bausteine. 33. Zeigen Sie das Zusammenspiel von Sprache und Bibliothek an Ausnahmen in Java. 34. Erklären Sie die Arten der Kopplung von Bausteinen. 35. Erklären Sie Entkopplung durch Interfaces und durch Funktoren. 36. Erklären Sie den Begriff der Koheränz. 37. Was charakterisiert ein Programmgerüst? 38. Geben Sie Beispiele für komplexes Zusammenwirken von Komponenten des AWT Programmgerüstes. OOP-7.5 39. Welche Rolle spielt die Software-Architektur eines Programmgerüstes? 40. Geben Sie Schemata für den Missbrauch von Vererbung an. 41. Charakterisieren Sie einige AntiPatterns. 42. Beschreiben Sie Ziele und Methoden des Refactoring.

OOP-7.6 Verständnisfragen zur Objektorientierten Programmierung (4) 43. Was bedeuten üble Code-Gerüche im Refactoring? geben Sie Beispiele. 44. Geben Sie Beispiele für versehentliches Überschreiben. Wie könnte man es vermeiden? 45. Geben Sie Empfehlungen für den Zugriff auf Attribute. 46. Stellen Sie Klassen und Objekte sowie Typen und Werte gegenüber. 47. Nennen Sie die 3 Situationen, die in Java zur dynamischen Methodenbindung führen. 48. Erläutern Sie die beiden Varianten der mehrfach indirekten Oberklassen in C++. 49. Erläutern Sie das selektive Erben in Eiffel. 50. Was bedeutet Mixin-Inheritance? 51. Erklären Sie das inner-prinzip aus Simula und Beta. 52. Was bedeutet Mehrfach-Dispatch? 53. Erklären Sie Prototyp-basierte Vererbung an JavaScript.