Softwaretechnik: Muster in der Analyse

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Was ist der Hauptzweck einer abstrakten Oberklasse im Software Engineering?

  • Die Flexibilität der Klassen zu verringern.
  • Code-Duplikation zu erhöhen.
  • Identische Attribute und Operationen in Gruppen zu separieren. (correct)
  • Die Komplexität des Codes zu erhöhen.

Was beschreibt die UML-Notation im Kontext von Mustern?

  • Sie visualisiert die Beziehungen zwischen verschiedenen Klassen. (correct)
  • Es werden keine spezifischen Details erfasst.
  • Sie beschreibt die Algorithmen in Programmiersprachen.
  • Die UML-Notation ist irrelevant für Software-Projekte.

Welches Element ist nicht Teil des Musters der abstrakten Oberklasse?

  • Operationen, die in mehreren Klassen identisch sind.
  • Eine Hierarchie von Klassen.
  • Konkrete Implementierungen der Klassen. (correct)
  • Gruppen identischer Attribute.

In welchem Szenario wäre die Verwendung einer abstrakten Oberklasse am sinnvollsten?

<p>Wenn mehrere Klassen identische Eigenschaften teilen. (D)</p> Signup and view all the answers

Welches der folgenden Produkte könnte als Exemplar einer Musteranwendung betrachtet werden?

<p>Ein Veranstaltungskalender mit verschiedenen Events. (A)</p> Signup and view all the answers

Was ist das Hauptziel des Refactorings in Modellen?

<p>Das Finden verbesserungswürdiger Strukturen (C)</p> Signup and view all the answers

Was beschreibt die Beziehung zwischen Exemplar und Beschreibung im gegebenen Modell?

<p>Eine Beschreibung kann von mehreren Exemplaren verwendet werden. (A), Ein Exemplar kann mehrere Beschreibungen haben. (C)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt das Muster 'Koordinator' korrekt?

<p>Eine Assoziation kann Attribute haben, die nicht zu den beteiligten Klassen gehören. (A)</p> Signup and view all the answers

Welche Rolle spielen Attribute mit Abhängigkeiten in relationalen Datenbankmodellen?

<p>Sie helfen bei der Definition von Beziehungen zwischen verschiedenen Entitäten. (A), Sie müssen durch separate Attribute ersetzt werden, um Normalisierung zu erreichen. (D)</p> Signup and view all the answers

In welchem Kontext werden typische Muster wie Refactoring angewendet?

<p>Um komplexe Modelle in einfachere und besser strukturierte Varianten zu transformieren. (A)</p> Signup and view all the answers

Was ist der Hauptunterschied zwischen einem Objektadapter und einem Klassenadapter?

<p>Der Klassenadapter ist an eine konkrete Klasse gebunden. (C), Der Objektadapter kann zur Laufzeit geändert werden. (D)</p> Signup and view all the answers

Was beschreibt allgemein anwendbare Muster?

<p>Sie sind universell und in verschiedenen Projekten anwendbar. (B)</p> Signup and view all the answers

Welches Muster gehört zu den domänenspezifischen Mustern?

<p>Kontostruktur im Finanzbereich (C)</p> Signup and view all the answers

Welche der folgenden Optionen beschreibt keine Art von Muster?

<p>Zusammenfassungsmuster (C)</p> Signup and view all the answers

Welche Phase folgt direkt nach der Analyse in der Softwaretechnik?

<p>Entwurf (A)</p> Signup and view all the answers

Was ist ein Beispiel für ein Sprachmuster?

<p>Java-Interfaces (A)</p> Signup and view all the answers

Wofür ist ein Adaptermuster typisch?

<p>Um die Interoperabilität zwischen inkompatiblen Schnittstellen zu ermöglichen. (D)</p> Signup and view all the answers

Was ist die Rolle von Architekturmustern in der Softwaretechnik?

<p>Sie bieten allgemeine Lösungen für häufige Designprobleme. (B)</p> Signup and view all the answers

Welches Merkmal ist typisch für Koordinator-Klassen?

<p>Sie besitzen wenige Attribute und Operationen und stehen mit mehreren Klassen in Verbindung. (D)</p> Signup and view all the answers

