Der Einsatz von Softwareverträgen (Contracts) in der Agilen Software-Entwicklung mit Java ist ein noch junger Ansatz, obwohl die zugrunde liegenden Kernkonzepte aus den Anfängen der Objektorientierten Programmierung (OOP) stammen.
Die Verbindung von Test Driven Development (TDD) mit Softwareverträgen zu “TDD with Contracts” verspricht die Verfeinerung des aus Testfällen bestehenden Sicherheitsnetzes von TDD durch Vertragsklauseln.
Dieses verfeinerte Sicherheitsnetz sollte - so die erste These der Referenten - auch subtile Fehlerkonstellationen schon in der Entwicklung des Systems durch Verletzungen von Post-Conditions und Klassen-Invarianten aufdecken können.
Die zweite These besagt, dass durch die explizite Anzeige der Vertragsklauseln in der Entwicklungsumgebung (Eclipse JDT) eine der Hauptursachen von Softwarefehlern adressiert wird: Fehlerhafte Annahmen über die Semantik der öffentlichen Schnittstelle einer Klasse.
Erfahrungen in Schweden zeigen, dass 80% aller Fehler in Softwaresystemen auf die Verletzung von Pre-Conditions und Klassen-Invarianten zurückzuführen sind. Ursache sind fehlerhafte Annahmen über die Bedingungen, die erfüllt sein müssen, damit eine Methode korrekt ausgeführt werden kann. Und dies gilt nicht nur für Klassen, die von dritter Seite erstellt wurden, sondern ebenso für selbsterstellte Klassen.
Die zugrunde liegenden impliziten Annahmen für die Nutzung der öffentlichen Schnittstelle der Klassen explizit zu formulieren und zur Entwicklungszeit in Erinnerung zu rufen und die Einhaltung dieser Verträge zur Laufzeit zu überwachen, das ist das Ziel von Softwareverträgen.
Prof. Dr. Roland Küstermann und Hagen Buchwald stellen erste Erfahrungen mit TDD with Contracts in einem Pilotprojekt mit Java und C4J (Contracts for Java) an der DHBW Karlsruhe vor.
Hagen Buchwald, Vorstand der andrena objects ag, Karlsruhe, studierte von 1988 bis 1994 Wirtschaftsingenieurwesenam Karlsruhe Institute of Technology (KIT), der damaligen Universität Karlsruhe. Er ist seit 1994 in der IT Industrie tätig und hat als Vorstand eines IT-Beratungsunternehmens viel Erfahrung in der Konzeption und Durchführung von Software-Projekten für Banken und Versicherungen aufgebaut. Seit 2008 ist er Vorstand des CyberForums, des HighTech.Unternehmer.Netzwerks in der TechnologieRegion Karlsruhe. Von Oktober 2008 bis September 2011 bildete er im Zuge eines Lehrauftrags am KIT die angehenden Wirtschaftsingenieure im Paradigma des Objektorientierten Software-Engineerings aus. Seit Oktober 2011 verstärkt er das Vorstandsteam der andrena objects bei der Umsetzung der Vision, dass Software Made in Germany zum Qualitätsbegriff werden kann, wenn es gelingt, die Stärken des deutschen Ingenieurdenkens auf das Software-Engineering zu übertragen. Die Kombination von Test Driven Development und Design by Contract für Agile Vorgehensmodelle könnte solch ein Schritt sein.
Prof. Dr. Roland Küstermann ist Professor an der DHBW Karlsruhe.