10. Programmierungs-Phase: Objektorientierung Software Engineering

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

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

Objektorientierte Programmierung OOP

Objektorientiertes Software-Engineering

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -

7. Analyse-Phase: Datenmodellierung Software Engineering

Objektorientierte Softwareentwicklung

Objektorientierte Programmierung (OOP)

Objektorientiertes Programmieren

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

Objektorientierung. Objekte

Objektorientierte Programmierung III

13. Qualitätsmanagement Software Engineering

Objektorientierte Programmierung OOP

UML -Klassendiagramme

Die Unified Modeling Language (UML)

Praxisbuch Objektorientierung

Konzept und Umsetzung

Objektorientierte Modellierung (1)

Übungen Softwaretechnik I

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Einführung Grundlagen der Programmierung 1 (Java)

Vererbung und Polymorphie

Software Engineering Klassendiagramme Einführung

Teil 2: OOP und JAVA (Vorlesung 11)

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

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken

Javakurs für Anfänger

Java-Programmierung mit NetBeans

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

Java: Vererbung. Teil 3: super()

Software-Entwicklung: Konzepte der Objektorientierung

Prof. Dr. Jürgen Giesl Lehr- und Forschungsgebiet Informatik 2. Proseminar - 1 -

Objektorientierte Programmierung

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

2. Java Schnellkurs Advanced Programming Techniques. Wintersemester 2009/10 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Vorlesung Programmieren

Vorlesung Programmieren. Programmiersprachen-Paradigmen. Programmierparadigmen. Eine Programmiersprache dient dem Aufschreiben von Algorithmen

Java Einführung Vererbung und Polymorphie. Kapitel 13

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

Programmiertechnik Objektorientierung

Programmieren in Java

Programmieren in Java

Geoinformation I Datenmodellierung

11. Komponenten Grundlagen der Programmierung 1 (Java)

C++ - Objektorientierte Programmierung Vererbung

Algorithmen und Programmierung II

Objektorientierte Programmierung Studiengang Medieninformatik

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

Javakurs für Anfänger

Informatik II Übung, Woche 17

Javakurs für Anfänger

Gliederung der Folien

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Sind Kühe Tiere? oder Was lehrt uns die Objektorientierung? Prof. Dr. Th. Letschert

Beziehungen zwischen Objekten

Programmieren 2 C++ Überblick

Javakurs für Anfänger

Einführung in die Programmierung

Einführung in die objektorientierte Programmierung

1.3 Geschichte der Programmiersprachen

Software- und Systementwicklung

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

Vorlesung Programmieren

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

1 Klassen und Objekte

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 -

UML (Unified Modelling Language) von Christian Bartl

Objektorientierte Programmierung Studiengang Medieninformatik

Softwaretechnik. Wesentliche Inhalte der Vorlesung

Objektorientierung (OO)

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

6. Globalübung (zu Übungsblatt 8)

Geschichte der Programmiersprachen

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck

5.2 Entity-Relationship-Modell

Klausur Grundlagen der Programmierung

UML Eine kurze Einführung

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

12. Rekursion Grundlagen der Programmierung 1 (Java)

3. Konzepte der objektorientierten Programmierung

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Begriffe 1 (Wiederholung)

8. Generics Grundlagen der Programmierung 1 (Java)

II.4.2 Abstrakte Klassen und Interfaces - 1 -

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Transkript:

10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005

Einordnung in den Kontext der Vorlesung 1. Einführung 2. Projektmodell 3. Vorgehensmodelle 4./5. Unified Modeling Language (UML) 6. Analyse-Phase: Geschäftsprozesse 7. Analyse-Phase: Datenmodellierung 8. Analyse-Phase: Dialoge 9. Design-Phase 10. Programmierungs-Phase 11. Test- / Integrations-Phase, Einführung 12. Projektmanagement 13. Qualitätsmanagement 15.12.2005, Seite 2

