vksi-magazin #7

36
Das Magazin des issn 1869-5442 Design by Contract Komponenten in der Software-Entwicklung Mister FZI – Professor Lockemann Jubiläum – 40 Jahre Fakultät für Informatik Innovative Software durch agile Werte Softwareentwicklung aus Karlsruhe Nr. 7 | November 2012 Magazin Verein der Karlsruher Software-Ingenieure

Upload: redaktion-vksi

Post on 31-Mar-2016

242 views

Category:

Documents


1 download

DESCRIPTION

Das Magazin des Vereins der Karlsruher Software Ingenieure: Design by Contract, Komponenten in der Software-Entwicklung

TRANSCRIPT

Page 1: VKSI-Magazin #7

Das Magazin des

issn

186

9-54

42

Design by ContractKomponenten in der Software-Entwicklung

Mister FZI – Professor Lockemann

Jubiläum – 40 Jahre Fakultät für Informatik

Innovative Software durch agile Werte

Softwareentwicklung aus Karlsruhe

Nr. 7 | November 2012Magazin

Verein der Karlsruher Software-Ingenieure

Page 2: VKSI-Magazin #7

VErEIN

Antrag auf Mitgliedschaft für Einzelpersonen Ich beantrage die Mitgliedschaft im Verein der Karlsruher Software-Ingenieure e.V. (VKSI)

Vorname, Name

Anschrift

Telefonnummer E-Mail

Arbeitgeber

Ich bin seit (Jahr/en) als Software-Ingenieur tätig.

Einzugsermächtigung (optional): Ich ermächtige den VKSI widerruflich die zu entrichtenden Beiträge zum Beginn des Kalenderjahres von meinem Giro-konto durch Lastschrift einzuziehen. Wenn mein Konto die erforderliche Deckung nicht aufweist, besteht seitens des Kreditinstitutes keine Verpflichtung zur Einlösung. Teileinlösungen werden im Lastschriftverfahren nicht vorgenommen.

Kontonummer, BLZ, Bank

Datum, Unterschrift

Der Mitgliedsbeitrag für natürliche Personen beträgt 50,- EUr, für Studierende und Auszubildenden 25,- EUr, für GI-Mitglieder 40,- EUr (Bescheinigungen bitte beilegen).

Datenschutzerklärung: Persönliche Daten unterliegen dem Datenschutz. Sie werden nicht veräußert und ausschließlich zu vereinsinternen Zwecken verwendet, insbesondere zur Aufrechterhaltung des Kontakts zu den Mitgliedern.

Antrag auf Mitgliedschaft für Juristische Personen, Firmen und wirtschaftlich aktive Organisationen Wir beantragen die Mitgliedschaft im Verein der Karlsruher Software-Ingenieure e.V. (VKSI)

Firma, Name der Organisation Anzahl der Mitarbeiter Name des Ansprechpartners

Anschrift

Telefonnummer E-Mail

Name, Vorname des/der Unterschreibenden (in Klarschrift) Datum, Unterschrift (Zeichnungsberechtigter)

Einzugsermächtigung (optional): Wir ermächtigen den VKSI widerruflich die zu entrichtenden Beiträge zum Beginn des Kalenderjahres von unserem Girokonto durch Lastschrift einzuziehen. Wenn unser Konto die erforderliche Deckung nicht aufweist, besteht seitens des Kreditinstitutes keine Verpflichtung zur Einlösung. Teileinlösungen werden im Lastschriftverfahren nicht vorgenommen.

Kontonummer, BLZ, Bank

Datum, Unterschrift

Der jährliche Mitgliedsbeitrag für Firmen und wirtschaftlich tätige Organisationen beträgt 250,- EUr (1 bis 9 Mitarbeiter), 500,- EUr (10 bis 99 Mitarbeiter), 1.000,- EUr (100 bis 999 Mitarbeiter), 2.000,- EUr (1.000 und mehr Mitarbeiter).

Datenschutzerklärung: Persönliche Daten unterliegen dem Datenschutz. Sie werden nicht veräußert und ausschließlich zu vereinsinternen Zwecken verwendet, insbesondere zur Aufrechterhaltung des Kontakts zu den Mitgliedern.

Verein der Karlsruher Software-Ingenieure (VKSI) e.V. | c/o Prof. Dr. ralf reussner | Forschungszentrum Informatik | Haid- und Neustr. 10-14 | 76131 Karlsruhe

Verein der Karlsruher Software-Ingenieure

2 VKSI MAGAZIN Nr. 7 November 2012

Page 3: VKSI-Magazin #7

EDITOrIAL

Willkommen!

Liebe Leserin, lieber Leser,

Contracts im Software Engineering, innovative Software durch agile Methoden, so lauten die Schwerpunkte unseres aktuel-len Magazins. Doch wir gestatten uns auch einen langen Blick zurück in dieser Ausgabe: Am 12. Oktober feierte die Karlsruher Informatikfakultät ihren 40. Geburtstag. Damit ist Karlsruhe die älteste deutsche Informatik-Fakultät und hat eine erstaun-liche Entwicklung hinter sich. Mit ursprünglich vier Instituten lehrte und forschte man im rechenzentrum der Universität. Heute lehren an der Informatik-Fakultät des KIT rund 40 Pro-fessoren und über 400 Mitarbeiter und forschen für Hightech-Wachstumsbranchen. Ob hocheffiziente routenplanung, auto-nome Sensornetzwerke, humanoide roboter oder kognitive Automobile – viele einschneidende Entwicklungen der Infor-matik, und insbesondere der Software-Technik, wurden und werden in Karlsruhe erzielt. Am KIT wurde das mit Ausstel-lung, Führungen, Demos und Vorträgen gebührend gefeiert, einige Impressionen des Festakts lesen Sie im Heft. Seit der Gründung der Fakultät ist auch Professor Lockemann Informa-tik-Professor in Karlsruhe – wenn auch inzwischen emeritiert. Seinen Werdegang erläutert der »Mister FZI« im Interview in der rubrik Karlsruher Köpfe.

Die Disziplin der Informatik (die damals noch die unter-schiedlichsten Namen trug) hatte ihr Karlsruher Debüt einige Jahre früher: September 1958 wurde die Z22 an der Universität Karlsruhe ausgeliefert und mit der Ausbildung der Program-mierung dieser Maschine begonnen. Details zu Taktfrequenz und Arbeitsspeicher muten heute fast skurril an. Allein die Taktfrequenz von 0,14 Megahertz im Jahr 1958 ist faszinierend niedrig. Der rechner verarbeitet also eine knappe Viertelmilli-on Befehle pro Sekunde. Eine heute übliche Frequenz ist etwa 3 Gigahertz. Man stelle sich vor, die Autos seien inzwischen um den gleichen Faktor schneller geworden …

Das Gründungsjahr der Karlsruher Informatik-Fakultät, 1972, ist auch das Jahr, in welchem Edsger Wybe Dijkstra den Turing-Preis erhielt und in seinem Aufsatz The Humble Pro-grammer schrieb: »To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now that we have gigantic computers, programming has become an equally gigantic problem.« Daran hat sich im Kern bis heute nichts geändert.

2012 jährt sich Turings Geburtstag zum hundertsten Mal. 1937 publiziert er den Artikel On Computable Numbers with

an application to the Entscheidungsproblem, der die Turing-Maschine beschreibt (und den Hinweis eines Gutachters ein-brachte, dass in dieser Zeitschrift rein englische Titel üblich wären). Während des Zweiten Weltkrieges gibt Alan Turing die entscheidenden Hinweise zur Entschlüsselung der ENIGMA-Codes und baut dafür einen speziellen mechanischen rechner, was zur Zerstörung der deutschen U-Boot Flotte wesentlich beiträgt. Ob Maschinen denken können, diese Frage faszinier-te ihn zeitlebens. 1952 wurde er wegen einer homosexuellen Beziehung angeklagt, 1954 starb Turing, man vermutet durch Suizid. Homosexuelle Handlungen waren – wie in den meisten anderen Ländern – auch in Großbritannien strafbar. In dieser Frage hat sich zum Glück inzwischen viel geändert.

Aktuelle Informationen zu Veranstaltungen des VKSI etc. erhalten Sie wie immer mit unserem Newsletter. Und wie immer schließen wir unser Editorial mit einer herzlichen Ein-ladung an unsere Leserinnen und Leser: Werden Sie Mitglied im VKSI e. V. Einen Aufnahmeantrag finden Sie in diesem Heft oder unter www.vksi.de.

Freundliche GrüßeIhreChristian Popp und ralf reussner

Christian Popp, Arvato Infoscore, Prof. Dr. ralf reussner, KIT / FZI

VKSI MAGAZIN Nr. 7 November 2012 3

Page 4: VKSI-Magazin #7

ENTWICKLErTAG 2013

Call for Contributions

5.–7. JuniDie Konferenz für Software Engineering

KARLSRUHERENTWICKLERTAG

2012Karlsruher Entwicklertag

Zuhören, erleben, mitreden.

2013

www.entwicklertag.de

ET-Flyer 121005.indd 1 05.10.12 09:08

Der Karlsruher Entwicklertag 2013 wird nächstes Jahr über drei Tage, vom 05. bis zum 07. Juni 2013, stattfinden. Neben dem Conference Day und dem Agile Day wird es auch kom-mendes Jahr an dem Freitag wieder einen Tutorial Day geben. Am Entwicklertag 2013 wollen wir sowohl Vorträge als auch interaktive Sessions anbieten. Wir bitten um Einreichungen für den Conference Day, den Agile Day und den Tutorial Day.

Wir freuen uns über Beiträge zu den aktuellen Entwicklungen im Bereich Java und .NET, sowie zu den Themenschwerpunk-ten Cloud, Mobile, Social Media und IT Security, aber auch zu anderen Themen Ihrer Wahl. Konzeptionelle Beiträge sind ebenso willkommen wie Erfahrungsberichte und die Vorstel-lung innovativer Produktideen.

Einreichungsschluss ist der 21. Dezember 2012.

Das Programmkomitee besteht aus:Dr. Susanne Kaufmann (regionalgruppe Karlsruhe der Gesellschaft für Informatik, GI)Dr. Klaus Krogmann (Verein der Karlsruher Software Ingenieure, VKSI)Jan Baumann (andrena objects ag)Jochen Winzen (andrena objects ag)

Alle Details zu Formaten etc. finden Sie auf der Website www.entwicklertag.de

4 VKSI MAGAZIN Nr. 7 November 2012

ARE YOU A DEVELOPER OR MANAGER?START A NEW DAY WITH US

Jetzt scannen und mehr erfahren.

Oder smarthouse.de/karriere besuchen.

Page 5: VKSI-Magazin #7

INHALT

EDITOrIAL Christian Popp, Professor Dr. Ralf Reussner: Willkommen! 3

JUBILäUM 40 Jahre Fakultät für Informatik 6

DESIGN By CONTrACT C4J Version 6.0 - mehr als Assert Statements:

VKSI stellt neues Framework vor 10

Warum es sinnvoll sein kann, sich auch heute noch über Verträge

Gedanken zu machen. 12

Design by Contract versus agile Prozesse

Interview mit Timm reinstorf 14

Wie schreibt man einen guten Softwarevertrag? 16

Der equals-Contract –

ein Beispiel für Contracts für Legacy Systeme 21

KOLUMNE CyBErTrENDS Anno 1972 23

KArLSrUHEr KöPFE Mister FZI – Professor Lockemann 24

AGIL Innovative Software entsteht durch agile Werte 28

IT UND rECHT Patente als Schutzmechanismen für technische Erfindungen. 32

NACHLESE Regisseure unserer Freizeit 34

rüCKSCHAU Sneak Preview des VKSI »QS Best Practices in Karlsruhe« 35

IMPrESSUM 34

ANZEIGEN andrena objects AG 26, 31

arvato infoscore GmbH 36

smarthouse Media GmbH 4

STP Informationstechnologie AG 9

CLOUDZONE 2013 23

TechniData IT-Service GmbH 27

POrTrAIT STP Informationstechnologie AG 8

VKSI MAGAZIN Nr. 7 November 2012 5

Nr. 7 | November 2012Softwareentwicklung aus Karlsruhe

Magazin

Page 6: VKSI-Magazin #7

JUBILäUM

1972 bringt Hewlett-Packard den ersten wissenschaftlichen Taschenrechner auf den Markt. Fünf ehemalige Mitarbeiter von IBM stellen das heute weltbekannte Unternehmen Sys-temanalyse und Programmentwicklung auf die Beine, Edsger Wybe Dijkstra erhält den Turing-Preis und die Universität Karlsruhe gründet Deutschlands erste Informatik-Fakultät.

Wie man auf der Feier zum 40. Geburtstag erfahren konnte, gab es ein hartes Kopf-an-Kopf-rennen zwischen den einschlä-gigen Standorten. Prof. Gerhard Goos, der erste Professor der Informatik in Karlsruhe, war formal noch bei der TU München angestellt, als er schon Vorsitzender der Karlsruher Berufungs-kommission wurde und kurzerhand 48 Stellen, darunter acht Professorenstellen zu besetzen hatte. In ganz Deutschland waren etwa 130 Professorenstellen zu besetzen, nach Goos Ansicht gab es dafür lediglich etwa 30 geeignete Köpfe. Und doch gelang in Karlsruhe ein erfolgreicher Start. Nach Goos waren dafür vor allem drei Faktoren verantwortlich: Erstens war die Fakultät ein Kind der ganzen Universität und nicht einer einzelnen Fakultät. Zweitens konnte bei der Berufung mit einer hohen Geschwindigkeit vorangegangen werden und drit-tens startete die Fakultät dann mit einer homogenen, jungen Professorenschaft (auch wenn es seiner Ansicht nach manch-mal ein Nachteil war, keinen Senior als repräsentanten im

Senat zu haben). Der erste Dekan der Fakultät für Informatik, Professor Detlef Schmid, ging noch einen Schritt zurück in sei-ner Beschreibung: er erläuterte die organisatorischen Mühen der Ebene, als man in der Universitätsverwaltung um die Ein-richtung des Studiengangs Informatik überhaupt gekämpft hatte.

40 Jahre später ist dieses ringen um Anerkennung schon lange nicht mehr vorstellbar. Eingeleitet wurde die Feier mit einem Grußwort von Eberhard Umbach, dem Präsidenten des

Hoch soll sie leben!Fakultät für Informatik am KIT wird 40

Von Susann Mathis

Prof. Gerhard Goos. Karlsruhes erster Informatik-Professor.

6 VKSI MAGAZIN Nr. 7 November 2012

Page 7: VKSI-Magazin #7

KIT, der unter anderem Energieinformatik, Big Data und Inter-net der Dinge als zentrale Herausforderung nannte. Oliver Gün-ther, der Präsident der Gesellschaft für Informatik, beschreibt das Fach Informatik als eine die Gesellschaft gestaltende Struk-turdisziplin und die von daher außerordentlich interessanten interdisziplinären Ansätze aus Karlsruhe. ralf reussner aus dem Direktorium des Forschungszentrums Informatik betont die seit 25 Jahren erprobte erfolgreiche Wechselwirkung zwi-schen Fakultät und FZI.

Schließlich grüßte auch noch Jochen Dietrich. Er war der erste in Karlsruhe diplomierte Informatiker, nur musste er sein Studium etwas heraus zögern, bis er nach Ausflügen nach Lyon und in die USA in Karlsruhe ordentlich Informatik studieren und auch diplomiert werden konnte.

Die Professoren Dillmann, Schmeck und Dreier erläuterten aktuelle Schwerpunkte der Fakultät und der Karlsruher Alum-nus Prof. Arndt Bode, Vorsitzender des Direktoriums des Leib-niz-rechenzentrums der Bayerischen Akademie der Wissen-schaften, begeisterte in seinem Festvortrag in die Zuhörerinnen und Zuhörer mit „SuperMUC: wissenschaftliches Höchstleis-tungsrechnen mit energieeffizientem Betrieb“.

Und ein weiteres Highlight schmückte den Festakt: die Klangcollage des Komponisten Johannes Helsberg mit der visuellen Gestaltung von Torsten Strer verzauberte und faszi-nierte das Publikum, indem sie vermeintlich bekannte Klänge und Bilder neu und überraschend zusammensetzte.

Hoch soll sie leben!Fakultät für Informatik am KIT wird 40

Von Susann Mathis

Jochen Dietrich. Karlsruhes erster Diplom-Informatiker.

Momentaufnahme der Klangcollage von Helsberg und Strer.

Prof. Dr. Oliver Günther, Präsident der Gesellschaft für Informatik

VKSI MAGAZIN Nr. 7 November 2012 7

Page 8: VKSI-Magazin #7

Porträt

Zugegeben, in Karlsruhe ist die STP AG zwar kein verbreiteter Begriff, aber dies ändert sich, sobald man die Stadtgren-zen hinter sich lässt. Was die Wenigs-ten wissen: die Karlsruher Software-schmiede ist mit 80 % Marktführer im Bereich Software für Insolvenzverwal-ter und genießt bundesweit einen aus-gesprochen guten Ruf. Mit ihrem Pro-dukt »winsolvenz« werden die größten Insolvenzen Deutschlands abgewickelt – dazu gehören so namhafte Verfahren wie Arcandor, TelDaFax oder Schlecker.

STP heute und wie es begannDas Unternehmen startete vor 19 Jahren eher ungewöhnlich. Die Firmengründer ralph Suikat und Gunther Thies ent-schlossen sich damals, eine Software für Insolvenzverwalter zu entwickeln. Da beide weder Juristen, noch Softwarespe-zialisten sind, brauchte es hartnäckigen Einsatz, viel Energie und jede Menge Herzblut, um mit dem neu entwickelten Produkt den Einzug in die Verwalter-kanzleien zu meistern. Heute ist winsol-venz bundesweit bei über 1.000 Insol-venzverwalter-Kanzleien etabliert.

»Wir begannen 1993 gemeinsam mit zwei Studenten, ein Programm für die

Bearbeitung und Abwicklung von Insol-venzfällen zu entwickeln. Im Vorfeld hat-ten wir zahlreiche Fallstudien in Kanz-leien erstellt und brachten dann ein Jahr später das Produkt winsolvenz auf den Markt«, so ralph Suikat. »Heute sind wir der drittgrößte Anbieter für rechts-anwaltssoftware.« Die avisierte Kunden-gruppe war mit rund 1.200 Insolvenz-verwaltern bundesweit eher klein und es waren bereits fünf Konkurrenten mit eigenen Lösungen am Markt vertreten. Schwierige Voraussetzungen. »Dennoch gelang der Durchbruch«, freut sich Gun-ther Thies, »inzwischen sind sogar die Gerichte in fünf Bundesländern flächen-deckend mit unserer Software ausgestat-tet.«

Die Produktfamilie wächstSeit einigen Jahren entwickelt und ver-treibt die STP AG zusätzlich ein Doku-mentenmanagementsystem (DMS), das ebenfalls konsequent auf die Anforde-rungen von Juristen ausgerichtet ist und seit 2009 kommt auch noch ein eigenes Kanzleimanagementsystem (KMS) zur Familie hinzu. Für KMS wurde der kom-plette Produktplanungs- und Entwick-lungsprozess umgestaltet. »Ein völlig

