Einstieg in objektorientierte Programmierung mit dem UML-Klassendiagramm

Das UML-Klassendiagramm ist die zentrale Modellierungssprache der objektorientierten Programmierung (OOP). Dieser Einstiegsartikel zeigt den Aufbau einer Klasse, die Darstellung ihrer Member (Attribute und Methoden), Überladung sowie Instanz- und Klassenattribute und -methoden. Außerdem geht es um die vollständige Schreibweise von Attributen und Methoden und darum, wie Du aus einem Anforderungstext ein Klassendiagramm entwickelst.

UML-Zustandsdiagramme mit PlantUML erstellen

Mithilfe des Tools PlantUML lassen sich textbasiert UML-Zustandsdiagramme erstellen. Der Artikel zeigt die Syntax für Zustände, Transitionen, innere Aktionen, Choices und Junctions, zusammengesetzte Zustände, Regionen und Historie sowie Möglichkeiten, die Diagramme zu teilen und einheitlich zu formatieren.

UML-Zustandsdiagramm

Mit UML-Zustandsdiagrammen lassen sich alle Systeme modellieren, die unter variierenden Randbedingungen unterschiedliches Verhalten anbieten oder ausführen. Das trifft auf User-Interfaces ebenso zu wie auf Embedded Systems: allen ist gemein, dass unterschiedliche Zustände jeweils besonderes Verhalten haben – und es definierte Zustandsübergänge mit Auslösern, Bedingungen und Übergangsverhalten gibt. Neben der Notation geht es darum, wie Du aus einer Beschreibung Schritt für Schritt ein Diagramm entwickelst, typische Fehler vermeidest und das Diagramm in Code und Testfälle überträgst.

JavaFX 03: Aufbau des Scenegraphs

Was passiert unter der Oberfläche in JavaFX? Was ist eine Scene, ein Root Node, ein branch node und ein Leaf node? Der Artikel ist Teil eines JavaFX-Tutorials.

Python Coding-Kata: Energieverbrauch für Mobilität

Wieviel Energie benötigen wir bei 130 km/h mehr als bei 100 km/h? Um wie viel sparsamer ist ein Kleinwagen als ein Van? Python-Fingerübung für Einsteiger mit Kontrollstrukturen, Wiederholungsstrukturen, einfacher Ein- und Ausgabe.

Lernsituation: Migration der Let’s Meet-Datenbank

Es ist nur noch eine Gesamtübersicht einer Datenbank in einer Tabelle vorhanden. Aus diesen Daten soll die ursprüngliche DB wiederhergestellt werden. Diese soll modelliert, importiert und im Bestand normalisiert werden. (DB Entwurf, Normalisierung, SQL-DDL, SQL-DML, Container, DBMS-Frontends und -Backends).

Annotations in Java

Java Annotationen – Welche geläufigen gibt es? Wozu werden sie genutzt? Wer kann sie auslesen? Welche Eigenschaften können sie haben? Wie kann ich eigene Erstellen? Was wirt mit _Retention_ und _Target_ festgelegt? Was ist die Reflection API und was hat sie mit Annotations zu tun?

  • 22. September 2022
  • Java

Representational State Transfer (REST)

Grundlagen zu REST-APIs, Klärung der Begriffe Ressource (Entität in REST), Repräsentation (Darstellungsform, z.B. JSON, XML), HTTP-Methoden (GET, PUT, POST, PATCH, DELETE) und deren Zuordnung zu den CRUD-Operationen, Eigenschaften der Methoden: safe/cacheable/idempotent, Abgrenzung URI/URL/URN, Pfad- und Query-Parameter, HATEOAS, Hypermedia, Aufbau von HTTP-Anfrage und -Antwort (Methode, URL, Header, Body), Statuscodes und typische Fehlerursachen wie 404 und 405.

Grundlagen für Java-Framework-Projekte installieren (Beispiel: VSCodium)

Vorbereiten der Entwicklungsumgebung, Plugins und ein Build-Tool (Maven/Gradle) für Java-Projekte mit Frameworks (z. B. ein SpringBoot-Projekt oder JavaFX): Installation eines aktuellen Java-LTS-JDK (und Eintrag im PATH), VSCodium als IDE mit den für Java nötigen Plugins, Installieren und Überprüfen der Gradle- bzw. Maven-Version sowie der Versionsverwaltung Git.

Überdeckungsmetriken zur Bestimmung der Testgüte (Whitebox-Testing)