Agenda Agenda Programmiersprachen Klassen und Objekte Assoziationen und Vererbung Kontrollfragen 15.12.2005, Seite 3

Programmiersprachen Objektorientierte und andere Programmiersprachen ALGOL, AWK, BASIC, C, COBOL, FORTRAN, Pascal, PL/1, REXX, Cyclone 1 je Prozessortyp 6 5 Prozedurale Sprachen Assemblerund Maschinensprachen Programmiersprachen 2 Funktionale Sprachen 3 LISP, Logo, ML, Scheme, Haskell, OPAL, Miranda visuelle Programmierumgebungen (z.b. VisualBasic, Delphi), Datenbanksprachen (zum Beispiel SQL, dbase, Clipper) Sonstige Sprachen und Umgebungen 4 Logische und regelbasierte Sprachen Objektorientierte Sprachen Smalltalk, Eiffel, C++, Objective-C, Java, C#, Oberon, Python, Ruby Prolog OPS5, XSLT 15.12.2005, Seite 4

Agenda Agenda Programmiersprachen Klassen und Objekte Assoziationen und Vererbung Kontrollfragen 15.12.2005, Seite 5

Klassen und Objekte Klassen und Objekte Beispiel: Rind-Klasse und Elsa, Günter und Anja Rind Klasse (=Abstraktion) Objekte (Konkrete Eigenschaften) Elsa Günter Anja Aus Österreich: Objektorientierte Software-Entwicklung Oldenbourg 15.12.2005, Seite 6

Klassen und Objekte Klassen Klasse = Abstrakter Datentyp Eine Klasse beschreibt die Gemeinsamkeiten einer Menge von gleichartigen Objekten. Klasse = Abstraktion Sie ist eine Schablone für Objekte Sie definiert: Attribute und Methoden 15.12.2005, Seite 7

Klassen und Objekte Objekte Zustand: Ein Objekt hat Attribute, deren konkrete Werte sind der Zustand des Objekts (die Daten) Verhalten: Das Verhalten eines Objekts wird durch seine Operationen / Methoden beschrieben Identität: Jedes Objekt hat eine Identität, die es von anderen Objekten unterscheidet, sie ist unabhängig vom Zustand, Identität bleibt, selbst wenn alle Daten geändert werden 15.12.2005, Seite 8

Klassen und Objekte Klassen vs. Objekte Eine Klasse definiert die zentralen Eigenschaften (Attribute) und Fähigkeiten (Methoden) von Objekten ist eine Art Schablone für Objekte Ein Objekt verhält sich entsprechend der Klassendefinition hat einen Zustand ( = seine Attributwerte) radius: int xpos: int; ypos: int; Klasse Kreis setzeposition(x:int,y:int) darstellen() Objekt meinkreis:kreis radius=1 xpos = 100 ypos = 200 15.12.2005, Seite 9

Klassen und Objekte Verspäteter Leitspruch: Das beste Modell für eine Katze ist eine Katze. Möglichst dieselbe Katze. Norbert Wiener, 1945 15.12.2005, Seite 10

Klassen und Objekte Substantive = Klassen Grammatische Untersuchung des Pflichtenhefts Aufgabenstellung: Zu entwickeln ist ein einfacher Grafischer Editor Problemstellung (Vorstudie / Grobkonzept): Mit Hilfe eines grafischen Editors können Zeichnungen angefertigt werden. Es werden verschiedene Grafiksymbole wie Linie, Rechteck, Kreis usw. zur Verfügung gestellt, die selektiert und in die Zeichnung kopiert werden können. Der Editor erlaubt das Abspeichern und Laden erstellter Zeichnungen. 15.12.2005, Seite 11