Was bedeutet die Multiplizität „0..*“ in Bezug auf die Assoziationsattribute?

<p>Es gibt eine unbestimmte Anzahl an Assoziationen zwischen den Klassen. (D)</p> Signup and view all the answers

Warum sind Koordinator-Klassen von Bedeutung in der Softwareentwicklung?

<p>Sie verhindern die direkte Zuordnung von Attributen zwischen anderen Klassen. (C)</p> Signup and view all the answers

Welche Aussage über die Koordinator-Klasse in Bezug auf die Buchungsdaten ist korrekt?

<p>Die Koordinator-Klasse hat eine Verbindung zu mehreren Klassen, einschließlich Buchungsdatum und Buchungsstatus. (B)</p> Signup and view all the answers

Welche der folgenden Aussagen über die Attribute einer Koordinator-Klasse ist falsch?

<p>Koordinator-Klassen sollten viele Attribute haben. (C)</p> Signup and view all the answers

Was ist das Hauptproblem, das ein Adaptermuster löst?

<p>Anpassung der Schnittstelle eines vorhandenen Objekts an eine gewünschte Schnittstelle (A)</p> Signup and view all the answers

Wie wird im Adaptermuster der Aufruf zwischen Target und Adaptee beschrieben?

<p>Adapter.request() ruft Adaptee.specificRequest() auf (B)</p> Signup and view all the answers

Welche der folgenden Aussagen ist richtig in Bezug auf die Implementierung des Adaptermusters in Java?

<p>Target muss ein Interface sein aufgrund der Mehrfachvererbung. (B)</p> Signup and view all the answers

Welche Beziehung besteht typischerweise zwischen den Methoden in Adaptee und Target?

<p>Die Methoden sind identisch, haben aber unterschiedliche Namen oder Argumentreihenfolgen. (C)</p> Signup and view all the answers

Was muss man beachten, wenn man das Verhalten des Musters in Code implementiert?

<p>Die Grundstruktur des Musters sollte in der Implementierung klar erkennbar sein. (C)</p> Signup and view all the answers

Was ist das Hauptproblem, das durch das Muster der Gruppenhistorie adressiert wird?

<p>Die Dokumentation der zeitlichen Zugehörigkeit eines Objekts zu verschiedenen Gruppen. (A)</p> Signup and view all the answers

Welche Rolle spielt die Zwischenklasse in der Lösung des Problems der Gruppenhistorie?

<p>Sie dokumentiert die Dauer der Zugehörigkeit eines Objekts zu einer Gruppe. (B)</p> Signup and view all the answers

Welches Attribut ist nicht Teil der Assoziationsklasse im Muster der Gruppenhistorie?

<p>Gruppenname (D)</p> Signup and view all the answers

Was beschreibt die Zugehörigkeit in der Assoziationsklasse laut dem Muster der Gruppenhistorie?

<p>Die Beziehung zwischen einem Mitglied und einer Gruppe. (A)</p> Signup and view all the answers

Welche Aussage über die Gruppenhistorie ist korrekt?

<p>Die Mitglieder können zu verschiedenen Zeitpunkten Gruppen zugeordnet werden. (D)</p> Signup and view all the answers

Welches Ziel wird durch Refactoring in Modellen angestrebt?

<p>Die Verbesserung der bestehenden Struktur (D)</p> Signup and view all the answers

Was beschreibt das Problem, das das Muster 'Koordinator' anspricht?

<p>Eine Assoziation mit nicht zugehörigen Attributen (A)</p> Signup and view all the answers

Welche der folgenden Eigenschaften beschreibt die Beziehung zwischen Exemplar und Beschreibung?

<p>Beschreibung kann mehrere Exemplare haben (D)</p> Signup and view all the answers

Welche Aussage beschreibt am besten die Rolle des Adapters im Adaptermuster?

<p>Er bindet ein bestehendes System an eine neue Schnittstelle an. (D)</p> Signup and view all the answers

Welches Attribut ist nicht Teil des Beispiels 'Veranstaltung'?

<p>teilnehmerzahl (D)</p> Signup and view all the answers

Welches Element ist ein typisches Merkmal des Adaptermusters?

<p>Target sollte ein Interface in Java sein. (A)</p> Signup and view all the answers