neues Arbeiten, von pair-programming über Scrum bis hin zu neuen Technologi-en wie WPF – es blieb kein Stein auf dem anderen, aber es hat sich gelohnt!« bestä-tigt Koray Kazgan, einer der Softwareent-wickler im KMS-Team.

Leben und arbeiten bei STP – »have fun«Lauftreff, Schwimmgruppe, Kickerteam, Freitagessen, Massagetag, … es gibt viele gute Gründe, bei STP anzufangen. Aber das Wichtigste ist und bleibt: die STP’ler haben FUN bei der Arbeit! Nur ein moti-viertes Team kann gute Leistungen erbringen und, dass die STP-Mitarbeiter super motiviert sind, spiegelt sich in den High-Class-Produkten. Dass das wirklich so ist, beweisen diverse Auszeichnungen, die der STP AG verliehen wurden. So ist STP nicht nur TOP-Arbeitergeber, son-dern zählt auch zu den Gewinnern des BFamily Awards.

Lust bekommen, sich beim STP-Team zu bewerben? Dann einfach die Unter-lagen an Silke Folkerts schicken: [email protected] oder anrufen: 0721 82815 0.

STP Informationstechnologie AGMarktführer mit der extra Portion Charme

Nur ein motiviertes Team kann gute Leistungen erbringen.

8 VKSI MAGAZIN Nr. 7 November 2012

Page 9: VKSI-Magazin #7

„ Ich habe meinen Traumjob gefunden! Und was ist mit Dir?“ Koray Kazgan,Softwareentwickler, KMS-Team STP Informationstechnologie AG

Softwareentwickler (w/m) Business Intelligence LösungenSoftwareentwickler .NET/C# (w/m)Business Analyst (m/w)/ Requirements Engineer Business Analyst (m/w) Finanzen / ControllingSenior Quality Analyst und Test Manager (m/w)

Jetzt bewerben! Ihre vollständigen Bewerbungsunterlagen mit Ihren Gehaltsvor-stellungen und dem frühesten Eintrittsdatum senden Sie bitte an unser Personalbüro oder per E-Mail an: [email protected] Informationen zu unserem Unternehmen finden Sie unter: www. stp-online.de

STP Informationstechnologie AG | Lorenzstraße 29 | 76135 Karlsruhe | Tel. 0721 82815 0 | [email protected] | www.stp-online.de

Page 10: VKSI-Magazin #7

DESIGN By CONTrACT

Agil zu programmieren und trotzdem formale Verträge bei-spielsweise mit Schnittstellen zu verknüpfen – das ermöglicht das neue Release von C4J, Contracts for Java. Damit werden die Möglichkeiten des Assert Konzepts in Java entscheidend erweitert. Vorgestellt wird das neue Release des Frameworks vom Verein Karlsruher Software Ingenieure (VKSI). Wie der VKSI hervorhebt, wird C4J 6.0 durch Eclipse vollständig unterstützt und schützt die definierten Vertragsbeziehun-gen auch bei intensivem Refactoring. Damit erfüllt das neue Release eine äußerst wichtige Anforderung der agilen Ent-wicklergemeinde an das Contracts for Java-Konzept.

Verträge, also das systematische Definieren von Vor- und Nach-bedingungen und Klassen-Invarianten, die zur Laufzeit über-prüft werden können, steigern nachhaltig die Effektivität und Effizienz in der Software-Entwicklung. Mit dem neuen release des Frameworks C4J legt der VKSI nun eine Entwicklung vor, die das Assert-Konzept von Java entscheidend erweitert. C4J ermöglicht das Formulieren und Vererben von machtvollen Verträgen mit den vollständigen sprachlichen Mitteln von Java. Dazu trennt C4J die Vertragsklauseln konsequent vom Quell-code durch das Einführen von Vertragsklassen. Beim Laden der Klasse fügt C4J per Bytecode-Instrumentation die Vorbedin-gungen direkt zu Beginn der zu schützenden Methoden ein und die Nachbedingungen und Klassen-Invariante an deren Ende. Weil die Bedingungen damit auf Bytecode-Ebene Bestandteil der Methoden geworden sind, können sie zur Laufzeit über-prüft werden.

Kritik an der ersten Generation 2006 veröffentlichte der schwedische Entwickler Jonas Berg-ström die erste Generation von C4J auf sourceforge.net. Diese erste Generation von C4J verwendete Hagen Buchwald, damals beim Karlsruher Institut für Technologie (KIT), ab April 2009, um mehr als 1800 Studierende in der Objekt-Orientierten Programmierung mit Java zu schulen. Unterstützung erhielt

er von roland Küstermann, der C4J in EJE (Editing Java Easily) integrierte, eine Ent-wicklungsumgebung, die am KIT für Ausbildungszwecke verwendet wird. Auf dem Ent-wicklertag 2011 stellten Jonas Bergström und Hagen Buch-wald gemeinsam die erste Generation von C4J vor – und ernteten sowohl Zustimmung als auch Kritik. Denn die erste Generation von C4J – die Ver-sionen 1.0 bis 2,7.5 von Jonas Bergström – beruhten auf Namenskonventionen, d.h. C4J ord-nete die Vertragsmethoden der zu schützenden Methode über die Präfixe pre_ und post_ und der übereinstimmenden Signa-tur der Methode zu.

Diese Art der Zuordnung wird von Eclipse beim refactoring nicht unterstützt. In der logischen Folge können beim refac-toring Inkonsistenzen auftreten. Zwar erkennt C4J der ers-ten Generation diese Inkonsistenzen und gibt entsprechende Warnmeldungen aus. Selbst reparieren kann es die Fehler aber nicht. Damit entsteht für die Softwareentwickler die Zusatz-arbeit, alle Warnmeldungen nach einem refactoring abzuar-beiten, um die Konsistenz zwischen der zu schützenden Klas-se (target class) und der zugehörigen Vertragsklasse (contract class) wieder herzustellen.

Diese Zusatzarbeiten waren einer der Hauptkritikpunkte an den ersten Generationen von C4J. Weitere Fragen auf dem Karlsruher Entwicklertag 2011 lauteten etwa »Zementiert Design by Contract (DbC) nicht den Produktivcode, sodass ggf. refactorings unterbleiben?« oder »Verletzen Vertragsklassen nicht das Dry-Prinzip der Objektorientierung: Don‘t repeat yourself?« und »Können Vertragsklassen auch iterativ und inkrementell entstehen, gemäß des agilen Prinzips?«.

C4J Version 6.0 - mehr als Assert Statements: VKSI stellt neues Framework vor

Jonas Bergström

10 VKSI MAGAZIN Nr. 7 November 2012

Page 11: VKSI-Magazin #7

Elegante Ansätze für die zweite GenerationEiner der Zuhörer, Ben romberg, hatte hingegen durchaus den Eindruck, dass C4J elegante Ansätze bot, um das auszuglei-chen, was man als »objektorientierte Lücke« von Java bezeich-nen könnte. romberg, erfahrener agiler Software-Ingenieur von andrena objects, entwickelte einige Monate später gemein-sam mit Hagen Buchwald, inzwischen ebenfalls bei andrena, die zweite Generation von »Contracts for Java«: C4J 6.0.

C4J 6.0, die zweite Generation von C4J, setzt auf den Stär-ken der ersten Generation von Jonas Bergström auf und ver-meidet gleichzeitig deren Schwächen.

Die Vertragsklassen stehen nun in einer direkten Verer-bungsbeziehung zu den sie schützenden Klassen. Das ist spezi-ell für das refactoring wichtig, da durch die Vererbungsbezie-hung Eclipse alle refactoring-Mechanismen automatisch auch auf die zugehörige Vertragsklasse anwendet. Folglich entste-hen auch bei intensivem refactoring keine Inkonsistenzen und damit auch keine aufwändigen Nacharbeiten für die Program-mierer.

Zudem können nun auch Verträge für Legacy Code erstellt werden, da das neue C4J keinerlei Anpassungen im Quellcode der zu schützenden Klasse erfordert, sondern vollständig von außen an die bestehenden Klassen per Vererbungsbeziehung angehängt werden können. Diese Fähigkeit öffnet C4J den immer wichtiger werdenden Anwendungsbereich der Sanie-rung von Alt-Systemen (Legacy Code), zumal C4J es nun auch erlaubt, Vertragsverletzungen lediglich zu loggen und keinen AssertionError zu werfen, was gerade für bereits in Produktion stehende Systeme sehr wichtig ist.

C4J überprüft sowohl für Legacy Code als auch neue Soft-ware-Projekte, dass ein Software-System am Ende auch wirk-lich stets genau das tut, was es tun soll.

C4J Version 6.0 - mehr als Assert Statements: VKSI stellt neues Framework vor

Contracts for Java (C4J) – Tutorial mit Coding Dojos

Ben romberg und Hagen Buchwald führen mit einem C4J-Tutorial in das Thema Contracts for Java ein. Dieses kosten-freie Tutorial wird in identischer Form zwei Mal angeboten:23. November 2012, 14:00 – 18:00 Uhr25. Januar 2013, 14:00 – 18:00 UhrOrt: Technologiepark Karlsruhe, Albert-Nestler-Str. 9, 1. OG, großer Schulungsraum der andrena objects agZielgruppe: Java Software Entwickler und Software EngineersMaximale Teilnehmerzahl: 16 TeilnehmerAgenda:●● Kurzeinführung in das Konzept von Contracts for Java●● Installation von C4J unter Eclipse●● C4J-Demo: Die Klasse Account

●● Systematisches Erstellen von Softwareverträgen (6 Prinzi-pien)

●● Coding Dojo zum systematischen Erstellen von Soft-wareverträgen

●● Externe Verträge für Legacy Systeme●● Coding Dojo zum Erstellen von externen Softwareverträgen

für Legacy Systeme●● Vererbung von Softwareverträgen●● Coding Dojo zum Vererben von Softwareverträgen●● Softwareverträge für die Standard Java Klassenbibliothek●● Coding Dojo equals-Contract●● Ausblick

Anmeldung unter www.vksi.de/c4j.html

Ben romberg Hagen Buchwald

Auf den folgenden Seiten lesen Sie zum Thema

●● »Entwurf mit Verträgen – Was ist »design by contract«? Warum es sinnvoll sein kann, sich auch heute noch über Verträge Gedanken zu machen« von ralf reussner

●● »Design by Contract versus agile Prozesse« Interview mit Timm reinstorf

●● »Wie schreibt man einen guten Softwarevertrag?« von Hagen Buchwald und Ben romberg

●● »Der equals-Contract – Softwareverträge für Legacy Sys-teme« von Hagen Buchwald und Ben romberg

Mehr Informationen zu C4J finden Sie unter http://c4j.vksi.de .

VKSI MAGAZIN Nr. 7 November 2012 11

Page 12: VKSI-Magazin #7

DESIGN By CONTrACT

DbC ist eine Software-Entwurfs- und Implementierungstech-nik, die in den 80er Jahre von dem französischen Informati-ker Bertrand Meyer (ETH Zürich und Firma ISE) entwickelt wurde. Dabei werden Methoden von Klassen mit logischen Aussagen beschrieben: einer Vorbedingung, die eine Aussage macht über den Zustand des Objekts zur Laufzeit, die Parame-terwerte, damit die Methode funktioniert, einer Nachbedin-gung, die eine Aussage macht über den Zustand des Objekts und den Rückgabewert nach Ausführung der Methode sowie (optional) einer Invariante, die Aussagen macht über den Zustand des Objekts vor und nach der Ausführung.

Grundsätzlich gilt, dass die Implementierung der Methode die Einhaltung der Nachbedingung verantwortet, unter der Annah-me, dass die Vorbedingung gilt. Gilt sie nicht, ist also eine Ver-letzung der Nachbedingung legitim. Für das Einhalten der Vorbedingung ist der Code der die Methode aufrufenden Stelle verantwortlich, d. h., der Code hat dafür zu sorgen, dass Para-meterwerte im richtigen Wertebereich liegen und das Objekt einen gemäß der Vorbedingung gültigen Zustand hat.

Historisch basiert das Ganze auf den Hoare-Tripeln, einer Software-Verifikationstechnik, die Ende der 60er Jahre vom britischen Informatiker Sir Tony Hoare entwickelt wurde. Bei dieser Technik muss auf Ebene einzelner Anweisungen nach-gewiesen werden, dass bei Gelten einer Vorbedingung nach Ausführung der Anweisung die Nachbedingung gilt. Aus theo-retischer Sicht könnte man also sagen, DbC sind Hoare-Tripel auf Granularität von Methoden. Aus theoretischer Sicht ist ein anderer Bezug vielleicht noch erhellender, denn letztlich ist auch ein Typsystem einer Programmiersprache eine (sehr schwache) Umsetzung von DbC: Die Typen der Parameter stel-len eine Vorbedingung dar (welche lediglich besagt, dass der Wert eines Parameters in der durch den Typ bestimmten Menge typzulässiger Werte liegt). So besagt etwa ein String-Parame-tertyp, dass der dazugehörende Parameter einen Wert hat, der in der Menge aller Zeichenketten (eben Strings) enthalten ist.

Analoges gilt für den rückgabetyp, der eine schwache Nach-bedingung beschreibt.

Der Vorteil des Typsystems liegt in der Prüfung zur überset-zungszeit, das heißt, Fehler werden dem Entwickler, nicht dem Anwender, gemeldet. Erkauft wird diese frühe (statische) über-prüfbarkeit durch das Arbeiten auf einer starken Abstraktion der eigentlichen Semantik des Programms. Dies hat eine banale und leidige Konsequenz: Bloß weil ein Programm typ-korrekt ist, muss es noch lange nicht fehlerfrei sein ...

Vor- und NachteileDer Vorteil von DbC liegt in der klareren Definition von Ver-antwortlichkeiten zwischen Methodenimplementierer und Methodenaufrufer als dies Methodensignaturen mit ihren Parameter- und rückgabetypen erlauben. Das Explizitmachen von Vor- und Nachbedingungen zwingt Software-Entwickler in der regel zu genauerem Nachdenken über die Bedeutung der Methode, insbesondere darüber, mit welchen Werten und Zuständen die Methode zurechtkommen muss, und mit wel-chen nicht.

Der Entwickler des aufrufenden Codes hat durch DbC genauer dokumentiert, was von seinem Code erwartet wird, aber auch, was er nach Ablauf der Methode erwarten kann. Dadurch ergibt sich weniger Code-redundanz, da klar ist, ob Code zur Behandlung von Sonderfällen in der Methode stehen muss oder beim Aufrufer. Eine Duplikation (wie beim defensiv-en Programmieren, bei dem man den Entwickler der Methode zwingt, alle möglichen Arten von Zuständen und Parameter-werten zu behandeln) wird vermieden. Im Vergleich zu Typen sind Vor- und Nachbedingungen aussagemächtiger, was aber meist zur Konsequenz hat, dass sie nicht mehr statisch prüfbar sind, also erst zur Laufzeit geprüft werden können. (Dies liegt, der Hinweis sei im Turing-Jahr erlaubt, an der prinzipiellen Unentscheidbarkeit des Halteproblems bei Turing-universell-en Kalkülen. Dies bedeutet, dass gewisse Eigenschaften von Programmen nicht statisch, sondern nur durch Ausführung des Programms selbst geprüft werden können.) Dennoch stellen Verträge eine gute Debugging-Hilfe dar, da es bei Verletzung einer Nachbedingung (und damit offensichtlicher Einhaltung der Vorbedingung, es) eine gute Heuristik ist, zunächst im Code der Methode nach dem Fehler zu suchen. Bei Verletzung einer Vorbedingung würde man dies stattdessen zunächst in dem aufrufenden Code machen.

An dieser zurückhaltenden Formulierung “Heuristik, zunächst ... zu suchen” erkennt man aber auch die Grenzen des Konzeptes: Oft sind Vor- und Nachbedingungen nicht präzise zu formalisieren. “Nicht präzise” heißt, dass sie nicht genau die Menge der zulässigen Parameterwerte und Objektzustände enthalten, die in einer Vorbedingung gefordert werden oder in einer Nachbedingung gelten können. Stattdessen werden oft Ober- oder Untermengen oder – schlimmer noch – andere Approximationen dieser Mengen beschrieben, sodass nicht

Entwurf mit Verträgen – Was ist »design by contract«?Warum es sinnvoll sein kann, sich auch heute noch über Verträge Gedanken zu machen.

Von Ralf Reussner (KIT/FZI)

Bertrand Meyer

12 VKSI MAGAZIN Nr. 7 November 2012

Page 13: VKSI-Magazin #7

RubRik

immer aus einer geltenden Vorbedingung geschlossen werden kann, ob wirklich die Methodenimplementierung funktioni-ert oder dass eine Methode durchaus funktioniert, auch wenn die Vorbedingung fehlschlägt. Analoges gilt für die Nachbedin-gung. Warum ist die präzise Beschreibung der Vor- und Nach-bedingung manchmal so schwierig? Dies liegt an zwei Arten von Komplexität, die damit verbunden sind:

1. Berechnungskomplexität: Der Aufwand zur Laufzeit zur Prüfung der exakten Vor- und Nachbedingung kann ähnlich hoch sein wie der Aufwand zur Ausführung der Methoden-implementierung. Diese Vervielfachung der Laufzeit ist man meistens nicht gewillt zu bezahlen. Vielleicht ändert sich dies, wenn man eine Idee Walter Tichys aufgreift, die Prü-fung der Verträge auf einen sich gerade langweilenden Kern eines Mehrkernprozessors auszulagern.

2. »Kognitive Komplexität«: Wenn das Spezifizieren der prä-zisen Vor- und Nachbedingung ähnlich schwierige Codes erfordert wie die Implementierung der Methode, so ist die Chance, dass der Entwickler hier einen Fehler macht, ähn-lich hoch wie die, einen Fehler bei der Implementierung zu machen. Auch wenn man argumentieren kann, dass man dann durch eine Inkonsistenz zwischen Verträgen und Implementierung doch noch eine Chance hat, Fehler leichter zu finden, als wenn nur der Code vorliegt, so schreckt der Aufwand zur Qualitätssicherung komplexer Vor- und Nach-bedingungen ab.

Glücklicherweise muss das nicht immer so sein: Manchmal ist es in der Tat sehr viel leichter zu prüfen, ob das Ergebnis einer Berechnung stimmt, als die Berechnung selbst durchzuführen. Als besonders einfaches Beispiel sei die Berechnung der Quad-ratwurzel gegeben: Die Prüfung durch Quadrieren des Ergeb-nisses ist leichter (kognitiv wie auch von der Laufzeit her) als das eigentliche Ziehen der Quadratwurzel. Hinzu kommt, dass auch für reellwertige Ergebnisse die Beschreibung der Vorbe-dingung (Parameter nicht negative Fließkommazahl) auch sehr einfach ist. In genau solchen Fällen, passt DbC sehr gut und manchmal hat man Glück, eine Methode dieser Art zu imple-mentieren.

