Objektorientierter Entwurf (OOD)

Größe: px
Ab Seite anzeigen:

Download "Objektorientierter Entwurf (OOD)"

Transkript

1 Wie komme ich zu einem guten Entwurf? Definition: Der beste Entwurf ist derjenige, der über die gesamte Lebenszeit der Software minimale Kosten verursacht. Oder Ein schlechter Entwurf erzeugt hohe Wartungskosten Problematisch wird es immer dann, wenn sich Entwurfsentscheidungen hinsichtlich Qualitätsmerkmalen gegenseitig beeinflussen: Erhöhung der Flexibilität geht häufig einher mit einer Verringerung der Verständlichkeit. Seite 1

2 Drei Ansätze führen zu einem guten Entwurf: Einsatz von bekannten Prinzipien und Heuristiken, die zu robusten, flexiblen und wieder verwendbaren Entwürfen führen. Die zwei bekanntesten sind: Information hiding (Parnas), auch Kapselung, Abstraktion genannt Geringe Kopplung Verwendung von Metriken, die einen Entwurf aus einem festzulegenden Blickwinkel beurteilen. Dadurch kann die Komplexität verringert und die Verständlichkeit erhöht werden. Die bekannteste ist die Cyclomatische Komplexität (McCabe) Zu guter letzt haben wir natürlich noch die bekannten Entwurfs-Muster (design pattern) Und nicht zu vergessen: Bei mehreren Lösungsalternativen ist die einfachste zu wählen. Seite 2

3 Beispiel: Ausleihe von Videofilmen. Ziel: Es soll ein System zur Rechnungserstellung entworfen werden. Kunde, Ausleihe und Videofilm werden jeweils durch Klassen modelliert. Dem Kunden sind seine Ausleihen zugeordnet, während jede Ausleihe den ausgeliehenen Videofilm und die Ausleihdauer (in Tagen) kennt. Ein Videofilm hat einen Preiscode, der zusammen mit der Leihdauer den Preis bestimmt. Es gibt Preiscodes für normale Filme, Kinderfilme und neue Filme. Der Preiscode eines Videofilmes kann sich ändern, daher gibt es in der Klasse Videofilm eine Methode setzepreiscode(). 1. Entwurf: Es erscheint sinnvoll, die Erstellung einer kundenspezifischen Rechnung in der Klasse Kunde vorzunehmen und dazu alle erforderlichen Informationen bei den Klassen Ausleihe und Videofilm einzuholen. Seite 3

4 Seite 4

5 Diskussion des 1. Entwurfs: Dieses Vorgehen ist ein Verstoß gegen die Regel, unnötige Kopplungen zu vermeiden, siehe Benutz-Beziehung im Klassendiagramm: Auf einem Objekt, das von einer anderen Klasse (Ausleihe) als Resultat eines Methodenaufrufs (holevideofilm) geliefert wurde, wird eine Methode (ermittlepreis) aufgerufen. Außerdem erscheint es sinnvoll, die Preisberechnung für einen(!) Ausleihvorgang in der Klasse Ausleihe durchzuführen. 2. Entwurf: Die Preisberechnung wird geteilt und sowohl in der Klasse Ausleihe als auch in der Klasse Videofilm durchgeführt. (Diagramme nächste Seite) Diskussion des 2. Entwurfs: Zwischen den Klassen bestehen weniger Kopplung (Kunde weiß nichts mehr von Videofilm) und die Kapselung von Ausleihe und Videofilm wurde verbessert, da die drei get- Methoden (holeausleihdauer, holevideofilm, holepreis) entfallen können. Jedoch ist die Berechnung des Rechnungsbetrages nun über drei Klassen verschmiert, so dass man drei Klassen betrachten muss, um den Algorithmus vollständig nachvollziehen zu können. Seite 5

6 Seite 6

7 3. Entwurf: Unter Einbeziehung des Design Patterns State (zustandsabhängiges Verhalten in separaten Objekten) wird die Preisberechnung in eine abstrakte Klasse Preis ausgelagert. Fallunterscheidung nach dem Preiscode durch dynamisches Binden. Seite 7

