15.01.2015 Aufrufe

Der Entwickler- Almanach

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Alternativ könnte der Kunde sich aber auch wünschen, nach Inkrement 1.2 anders weiterzumachen. Ihm<br />

könnte wichtiger sein, Inkrement 3 anzugehen, um nach dem Programmstart mal andere Daten aufschlagen<br />

zu können. Auch da würde er zunächst auf die tabellarische Darstellung verzichten. Und dann würde er<br />

sich vielleicht wünschen, Inkrement 2 zu realisieren, um zwischen erster und letzter Seite springen zu<br />

können.<br />

Egal welchen Kurs der Kunde durch die Anforderungen nähme, bei jedem Inkrement würde der Entwurf<br />

die Aspekte widerspiegeln und der Code würde den Entwurf erhalten. Denn alle Blasen in den<br />

Abbildungen können in Funktionen übersetzt werden.<br />

Das hört sich für Sie vielleicht wie eine Vorlage für funktionale Programmierung an, ist es aber nicht.<br />

Denn die Funktionseinheiten, die bei diesem Entwurf entstehen, können Zustand haben.<br />

Oder es hört sich an wie die funktionale Dekomposition aus früheren Zeiten, ist es aber auch nicht. Denn<br />

die hat sich erstens nicht um Inkremente geschert. Zweitens hat sie keine Probleme damit gehabt, auf<br />

globale Daten zuzugreifen – was hier nicht passiert, da die Daten zwischen den Funktionseinheiten fließen.<br />

Und drittens hat die funktionale Dekomposition das Single Responsibility Principle (SRP) nicht so stark<br />

im Blick gehabt wie die hier dargestellte Zerlegung.<br />

Prinzipien agilen Entwurfs<br />

Damit agiler Entwurf nicht unter die Räder einer Technologie wie der Objektorientierung kommt, reicht der<br />

Wille zur Erhaltung von Inkrementen allein nicht aus. Es müssen zumindest zwei Prinzipien hinzutreten,<br />

die eine spätere Übersetzung in eine Programmiersprache lenken.<br />

Das erste Prinzip nenne ich das Integration Operation Segregation Principle (IOSP). Es ist ein spezielle<br />

Ausprägung des SRP, indem es Funktionseinheiten sehr spezifische Verantwortlichkeiten zuweist.<br />

Allerdings sind diese hier formal und nicht inhaltlich bestimmt.<br />

Ich halte die Trennung von Integration und Logik für essenziell. Logik entscheidet und berechnet,<br />

Integration fasst Teile zusammen zu einem Ganzen. Integration formt aus Teilaspekten einen neuen Aspekt,<br />

sie abstrahiert. Abbildung 12 klassifiziert die Blasen des Beispielszenarios nach diesem Prinzip.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!