übertragung auf KomponentenDie Trennung von Verantwortlichkeiten zwischen Metho-denimplementierer und Methodenaufrufer passt sehr gut zur Idee der Software-Komponente. Bei der komponentenbasier-ten Software-Entwicklung geht es darum, die Entwicklung der Komponente organisatorisch und personell zu trennen von der Nutzung der Komponente. Nur ist eine Komponen-te etwas anderes als eine Methode (man könnte für unseren Zusammenhang sagen: Eine Komponente ist eine Sammlung von Methoden und hat in sogenannten Bedarfsschnittstellen explizit gemachte Abhängigkeiten nach außen).

Weiterhin ist auch die Nutzung einer Komponente etwas anderes als der Aufruf einer Methode. Die Nutzung einer Komponente besteht entweder im Komponieren einer Kom-ponente mit anderen Komponenten oder im “Deployment” der Komponente (also darin, sie zum Einsatz zu bringen, sprich: in eine Ablaufumgebung einzusetzen). Also muss DbC übertragen werden auf Komponenten. Dies hat der Autor des Artikels in den 90er Jahren getan; Ergebnis: Die Bedarfsschnittstelle(n) der Komponente beschreiben die Vorbedingung der Komponente, die Nachbedingung wird durch die Angebotsschnittstelle(n) gegeben. Dass Kompo-nenten aufwendigere Schnittstellenbeschreibungen, also ledi-glich Signaturlisten, brauchen, und dass auch deswegen nur eine Vor- und eine Nachbedingung die Wiederverwendung der Komponente zu sehr einschränkt, zeigt, dass die übertragung von DbC noch etwas aufwendiger ist als hier skizziert. Letztlich braucht man sogenannte parametrisierte Verträge, bei denen aus einer Nachbedingung die Vorbedingung berechnet wird. Dies wird konzeptionell auch im Palladio-Architektursimulator des KIT und des FZI so genutzt. Eine ausführliche Diskussion würde hier aber zu weit führen. Interessierte seien auf www.palladio-simulator.com und dort genannte Artikel verwiesen.

Nutzung für MusterbeschreibungEs gibt noch einen anderen, leider viel zu wenig beachteten, Pfad von DbC in die Jetztzeit. Entwurfsmuster sind bekann-termaßen Lösungen für wiederkehrende Entwurfsprobleme. Dementsprechend müssen Entwurfsmuster oft generischer als durch reinen Code beschrieben werden. Hier stellen Verträge eine interessante Art dar, wie man zusätzlich zu den gängigen Arten Muster beschreibt. In dem Buch »Design Patterns and Contracts« von Jean-Marc Jezequel, Michel Train und Chris-tine Mingins werden die gängigen »Gang-of-Four« Entwurfs-muster durch relevante Vor- und Nachbedingungen beschrie-ben. Auch wenn es keinen empirischen Nachweis dafür gibt, erscheint es mir, dass dadurch die Essenz eines Musters gerade fürwenig Entwickler mit geringer Erfahrung in der Objekto-rientierung schneller verstanden wird. Dies wäre ein Hinweis darauf, dass tatsächlich durch Verträge eine sinnvolle Informa-tion über ein Programm beschrieben wird, welche durch schie-res Nachlesen im Code nur mühsam zu erhalten wäre. Dies ist vielleicht der Hauptgrund, warum es sinnvoll ist, sich auch heute noch über Verträge Gedanken zu machen.

Entwurf mit Verträgen – Was ist »design by contract«?Warum es sinnvoll sein kann, sich auch heute noch über Verträge Gedanken zu machen.

Von Ralf Reussner (KIT/FZI)

Prof. Dr. Ralf Reussner, Vorstand des VKSI, ist Leiter des Lehrstuhls Software-Entwurf und -Qualität am Institut für Programmstrukturen und Datenorganisation (IPD) der Fakultät für Informatik des Karls ruher Instituts für Tech-nologie (KIT) und wissenschaftlicher Vorstand des ForschungszentrumsInformatik (FZI) in Karlsruhe. sdq.ipd.kit.edu

VKSI MAGAZIN Nr. 7 November 2012 13

Page 14: VKSI-Magazin #7

DESIGN By CONTrACT

»Design by Contract versus agile Prozesse«Interview mit Timm Reinstorf über C4J und DbC

Von Susann Mathis

Was ist C4J1 und wie kam es dazu, dass der VKSI sich hier engagiert?Als wir den VKSI gegründet haben, hat-ten wir vor allem ein Ziel vor Augen: Wir wollten das Software Engineering Know-how in der region, aus Hochschulen und der Industrie, in seiner ganzen Vielfalt zusammen bringen, den Erfahrungsaus-tausch fördern, Synergien schöpfen und helfen, Innovationen zu verbreiten und vielleicht sogar, selbst Innovationen zu befördern.

Die Entstehungsgeschichte der neuen Version von C4J ist ein gutes Beispiel für die Arbeit des VKSI: 2010 wurden Vereinsmitglieder auf die Arbeit von Hagen Buchwald2 aufmerksam: er hatte »Design by Contract« in zwei Program-mier-Grundvorlesungen für Wirtschafts-ingenieure und Informationswirte am KIT eingeführt. Hagens Ziel war es, den Studierenden so von Anfang an ein zen-trales Konzept der Objektorientierung, nämlich das Konzept des abstrakten Datentyps, nahe zu bringen. Das Konzept der Contracts wurde ja beispielsweise ursprünglich in der Programmierspra-che und Programmierumgebung Eif-fel umgesetzt. Für Java gab es mehrere Implementierungen, die Contracts für Java bereitstellten. Hagen hatte sich für

1 Siehe Artikel von ralf reussner »Entwurf mit Verträgen – Was ist ‚design by contract‘?«

2 Hagen Buchwald arbeitete damals am Insti-tut für Angewandte Informatik und Formale Beschreibungsverfahren des KIT und hatte »Design by Contract« in die Vorlesungen »Programmieren in Java« und »Program-mieren kommerzieller Systeme« eingeführt.

das Open Source Framework C4J von Jonas Bergström entschieden.

Neben seiner Lehrtätigkeit machte Hagen Buchwald Contracts dann auch zum Gegenstand empirischer Unter-suchungen. Er führte Experimente zur Frage durch, welche Auswirkungen der Einsatz von Contracts auf Qualität und Produktivität haben. Das hat uns als VKSI natürlich unmittelbar interessiert und wir haben die Durchführung dieser Experimente unterstützt und unsere Mit-glieder um Teilnahme gebeten.

Ist DbC nicht eine olle Kamelle? Eiffel gehört ja nun nicht gerade zu den lebendigsten Sprachen und die Funktion der Abbildung und des Testens von Schnittstellen haben Unit Tests übernommen. TDD und Unit Testing sind erprobte Engi-neering Techniken. Sind Contracts nicht unnötig? Warum beschäftigt sich der VKSI ausgerechnet mit dem Thema?Contracts und DbC sind jeweils Klassi-ker-Themen des Software Engineering. Sie gehen letzten Endes auf Tony Hoare und Bertrand Meyer zurück, Allein die intellektuelle Auseinandersetzung mit diesen Klassikern hilft uns, Konzepte der Objektorientierung besser zu verstehen und damit zu verstehen, wie Qualität in Software-Systeme kommt.

Uns geht es immer darum, wie wir noch schneller qualitativ hochwertige Software erstellen können und wir sahen hier einen vielversprechenden Ansatz, dazu müssen wir zwei Konzepte trennen: Contracts sind u.a. ein Qualitätstool. Genau wie Unit Tests. Die kann ich auf

unterschiedliche Weise einsetzen: Im Forward Engineering,- wie das z.B. in DbC passiert, zur nachträglichen QS oder zur Sanierung maroder Systeme, oder wie auch immer. Design by Contract ist ein Vorgehensmodell zur Erstellung von Systemen mit hoher Qualität. Das Analo-gon hier ist »Test Driven Development«.

Inwieweit helfen Contracts und DbC im praktischen Engineering weiter?Darüber hatten wir im letzten Jahr, aus-gehend vom Entwicklertag, eine lange und fruchtbare Diskussion. Wir hatten Hagen Buchwald dann als Keynote Spea-ker und Jonas Bergström, den Entwick-ler von C4J, auf den Entwicklertag 2011 eingeladen und auch auf dem Entwick-lertag die Diskussion zum Thema »Test Driven Development und Design by Con-tract – Freunde oder Feinde« geführt. Lars Alvincz und Hagen Buchwald haben den damaligen Stand der Diskussion in einem sehr schönen Artikel für das Objektspektrum3 dargestellt. Ein zen-traler Kritikpunkt an der bestehenden Implementierung von C4J war, dass das Tooling noch etwas schwerfällig ist und das Ganze nicht so recht in einen agilen Prozess passt.

Der Entwicklertag hat Ben romberg motiviert, C4J ganz neu zu schreiben. Ben hat dabei die Impulse aus der Dis-kussion aufgenommen und C4J tauglich für agiles Software Engineering gemacht. Wir sind unheimlich stolz, dass wir als VKSI C4J 6.0 vorstellen können – das Ergebnis einer ganzen unserer Aktivitä-ten. Unser Dank gilt insbesondere Ben und auch Jonas Bergström, der Bens Framework einem review unterzogen hat (und der begeistert ist von der neuen Version).

Kannst Du den Punkt, dass C4J nicht so recht in einen agilen Pro-zess passt, noch etwas erläutern?

3 OBJEKTspektrum 05/2011 »DbC und TDD: Partner oder Kontrahenten« http://www.andrena.de/fachartikel

Der VKSI veröffentlicht die Version 6.0 des Open Source Frame-works C4J. Timm reinstorf, Software-Ingenieur bei andrena objects ag und Mitglied des Präsidiums des VKSI erläutert im Interview, was C4J ist, wofür es sich seiner Ansicht nach eignet und warum der VKSI sich hier engagiert. Die Fragen stellte Susann Mathis (VKSI Magazin)

14 VKSI MAGAZIN Nr. 7 November 2012

Page 15: VKSI-Magazin #7

»Design by Contract versus agile Prozesse«Interview mit Timm Reinstorf über C4J und DbC

Von Susann Mathis

Das war die Kritik auf dem Entwickler-tag. Mit dem neuen release von C4J können Contracts viel eleganter und leichtgewichtiger implementiert werden. Contracts können uns in der Qualitäts-sicherung helfen. C4J 4.0 kann definitiv eine rolle in einen Werkzeugkasten für agiles Software Engineering spielen. Und darum geht es uns.

Nach meiner ganz persönlichen Mei-nung passt allerdings »Design by Con-tract« als methodischer Ansatz in der Tat nicht zu einem agilen Vorgehen. Eine detaillierte Betrachtung würde den rahmen des Interviews sprengen. Nur so viel: Test Driven Development ist im Kern ein exploratives inkrementel-les Vorgehen – im Gegensatz zu einem analytischen Vorgehen. Es gibt sehr viel heuristisches und systematisches Wissen über TDD. TDD ist konsolidierte Engi-neering-Praxis im besten Sinn des Wor-tes. DbC wäre ein Schritt zurück zu einem Denken, das ein wasserfall-ähnliches Modell nahe legt. Diese Einschätzung ändert natürlich nichts an meiner Hoch-achtung vor dem Konzept.

Welche Einsatzszenarien kannst Du Dir also für Contracts vorstel-len? Und was macht der VKSI wei-ter damit?Jonas Bergström hat auf dem Entwick-lertag 2011 eine sehr eindrucksvolle Geschichte4 erzählt. Jonas war der ver-antwortliche Entwicklungsingenieur für eine Poker-Engine, die in verschiedenen online Poker-Plattformen im Einsatz ist. Das System war extrem fehler anfällig. Kein schöner Zustand: Stress für die Betreiber, Stress für den Software-Lie-feranten, Stress für Jonas. Jonas kannte von seiner Informatik-Ausbildung Eif-fel und kam so auf die Idee, die Poker-Engine mit Contracts zu umhüllen und dann Poker-Bots, also kleine Software-Systeme, die Poker-Spieler simulierten, gegen das System spielen zu lassen und so die Fehler zu entdecken, bevor sie im echten online-Spiel auftreten. Jonas ist es so gelungen, sehr schnell ein extrem fehleranfälliges und fragiles System zu

4 http://www.andrena.de/ Entwicklertag/2011/Downloads/Agile-Day/ C4J-DbC.pdf

stabilisieren. Ein denkbares Szenario für den Einsatz von C4Jsehe ich also in der Sanierung bestehender Systeme.

Einen weiteren vielversprechen-den Ansatz skizziert Microsoft mit dem Zusammenspiel von Contracts mit dem Framework Pex5. Pex generiert Tests aus formulierten Contracts.

Generell kann das Zusammenspiel von Contracts und Unit Tests helfen, Systeme noch sicherer zu machen. Im Forward Engineering und im reverse Engineering. Wir wissen von einigen Fir-men in region, welche die Initiative auf-gegriffen haben. Wir werden als VKSI die Erfahrungen mit Contracts zusammen-führen und unsere Mitglieder beim Ein-satz von C4J unterstützen. Mehr Infor-mationen zu unseren Angeboten finden Interessierte auf der VKSI Website.

www.vksi.de

5 https://research.microsoft.com/en-us/ projects/pex/documentation.aspx

Timm reinstorf auf dem Entwicklertag 2012

VKSI MAGAZIN Nr. 7 November 2012 15

Page 16: VKSI-Magazin #7

DESIGN By CONTrACT

Wie

schr

eibt

man

ein

en g

uten

Sof

twar

ever

trag

?H

agen

Buc

hwal

d (a

ndre

na o

bjec

ts a

g), B

en R

ombe

rg (a

ndre

na o

bjec

ts a

g)

In ih

rem

Buc

h1 „D

esig

n by

Con

trac

t, by

Exa

mpl

e“ s

telle

n R

icha

rd M

itch

ell u

nd J

im

McK

im s

echs

Pri

nzip

ien

vor,

die

ein

sys

tem

atis

ches

Ers

telle

n ei

nes

volls

tänd

igen

So

ftw

arev

ertr

ages

erl

aube

n.

In d

iese

m A

rtik

el w

ende

n w

ir d

iese

sech

s Pri

nzip

ien

auf d

as B

eisp

iel e

ines

Sof

twar

ever

-tr

ags f

ür e

in B

ankk

onto

(Acc

ount

) an,

das

dur

ch fo

lgen

des I

nter

face

def

inie

rt se

i:

package jbf;

public interface AccountSpec {

int MAX_AMOUNT = 100000;

void deposit(int amount);

void withdraw(int amount);

int getBalance();

String getOwner();

int availableAmount();

} 1 r

icha

rd M

itch

ell,

Jim

McK

im: D

esig

n by

Con

trac

t, by

Exa

mpl

e; 2

002,

Add

ison

-Wes

ley

Uns

er B

ankk

onto

ken

nt e

inen

Bet

rag MAX_AMOUNT

, der

max

imal

auf

ein

mal

abg

ehob

en

wer

den

darf

. Alle

Bet

räge

sin

d in

Cen

t aus

gedr

ückt

, so

dass

ein

Bet

rag

von

100.

000

Cen

t ein

em B

etra

g vo

n 1.

000

Eur

o en

tspr

icht

. Wir

kön

nen

Gel

d au

f uns

er B

ankk

onto

ei

nzah

len

(eng

l.: d

epos

it) u

nd a

uch

wie

der

abhe

ben

(eng

l.: w

ithdr

aw).

Zud

em k

ön-

nen

wir

den

akt

uelle

n K

onto

stan

d (e

ngl.:

bal

ance

), d

en K

onto

inha

ber (

engl

.: ow

ner)

un

d de

n zu

r Zei

t max

imal

ver

fügb

aren

Bet

rag

abfr

agen

(eng

l.: a

vaila

bleA

mou

nt).

War

um g

ehen

wir

von

ein

em In

terf

ace

und

nich

t von

ein

er K

lass

e au

s? G

ute

Soft

-w

arev

ertr

äge

wer

den

aus

eine

r B

lack

Box

Per

spek

tive

hera

us e

rste

llt: N

ur d

ie n

ach

auße

n si

chtb

aren

, als

o öf

fent

liche

n M

etho

den

sind

für

die

For

mul

ieru

ng d

er V

er-

trag

skla

usel

n zu

läss

ig. D

aher

ist e

s au

ch v

on V

orte

il, S

oftw

arev

ertr

äge

für I

nter

face

s zu

defi

nier

en, d

a In

terf

aces

die

öff

entli

che

Schn

ittst

elle

ein

er K

lass

e de

finie

ren.

Alle

M

etho

den

eine

s Int

erfa

ces s

ind

impl

izit

publ

ic, a

lle „V

aria

blen

“ ein

es In

terf

aces

sind

im

pliz

it pu

blic

final u

nd d

amit

Kon

stan

ten.

Wen

n w

ir n

un n

och

– in

Ana

logi

e zu

m I

sola

tions

prin

zip

von

Uni

t-Te

sts

– S

oft-

war

ever

träg

e al

s is

olie

rte

Uni

t-C

ontr

acts

auf

fass

en, d

ann

ist

die

Gru

ndla

ge fü

r di

e Fo

rmul

ieru

ng e

ines

gut

en S

oftw

arev

ertr

ages

gel

egt:

Jed

e K

lass

e ha

t ih

ren

eige

nen

Ver

trag

, der

sic

h re

in a

uf d

ie ö

ffen

tlich

en M

etho

den

dies

er K

lass

e be

zieh

t un

d de

r st

ets

gelte

n m

uss,

una

bhän

gig

davo

n, in

wel

chem

Kon

text

die

se K

lass

e ei

nges

etzt

w

ird.

Die

ses

Isol

atio

nspr

inzi

p is

t di

e G

rund

anna

hme,

auf

der

die

sec

hs P

rinz

ipie

n vo

n r

icha

rd M

itche

ll un

d Ji

m M

cKim

ber

uhen

.

Form

ulie

re In

varia

nten

um

die

sich

tbar

en E

igen

scha

ften

des O

bjek

ts z

u be

schr

eibe

n,

die

vor u

nd n

ach

jede

r Met

hode

naus

führ

ung

erfü

llt se

in m

üsse

n.

Prin

zip

6

Prüf

e fü

r jed

e Ab

frage

und

jede

s Kom

man

do,

ob e

ine

Vorb

edin

gung

erfo

rder

lich

ist.

Prin

zip

5

Tren

ne A

bfra

gen

von

Kom

man

dos.

Abfra

gen

gebe

n ei

n Er

gebn

is zu

rück

, änd

ern

jedo

ch n

icht

die

sich

tbar

en E

igen

scha

ften

des O

bjek

ts.

Kom

man

dos k

önne

n da

s Obj

ekt v

erän

dern

, geb

en je

doch

kei

n Er

gebn

is zu

rück

.

Prin

zip

1

Tren

ne e

lem

enta

re A

bfra

gen

von

abge

leite

ten

Abfra

gen.

Ab

gele

itete

Abf

rage

n kö

nnen

dur

ch e

lem

enta

re A

bfra

gen

ausg

edrü

ckt w

erde

n.

Prin

zip

2