8 Diskussion des 3. Entwurfs: Diese Lösung ist einfacher (als der 2. Entwurf) um neue Preiscodes zu erweitern, auch Änderungen in der Preisberechnung sind einfacher durch zu führen. Dafür jedoch hat sich die Anzahl der Klassen mehr als verdoppelt und damit hat sich die Verständlichkeit verringert. Seite 8

9 Schlussfolgerungen: Die Änderungen der Entwürfe von 1 nach 3 dienten der Entkopplung und damit der Änderbarkeit. Jedoch verschlechtert sich die Verständlichkeit dadurch, dass die Anzahl der Klassen ansteigt. Es wird Flexibilität eingebaut, die aber nur dann wirklich sinnvoll ist, wenn sich die Preiscodes tatsächlich ändern werden. Die Güte des Entwurfs hängt somit auch vom Kontext der Software ab. Empfehlung: Grundsätze wie Entkopplung und Kapselung von Details und von (sich wahrscheinlich ändernden) Entwurfsentscheidungen sollten immer beachtet werden. Flexibilität, insbesondere durch Entwurfsmuster (design pattern) ist oft teuer, da der vorhandene Entwurf geändert werden muss, und sollte erst dann eingebaut werden, wenn sie benötigt wird. Seite 9

10 Teil 4: Modeling in Colors Web: The core chapter on this subject is posted at Book: Java Modeling in Color with UML by Coad, Lefebvre, and De Luca Objective: To learn and apply four colors (four archetypes) for building better object models The four colors: A pink moment-interval A yellow role A green party-place-thing A blue description Seite 10

11 Teil 4: Modeling in Colors four archetypes: overview A party (person or organization), a place or a thing <<thing>> PartyPlaceThing <<description>> Description A catalogentry-like description A way of participating in something <<role>> Role <<moment-interval>> MomentInterval A moment in time or an interval of time that you need to track or do something about Seite 11

12 Teil 4: Modeling in Colors A domain-neutral building block <<thing>> PartyPlaceThing serialnumber customvalue enforcemultirolerules getcustomelsestandard <<role>> Role 1 0..* assignednumber 1 0..* status assessperformance enforcerolerules 0..* 1 <<moment-interval>> MomentInterval number datetime calctotal comparewithanother 1 <<description>> Description type description itemnumber defaultvalue What color to choose? Is it a moment or interval? Yes -> it s pink. Is it a role played? Yes -> it s yellow. Is it a catalog-entry-like description? Yes -> it s blue. Otherwise, it s a party, place, or thing -> it s green. 1..* <<mi-detail>> MIDetail quantity Seite 12

13 Teil 4: Modeling in Colors An automotive related example <<thing>> Person Name Adresse lieferehalterschaften entziehefahrerlaubnis <<role>> Halter 1 0..* Ausweisnummer 1 1 Status lieferestrafpunkte kassierestrafpunkte 1 <<moment-interval>> Zulassung Kennzeichen Zul.-Datum berechnezugel.-zeit isthistor.fahrzeug 1 <<description>> MB-PKW-Modell Typ Baureihe Achszahl 1 1..* 1 <<thing>> PKW FZ-Ident Sonderausstattung lieferebesitzer liefereerstzulassung * <<mi-detail>> Saison-Zul. Jahr Zeitraum Seite 13

14 Teil 5: MDA Von PIM zu PSM: Typumwandlung Einbau der get- und set-methoden Einbau von void Von PSM zum Code: Sichtbarkeit Explizite return-parameter (bei get-methoden) Explizite Aufruf-Parameter (bei set-methoden) Einbau der Objekt-Referenz PIM PSM Code Generiere PSM Generiere Code MDA = Model driven architecture, PIM = Platform independent model, PSM = Platform specific model Seite 14

15 PIM Teil 5: MDA Die Generierung wird gesteuert durch Verwendung von Stereotypen, die der Generator auswertet Seite 15

16 PSM (für Java) Teil 5: MDA Seite 16

17 Code Teil 5: MDA public class Kfz { private String bezeichnung; private int anzahl_tueren; private double co2_ausstoss; public double getco2_ausstoss(){ return co2_ausstoss; } /*@param newval */ public void setco2_ausstoss(double newval){ co2_ausstoss = newval; } public void fahren(){ } } public class Besitzer { private String name; private Vector fahrzeug; public Besitzer(String name){ } public Vector getfahrzeug(){ return fahrzeug; } newval */ public void setfahrzeug(vector newval){ fahrzeug = newval; } } Seite 17

