Online Seminar  /  April 09, 2024  -  April 12, 2024, 09:00 – 12:30 Uhr

Requirements-first Development: Softwareentwurf und -test mit KI

Worum geht's? 

KI wird Softwareentwickler nicht überflüssig machen – aber KI verschiebt den Fokus bei der Programmierung. Codierung und technische Details übernimmt die KI gern und gut. Ein begrenztes Kontextfenster und unvermeidbar unvollständige, missverständliche oder gar fehlerhafte Anforderungen machen es allerdings nötig, die von der KI gelieferten Ergebnisse zu überprüfen.

Spätestens jetzt wird es also unverzichtbar, Produktionscode mit automatisierten Tests abzusichern. Ob die test-first oder test-after geschrieben werden, ist dabei gar nicht mehr so wichtig wie vor der KI als »Copilot« in der Programmierung. Testbarkeit als Codeeigenschaft ist zentral.

Testbarkeit wiederum hängt von Schnittstellen ab, die Sache des Entwurfs sind. Der gewinnt mit KI doppelt an Bedeutung, weil er Anforderungshorizonte absteckt, auf die KI angesetzt werden kann. Dass eine nicht triviale Software »in einem Rutsch« auch mit einem umfangreichen Prompt geschaffen werden könnte, ist in naher Zukunft nicht zu erwarten. Das liegt nicht an mangelnder Leistungsfähigkeit der Sprachmodelle, sondern an der Schwierigkeit, umfangreiche Anforderungen präzise genug natürlichsprachlich oder auch formal beschreiben zu können.

Modularität tritt damit zur Testbarkeit als Bedingung für die Möglichkeit KI-gestützter Softwareentwicklung. Es geht um eine Verschiebung des Fokus auf die Anforderungen hin. Requirements-first Development gehört die Zukunft der Softwareentwicklung: Aus Anforderungen sind Generierungsräume abzuleiten, für die sich Anforderungen genügend genau beschreiben lassen und deren Umsetzung automatisierte Tests mit guter Abdeckung überprüfen können.

Erleichterung dabei verschafft das Integration Operation Segregation Principle (IOSP), das testwürdige Logik gut erreichbar konzentriert.
 

Lernziele des Seminars

  • Flüssiger Wechsel zwischen KI-Chat und Code
  • KI nutzen für Codierung, Debugging, Analyse, Entwurf
  • Möglichkeiten und Grenzen der KI für die Programmierung erkunden
  • Produktivität steigern
  • Sauberkeit der Codes steigern