Erst

elle

für j

ede

abge

leite

te A

bfra

ge e

ine

Nac

hbed

ingu

ng,

die

besc

hrei

bt, w

elch

es E

rgeb

nis z

urüc

kgeg

eben

wird

, au

sged

rück

t dur

ch e

ine

oder

meh

rere

ele

men

tare

Abf

rage

n.

Prin

zip

3

Erst

elle

für j

edes

Kom

man

do e

ine

Nac

hbed

ingu

ng,

die

den

Wer

t jed

er e

lem

enta

ren

Abfra

ge a

uflist

et.

Der

vol

lstän

dige

sich

tbar

e Eff

ekt e

ines

jede

n Ko

mm

ando

s ist

nun

bek

annt

.

Prin

zip

4

Sech

s Pri

nzip

ien

vom

Mit

chel

l/M

cKim

16 VKSI MAGAZIN Nr. 7 November 2012

Page 17: VKSI-Magazin #7

1. P

rinz

ip: T

renn

e A

bfra

gen

durc

h @

Pur

e vo

n K

omm

ando

s (C

omm

and-

Que

ry-S

epar

atio

n). A

bfra

gen

gebe

n ei

n E

rgeb

nis

zurü

ck, ä

nder

n je

doch

ni

cht d

ie s

icht

bare

n Ei

gens

chaf

ten

des

Obj

ekts

. Kom

man

dos

könn

en d

as

Obj

ekt v

erän

dern

, geb

en je

doch

kei

n Er

gebn

is z

urüc

k.

Die

Met

hode

n ge

tBal

ance

, get

Ow

ner

und

avai

labl

eAm

ount

sin

d na

ch d

iese

r D

efin

i-tio

n A

bfra

gen,

wäh

rend

die

Met

hode

n de

posi

t und

with

draw

Bef

ehle

sin

d. D

as p

asst

au

ch g

ut z

u un

sere

m V

erst

ändn

is e

ines

Ban

kkon

tos:

Die

Abf

rage

des

Kon

tost

ande

s is

t –

wie

der

Nam

e sc

hon

sagt

– e

ine

Abf

rage

und

sol

lte d

en s

icht

bare

n Zu

stan

d de

s K

onto

s ni

cht v

erän

dern

– n

icht

den

Kon

tost

and,

nic

ht d

en N

amen

des

Kon

toin

ha-

bers

und

auc

h ni

cht

die

Höh

e de

s m

axim

al v

erfü

gbar

en B

etra

gs. W

enn

ich

jedo

ch

Gel

d au

f mei

n K

onto

ein

zahl

e (e

ngl.:

dep

osit)

ode

r ab

hebe

(en

gl.:

with

draw

), d

ann

sollt

e si

ch d

er K

onto

stan

d du

rcha

us ä

nder

n. D

iese

Kom

man

dos v

erän

dern

den

sich

t-ba

ren

Zust

and

des B

ankk

onto

s.In

Jav

a kö

nnen

wir

die

Tre

nnun

g vo

n K

omm

ando

s und

Abf

rage

n du

rch

die

Ann

o-ta

tion

@Pu

re v

ollz

iehe

n, d

ie d

urch

die

Anw

eisu

ng

import de.vksi.c4j.Pure;

aus

dem

C4J

Pac

kage

impo

rtie

rt w

ird.

Met

hode

n, d

ie m

it @

Pure

ann

otie

rt w

urde

n,

dürf

en k

eine

n Se

itene

ffek

t bew

irke

n, d

.h. s

ie st

elle

n A

bfra

gen

dar.

Zus

ätzl

ich

könn

en

– zu

r Unt

erst

reic

hung

die

ses P

rinz

ips –

noc

h K

omm

enta

re e

inge

fügt

wer

den,

um

die

K

omm

ando

s von

den

Abf

rage

n zu

tren

nen.

package jbf;

import de.vksi.c4j.Pure;

public interface AccountSpec {

int MAX_AMOUNT = 100000;

// commands

void deposit(int amount);

void withdraw(int amount);

// queries

@Pure

int getBalance();

@Pure

String getOwner();

@Pure

int availableAmount();

}

2. P

rinz

ip: T

renn

e el

emen

tare

Abf

rage

n vo

n ab

gele

itet

en A

bfra

gen.

Abg

e-le

itet

e A

bfra

gen

könn

en d

urch

ele

men

tare

Abf

rage

n au

sged

rück

t wer

den.

Abg

elei

tete

Abf

rage

n (e

ngl.:

der

ived

que

ries

) e

rken

nt m

an d

aran

, das

s si

e si

ch a

us

elem

enta

ren

Abf

rage

n (e

ngl.:

bas

ic q

ueri

es)

zusa

mm

ense

tzen

. Uns

er B

ankk

onto

ve

rfüg

t übe

r die

abg

elei

tete

Abf

rage

ava

ilabl

eAm

ount

, die

uns

Aus

kunf

t dar

über

gib

t, w

ie v

iel G

eld

wir

max

imal

abh

eben

dür

fen,

ohn

e da

s Kon

to zu

übe

rzie

hen.

Ber

echn

et

wir

d di

eser

Bet

rag

mit

Hilf

e de

r el

emen

tare

n A

bfra

ge getBalance.

Ele

men

tare

Abf

ra-

gen

hing

egen

sin

d ty

pisc

herw

eise

get

-Met

hode

n, d

ie d

irek

t den

Wer

t ein

es A

ttri

buts

ei

ner K

lass

e ab

frag

en.

Wen

den

wir

nun

das

zw

eite

Pri

nzip

auf

uns

er B

eisp

iel a

n, te

ilen

sich

die

Abf

rage

n in

zwei

Lag

er:

// basic queries

@Pure

int getBalance();

@Pure

String getOwner();

// derived queries

@Pure

int availableAmount();

VKSI MAGAZIN Nr. 7 November 2012 17

Page 18: VKSI-Magazin #7

DESIGN By CONTrACT

3. P

rinz

ip: E

rste

lle f

ür je

de a

bgel

eite

te A

bfra

ge e

ine

Nac

hbed

ingu

ng, d

ie

besc

hrei

bt, w

elch

es E

rgeb

nis z

urüc

kgeg

eben

wir

d, a

usge

drüc

kt d

urch

ein

e od

er m

ehre

re e

lem

enta

re A

bfra

gen.

Um

ein

e N

achb

edin

gung

in J

ava

form

ulie

ren

zu k

önne

n, m

üsse

n w

ir z

uers

t ein

mal

ei

ne V

ertr

agsk

lass

e er

stel

len,

auf

die

das

Inte

rfac

e A

ccou

nt m

it H

ilfe

der C

4J-A

nno-

tatio

n @ContractReference

ver

wei

st:

package jbf;

import de.vksi.c4j.ContractReference;

import de.vksi.c4j.Pure;

@ContractReference(AccountSpecContract.class)

public interface AccountSpec {

int MAX_AMOUNT = 100000;

// commands

void deposit(int amount);

void withdraw(int amount);

// basic queries

@Pure

int getBalance();

@Pure

String getOwner();

// derived queries

@Pure

int availableAmount();

}

Das

„Sk

elet

t“ d

er V

ertr

agsk

lass

e A

ccou

ntSp

ecC

ontr

act k

önne

n w

ir u

ns d

irek

t dur

ch

Ecl

ipse

erz

euge

n la

ssen

:

package jbf;

public class AccountSpecContract implements AccountSpec {

@Override

public void deposit(int amount) {

}

@Override

public void withdraw(int amount) {

}

@Override

public int getBalance() {

return 0;

}

@Override

public String getOwner() {

return null;

}

@Override

public int availableAmount() {

return 0;

}

} Wir

form

ulie

ren

nun

– w

ie v

om d

ritt

en P

rinz

ip g

efor

dert

– d

ie N

achb

edin

gung

für

die

abge

leite

te A

bfra

ge a

vaila

bleA

mou

nt:

@Override

public int availableAmount() {

if (postCondition()) {

int result = result();

assert result == Math.min(target.getBalance(),MAX_AMOUNT) :

“result = max(balance, MAX_AMOUNT);

}

return ignored();

}

Die

sta

tisc

hen

C4J

-Met

hode

n re

sult

() u

nd i

gnor

ed()

wer

den

über

die

im

port

- A

nwei

sung

import static de.vksi.c4j.Condition.*;

impo

rtie

rt. D

amit

ist n

un d

as d

ritt

e Pr

inzi

p er

füllt

: Die

abg

elei

tete

Abf

rage

ava

ilabl

e-A

mou

nt v

erfü

gt n

un ü

ber e

ine

Nac

hbed

ingu

ng, d

ie a

uf B

asis

der

ele

men

tare

n A

bfra

-ge

getBalance

form

ulie

rt is

t.

18 VKSI MAGAZIN Nr. 7 November 2012

Page 19: VKSI-Magazin #7

4. P

rinz

ip: E

rste

lle fü

r jed

es K

omm

ando

ein

e N

achb

edin

gung

, die

den

Wer

t je

der e

lem

enta

ren

Abf

rage

aufl

iste

t. D

er vo

llstä

ndig

e sic

htba

re E

ffek

t ein

es

jede

n B

efeh

ls is

t nun

bek

annt

.

Auf

uns

er B

eisp

iel a

ngew

ende

t bed

eute

t die

s: W

ir m

üsse

n di

e W

irku

ng d

er b

eide

n K

omm

ando

s deposit

und

withdraw

mit

Hilf

e de

r el

emen

tare

n A

bfra

gen

getBalance

und

getOwner

vol

lstä

ndig

bes

chre

iben

. Wen

n w

ir G

eld

auf u

nser

Kon

to e

inza

hlen

, als

o da

s K

omm

ando

dep

osit

anw

ende

n, d

ann

erw

arte

n w

ir, d

ass

sich

dad

urch

der

Kon

to-

stan

d um

den

ein

geza

hlte

n B

etra

g er

höht

, der

Kon

toin

habe

r si

ch je

doch

dad

urch

ni

cht v

erän

dert

:

@Override

public void deposit(int amount) {

if (postCondition()) {

assert target.getBalance() == old(target.getBalance()) + amount :

“balance = old balance + amount”;

assert unchanged(target.getOwner()) : “owner unchanged”;

}

}

Wen

n w

ir h

inge

gen

Gel

d vo

n un

sere

m K

onto

abh

eben

, dan

n er

war

ten

wir

, das

s si

ch

der

Kon

tost

and

um d

en a

bgeh

oben

en B

etra

g ve

rmin

dert

. Der

Kon

toin

habe

r so

ll au

ch d

urch

die

ses K

omm

ando

nic

ht v

erän

dert

wer

den.

@Override

public void withdraw(int amount) {

if (postCondition()) {

assert target.getBalance() == old(target.getBalance()) - amount :

“balance = old balance - amount”;

assert unchanged(target.getOwner()) : “owner unchanged”;

}

}

Die

Var

iabl

e ta

rget

zei

gt h

ierb

ei a

uf d

as z

u sc

hütz

ende

Obj

ekt,

in u

nser

em F

all a

uf

das

Ban

kkon

to. D

iese

Var

iabl

e m

üsse

n w

ir m

it H

ilfe

der

C4J

-Ann

otat

ion @Target

als

priv

ates

Att

ribu

t der

Ver

trag

skla

sse

dekl

arie

ren:

