Klassen, Entitäten, Generalisierung, Information Expert Bla bla bla bla

Ähnliche Dokumente
Übungen Softwaretechnik I

Objektorientierte Programmierung

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

Exceptions und Vererbung

Praxisbuch Objektorientierung

Einführung in die Programmierung für NF MI. Übung 12

Grundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.

Einführung in die Programmierung für NF. Übung

(Ausnahmebehandlung)

Objektorientierte Programmierung OOP

Objektorientierte Programmierung III

Praxis der Programmierung

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Design Richtlinien

Grundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling)

OOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten.

Kapitel 9. Ausnahmebehandlung in Java. Skript zur Vorlesung Einführung in die Programmierung

Java als erste Programmiersprache

Programmiermethodik 1. Klausur

Ausnahmen. Dr. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Verteilte Systeme - Java Networking (Sockets) 2 -

Objektorientierte Programmierung

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmebehandlung. (exceptionhandling) in C++

Johannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2

Datenzugriffskomponente mit JPA 2.1

Objektorientiertes Programmieren in C++

Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt.

Einführung in die Programmiersprache Java II

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

Einstieg in die Informatik mit Java

Java als erste. Programmiersprache. Java 2 Plattform. Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer. 2., durchgesehene Auflage

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

11 Objektorientierte Programmierung, Teil 2

Vorlesung Informatik II

Programmierkurs. SoSe Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.

15. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2

Überblick. Überblick zum weiteren Inhalt

Umgang mit Fehlern. Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen

Ausnahmen (Exceptions)

Vererbung und Polymorphie

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

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Inhalt. TEIL I Grundlagen. Einleitung 15

Inhaltsverzeichnis. 4.9 Aufgaben... 63

Einstieg in die Informatik mit Java

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

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2

9. Fehler und Ausnahmen Grundlagen der Programmierung 1 (Java)

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer

Programmierkurs. Steffen Müthing. January 18, Interdisciplinary Center for Scientific Computing, Heidelberg University

Ausnahmen. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

Objektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen

Programmieren 2 C++ Überblick

Programmieren in Java

9. Vererbung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Einführung in die Systemprogrammierung

Einführung: Verteilte Systeme - Remote Method Invocation -

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp

Vererbung, Polymorphie

Kapitel 9: Klassen und höhere Datentypen. Selektoren

Das Einsteigerseminar Objektorientierte Programmierung in Java

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

Programmierparadigmen

1 Fehler-Objekte: Werfen, Fangen, Behandeln

Programmieren in Java

Lehrbuch der Objektmodellierung

Inhaltsverzeichnis. Vorwort

Programmierpraktikum 3D Computer Grafik

Objektorientiertes Design

Mögliche Implementierung von intern():

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierter Entwurf. Grundlagen des Software Engineerings

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Programmierparadigmen A01 OOP. Programmierparadigmen

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

Abschnitt 7: Weitere Konzepte der oo Programmierung in Java

15 Fehlerobjekte: Werfen, Fangen, Behandeln

15 Fehlerobjekte: Werfen, Fangen, Behandeln. Idee. Fehlerklassen. Fehlerklassen

Einführung in die prozedurale und objektorientierte Programmierung (3)

Objektorientierte Programmierung II

Objektorientiertes Programmieren II

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

7. Zusammenfassung (1)

C++ - Objektorientierte Programmierung Vererbung

Objektorientierte Programmierung in Java

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 16/ / 854

15 Fehlerobjekte: Werfen, Fangen, Behandeln

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Transkript:

Design Richtlinien

Klassen, Entitäten, Generalisierung, Information Expert Bla bla bla bla

Entitäten/Value Objects/Aggregation Dateien Generalisierung

Schichtenarchitektur ein häufig angewandtes Strukturierungsprinzip für die Architektur von Softwaresystemen Aspekte einer höheren Schicht nur solche tieferer Schichten verwenden dürfen die Trennung von Fachkonzept, Benutzungsoberfläche und Datenhaltung

Schichtenarchitektur Präsentationsschicht Benutzerschnittstelle Businessschicht Controller Entities Repositories Datenhaltungsschicht Daten Laden und Speichern