Der Artikel erklärt, wie die Whitebox-Metriken Anweisungs-, Zweig-, Pfad- und Bedingungsüberdeckung berechnet werden, und nennt ihre Vor- und Nachteile. An einem Java-Beispiel mit Kontrollflussgraphen zeigt er, wie sich daraus neue Testfälle ergeben, wie Du alle Pfade eines Algorithmus notierst, die Mindestzahl an Testfällen bestimmst und begründet eine passende Überdeckungsart auswählst.

Der logische Datenbankentwurf mit dem Relationenmodell

Im logischen Modell legen wir uns fest, wie die logische Verknüpfung der Daten untereinander umgesetzt werden soll. Im Relationenmodell erfolgt dies über Schlüsselattribute. Dieser Artikel erklärt die unterschiedlichen Wege, Schlüsselattribute zu bestimmen, die Transformationsregeln, um die Beziehungstypen des Entity-Relationship-Modells in Schlüsselbeziehungen umzusetzen, führt Constraints ein, die Attributen im logischen Modell zugeordnet werden, und zeigt an Beispielen, wie man aus einem Anforderungstext oder einem Beleg ein Relationenmodell in der dritten Normalform entwickelt.

Anomalien und deren Vermeidung durch Normalisierung eines Relationenschemas

Bei einem schlechten Design einer Datenbank werden Informationen mehrfach gespeichert (Redundanz) – und es ergeben sich schnell Inkonsistenzen beim Einfügen, Aktualisieren und Löschen von Daten – die „Anomalien“. Eine Best-Practice-Sammlung, um dies durch Design zu verhindern, stellen die Normalformen dar. Dieser Artikel beschreibt die erste (1NF, Atomarität), zweite (2NF, Unabhängigkeit der Attribute von Teilschlüsseln) und dritte (3NF, Unabhängigkeit von Nichtschlüsselattributen) Normalform und die Schritte, wie man ein Relationenschema entsprechend umwandelt.

Metrik der Komplexität eines Algorithmus: Die McCabe-Zahl (Zyklomatische Komplexität)

Die Zyklomatische Komplexität (McCabe-Zahl) gibt ein Maß für die Wartbarkeit von Code an. Sie kann auf verschiedene Arten bestimmt werden (binäre Verzweigungen, Anzahl Pfade, Anzahl Knoten und Kanten). Sie kann als Indikator für zu hohe Komplexität innerhalb von Methoden genutzt werden, kann aber objektorientierte Komplexität nicht detektieren.

Algorithmen mit Pseudocode dokumentieren

Die Dokumentation oder der Entwurf von Algorithmen soll häufig unabhängig von einer spezifischen Programmiersprache erfolgen. Eine Möglichkeit ist es, Pseudocode zu verwenden. Vier verbreitete Pseudocode-Notationen werden hier dargestellt: JANA, Pseudo-Pascal, eine deutsche Variante von Pseudo-Pascal und Pseudo-Python. Eine Schnellübersicht stellt die Schlüsselwörter gegenüber, die Beispiele lassen sich über Registerkarten zwischen den Notationen umschalten. Zum Schluss geht es um alternative Schreibweisen und typische Fehler beim Lesen von Pseudocode.

UML Anwendungsfalldiagramm (Use Case Diagram)

Mit UML-Anwendungsfall-Diagrammen können Übersichten erstellt werden, welchen Nutzen ein System den Benutzer*innen zur Verfügung stellt. Das einfache Diagramm bietet wenig Notationsmittel, mithilfe derer Beziehungen dargestellt werden: zwischen Nutzergruppen, zwischen Anwendungsfällen und von Nutzenden zu Anwendungsfällen. Dieser Artikel stellt diese UML-Notationen vor, zeigt, wie Du aus einem Anforderungstext Schritt für Schritt ein Diagramm entwickelst, und sammelt typische Fehler.

Anwendungsfall (Use Case)

Anwendungsfälle stellen den Nutzen, den ein System für Benutzer*innen bereitstellt, in das Zentrum der Betrachtung. Mit ihnen können Anforderungen identifiziert und (tabellarisch oder als Diagramm) dokumentiert werden.

Anforderungsanalyse (requirement engineering)

Viele Projekte scheitern daran, dass nie hinreichend definiert wurde, was eigentlich die Ziele sein sollen. Wie kann eine systematische Anforderungsanalyse aussehen? Der Artikel erklärt, was Anforderungen sind, wie Du funktionale und nichtfunktionale Anforderungen (Qualitätsanforderungen und Randbedingungen) sicher unterscheidest, wie Du sie mit Bezug zur Situation beschreibst und prüfbar formulierst und welche typischen Fehler Du dabei vermeiden solltest.