Welche Bedeutung hat die Multiplizität „0..*“ in Bezug auf die Assoziationsattribute?

<p>Es können null oder mehr Instanzen vorhanden sein (C)</p> Signup and view all the answers

Wie interagieren die Methoden im Adaptermuster typischerweise?

<p>Adapter ruft Adaptee-Methoden auf, um die gewünschte Funktionalität bereitzustellen. (C)</p> Signup and view all the answers

Warum können viele Operationen in Adaptee und Target unterschiedliche Namen haben?

<p>Da sie dieselbe Funktionalität aber unterschiedliche Anforderungen haben. (D)</p> Signup and view all the answers

Welche Aussage beschreibt universelle Muster am besten?

<p>Sie bieten Bausteine für die Modellierung anderer Muster. (B)</p> Signup and view all the answers

Welches der folgenden Beispiele könnte als spezifisches Muster gelten?

<p>Ein Katalog für betriebswirtschaftliche Anwendungen. (D)</p> Signup and view all the answers

Welches Ziel haben systematische Erkennungen im Musterkontext?

<p>Sie helfen, Kommunikationsbarrieren abzubauen. (B)</p> Signup and view all the answers

Für welche Phase in der Softwareentwicklung sind Muster in der Architektur am relevantesten?

<p>Designphase (C)</p> Signup and view all the answers

Wie können Informationen aus der Analyse genutzt werden?

<p>Um die Nutzung von bereits existierenden Mustern zu verbessern. (B)</p> Signup and view all the answers

Wie lösen Rollen-Klassen das Problem der Mehrfachzugehörigkeit von Objekten in Klassen?

<p>Sie führen eine separate Klasse mit passenden Attributen ein. (B)</p> Signup and view all the answers

Welche Herausforderung wird durch die Verwendung einer Rollen-Klasse adressiert?

<p>Die Behandlung mehrerer Einsatzarten für eine Klasse. (C)</p> Signup and view all the answers

Was ist eine der Funktionen der Rollen-Klasse im universellen Muster?

<p>Sie verknüpft verschiedene Einsatzbereiche von Objekten. (C)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt am besten die Multiplizität in Bezug auf Rollen?

<p>Sie gibt an, wie viele Objekte einer Rolle zugeordnet werden können. (D)</p> Signup and view all the answers

Was ist die Bedeutung der Attribute innerhalb der Rollen-Klasse?

<p>Sie spezifizieren die Eigenschaften der verschiedenen Rollen. (D)</p> Signup and view all the answers

Was beschreibt ein Muster im Kontext der Softwaretechnik?

<p>Eine schematische Lösung für eine Gruppe verwandter Probleme. (A)</p> Signup and view all the answers

Welche der folgenden Komponenten ist kein Teil der Darstellung eines Musters?

<p>Geheimes Passwort (A)</p> Signup and view all the answers

Was ist die Motivation hinter dem Adaptermuster?

<p>Um die Wiederverwendbarkeit von Klassen zu ermöglichen, wenn die Schnittstellen nicht übereinstimmen. (C)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt NICHT die Struktur eines Musters?

<p>Benutzerfragen (B)</p> Signup and view all the answers

Welche Aussage zu den Vor- und Nachteilen eines Musters ist korrekt?

<p>Die Diskussion umfasst Vor- und Nachteile sowie Abhängigkeiten und Einschränkungen. (C)</p> Signup and view all the answers

Welches Element gehört nicht zu den Bestandteilen eines Musters?

<p>Programmiersprachen (A)</p> Signup and view all the answers

Welche der folgenden Aussagen über die Anwendung von Mustern in der Softwareentwicklung ist nicht korrekt?

<p>Muster können nur in der Analysephase angewandt werden. (C)</p> Signup and view all the answers

Welche Funktion hat ein Muster in der Softwarearchitektur?

<p>Es ist eine schematische Lösung, die eine wiederkehrende Struktur beschreibt. (B)</p> Signup and view all the answers

Wie hilft das Composite-Muster bei der Strukturierung von Dokumenten in der Softwaretechnik?

<p>Es schafft eine Baumstruktur aus Komponenten, die gleichwertig sind. (B)</p> Signup and view all the answers