Klassen und Objekte Verben = Methoden / Operationen Grammatische Untersuchung des Pflichtenhefts Aufgabenstellung: Zu entwickeln ist ein einfacher Grafischer Editor Problemstellung (Vorstudie / Grobkonzept): Mit Hilfe eines grafischen Editors können Zeichnungen angefertigt werden. Es werden verschiedene Grafiksymbole wie Linie, Rechteck, Kreis usw. zur Verfügung gestellt, die selektiert und in die Zeichnung kopiert werden können. Der Editor erlaubt das Abspeichern und Laden erstellter Zeichnungen. 15.12.2005, Seite 12

Klassen und Objekte Klassen in UML Klassenname Booch, Rumbaugh, Jacobson Attributname Attributtyp Methoden Kreis radius: int {radius > 0} xpos: int = 0; ypos: int = 0; setzeposition(x: int, y: int) darstellen() Zusicherung Initialwerte Parameter Software wie gemalt 15.12.2005, Seite 13

Klassen und Objekte Klassen und Objekte in Java // Klasse public class Kreis { } private int x; private int y; private int radius; public Kreis (int x, int y, int radius) { } public void setzeposition(int x, int y) { } public void darstellen() { } // Objekt Kreis k = new Kreis(100,200,1); Attribute Konstruktor Methoden 15.12.2005, Seite 14

Agenda Agenda Programmiersprachen Klassen und Objekte Assoziationen und Vererbung Kontrollfragen 15.12.2005, Seite 15

Assoziationen und Vererbung Assoziationen in UML Kardinalität Mensch 1 besitzt n Buch Name 15.12.2005, Seite 16

Assoziationen und Vererbung Assoziationen in Java Klassen müssen sich kennen class Mensch { Collection buecher; void lesen(); }; 15.12.2005, Seite 17

Vererbung Beispiel aus der Biologie: Taxonomie (Klassifikation) Assoziationen und Vererbung Insekten Flug-Insekten Ur-Insekten Ein Flügelpaar Zwei Flügelpaare Springschänze Borstenschwänze Libelle Beintastler Aus Österreich: Objektorientierte Software-Entwicklung Oldenbourg 15.12.2005, Seite 18

Assoziationen und Vererbung Was ist Vererbung? Wichtiges Merkmal der OO (Prinzip der Hierarchie) ist die Verwirklichung der is-a-beziehung Beispiel: Hund is-a Tier, Katze is-a Tier Varianten in OO-Sprachen: Implementierungsvererbung (man bekommt was geschenkt) Interfacevererbung (man muss was tun) Wird verwendet zur: Abstraktion (OO-Modellierung) Erweiterung von vorhandenem Code Restrukturierung, Zusammenfassung von vorhandenem Code 15.12.2005, Seite 19

Assoziationen und Vererbung Vererbung in UML Vererbung Kunde - name: Name + print() Oberklasse / Elternklasse / Basisklasse Unterklasse/ Kindklasse AuslandsKunde - land: Land + print() InlandsKunde - kontonr: String + print() - private # protected + public 15.12.2005, Seite 20

Vererbung in Java Assoziationen und Vererbung Kunde AuslandsKunde public class Kunde { public Kunde(String vorname, String nachnahme) { } // } public class AuslandsKunde extends Kunde { public AuslandsKunde(String vorname, String nachname,string land) { super(vorname, nachname); // } // } 15.12.2005, Seite 21

Agenda Agenda Programmiersprachen Klassen und Objekte Assoziationen und Vererbung Kontrollfragen 15.12.2005, Seite 22

Kontrollfragen Kontrollfragen Welche Familien von Programmiersprachen gibt es? Nennen Sie Beispiele für einzelne Programmiersprachen Was ist der Unterschied zwischen einer Klasse und einem Objekt? Was sind die wesentlichen Bestandteile einer Klasse? Was ist eine Assoziation? Wie wird sie in einer objektorientierten Sprache umgesetzt? Geben Sie ein Beispiel Was ist Vererbung? Wie wird sie in einer objektorientierten Sprache umgesetzt? Geben Sie ein Beispiel 15.12.2005, Seite 23