public class AccountSpecContract implements AccountSpec {

@Target

private AccountSpec target;

Dam

it is

t die

Ver

trag

skla

sse

nun

com

pilie

rbar

und

das

vie

rte

Prin

zip

ist e

rfül

lt.

5. P

rinz

ip: P

rüfe

für j

ede

Abf

rage

und

jede

s Kom

man

do, o

b ei

ne V

orbe

din-

gung

erf

orde

rlic

h is

t.

Bet

rach

ten

wir

zue

rst

die

Kom

man

dos.

Bei

m E

inza

hlen

ein

es B

etra

gs s

ollt

e de

r B

etra

g gr

ößer

Nul

l sei

n, d

a ei

n B

etra

g vo

n 0

kein

en N

utze

n er

zeug

te u

nd e

in n

egat

i-ve

r Bet

rag

eine

r Abh

ebun

g gl

eich

käm

e. D

amit

ergi

bt si

ch fü

r das

Kom

man

do d

epos

it

folg

ende

Vor

bedi

ngun

g: assert amount > 0 : “amount > 0”;

Bei

m A

bheb

en e

ines

Bet

rags

gilt

die

gle

iche

Vor

bedi

ngun

g: D

er a

bzuh

eben

de

Bet

rag

soll

größ

er N

ull s

ein.

Wei

terh

in s

oll g

elte

n, d

ass

durc

h di

e A

bheb

ung

das

Kon

to n

icht

übe

rzog

en w

ird,

d.h

. der

abz

uheb

ende

Bet

rag

mus

s kl

eine

r od

er g

leic

h de

m a

ktue

llen

Kon

tost

and

sein

. Dar

aus

ergi

bt s

ich

folg

ende

Vor

bedi

ngun

g fü

r da

s K

omm

ando

withdraw

: assert amount > 0 : “amount > 0”;

assert target.getBalance() >= amount : “balance >= amount”;

Die

dre

i Abf

rage

n getBalance

, getOwner

und

availableAmount

könn

en je

derz

eit

ohne

Ein

-sc

hrän

kung

en a

usge

führ

t wer

den.

Sie

ben

ötig

en a

lso

kein

e V

orbe

ding

unge

n.D

ie e

rkan

nten

Vor

bedi

ngun

gen

wer

den

als

if-B

lock

vor

die

Nac

hbed

ingu

ng

gesc

hrie

ben,

so

dass

die

ent

spre

chen

den

Met

hode

n de

r Ver

trag

skla

sse

nach

Anw

en-

dung

des

fünf

ten

Prin

zips

nun

folg

ende

s Aus

sehe

n ha

ben:

@Override

public void deposit(int amount) {

if (preCondition()) {

assert amount > 0 : “amount > 0”;

}

if (postCondition()) {

assert target.getBalance() == old(target.getBalance()) + amount :

“balance = old balance + amount”;

assert unchanged(target.getOwner()) : “owner unchanged”;

}

}

@Override

public void withdraw(int amount) {

if (preCondition()) {

assert amount > 0 : “amount > 0 “;

assert target.getBalance() >= amount : “balance >= amount”;

}

if (postCondition()) {

assert target.getBalance() == old(target.getBalance()) - amount :

“balance = old balance - amount”;

assert unchanged(target.getOwner()) : “owner unchanged”;

}

}

VKSI MAGAZIN Nr. 7 November 2012 19

Page 20: VKSI-Magazin #7

DESIGN By CONTrACT

6. P

rinz

ip: F

orm

ulie

re I

nvar

iant

en u

m d

ie s

icht

bare

n E

igen

scha

ften

des

O

bjek

ts z

u be

schr

eibe

n, d

ie v

or u

nd n

ach

jede

r M

etho

dena

usfü

hrun

g er

füllt

sein

müs

sen.

Die

Obj

ekto

rien

tier

te P

rogr

amm

ieru

ng k

ennt

das

sog

enan

nte

Dr

y-Pr

inzi

p: D

on’t

rep

eat y

ours

elf!

Wie

derh

ole

Dic

h ni

cht,

scha

ffe

kein

e r

edun

danz

en! K

lass

enin

vari

-an

ten

sind

ein

e M

öglic

hkei

t, da

s D

ry-

Prin

zip

auch

für

Ver

trag

skla

ssen

ein

zuha

lten.

In

vari

ante

n au

s de

r Si

cht v

on C

4J s

ind

nich

ts a

nder

es a

ls Z

usic

heru

ngen

, die

alle

n N

achb

edin

gung

en d

er K

omm

ando

s ein

er K

lass

e gem

eins

am si

nd. I

n un

sere

m B

eisp

iel

ist d

ies d

ie Z

usic

heru

ng, d

ass s

ich

der N

ame

des K

onto

inha

bers

nic

ht v

erän

dert

hat

:

assert unchanged(target.getOwner()) : “owner unchanged”;

Die

se Z

usic

heru

ng la

gern

wir

nun

in e

ine

Kla

ssen

inva

rian

te a

us. E

ine

Kla

ssen

inva

-ri

ante

ist e

ine

Met

hode

, die

dur

ch d

ie C

4J-A

nnot

aito

n @

Cla

ssIn

vari

ant m

arki

ert i

st:

@ClassInvariant

public void invariant() {

assert unchanged(target.getOwner()) : “owner unchanged”;

}

Dam

it si

nd a

lle s

echs

Pri

nzip

ien

der

Ver

trag

sers

tellu

ng a

uf d

ie V

ertr

agsk

lass

e an

ge-

wen

det w

orde

n. D

er v

olls

tänd

ige

Ver

trag

laut

et:

package jbf;

import static de.vksi.c4j.Condition.*;

import de.vksi.c4j.*;

public class AccountSpecContract implements AccountSpec {

@Target

private AccountSpec target;

@ClassInvariant

public void invariant() {

assert unchanged(target.getOwner()) : “owner unchanged”;

}

@Override

public void deposit(int amount) {

if (preCondition()) {

assert amount > 0 : “amount > 0”;

}

if (postCondition()) {

assert target.getBalance() == old(target.getBalance()) + amount :

“balance = old balance + amount”;

}

}

@Override

public void withdraw(int amount) {

if (preCondition()) {

assert amount > 0 : “amount > 0 “;

assert target.getBalance() >= amount : “balance >= amount”;

}

if (postCondition()) {

assert target.getBalance() == old(target.getBalance()) - amount :

“balance = old balance - amount”;

}

}

@Override

public int getBalance() {

if (postCondition()) {

int result = result();

assert result >= 0 : “result >= 0”;

}

return ignored();

}

@Override

public String getOwner() {

if (postCondition()) {

String result = result();

assert result != null : “result != null”;

}

return ignored();

}

@Override

public int availableAmount() {

if (postCondition()) {

int result = result();

assert result == Math.min(target.getBalance(), MAX_AMOUNT) :

“result = max(balance, MAX_AMOUNT)”;

}

return ignored();

}

} Dur

ch d

ie s

yste

mat

isch

e A

nwen

dung

der

sec

hs P

rinz

ipie

n gu

ter

Ver

trag

sers

tellu

ng

könn

en w

ir si

cher

sein

, ein

en g

uten

Ver

trag

form

ulie

rt zu

hab

en, d

er d

as d

ynam

isch

e V

erha

lten

eine

s Ban

kkon

tos v

olls

tänd

ig u

nd p

räzi

se b

esch

reib

t.U

nd m

it di

esem

Ver

trag

hab

en w

ir n

un m

it de

n sp

rach

liche

n M

ittel

n vo

n Ja

va d

en

Dat

enty

p A

ccou

nt v

olls

tänd

ig d

urch

sei

n In

terf

ace AccountSpec

(Typ

und

Met

hode

n)

und

die

zuge

höri

ge V

ertr

agsk

lass

e AccountSpecContract

(Vor

- un

d N

achb

edin

gung

en

und

Kla

ssen

inva

rian

te) b

esch

rieb

en. I

n an

dere

n W

orte

n: W

ir h

aben

den

Abs

trak

ten

Dat

enty

p (A

DT)

Acc

ount

vol

lstä

ndig

mit

den

Mitt

eln

von

Java

bes

chri

eben

. Und

dam

it er

füllt

Jav

a nu

n en

dlic

h di

e D

efin

ition

der

obj

ekto

rien

tiert

en P

rogr

amm

ieru

ng2 :

Die

E

rste

llung

von

Sof

twar

esys

tem

en a

ls s

truk

turi

erte

Sam

mlu

ng v

on I

mpl

emen

tieru

n-ge

n A

bstr

akte

r Dat

enty

pen

(AD

Ts).

2 B

ertr

and

Mey

er: O

bjec

t-or

ient

ed S

oftw

are

Con

stru

ctio

n, 19

88, P

rent

ice

Hal

l Int

erna

tion

al

20 VKSI MAGAZIN Nr. 7 November 2012

Page 21: VKSI-Magazin #7

Der

equ

als-

Con

trac

t – S

oftw

arev

ertr

äge

für L

egac

y Sy

stem

evo

n H

agen

Buc

hwal

d un

d B

en R

ombe

rg (a

ndre

na o

bjec

ts a

g)

C4J

schl

ießt

ein

e Lü

cke

im S

prac

hdes

ign

von

Java

. Die

ser

Lück

e w

aren

sic

h di

e A

utor

en d

er J

ava

Kla

ssen

bibl

ioth

ek w

ohl b

ewus

st, w

ie d

ie v

erba

l bes

chri

eben

en

Vert

räge

in

der

Java

Doc

-Dok

umen

tati

on d

er J

ava

Cla

ss L

ibra

ry b

ewei

sen.

Der

eq

uals

-Con

trac

t der

Kla

sse

Obj

ect s

tich

t dab

ei b

eson

ders

ins

Aug

e, g

ilt e

r do

ch f

ür

jede

in J

ava

erst

ellt

e K

lass

e. N

ur k

onnt

e bi

slan

g se

ine

Ein

halt

ung

leid

er n

icht

aut

o -m

atis

ch ü

berp

rüft

wer

den,

was

bis

heu

te s

elbs

t bei

erf

ahre

nen

Soft

war

e-E

ntw

ick-

lern

zu

subt

ilen

Fehl

ern

führ

t. In

ein

er R

eihe

von

Art

ikel

n ha

ben

Ang

elik

a La

n-ge

r1 , Mar

tin

Ode

rsky

2 und

Jos

hua

Blo

ch3 v

ersu

cht,

eine

Anl

eitu

ng z

u ge

ben,

wie

die

eq

uals

-Met

hode

zu im

plem

enti

eren

ist,

um d

en eq

uals

-Con

trac

t bei

m Ü

bers

chre

iben

de

r eq

uals

-Met

hode

nic

ht u

ngew

ollt

zu

verl

etze

n. M

it C

4J is

t es

in J

ava

nun

mög

-lic

h, K

lass

en v

olls

tänd

ig m

itsa

mt i

hren

zuge

höri

gen

Vert

räge

n zu

bes

chre

iben

und

di

ese

Vert

räge

auc

h zu

ver

erbe

n. D

iese

Fäh

igke

it v

on C

4J w

ird

im n

un fo

lgen

den

Bei

spie

l gen

utzt

.

In d

er J

avaD

oc-D

okum

enta

tion

der

Kla

sse

Obj

ect i

st d

er e

qual

s-C

ontr

act w

ie fo

lgt

besc

hrie

ben:

» Th

e equals

met

hod

impl

emen

ts a

n eq

uiva

lenc

e re

latio

n on

non

-nul

l obj

ect r

efer

en-

ces:

●It

is r

efle

xive

: for

any

non

-nul

l ref

eren

ce v

alue

x, x.

equals(x) s

houl

d re

turn

true

. ●

●It

is s

ymm

etri

c: f

or a

ny n

on-n

ull r

efer

ence

val

ues x

and

y, x.equals(y)

sho

uld

retu

rn tr

ue if

and

onl

y if y.equals(x) r

etur

ns tr

ue.

●●

It is

tran

sitiv

e: fo

r any

non

-nul

l ref

eren

ce v

alue

s x, y

, and

z, if

x.equals(y) r

etur

ns

true

and

y.equals(z) r

etur

ns tr

ue, t

hen x.equals(z) s

houl

d re

turn

true

. ●

●It

is c

onsi

sten

t: fo

r an

y no

n-nu

ll re

fere

nce

valu

es x

and

y, m

ultip

le in

voca

tions

of

x.equals(y)

con

sist

ently

ret

urn

true

or

cons

iste

ntly

ret

urn

false,

pro

vide

d no

in

form

atio

n us

ed in

equals

com

pari

sons

on

the

obje

cts i

s mod

ified

. ●

●Fo

r any

non

-nul

l ref

eren

ce v

alue

x, x.

equals(null)

shou

ld re

turn

false.

Th

e equals

met

hod

for c

lass

Object

impl

emen

ts th

e m

ost d

iscr

imin

atin

g po

ssib

le

equi

vale

nce

rela

tion

on o

bjec

ts; t

hat i

s, fo

r an

y no

n-nu

ll re

fere

nce

valu

es x

and

y,

this

met

hod

retu

rns t

rue i

f and

onl

y if x a

nd y

refe

r to

the

sam

e ob

ject

(x == y h

as th

e va

lue true

).

1 h

ttp:

//w

ww

.ang

elik

alan

ger.c

om/A

rtic

les/

Effe

ctiv

eJav

a/01

.Equ

als-

Part

1/01

.Equ

als1

.htm

l, 20

022

htt

p://

ww

w.a

rtim

a.co

m/le

java

/art

icle

s/eq

ualit

y.ht

ml,

2009

3 J

oshu

a B

loch

: Eff

ecti

ve J

ava:

A P

rogr

amm

ing

Lang

uage

Gui

de (J

ava

Seri

es),

200

8, A

ddis

on-

Wes

ley

Long

man

, Am

ster

dam

; Auf

lage

: 2nd

rev

ised

edi

tion

Not

e th

at it

is g

ener

ally

nec

essa

ry t

o ov

erri

de t

he hashCode

met

hod

whe

neve

r th

is m

etho

d is

ove

rrid

den,

so

as to

mai

ntai

n th

e ge

nera

l con

trac

t for

the hashCode

m

etho

d, w

hich

stat

es th

at e

qual

obj

ects

mus

t hav

e eq

ual h

ash

code

s.

«

Wir

nut

zen

nun

die

Fähi

gkei

t von

C4J

, Ver

träg

e au

ch im

Nac

hhin

ein

bere

its b

este

-he

nden

und

in ih

rem

Que

llcod

e ni

cht

meh

r ve

ränd

erba

ren

Kla

ssen

zuz

uord

nen.

K

onkr

et o

rdne

n w

ir d

er K

lass

e O

bjec

t den

Ver

trag

Obj

ectC

ontr

act z

u, d

er d

en eq

uals

-C

ontr

act f

orm

ulie

rt u

nd d

er a

n al

le K

lass

en w

eite

rver

erbt

wir

d:

package vksi;

import static de.vksi.c4j.Condition.*;

import de.vksi.c4j.*;

@Contract(forTarget = Object.class)

public class ObjectContract {

@Target

private Object target;

private Object z = null;

@Override

public boolean equals(Object obj) {

if (postCondition()) {

boolean result = result();

if (obj == null) {

assert result == false : “if obj == null then false”;

} else {

if (z == null) {

z = obj;

}

Object x = target;

Object y = obj;

assert x.equals(x) == true : “reflexive”;

assert x.equals(y) == y.equals(x) : “symmetric”;

if (x.equals(y) && y.equals(z)) {

assert x.equals(z) == true : “transitive”;

}

assert x.equals(y) == x.equals(y) : “consistent”;

if (x.equals(y)) {

assert x.hashCode() == y.hashCode() :

“if x equals y then equal hashcodes”;

}

VKSI MAGAZIN Nr. 7 November 2012 21

Page 22: VKSI-Magazin #7

DESIGN By CONTrACT

}

}

return ignored();

}

}

Meh

r ist

nic

ht z

u tu

n. D

a je

de K

lass

e di

rekt

ode

r ind

irek

t von

Obj

ect e

rbt,

gilt

die-

ser

Ver

trag

nun

für

alle

Kla

ssen

uns

eres

Jav

a-Pr

ojek

ts. B

etra

chte

n w

ir n

un n

och

die

Wir

kung

auf

die

ein

fach

e K

lass

e Po

int,

die

die

equa

ls-M

etho

de ü

bers

chre

ibt,

jedo

ch

verg

isst

, die

has

hCod

e-M

etho

de g

leic

herm

aßen

zu

über

schr

eibe

n:

package vksi;

public class Point {

private int x;

private int y;

public Point(int x, int y) {

this.x = x;

this.y = y;

}

public int getX() {

return x;

}

public int getY() {

return y;

}

@Override

public boolean equals(Object obj) {

boolean result = false;

if (obj instanceof Point) {

Point other = (Point) obj;

result = this.getX() == other.getX();

result = result && this.getY() == other.getY();

} else {

result = false;

}

return result;

}

// Fehler: hashCode vergessen zu ueberschreiben

}

Die

Kla

sse

Poin

t erb

t im

pliz

it vo

n de

r Kla

sse

Obj

ect.

Der

von

der

Kla

sse

Obj

ect g

eerb

-te

equ

als-

Con

trac

t wir

d be

im A

ufru

f der

Met

hode

equ

als ü

berp

rüft

.D

ie T

estk

lass

e Po

intT

est

ruft

nun

zu

Test

zwec

ken

die

equa

ls-M

etho

de a

n ei

ner

Inst

anz d

er K

lass

e Po

int a

uf:

package vksi;

import static org.junit.Assert.assertTrue;

import org.junit.Test;

public class PointTest {

@Test

public void testEquals() {

Point p1 = new Point(1, 2);

Point p2 = new Point(1, 2);

assertTrue(p1.equals(p2)); // Zeile 13: Post-Condition verletzt

}

} Die

Nac

hbed

ingu

ngs-

Zusi

cher

ung

if (x.equals(y)) {

assert x.hashCode() == y.hashCode() :

“if x equals y then equal hashcodes”;

}

wir

d di

rekt

nac

h de

r Aus

führ

ung

von

equa

ls a

ls v

erle

tzt e

rkan

nt u

nd fü

hrt z

u fo

lgen

-de

m A

sser

tion-

Err

or:

java.lang.AssertionError: if x equals y then equal hashcodes (post-condition)

at vksi.ObjectContract.equals(ObjectContract.java:41)

at vksi.Point.equals(Point.java:31)

at vksi.PointTest.testEquals(PointTest.java:13)

Das

Bei

spie

l des

equ

als-

Con

trac

ts v

eran

scha

ulic

ht, w

ie e

infa

ch e

s m

it C

4J is

t, an

be

steh

ende

Kla

ssen

wie

z.B

. die

Kla

ssen

der

Jav

a-K

lass

enbi

blio

thek

(Jav

a C

lass

Lib

-ra

ry, J

CL)

nac

hträ

glic

h di

e in

Jav

aDoc

bes

chri

eben

en V

ertr

äge

anzu

häng

en, u

m

dere

n E

inha

ltung

zur L

aufz

eit ü

berp

rüfe

n zu

kön

nen.

Die

Jav

a C

lass

Lib

rary

im Z

uge

eine

s Ja

va C

omm

unity

Pro

jekt

s vo

llstä

ndig

mit

Ver

trag

skla

ssen

zu

inst

rum

entie

ren

ist d

as Z

iel d

es C

4JC

L-Pr

ojek

ts, d

as z

ur Z

eit i

m r

ahm

en e

iner

Mas

tera

rbei

t bei

der

an

dren

a ob

ject

s ag

vorb

erei

tet w

ird.

22 VKSI MAGAZIN Nr. 7 November 2012

Page 23: VKSI-Magazin #7

CyBErTrENDS

CLOUDZONE 2013 – Mehr Attraktivität durch vielfältigen rahmen

Unter dem Motto »IT – einfach, günstig, sicher!« werden am 15. und 16. Mai 2013 auf der Kommunikationsplattform CLOUDZONE in der Messe Karlsruhe Produkte und Lösungen im Bereich Cloud-Computing den interessierten Anwendern präsentiert. Für die dann dritte Auflage der CLOUDZONE sind bereits jetzt wichtige Cloud-Player dabei, darunter unter ande-rem: 1&1, Amazon Webservices, CAS Software, AppSphere, TechniData, Fraunhofer IML, Leitwerk, PTV und Telemaxx.

Einen wichtigen Part der Kommunikationsplattform CLOUDZONE nehmen die Branchenveranstaltungen des EuroCloud Deutschland_eco. Seit 2012 gehört bereits der EuroCloud Anwenderkongress zum Begleitprogramm der CLOUDZONE. Im rahmen einer abendlichen Gala werden in Karlsruhe die deutschen Eurocloud Awards verliehen. »2013 wird erstmalig auch die EuroCloud Deutschland Conference für Cloud-Service-Anbieter an den IT-Standort Karlsruhe ver-legt und am Vortag der CLOUDZONE in Karlsruhe durchge-führt« sagt Bernd Becker, Vorstandssprecher des EuroCloud

Deutschland_eco. »Für Cloud Computing ist die CLOUDZONE ein wichtiges Sprachrohr in den Markt«, so Becker weiter. Eben-falls stattfinden wird der nun-mehr fünfte Trendkongress net economy, der inhaltlich vom FZI Forschungszentrum Informatik Karlsruhe gestaltet wird.

Die CLOUDZONE, die von der Karlsruher Messe- und Kon-gress-GmbH gemeinsam mit dem EuroCloud Deutschland_eco, dem Verband der deutschen Cloud Computing-Industrie sowie dem CyberForum e.V. und dem FZI Forschungszentrum Informatik Karlsruhe veranstaltet wird, versteht sich als über-greifende Kommunikationsplattform für den Bereich Cloud Computing. Zentrale Themen in diesem Jahr sind Mobile Solutions, CrM, Hr und Logistik. Die CLOUDZONE wendet sich – nach dem 2012 der Fokus auf kleine und mittelständi-sche Unternehmen gelegt wurde – nun auch an große Unter-nehmen.

Seit Anfang der siebziger Jahre wurden nun 5.700 Informa-tiker an der Fakultät ausgebildet, annähernd 1.000 Promoti-onen ausgesprochen. Das sind beeindruckende Zahlen, aber sind 40 Jahre schon ein Grund für ein richtig großes Jubilä-um? 40 Jahre sind nicht wirklich eine lange Zeit, noch nicht mal ein volles Arbeitsleben, und an andere Ereignisse des Jah-res 1972 kann man sich sogar noch erinnern – zumindest die älteren unter uns. Watergate, Olympische Spiele in München und Brandts Ostpolitik waren die beherrschenden Themen des Nachrichtenjahres. Und Hewlett-Packard brachte den ers-ten wissenschaftlichen Taschenrechner HP-35 auf den Markt. Aber ein anderes Ereignis verdeutlicht die durch die Informatik getragene Zeitenwende noch besser. Nicht weit nördlich von hier, in Weinheim gründeten 3 Absolventen der TH Karlsru-he zusammen mit zwei Kollegen zusammen die Systemanaly-se und Programmentwicklung Gbr . Die heutige SAP AG mit ihren heute rd. 56.000 Mitarbeitern und fast € 15 Mrd. Umsatz ist Sinnbild für den Siegeszug der Informatik und die elementa-re wirtschaftliche Bedeutung für Land und region.

Die IT ist eines der vier strategischen Handlungsfelder in Baden-Württemberg und die Aussage, dass die Branche »der Maschinenbau des 21. Jahrhunderts« wird, ist sicher nicht zu hoch gegriffen. Zwar liegt der Anteil an der Gesamtbeschäfti-gung noch unter 3%, aber die zweistelligen Wachstumsraten zeigen einen eindeutigen Trend. Alles in allem sind das viele gute Gründe zu feiern und ein bisschen Stolz zu zeigen, dass die Fakultät für Informatik mit einer anerkannt guten Ausbildung zu dieser Entwicklung einen wichtigen Beitrag geleistet hat.

Dennoch muss die Zukunft erst noch gewonnen werden. Die Entwicklung geht rasend schnell und die Konkurrenz anderer Hochschulen ist groß. Schon die zehn Jahre bis zum runden 50. Geburtstag werden für die aktuelle Generation von Profes-soren, wissenschaftlichen Mitarbeitern und Studenten große Herausforderungen bereithalten. Nicht nur wissenschaftliche Exzellenz und State-of- the-Art- Ausbildung sind gefordert, sondern auch unternehmerisches Denken und Transfer von Innovationen in die Unternehmenswelt. Eine SAP allein reicht nicht aus. Hier sind auch die Alumni und die Unternehmen der region gefordert, um wissenschaftliches Know-how in prakti-sches Handeln zu transferieren.

Einer der Gründerväter der Fakultät, Karl Steinbuch hat den Begriff der Informatik erstmals geprägt , als er ihn 1957 in einer Veröffentlichung über eine Datenverarbeitungsanlage für das Versandhaus Quelle gebrauchte. Trotz seiner visionären Ideen wird er damals keine Vorstellung gehabt haben, welche Ent-wicklung vor uns allen lag. Es ist sehr gut möglich, dass auch wir heute das Potenzial noch unterschätzen. Gehen wir es an.

Matthias Hornberger ist seit 2010 Vorstandsvor-sitzender des CyberForum e.V.. Er ist im Haupt-beruf CFO der KIZOO AG (ehemals WEB.DE AG), deren Vorstand er seit dem Börsen-gang im Jahr 2000 angehört. Die Durlacher KIZOO Technology Ventures hilft jungen Startup-Teams im IT-Umfeld zu wachsen. Der Schwer-punkt liegt auf Seed- und Frühphasen-Finanzie-rungen von SaaS, Internet & Mobile Services und Social Applications.

Anno 1972Kolumne von Matthias H0rnberger, Vorstand CyberForum

VKSI MAGAZIN Nr. 7 November 2012 23

Page 24: VKSI-Magazin #7

KArLSrUHEr KöPFE

Software Engineering aus Karlsruhe

Mister FZI: Professor Peter Lockemann Herr Professor Lockemann, wann und wie sind Sie während Ihres Studiums der Nachrichtentechnik zur Rechner-technologie gekommen?Prof. Lockemann: Als robert Piloty frisch habilitierter Privatdozent in München war, hörte ich 1956, während meines Studiums der Nachrichtentechnik, seine Vorlesung über die Grundzüge der rech-nertechnik von. Als Deutschland 1954 erlaubt wurde, Forschungsprogramme im Bereich rechnertechnologie einzu-richten, entwickelte sein Vater Hans Piloty zusammen mit dem Mathema-tiker robert Sauer an der TH München die PErM (Programmgesteuerter Elek-tronischer rechenautomat München). Die PErM wurde lange Jahre im rechen-zentrum der TH München und bei der Ausbildung von Entwicklungsingenieu-ren für die deutsche Computerindustrie benutzt. Heute steht sie im Deutschen Museum in München. Ich habe als Werkstudent dort erst mal Schaltkreise verlötet und Magnetköpfe für den Trom-melspeicher zusammengebaut , meine Diplomarbeit zum Magnetkernspeicher gemacht, promoviert habe ich dann in Transistortechnik.

1963 sind Sie nach der Kalifornien aus-gewandert, um dort am Caltech zu arbei-ten. Das California Institute of Techno-logy, gehört laut diversen Rankings zu

den zehn besten Universitäten der Welt. Womit haben Sie sich dort beschäftigt?Prof. Lockemann: Das waren prägende Jahre. Zum einen bin ich erst dort mit der Soft-waretechnik – naja, das war eigentlich noch Programmierung – in Berührung gekommen. Zum zweiten gab es dort gar keine Computer Science, sondern ein »Information Science«-Programm, das anwendungsgetrieben war. Zunächst habe ich in einer Gruppe gearbeitet, die Biosignale ausgewertet hat: Wir haben Experimente mit Sonden in

Fliegen augen durchgeführt und schon damals große Datenmengen produziert und ausgewertet. Später wechselte ich in eine sozialwissenschaftliche Gruppe, die Sprachwissenschaft in Verbindung mit der Auswertung anthropologischer Daten betrieb. So bin ich mehr oder weniger zufällig in die Datenbanktechnik geraten. Wir haben viel experimentiert und waren eine der ersten, die recovery-Techniken und einen softwarebasierten virtuellen Speicher entwickelten. Unser Datenbanksystem war graphbasiert

1972 wurde in Karlsruhe die Fakultät für Informatik gegründet, im gleichen Jahr trat auch Peter Lockemann seine Professur in Karls-

ruhe an. Das Leben des 1935 geborenen Lockemanns ist durchgängig eng mit der Entwicklung der Disziplin Informatik verbunden – auch wenn diese am Anfang noch gar nicht so hieß. Er hat – unter anderem – das FZI mitgegründet, über hundert wissenschaftliche Artikel und vier Lehrbücher geschrieben, er hat regelmäßig Gastprofessuren im Ausland und Berateraufgaben für Ministerien wahrgenommen und zehn seiner Studenten sind heute selber Professoren. 2005 wurde Lockemann das Verdienstkreuz am Bande verliehen, die Frankfurter Johann Wolfgang Goethe-Universität verlieh ihm 2003 für seine Verdienste in der Forschung und als Förderer des Wissenstransfers in die Unternehmenspra-xis die Ehrendoktorwürde. Ich treffe ihn in seinem Büro im Forschungszentrum Informatik, wo er dem VKSI-Magazin einige Fragen beantwortet.

Der Magnettrommelspeicher der Perm

24 VKSI MAGAZIN Nr. 7 November 2012

Page 25: VKSI-Magazin #7

– damals nicht unüblich, aber erst heute wieder aktuell. Doch unsere Ansätze haben zu wenig Leistung gebracht. rück-blickend wäre das die Zeit gewesen, zu IBM zu wechseln.

Nach sieben Jahren sind Sie 1970 dann doch wieder zurück nach Deutschland gegangen.Prof. Lockemann: Meiner Frau und mir hatte es in Kalifornien sehr gut gefallen, doch die Kinder waren klein und wir wollten eine klare Entscheidung für ihre Schul-zeit treffen. In Deutschland habe ich dann in Bonn bei der GMD (damals: Gesellschaft für Mathematik und Daten-verarbeitung mbH) gearbeitet und war involviert in ein Projekt zur Entwicklung eines juristischen Informationssystems. Dieses Fachinformationssystem stell-te die Gesetzeslage und die Urteile für Juristen in einem »Information retrie-val System« zusammen und – darauf bin ich durchaus stolz – existiert heute noch. Von Karlsruhe erhielt ich dann die Aufforderung, mich um den Lehrstuhl Programmiersprachen zu bewerben. Das habe ich allerdings abgelehnt, aber Uni-versitäten waren von jeher flexibel, und wir haben uns auf eine Widmung in rich-tung Datenbanken geeinigt.

Sie haben in einer Zeit in der Informa-tik begonnen, als dieses Fachgebiet noch ganz jung war und Experten noch alle

Teildisziplinen überblicken und durch-schauen konnten…Prof. Lockemann: … hier sollte man sich keine Illusionen machen, diese Phase ging sehr schnell vorbei. Schon als ich Anfang der Siebzigerjahre nach Karlsruhe kam, war das Gebiet so breit, dass man nicht mehr überall in die Tiefe gehen konnte.

Sowohl in Deutschland wie auch in den USA hat man sich allerdings schwer-getan, diese Disziplin zu akzeptieren. In den Vereinigten Staaten zum Beispiel war Computer Science, wie dort Informa-tik hieß und immer noch heißt, viel enger aufgestellt. Mein Bereich, Datenbank-technik, war lange Zeit nicht einmal Teil der Computer Science sondern bei den Business Schools mitgelaufen.

Ich selber bin durch meine Erfahrun-gen mit Anwendungen geprägt worden und habe diese auch immer gesucht. Später waren dies vor allem Produktions-technik, Elektronikentwurf, Verkehrs-wesen und Gebäudearchitektur. Ich habe deshalb immer stark interdiszipli-när gearbeitet. Ich habe mich auch nicht als reinen Technologen gesehen. Neue Anwendungen bedürfen aber natürlich auch neuer Technologien, und ich hatte auch immer Mitarbeiter, die sehr erfolg-reich diese Technologien entwickelten. Vielleicht wäre es korrekter zu sagen, dass ich eine Neigung zu top-down Vor-gehen habe. Ich habe deshalb den Daten-bankbereich immer als Softwaretechnik

verstanden und dort als ausgesprochene Systemtechnik. ähnlich wie bei Betriebs-systemen habe ich Architekturfragen als zentral gesehen.

Um welche Probleme zu lösen?Prof. Lockemann: Nichtfunktionale Krite-rien wie Performanz haben über 30 Jahre lang die Datenbankarchitektur dominiert, genauer die Langsamkeit des Hintergrundspeichers im Vergleich zum Hauptspeicher. Auf diesem Miss-verhältnis bauten die Architekturfragen auf, also: Wie lässt sich die Zugriffslücke überbrücken, so dass sie in der Anwen-dung nicht in Erscheinung tritt? Und so wie die Bedarfe gewachsen sind, so ist auch das Problem größer geworden. Die übertragungsrate von der Platte in den Hauptspeicher hat sich von etwa 1 MB/s 1970 auf etwa 250 MB/s 2010 gesteigert. Heute beträgt die Zugriffslücke etwa 106, so stark unterscheiden sich heute die Geschwindigkeiten beim Zugriff auf Hauptspeicher und Hintergrundspeicher (Platte). Nun hat mit der Marktreife der SSD ein ganz neues Kapitel begonnen.

Dazu kamen über die Jahre Gastpro-fessuren am CalTech und am MIT, und Beraterfunktionen bei Wirtschaft und Ministerien und – für Karlsruhe beson-ders bedeutend – 1985 gründeten Sie gemeinsam mit mehreren Kollegen das Forschungszentrum Informatik p

Prof. Peter Lockemann

VKSI MAGAZIN Nr. 7 November 2012 25

Page 26: VKSI-Magazin #7

KArLSrUHEr KöPFE

Karlsruhe (FZI), waren dann lange Zeit dessen Vorstand (daher Ihr Spitzname »Mister FZI«). Was war Ihr wichtigstes Motiv dafür?Prof. Lockemann: Um es mit dem modernen Slogan des KIT zu sagen: Innovation. Innovation ist der Transfer von Forschungs-ergebnissen in die wirtschaftliche Nutzung. Das Ziel des For-schungszentrums Informatik war und ist der Technologie-transfer von der Forschung in der Karlsruher Informatik in die Wirtschaft. Wir waren damals acht Professoren, und hatten rein altruistische Motive, wenn man mal davon absieht, dass wir uns natürlich über zusätzliche ressourcen für die For-schung gefreut haben. Für jeden persönlich bedeutete das aber viel mehr Arbeit.

Sind Sie mit der Entwicklung des Forschungszentrums Infor-matik zufrieden?Prof. Lockemann: Ich bin ja nur noch – wenn auch sehr engagier-ter – Beobachter. Ich bin begeistert, was die jungen Kollegen in den letzten Jahren daraus gemacht haben. Ich hatte am Ende eine neue und wie es scheint schlagkräftige Organisati-on umgesetzt. Zunächst war das FZI auf einzelne Professoren zugeschnitten, heute gibt es vier große, kollegial geführte For-schungsbereiche, die sich als eine sehr gutes Basis für Wachs-tum erwiesen haben.

Inhaltlich hat sich das Bild seit der Jahrtausendwende kom-plett geändert. Angefangen haben wir mit »Informatik für die industrielle Produktion«. Heute ist das FZI viel breiter aufge-stellt – kein Wunder, wenn man bedenkt, dass Informatik heute in alle Lebensbereiche eindringt. Ich kann das an meiner eige-nen Disziplin sehen, wo sich unter dem Stichwort »Big Data«

p

Das Forschungszentrum Informatik (FZI)

26 VKSI MAGAZIN Nr. 7 November 2012

TDD Sprint

Experts in agile software engineering

www.andrena.deandrena objects ag · Albert-Nestler-Straße 9 · 76131 KarlsruheTelefon 0721 6105-122 · Telefax 0721 6105-140 · [email protected]

Pair Programming Sprint Burndown

Clean CodeTest Driven DevelopmentTeam Empowerment

TRAINING

Die ASE Student Edition:ASE wurde von andrena und SAP entwickelt. Für Studierende, die neugierig auf den State of the Art in der Software-Industrie sind, gibt es jetzt die ASE Student Edition. Für alle,

R die erfahren wollen, wie in der modernen Software-Industrie entwickelt wird; R die ihr Know-how in testgetriebener Entwicklung auf den Prüfstand stellen wollen; R die sehen wollen, wie Software-Engineering im Team funktioniert; R die Scrum und XP im Praxiseinsatz erleben wollen.

Agile Software Engineering

Jetzt bewerben für 2013!

http://www.andrena.de/studentpage/ase-student-edition

andrena anzeige ASE-SE VKSI.indd 1 23.10.12 10:39

Page 27: VKSI-Magazin #7

sich vollkommen neue Herausforderungen herausbilden: eine enorme Informationsmenge im Web, relativ unstrukturiert und textorientiert, dazu embedded systems, die Datenströme über-all erfassen, und schließlich die globale Verteilung der Daten.

Welche Schwierigkeiten musste das FZI dabei überwinden?Prof. Lockemann: Natürlich hat das Forschungszentrum Informatik das Auf und Ab der Wirtschaft mitgemacht, übrigens immer etwas zeitverzögert. Anfangs kamen unsere Kunden aus den F. & E. Abteilungen der Großunternehmen. Als diese Anfang der Neunzigerjahre sukzessive abgebaut wurden, hat das For-schungszentrum Informatik sich extrem stark auf den Mittel-stand konzentriert. Das hat uns damals zwar politisch großes Lob eingebracht, uns aber auch behindert, da wir sehr viel Zeit für die Akquise aufwenden mussten. 2002 hat uns das in echte Schwierigkeiten gebracht. Die bieten aber eben auch Chancen und die wurden – auch dank des Generationenwechsels – her-vorragend genutzt.

Mit seinen klar gesetzten inhaltlichen Schwerpunkten hat sich das Forschungszentrum Informatik deutlich als Zentrum für Innovationen im IT-Bereich positioniert. Somit ergänzt es sich hervorragend mit der Fakultät für Informatik und ist heute weit über die Grenzen von Baden-Württemberg hinaus aner-kannt.

Vor 40 Jahren wurde die Fakultät gegründet, vor 40 Jahren haben Sie Ihre Professur angetreten – und Sie sind unver-ändert präsent in der IT-Szene. Womit beschäftigen Sie sich heute vor allem?Prof. Lockemann: Mir bleibt viel Zeit für Privates, zum Beispiel beschäftige ich mich mit der Sprachförderung in Brennpunkt-Kindergärten und ich reise mit meiner Frau viel in der Welt herum.

Aber auch wenn ich vielleicht manchmal bedauern mag, dass ich mich zu früh und zu stark auf die Anwendungen der Informatik konzentriert habe, so habe ich doch einige Themen gefunden, die mich weiter faszinieren, aktuell sind das etwa über das Cyberforum die Projekte Smarter City der Stadt Karls-ruhe und Smart Business IT des Landes. Um bei einem Pro-jekt wirklich in die Tiefe zu gehen, braucht man ein großes For-schungsteam und das habe ich nicht mehr. Was ich dagegen kann, ist Projektideen entwickeln und mich an der Entwicklung der großen Linie beteiligen, und da bringe ich mich immer noch im FZI ein. Es erstaunt mich vielleicht selbst am meisten, aber es ist wahr: so schnell veralten Erfahrungen dann eben doch nicht.

Professor Lockemann, herzlichen Dank für dieses Gespräch!Das Gespräch führte Susann Mathis.

VKSI MAGAZIN Nr. 7 November 2012 27

TDD Sprint

Experts in agile software engineering

www.andrena.deandrena objects ag · Albert-Nestler-Straße 9 · 76131 KarlsruheTelefon 0721 6105-122 · Telefax 0721 6105-140 · [email protected]

Pair Programming Sprint Burndown

Clean CodeTest Driven DevelopmentTeam Empowerment

TRAINING

Die ASE Student Edition:ASE wurde von andrena und SAP entwickelt. Für Studierende, die neugierig auf den State of the Art in der Software-Industrie sind, gibt es jetzt die ASE Student Edition. Für alle,

R die erfahren wollen, wie in der modernen Software-Industrie entwickelt wird; R die ihr Know-how in testgetriebener Entwicklung auf den Prüfstand stellen wollen; R die sehen wollen, wie Software-Engineering im Team funktioniert; R die Scrum und XP im Praxiseinsatz erleben wollen.

Agile Software Engineering

Jetzt bewerben für 2013!

http://www.andrena.de/studentpage/ase-student-edition

andrena anzeige ASE-SE VKSI.indd 1 23.10.12 10:39

Die TechniData IT-Service GmbH realisiert komplexe und spannende IT-Infrastruktur-Projekte

Exzellente Fachkompetenz, langjährige Erfahrung sowie ein professionelles Projektmanagement zeichnen uns aus.Wir setzen auf Virtualisierung, Hochverfügbarkeit, Security und Cloud mit über 130 Spezialisten. Und wir wachsen weiter!

Zur Verstärkung unseres Teams in Karlsruhe suchen wir:

Softwarearchitekt (w/m) mit Führungskompetenz

Sie entwickeln unser .NET Entwicklungsteam und unsere SharePoint Produktpalette weiter. Sie übernehmen die fachliche und technische Verantwortung für Projekte und deren Ergebnisse und erarbeiten kundenorientierte SharePoint Lösungen.

Ihr Profil:Sie haben mehrjährige Berufserfahrung in der Anwendungsentwicklung mit Schwerpunkt SharePoint, C# und bringen Erfah-rung in der fachlichen Leitung von Entwicklungsprojekten mit. Teamgeist, Fairness und Respekt im Umgang mit anderen Menschen sind Ihnen wichtig.

Bewerben Sie sich online über unser Bewerberportal. Weitere Stellenangebote unter www.its-technidata.de.

TechniData IT-Service GmbH

Personal | Dipl. Kffr. Beate Karcher

Emmy-Noether-Straße 9 | 76131 Karlsruhe

[email protected]

www.its-technidata.de

Page 28: VKSI-Magazin #7

AGIL

»Ich würde es wieder so machen und Scrum auch jedem ande-ren Unternehmen empfehlen«, gibt Christian Popp, Bereichs-leiter IT-Risk Management bei arvato infoscore, unumwun-den zu. »Die Werte des Agilen Manifests helfen, schnell gute und vor allem innovative Software zu bauen.«

Dabei hätte Christian Popp es sich leicht machen und in den Chor derjenigen einstimmen können, die eine Methode als schlecht bezeichnen, wenn nicht gleich alles wie am Schnür-chen läuft. Denn der erste Versuch mit Scrum war – positiv betrachtet – eine »successful failure«. Vor dem echten Erfolg kommt aber meist die Einsicht und die Einsicht von Christian Popp lautete: »Halte dich an die regeln von Scrum und lebe die agilen Werte – dann funktioniert es.«

Dass man bei arvato infoscore überhaupt daran gedacht hat, Scrum in der Softwareentwicklung einzusetzen, hat mit dem Unternehmensgegenstand zu tun. Das Unternehmen der Bertelsmann-Gruppe mit Sitz in Baden-Baden liefert seinen Kunden Lösungen für das Management aller Kundenbezie-hungen und Zahlungsflüsse- vom risikomanagement bis zum Inkasso. Bisher wurden klassische Entwicklungsmethoden à la Wasserfall eingesetzt, allerdings stoßen sie in einem inno-vativen Umfeld wie dem risikomanagement mit seinen wech-selnden Anforderungen an ihre Grenzen. Ein Team von arvato

infoscore probierte es also 2009 im Selbstversuch mit Scrum und rückblickend weiß Christian Popp, warum wesentliche Verbesserungen der Teamperformance damals ausgeblieben sind: »Die agilen Werte hinter Scrum wurden nicht beachtet, Artefakte einfach weggelassen, Meetings nicht abgehalten, das Commitment eher locker gesehen – was an Scrum nicht pass-te, wurde passend gemacht. Aber wenn man sich nicht an die regeln hält, darf man von einem Framework nicht erwarten, dass es trotzdem leistet, was es leisten könnte.« Vielleicht war die Sichtweise zu diesem Zeitpunkt noch zu einseitig: Im Mit-telpunkt stand die Frage, was agile Methoden aus technischer Sicht leisten können. Dass Agilität Fragen des Managements und des Miteinanders im Team berührt und diese sogar die wesentlichen Treiber des Erfolgs sind, blieb unbeachtet. Trotz-dem blieb eine gewisse Faszination für agile Methoden und vor allem für Scrum hängen.

Doing as a way of thinking – Scrum als intuitive ArbeitsweiseLieferung der Spezifikation nach drei Monaten, Lieferung des Testsystems nach sechs Monaten, nach neun Monaten musste ein Vorproduktionssystem und nach 15 Monaten das Produk-tionssystem laufen. So lauteten die Anforderungen, die 2010 der Gesamtverband der deutschen Versicherungswirtschaft GDV als Auftraggeber eines der größten Projekte im Bereich

arvato infoscore: Innovative Software entsteht durch agile Werte Von Hélène Valadon und Christian Popp

28 VKSI MAGAZIN Nr. 7 November 2012

Page 29: VKSI-Magazin #7

Betrugsprävention an arvato infoscore stellte. Der Lieferter-min war wegen gesetzlicher Vorgaben nicht verhandelbar. Der Gedanke, es agil zu versuchen, war bei einigen Entwicklern noch immer vorhanden, auch Christian Popp hatte sich noch eingehender mit den Werten und mit Fragen der Führung im agilen Umfeld auseinandergesetzt und war immer stärker von diesen Gedanken fasziniert. Bei diesem wichtigen Projekt gab es keine bewusste Entscheidung für Scrum – und trotzdem gin-gen die drei Teams mit 30 Leuten an drei Standorten dieses Mal unbewusst agil vor. Erstens forderten der Zeitdruck und die zeitlichen Vorgaben den Fokus auf die Businessprioritäten und eine inkrementelle Annäherung geradezu heraus. Intensiv geplant wurde immer nur die nächste dreimonatige Phase. Und zweitens hielt der erfahrene Gesamtprojektleiter wenig von command & control, aber sehr viel von Eigenverantwortung. Alle drei Monate wurden die erreichten Ziele gefeiert und dabei in zweitägigen Workshops wieder die nächste Phase geplant. »Wir gingen nicht von der Prämisse aus, agil entwickeln zu wollen. Wir haben überlegt, wie wir dieses Projekt smart zum Erfolg führen können«, sagt Christian Popp. »Es hat uns aber gleichzeitig die Erfolgskriterien des agilen Vorgehens bewusst gemacht und was das Agile Manifest eigentlich bedeutet: Team und Kunde in den Mittelpunkt stellen, die Teams immer wie-der zusammenbringen und gemeinsam planen lassen, die ursprünglichen Pläne anpassen und sich auf überschaubare Schritte fokussieren, Verantwortung übergeben.«

Und jetzt wird richtig gescrummtAusgerechnet eines der wichtigsten Projekte hatten die arva-to infoscore-Teams mit ihrer »intuitiven Agilität« zum Erfolg geführt. Grund genug für Christian Popp, mit Scrum

arvato infoscore: Innovative Software entsteht durch agile Werte Von Hélène Valadon und Christian Popp

p

Case StudyBranche: FinanzdienstleistungZeitraum: Mai 2011 – Juli 2012Standort: Baden-Baden/Deutschland

Ausgangssituationarvato infoscore liefert Software für das Management aller Kundenbeziehungen und Zahlungsflüsse – vom risiko-management bis zum Inkasso. Die Anforderungen ändern sich schnell, daher machte sich der Bereichsleiter IT risk Management auf die Suche nach neuen Wegen in der Ent-wicklung.

LösungDer erste Scrum-Selbstversuch scheitert, denn zu viele regeln werden missachtet. Das Interesse für Scrum bleibt aber – vor allem für die sozialen Einflussfaktoren. Bei einem der wichtigsten Projekte versucht man es noch einmal »anders«, handelt »unbewusst« agil und landet einen vol-len Erfolg. Mit Hilfe von bor!sgloger consulting wird daher Scrum nach allen regeln der Kunst eingeführt und bringt bald Erfolge, mit denen man gar nicht gerechnet hat.

ErgebnisEin Pilot-Team hat den Anfang gemacht. Heute arbeiten über 50 Mitarbeiter teils standortübergreifend mit Scrum, die Mitarbeiterzufriedenheit steigt spürbar. Jedes Scrum-Team erhebt passende KPIs und das agile Mindset wird allmählich zum Kulturgut des Unternehmens. Mittlerweile bringt sich ein Großteil des Unternehmens in die Verände-rung ein.

VKSI MAGAZIN Nr. 7 November 2012 29

Page 30: VKSI-Magazin #7

AGIL

noch einmal durchzustarten – dieses Mal nach allen regeln der Kunst und gezielt mit Unterstützung durch das Team von bor!sgloger consulting. Bei den IT-Kollegen rannte er offene Türen ein und mit den Ergebnissen des Prestigeprojekts in der Hand war auch die Geschäftsführung bereit, Scrum noch eine Chance zu geben.

Im Mai 2011 startete das Pilotprojekt mit einem Team, die-ses Mal bewusst unter möglichst schlechten Voraussetzungen: Es war kein aktuelles Prestige-Projekt, in der Vergangenheit waren Qualitätsziele immer wieder verfehlt worden, es wurde mitunter zu spät geliefert und die Kunden im Fachbereich waren alles andere als zufrieden. Das Team selbst war mit die-ser Situation unglücklich und wollte etwas daran ändern. Im Vorhinein wurden die rollen verteilt, zunächst noch mit einem Product Owner aus der IT. »Mittlerweile haben wir gelernt, dass die POs aus den Fachbereichen kommen sollten«, wirft Christian Popp ein.

Drei Monate später zeigte sich, welche nachhaltige Verän-derungskraft Scrum bietet: Die Zahl der Hot Fixes nahm signi-fikant ab, es wurde früher ausgeliefert, weil nicht mehr nach-gelagert, sondern integriert getestet wurde – und die Kunden quittierten es mit verhaltener Anerkennung. Aber auch rei-bungsverluste machten sich bemerkbar: Heterogene Teams erwiesen sich einerseits als Stärke. Dass die Leistung des Teams stärker in den Vordergrund tritt und intensive Kommunikati-on einfach notwendig ist, wurde nicht immer sofort akzeptiert. »Ein Team regelt das auf seine Weise und fordert gegebenen-falls Konsequenzen vom Management ein«, sagt Popp.

Vom Pilotprojekt zum roll-out in der gesamten IT des Geschäftsbereichs risk ManagementDie messbaren Erfolge des Pilotprojekts ließen die Entschei-dung reifen, Scrum flächendeckend in der IT einzusetzen. Aber wie schafft man es, mehrere Teams, Führungskräfte und Kol-legen ins Boot zu holen? Für dieses Vorhaben bildete sich ein Transition Team, bestehend aus Projektleitern, dem damals

einzigen ScrumMaster, allen Führungskräften und Kollegen aus den IT-Stabsstellen. Gemeinsam wurden die Themen der Veränderung erarbeitet und in kleinere Gruppen und Spezi-alteams runtergebrochen. »Dieses Transition Team war ganz sicher der wichtigste Hebel für den Erfolg«, ist Christian Popp überzeugt. »Die Führungskräfte konnten in ihren Teams viel gezielter das Verständnis und das Bewusstsein für die anste-henden Umstellungen schaffen, die Geschäftsführung war involviert und alle zusammen wurden mit einem regelmäßigen Newsletter über die Fortschritte und nächsten Aktivitäten auf dem Laufenden gehalten.« Ende 2011 begann der roll-out auf alle vier Entwicklungsteams in Baden-Baden, zu vier weiteren externen Teams wurden zunächst die Schnittstellen angepasst. Parallel zur Implementierung in den Teams wurden die Struk-turen der IT adaptiert und KPIs definiert, um Fortschritte und Erfolge für das Top-Management sichtbar zu machen.

Die Mitarbeiter fühlen sich mit Scrum wohl, die Zufrieden-heit steigt und bewegt sich auf das Niveau zu, das man errei-chen will. Intransparenz war in der Vergangenheit ein Prob-lem, weil zu viele Aufgaben angenommen wurden, worunter die überschaubarkeit litt. »Der Scrum-Prozess hat uns dazu »verdammt«, uns zu fokussieren und eindeutige Prioritäten zu setzen und einzufordern«, erklärt Christian Popp. »Für den gesamten Geschäftsbereich haben wir mit Unterstützung des Top-Managements und aller Fachbereiche einen Projekt-Pri-orisierungsprozess aufgesetzt.« Bei neuen Projekten stimmen Fachbereiche und die Geschäftsleitung über ein mehrstufiges Votingverfahren ab, was für sie und ihre Kunden am wichtigs-ten ist. Auch wenn das Top-Management die finale Priorisie-rung freigibt, der Prozess und die Ergebnisse der Team- und Kapazitätsplanung sind transparent für alle Beteiligten.

Keine Kopfmonopole mehrEine wesentlicher Effekt von Scrum bei arvato infoscore ist das Aufbrechen von »Kopfmonopolen«: Bestimmte Verantwor-tungen sind jetzt nicht mehr bei einzelnen Personen, sondern

p

30 VKSI MAGAZIN Nr. 7 November 2012

Sustainable Pace

TDDSprint

Agilität

Experts in agile software engineering

www.andrena.deandrena objects ag · Albert-Nestler-Straße 9 · 76131 KarlsruheTelefon 0721 6105-122 · Telefax 0721 6105-140 · [email protected]

BERUFSSTART

Scrum

Jetzt bewerben!

In 10 Monaten zum professionellen Agile Software Engineer

In den ersten zehn Monaten bei andrena durchlaufen alle Kolleginnen und Kollegen eine intensive Einstiegsphase. Diese kombiniert in Trainings vermittelte Theorie mit der Projektpraxis. Den Einstieg begleitet ein erfahrener Mentor.

Unsere Einstiegsphase orientiert sich in weiten Teilen am Team-Empowerment- Programm »ASE – Agile Software Engineering«, das andrena gemeinsam mit SAP entwickelt hat und für SAP weltweit Standards für modernes Software Engineering setzt.

Bewerben Sie sich jetzt mit dem Betreff »VKSI Magazin« unter [email protected]

Entwickeln Sie Ihr Potenzial.

andrena anzeige 10mon VKSI.indd 2 23.10.12 10:44

Page 31: VKSI-Magazin #7

Christian Popp Team

in den einzelnen Teams verankert. »Das sind die Effekte, die wir ein halbes Jahr nach dem roll-out beobachten konnten. In den kommenden Monaten werden wir sicher noch deutliche Auswirkungen in Qualität und Durchsatz messen«, ist Chris-tian Popp zuversichtlich. Neben den vier Entwicklungsteams im risk Management arbeiten nun auch zwei Business Intelli-gence-Teams mit Scrum. Aus dem einstigen Pilotprojekt-Team ist ein standortübergreifendes Team mit dem Schwesterunter-nehmen arvato Systems in Gütersloh geworden. »Mit video-technischer Unterstützung und regelmäßigen persönlichen Meetings klappt das sehr gut. Es war dem Projektteam wichtig, ein gemeinsames Team über die beiden Standorte hinweg zu formieren«, betont Popp. »Die Menschen müssen sich ken-nen, damit remote-Kommunikation funktioniert.« Insgesamt arbeiten im Geschäftsbereich risk Management der arvato infoscore rund 50 Mitarbeiter in Baden-Baden und bis zu 50 Personen extern in Gütersloh und rostock in der IT, noch nicht alle Externen arbeiten aber mit Scrum. Die nächsten Ziele: Die Organisation wird weiter und noch umfassender an die neuen Gegebenheiten angepasst. Ganz gezielt werden erfahrene

ScrumMaster gesucht, die Kompetenzen der Product Owner in den Fachbereichen ausgebildet und in jedem Scrum-Team werden KPI-Messungen eingeführt.

VKSI MAGAZIN Nr. 7 November 2012 31

Sustainable Pace

TDDSprint

Agilität

Experts in agile software engineering

www.andrena.deandrena objects ag · Albert-Nestler-Straße 9 · 76131 KarlsruheTelefon 0721 6105-122 · Telefax 0721 6105-140 · [email protected]

BERUFSSTART

Scrum

Jetzt bewerben!

In 10 Monaten zum professionellen Agile Software Engineer

In den ersten zehn Monaten bei andrena durchlaufen alle Kolleginnen und Kollegen eine intensive Einstiegsphase. Diese kombiniert in Trainings vermittelte Theorie mit der Projektpraxis. Den Einstieg begleitet ein erfahrener Mentor.

Unsere Einstiegsphase orientiert sich in weiten Teilen am Team-Empowerment- Programm »ASE – Agile Software Engineering«, das andrena gemeinsam mit SAP entwickelt hat und für SAP weltweit Standards für modernes Software Engineering setzt.

Bewerben Sie sich jetzt mit dem Betreff »VKSI Magazin« unter [email protected]

Entwickeln Sie Ihr Potenzial.

andrena anzeige 10mon VKSI.indd 2 23.10.12 10:44

Page 32: VKSI-Magazin #7

IT UND rECHT

Wer das Eigentum an einer Innovation besitzt, möchte auch die Gewinne dafür abschöpfen, das gilt auch für Software. Doch wie schützt man seine Innovation vor Nachahmern? Je nach Inno-vationsklasse (gedankliches Modell, Geschäftsmodell, Organi-sation, dokumentiertes Wissen, Design, technische Lösung, …) gibt es passende Schutzmechanismen, wie beispielsweise das Urheberrecht, Betriebsgeheimnisse oder Patente. In Fortset-zung zum Artikel »Wem gehört die Software?« (VKSI Magazin Nr. 6 vom Mai 2012) geht es im Folgenden um den Schutz von technischen Erfindungen durch Patente.

Patente als Verbietungsrechte Wettbewerbsvorteile durch Innovation können durch Nachah-mung schnell nivelliert werden. Für technische Erfindungen etwa sind Patente der passende Schutzmechanismus, voraus-gesetzt diese Patente sind passend angelegt. Patente sollten deshalb von Anfang an in die strategische Innovationsplanung bei Forschung und Entwicklung einbezogen werden. Patente enthalten die Beschreibungen der Erfindungen mit ihren tech-nischen Merkmalen, durch die sich die Patentinhaber gegen ihre Wettbewerber abgrenzen.

Praktisch gesehen greifen Patente in die Wertschöpfung der Branche ein. Dabei sind zwei Aspekte zu unterscheiden: Einer-seits können Patentinhaber ihren Wettbewerbern bestimmte Handlungen unter Verwendung der Erfindung verbieten. In der Software-Branche sind die Inhaber zum Beispiel berechtigt, ihren Konkurrenten die Implementierung oder das Deploy-ment zu untersagen. Andererseits dürfte lizenzieren, also das Erlauben unter Auflagen meist zu bevorzugen sein, da der Inha-ber in diesem Fall mit Lizenzeinnahmen rechnen kann.

Voraussetzungen für die ErteilungPatente sind technische Dokumente, die die Erfindungen mit Zeichnungen (Flow-Charts, Blockdiagramme, Screen-Shots, gelegentlich Pseudo-Code) und detaillierten Beschreibungen gegenüber der öffentlichkeit offenbaren. Formal werden die wesentlichen technischen Erfindungsmerkmale in sogenann-ten Ansprüchen zusammengefaßt. Die Ansprüche – üblicher-weise auf Englisch oder Deutsch – beschreiben die Erfindung auf einem hohen Abstraktionsniveau.

Gleichzeitig sind Patente amtliche Publikationen und wer-den auf Antrag per Verwaltungsakt erteilt. Sie gelten nur terri-torial, nicht weltweit. Der Anmelder bzw. spätere Inhaber des Patents hat selber die Wahl in welchen Ländern er Patentschutz begehrt und reicht seinen Antrag beim entsprechenden Amt ein: zum Beispiel beim Europäischen Patentamt (EPA), beim Deutschen Patent – und Markenamt (DPMA) oder in den USA beim USPTO, dem United States Patent and Trademark Office, usw. Jede Anmeldung bekommt einen Anmeldetag und unter-liegt zunächst einer amtlichen Geheimhaltung. 18 Monate nach Anmeldetag (AT) legt jedes Amt den Schalter um: Die Anmel-dung wird veröffentlicht und in Datenbanken eingestellt.

Die Erteilung eines Patents ist an hohe Auflagen geknüpft. Die ämter prüfen, ob gesetzliche Kriterien wie Neuheit und erfinderische Tätigkeit eingehalten sind. So darf die Kombina-tion der Merkmale am Anmeldetag (AT) nicht zum Stand der Technik gehören, also noch nicht öffentlich zugänglich gewe-sen sein. Das EPA teilt dem Anmelder erste Prüfungsergebnis-se meist innerhalb von acht bis neun Monaten nach AT mit. Der Anmelder bekommt damit Gelegenheit, die Ergebnisse zu kommentieren und die Ansprüche zu ändern. Damit muss er sich inhaltlich auf die Original-Anmeldung beschränken. Im Ergebnis der weiteren Prüfung beschließt das jeweilige Amt die Erteilung eines Patents oder die Ablehnung der Anmeldung. Je nach Amt erfolgt die Erteilung mit einer Wahrscheinlichkeit von 40 bis 60 Prozent.

Strategie für eigene PatenteEs liegt auf der Hand, dass man für bereits öffentliche Erfin-dungen keine Anmeldungen einreichen wird, da das Neuheits-Kriterium nicht erfüllt wäre. Aber auch bei allen anderen Erfin-dungen ist unternehmensintern eine sorgfältige Evaluierung im Einzelfall notwendig. Ob Patent, Betriebsgeheimnis oder Sperr-veröffentlichung, die Entscheidungen orientieren sich u. a. am Anwendungsbereich der Erfindung, an den potentiellen Benut-zern, an der Sichtbarkeit der Erfindung in Anwendungen, an technischen Notwendigkeiten in Bezug zu Standards usw.

Eine entscheidende Frage ist, ob eine Erfindung auf die stra-tegischen Unternehmensziele passt. Ein Premium-Hersteller wird sich beispielsweise auf Alleinstellungsmerkmale konzen-trieren und mit Patenten die Wertschöpfung auf sich konzen-trieren. Ein anderer Hersteller fokussiert sich eher auf Stan-dardprodukte und sichert sich Kostenvorteile in der Fertigung.

Patente als Schutzmechanismus für technische Erfindunge n Von Matthias Zahn und Peter Bittner

Tipps ●● Neuheit bedeutet das Fehlen einer mündlichen oder schriftlichen Ver-

öffentlichung der Erfindung vor Anmeldung. Halten Sie Ihre Erfin-dung geheim, bis eine Anmeldung beim Amt eingereicht ist.

●● Erfindungen sind technische Lösungen zu technischen Problemen. Schreiben Sie auf, welche konkreten Probleme aufgetreten waren, bevor Sie die Erfindung gemacht hatten.

●● Alternativlösungen helfen bei der Evaluierung und beim Formulieren der Ansprüche. Versetzen Sie sich deshalb in die Position Ihrer Wett-bewerber: Wie kann man das gleiche Ergebnis mit anderen Mitteln erreichen?

●● Eine Implementierung der Erfindung ist für eine Patentierung nicht erforderlich. Konzepte auf Entwurfsebene sind zunächst ausreichend. überlegen Sie sich aber, wie eine Implementierung erfolgen könnte.

●● Anmeldungsentwürfe kann man ergänzen und korrigieren, beim Amt eingereichte Anmeldungen nicht mehr. Lesen Sie sich die Entwür-fe sehr kritisch durch und besprechen Sie offene Punkte mit Ihren Patentfachleuten.

●● Veröffentlichungen gleich welcher Herkunft sind wichtig, besonders die Veröffentlichungen mit Bezug zur Erfindung. Dokumentieren Sie diese.

32 VKSI MAGAZIN Nr. 7 November 2012

Page 33: VKSI-Magazin #7

Bei einem Verbietungsrecht sollte die Verwendung der Erfin-dungen einfach nachweisbar sein, notfalls auch bei Gericht. Maßnahmen am User Interface vereinfachen die Interaktion mit dem Benutzer. Damit sind Erfindungen in diesem Bereich für jedermann sichtbar. Das spricht für Patentanmeldungen. Erfindungen aus der Welt der Bits und Bytes bleiben besser im Geheimfach, sodass die Zwangsveröffentlichung nach 18 Monaten vermieden wird. Das gilt aber nicht für Erfindungen, die in technische Standards eingehen sollen. So zeigen gerade die Patentstreitigkeiten dieser Tage, dass Patente auf standar-disierte übertragungsprotokolle den Verkauf von Smartphones beeinflussen können. Konkret geht es u. a. um die technische Anbindung von Apple-Smartphones an Mobilfunknetze. Moto-rola Mobility hält standardrelevante Patente1. Lizenzen sind im rahmen des Standards möglich, aber die beiden Firmen haben bislang offenbar nur für den deutschen Markt auf eine Lizenz-vereinbarung einigen können.

Eigene Erfindungen, die man nicht zum Patent anmeldet, kann man in sogenannten Sperrveröffentlichungen zum Stand der Technik erheben. Dritten wird die Patentierung damit ver-wehrt.

Besonderheiten bei SoftwareImmer wieder ist zu vernehmen, Software sei nicht patentier-bar. Hier handelt es sich um einen Stille-Post-Irrtum. Oder es ist noch nicht überall angekommen, dass sich Gesetzge-bung und rechtsprechung den technischen Innovationen mit der Zeit anpassen. »Patente werden für Erfindungen auf allen Gebieten der Technik erteilt«, steht seit einigen Jahren im Gesetz. Um es pragmatisch darzustellen: Software ist nicht losgelöst von Hardware zu betrachten. Ein Notebook läuft schneller oder ein Smartphone spart Bandbreite, weil neuar-tige Datenstrukturen verwendet werden oder die Daten clever codiert werden. Software ist ein Bestandteil einer Lösung und trägt zu deren Differenzierung über Wettbewerber bei. Die genannten Patentansprüche beschreiben die Erfindungen als »computer-implementierte Verfahren«, wobei Hard – und Software kombiniert werden.

BeispielEin altes aber gerade wegen der Bekanntheit interessantes Beispiel betrifft MP3: Zur MP3-Komprimierung gehören eine ganze reihe von Erfindungen des Fraunhofer-Instituts für Inte-grierte Schaltungen (IIS). Das Institut hat systematisch Patente erworben und Lizenzen vergeben. Mittlerweile haben einige davon nach 20 Jahren Höchstlaufzeit ihre Wirkung verloren, aber neue Patente für neue Verfahren kommen hinzu.

Im Beispiel2 geht es grob vereinfacht um die Codierung eines Signals. Der höchste Signalwert (1) muss mit bestmöglicher

1 z.B. EP1010336B12 EP 0 193 143 B1

Genauigkeit (12 Bit) übertragen werden; für andere Werte (2, 3, 4) reichen 8 Bit. So eine Codierung erfolgt mehrere Tausend Mal in der Sekunde. Das Verfahren spart übertragungsband-breite und Speicherplatz.

Strategie gegen Patente der Wettbewerber Patenten der Konkurrenz kann man beispielsweise durch die strategische Beachtung von Stand der Technik und durch tak-tisches Verhalten im Fall des Streitfalles begegnen. Das stärks-te Gegenmittel ist »dokumentierter Stand der Technik«. Die eigenen Veröffentlichungen wie Sperrveröffentlichungen sind dabei nicht unwesentlich. Das ritual ist bekannt: Der Konkur-rent holt sein Patent aus der Kammer, saust herbei und klopft an die Pforte. Moment! Im gut geordneten Archiv findet sich die passende Vorveröffentlichung der Erfindung. Diese nimmt dem Patent den Wind aus dem Segel, denn eine Erfindung ohne Neuheit ist wie ein Segelschiff in der Flaute.

Doch so einfach geht es dann doch nicht, in einem rechts-staat sind einige Formalitäten zu beachten. Die rechtsbestän-digkeit eines Patents ist angreifbar durch Maßnahmen wie etwa einem Einspruch vor dem Patentamt oder durch eine Nichtig-keitsklage. Dabei wird die amtliche Prüfung auf Grundlage von neu ermitteltem Stand der Technik wiederholt und das Patent aufrechterhalten oder zurückgewiesen.

ZusammenfassungPatente sind gerade auch in der Software-Branche allen Irr-tümern zum Trotz ein Mittel, Wissensvorsprünge gegenüber Wettbewerbern zu erhalten und in einen Unternehmensge-winn zu verwandeln. Voraussetzung ist allerdings ein strategi-sches Herangehen mit Auswahlregeln für eigene Patente und Abwehrregeln gegenüber Fremdpatenten.

Patente als Schutzmechanismus für technische Erfindunge n Von Matthias Zahn und Peter Bittner

Matthias ZahnPeter Bittner

Amplitude

Frequenz

1 2 3 4 8

8

8

12

8 8

VKSI MAGAZIN Nr. 7 November 2012 33

Page 34: VKSI-Magazin #7

NACHLESE

regisseure unserer Freizeit

Was haben wir Menschen eigentlich früher mit unserer ganzen Freizeit angestellt? Die ArD/ZDF-Langzeitstudie »Massen-kommunikation« beobachtet das Medienverhalten der Bevöl-kerung seit 1964. Nach deren Ergebnissen sehen wir Bundes-bürger immer mehr fern, seit einigen Jahren immer noch leicht ansteigend etwa 220 Minuten täglich. Diese drei Stunden und 40 Minuten pro Tag summieren sich über ein Arbeitsleben von 40 Jahren zu etwas mehr als sechs Jahren. In der gleichen Zeit-spanne arbeitet man etwa acht Jahre und schläft etwa elfein-halb Jahre.

Das Internet hat am Fernsehkonsum erstmal nichts geän-dert: Internet wird seit einigen Jahren zusätzlich — und zuneh-mend — genutzt, die Dauer des täglichen Fernsehkonsums nimmt trotzdem nicht ab. Auch die angegebenen Gründe für den Fernsehkonsum ändern sich seit Jahren nicht wesentlich: »Information« steht mit einer Zustimmung von 84 Prozent an der Spitze. Danach folgen unmittelbar »Spaß« mit 81 und »Entspannung« mit 77 Prozent. »Weil ich mich ablenken möchte« geben 61 Prozent als Grund für ihren Fernsehkonsum an, und 64 Prozent wollen »Nützliches für den Alltag erfah-ren«. »Weil es aus Gewohnheit dazugehört«, trifft für 58 Pro-zent der Befragten zu.

»Austausch«, »Kommunikation«, »Kontakte pflegen«, könnten nun als Motive hinzukommen, nämlich durch Second Screen. Schleichend hat sich in den Sesseln einer wachsenden Zahl von – ja wie soll man sie nennen? Früher hätte man gesagt – »Fernsehzuschauern« die Angewohnheit breit gemacht, sich während einer Sendung im social web austauschen. Doch nur einfach über die Frage »Wer ist der Mörder?« debattieren, das reicht schon bald nicht mehr. Anscheinend begrüßen das auch die Fernsehsender und planen Zusatzservices, so dass man etwa, wenn der Kommissar in der Sendung einen Bericht der Kriminaltechnik in die Hand gedrückt bekommt, den gleichen Bericht auf das Smartphone zuhause erhalten kann.

Das Smartphone war lange Zeit nur angeklagt, für das Ver-wischen der Grenze zwischen Arbeit und Freizeit verantwort-lich zu sein. Nun löst es das beliebte Fernsehbügeln ab und verhindert dann auch noch das langsame Wegdämmern beim fernsehen. Und liegt das Smartphone mal irgendwo ohne uns rum, dann steigt das risiko der Nomophobie. Dieses Kunst-wort bezeichnet die »No Mobile Phone-Phobia«, also die Angst, mobil nicht erreichbar zu sein oder auch die Angst, etwas zu verpassen. Wer jetzt lästern mag, sollte einfach morgen mal das Smartphone zuhause lassen. Und, wie sieht’s aus? Also ich persönlich verkneif mir lieber das Lästern.

Herzlich

Ihre Susann Mathis

ImpressumOrgan des VKSI – Verein der Karlsruher Software-Ingenieure

2. Jahrgang, Heft 7 / November 2012

www.vksi.de ISSN 1869-5442

ViSdP.: Christian Popp, Prof. Dr. ralf reussner, Prof. August Wegmann

Herausgeber:VKSI – Verein der Karlsruher Software-Ingenieure e.V., www.vksi.de Vorstand: Christian Popp, Prof. Dr. ralf reussner, Prof. August Wegmann

Anschrift: Prof. Dr. ralf reussner FZI Forschungszentrum Informatik Haid-und-Neu-Straße 10-14 76131 Karlsruhe

Redaktion: Dr. Susann Mathis, Karlsruhe, www.susann-mathis.de, [email protected] Telefon +49 721 38 42 435

Gestaltung:Jochen Härtel, Härtel Design, München, www.haerteldesign.de

Druck:NINO Druck GmbH

Anzeigen: [email protected]

Erscheinungsweise: 2 Ausgaben pro Jahr

Urheberrecht:Die Zeitschrift und alle in ihr enthaltenen Beiträge und Abbildungen sind urheberrechtlich geschützt. Mit Ausnahme der gesetzlich zugelassenen Fälle ist eine Verwertung ohne Einwilligung des Verlages unzulässig. Alle rechte vorbehalten.

Gewährleistung:Die Angaben in den Beiträgen erfolgen nach bestem Wissen, aber ohne Gewährleistung.

Beiträge:Beiträge sind grundsätzlich willkommen. Bitte sprechen Sie diese mit Dr. Susann Mathis ab. Für unverlangt eingesandte Manuskripte und Abbil-dungen wird keine Haftung übernommen. Verfasser stimmen dem Abdruck zu und versichern, dass die Einsendungen frei von rechten Dritter sind. Namentlich gekennzeichnete Beiträge enthalten die Meinung der Autoren. Nicht gekennzeichnete Beiträge sind Beiträge der redaktion.

Der Verein der Karlsruher Softwareingenieure e.V. (VKSI) wurde im Oktober 2008 gegründet. Sein Vereinsziel lautet, eigenständige und fokussierte Maßnahmen zu ergreifen, um die öffentliche Wahrnehmung der Softwaretechnik als Ingenieurdisziplin zu fördern, Kenntnisse und Erfahrungen in der Softwaretechnik zusammenzuführen und weiterzuge-ben, Innovationen in der Softwaretechnik zu beschleunigen und zu verbrei-ten und den wissenschaftlich-technischen Nachwuchs zu fördern. Der Ver-ein hat sich darüber hinaus zum Ziel gesetzt, ein Bild über die Vielfalt von Software Engineering in Karlsruhe zu vermitteln und die Attraktivität des Karlsruher Software-Arbeitsmarktes zu transportieren.

Bildnachweis:Fakultät für Informatik, KIT S. 6, 7; Fotolia S. 8; Jochen Härtel S. 1, 8; STP Informationstechnologie AG S. 8, Tom Kohler S. 10, 11, 15; Susann Mathis S. 25; wikimedia/David.Monniaux S. 12; TH München S. 24

IMPrESSUM

34 VKSI MAGAZIN Nr. 7 November 2012

Page 35: VKSI-Magazin #7

rüCKSCHAU

VKSI Sneak Preview – QS Best Practices in Karlsruhe

11.Oktober 2012Trotz der allgemein bekannten, rasanten Entwicklung im Soft-ware Engineering ist das Thema Qualitätssicherung nach wie vor relevant, wenn nicht sogar relevanter denn je. Das zeigte auch das rege Interesse an der VKSI Sneak Preview im Oktober. Bei der Sneak Preview standen Best Practices im Umfeld der Qualitätssicherung im Fokus.

Während Maßnahmen zur Qualitätssicherung, wie testge-triebene Entwicklung, Continuous Integration oder Pair Pro-gramming inzwischen weitestgehend verbreitet sind wurden bei der Sneak Preview bisher weniger erschlossene und innova-tive Möglichkeiten in diesem Umfeld diskutiert.

Gebhard Ebeling, Testmanager bei Avarto Infoscore, prä-sentierte Dos und Don’ts sowie Erfahrungen im Umgang mit nichtfunktionalen Tests. Speziell die Planung und Auswertung von Lasttests, sowie die reproduzierbarkeit und Vermeidung möglicher Fehlinterpretationen wurden ausgiebig diskutiert. Ganz klar gehörten hierzu auch die realistische Bewertung der Ergebnisse sowie deren Aufbereitung, zur Prüfbarkeit durch die Produktverantwortlichen, gegenüber den ursprünglichen Zielvorgaben.

Im zweiten Vortrag präsentierten Ben Romberg und Stefan Schürle von der anderen objects ag das erst vor wenigen Tagen veröffentlichte, release des c4J Frameworks (Contracts for Java) [2]. Hierbei handelt es sich um ein OpenSource Frame-work, mit dem Entwickler Contracts für Java Klassen und Schnittstellen definieren können, die einen Vertrag definieren, der über die Möglichkeiten von Unit Tests hinausgeht. Hier-durch können nicht nur gezielt einzelne Eingaben und Aus-gaben geprüft, sondern ganze Wertbereiche, für die Schnitt-stellen und Methoden gültig sind über Vererbungsgrenzen hinweg definiert werden. Diese Prüfung kann durch eine Kon-figuration in der Java Umgebung aktiviert und damit wahlwei-se zur Laufzeit, Entwicklungszeit, und/oder im rahmen der

Qualitätssicherung genutzt werden. Das Framework umfasst auch eine Integration mit der Eclipse Umgebung, was dem Softwareentwickler eine komfortable Erstellung der Contracts ermöglicht. Mehr dazu im Artikel zu C4J 6.0.

Der dritte Vortrag, gehalten von Benjamin Klatt, wissen-schaftlicher Mitarbeiter im FZI Forschungszentrum Infor-matik, gab einen Einblick in das MoDisco Projekt und dessen Möglichkeiten zur Programmanalyse im Kontext der Software Modernisierung. Als Teil des Eclipse ökosystems bietet es die Möglichkeit Modelle von einer Software zu gewinnen und diese mittels individueller Anfragen zu untersuchen. Die hierbei gewonnen Informationen können manuell oder in automati-sierten Workflows genutzt werden um die Software selbst zu modernisieren. In dem Vortrag wurden speziell die Möglich-keiten der Integration in die Eclipse IDE vorgestellt. Darüber hinaus wurde MoDisco aber auch in den Kontext von Software Modernisierung allgemein, sowie die Kombination mit anderen Werkzeugen gestellt.

Das Feedback zu dem QS Best Practices in Karlsruhe war so positiv, dass im VKSI bereits über eine zweite Sneak Pre-view zu diesem Thema diskutiert wird. Wer sich im Nachhin-ein für die Vorträge dieser Sneak Preview interessiert kann sie von der VKSI Website herunterladen [1]. Mitglieder werden wie gewohnt automatisch über die nächsten Sneak Previews informiert, um sie rechtzeitig registrieren zu können. Der VKSI Newsletter bietet ebenfalls die Möglichkeit sich über die kom-menden Sneak Previews benachrichtigen zu lassen [3].

Weiterführende Links:[1] http://www.vksi.de/sneak-preview/

11102012-qs-best-practices-in-karlsruhe.html[2] http://c4j.vksi.de [3] http://www.vksi.de/newsletter.html

Drei interessante Vorträge fanden positives Feedback reger Austausch im Anschluss

VKSI MAGAZIN Nr. 7 November 2012 35

Page 36: VKSI-Magazin #7

arvato infoscore

Recruiting Services Postfach 902000 33312 Gütersloh

Ihre Aufgaben:■ Neu- und Weiterentwicklung innovativer Softwarelösungen

unter Einsatz moderner Entwicklungsmethoden und agiler Vorgehensmodelle

■ Mitgestaltung der serviceorientierten Gesamtarchitektur auf Basis aktueller Technologien

■ Software-Entwicklung im SCRUM-Team

Unsere Anforderungen:■ Abgeschlossenes Studium der Informatik oder Wirtschafts-

informatik oder vergleichbare Ausbildung■ Programmiererfahrung in Java, zur Anwendung kommen

z. B. J2EE, EJB3.x, Hibernate, JBoss/Tomcat■ Erfahrungen mit relationalen Datenbanken und SQL ■ Spaß an der Mitarbeit in agilen Entwicklungsteams ■ Hohes Maß an Selbstständigkeit und Eigenverantwortung ■ Gutes Abstraktionsvermögen im Hinblick auf Herangehens-

weise und Erarbeitung von Lösungsprozessen■ Strukturierte und zielorientierte Arbeitsweise■ Hohes Maß an Kundenorientierung, Teamfähigkeit sowie

Kommunikationsstärke

Unser Selbstverständnis:Die Basis unseres partnerschaftlichen Führungsverständnisses bilden gegenseitiges Vertrauen, Respekt vor dem Einzelnen sowie das Prinzip der Delegation von Verantwortung. Unsere Mitarbeiter haben größtmöglichen Freiraum, sie sind umfassend informiert und nehmen sowohl an Entscheidungsprozessen als auch am wirtschaftlichen Erfolg des Unternehmens teil.

Haben Sie Interesse, gemeinsam mit uns zu wachsen und in einem zukunftsweisenden Umfeld entscheidende Akzente zu setzen?

Ihre Aufgaben:■ Testmanagement und Testkoordination im SCRUM-Team■ Erstellung von Testfällen bzw. Testszenarien, Durchführung

und Dokumentation von Testläufen in den Teststufen Integ-rations-, System- und Abnahmetest

■ Abweichungsmanagement ■ Aufbau, Weiterentwicklung und Wartung automatisierter

Tests in allen Teststufen sowie Wartung und Weiterentwick-lung bestehender Testtools

Unsere Anforderungen:■ Abgeschlossenes Studium der Informatik oder Wirtschafts-

informatik oder vergleichbare Ausbildung■ Spaß am strukturierten Fehlerfinden, Erfahrungen in der

Software-Qualitätssicherung, Softwaretests und Testauto-matisierung

■ Spaß an der Mitarbeit in agilen Entwicklungsteams ■ Hohes Maß an Selbstständigkeit und Eigenverantwortung ■ Gutes Abstraktionsvermögen im Hinblick auf Herangehens-

weise und Erarbeitung von Lösungsprozessen■ Strukturierte und zielorientierte Arbeitsweise■ Hohes Maß an Kundenorientierung, Teamfähigkeit sowie

Kommunikationsstärke

arvato infoscore ist ein Tochterunternehmen der arvato AG, des international vernetzten Outsourcingdienstleisters der Bertelsmann SE & Co. KGaA. Mit rund 2.200 Mitarbeitern und Hauptsitz in Baden-Baden ist arvato infoscore an 12 Standorten in Deutschland, Österreich, der Schweiz, Ungarn und den Niederlanden tätig. arvato infoscore steht für die integrierte kaufmännische Betreuung von Kundenbeziehungen über den gesamten Kundenlebenszyklus.

Anwendungsentwickler (m/w) Testmanager (m/w)

Für unser stark expandierendes Unternehmen arvato infoscore suchen wir am Standort Baden-Baden mehrere

Weitere Informationen finden Sie unter:www.arvato-infoscore.de/it

Anz VKSI 210x297 arvato 12-09 RZ.indd 1 10.09.12 13:19