Objektorientierter Entwurf (OOD) Übersicht

Objektorientierter Entwurf (OOD) Übersicht Inhalt: Übersicht Seite Anbindung einer relationalen Datenbank 02 Qualitätsmodell (Flexibilität vs. Verständlichkeit) 07 Modeling in Colors 16 MDA 20 Design Pattern 24 Seite 1 Anbindung an die Datenhaltung

Mehr

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

Creational 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

Mehr

MDA auf der Grundlage der OMG Konzepte

MDA auf der Grundlage der OMG Konzepte MDA auf der Grundlage der OMG Konzepte Tutorial auf der GI-Jahrestagung GI2010 Siegfried Nolte Beethovenstraße 57 22951 Bargteheide 04532 24295 0176 49954432 siegfried@siegfried-nolte.de www.siegfried-nolte.de

Mehr

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

Parameterübergabemechanismen für den Methodenaufruf

Parameterübergabemechanismen für den Methodenaufruf Methode, griech. der Weg zu etwas, planmäßiges Verfahren -Brockhaus Parameterübergabemechanismen für den Methodenaufruf Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw

Mehr

Grundlagen der Programmierung in C Klassen

Grundlagen der Programmierung in C Klassen Grundlagen der Programmierung in C Klassen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple address pointer reference structured integral

Mehr

7. Objektorientierung. Informatik II für Verkehrsingenieure

7. Objektorientierung. Informatik II für Verkehrsingenieure 7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete

Mehr

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich UML / Fujaba Generierung von Java-Quellcode aus UML-Diagrammen Marcel Friedrich Agenda Einleitung Struktur Verhalten Klassendiagramme Storydiagramme Statecharts Action methods 2 Thema Codegenerierung mit

Mehr

Selbststudium Programmieren & Algorithmen OOP1 FS13 Hochschule Luzern Technik & Architektur

Selbststudium Programmieren & Algorithmen OOP1 FS13 Hochschule Luzern Technik & Architektur Selbststudium OOP1 Kapitel 1.2 Creating Objects 1. zu bearbeitende Aufgabe: 1.1 2. Wie kann dem Objekt ein eigener Name gegeben werden? Beim Erstellen (Instanz) von einem Objekt kann resp. muss der Name

Mehr

Software-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere)

Software-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();

Mehr

Softwaretechnik WS 16/17. Übungsblatt 01

Softwaretechnik WS 16/17. Übungsblatt 01 Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and

Mehr

Software-Engineering im Sommersemester 2014

Software-Engineering im Sommersemester 2014 Methodische Grundlagen des Software-Engineering SS 2014 Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl

Mehr

MDA-Praktikum, Einführung

MDA-Praktikum, Einführung MDA-Praktikum, Einführung Prof. Dr. Peter Thiemann Universität Freiburg 02.11.2005 Was ist MDA? MDA = Model-Driven Architecture Initiative der OMG Object Management Group: CORBA, UML,... offenes Firmenkonsortium

Mehr

VL4: Softwareprojekt - Modellierung/Design Teil 2. Inhalt. 1. Einleitung

VL4: Softwareprojekt - Modellierung/Design Teil 2. Inhalt. 1. Einleitung Dozent: G.Döben-Henisch PPmP VL4 VL4: Softwareprojekt - Modellierung/Design Teil 2 (Wegen Klausur verkürzte Vorlesung) Inhalt 1. Einleitung 2. Modellierung dynamischer Eigenschaften: ppmp2ps-pim2 3. Übersetzung

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

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

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

Mehr

Objektorientes Design & Programm

Objektorientes Design & Programm Objektorientes Design & Programm Ziele Motivation für OO-Design Softwarekomponenten mit Objektbeschreibungen Klassen und Objekte Konstruktoren zum Erzeugen von Objekten Motivation Vermischung von Variablendeklarationen

Mehr

Inhalt. Motivation Techniken des MDE. Fallbeispiele

