Software Engeneering 1 - HSR

J_ Ravi

J_ Ravi

Fichier Détails

Cartes-fiches 9
Langue Deutsch
Catégorie Informatique
Niveau Université
Crée / Actualisé 30.12.2014 / 24.07.2022
Lien de web
https://card2brain.ch/box/prinzipien_der_grasp_software_engeneering
Intégrer
<iframe src="https://card2brain.ch/box/prinzipien_der_grasp_software_engeneering/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

GRASP Pattern - Prinzip 1

INFORMATION EXPERT

Grundlegendstes Prinzip für die Zuordnung von Verantwortlichkeiten:
Gib die Verantwortlichkeit jener Klasse, welche die notwendigen Informationen besitzt, um die Verantwortung wahrzunehmen -> dem Information-Experten

GRASP Pattern - Prinzip 2

CREATOR

Wer erzeugt die Instanz einer Klasse?

Eine Klasse B soll die Klasse A instanziieren wenn

  • B eine Composition/Aggregation von A ist
  • B enthält A-Objekte
  • B erfasst A-Objekte
  • B verwendet A-Objekte (mit starker Kopplung)
  • B ist Information-Expert von A

GRASP Pattern - Prinzip 3

LOW COUPLING

Ziel ist es hier die Klassen voneinander so wenig wie möglich abhängig zu machen. Somit betrifft eine Änderung in einer Klasse nicht das ganze System, eine Klasse ist einfacher ersetzbar und Klasse kann einfacher wiederverwendet werden.

GRASP Pattern - Prinzip 4

HOHE COHESION (HOHE KOHÄSION)

Hier ist das Ziel, dass die Klasse möglich eine einzige Funktion macht bzw. dass die Verantwortlichkeiten einer Klasse sehr stark zusammenhängen.

GRASP Pattern - Prinzip 5

CONTROLLER

Hier wird die Frage beantwortet wer den System-Event behandelt -> der Controller

z.B. Facade-Controller, welcher alle Events behandelt (ein Interface für alles)

GRASP Pattern - Prinzip 6

POLYMORPHISMUS

Hier ist definiert wie man alternative Typen behandeln kann -> Wenn verhalten von Typ abhängt sollte man Typhierarchie bilden

GRASP Pattern - Prinzip 7

PURE FABRICATION

Hier werden Funktionalitäten behandelt welche zu keiner Klasse passen. Dann sollte eine neue (Factory-)Klasse erstellt werden, welche es in der realen Welt nicht gibt, sondern ausschliesslich diese Funktionalität implementiert.

GRASP Pattern - Prinzip 8

INDIRECTION

Wenn viele Klassen untereinder Kommunizieren erzeugen sie sehr schnell eine HOHE KOPPLUNG. Um diese zu vermeiden setzten wir "zwischen" den Klassen eine Klasse, sodass die anderen Klasse nicht direkt miteinander verbunden sind und so in der Lage sind leichter ersetzt zu werden.

GRASP Pattern - Prinzip 9

PROTECTED VARIATION

Wie kann man Objekte etc. entwerfen sodass Änderungen nicht unerwünscht auf andere Objekte etc. auswirken?

Die Lösung dazu ist Bereiche zu identifizieren, welche Änderungen unterworfen sind und diese vom Umgebung "abzuschotten".