UML-Komplexaufgaben
Was du heute lernst:
- Gelerntes UML-Wissen auf komplexe, realitätsnahe Szenarien anwenden.
- Spezifische Anforderungen analysieren und den passenden UML-Diagrammtyp auswählen.
- Strukturelle und dynamische Aspekte von Software-Systemen präzise modellieren.
Vertiefe dein UML-Verständnis
In der Welt der Softwareentwicklung sind UML-Diagramme unverzichtbare Werkzeuge, um komplexe Systeme zu verstehen, zu entwerfen und zu kommunizieren. Diese Sammlung von Aufgaben bietet Ihnen die Möglichkeit, Ihr Wissen über verschiedene UML-Diagrammtypen anzuwenden und deine Fähigkeiten zur Modellierung komplexer Szenarien zu vertiefen.
Jede Aufgabe ist mit einer Einschätzung des Schwierigkeitsgrades und einem hilfreichen Tipp versehen, der dich auf den richtigen Weg zur Lösungsfindung leitet.
Aufgabe 1: E-Commerce Plattform (Use Case Diagramm)
Schwierigkeitsgrad: mittel
Aufgabenstellung: Entwirf ein umfassendes Set an Use-Case-Diagrammen für eine Online-Kreditplattform. Berücksichtige verschiedene Akteure wie Kreditnehmer, Kreditgeber, Administrator und das automatische Scoring-System. Modelliere die Kernprozesse wie Kreditantragstellung, Bonitätsprüfung, Kreditvergabe, Rückzahlung und Verwaltung von Krediten. Achte auf die Darstellung von Beziehungen zwischen Use Cases (z.B. <<include>>, <<extend>>).
Lösungstipp: Identifiziere zunächst alle primären und sekundären Akteure und deren Hauptinteraktionen. Denke darüber nach, welche Use Cases wiederverwendet werden können und wie komplexere Abläufe (z.B. Antragsbearbeitung) in kleinere, handhabbare Schritte unterteilt werden können.
Aufgabe 2: Mobile E-Mail-Client (Klassendiagramm)
Schwierigkeitsgrad: mittel
Aufgabenstellung: Entwirf ein Klassendiagramm für eine mobile E-Mail-Client-Anwendung. Modelliere Klassen wie UserAccount, EmailMessage, Folder, Attachment, Contact, und NotificationManager. Definiere Attribute (z.B. sender, recipient, subject, body, timestamp, size) und Methoden (z.B. sendMessage(), receiveEmail(), organizeFolder(), deleteAttachment()). Berücksichtige Vererbung (z.B. verschiedene Arten von Nachrichten) und Assoziationen mit geeigneten Multiplizitäten.
Lösungstipp: Strukturiere das Diagramm, indem du Kernobjekte definierst und dann deren Beziehungen und Verantwortlichkeiten klären. Überlege, wie E-Mails und deren Metadaten gespeichert und verwaltet werden und wie verschiedene Benutzerkonten parallel funktionieren könnten.
Aufgabe 3: Online-Kursanmeldung (Aktivitätsdiagramm)
Schwierigkeitsgrad: mittel
Aufgabenstellung: Modelliere den Prozess der Veröffentlichung eines wissenschaftlichen Artikels in einem Online-Journal. Der Prozess umfasst die Einreichung durch Autoren, die erste Prüfung durch den Chefredakteur, die Zuweisung an Gutachter (Peer Review), die Überarbeitung durch die Autoren basierend auf Gutachterkommentaren und die finale Annahme oder Ablehnung. Berücksichtige Entscheidungspunkte für Annahme/Ablehnung und parallele Aktivitäten wie das Senden von Benachrichtigungen.
Lösungstipp: Denke an die verschiedenen Entscheidungspunkte im Prozess und wie diese den Fluss beeinflussen. Visualisiere, wo Aktionen gleichzeitig stattfinden können, z.B. Benachrichtigungen an verschiedene Parteien.
Aufgabe 4: Betriebssystem-Update (Zustandsdiagramm)
Schwierigkeitsgrad: schwer
Aufgabenstellung: Modelliere den komplexen Lebenszyklus eines Software-Updates für ein Betriebssystem. Berücksichtige Zustände wie Idle, Downloading, Verifying, Installing, Rebooting, Configuring, Rollback Pending, Rollback Complete, Failed. Definiere Übergänge basierend auf Ereignissen wie StartUpdate, DownloadComplete, VerificationFailed, UserInterruption, RebootRequired, ConfigurationComplete, RollbackTriggered. Implementiere auch interne Zustandsaktionen (entry/do/exit).
Lösungstipp: Zerlege den Update-Prozess in alle möglichen Phasen und Fehlerzustände. Denke daran, dass ein Update mehrere Phasen des Wartens und der Ausführung hat und dass Fehlerbehebungsmechanismen (Rollback) ebenfalls modelliert werden müssen.
Aufgabe 5: Microservice-Bestellvorgang (Sequenzdiagramm)
Schwierigkeitsgrad: schwer
Aufgabenstellung: Illustriere den detaillierten Ablauf der Interaktion zwischen einem Microservice-basierten E-Commerce-System während des Bestellvorgangs. Berücksichtige die Interaktion zwischen FrontendApp, UserService, ProductService, OrderService, PaymentService, InventoryService und NotificationService. Zeige die Nachrichten für das Hinzufügen von Artikeln zum Warenkorb, das Erstellen einer Bestellung, die Zahlungsabwicklung, die Bestandsaktualisierung und das Senden einer Bestellbestätigung per E-Mail. Behandel Fehlerfälle wie nicht verfügbare Produkte oder fehlgeschlagene Zahlungen.
Lösungstipp: Visualisiere die Kommunikation zwischen den einzelnen Services Schritt für Schritt. Achte auf die unterschiedlichen Arten von Nachrichten (synchron, asynchron) und wie die Ergebnisse von einer Operation an die nächste weitergegeben werden.
Aufgabe 6: Online-Bildungsportal (Use Case Diagramm)
Schwierigkeitsgrad: schwer
Aufgabenstellung: Erstelle ein detailliertes Use-Case-Diagramm für ein Online-Bildungsportal, das Kurse anbietet. Berücksichtige Akteure wie Student, Instructor, Administrator, ContentCreator. Modelliere Use Cases wie BrowseCourses, EnrollInCourse, ViewLecture, SubmitAssignment, GradeAssignment, CreateCourse, ManageUsers, GenerateReport. Berücksichtige fortgeschrittene Beziehungen wie <<include>> (z.B. für Authentifizierung) und <<extend>> (z.B. für optionale Features wie Kursbewertung).
Lösungstipp: Denke über die unterschiedlichen Bedürfnisse und Berechtigungen der Akteure nach. Überlege, wie sich komplexe Abläufe wie das Erstellen eines neuen Kurses oder das Einreichen einer komplexen Aufgabe in einzelne, wiederverwendbare Use Cases aufteilen lassen.
Aufgabe 7: Nachrichten-CMS (Klassendiagramm)
Schwierigkeitsgrad: schwer
Aufgabenstellung: Entwirf ein Klassendiagramm für ein Content-Management-System (CMS) für eine Nachrichten-Website. Modelliere Klassen wie Article, Category, Tag, Author, Comment, User, Publisher, MediaFile. Berücksichtige polymorphe Beziehungen (z.B. verschiedene Arten von Artikeln oder Medien) und komplexe Vererbungsstrukturen. Definiere Methoden für das Veröffentlichen, Bearbeiten, Archivieren von Artikeln und das Verwalten von Benutzerrollen und Berechtigungen.
Lösungstipp: Identifiziere die Kernentitäten und deren Hierarchien. Überlege, wie verschiedene Inhaltstypen (z.B. Nachrichtenartikel, Blog-Posts, Bildergalerien) mit gemeinsamen und spezifischen Eigenschaften modelliert werden können. Achte auf die Beziehungen zwischen Artikeln, Kategorien, Tags und Autoren.
Aufgabe 8: Technischer Support (Aktivitätsdiagramm)
Schwierigkeitsgrad: mittel
Aufgabenstellung: Modelliere den Prozess der Fehlerbehebung für einen technischen Support. Der Prozess beginnt, wenn ein Kunde ein Problem meldet. Er umfasst Schritte wie die Erfassung der Problembeschreibung, die Diagnose, die Zuweisung eines Lösungsansatzes (oder die Eskalation), die Implementierung der Lösung und die Bestätigung durch den Kunden. Berücksichtige Entscheidungen (z.B. ob das Problem sofort lösbar ist oder eskaliert werden muss) und parallele Aktivitäten (z.B. Senden einer automatischen Eingangsbestätigung).
Lösungstipp: Visualisiere die unterschiedlichen Pfade, die ein Ticket nehmen kann, abhängig von der Art des Problems und der Lösung. Achte auf klare Start- und Endpunkte sowie auf die korrekte Verwendung von Entscheidungsknoten und Gabelungen/Zusammenführungen.
Aufgabe 9: Geldautomat (Use Case Diagramm)
Schwierigkeitsgrad: mittel
Aufgabenstellung: Entwirf Use Cases für ein einfaches Geldautomaten (ATM)-System. Identifiziere die Akteure (z.B. Kunde, Bankmitarbeiter, Systemadministrator) und die Hauptanwendungsfälle wie Geld abheben, Kontostand abfragen, PIN ändern, Einzahlung tätigen (falls unterstützt), Kontoauszug drucken. Modelliere die Beziehungen zwischen den Akteuren und Use Cases und überlege, welche Use Cases als Teil anderer (z.B. PIN prüfen als Teil von Geld abheben) betrachtet werden können.
Lösungstipp: Konzentriere sich auf die Perspektive des Kunden und die Interaktionen, die er mit dem Automaten hat. Denke auch an die Verwaltungsaufgaben und wie diese durch andere Akteure wahrgenommen werden.
Aufgabe 10: Musik-Streaming-Dienst (Klassendiagramm)
Schwierigkeitsgrad: mittel
Aufgabenstellung: Modelliere die Klassenstruktur für ein einfaches Musik-Streaming-Dienst. Berücksichtige Klassen wie User, Playlist, Song, Artist, Album, Genre. Definiere Attribute und Methoden für jede Klasse (z.B. User kann Playlists erstellen, Song hat Metadaten wie Titel, Dauer, Playlist enthält Songs). Modelliere Beziehungen wie User hat mehrere Playlists, Playlist enthält viele Songs, Song gehört zu einem Artist und Album, Song kann mehreren Genres zugeordnet sein.
Lösungstipp: Beginne mit den Kernobjekten (Song, Artist, Album) und baue von dort aus die Struktur auf. Überlege, wie die Beziehungen zwischen diesen Objekten abgebildet werden, z.B. die Many-to-Many-Beziehung zwischen Songs und Genres oder die Many-to-Many-Beziehung zwischen Playlists und Songs.