• Keine Ergebnisse gefunden

Übung 02

N/A
N/A
Protected

Academic year: 2022

Aktie "Übung 02"

Copied!
11
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Übung 02

Responsibility Driven Design

(2)

http://www.hwk-chemnitz.de/fileadmin/user_upload/ausbildung/Pruefungen/Gesellenpruefungen/Fragezeichen.JPG

(3)

1. Responsibility Driven Design

Klassen

• Finden von Nomen Phrasen

• Kategorisierung & Verfeinerung

Verantwortlichkeiten

• Wissensverwaltung

• Ausführbare Aktionen

• Öffentliche Leistungen

Führen Sie eine detaillierte Analyse durch und finden Sie mit ihrer Hilfe alle Klassen, Verantwortlichkeiten, Kollaborationen und Beziehungen. Begründen Sie Ihre Entscheidung.

Kollaborationen

• Kann die Klasse die Verantwortlichkeit selbstständig erfüllen?!

Beziehungen

• Is-part-of

• Has-knowledge-of

• Is-kind-of

(4)

1.1 RDD: Klassen

Die neue Bildbearbeitungssoftware intelliPhoto ist ein interaktives Tool zum Anzeigen und Bearbeiten von Bildern. Jedes Bild wird durch ein zweidimensionales Array von Bytes repräsentiert, wobei jeder Byte-Wert für einen Farbwert des Bildpunktes steht. Der Benutzer soll in der Lage sein die Bilddimensionen abzufragen. Es sollen zwei verschiedene Arten von Bildern repräsentiert werden können: "RasterImage" und "ShapedImage", wobei letzteres eine Spezialform vom

"RasterImage" ist. Ein "ShapedImage" besitzt eine nicht-rechteckige Form (Polygon), wobei die Bytes im Array angeben, ob die jeweiligen Punkte transparent oder opak dargestellt werden sollen.

Darüber hinaus soll die Software einfache Manipulationen von Bildern erlauben. So soll das Drehen, als auch das Vergrößern und Verkleinern von Bildern, das Setzen neuer Farbwerte im Bild und das Zusammenfügen zweier Bilder zu einem neuen Bild innerhalb von 0.2 Sekunden möglich sein.

(5)

1.1 RDD: Klassen

Die neue Bildbearbeitungssoftware intelliPhoto ist ein interaktives Tool zum Anzeigen und Bearbeiten von Bildern. Jedes Bild=Interface/Klasse wird durch ein zweidimensionales Array=Impl.-Detail von Bytes repräsentiert, wobei jeder Byte-Wert=Impl.-Detail für einen Farbwert=nicht explizit modelliert des Bildpunktes=nicht explizit modelliert steht. Der Benutzer=nicht explizit modelliert soll in der Lage sein die Bilddimensionen=Attribut abzufragen. Es sollen zwei verschiedene Arten von Bildern repräsentiert werden können: "RasterImage“=Klasse und "ShapedImage“=Klasse, wobei letzteres eine Spezialform vom "RasterImage" ist. Ein "ShapedImage" besitzt eine nicht-rechteckige=Klasse Form=Klasse (Polygon=Klasse), wobei die Bytes im Array angeben, ob die jeweiligen Punkte=Klasse transparent oder opak dargestellt werden sollen. Darüber hinaus soll die Software einfache Manipulationen=Methoden von Bildern erlauben. So soll das Drehen, als auch das Vergrößern und Verkleinern von Bildern, das Setzen neuer Farbwerte im Bild und das Zusammenfügen zweier Bilder zu einem neuen Bild innerhalb von 0.2 Sekunden möglich sein.

(6)

1.2 RDD: Verantwortlichkeiten

Die neue Bildbearbeitungssoftware intelliPhoto ist ein interaktives Tool zum Anzeigen und Bearbeiten von Bildern. Jedes Bild wird durch ein zweidimensionales Array von Bytes repräsentiert, wobei jeder Byte-Wert für einen Farbwert des Bildpunktes steht. Der Benutzer soll in der Lage sein die Bilddimensionen abzufragen. Es sollen zwei verschiedene Arten von Bildern repräsentiert werden können: "RasterImage" und "ShapedImage", wobei letzteres eine Spezialform vom

"RasterImage" ist. Ein "ShapedImage" besitzt eine nicht-rechteckige Form (Polygon), wobei die Bytes im Array angeben, ob die jeweiligen Punkte transparent oder opak dargestellt werden sollen.

Darüber hinaus soll die Software einfache Manipulationen von Bildern erlauben. So soll das Drehen, als auch das Vergrößern und Verkleinern von Bildern, das Setzen neuer Farbwerte im Bild und das Zusammenfügen zweier Bilder zu einem neuen Bild innerhalb von 0.2 Sekunden möglich sein.

(7)

1.2 RDD: Verantwortlichkeiten