Inhalt. Motivation Techniken des MDE. Fallbeispiele ISE-Seminar 2012 Inhalt Motivation Techniken des MDE Computer Aided Software Engineering (CASE) Domain-Specific-Languages (DSL) Model Driven Architecture (MDA) Fallbeispiele Motivation Automatische Codegenerierung

Mehr

Objektorientierte Systementwicklung

Objektorientierte 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

Mehr

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 12. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung,

Mehr

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

15 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

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Design Patterns I. Observer, Listener & MVC

Design Patterns I. Observer, Listener & MVC Design Patterns I Observer, Listener & MVC Design Patterns I - Gliederung - Was sind Design Patterns? - Definition von Design Patterns - Entstehung - Nutzen & Verwendung - MVC - Model, View, Controller

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

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE Nutzung des AMCS (Auditorium Mobile Classroom Service) https://amcs.website Einloggen/Registrieren mit beliebigem Pseudonym Passwort Kurs Softwaretechnologie PIN:

Mehr

Objektorientierteund FunktionaleProgrammierung

Objektorientierteund FunktionaleProgrammierung Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten

Mehr

Praktikum Experience Design From Experience Story to Scheme

Praktikum Experience Design From Experience Story to Scheme Praktikum Experience Design From Experience Story to Scheme Daniel Ullrich Stina Schick Folie: 1 Analysis of the elements of a story. Experience Design gernerates a story from the experience produced by

Mehr

Model Driven Development im Überblick

Model Driven Development im Überblick Model Driven Development im Überblick Arif Chughtai Diplom-Informatiker (FH) www.digicomp-academy, Seite 1 September 05 Inhalt Motivation Überblick MDA Kleines Beispiel Werkzeuge www.digicomp-academy,

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

Mehr

Labor Datenverarbeitung SS 2006

Labor Datenverarbeitung SS 2006 Labor Datenverarbeitung SS 2006 Versuch Speicherprogrammierbare Steuerungen Versuch Objektorientierter Entwurf mit Design-Pattern 1 SPS, Allgemeines Umfang der Versuche Logische Grundverknüpfungen kombinatorische

Mehr

Selbststudium OOP1 SW Programmieren 1 - H1103 Felix Rohrer

Selbststudium OOP1 SW Programmieren 1 - H1103 Felix Rohrer Kapitel 1.2 1. Aufgabe 1.1 Done 2. Wie kann dem Objekt ein eigener Name gegeben werden? Beim Erstellen (Instanz) von einem Objekt kann resp. muss der Name (kleingeschrieben) angegeben werden. Kapitel 1.3

Mehr

Kapitel

Kapitel 10.11.005 Kapitel 4-10.11.005 Lehrbeispiel: Sortieralgorithmus " Bubble Sort" Sortieren von Primitivtypen Der "Abstrakte Datentyp" Grundlagen der Objektorientierung: Abstraktion, Kapselung, Modularität,

Mehr

Model Driven Architecture

Model Driven Architecture Roland Petrasch Oliver Meimberg Model Driven Architecture Eine praxisorientierte Einführung in die MDA Mit Gastbeiträgen von Florian Fieber und Karsten Thoms dpunkt.verlag Inhaltsverzeichnis Vorwort 1

Mehr

Einführung in die Informatik II

Einfü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

Mehr

Objektorientierte und Funktionale Programmierung

Objektorientierte und Funktionale Programmierung Objektorientierte und Funktionale Programmierung SS 2013 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Objektorientierte und Funktionale Programmierung 1 PrüfungstermineOFP

Mehr

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA)

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA) UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA) IBM Software Group, Rational Austria 2011 IBM Corporation Agenda Was ist MDA und welche Probleme

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 Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList

Mehr

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

14. 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

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut 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

Malteser Computer Training

Malteser Computer Training Malteser Computer Training Workshop 5: Microsoft Word Content 1. What is Microsoft Word? 2 1.1 Exercise 1: Format a CV 3 1.2 Exercise 2: Cover Letter 6 1.3 Exercise 3: Invitation for a Birthday Party 8

Mehr

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch

Mehr

Model-Driven Software Engineering (HS 2011)

Model-Driven Software Engineering (HS 2011) Model-Driven Software Engineering (HS 2011) Dr. J. Küster Übungsblatt I Abgabe: Am 15.11.2011 vor der Vorlesung Voraussetzungen: Installation von Eclipse und Eclipse Modeling Framework Installation der

