Übungsaufgaben UML-Klassendiagramm
Übungsaufgabe zu Grundlagen der Objektorientierung und zum UML-Klassendiagramm. Es soll ein Ticketautomat modelliert werden mit Objektbeziehungen, Klassenbeziehungen, Kapselung, Polymorphie.
Übungsaufgabe zu Grundlagen der Objektorientierung und zum UML-Klassendiagramm. Es soll ein Ticketautomat modelliert werden mit Objektbeziehungen, Klassenbeziehungen, Kapselung, Polymorphie.
Übungsaufgaben zur Vorbereitung auf die Teil-1-Prüfung der IT-Berufe zu den Modellierungen von IT-Projekten mit dem UML Use-Case-Diagramm, Aktivitätsdiagramm, Klassendiagramm, Entity-Relationship-Diagramm.
Übungsaufgabe zu UML-Sequenzdiagrammen: Der Nachrichtenfluss des MQTT-Protokolls soll anhand eines Beispiels (Pflanzenbewässerung) dargestellt werden und die Rollen des MQTT-Protokolls benannt werden.
Übungsaufgabe zu UML-Zustandsdiagrammen: Es soll eine Art Genehmigungsprozess modelliert werden mit Zuständen, Transitionen, zusammengesetzen Zuständen und inneren Aktivitäten.
Übungsaufgabe zu UML-Aktivitätsdiagrammen: Eine Website wird aufgerufen, Daten gesammelt und gerendert. Eine Beispiellösung wird am Ende der Seite gegeben.
Der Nachrichtenfluss des MVP-Patterns soll anhand eines Beispiels (Online-Buchungsorozess) dargestellt werden.
ASCII-Art Weihnachtsbaum: Einsteiger Fingerübung zu Kontrollstrukturen, Wiederholungsstrukturen und Operatoren in Python: Ein ASCII-Art Weihnachtsbaum soll auf der Konsole ausgegeben und geschmückt werden.
In UML Objektdiagramm können Instanzen von Klassen dargestellt werden. Attributwerte werden als Slots oder über Links repräsentiert, Aggregationen und Instanziierungen können ebenso festgehalten werden. Instanzen werden wie Klassen dargestellt, deren Instanzname unterstrichen ist. In diesem Blogpost werden die relativ wenigen Notationsmittel des UML-Objektdiagramms vorgestellt.
Ein zentrales Konzept der objektorientierten Programmierung ist die Polymorphie: die Vielgestalt von Objekten. Es ermöglicht über Instanztypen das Verhalten eines Objekts festzulegen, während der Typ der Referenz festlegt, welche Member erreichbar sind. Objekte sind so flexibel über unterschiedliche Referenzen wiederverwertbar, ohne gecastet werden zu müssen.
Der Ablauf des Geschäftsprozesses steht fest, jetzt geht es darum, die einzelnen Masken zu modellieren. Jede Maske repräsentiert dabei einen Zustand, den das UserInterface einnimmt. Diese Zustände und deren Übergänge werden mit einem UML-Zustandsdiagramm geplant, hierfür gibt es einige Kniffe, um bei größeren Seitenkomplexen eine übersichtliche Modellierung sicherzustellen (Teil der Artikelserie zur Gestaltung und Entwicklung von Benutzeroberflächen für Geschäftsprozesse).
Auf Basis bestehender Geschäftsprozesse sollen die optimierten und digitalisierten Geschäftsprozesse entworfen werden. Zunächst die Übersicht aller Anwendungsfälle erstellt, die im Rahmen des Requirement Engineerings gewonnen wurde. Dann werden daraus die neuen Geschäftsprozesse abgeleitet und ermittelt, welche davon detaillierter modelliert werden müssen. Die Modellierung erfolgt diesmal mit einer Technik der Lösungsdomäne: dem UML-Aktivitätsdiagramm (Teil der Artikelserie zur Gestaltung und Entwicklung von Benutzeroberflächen für Geschäftsprozesse).
Übungsaufgabe zur Erstellung eines Use-Case-Diagramms anhand einer vorliegenden Beschreibung. Das Beispiel nutzt die Notationsvielfalt der UML, entsprechende Kenntnisse sind also vorausgesetzt
Mithilfe von PlantUML lassen sich auch UML-Aktivitätsdiagramme per „Diagramm as Code“ erstellen. Das geht nicht ganz so leicht von der Hand wie Sequenz- oder Klassendiagramme, da plantUML hier etwas umständlich ist. Für einfache Diagramme wird der Aufbau hier erklärt.
Kleine Übungsaufgaben mit Lösungen zu UML-Sequenzdiagrammen: TCP Handshake, HTTPS-Fingerprint-Check, Zwei-Faktor-Authentifizierung, Public/Private-Key Verfahren und Challenge-Response Authentication Mechanism (CRAM).
Listen stellen eine mächtige und flexible Objektsammlung in Python dar. Der Artikel zeigt, wie Elemente erzeugt, verändert, gelöscht und ausgegeben werden.
Mit Sets bietet Python einen Objektsammlungstyp, der dafür sorgt, dass jedes Element einzigartig ist. Die verfügbaren Methoden der set-Klasse werden in diesem Artikel an Beispielen vorgestellt.
Neben Methoden und Instanzvariablen (Attributen), die das Verhalten und den Zustand einzelner Objekte speichern und verändern gibt es in der objektorientierten Programmierung auch Verhalten und Zustand, der einen gemeinsamen Zustand aller Objekte einer Klasse betrifft. Solche Klassenmethoden und Klassenvariablen werden in der OOP statisch genannt. Dieser Artikel beschreibt, wie sie in Python implementiert werden.
Algorithmen können mit unterschiedlichen Programmentwurfstechniken dokumentiert werden: Pseudocode, Programm-Ablaufplan, Struktogramm oder UML-Aktivitätsdiagramm. Hier werden alle vergleichend dargestellt.
: Das Authentifizierungsverfahren Passkey soll anhand der Beschreibung der Nachrichtenfolge als UML-Sequenzdiagramm dargestellt werden: neben einer Sequenzdiagramm-Übungsaufgabe lernen wir nebenbei den Mechanismus dieses zentralen Authentifizierungsmechanismuses kennen.
Authentifizierungsverfahren sind von zentraler Bedeutung bei Webservices. In deiser Aufgabe sollen die Akteure und die Nachrichtenfolge von OAuth2 recherchiert werden und schließlich als UML-Sequenzdiagramm dargestellt werden. Auch hier steht neben der Sequenzdiagramm-Übungsaufgabe das Kennenlernen eines zentralen Authentifizierungsmechanismuses im Fokus.
Zu einer gegebenen Funktion (ein Sortieralgorithmus) soll ein Kontrollflussgraph erstellt werden, die McCabe-Zahl berechnet werden (beides optional), die Überdeckungsmetriken für einen bestehenden Test berechnet werden, weitere Tests aus Whitebox-Sicht ergänzt werden und alles mit einem Code-Coverage-Tool implementiert werden.
Übungsaufgaben zur Erstellung von Testfällen nach Blackboxsystematik für eine Methode, die die IHK-Abschlussnote berechnet. Es werden systematisch Äquivalenzklassen und Grenzwerte bestimmt und der Algorithmus mit Pseudocode beschrieben.
Leitfragen und Übungsaufgaben zu CleanCode: Der Artikel enthält eine Reihe von Leitfragen zum Verständnis der Prinzipien (SLA, SRP, SoC, Source Code Conventions) und Praktiken (Issue Tracking, Integrationstest, Lesen, Reviews), die im orangenen Grad des Clean-Code-Developers zusammengefasst sind.
Leitfragen und Übungsaufgaben zu CleanCode: Der Artikel enthält eine Reihe von Leitfragen zum Verständnis der Prinzipien (DRY, KISS, BoPO, FCol, IOSP) und Praktiken (Boy Scout, Root Cause, VCS, Refactoring, Reflection), die im roten Grad des Clean-Code-Developers zusammengefasst sind. Am Ende findet sich eine praktische Übungsaufgabe, bei der CleanCode-Prinzipien angewendet werden sollen.
Aufgaben zu den Grundlagen von ReST: Zunächst ein paar allgemeine Leitfragen zu Begriffen und Konzepten, dann zwei Fallbeispiele (API einer smarten Heizung und eines Industrieroboters), anhand derer das Grundlagenverständnis für ReST-Schnittstellen abgeprüft werden kann.
Für die Zustandsübergänge (Transitionen) unseres CommanLineInterface-Programms müssen noch Effekte (Aktionen) erstellt werden. Dabei müssen wir eine ganze Menge umbauen, um für Typsicherheit zu sorgen.
Im nächsten Teil geht es um die objektorientierte Realisierung der Transitionen zwischen Zuständen und Menüstruktur für das Command-Line-Interfaces (State-Pattern in Java).
Für das Command-Line-Interfaces per State-Pattern müssen als zweiten Schritt die Zustandsklassen als Singleton-Instanzen per ENUM umgesetzt werden (Teil 2 der Artikelserie).
Am Beispiel eines Programms mit Kommandozeilenmenü wird das State-Pattern beispielhaft in Java implementiert – im ersten Teil geht es zunächst um den Aufbau des Patterns selbst und die Grundstruktur.
Es soll ein Webcrawler programmiert werden, der den eigenen Internetauftritt nach dort veröffentlichten E-Mail-Adressen durchsucht. Für die betroffenen Besitzer der E-Mail-Konten sollen so Awareness-Trainings gegen Social-Engineering-Angriffe angeboten werden.
Gute Software braucht gute Dokumentation – ohne unnötigen Aufwand. Eine erste Anlaufstelle ist häufig die `Readme.md`-Datei in git-Repositorys. Aber: für wen schreibe ich die eigentlich? Was sollte, was muss da rein? Wie formatiere ich die Readme-Datei mit Markdown?
Reguläre Ausdrücke gelten als nicht wartbar. Zu kryptisch ist ihr Aufbau. Trotzdem kann man mit etwas Übung einen Blick dafür entwickeln, warum Zeichenketten durch Muster gefunden werden oder nicht gefunden werden. Hier sind ein paar Übungsaufgaben, um den Blick zu schärfen!