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?

Anforderungsermittlung (requirement elicitation)

Woher kommen Anforderungen, und mit welchen Techniken ermittelst Du sie systematisch? Der Artikel zeigt, wie Du Umfeld, Systemkontext und Stakeholder analysierst und welche Ermittlungstechnik – Interview, Fragebogen, Beobachtung, Workshop, Dokumentenanalyse oder Prototyp – zu welcher Situation passt.

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…

Tests gegen die Spezifikation erstellen: Blackbox-Testfälle

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 Kombinationen aus Eingabewerten und Resultaten durch Äquivalenzklassenbildung und Grenzwertanalyse 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.

Funktionen in Python

Komplexe Probleme lassen sich am besten lösen, in dem sie in kleine Einheiten aufgeteilt werden, die jeweils ein Teilproblem lösen. Neben den Suites stellen in Python Funktionen die wesentliche Struktur dar, um die Wiederverwertbarkeit, Wartbarkeit und Änderbarkeit von Code sicherzustellen. Hier geht es um Positions- und Keyword-Argumente, Parameter, Defaultwerte, Dokumentation und all‘ die anderen Grundlagen von Funktionen.

Wiederholungsstrukturen in Python

Wer die Wahl hat, hat die Qual: mit den alternativen Kontrollstrukturen (If-Statements) halten die Suites (Einrückungen) erstmals Einzug in Python. Und die Enttäuschung, weil Mehrfachauswahlen in Python recht umständlich realisiert werden müssen.

Bedingte Anweisungen in Python

Wer die Wahl hat, hat die Qual: mit den alternativen Kontrollstrukturen (If-Statements) halten die Suites (Einrückungen) erstmals Einzug in Python. Und die Enttäuschung, weil Mehrfachauswahlen in Python recht umständlich realisiert werden müssen.

Operatoren in Python

s gibt eine ganze Reihe Operatoren für Zahlen in Python: die aritmetischen Operatoren, Vergleichsoperatoren, Zuweisungsoperatoren, bitweise Operatoren… Und dann gibt es noch die Ausführungsreihenfolge. Was in aller Welt ergibt denn `zahl = 2**4-4%3>0b100<<2`?!?

Python numerische Datentypen

Zahlen, Zeichenketten, Wahrheitswerte: welche Datentypen bietet Python an? Der Schwerpunkt hier liegt auf den numerischen Typen für Gleitkomma- und Ganzzahlen: ist `0b1` eine gültige Zahl und `1e1`? Und: warum in aller Welt ist das hier `False`: `0.1 + 0.2 == 0.3`?!?

UML Sequenzdiagramme

Mit UML-Sequenzdiagramm wird die zeitliche Abfolge von Nachrichten zwischen Akteuren dargestellt. Die Notationsmittel werden an Beispielen vorgestellt.

Model-View-ViewModel (MVVM)

Model-View-ViewModel ist als weiterer Nachkomme des GUI-Musters MVC vor allem durch C# mit XAML und Java mit FXML bekannt geworden. Was sind die zentralen Eigenschaften dieses Musters, und worin unterscheidet es sich vom ursprünglichen MVC und von MVP?

Model-View-Presenter (MVP) – Passive View

Ist Model-View-Presenter nur ein anderer Name für MVC? Was unterscheidet einen Presenter von einer View? Es gibt zahllose Interpretationen dieser GUI-Muster. Hier steht der Versuch einer Einordnung: Im Muster MVP läuft die gesamte Kommunikation zwischen View und Model über den Presenter, und in der Variante Passive View enthält die View keinerlei Logik.

Softwarearchitektur: Schichten, MVC und Data Binding

Anwendungen werden meist in Schichten gegliedert: Präsentation, Fachlogik und Datenhaltung. Innerhalb der Präsentation teilt das Muster Model-View-Controller die Oberfläche in Daten (Model), Darstellung (View) und Steuerung (Controller). Ausgehend von diesen beiden Dreiteilungen wagen wir einen Blick auf das GUI-Pattern MVC, dessen Herkunft, die zentralen Eigenschaften, die alle Interpretationen des Patterns gemein haben, und auf Data Binding, mit dem Oberfläche und Daten automatisch abgeglichen werden. Ist überall MVC drin, wo MVC draufsteht?

Maria aus dem Container

Mit MariaDB lassen sich besonders leicht Container aufsetzen und mit Daten befüllen. In diesem Tutorial werden Voraussetzungen für den Container zusammengetragen, die nötigen Befehle zusammengestellt. Und das Ergebnis kann sich sehen lassen: MariaDB-Container sind nur halb so groß wie MySQL-Container und nur ein Viertel der MS-Boliden.

Befüllter MS-SQL-Datenbankcontainer auf Knopfdruck

Datenbankserver lassen sich auf so ziemlich jedem Betriebssystem aufsetzen. Es ist jedoch häufig wichtig, unterschiedliche Server, definierte Datenbestände oder reproduzierbare Systemumgebungen auf Knopfdruck zu erstellen: für diese Anwendungsfälle spielen Container eine herausragende Rolle. Im folgenden Infotext wird kurz beschrieben, wie ein Container mit einem MS-SQL-Server aufgesetzt und benutzt werden kann. Es werden Voraussetzungen für den Container zusammengetragen, die nötigen Dateien erstellt und Befehle genannt. Am Ende können wir individuelle versionierbare Datenbanken auf Knopfdurck zur Verfügung stellen. Oder, um es zu buzzworden: “Infrastructure as Code”.

Container-Grundlagen: „Hello World“ aus der Dose

Container sind so etwas wie ein kleiner Bruder der virtuellen Maschinen: schlanker, agiler, wendiger. Das bekannteste Tool, um Container zu administrieren ist Docker. Dieses Tutorial beschäftigt sich mit den Grundlagen der Containernutzung mit Docker.