Mehr

14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung

14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung 275 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Klassen (Java) vs. Records (Pascal) 276 Pascal RECORDs in Pascal sind

Mehr

Informatik - Übungsstunde

Informatik - Übungsstunde Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 08-25.04.2018 Lernziele const: Reference const: Pointer vector: iterator using Jonas Lauener (ETH Zürich) Informatik

Mehr

Objekt-orientierte Programmierung

Objekt-orientierte Programmierung Objekt-orientierte Programmierung Eine (sehr) kurze Einführung Daniel Lübke Gliederung Motivation Grundlagen (Objekte, Klassen, Vererbung) Interfaces Klassenvariablen

Mehr

Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis

Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis Klaus Kusche, Juni 2013 Inhalt Was ist das? Warum braucht man das? Was bringt das? Wann hilft es noch? Realistisches Beispiel

Mehr

Generischer Modellvergleich mit EMF Compare

Generischer Modellvergleich mit EMF Compare Fakultät Informatik Hauptseminar Technische Informationssysteme SS2010 Generischer Modellvergleich mit EMF Betreuer: Dipl.-Inf. Uwe Ryssel Dresden, 16.07.2010 Gliederung 1. Motivation 2. Eclipse Modeling

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Die andere agile Methode

Die andere agile Methode Feature Driven Development Die andere agile Methode stefan.roock@akquinet.de, henning.wolf@akquinet.de, http://www.it-agile.de Herzlich Willkommen! Stefan Roock akquinet it-agile GmbH agile Projekte Coaching

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner

Mehr

Objektorientierte Konzepte

Objektorientierte Konzepte Objektorientierte Konzepte Objekt Klasse enthaltender Polymorphismus (Untertypen) Vererbung Objektorientierte Programmierung, Grundlagen und Ziele 1 Objekt Objekt kapselt Variablen und Routinen Interaktionen

Mehr

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D. Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c

Mehr

Selbststudium OOP6 & ALG1 Auftrag

Selbststudium OOP6 & ALG1 Auftrag Selbststudium OOP6 & ALG1 Auftrag Kapitel 5.2 1. zu bearbeitende Aufgabe: 5.1 done 2. Auf den Seiten 157/158 wird in der Methode start()ein while-loop verwendet. Kreieren Sie ein Code-Fragment mit derselben

Mehr

13. Java Klassen. Lernziele. Klassen - Technisch. Definition: Klassen

13. Java Klassen. Lernziele. Klassen - Technisch. Definition: Klassen Lernziele Sie können eigene Klassen/Datentypen erstellen. Sie verstehen, wie Objekte von Klassen instanziert und verwendet werden. Sie kennen den Begriff der Datenkapselung und können dies anwenden. 13.

Mehr

Programmiertechnik Objektorientierung

Programmiertechnik Objektorientierung Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche

Mehr

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

Decorator Pattern. Analyse- und Design-Pattern CAS SWE FS14. Roland Müller Samuel Schärer Decorator Pattern Analyse- und Design-Pattern CAS SWE FS14 Roland Müller Samuel Schärer Entwurfsmuster der «Gang of Four» Strukturmuster fassen Klassen und Objekte zu grösseren Strukturen zusammen Adapter

Mehr

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