Die neue Bildbearbeitungssoftware intelliPhoto ist ein interaktives Tool zum Anzeigen=Methode und Bearbeiten von Bildern. Jedes Bild wird durch ein zweidimensionales Array von Bytes repräsentiert, wobei jeder Byte-Wert für einen Farbwert des Bildpunktes steht. Der Benutzer soll in der Lage sein die Bilddimensionen abzufragen. Es sollen zwei verschiedene Arten von Bildern repräsentiert werden können: "RasterImage" und "ShapedImage", wobei letzteres eine Spezialform vom

"RasterImage" ist. Ein "ShapedImage" besitzt eine nicht-rechteckige Form (Polygon), wobei die Bytes im Array angeben, ob die jeweiligen Punkte transparent oder opak dargestellt werden sollen.

Darüber hinaus soll die Software einfache Manipulationen von Bildern erlauben. So soll das Drehen=Methode, als auch das Vergrößern=Methode und Verkleinern=Methode von Bildern, das Setzen neuer Farbwerte=Methode im Bild und das Zusammenfügen zweier Bilder=Methode zu einem neuen Bild innerhalb von 0.2 Sekunden möglich sein.

(8)

1.3 RDD: Zusammenfassung

Klassen

• Bild/Image

• RasterImage

• ShapedImage

• Form / Shape

Rechteck

Polygon

• Punkt / Point

Verantwortlich- keiten

• zeichnen

• vergrößern

• verkleinern

• rotieren

• einfärben

• zusammenfügen

Beziehungen

• RasterImage is kind of Image

• ShapeImage is kind of RasterImage

• Dimension is part of Image

• Rectangle is kind of Shape

• Polygon is kind of Shape

• Manipulations has knowledge of Image

Kollaborationen

• Image kann seine

Verantwortlichkeiten selbst erfüllen

• Sehr gute Kapselung der Daten möglich!

• Weitere Verantwortlich- keiten sind nicht zu berücksichtigen

(9)

1.4 RDD: Klarstellung

• Klasse BildManipulation (Tools) vorgeschlagen

• SkalierungsTool

• DrehTool

• VereinigungsTool

• ...

• ABER BildManipulation müsste Zugriff auf die interne „private“ Repräsentation von Image haben!

 jede andere Klasse könnte demnach auch darauf zugreifen

Hohe Koppelung

Bricht Konzept der Kapselung / Information Hiding

 Image weiß selbst am Besten, wie es damit umgehen soll

 Lösung: Vertrag (Interface) schaffen

(10)

2. Kapselung

• Details der Implementierung bleiben nach außen verborgen (interne Datenstruktur, Typen, ...)  Black-Box-Modell

• Programmierer muss nur die vom Objekt unterstützten Methoden und deren Parameter kennen

• Implementierung der Operation, die durch eine Methode ausgeführt wird, ist für den Benutzer nicht relevant  Änderung dieser Operation beeinträchtigt nicht die Zusammenarbeit der Klassen

• Das Objekt ist für die Ausführung der in der Methode entsprechenden Operationen verantwortlich

• Leichtere Testbarkeit, da nur öffentliche Schnittstellen getestet werden müssen

• Übersichtlicher, klarer strukturiert, stabiler

Was versteht man unter dem Begriff Kapselung im Kontext der (Objektorientierten) Programmierung? Welche Vorteile bringt dieses Konzept mit sich?

(11)

http://www.hwk-chemnitz.de/fileadmin/user_upload/ausbildung/Pruefungen/Gesellenpruefungen/Fragezeichen.JPG

Referenzen

ÄHNLICHE DOKUMENTE

Frage: Unter welchen Bedingungen bleibt einer dieser periodischen Orbits unter St¨ orungen erhalten. Paul Platenius Die

Zur nassen Verbrennung der Substariz werden 3 bis 6 mg in ein Mikro-Kieldahl—Kölbchen eingewogen (s. In das Zersetzungskölbchen füllt man weiters 0,5 ccm konzentrierte Schwefelsäure,

und Methoxylgehaltes einer Substanz kann nur dann erfolgen, wenn höhere Alkoxylverbindungen (Propyl, Butyl) nicht vor- handen sind. Man kann jedoch auch höhere

Das Verfahren selbst kann darüber hi- naus als Analyse-Instrument genutzt werden, um sich auch selbst einen Überblick über die Schwer- punkte des eigenen Unterrichts verschaffen: Wenn

Das Wasser wurde durch Glühen (5 Minuten lang) des lufttrocknen Gesteins über der Deville'schen Lampe bestimmt.. auch das letztere bestimmt. Diese Bestirnmungsweise

Aus Definition 3.2 folgt sofort, dass eine Funktion f genau dann nach unten halbstetig ist, wenn −f nach oben halbstetig ist.. Allgemeiner kann man nach unten (oben) halbstetig auch

Auf der nächsthöheren Stufe, auf welcher die Bataillons- und Abteilungskommandanten ausgebildet werden, zeigt sich wiederum die gleiche Unterteilung des Lehrstoffes in zwei

5 Parallelenpostulat: Wenn eine gerade Linie beim Schnitt mit zwei geraden Linien bewirkt, dass die innen auf derselben Seite entstehenden Winkel zusammen kleiner als zwei Rechte