Welche Methode ist typischerweise Teil der DocumentElement-Klasse im Composite-Muster?

<p>getChild() (C)</p> Signup and view all the answers

Welches Element müsste in ein Klassendiagramm integriert werden, um die Verwaltung der Struktur zu verbessern?

<p>Die Column-Klasse. (B)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt eine wichtige Operation in der Verwendung des Composite-Musters?

<p>addChild() fügt ein neues Element zu einem Container hinzu. (A)</p> Signup and view all the answers

Welche Eigenschaft ist typisch für ein DocumentElement im Zusammenhang mit Dateizugriff?

<p>Es kann auf Metadaten von Dateien zugreifen. (C)</p> Signup and view all the answers

Wie können spezialisierte Unterklassen von DocumentElement strukturiert werden?

<p>Sie können als Blätter oder Container fungieren. (A)</p> Signup and view all the answers

Was beschreibt die Funktionalität der getProtection()-Methode im Kontext des Composite-Musters?

<p>Sie gibt die Zugriffsrechte eines Elements wieder. (D)</p> Signup and view all the answers

Was ist eine gemeinsame Operation, die im Composite-Muster genutzt wird?

<p>getChild() zur Abfrage von Kind-Elementen. (C)</p> Signup and view all the answers

Flashcards

Adapter-Muster

Ein Entwurfsmuster, das die Schnittstelle eines Objekts an eine gewünschte Schnittstelle anpasst.

Adaptee

Die ursprüngliche Klasse, deren Schnittstelle angepasst werden soll.

Target

Die gewünschte Schnittstelle, die nach der Anpassung verwendet werden soll.

Adapter

Eine Klasse, die die Adaptee-Schnittstelle in die Target-Schnittstelle übersetzt.

Signup and view all the flashcards

specificRequest()

Eine Methode der Adaptee-Klasse, die die eigentliche Funktionalität implementiert.

Signup and view all the flashcards

Wofür ist ein Adapter-Muster?

Das Adapter-Muster wird verwendet, um eine bereits vorhandene Klasse (Adaptee) an die Schnittstelle (Target) einer anderen Klasse anzupassen.

Signup and view all the flashcards

Objektadapter

Ein Objektadapter verwendet Vererbung, um die Schnittstelle des Adapters an die des Targets anzupassen. Der Adapter delegiert dann Anfragen an das Adaptee.

Signup and view all the flashcards

Klassenadapter

Ein Klassenadapter verwendet Komposition, um das Adaptee im Adapter zu kapseln und die Methoden des Adapters dann an die Methoden des Adaptees zu delegieren.

Signup and view all the flashcards

Was ist ein Design Pattern?

Ein Entwurfsmuster ist eine wiederverwendbare Lösung für ein wiederkehrendes Problem in einem bestimmten Kontext.

Signup and view all the flashcards

Muster in verschiedenen Phasen des Software-Lebenszyklus

Es gibt Muster für verschiedene Phasen des Software-Lebenszyklus, wie z.B. Analyse, Entwurf, Implementierung, Test und Wartung.

Signup and view all the flashcards

Muster für verschiedene Bereiche der Softwareentwicklung

Es gibt Muster für verschiedene Bereiche der Softwareentwicklung, wie z.B. Architektur, Sprache, Test

Signup and view all the flashcards

Was ist der Unterschied zwischen universellen und domänenspezifischen Mustern?

Muster können universell oder domänenspezifisch sein. Universelle Muster sind allgemeingültig, während domänenspezifische Muster auf bestimmte Domänen spezialisiert sind.

Signup and view all the flashcards

Abstrakte Oberklasse

Ein Entwurfsmuster, das die gemeinsame Funktionalität von Klassen in einer abstrakten Oberklasse zusammenfasst.

Signup and view all the flashcards

Universelles Muster

Ein universelles Entwurfsmuster, das Probleme mit redundanten Attributen und Operationen in Klassen löst.

Signup and view all the flashcards

Koordinator-Klasse

Eine Klasse, die verwendet wird, um Beziehungen zwischen anderen Klassen zu koordinieren und zu verwalten, ohne dass diese Klassen direkt miteinander interagieren müssen.

Signup and view all the flashcards

