November 2022

Anforderungs-Validierung und Verwaltung

Nicht alle Anforderungen sind gleich wichtig, nicht alle Anforderungen sind auf Anhieb gut formuliert/dokumentiert. Woran erkenne ich gute Anforderungen, woran erkenne ich wichtige Anforderungen? Und: gibt es auch zu viel Spezifikation?

Dokumentieren von Anforderungen

Es stehen die Wünsche der Stakeholder im Raum – und auch die Normen und Gesetze wollen als Anforderung dokumentiert werden. Welche unterschiedlichen Artefakte gibt es, in denen Anforderungen erfasst werden können, und wo eignen sie sich besonders?

Ermittlung von Anforderungen

Welche Techniken gibt es, um Anforderungen zu ermitteln, dokumentieren, gliedern, validieren und messbar zu machen? Welche Kriterien werden an gute fachgerechte und überprüfbare Anforderungen angelegt?

Mein erster Grafiktreiber: ein Dot-Matrixdisplay direkt ansteuern

Gedankenspiel: wenn es die ganze wunderbare Arduino-Community nicht gäbe. Nur uns, den Microcontroller, ein 8×8-Matrix-Display (MAX7219), die eine IDE und ein Datenblatt. Würden wir es dann schaffen, das Display an’s laufen zu bekommen? An diesem Beispiel soll gezeigt werden, dass hardwarenahe Programmierung ohne Bibliotheken – nur mit den Angaben eines Datenblatts – kein Zauberwerk ist…

Mit leeren Händen testen: Testfallerstellung nach Blackbox-Systematik

Die Spezifikation sagt uns vor der ersten Zeile Code eines neuen Programmblocks, wie dieser sich verhalten soll. Wir können im Vorhinein für mögliche Eingabewerte das Resultat unseres Codeblocks bestimmen. Die systematische Ermittlung und Dokumentation dieser Eingabewert/Resultat-Kombinationen durch Äquivalenzklassenbildung und Grenzfallanalyse mündet in „Blackbox“-Testfällen.

Systematisch im Kreis drehen: Testgetriebene Entwicklung mit pytest

Wir wollen uns jetzt im Kreis drehen: Ziel definieren – umsetzen – aufräumen. In kleinen Schritten. So lange, bis das Programm fertig ist. Diese Technik nennt sich Testgetriebene Entwicklung, dazu benötigen wir das Testframework `pytest` und wenige Minuten Zeit. Nebenbei lernen wir auch noch Coding-Conventions kennen.

Mit Dictionaries Key-Value-Paare speichern

Häufig wollen wir Werte nicht in einzelnen Variablen speichern, sondern als zusammenhängende Struktur. Immer dann, wenn wir Key-Value-Beziehungen haben (wir also über einen bestimmten Namen auf einen Wert zugreifen wollen) sind Dictionaries die Objektsammlung der Wahl.