UML Klassendiagramm und Sichtbarkeitsmodifikatoren

Kapselung ist ein Konzept der OOP, das verhindern soll, dass Anpassungen des Codes zu Inkonsistenzen führen. Der Zustand der Objekte soll nicht direkt änderbar sein, sondern nur über Methoden, die ggf. weitere Anpassungen vornehmen können: Getter und Setter.

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

Ü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 Anwendungsfalldiagramme

Ein Bild sagt mehr als tausend Worte: Funktionale Anforderungen lassen sich im Kundengespräch oft am schnellsten mit einem Diagramm zeichnen. Ein paar Strichmännchen, ein paar Ellipsen, ein Rechteck – aber was bedeuten die Notationsmittel genau, und wo setzte ich sie sinnvollerweise ein?

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.