Assoziations-Attribut

Ein Attribut, das die Verbindung zwischen zwei Klassen darstellt und Beziehungen zwischen Objekten beschreibt.

Signup and view all the flashcards

Multiplizität 0..*

Die Multiplizität „0..*“ in einem Klassendiagramm zeigt an, dass ein Objekt der einen Klasse mit null oder mehreren Objekten der anderen Klasse in Beziehung stehen kann.

Signup and view all the flashcards

Eigenschaften von Koordinator-Klassen

Koordinatorklassen haben in der Regel wenige eigene Attribute und Operationen. Sie dienen hauptsächlich der Steuerung und Koordination von Beziehungen zwischen anderen Klassen.

Signup and view all the flashcards

Bedeutung der Multiplizität 0..*

Es gibt keine Notwendigkeit, Attribute einer Klasse der anderen Klasse zuzuordnen, wenn eine „0..*“ Multiplizität zwischen ihnen besteht.

Signup and view all the flashcards

Gruppenhistorie-Muster

Ein Entwurfsmuster, das die historische Entwicklung eines Objekts innerhalb verschiedener Gruppen festhält.

Signup and view all the flashcards

Zugehörigkeitsklasse

Eine Zwischenklasse, die die Zugehörigkeit eines Objekts zu einer Gruppe repräsentiert. Sie enthält typischerweise Attribute wie Start- und Enddatum.

Signup and view all the flashcards

Mitglied

Die Klasse, die der Gruppe angehört.

Signup and view all the flashcards

Gruppe

Die Klasse, zu der das Mitglied gehört.

Signup and view all the flashcards

Startdatum

Ein Attribut der Zugehörigkeitsklasse, das den Zeitpunkt des Beginns der Zugehörigkeit eines Objekts zu einer Gruppe angibt.

Signup and view all the flashcards

Was ist ein Entwurfsmuster?

Ein Entwurfsmuster ist eine wiederverwendbare Lösung für ein wiederkehrendes Problem in einem bestimmten Kontext. Es beschreibt bewährte Praktiken und Lösungsansätze für häufig auftretende Herausforderungen in der Softwareentwicklung.

Signup and view all the flashcards

Wofür wird das Adapter-Muster verwendet?

Das Adapter-Muster dient dazu, die Schnittstelle eines vorhandenen Objekts (Adaptee) an die Schnittstelle einer anderen Klasse (Target) anzupassen. So können Klassen mit unterschiedlichen Schnittstellen miteinander kommunizieren.

Signup and view all the flashcards

Welche Bestandteile hat ein Muster?

Ein Muster hat verschiedene Bestandteile, die es beschreiben: Name, Problem (Motivation, Anwendungsbereich), Lösung(en) (Struktur, Bestandteile, Beschreibung, z.B. Abläufe), Diskussion (Vor- und Nachteile), Beispielanwendungen und Verwandte Muster.

Signup and view all the flashcards

Was ist ein Software-Muster?

Ein Muster ist eine schematische Lösung für eine Gruppe verwandter Probleme. Es beschreibt Erfahrungswissen aus der Softwareentwicklung und bietet bewährte Lösungsansätze.

Signup and view all the flashcards

Wo sind Muster im Software-Lebenszyklus relevant?

Muster sind in verschiedenen Phasen des Software-Lebenszyklus relevant, z.B. Analyse, Entwurf, Implementierung, Test und Wartung. Sie helfen, Aufgaben in jeder Phase effizienter zu gestalten.

Signup and view all the flashcards

Was unterscheidet universelle und domänenspezifische Muster?

Muster können universell oder domänenspezifisch sein. Universelle Muster gelten für verschiedene Bereiche der Softwareentwicklung, während domänenspezifische Muster auf bestimmte Anwendungsgebiete spezialisiert sind.

Signup and view all the flashcards

Warum sind Muster nützlich in der Softwareentwicklung?

Muster beschreiben Erfahrungswissen und bieten bewährte Vorgehensweisen. Sie helfen, Fehler zu vermeiden, Wiederverwendung zu fördern und die Qualität der Software zu verbessern.

Signup and view all the flashcards

Koordinator-Muster?

