Beziehungen zwischen Objekten: Assoziation
Modellierung von Interaktionen durch Assoziation und Komposition.
Über dieses Thema
In diesem Thema lernen Schülerinnen und Schüler, wie Objekte in der objektorientierten Modellierung durch Assoziationen miteinander interagieren, ohne ihre interne Struktur offenzulegen. Assoziation beschreibt eine 'hat-ein'-Beziehung, die lose Kopplung ermöglicht und Abhängigkeiten minimiert. Im Gegensatz zur Vererbung ('ist-ein') bleibt die Unabhängigkeit der Klassen gewahrt. Die Schüler analysieren, wie Objekte Nachrichten austauschen und wann starke Kopplungen vermieden werden sollten. Dies knüpft an die KMK-Standards zum Strukturieren und Kommunizieren an.
Praktisch modellieren die Schüler reale Szenarien, wie ein Auto mit einem Motor assoziiert ist, aber nicht kompositiert. Sie zeichnen UML-Diagramme mit Kardinalitäten und üben, textuelle Beschreibungen in Modelle umzusetzen. So verstehen sie, wie Assoziation Flexibilität in Software-Designs schafft und Wartbarkeit verbessert.
Aktives Lernen ist hier besonders vorteilhaft, da Schüler durch Diskussionen und Modellieraufgaben abstrakte Konzepte konkretisieren, Fehler früh erkennen und kreative Lösungen entwickeln. Es fördert tiefes Verständnis und Transfer auf komplexe Systeme.
Leitfragen
- Wie kommunizieren Objekte miteinander, ohne ihre interne Struktur preiszugeben?
- Was ist der Unterschied zwischen einer 'hat-ein' und einer 'ist-ein' Beziehung?
- Wie vermeiden wir zu starke Abhängigkeiten zwischen verschiedenen Klassen?
Lernziele
- Analysieren Sie die Unterschiede zwischen Assoziation und Komposition in UML-Diagrammen anhand von Beispielen.
- Erklären Sie die Bedeutung von Kardinalitäten bei der Modellierung von Assoziationen zwischen Objekten.
- Entwerfen Sie ein einfaches Klassendiagramm, das eine Assoziationsbeziehung zwischen zwei Klassen darstellt.
- Bewerten Sie die Auswirkungen von starker versus loser Kopplung auf die Wartbarkeit von Software anhand von Szenarien.
- Identifizieren Sie Assoziationsbeziehungen in einer gegebenen textuellen Beschreibung eines Systems.
Bevor es losgeht
Warum: Schüler müssen verstehen, was Klassen und Objekte sind, bevor sie Beziehungen zwischen ihnen modellieren können.
Warum: Grundkenntnisse in der Notation von UML-Diagrammen sind notwendig, um Assoziationen visuell darstellen und interpretieren zu können.
Schlüsselvokabular
| Assoziation | Eine Beziehung zwischen zwei Klassen, die angibt, dass Objekte der einen Klasse mit Objekten der anderen Klasse verbunden sind oder interagieren. Sie repräsentiert eine 'hat-ein'-Beziehung. |
| Komposition | Eine spezielle Form der Assoziation, bei der ein Objekt ('Teil') untrennbar mit einem anderen Objekt ('Ganzes') verbunden ist. Wenn das 'Ganze' zerstört wird, wird auch das 'Teil' zerstört. |
| Kardinalität | Gibt an, wie viele Instanzen einer Klasse mit Instanzen einer anderen Klasse verbunden sein können (z. B. 1:1, 1:n, n:m). |
| Kopplung | Ein Maß dafür, wie stark Klassen voneinander abhängig sind. Lose Kopplung ist wünschenswert, um die Flexibilität und Wartbarkeit zu erhöhen. |
Vorsicht vor diesen Fehlvorstellungen
Häufige FehlvorstellungAssoziation erfordert immer Zugriff auf interne Daten.
Was Sie stattdessen lehren sollten
Assoziation basiert auf Nachrichtenübergabe über Methodenaufrufe, ohne interne Struktur preiszugeben. Dies schützt Kapselung.
Häufige FehlvorstellungJede 'hat-ein'-Beziehung ist eine Komposition.
Was Sie stattdessen lehren sollten
Assoziation ist lose, Komposition stark. Bei Assoziation existieren Objekte unabhängig voneinander.
Häufige FehlvorstellungAssoziation ersetzt Vererbung vollständig.
Was Sie stattdessen lehren sollten
Assoziation modelliert Zusammensetzung, Vererbung Hierarchien. Beide ergänzen sich für flexibles Design.
Ideen für aktives Lernen
Alle Aktivitäten ansehenPaararbeit: Assoziationsszenarien modellieren
Schüler modellieren in Paaren reale Objekte mit Assoziationen, z. B. Bibliothek und Bücher. Sie zeichnen UML-Diagramme und diskutieren Kardinalitäten. Am Ende präsentieren sie ihre Modelle.
Gruppenarbeit: Unterschied zu Vererbung
Kleine Gruppen vergleichen 'hat-ein' und 'ist-ein'-Beziehungen an Beispielen wie Tier und Haustier. Sie erstellen Gegenbeispiele und begründen die Wahl. Gemeinsam erarbeiten sie Regeln.
Individuelle Übung: Code-Skizzen
Jeder Schüler skizziert Java-Code für eine Assoziation zwischen Klassen. Sie testen lose Kopplung durch Änderungen. Lehrer gibt Feedback.
Klassenrunde: Fallstudie diskutieren
Die Klasse diskutiert eine Systembeschreibung und identifiziert Assoziationen gemeinsam. Sie voten über beste Modelle.
Bezüge zur Lebenswelt
- In der Softwareentwicklung für Online-Shops modellieren Entwickler oft eine 'Kunde hat Bestellungen'-Beziehung (Assoziation), wobei ein Kunde mehrere Bestellungen haben kann.
- Automobilhersteller verwenden Assoziationen, um Komponenten wie ein Auto und seinen Motor zu beschreiben. Ein Auto 'hat einen' Motor, aber der Motor kann auch in anderen Fahrzeugen verwendet werden.
- Bei der Entwicklung von Datenbanken für Bibliotheken wird die Beziehung zwischen Büchern und Ausleihenden als Assoziation modelliert, um zu verfolgen, wer welches Buch ausgeliehen hat.
Ideen zur Lernstandserhebung
Geben Sie den Schülern eine kurze Beschreibung eines Systems (z. B. ein Restaurant mit Tischen und Kellnern). Bitten Sie sie, eine Assoziationsbeziehung zu identifizieren und die Kardinalität anzugeben. Fragen Sie zusätzlich: 'Ist dies eine Assoziation oder eine Komposition und warum?'
Stellen Sie die Frage: 'Warum ist es wichtig, zwischen Assoziation und Komposition zu unterscheiden, wenn wir Software entwerfen?' Leiten Sie eine kurze Klassendiskussion, die sich auf die Auswirkungen auf die Lebensdauer von Objekten und die Systemwartbarkeit konzentriert.
Zeigen Sie ein einfaches UML-Diagramm mit zwei Klassen und einer Assoziationslinie mit Kardinalitäten. Bitten Sie die Schüler, die Beziehung in einem Satz zu beschreiben und zu erklären, was die Kardinalitäten bedeuten.
Häufig gestellte Fragen
Was ist der Hauptunterschied zwischen Assoziation und Vererbung?
Warum ist aktives Lernen bei Assoziationen wirksam?
Wie vermeidet man zu starke Abhängigkeiten?
Wie integriert man Assoziation in UML?
Planungsvorlagen für Informatik
Mehr in Objektorientierte Modellierung
Klassen und Objekte
Unterscheidung zwischen dem Bauplan (Klasse) und der konkreten Ausprägung (Instanz).
2 methodologies
Attribute und Methoden
Die Schülerinnen und Schüler definieren Eigenschaften und Verhaltensweisen von Objekten.
2 methodologies
Konstruktoren und Destruktoren
Die Schülerinnen und Schüler lernen, wie Objekte initialisiert und Ressourcen freigegeben werden.
2 methodologies
Beziehungen zwischen Objekten: Aggregation und Komposition
Vertiefung der Modellierung von Teil-Ganzes-Beziehungen.
2 methodologies
Vererbung und Polymorphie
Effiziente Code-Wiederverwendung und flexible Schnittstellengestaltung durch Klassenhierarchien.
2 methodologies
Abstrakte Klassen und Interfaces
Die Schülerinnen und Schüler nutzen abstrakte Konzepte zur Definition von Schnittstellen und gemeinsamen Verhaltensweisen.
2 methodologies