Problemstellung Schreibe ein Programm, das alle Daten von Studenten verwaltet. (CRUD-Operationen) Feature F1. Studenten einfügen F2. Studenten lesen F3. Studenten finden F4. Studenten löschen

Entitäten Objekt!= Entität? (eigentlich nicht!) ein Objekt hat eine Reihe ihm eigener dynamischer Funktionen, Operationen und Methoden Entitäten sind Objekte mit einer eindeutigen Identifizierung verwechselter Identitäten führt zu Datenfälschung

Entitäten

Value Objects Objekte, die keine eindeutige Identifizierung haben zb: Farben/Adressen Es kommt immer auf den Anwendungsfall an!

Value Objects

Aggregation die Zusammensetzung einer Entität aus einer Menge von Value Objects Repositories? StudentRepository AddressRepository

Dateien und Python benötigt man die open()-funktion Mit der open-funktion erzeugt man ein Dateiobjekt und liefert eine Referenz auf dieses Objekt als Ergebniswert zurück open(filename,mode) Mode: "r", "w", "a"

Dateien und Python Methoden write (str) readline () read () close () Exception IOError

Pickle Den Funktionen, die Pickle anbietet, kann man wirklich nahezu jedes Objekt anbieten, Pickle kann es speichern.

Dynamische Typisierung bezeichnet den Umstand, dass Typprüfungen vorrangig zur Laufzeit eines Programms durchgeführt werden Duck-Typing der Typ eines Objektes nicht durch seine Klasse beschrieben wird, sondern durch das Vorhandensein bestimmter Methoden oder Attribute

Duck-Typing 'Wenn ich einen Vogel sehe, der wie eine Ente läuft, wie eine Ente schwimmt und wie eine Ente schnattert, dann nenne ich diesen Vogel eine Ente.'

Duck-Typing

Duck-Typing

Vererbung beschreibt eine Beziehung zwischen einer allgemeinen Klasse (Basisklasse) und einer speziellen Klasse die spezialisierte Klasse ist vollständig konsistent mit der Basisklasse, enthält aber zusätzliche Informationen (Attribute, Methoden, Assoziationen) ein Objekt der spezialisierten Klasse kann überall dort verwendet werden, wo ein Objekt der Basisklasse erlaubt ist

Reuse von Cod Reused Code bestehender Code wird als Blackbox in das neue Programm übernommen (unmodified reuse) Adapted Code bestehender Code wird adaptiert und angepasst, das bedeutet man muss den Code verstehen (modified reuse)

Vererbung Überladen vs Überschreiben

Vererbung Überschreiben beschreibt eine Technik in der objektorientierten Programmierung, die es einer abgeleiteten Klasse erlaubt, eine eigene Implementierung einer von der Basisklasse geerbten Methode zu definieren Überladen Es gibt kein Überladen von Funktionen und Methoden in Python

FileRepositories

Methoden überschreiben

Ausnahmebehandlung Eine Ausnahme ist eine Ausnahmesituation (Fehler), die sich während der Ausführung eines Programmes einstellt. Lässt man diese zu, so stürzt das Programm ab! Fängt man diese ab (Ausnahmebehandlung), läuft das Programm weiter!

Exceptions allgemeiner Mechanismus zur Fehlerbehandlung

Exceptions allgemeiner Mechanismus zur Fehlerbehandlung SyntaxError es ist ein syntaktischer Fehler im Quelltext IOError eine Datei existiert nicht, man darf nicht schreiben, die Platte ist voll IndexError in einer Sequenz gibt es das angeforderte Element nicht KeyError ein Mapping hat den angeforderten Schlüssel nicht ValueError eine Operation kann mit diesem Wert nicht durchgeführt werden

Exceptions Exceptions kann man behandeln was hinter try kommt, wird ausgeführt, bis ein Fehler auftritt was hinter except kommt, wird nur ausgeführt, wenn im try-statement eine Exception der angegebenen Art aufgetreten ist

Exceptions hinter except können ein oder mehrere Exception-Typen stehen

Exceptions sind teuer try/catch-blöcke verändern das Laufzeitverhalten nicht, solange keine Exceptions ausgelöst werden sind teuer, wenn die Exception ausgelöst wird

Ausnahmebehandlung

Ausnahmebehandlung

Ausnahmebehandlung

Schichtenarchitektur