Prof. 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

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 21 Beobachter-Muster 2 / 21 Das Beobachter-Muster Das Beobachter-Muster (observer,

Mehr

EAM-Vorlesung (SS2017)

EAM-Vorlesung (SS2017) EAM-Vorlesung (SS2017) V4: TOGAF und das Metamodel Vassilios Goumas Frankfurt University of Applied Science 1 V4: Verlauf Was ist ein Metamodell Aufbau des Metamodells in TOGAF Aufteilung nach Core Metamodel

Mehr

Delegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein

Delegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein Delegates «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen 2 Definition 3 Definition Ein Delegat

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-Driven Design: Ein einfaches Beispiel Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, Dirk Pattinson 05/03 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel

Mehr

Regionaltreffen Rhein-Main: 25 Jahre DOAG

Regionaltreffen Rhein-Main: 25 Jahre DOAG Regionaltreffen Rhein-Main: 25 Jahre DOAG Industrialisierung der IT Dr. Michael Faden Peter Welkenbach 17. September 2013 BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG

Mehr

Allgemeines - Prinzipien

Allgemeines - Prinzipien OOP - Prinzipien Allgemeines - Prinzipien OO modelliert die reale Welt als System interagierender Objekte Objekt = gedankliche oder reale Einheit in der Umwelt und/oder in Software Klar definierte Schnittstellen

Mehr

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 1 185.A01 OOP Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 2 OOP Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen

Mehr

Objektorientierung. Marc Satkowski 20. November C# Kurs

Objektorientierung. Marc Satkowski 20. November C# Kurs Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Java Übung. Übung Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Werner Gaulke.

Java Übung. Übung Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Werner Gaulke. Java Übung Übung 5 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 9. Mai 2006 (UniDUE) 9. Mai 2006 1 / 20 Beispiel Anforderungen: Klasse Mensch mit Attributen: Name, Alter, Laune, Geschlecht.

Mehr

Klausur Softwaretechnologie SS 2017

Klausur Softwaretechnologie SS 2017 Fakultät Informatik Institut für Software- und Multimediatechnik, Professur Softwaretechnologie Technische Universität Dresden, 01062 Dresden Klausur Softwaretechnologie SS 2017 Prof. Dr.rer.nat.habil.

Mehr

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish UML Klassendiagramm Igor Karlinskiy, Mikhail Gavrish Agenda Wichtigste Eigenschaften Syntaktische Elemente mit entsprechendem C++ Code Analysemodell Designmodell Quellen 2 Klassendiagramm gibt die Möglichkeit,

Mehr

I N F O R M A T I K UNIVERSITÄT LINZ. SWE1 / Übung 9. Schrittweise Verfeinerung

I N F O R M A T I K UNIVERSITÄT LINZ. SWE1 / Übung 9. Schrittweise Verfeinerung Schrittweise Verfeinerung Wiederholung Was ist Programmieren? Lösungsidee Algorithmische Lösung Programm programmieren Problemstellung Lösung in der Form eines korrekten Programm Testplan Testfälle Testprogramm

Mehr

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

FH 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

Mehr

Programmierung für Mathematik HS10

Programmierung für Mathematik HS10 Department of Informatics software evolution & architecture lab Programmierung für Mathematik HS0 Übung Aufgabe: Calculator Fortsetzung. Lernziele. Probleme mit Integer-Rechnung kennenlernen und Lösungen

Mehr

Kapitel Was ist ein Header? Was ist ein Body? Header: public Account(String newowner, int newpin)

Kapitel Was ist ein Header? Was ist ein Body? Header: public Account(String newowner, int newpin) Kapitel 2.6 1. Was ist ein Header? Was ist ein Body? Header: public Account(String newowner, int newpin) Body: Alles im Block darunter: [...] 2. Geben Sie die Methodensignaturen der TicketMachine (Code

Mehr

Model Driven Architecture (MDA)

Model Driven Architecture (MDA) Model Driven Architecture (MDA) Vortrag im Fach Software Engineering II BA Mannheim / Fachrichtung Angewandte Informatik Torsten Hopp Gliederung Einleitung Motivation Grundzüge der MDA Ziele & Potenziale

Mehr

6. Globalübung (zu Übungsblatt 8)

6. Globalübung (zu Übungsblatt 8) 6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006

Mehr

Ersetzbarkeit und Verhalten

Ersetzbarkeit und Verhalten Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void

Mehr

Ein Stern in dunkler Nacht Die schoensten Weihnachtsgeschichten. Click here if your download doesn"t start automatically

Ein Stern in dunkler Nacht Die schoensten Weihnachtsgeschichten. Click here if your download doesnt start automatically Ein Stern in dunkler Nacht Die schoensten Weihnachtsgeschichten Click here if your download doesn"t start automatically Ein Stern in dunkler Nacht Die schoensten Weihnachtsgeschichten Ein Stern in dunkler

Mehr

Erste Java-Programme (Java Wiederholung & Vererbung)

Erste Java-Programme (Java Wiederholung & Vererbung) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Java Wiederholung & ) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

14. Java Objektorientierung. Klassen, Vererbung, Kapselung 427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

4. Vererbung Die Klasse Object. Die Klasse Object

4. Vererbung Die Klasse Object. Die Klasse Object 4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Kapitel zu bearbeitende Aufgaben: 6.1 bis :

Kapitel zu bearbeitende Aufgaben: 6.1 bis : Kapitel 6.3.1 1. zu bearbeitende Aufgaben: 6.1 bis 6.5 6.1: 6.2: === Day 23 === 9: pause 10: 11: 12: 13: lunch 14: 15: 16: 17: meeting 6.3: 6.4: PRG1_OOP8_ALG3_SS.docx Seite 1 von 10 http://hslu.ximit.ch

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Exceptions. Prof. Dr.-Ing. Thomas Schwotzer 21. November 2017

Exceptions. Prof. Dr.-Ing. Thomas Schwotzer 21. November 2017 Exceptions Prof. Dr.-Ing. Thomas Schwotzer 21. November 2017 1 Einführung Wir können Algorithmen mittels Java implementieren. Wir können Methoden implementieren. Das ist gut. Was kann bei der Ausführung

Mehr

OOP. Tagesprogramm. Aspekte und Annotationen. Software-Entwurfsmuster. Factory-Method. Prototype

OOP. Tagesprogramm. Aspekte und Annotationen. Software-Entwurfsmuster. Factory-Method. Prototype 1 2017-01-11 Tagesprogramm Aspekte und Annotationen Software-Entwurfsmuster Factory-Method Prototype 2 2017-01-11 Aspekte und Annotationen Aspektorientierte Programmierung Paradigma der Modularisierung

Mehr

Informatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017

Informatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 1 Informatik II Übung 6 Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 Heutiges Programm 2 1 Klassen - Technisch 2 Prediscussion

Mehr

Softwareentwicklung Lösungen zu Programmierung von Klassen mit BlueJ

Softwareentwicklung Lösungen zu Programmierung von Klassen mit BlueJ Klasse, Objekt, Eigenschaften und Verhalten Aufgaben: 1. Erläutern Sie die im obigen Text fett gedruckten Worte. 2. Stellen Sie eine Klasse, die als Bauanleitung für Objekte vom Typ "frische Lebensmittel"

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats

Zweck: sequentieller Zugriff auf Elemente eines Aggregats Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche

Mehr

Model-View-Controller

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

Mehr

Max und Moritz: Eine Bubengeschichte in Sieben Streichen (German Edition)

Max und Moritz: Eine Bubengeschichte in Sieben Streichen (German Edition) Max und Moritz: Eine Bubengeschichte in Sieben Streichen (German Edition) Wilhelm Busch Click here if your download doesn"t start automatically Max und Moritz: Eine Bubengeschichte in Sieben Streichen

Mehr

Klausur Programmieren 2 SS 2016

Klausur Programmieren 2 SS 2016 Klausur Programmieren 2 SS 2016 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt

Mehr

Übersicht. Vorstellung des OO-Paradigmas

Übersicht. Vorstellung des OO-Paradigmas Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java

Mehr

Prepositions are words that give information to the reader. Vorwörter geben dem Leser Informationen.

Prepositions are words that give information to the reader. Vorwörter geben dem Leser Informationen. What is the role of prepositions? Prepositions are words that give information to the reader. They can tell us where something takes place when something takes place why something takes place or give a

Mehr

1. Hello, I m Francis Docherty. a. No, sorry. I m not. 2. I m sorry. What was your b. I don t think he

1. Hello, I m Francis Docherty. a. No, sorry. I m not. 2. I m sorry. What was your b. I don t think he A1 Hello, I m Francis Docherty. Was passt zusammen? 1. Hello, I m Francis Docherty. a. No, sorry. I m not. 2. I m sorry. What was your b. I don t think he name again? is at the moment. 3. Excuse me. Are

Mehr

Informatik I Eprog HS12

Informatik 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.

Mehr

Unified-E Standard WebHttp Adapter

Unified-E Standard WebHttp Adapter Unified-E Standard WebHttp Adapter Version: 1.5.0.2 und höher Juli 2017 Inhalt 1 Allgemeines... 2 2 Adapter-Parameter in Unified-E... 2 3 Symbolische Adressierung... 3 3.1 ReadValues-Methode... 4 3.2 WriteValues

Mehr