Ein Entwurfsmuster, das das Problem von Attributen in einer Assoziation löst, die zu keiner der beteiligten Klassen gehören. Die Lösung besteht darin, eine separate Klasse zu erstellen, die diese Attribute enthält und mit beiden Klassen assoziiert ist.

Signup and view all the flashcards

Universelles Muster: Koordinator

Das Koordinator-Muster ist ein universelles Muster, das in verschiedenen Bereichen der Softwareentwicklung eingesetzt werden kann. Es löst das Problem von Attributen, die nicht zu den beteiligten Klassen gehören, und ermöglicht eine klarere und flexiblere Modellierung.

Signup and view all the flashcards

Rollenmuster

Das Rollenmuster wird verwendet, um eine Klasse mit verschiedenen Einsatzmöglichkeiten zu modellieren, ohne redundante Attribute oder Operationen zu erzeugen. Es ermöglicht die effiziente Verwaltung von Objekten mit unterschiedlichen Rollen innerhalb eines Systems.

Signup and view all the flashcards

Rolle

Die Rolle ist eine eigenständige Klasse, die mit einem Attribut (z.B. "Rollenname") die spezifische Aufgabe oder Funktion eines Objekts innerhalb eines Systems repräsentiert.

Signup and view all the flashcards

Implementierung Rollenmuster

Das Rollenmuster wird implementiert, indem eine eigene Rolle als separate Klasse definiert wird. Die Klasse, die verschiedene Rollen ausfüllen kann, assoziiert dann mit der Rollenklasse. So lässt sich eine flexible und übersichtliche Modellierung von Objekten mit verschiedenen Einsatzmöglichkeiten erreichen.

Signup and view all the flashcards

Composite-Muster

Ein Entwurfsmuster, bei dem ein Objekt eine komplexere Struktur aus individuellen Komponenten darstellt, die selbst wieder Composite-Objekte sein können.

Signup and view all the flashcards

Vorteil des Composite-Musters

Die Verwendung des Composite-Musters ermöglicht es, eine einheitliche Schnittstelle für die Manipulation von einzelnen und zusammengesetzten Objekten zu verwenden.

Signup and view all the flashcards

Anwendung im Dateisystem

Mit dem Composite-Muster lassen sich hierarchische Strukturen, wie z. B. Verzeichnisse in einem Dateisystem, modellieren.

Signup and view all the flashcards

Flexibilität des Composite-Musters

Das Composite-Muster ermöglicht flexible und effiziente Verwaltung von komplexen Strukturen.

Signup and view all the flashcards

Darstellung im Klassendiagramm

Im Klassendiagramm für das Composite-Muster wird die Beziehung zwischen den Komponenten und dem Composite-Objekt mit einer „*“-Verbindung dargestellt.

Signup and view all the flashcards

Schnittstelle

Das Composite-Muster bietet eine einfache und effiziente Möglichkeit, mit komplexen Objekten zu interagieren, indem es eine einheitliche Schnittstelle bereitstellt.

Signup and view all the flashcards

Methode getWidth()

Die Methode getWidth() wird im Composite-Muster verwendet, um die Breite eines Objekts abzufragen, unabhängig davon, ob es sich um eine einzelne Komponente oder ein komplexes zusammengesetztes Objekt handelt.

Signup and view all the flashcards

Methode getChild()

Die Methode getChild() dient dazu, ein spezifisches Kind-Element aus einem Composite-Objekt abzurufen.

Signup and view all the flashcards

Was ist ein Koordinator-Muster?

Ein Koordinator-Muster löst das Problem von Attributen, die nicht zu den beteiligten Klassen gehören, in einer Assoziation. Die Lösung besteht darin, eine separate Klasse zu erstellen, die diese Attribute enthält und mit beiden Klassen assoziiert ist.

Signup and view all the flashcards

Study Notes

Vorlesung Softwaretechnik

  • Die Vorlesung behandelt Muster in der Softwareentwicklung, insbesondere in der Analysephase.
  • Der Dozent ist Prof. Bernhard Rumpe vom Software Engineering der RWTH Aachen.
  • Die Webseite der Vorlesung ist http://www.se-rwth.de/.
  • Die Vorlesung umfasst verschiedene Phasen der Softwareentwicklung (Analyse, Entwurf, Implementierung, Test, Integration, Wartung).
  • Die behandelten Mustern umfassen Anforderungs- und Systemmodellierung.
  • Literatur beinhaltet "Design Patterns", "Analysis Patterns" und "Building Object-Oriented Applications".

