Software Engeneering 1 - HSR


J_ Ravi
Diese Lernkarten bieten einen Überblick über die Grundprinzipien der Software-Entwicklung auf Universitätsniveau, mit Fokus auf GRASP-Patterns. Sie behandeln zentrale Konzepte wie Klassen, Verantwortlichkeiten, Kopplung und Kohäsion, sowie spezifische Muster wie Information Expert, Creator und Controller. Die Karteikarten sind ideal für Studierende der Informatik, die ihre Kenntnisse in objektorientierter Programmierung vertiefen und lernen möchten, wie man Software-Systeme effizient und wartbar gestaltet.
Karten
9
Lernende
3
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
30.12.2014 / 24.07.2022

Lernkarten

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

Lernen