Warum, Was, Wie und Wozu? Muster in der Analyse

  • Warum? Bessere Softwarestrukturen erstellen, Effizienz und Wiederverwendung steigern.
  • Was? Muster in der Analyse, die 7 Muster genauer betrachtet werden.
  • Wie? Problem und Lösung, abstraktes Prinzip und Beispiel
  • Wozu? Struktur in die Software bringen, bessere Basis fürs Design

Softwaretechnik 5.1. Muster-Begriff

  • Die Vorlesung deckt die verschiedenen Aspekte von Software-Mustern ab, wie Analyse, Entwurf, Implementierung, Test, Integration und Wartung.
  • Die Literatur beinhaltet Werke wie „Design Patterns“ (Gamma et al.), und „A System of Patterns“ (Buschmann et al.).

Muster für besseren Entwurf / Analyse / Architektur

  • Ein Muster ist eine schematische Lösung für eine Gruppe verwandter Probleme, die Erfahrungswissen beschreibt.
  • Die Darstellung eines Musters umfasst Name (evtl. Synonyme), Problem, Motivation, Anwendungsbereich, Lösungs-Struktur (Klassendiagramm), Bestandteile (schematische Klassen- und Objektnamen), Beschreibung, Diskussion (Vor- und Nachteile, Abhängigkeiten, Einschränkungen), Beispielanwendungen und verwandte Muster.

Beispiel: Text zu „Adapter“ (1) & (2)

  • Adapter-Muster: Adaptiert eine bestehende Klasse/Schnittstelle auf eine andere gewünschte Schnittstelle.
  • Nutzen: Wenn eine bestehende Klasse nicht die gewünschte Schnittstelle besitzt, kann ein Adapter verwendet werden, um die Schnittstelle anzupassen.
  • Applicability: Verwenden des Adapters, wenn eine bestehende Klasse/Schnittstelle verwendet werden muss, deren Schnittstelle aber nicht passt oder wenn eine reusable Klasse mit nicht verwandten Klassen zusammenarbeiten muss.
  • Structure: zwei Klassendiagramme + weitere Informationen (1 Seite Text), 2 Seiten Text mit Klassendiagrammen, 3 Seiten Text mit C++ Beispielen, 1 Seite Beispiele, 1/4 Seite Text: konkrete Muster & Unterschiede.

Strukturmuster Adapter | Variante 1: Objektadapter

  • Name: Adapter (auch Wrapper)
  • Problem: Anpassung der Schnittstelle eines Objekts (Adaptee) auf eine gewünschte Schnittstelle (Target).
  • Lösung: Ein Adapter-Objekt vermittelt zwischen dem Adaptee und dem Client, um die Schnittstelle anzupassen.

Objektadapter-Beispiel (1)

  • Schönheitsfehler? BestellungIF-Interface: Die Schnittstelle hat vielleicht einen Schönheitsfehler (ungeschickte/unnötige Methoden), ein mögliches Problem kann die Anforderung/Verarbeitung von Bestellungen verbessern.

Objektadapter Beispiel

  • Adapter/Bestellung: Die Lösung dient dazu, die ArrayList in dem BestellIF-Adapter zu verwenden, sodass sowohl Add- als auch Delete-Funktionen benutzt werden können.

Objektadapter-Beispiel in UML (3)

  • Das UML-Diagramm zeigt die Beziehung zwischen Target, Adaptee und Adapter-Klassen.

Anwendung eines Musters

  • Kein mechanisches Pattern Matching, sondern eher Ãœbertragung der Idee des Musters.
  • Grundstrukturen des Musters sollten wiederzufinden sein, ggf. Anpassungen an vorhandene Entwürfe, bzw. andere Darstellungen.
  • Verhaltensschemata müssen im Code ähnlich zum Muster auftreten.

#(Übrige Abschnitte) ... (Die restlichen Abschnitte bleiben unverändert.)

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

More Like This

Use Quizgecko on...
Browser
Browser