08.07.2014 Aufrufe

SCHWERPUNKT: MODELLE - Sigs-Datacom GmbH

SCHWERPUNKT: MODELLE - Sigs-Datacom GmbH

SCHWERPUNKT: MODELLE - Sigs-Datacom GmbH

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Poster:<br />

Verteilte<br />

Versionskontrolle<br />

November / Dezember 2012 • Nr. 6<br />

€ 8,90 Österreich € 9,90 Schweiz sfr 16,50<br />

www.OBJEKTspektrum.de<br />

Die Zeitschrift für Software-Engineering und -Management<br />

<strong>SCHWERPUNKT</strong>: <strong>MODELLE</strong><br />

<strong>SCHWERPUNKT</strong>: <strong>MODELLE</strong><br />

BPMN 2.0: Eine Zwischenbilanz<br />

Analoge Modellierung<br />

Die Lösung des MDD-Paradoxons<br />

FACHARTIKEL<br />

G 6540F<br />

Anforderungen ermitteln – Zehn Schritte für die Praxis<br />

Architekturen für moderne Web-Anwendungen - Teil 2


Konferenz<br />

Ausstellung<br />

OOP<br />

21. – 25. Januar 2013 22. – 24. Januar 2013<br />

2013<br />

software meets business<br />

ICM International Congress Center München<br />

15%<br />

plus eBook Reader<br />

3.0 von TrekStor<br />

bei Anmeldung bis zum<br />

30.11.2012<br />

CONTINUOUS INNOVATION:<br />

The Foundation for Success<br />

Software Architecture (incl. Professional Architect) | Web Architecture Neu<br />

Trends & Techniques (incl. Automotive & DevOps) Neu | Integration<br />

Architecture | Project Management & Lean IT Neu | Technologies (incl.<br />

Language & Mobile Development) | Testing & Quality (incl. Security Testing)<br />

Requirements Engineering & Acceptance Test Driven Development Neu<br />

Agile, Lean, Scrum & Kanban | Reinventing Management Neu<br />

Keynotes<br />

+++ How Secure Are We? Identity Management and Social Networking Threats, Jeff Crume (IBM) +++ Beyond<br />

Budgeting – A Management Model for New Business and People Realities, Bjarte Bogsnes (Statoil) +++ Generation<br />

iPhone – die Zukunft vernetzt, Masanori Fujita (Zühlke) +++ The Coming of Age of Platforms, Mary Poppendieck +++<br />

Autobahn for Racing to a Billion Users, Subbu Subramanian (Facebook) +++<br />

Veranstalter:<br />

Programm und Infos:<br />

www.OOP2013.de


editorial<br />

chefredakteur<br />

IT’S NEXT TOP-MODELL?<br />

Computer auf dem Catwalk? Das Cover dieser Ausgabe von<br />

OBJEKTspektrum zeigt, dass auch unsere anscheinend so rationale<br />

Szene hochgradig von Mode und Zeitgeist geprägt ist.<br />

Deutlich wird das zum Beispiel, wenn man die Entwicklung der<br />

Diskussion in der IT-Gemeinde über Modellierung und Modelle<br />

im Laufe der vergangenen Jahre und Jahrzehnte betrachtet.<br />

Immer neue Modellierungstrends sind über die Zeit entstanden<br />

und teilweise auch wieder verschwunden.<br />

Mit den Datenbanken haben vor langer Zeit Datenmodelle<br />

Einzug in die IT gehalten – diese waren aus der real existierenden<br />

Anwendungsentwicklung der 80er Jahre kaum wegzudenken.<br />

Sogar Unternehmensdatenmodelle wurden propagiert und die IT<br />

damit im Gesamtunternehmen strategisch geadelt. Daneben entstand<br />

eine erste Softwareguru-Szene mit Persönlich keiten wie Tom<br />

DeMarco und Ed Yourdon, die Datenfluss modelle der<br />

Strukturierten Analyse predigten. Zumindest die Modelle der<br />

Strukturierten Analyse sind inzwischen IT-Geschichte.<br />

Die 90er Jahre waren von objektorientierten Modellen und<br />

ihren Päpsten, wie Grady Booch, Ivar Jacobson und James<br />

Rumbaugh, geprägt. Die Unified Modeling Language (UML) war<br />

das kristallisierte Ergebnis dieser Epoche und wirkt bis heute<br />

nachhaltig auf unsere Arbeit. Die Verwendung der UML ist heute<br />

offensichtlich geübte Praxis. Umso wertvoller empfinde ich den<br />

Artikel von Gabriele Taentzer und Thorsten Arendt in dieser<br />

Ausgabe von OBJEKTspektrum, in dem die beiden praktische<br />

Tipps für die Qualitätssicherung von UML-Modellen geben.<br />

Einen Höhepunkt der objektorientierten Modellierung haben<br />

wir seit Anfang dieses Jahrtausends mit den Ansätzen der Model<br />

Driven Architecture (MDA) erlebt, die die alte Vision wiederbelebt<br />

haben, dass man aus Modellen Software generieren kann.<br />

Dieser Ansatz für Softwareentwicklung ist heute noch weit verbreitet,<br />

auch wenn nicht ganz so lautstark darüber berichtet wird<br />

wie über aktuelle Hype-Themen. Benedikt von Treskow hat in<br />

diesem Heft einen wirklich guten Erfahrungsbericht hierüber<br />

geschrieben und Daniela Schilling geht sogar noch einen Schritt<br />

weiter, wenn sie ihren Generator-Generator mit dem Ziel der Ent -<br />

mysti fizierung des modellgetriebenen Designs vorstellt.<br />

Parallel zu diesen Modellen hat die Modellierung von Ge -<br />

schäfts prozessen immer mehr an Fahrt aufgenommen. Einen<br />

ersten Schub bekam das Thema dadurch, dass August-Wilhelm<br />

Scheer vor den erfolgreichen Einsatz von SAP-Standardsoftware<br />

die Modellierung von Prozessketten setzte. Es gibt immer noch<br />

Erweiterungen von Prozessmodellierungsansätzen wie den von<br />

Holger Breitling und Stefan Hofer in ihrem Artikel zur exemplarischen<br />

Geschäftsprozessmodellierung. Im Sinne der Standardi -<br />

sierung spielt aber gewiss BPMN eine immer größere Rolle, wo -<br />

rüber Jakob Freund in seinem Artikel berichtet.<br />

Der aktuelle IT-Zeitgeist, der ja wesentlich durch die agile Soft -<br />

ware entwicklung beeinflusst ist, schiebt Modelle immer häufiger<br />

in die Ecke der zu schwergewichtigen Entwicklung. Ist das der<br />

Anfang vom Ende der Modellierung in der Anwendungsent -<br />

wicklung? Kann man einen roten Faden in dieser Modell -<br />

geschichte erkennen? Oder sind es wirklich nur sich mehr oder<br />

weniger wiederholende Moden?<br />

Fangen wir einmal mit der Frage an, was Modellierung eigentlich<br />

soll. Modelle dienen definitionsgemäß der Abstraktion – sei es der<br />

Abstraktion und Formalisierung von fachlichen Anforderungen<br />

und damit der besseren Kommunika tion zwischen Anwendern<br />

bzw. Auftraggebern und Entwicklern oder der Abstraktion im<br />

Sinne einer architektonischen Struk turierung oder sogar der<br />

Generierung von Anwendungssystemen. Aber für all diese Ziele<br />

sind Modelle nicht unumstritten oder ohne Alternative.<br />

Sowohl die objektorientierte Modellierung als auch die<br />

Geschäftsprozessmodellierung haben sich das Ziel einer besseren<br />

Kommunikation mit dem Auftraggeber auf ihre Fahnen geschrieben.<br />

Die objektorientierten Modelle haben diesen Anspruch nicht<br />

immer erfüllt. Genau in diesem Punkt wird die UML-<br />

Verwendung in agilen Projektkontexten oft als Verschwendung<br />

empfunden, wenn die Modelle keinen direkten Nutzen für die<br />

Anwender darstellen, sondern nur als Übergabe-Artefakte zwischen<br />

zwei Entwicklungsphasen dienen. Hier wird in agilen<br />

Projekten die direkte und persönliche Kommunikation zwischen<br />

Fachleuten und Entwicklern in kurzen Iterationen bevorzugt.<br />

Zur Kommunikation zwischen Fachbereich und Entwicklung<br />

scheinen Prozessmodelle besser geeignet zu sein. Sie können auch<br />

einen fachlichen Rahmen um agile Anforderungen bilden, die in<br />

User-Storys formuliert werden und damit nicht nur das System<br />

aus Anwendersicht dokumentieren, sondern auch wesentliche<br />

Orientierungs- und Strukturierungshilfe geben. Kim Nena<br />

Duggen und Stefan Toth stellen in ihrem Artikel sogar einen<br />

leichtgewichtigen Prozessmodellierungsansatz vor, der ohne<br />

Werkzeugeinsatz mit kurzen Feedback-Schleifen ideal in agile<br />

Entwicklungsmodelle passt. Und in manchen werkzeuggetriebenen<br />

Ansätzen wird auch hier Software für automatisierte Work -<br />

flows aus Prozessmodellen generiert.<br />

Zur Strukturierung (und damit auch Dokumentation) komplexer<br />

Softwaresysteme hat sich die UML in ihrer Tradition der<br />

Daten- und Funktionsabstraktion wirklich bewährt und es gibt<br />

meiner Meinung nach keine wirkliche Alternative zu ihr, auch<br />

wenn Martin Fowler öffentlichkeitswirksam forderte, dass zur<br />

Dokumentation eigentlich guter Code ausreichen sollte. Die<br />

zwischenzeitlich fast religiöse Diskussion darum hat er selbst entschärft,<br />

indem er den Nutzen von Modellen gerade zur<br />

Strukturierung komplexer Systeme einräumt.<br />

Ich habe die Hoffnung, dass sich die IT zunehmend von modischen<br />

Trends emanzipiert. Es gibt keine „Weltformel” für alle<br />

Probleme in der Anwendungsentwicklung, sondern wir müssen<br />

für die jeweiligen Aufgaben adäquate Verfahren, Artefakte und<br />

Werkzeuge wählen. Handwerklich saubere Arbeit – in der<br />

Spezifikation, der Modellierung und in der Programmierung –<br />

ersetzt mehr und mehr die Tool-Gläubigkeit in der Software -<br />

entwicklung. Gutes Handwerk braucht gute Ausbildung und das<br />

Nutzen von Erfahrungen. Wir müssen nicht mit Kanonen auf<br />

Spatzen schießen, aber gerade in großen und komplexen<br />

Systemen können wir auf die Erfahrungen, die wir in den letzten<br />

Jahrzehnten mit Architekturen und Modellen gemacht haben,<br />

nicht verzichten.<br />

Ihr Thorsten Janning<br />

NEWS<br />

LETTER<br />

Alle zwei Monate kostenlos<br />

• Heftinhalte • ausgewählte Artikel im Pdf-Format • ergänzende Weiterbildungsangebote<br />

Anmeldung unter www.sigs-datacom.de/os/newsletter/


?<br />

Frage des Monats<br />

Stimmen Sie mit ab!<br />

sigs-datacom.de/fachzeitschriften/objektspektrum/os-umfrage.html<br />

<strong>SCHWERPUNKT</strong>:<br />

<strong>MODELLE</strong><br />

Daniela Schilling<br />

VOM SCHUSTER MIT DEN GERADEN<br />

ABSÄTZEN:<br />

DIE LÖSUNG DES MDD-PARADOXONS · · 32<br />

Generatoren und domänenspezifische Sprachen (DSLs) stellen<br />

zusammen mit Modellen zwar die zentralen Elemente der<br />

modellgetriebenen Entwicklung dar, sie selber werden aber mit<br />

den herkömmlichen Methoden paradoxerweise nicht modellgetrieben<br />

entwickelt. Daraus resultiert, dass die Generator- und<br />

DSL-Entwicklung als zeitaufwändige und fehleranfällige<br />

Geheimwissen schaft gilt. Dieser Artikel stellt eine Lösung vor, mit<br />

der dieses Paradoxon behoben werden kann.<br />

EDITORIAL · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 3<br />

AUS DER SZENE · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 6<br />

STELLENMARKT · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 56<br />

BUCHBESPRECHUNG<br />

FRANK PIENTKA REZENSISERT:<br />

„SOFTWAREARCHITEKTUREN DOKUMENTIEREN<br />

UND KOMMUNIZIEREN” VON STEFAN ZÖRNER · · · · · 71<br />

IMPRESSUM · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 75<br />

KONFERENZBERICHTE<br />

VORSCHAU: OOP 2013 · · · · · · · · · · · · · · · · · · · · · · · · · · 84<br />

RÜCKSCHAU: ARCHITEKTUREN 2012 · · · · · · · · · · · · 85<br />

SEMINARE & VERANSTALTUNGEN · · · · · · · · · · · · · · · 86<br />

THEMENVORSCHAU & INSERENTENVERZEICHNIS · · 87<br />

Template-basierte Spezifikation eines<br />

Generators.<br />

schwerpunkt<br />

Jacob Fahrenkrug<br />

Volker Kultermann<br />

VON SURFERN UND SCHWERÖLTANKERN:<br />

TROTZ KULTURSCHOCK ZUM<br />

WIRTSCHAFTLICHEN ERFOLG · · · · · · · · · · 50<br />

Die agile Welt wird in der aktuellen Literatur wie eine paradiesische<br />

Insel beschrieben. Auf dieser Insel ist man angeblich angekommen,<br />

sobald die Organisation agil arbeitet. In der Umsetzung<br />

von Projekten arbeitet man jedoch selten isoliert von der<br />

Außenwelt. Es gibt Partner, Subunter nehmer oder Kunden, die<br />

ebenfalls ihren Teil zum Projekt beitragen. Nicht immer sind diese<br />

Mitstreiter agil organisiert. In der Realität sind Projekte irgendwo<br />

zwischen agilen Surfern und schwerfälligen Schweröltankern weit<br />

verbreitet. Der Artikel beschreibt Herausforderungen und Best<br />

Practices, um solche Projekte trotz aller Unterschiede in der<br />

Projektorganisation zu einem wirtschaftlichen Erfolg zu bringen.<br />

Holger Breitling<br />

Stefan Hofer<br />

BEISPIELHAFT GUT MODELLIERT:<br />

EXEMPLARISCHE GESCHÄFTSPROZESS-<br />

MODELLIERUNG IN DER PRAXIS · · · · · · · · · · · · · · · · · · · 8<br />

Gabriele Taentzer<br />

Thorsten Arendt<br />

BESSER MODELLIEREN:<br />

QUALITÄTSSICHERUNG VON UML-<strong>MODELLE</strong>N · · · · · · 14<br />

TITEL-STORY<br />

Stefan Toth<br />

Kim Nena Duggen<br />

ANALOGE MODELLIERUNG:<br />

ÜBER DIE QUALITÄTSSTIFTENDE<br />

ABKEHR VOM TOOL · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 20<br />

TITEL-STORY<br />

4 5 www.objektspektrum.de


Poster-<br />

Beilage<br />

Das beiliegende Poster zu Distributed Version Control<br />

lieferte uns die bbv AG. Der Postersponsor eröffnete<br />

kürzlich eine Niederlassung in München.<br />

schwerpunkt<br />

Jakob Freund<br />

BPMN 2.0:<br />

EINE ZWISCHENBILANZ · · · · · · · · · · · · · · · · · · · · · · · · · 26<br />

TITEL-STORY<br />

Daniela Schilling<br />

VOM SCHUSTER MIT DEN GERADEN ABSÄTZEN:<br />

DIE LÖSUNG DES MDD-PARADOXONS · · · · · · · · · · · · 32<br />

Benedikt von Treskow<br />

MODELLGETRIEBENE SOFTWAREENTWICKLUNG<br />

IN EINEM GROSSPROJEKT:<br />

EIN PRAXISBERICHT ÜBER DEN<br />

ERFOLGREICHEN EINSATZ VON MDD · · · · · · · · · · · · · 39<br />

Christof Ebert<br />

ANFORDERUNGEN ERMITTELN:<br />

ZEHN SCHRITTE FÜR DIE PRAXIS · · · · · · · · · 61<br />

Eine Anforderung beschreibt, was der Kunde oder Benutzer<br />

vom Produkt erwarten. Dies umfasst Ziele, Nutzen,<br />

Funktionen, Qualitätseigenschaften und Randbedingungen.<br />

Doch woher kommen die Anforderungen? Sammelt man<br />

Anforderungen nur ein, floppt das spätere Produkt, weil die<br />

Eigenschaften fehlen, die ein Produkt erst richtig attraktiv<br />

machen. Anforderungen müssen gezielt entwickelt werden –<br />

und das ist nicht einfach. Der Artikel stellt die methodische<br />

Ermittlung von Anforderungen in zehn Schritten vor.<br />

fachartikel<br />

Jacob Fahrenkrug<br />

Volker Kultermann<br />

VON SURFERN UND SCHWERÖLTANKERN:<br />

TROTZ KULTURSCHOCK ZUM<br />

WIRTSCHAFTLICHEN ERFOLG · · · · · · · · · · · · · · · · · · · · 50<br />

Christof Ebert<br />

ANFORDERUNGEN ERMITTELN:<br />

ZEHN SCHRITTE FÜR DIE PRAXIS · · · · · · · · · · · · · · · · · · · 61<br />

TITEL-STORY<br />

Andreas Hartmann<br />

Tom Hombergs<br />

Eberhard Wolff<br />

ARCHITEKTUREN FÜR MODERNE<br />

WEB-ANWENDUNGEN:<br />

TEIL 2: JAVASCRIPT UND JEE-PORTAL-SERVER · · · · · 72<br />

TITEL-STORY<br />

Patric Keller<br />

Veit Köppen<br />

Peter Liggesmeyer<br />

SICHERHEIT IN DER FAHRZEUGTECHNIK:<br />

SOFTWARE IN EINGEBETTETEN SYSTEMEN · · · · · · · · 78<br />

Herausforderung: Viele Interessengruppen mit<br />

eigenen Zielen.<br />

Patric Keller<br />

Veit Köppen<br />

Peter Liggesmeyer<br />

SICHERHEIT IN DER FAHRZEUGTECHNIK:<br />

SOFTWARE IN<br />

EINGEBETTETEN SYSTEMEN · · · · · · · · · · · · 78<br />

Die Fahrzeugtechnik ist einer der wichtigsten Treiber für<br />

Innovationen bei der Entwicklung komplexer Systeme. Trotz<br />

der wachsenden Komplexität muss Qualität sichergestellt<br />

werden. Das erfordert leistungsfähige Modellierungs- und<br />

Analysetechniken sowie geeignete Entwicklungsprozesse<br />

und Verfahren, die das Verstehen der komplizierten<br />

Sachverhalte erleichtern. Der Artikel beleuchtet aus Sicht<br />

der Qualitätssicherung Probleme und Einflussfaktoren, die in<br />

der Entwicklung von eingebetteten Systemen zumeist nicht<br />

hinreichend berücksichtigt werden.<br />

6/2012 www.sigs-datacom.de


aus der szene<br />

Links und rechts<br />

des Wegs schauen<br />

Dr. Johannes Textor:<br />

von den Gassen<br />

Lübecks an die<br />

Grachten Utrechts.<br />

Informatik ist Informatik – und Medizin<br />

ist Medizin. Das ist natürlich eine<br />

Aussage, die so nicht stimmt. Denn<br />

besonders spannend wird es immer<br />

dann, wenn die eine Disziplin die andere<br />

befruchtet – und vice versa. Dr.<br />

Johannes Textor weiß, wovon die Rede<br />

ist. 1979 in Göttingen geboren, studierte<br />

er Informatik mit Anwendungsfach<br />

Medizinische Informatik an der<br />

Lübecker Universität, seit September<br />

2011 forscht und arbeitet er in Utrecht.<br />

An der größten Universität der<br />

Niederlande beschäftigt er sich mit<br />

„Computational Immunology“ und<br />

„Artifiziellen Immunsystemen“. Sein<br />

aktuelles Team an der Utrechter Uni versität besteht aus rund 25<br />

Postdocs aus der ganzen Welt.Von der Gesellschaft für Informatik<br />

(GI) wurde Textor kürzlich für die beste Informatik-Dissertation<br />

im deutschsprachigen Raum ausgezeichnet. Das Thema seiner<br />

Doktorarbeit lautete: „Search and Learning in the Immune<br />

System: Models of Immune Surveillance and Negative Selection”.<br />

Textors Leitfrage war: „Können Methoden der Informatik das<br />

Funktionieren des menschlichen Immunsystems erklären?“<br />

In seiner Forschung hat Textor die T-Zellen des menschlichen<br />

Immunsystems im Blick. Diese kann man sich als eine Art<br />

„Polizeistreife des Körpers” vorstellen: Jede T-Zelle ist spezialisiert<br />

auf die Erkennung von ganz bestimmten Antigenen (Krank -<br />

heitserregern) und patrouilliert ständig durch den Körper, um überall<br />

nach diesen Antigenen zu suchen. Textor geht in seiner<br />

Dissertation den Fragen nach, wie es die T-Zellen schaffen, ein in<br />

den Körper eindringendes Antigen meist nach nur wenigen Stunden<br />

zu finden, und wie es das Immunsystem trotz der riesigen Vielfalt<br />

Die Simulation der Erkennung von Antigenen in einem infizierten<br />

Lymphknoten des menschlichen Immunsystems. Nach<br />

acht Stunden haben alle Zellen das Antigen gefunden und ihre<br />

Bewegung entsprechend stark verlangsamt (rote Farben).<br />

und rasend schnellen Entwicklung der Krankheitserreger in unserer<br />

Umwelt schafft, einen nahezu vollständigen Schutz aufzubauen.<br />

Die Arbeit betrachtet diese beiden Fragen aus einem neuen<br />

Blickwinkel – aus dem der Informatik. Viele der Probleme, die T-<br />

Zellen lösen müssen, sind nämlich auch in der Informatik<br />

bekannt: Wie lässt sich ein Problem effizient auf viele kleine<br />

Agenten ohne zentrale Kontrolle verteilen? Wie kann ein System<br />

auf anormale und potenziell gefährliche Signale zuverlässig reagieren,<br />

wenn es diese Signale nie zuvor gesehen hat? Die Arbeit<br />

nutzt analytische Werkzeuge aus Gebieten der Informatik, wie<br />

der Schwarmintelligenz und dem maschinellen Lernen, um genau<br />

zu verstehen, wie T-Zellen diese schwierigen Aufgaben lösen.<br />

Die so konstruierten Modelle sind in der Lage, überprüfbare<br />

Aussagen über das Verhalten des Immunsystems in bestimmten<br />

Situationen zu treffen. So wird beispielsweise ein Modell verwendet,<br />

um vorherzusagen, welche Teile der Proteine von Viren –<br />

konkret wird das HIV-Virus betrachtet – vom Immunsystem<br />

erkannt werden müssten. Es zeigt sich, dass diese Vorhersagen<br />

genauer sind als die aller anderen bislang vorgeschlagenen<br />

Erklärungsmodelle. Solche Vorhersagen könnten in der Zukunft<br />

bei der Entwicklung von Impfstoffen für neuartige Krank heits -<br />

erreger von Nutzen sein.<br />

Neben interdisziplinärer Inspiration und Doktorvätern aus<br />

unterschiedlichen Fächern, wie dem Informatiker K. Rüdiger<br />

Reischuk und dem Mediziner Jürgen Westermann von der<br />

Universität Lübeck, benötigt man für solche Erkenntnisse<br />

Software: Textor hat sie entwickelt und bietet sie zum Download<br />

an. Wie „Negative Selection“ funktioniert, klären Algorithmen,<br />

die in Java geschrieben sind. „DAGitty“ heißt ein Werkzeug, mit<br />

dem sich kausale Diagramme zeichnen und analysieren lassen,<br />

geschrieben ebenfalls in JavaScript. „LImmSim” ist eine agentenbasierte<br />

Simulation des Immunsystems, geschrieben in C++.<br />

Wenn Textor in die Zukunft blickt, dann kann er auch links<br />

und rechts des Wegs schauen: Eine Professur in der<br />

Bioinformatik? Warum nicht? Aber auch in der institutionellen<br />

Forschung gibt es Möglichkeiten. Eine Arbeit in der Industrie<br />

kann er sich ebenfalls vorstellen – die Bioinformatik bietet viele<br />

Optionen.<br />

dagitty.net/<br />

bioinformatics.bio.uu.nl/textor/<br />

Schon am Anfang<br />

die Regeln kennen<br />

Gereon Weiß, Gruppenleiter Automotive Software bei der<br />

Fraunhofer Einrichtung für Systeme der Kommunikationstechnik<br />

(ESK München), weiß, wo häufig der Schuh drückt: Deshalb hat<br />

er gemeinsam mit seinem Team den „Richtlinien-Checker“ entwickelt.<br />

Damit können Softwareentwickler bereits bei der Model -<br />

lierung überprüfen, ob die Modelle den Richtlinien entsprechen.<br />

Die Definition von Richtlinien und die automatisierte Prüfung<br />

der Einhaltung dieser Richtlinien sollen den Entwicklungsprozess<br />

zusätzlich formalisieren, um Fehler zu vermeiden. „Zwar gibt es<br />

bereits Möglichkeiten, seine Modelle auf Regelkonformität zu<br />

prüfen. Aber uns hat es gefehlt, verschiedene Sets an Regeln zu<br />

testen – je nach Modell und nach Untersuchungsinteresse.<br />

Deswegen haben wir unseren Richtlinien-Checker mit verschiedenen<br />

Profilen entwickelt“, sagt Weiß.<br />

Gerade Entwickler von Software für Fahrzeuge sehen sich<br />

einem hohen Innovationsdruck und immer kürzer werdenden<br />

6 7


aus der szene<br />

Foto: Fraunhofer ESK.<br />

Foto: Fraunhofer ESK.<br />

Gereon Weiß weiß,<br />

wie man vorne prüft,<br />

um hinten Fehler zu<br />

vermeiden.<br />

Mit dem Richtlinien-Checker der Fraunhofer ESK können<br />

Softwareentwickler bereits bei der Modellierung überprüfen,<br />

ob die Modelle den Richtlinien entsprechen.<br />

Produktzyklen gegenüber. Hinzu kommt<br />

die hohe Varianten vielfalt der Software.<br />

Dem begegnen sie mit modellbasierter<br />

Softwareentwicklung: Die sehr umfangreichen<br />

Softwaremodelle müssen<br />

bereits im Entstehungsprozess auf ihre<br />

Richtlinien konformität geprüft werden,<br />

um hochqualitative Software zu entwi -<br />

ckeln. Gleichzeitig kann durch eine frühe<br />

Qualitätsprüfung der Software der<br />

spätere Aufwand für das Testen um<br />

rund 30 Prozent reduziert werden. Die<br />

Profile umfassen ein Set von Regeln, die<br />

der Entwickler selbst definieren kann.<br />

So können beispielsweise spezielle<br />

Profile für Abnahmetests von Modellen<br />

erstellt werden, die die Übernahme zugelieferter<br />

Modelle absichern. Auch können<br />

gezielt Profile für Entwickler genutzt werden, die bekannte<br />

Fallstricke und die Einhaltung Framework-spezifischer Anfor -<br />

derungen überprüfen. Hiermit können Fehler in Modellen frühzeitig<br />

vermieden werden, die in der Regel erst zu einem späteren<br />

Zeitpunkt bemerkt werden, wenn ihre Beseitigung teuer wird.<br />

Außer den klassischen Regeln können auch informelle Aspekte,<br />

zum Beispiel die Gestaltung von grafischen Modellelementen, wie<br />

Statecharts und anderen Diagrammtypen, mit Richtlinien festgehalten<br />

und überprüft werden. Dadurch stellt man eine einheitliche<br />

Modellierung sicher und kann den Freiheitsgrad des Modellierers<br />

flexibel definieren. Eine weitere Herausforderung bei der<br />

Softwareentwicklung sind große und internationale Teams.<br />

Dadurch müssen die Modelle teilweise länderspezifische Details<br />

aufweisen oder in verschiedenen Sprachen geprüft werden. Auch<br />

hier helfen die Profile des Richtlinien-Checkers, da so die Regeln<br />

länder- oder projektspezifisch hinterlegt und auf Mausklick geladen<br />

werden können.<br />

esk.fraunhofer.de/de/projekte/richtlinien-checker.html<br />

Die Internet-Chefin<br />

Kostenlose Smartphones für alle 14.000 Mitarbeiter weltweit,<br />

egal ob in Vollzeit oder Teilzeit angestellt, freies Essen in der<br />

Kantine in Silicon Valley und neu gestaltete Büroräume für eine<br />

freundlichere Atmosphäre am Arbeitsplatz – das waren einige der<br />

ersten Maßnahmen von Marissa Mayer an ihrem neuen<br />

Foto: picture alliance / dpa / Walter Bieri.<br />

Marissa Mayer (37)<br />

wechselte im Juli<br />

2012 von Google zu<br />

Yahoo, wo sie als<br />

Vorstandsvorsitzende<br />

das angeschlagene<br />

Unternehmen aus der<br />

Krise herausführen<br />

soll.<br />

Arbeitsplatz als Yahoo-Chefin. Kein<br />

Wunder also, dass viele sie für die<br />

„coolste Chefin der Welt halten”.<br />

Mayer, die in Stanford Informatik<br />

studiert hat, startete ihre Karriere beim<br />

UBS Research Lab in der Schweiz. Beim<br />

1998 gegründeten Internet-Startup<br />

Google, das heute weltweit rund 32.500<br />

Mitarbeiter beschäftigt und 2011 einen<br />

Jahresumsatz von rund 38 Milliarden<br />

US-Dollar hatte, begann sie 1999 als<br />

„Mitarbeiterin Nummer 20”. Als<br />

Produktmanagerin war Mayer maßgeblich<br />

am Design aller Google-Produkte<br />

beteiligt. Das Magazin Newsweek<br />

bezeichnete sie vor einiger Zeit als<br />

„Zarin für Produktstarts” und die Los<br />

Angeles Times schrieb 2011 über sie,<br />

„wohl kein anderer Mensch habe soviel<br />

Einfluss darauf, wie Menschen das<br />

Internet erleben”. Googles Suchmaske –<br />

das ist vor allem eine puristische weiße<br />

Seite, ein Suchfeld – das war's. Und genau das war einer der<br />

Gründe für den enormen Erfolg und die Beliebtheit von Google.<br />

Bereits 2008 zählte das amerikanische Wirtschafsmagazin<br />

(Fortune) Mayer als Jüngste zu den „50 mächtigsten Frauen der<br />

Welt”. Für Google war Mayer außerdem ein wichtiges<br />

Aushängeschild und Sprachrohr des Unternehmens, die neben den<br />

Konzernchefs Eric Schmidt, Larry Page und Sergey Brin bei<br />

öffentlichen Auftritten, Präsentationen und Ankündigungen stets<br />

im Rampenlicht stand.<br />

Für viel öffentlichen Wirbel sorgte im Juli 2012 Mayers<br />

Wechsel vom Internet-Giganten Google zum leicht angeschlagenen<br />

Internet-Riesen Yahoo – nicht zuletzt, weil sie gleichzeitig<br />

bekannt gab, im siebten Monat schwanger zu sein. Für Mayer<br />

selbst, die nach kurzer Babypause direkt in ihrem neuen Job<br />

weitermachen will, aber auch für ihren neuen Arbeitgeber Yahoo,<br />

sei das kein Thema, betonten beide Seiten. Und trotzdem scheint<br />

genau diese Konstellation – leitende Position und schwanger –<br />

angesichts aktueller Diskussionen über die Frauenquote und die<br />

Vereinbarkeit von Beruf und Familie die Menschen sehr zu<br />

beschäftigen: „Wenn sie Erfolg hat, ist das ein Durchbruch für alle<br />

Frauen”, sagte der amerikanische Unternehmensstratege Kevin<br />

Coyne zu „wallstreetjournal.de” und er fährt fort: „Die Frauen<br />

werden noch in Jahrzehnten von ihr sprechen”.<br />

Bei ihrem neuen Arbeitgeber Yahoo steht Mayer nun vor der<br />

schwierigen Aufgabe, das Unternehmen wieder auf Erfolgskurs zu<br />

bringen. Mit rund 700 Millionen Nutzern weltweit zählt Yahoo<br />

zwar ebenfalls zu den ganz Großen in der Internet-Branche,<br />

jedoch kränkelt das Unternehmen schon seit Längerem.<br />

Stagnierende Umsatzzahlen (2011 waren es „nur“ knapp 5<br />

Milliarden US-Dollar), rückläufige Gewinnzahlen und gerichtliche<br />

Auseinandersetzungen mit der Konkurrenz, zuletzt eine Klage<br />

gegen Facebook, prägten die letzten Jahre. Kein Wunder also,<br />

dass der Chefposten bei Yahoo als einer der schwierigsten in der<br />

Branche gilt – mehrere Chefs kamen und gingen in den letzten<br />

Jahren, zuletzt wurden Mayers Vorgänger Carol Bartz und Scott<br />

Thompson von ihrem Arbeitgeber entlassen. Es bleibt abzuwarten<br />

– und spannend –, ob es Mayer gelingen wird, den Erfolg von<br />

Google auf Yahoo zu übertragen.<br />

6/2012


schwerpunkt<br />

mehr zum thema:<br />

openmodels.at/web/bpm<br />

die autoren<br />

BEISPIELHAFT GUT MODELLIERT:<br />

EXEMPLARISCHE<br />

GESCHÄFTSPROZESS-<br />

MODELLIERUNG IN DER PRAXIS<br />

Szenariobasiert und konkret, piktografisch und fachbereichstauglich – durch diese Merkmale<br />

eignet sich die exemplarische Geschäftsprozess-Modellierung (eGPM) besonders, um kooperative,<br />

IT-gestützte Arbeitsprozesse zu beschreiben und zu untersuchen. Seit Dezember 2011<br />

steht ein kostenfreies Modellierungswerkzeug für die eGPM zur Verfügung – ein guter Grund,<br />

in diesem Artikel die seit Jahren in der Praxis erfolgreiche Methode und ihre<br />

Anwendungsmöglichkeiten ausführlich vorzustellen.<br />

Holger Breitling<br />

(holger.breitling@c1-wps.de)<br />

hat die exemplarische Geschäftsprozess-<br />

Modellierung maßgeblich mit entwickelt und verantwortet<br />

das Transformationsbüro in der<br />

Geschäfts leitung der C1 WPS. Sein Haupt -<br />

interesse liegt in der Beratung und dem Manage -<br />

ment von großen Transformationsprojekten.<br />

Die exemplarische Geschäftsprozess-Mo -<br />

del lierung (eGPM) ist eine Model lierungs -<br />

methode, mit der sich kooperative Arbeits -<br />

prozesse anhand beispielhafter Abläufe<br />

darstellen lassen. Sie besteht aus mehreren<br />

Modelltypen und einem dazu passenden<br />

Vorgehen.<br />

Der Modelltyp Kooperationsbild bildet<br />

das Zentrum der eGPM (siehe Abbildung 1).<br />

Sein Vorläufer wurde in einem Kran -<br />

kenhausprojekt entwickelt, um dort gemeinsam<br />

mit den Fachkräften die Zusammen -<br />

arbeit der einzelnen Abteilungen bei der<br />

Behandlung von Patienten zu analysieren<br />

(vgl. [Kra96], [Zül04]). Kooperationsbilder<br />

sind szenariobasiert und visualisieren jeweils<br />

ein zu untersuchendes Szenario.<br />

Die wesentlichen Modellelemente des<br />

Ko operationsbilds sind die beteiligten<br />

Akteure und die von ihnen im Prozess verwendeten<br />

Gegenstände. Diese Elemente<br />

werden anhand der Bearbeitungsschritte<br />

oder der Weitergabe von Gegenständen<br />

zwischen den Akteuren verbunden. Im<br />

Fokus der Modellierung stehen daher die<br />

Fragen:<br />

■ Wer macht was mit welchem Gegen -<br />

stand?<br />

■ Wer gibt welchen Gegenstand an wen<br />

weiter?<br />

■ Wer informiert wen mit Hilfe welches<br />

Gegenstands?<br />

Von diesen Grundfragen angetrieben, entstehen<br />

sehr konkrete Prozessdarstellungen,<br />

die explizit die Kooperation und Ko ordi -<br />

nation zwischen den beteiligten Akteuren<br />

betrachten. Darüber hinaus wird klar herausgearbeitet,<br />

welche Arbeitsschritte auf<br />

welche Art durch Informationssysteme<br />

unterstützt werden. Die eGPM umfasst<br />

Abb. 1: Kooperationsbild für einen Antragsprozess (Versicherung).<br />

Stefan Hofer<br />

(stefan.hofer@c1-wps.de)<br />

hat seinen Schwerpunkt im Transformationsbüro<br />

der C1 WPS: Er berät bei der Erhebung, Model -<br />

lierung und Umgestaltung von Anwendungs land -<br />

schaften und bei der exemplarischen Modellierung<br />

von Geschäftsprozessen.<br />

neben dem Kooperationsbild noch weitere<br />

Modelltypen (siehe Kasten 1).<br />

Fachbereichs- und<br />

Workshop-Tauglichkeit<br />

Wenn wir fachliche Abläufe modellieren<br />

und beschreiben, sind wir darauf angewiesen,<br />

dass fachliche Experten unsere Er -<br />

gebnisse beurteilen und bewerten können.<br />

Anderenfalls haben wir zwar Modelle, aber<br />

keine Gewissheit, ob sie die betrachteten<br />

Ist- oder Soll-Situationen richtig darstellen.<br />

Die Kooperationsbilder der eGPM sind<br />

genau in diesem Sinne „fachbereichstauglich“,<br />

weil sie als Szenarien die Geschäfts -<br />

prozesse in Form konkreter Geschichten<br />

visuell und piktografisch präsentieren. Die<br />

einzelnen Schritte können als natürlichsprachliche<br />

Sätze gelesen werden (Beispiel:<br />

„Der Sachbearbeiter erfasst den Vertrag<br />

anhand des Scans im Verwaltungssystem“).<br />

Beides führt dazu, dass die Modelle für<br />

Mitarbeiter des Fachbereichs auch ohne<br />

Kenntnis der Modellierungsmethode verständlich<br />

und bewertbar sind.<br />

In unserer Arbeit hat es sich bewährt, in<br />

Workshops mit mehreren Beteiligten live zu<br />

8 9


schwerpunkt<br />

Das Kooperationsbild ist der zentrale<br />

Modelltyp der eGPM. Modelle dieses<br />

Typs können durch ebenfalls szenariobasierte<br />

Arbeitsplatzbilder und IT-Inter -<br />

aktionsbilder weiter verfeinert werden.<br />

Um den Überblick über die Szenarien zu<br />

bewahren, werden Modelle der Typen<br />

„Anwendungsfall-Diagramm“ und „Pro -<br />

zess landkarte” eingesetzt.<br />

In den Szenarien gesammelte Konzepte<br />

(„das Buchhaltungssystem“, „der Ver -<br />

trag“, „der Filialleiter“) können in eigenen<br />

Modelltypen gesammelt und strukturiert<br />

werden:<br />

■ Die IT-Landschaft stellt Anwendun -<br />

gen und Daten dar.<br />

■ Das Begriffsmodell stellt Gegenstän -<br />

de und Fachbegriffe dar.<br />

■ Das Arbeitsumgebungsmodell stellt<br />

Rollen und Organisations ein heiten<br />

dar.<br />

Die Verbindungen zwischen Modellen<br />

sind im Modellierungswerkzeug als<br />

Referenzen implementiert, sodass zwischen<br />

Modellen navigiert werden kann.<br />

Kasten 1: Modelltypen der eGPM.<br />

modellieren: Von einem Beamer an die<br />

Wand geworfen, entsteht das Modell<br />

Schritt für Schritt und für alle sichtbar. Die<br />

Teilnehmer greifen korrigierend in die<br />

Modellierung ein, wenn sie ihre Aussagen<br />

im Modell nicht richtig umgesetzt sehen,<br />

und stimmen sich in dem Workshop auch<br />

wechselseitig über ihre Sichten auf den<br />

Prozess ab. Am Ende eines solchen Work -<br />

shops stehen darum Modelle, die bereits<br />

eine eingehende Qualitätssicherung erfahren<br />

haben. Die Beteiligten nehmen aber<br />

nicht nur die Modelle als Ergebnis mit. Das<br />

gemeinschaftliche Modellieren ist für sie<br />

ein Verständnisprozess, in dem sie die<br />

Arbeitswelt von Kollegen und anderen<br />

Abteilungen anschaulich vorgeführt be -<br />

kommen.<br />

Integration mit dem<br />

Use-Case-Ansatz<br />

Die eGPM wird von uns an zwei Punkten<br />

an die Use-Case-Methode (in der Lesart<br />

von [Coc00]) angebunden:<br />

1. Übersicht: Am Beginn einer Mod el -<br />

lierung mit eGPM steht die Auswahl der<br />

Prozesse, die in Workshops zu untersuchen<br />

sind. Hierfür erarbeiten wir gemeinsam<br />

mit den Vertretern der beteiligten<br />

Fachbereiche eine Übersicht über die<br />

Geschäftsprozesse in Form von Business-<br />

Use-Cases. Für das Thema „Kredit“ in<br />

einer Bank können beispielsweise die<br />

Business-Use-Cases „An tragsbearbei -<br />

tung“, „Kreditablö sung“ und „An -<br />

schluss finanzierung“ relevant sein und<br />

dann noch nach Kredit- und Sicher -<br />

heitsarten (z. B. „Konsu menten kredit<br />

ohne Sicherheit“, „Baufinan zierung mit<br />

Grundschuld“) weiter differenziert werden.<br />

Zur Übersichts dar stellung nutzen<br />

wir Use-Case-Dia gram me auf Flip-<br />

Charts oder im Model lierungswerkzeug.<br />

Aus den Busi ness-Use-Cases wählen wir<br />

dann diejenigen aus, die wir vertieft mit<br />

Hilfe von Ko operationsbildern modellieren<br />

wollen.<br />

2. Variationen: Bei der Erarbeitung der<br />

Kooperationsbilder halten wir uns an<br />

ein Hauptszenario und notieren potenzielle<br />

Verzweigungen. Wir entscheiden<br />

in einem zweiten Schritt, ob sich aus<br />

diesen Verzweigungen aus unserer Sicht<br />

der Bedarf ableitet, weitere Ko opera -<br />

tionsbilder zu modellieren, oder ob es<br />

sich um kleinere Variationen des bestehenden<br />

Kooperationsbilds handelt.<br />

Den zweiten Fall dokumentieren wir,<br />

indem wir die Use-Case-Technik einsetzen:<br />

Wir integrieren die grafische Dar -<br />

stellung des Kooperationsbilds zur ausführlichen<br />

Dokumentation in ein<br />

Text dokument und ergänzen diese<br />

Darstellung um eine Use-Case-Tabelle,<br />

die das behandelte Szenario als Main<br />

Successs Scenario beschreibt und<br />

Variationen als Extensions darstellt. So<br />

können die beispielhaften eGPM-<br />

Modelle mit Hilfe der Use-Case-<br />

Technik um Variationen bzw. Verzwei -<br />

gun gen erweitert werden.<br />

Die Anbindung der eGPM an Use-Cases ist<br />

aus mehreren Gründen sehr sinnvoll:<br />

■ Mit der Re-Interpretation der Koopera -<br />

tionsbilder als Business-Use-Cases er -<br />

■<br />

■<br />

■<br />

gibt sich eine Brücke – zu einer sehr<br />

bekannten – und von vielen Menschen<br />

beherrschten Methode.<br />

Der Export der Kooperationsbilder in<br />

ein Textdokument und die Ergänzung<br />

durch Use-Case-Tabellen ergeben ein<br />

Format, das es ermöglicht, die Prozesse<br />

ausführlicher darzustellen und flexibel<br />

in andere schriftliche Konzeptionen<br />

einzubinden.<br />

Die Use-Case-Technik bietet das notwendige<br />

Instrumentarium, um die einzelnen<br />

„Geschichten“, die die Koopera -<br />

tionsbilder erzählen, systematisch um<br />

Variationen und Fallunterscheidungen<br />

zu ergänzen.<br />

Die Kooperationsbilder können, aufgefasst<br />

als Business-Use-Cases, um andere,<br />

kleinerteilige Use-Cases ergänzt<br />

werden, die z. B. auf die Interaktion<br />

zwischen Anwender und System fokussieren.<br />

eGPM im Vergleich zu anderen<br />

Ansätzen<br />

Verbreitete Notationen, wie die Business<br />

Process Model and Notation (BPMN) und<br />

die Ereignisgesteuerte Prozesskette (EPK)<br />

(vgl. [Wes07]), wurden durch die Infor -<br />

matik geprägt. Im Gegensatz zu eGPM liegt<br />

bei diesen Ansätzen der Fokus nicht auf der<br />

Kooperation und Koordination von Ak -<br />

teuren. Mit ihren Ausdrucksmitteln, wie<br />

z. B. Fallunterscheidungen, können Ge -<br />

schäfts prozesse als Algorithmen beschrieben<br />

werden. Unserer Erfahrung nach verleitet<br />

das viele Modellierer zu einer<br />

algo rithmischen Denkweise. Das Resultat<br />

sind abstrakte Modelle, in denen Voll -<br />

ständigkeit (also das Abdecken aller möglichen<br />

Prozessverläufe) im Vordergrund<br />

steht –, selbst wenn die Automatisierung<br />

der modellierten Prozesse gar nicht angestrebt<br />

wird. Derartige Modelle sind in ihren<br />

Verästelungen potenziell sehr komplex:<br />

Fachbereichsmitarbeiter, die hierfür nicht<br />

speziell ausgebildet sind, können sie in der<br />

Regel nur schwer validieren und der einzelne,<br />

beispielhafte, konkret besprochene und<br />

bestätigte Verlauf verschwindet dahinter.<br />

Für die szenariobasierten Modelltypen<br />

der eGPM haben wir bewusst auf die<br />

Möglichkeit verzichtet, Fallunterscheidun -<br />

gen modellieren zu können. Der Mo -<br />

dellierer kann sich so auf die fachliche<br />

Aussagekraft des Modells konzentrieren,<br />

statt auf eine algorithmisch korrekte<br />

Prozessbeschreibung achten zu müssen. Es<br />

werden beispielhafte, konkrete Fälle<br />

6/2012


schwerpunkt<br />

Abb. 2: Bearbeiten eines Kooperationsbilds in ADONIS.<br />

beschrieben, die durch Mitarbeiter aus den<br />

Fachabteilungen effektiv beurteilt werden<br />

können. Als Konsequenz daraus können<br />

die Modelle der eGPM allerdings weder<br />

ausgeführt noch automatisiert in algorithmische<br />

Notationen überführt werden.<br />

Trotzdem schließen sich die Automati -<br />

sierung von Geschäftsprozessen und eGPM<br />

nicht aus: Szenariobasierte Modelle eignen<br />

sich hervorragend als fachlich validierte<br />

Grundlage für die Erstellung der ausführbaren<br />

Modelle. Für die manuelle Überführung<br />

in BPMN gibt es praxisbewährte<br />

Transformationsregeln.<br />

Die Abgrenzung zu Use-Cases ist naturgemäß<br />

weniger hart, da es sich in beiden<br />

Fällen um szenariobasierte Methoden handelt.<br />

Ein wichtiger Mehrwert der eGPM<br />

besteht darin, dass sie eine piktografische<br />

Darstellung für kooperative Arbeits -<br />

prozesse beinhaltet, die sehr gut für Mo -<br />

dellierungsworkshops mit Gruppen geeignet<br />

ist (Use-Cases hingegen besitzen keine<br />

eigene grafische Darstellung für Prozesse).<br />

Ein weiterer Vorteil von eGPM ist ihr<br />

fokussiertes Vokabular: Die Konzentration<br />

auf Akteure, Gegenstände und Aktivitäten<br />

als primäre Modellierungselemente zwingt<br />

die Modellierenden dazu, Ross und Reiter<br />

zu nennen, Kooperation und Koordination<br />

zu betrachten und aktiv Begriffsarbeit zu<br />

leisten. Zusammengefasst besitzt die eGPM<br />

gegenüber anderen Ansätzen also folgende<br />

Alleinstellungsmerkmale:<br />

■ Eine piktografische, für Modellierungs -<br />

workshops mit Gruppen gut geeignete<br />

Darstellung.<br />

■ Die Betrachtung beispielhafter Prozess -<br />

verläufe.<br />

■ Die explizite Berücksichtigung von<br />

Kooperation und Koordination (auch<br />

informell).<br />

■ Nur wenige verschiedene Modellele -<br />

mente.<br />

■ Die Fokussierung auf Akteure, Gegen -<br />

stände und Aktivitäten, was die Be -<br />

griffs arbeit fördert.<br />

Ist- und Soll-Prozesse<br />

Werden Prozesse mit eGPM in ihrem Ist-<br />

Zustand aufgenommen, macht die<br />

Orientierung an der tatsächlichen Arbeit in<br />

den Fachabteilungen die Defizite und<br />

Verbesserungspotenziale sichtbar. Davon<br />

ausgehend können in einem zweiten Schritt<br />

sehr gut Soll-Prozesse entworfen werden,<br />

die die Vision einer geänderten IT-Un -<br />

terstützung und/oder veränderten IT-Land -<br />

schaft transportieren.<br />

Das Modellierungswerkzeug<br />

Zunächst als Methode auf der Basis von<br />

Flipcharts, Wandtafeln und Powerpoint<br />

entstanden, wurde eGPM 2004 als so<br />

genannte Anwendungsbibliothek auf der<br />

kommerziellen Modellierungsplattform<br />

„ADONIS“ des Herstellers BOC implementiert<br />

worden (siehe Abbildung 2). Auf<br />

dieser Plattform bietet die BOC unterschiedliche<br />

Modellierungsmethoden an,<br />

unter anderem eine klassische Geschäfts -<br />

prozess-Modellierungsmethode, BPMN,<br />

UML und das für das Architekturmanage -<br />

ment maßgeschneiderte Werkzeug<br />

„ADOit“. Mit der Anwendungsbibliothek<br />

für eGPM wird aus der Plattform ein<br />

eGPM-Modellierungswerkzeug.<br />

Das Modellierungswerkzeug ist für<br />

Windows-Systeme verfügbar. Es ist repositorybasiert<br />

und erlaubt sowohl den Stand-<br />

Alone-Betrieb als auch die Nutzung eines<br />

gemeinsamen Repositorys.<br />

Der Aufbau des Werkzeugs beinhaltet<br />

den Repository-Explorer auf der linken<br />

Seite, die Modellierungsfläche auf der rechten<br />

Seite (sie füllt meist den Großteil des<br />

Fensters aus), sowie die Model lierungs -<br />

leiste mit den zur Verfügung stehenden<br />

Modellelementen als vertikalem Teiler.<br />

Links unten befindet sich der so genann-<br />

10 11


schwerpunkt<br />

Die Open Models Initiative (OMI) der Universität Wien ist eine Community für<br />

Entwickler von Modellierungsmethoden. Ihr Motto lautet: „Models for everyone“. Ihr<br />

Ziel ist es, Modelle und Referenzmodelle in verschiedenen Modellierungssprachen im<br />

Sinne des Open-Source-Gedankens frei zur Verfügung zu stellen. Zu diesem Zweck werden<br />

auch kostenfreie Modellierungswerkzeuge bereitgestellt.<br />

Als technische Grundlage für die kostenfreien Modellierungswerkzeuge bietet OMI den<br />

Methodenentwicklern eine Modellierungsplattform auf Basis des kommerziellen<br />

Werkzeugs „ADONIS“ der BOC Group an. Die auf openmodels.at veröffentlichten<br />

Modellierungswerkzeuge sind frei verwendbar – auch für den kommerziellen Einsatz.<br />

Kasten 2: Die „Open Models Initiative“ (OMI).<br />

te Navigator, der das gesamte Modell in der<br />

Übersicht zeigt und der es erlaubt, schnell<br />

in die gewünschten Ausschnitte hinein zu<br />

springen.<br />

Zur Modellierung wird ein Modell -<br />

element auf der Modellierungsleiste ausgewählt<br />

und auf der Modellierungsfläche<br />

platziert. Akteure und Gegenstände sind<br />

dabei selbständig positionierbare Ele mente,<br />

während die Aktivitäten in Form von<br />

Pfeilen als Verbinder zwischen derartigen<br />

Elementen platziert werden.<br />

Die Firma BOC unterstützt gemeinsam<br />

mit der Firma C1 WPS als Metho den -<br />

entwickler die „Open Models Initiative“<br />

(siehe Kasten 2). Im Rahmen dieser Ini -<br />

tiative wurde im Dezember 2011 das<br />

eGPM-Modellierungswerkzeug zur freien<br />

Verwendung bereitgestellt, auch für kommerzielle<br />

Zwecke. Dabei handelt es sich um<br />

die Stand-Alone-Version mit den wichtigs -<br />

ten Modelltypen. Mit diesem Funk tions -<br />

umfang ist das Werkzeug im professionellen<br />

Umfeld einsetzbar.<br />

Einsatz bei agiler<br />

Vorgehensweise<br />

Die eGPM ist eine Modellierungsmethode,<br />

die sich gut mit agilem Vorgehen in der<br />

Softwareentwicklung verbinden lässt.<br />

Dabei ist zu berücksichtigen, dass agile<br />

Entwicklungsprozesse es anstreben, die<br />

Anforderungsermittlung schlank zu halten,<br />

und dafür die direkte Kommunikation,<br />

Rückkopplung und das Reagieren auf<br />

wech selnde Anforderungen betonen.<br />

Insofern mag es sein, dass manches agile<br />

Projekt tatsächlich mit den schon sprichwörtlichen<br />

Karteikarten auskommt. Wenn<br />

es jedoch sinnvoll erscheint, sich intensiv in<br />

Geschäftsprozesse einzuarbeiten und Pro -<br />

zess modellierung zu betreiben, ist eGPM<br />

die Methode, die mit ihrer Work shop-<br />

Eignung und den gemeinsam erarbeiteten,<br />

prägnanten und beispielhaften Pro zessen<br />

eine ideale Keimzelle für eine intensive<br />

Kommunikation zwischen Ent wicklern und<br />

Fachabteilung darstellt. Dazu ist die<br />

Modellierung leichtgewichtig und von<br />

Iteration zu Iteration können in schlanker<br />

Weise Prozesse korrigiert oder neu modelliert<br />

werden. Nach unserer Erfah rung,<br />

unter anderem im Einsatzbeispiel<br />

„Grundlage für Neuentwicklung“ (siehe<br />

den folgenden Abschnitt), bietet eine kleine<br />

Auswahl gemeinsam modellierter eGPM-<br />

Kooperationsbilder wichtige Kristallisa -<br />

tionspunkte für spätere Diskussionen und<br />

Klärungen, denn fruchtbar diskutiert wird<br />

eben meist anhand von Beispielen.<br />

Einsatzbeispiele<br />

aus der Praxis<br />

Die eGPM wurde ursprünglich zur Unter -<br />

stützung der Anforderungsanalyse für die<br />

objektorientierte Softwareentwicklung entwickelt.<br />

Über die Jahre hat sie sich in vielen<br />

Einsatzkontexten bewährt, von denen wir<br />

einige im Folgenden kurz vorstellen.<br />

Auswahl von Standardsoftware<br />

(Versicherungsvertrieb)<br />

Im Rahmen einer Ausschreibung für ein<br />

CRM-System beschreibt ein Versicherungs -<br />

vertrieb mit Hilfe von Kooperationsbildern<br />

beispielhaft die wichtigsten Prozesse, die<br />

die zu beschaffende Standardsoftware<br />

unter stützen soll. Die Kooperationsbilder<br />

werden, gemeinsam mit den anderen Aus -<br />

schreibungsunterlagen, mehreren Anbie -<br />

tern zur Verfügung gestellt.<br />

In Auswahl-Workshops demonstrieren<br />

die Anbieter, wie sich die modellierten<br />

Prozesse mit ihrer Software umsetzen lassen<br />

und wo die Software vom Wunsch des<br />

Kunden abweicht. Besonderer Nutzen:<br />

■ Die gute Verständlichkeit der Modelle<br />

versetzt die Anbieter in die Lage, bei<br />

Abweichungen von den Vorgaben alternative<br />

Umsetzungsvorschläge zu<br />

machen, mit denen unter Umständen<br />

das gleiche Ziel erreicht werden kann<br />

wie in den vom Kunden zur Verfügung<br />

gestellten Prozessen.<br />

■ Die Organisation erkennt, wie die zu -<br />

künftigen Arbeitsabläufe aussehen<br />

würden. Gegebenenfalls vorhandener<br />

Anpassungsbedarf kann konkret diskutiert<br />

werden.<br />

Grundlage für Neuentwicklung<br />

(Autovermietung)<br />

Ein Autovermietungsunternehmen steigt<br />

ins Leasinggeschäft ein und erarbeitet die<br />

Geschäftsprozesse für den neuen Ge -<br />

schäfts bereich mit Hilfe von eGPM. Die<br />

entstehenden Kooperationsbilder sind die<br />

Grundlage für die die Neuentwicklung<br />

einer Leasing-Software. Die modellierten<br />

IT-gestützten Gegenstände (z. B. „Reser -<br />

vierung“, „Angebotsliste“, „Angebot“) stehen<br />

Pate für wesentlich fachliche Konzepte<br />

in der neuen Software (zum Teil bis zur<br />

Granularität von Klassen, meist aber für<br />

größere Zusammenhänge). Die identifizierten<br />

Arbeitsplätze (z. B. „Akquisiteur“,<br />

„After Sales Agent“) und die dort jeweils<br />

erkennbaren Aufgaben und Abläufe bilden<br />

die Grundlage für die funktionale Parti -<br />

tionierung und ergonomische Gestaltung<br />

der Software. Besonderer Nutzen:<br />

■<br />

■<br />

■<br />

Die zukünftigen Akteure werden bei<br />

der Gestaltung ihrer Prozesse fruchtbar<br />

einbezogen und bringen viele gute<br />

Ideen ein.<br />

Der zu unterstützende Arbeitskontext<br />

wird in Form der Arbeitsplätze und der<br />

verwendeten Gegenstände in den<br />

Modellen so greifbar, dass eine gute<br />

Grundlage für die Gestaltung der<br />

Software gegeben ist.<br />

Im Rahmen von Softwareentwicklung<br />

dokumentiert eGPM auch die Gründe<br />

für die konkrete Gestaltung der Soft -<br />

ware („Design Rationale“, vgl. [Bre06]).<br />

6/2012


IT-Landschaften<br />

Der jüngste Modelltyp der eGPM zeigt,<br />

dass sich trotz des Namens der Methode<br />

nicht nur Prozesse damit darstellen lassen.<br />

Er gehört zu den Konzept-Modelltypen<br />

(siehe Kasten 1) und bietet damit eine statische<br />

Architektursicht auf IT-Systeme, die in<br />

den Prozessen verwendet werden. Das<br />

Modellierungswerkzeug bildet diese<br />

Beziehung über einen Referenzmechanis -<br />

mus ab. Dadurch kann zum Beispiel ausgewertet<br />

werden, welche Kooperationsbilder<br />

die Verwendung eines bestimmten IT-<br />

Systems zeigen.<br />

IT-Landschaften dokumentieren die<br />

fach lichen Verantwortungen und Abhän -<br />

gig keiten eines IT-Systems, indem sie ihm<br />

die von ihm verwalteten und ausgetauschten<br />

Datenobjekte zuordnen. Um die verschwerpunkt<br />

Abb. 3: IT-Landschaft für eine Versicherung.<br />

Einführung neuer Prozesse<br />

(Banksoftware-Hersteller)<br />

Ein Hersteller von Banksoftware hat ein<br />

neues Banksystem fertiggestellt und steht<br />

vor der Aufgabe, seine Kunden (die Ban -<br />

ken) auf das neue System umzustellen. Mit<br />

der eGPM modelliert er zunächst die bankfachlichen<br />

Kernprozesse, wie sie mit dem<br />

Vorgängersystem durchgeführt wurden.<br />

Anschließend modelliert er mit den Pilot -<br />

anwendern und Produktmanagern für das<br />

System die Kernprozesse, wie sie mit dem<br />

neuen System umgesetzt werden sollten.<br />

Die wesentlichen Unterschiede werden analysiert.<br />

Besonderer Nutzen:<br />

■ Aus den Kernprozessen für das neue<br />

System generiert das Unternehmen eine<br />

HTML-basierte Prozessreferenz für die<br />

Banken.<br />

■ Die herausgearbeiteten wichtigen Ver -<br />

än derungen, die sich aus dem System -<br />

wechsel ergeben, werden den Bank -<br />

mitarbeitern in standardisierten<br />

Schu lungen vermittelt und mit Hilfe der<br />

eGPM-Darstellung in den richtigen<br />

Kontext gesetzt.<br />

Weiterentwicklung einer IT-Landschaft<br />

(Autoteile-Handel)<br />

Da die Mitarbeiter eines Unternehmens mit<br />

der IT-Unterstützung ihrer Arbeit unzufrieden<br />

sind, veranlasst die Unterneh mens -<br />

führung eine Aufnahme und Bewertung der<br />

IT-Landschaft. In Workshops analysieren<br />

Vertreter aus Fachabteilungen und IT mit<br />

Hilfe von Kooperationsbildern, welche<br />

Anwendungen wie von ihren Benutzern<br />

verwendet werden. Die gesammelten Infor -<br />

mationen über die Anwendungen werden<br />

in einem Modell vom Typ IT-Landschaft<br />

(siehe nächster Abschnitt) konsolidiert und<br />

aus IT-Sicht ergänzt. Besonderer Nutzen:<br />

■ Mit Hilfe des Modells können<br />

Management, Fachabteilungen und IT<br />

über die IT-Landschaft diskutieren und<br />

ihre Weiterentwicklung planen: Welche<br />

fachliche Verantwortlichkeit hat ein<br />

System? Welche Probleme und Risiken<br />

gibt es? Kann es isoliert betrachtet und<br />

geändert werden oder hängt es von<br />

anderen ab? Welche Abteilungen und<br />

Prozesse wären von einer Änderung<br />

betroffen?<br />

12 13


schwerpunkt<br />

schiedenen Blick winkel und Verwendungs -<br />

zwecke der Systeme auszudrücken, können<br />

sie mit Hilfe von Frontends („Terminal -<br />

emulation“ in Abbildung 3) und durch<br />

Verschach te lung („Dokumentarchiv“ in<br />

Abbildung 3) weiter strukturiert werden.<br />

Zwar kann man die IT-Landschaften der<br />

eGPM auch für technisch orientierte<br />

Darstellungen verwenden, doch bieten<br />

andere Notationen dafür reichhaltigere<br />

Ausdrucksmittel. Orientiert man sich hingegen<br />

an den fachlichen Zusammen -<br />

hängen, erhält man eine Darstellung, die<br />

für Management, Fachabteilung und IT<br />

gleichermaßen nachvollziehbar ist und<br />

über die gleichberechtigt (statt technikzentriert)<br />

kommuniziert werden kann. Die IT-<br />

Landschaft (siehe Abbildung 3) ist auf folgende<br />

Aspekte fokussiert:<br />

■ Welche Systeme verwalten welche<br />

Geschäfts-/Datenobjekte?<br />

■ Welches System ist führendes System<br />

für welche Geschäfts-/Datenobjekte?<br />

■ Welche Systeme tauschen mit welchen<br />

anderen Systemen welche Geschäfts-/<br />

Datenobjekte aus? Erfolgt der Aus -<br />

tausch synchron oder asynchron?<br />

Welches System initiiert den Aus -<br />

tausch?<br />

■ Über welche Frontends (Benutzerober -<br />

flächen) werden welche Systeme von<br />

ihren Anwendern benutzt?<br />

Durch die enge Integration mit den Ko -<br />

operationsbildern können Verantwort -<br />

lichkeiten und Abhängigkeiten zudem gut<br />

aus fachlicher Sicht validiert werden.<br />

Damit stellt die IT-Landschaft eine wertvolle<br />

Ergänzung zu technisch motivierten<br />

Modellen dar, die ihre Validierung z. B.<br />

über die Auswertung von Schnittstellen zu -<br />

griffen erfahren.<br />

Fazit<br />

In diesem Artikel haben wir eine kurze<br />

Einführung in die exemplarische Geschäfts -<br />

prozess-Modellierung mit der Vorstellung<br />

praktischer Einsatzbeispiele der Methode<br />

verbunden. Wir hoffen, damit das Interesse<br />

an dieser etwas anderen Art der Prozess -<br />

modellierung geweckt zu haben. Also dann:<br />

Einfach das Modellierungswerkzeug unter<br />

openmodels.at herunterladen, ausprobieren<br />

und eigene Erfahrungen sammeln. ■<br />

Literatur<br />

[Bre06] H. Breitling, A. Kornstädt, J. Sauer,<br />

Design Rationale in Exemplary Business<br />

Process Modeling, in: A. Dutoit et al. (Hrsg.),<br />

Rationale Management in Software Engi -<br />

neering, Springer 2006<br />

[Coc00] A. Cockburn, Writing Effective Use<br />

Cases, Addison-Wesley 2000<br />

[Kra96] A. Krabbel, S. Ratuski, I. Wetzel,<br />

Requirements Analysis of Joint Tasks in Hos -<br />

pitals, in: B. Dahlbom et al. (Hrsg.), IRIS 19<br />

„The Future“, Proc. of the 19th Inf. Systems<br />

Re search Seminar in Scandinavia, 1996<br />

[Wes08] M. Weske, Business Process Manage -<br />

ment, Springer 2007<br />

[Zül04] H. Züllighoven, Object-Oriented<br />

Cons truction Handbook, Morgan Kaufmann<br />

2004<br />

TOP-JOBS FÜR<br />

SOFTWARE-INGENIEURE<br />

Zufriedene Mitarbeitende<br />

Virtualisation<br />

Distributed<br />

Platform Independent<br />

Kanban<br />

Klare Vision<br />

Flache Hierarchie<br />

CAN<br />

CI<br />

Agile Development<br />

OO<br />

Java EE<br />

Silverlight<br />

Embedded<br />

ARM HP Quality Center<br />

Kompetente Kollegen Maven<br />

TFS<br />

Mobile AppTDD<br />

Embedded Linux<br />

Testing<br />

.NET<br />

Scrum<br />

OSGi<br />

Clean Code<br />

Quick Test<br />

Android<br />

Java<br />

Coded UI<br />

ATDD<br />

Eclipse<br />

Azure<br />

C++<br />

Multi-Core<br />

Wir von bbv erachten aktuelle Methoden und Technologien als zentrale<br />

Elemente unseres Erfolges und sehen unsere Mitarbeitenden als<br />

unser grösstes Kapital. Einsatzbereitschaft und Eigenverantwortung<br />

sind uns wichtig und herausfordernde Projekte, stetige Förderung und<br />

konsequente Weiterbildung liegen uns am Herzen.<br />

Bewerben Sie sich noch heute!<br />

www.bbv.ch/karriere<br />

Luzern · Zug · Bern · Zürich · München


schwerpunkt<br />

mehr zum thema:<br />

eclipse.org/modeling/emft/refactor/<br />

die autoren<br />

BESSER MODELLIEREN:<br />

QUALITÄTSSICHERUNG VON<br />

UML-<strong>MODELLE</strong>N<br />

Der Artikel präsentiert einen Qualitätssicherungsprozess für Softwaremodelle, der Metriken,<br />

Smells und Refactorings verwendet. Unterstützende Werkzeuge basieren auf dem „Eclipse<br />

Modeling Framework“ (EMF) und können in Modellierungsumgebungen, wie z. B. „Papyrus“ oder<br />

„IBM Rational Software Architect“, integriert werden. Neben einer groben Einführung in das<br />

Refaktorisieren von Modellen liefert dieser Artikel zudem Hinweise auf weiterführende<br />

Literatur.<br />

Dr. Gabriele Taentzer<br />

(taentzer@mathematik.uni-marburg.de)<br />

ist Professorin für Softwaretechnik am<br />

Fachbereich Mathematik und Informatik der<br />

Philipps-Universität Marburg. In der Forschung<br />

beschäftigt sie sich mit der modellgetriebenen<br />

Softwareentwicklung, visuellen Sprachen und<br />

Graftransformation.<br />

In der modernen Softwareentwicklung<br />

spielen Modelle eine wichtige Rolle. Ihre<br />

Einsatzgebiete reichen von der System -<br />

analyse über die Spezifikation von Archi -<br />

tektur und Design bis hin zur Generierung<br />

von Code. Für die Entwicklung qualitativ<br />

hochwertiger Software ist es somit ratsam,<br />

bereits die Qualität der involvierten<br />

Modelle zu prüfen und diese gegebenenfalls<br />

zu verbessern. Ursachen für eine eingeschränkte<br />

Qualität von Modellen können<br />

zum Beispiel Unerfahrenheit mit dem<br />

Modellieren per se, mit der verwendeten<br />

Modellierungssprache oder dem unterstützenden<br />

Modellierungswerkzeug, aber auch<br />

unerfüllte projektspezifische Richt linien<br />

sein.<br />

Eine standardisierte Modellierungs -<br />

sprache für Softwaresysteme ist die Unified<br />

Modeling Language (UML) (vgl. [OMG]),<br />

deren Sichtenkonzept auf das Modell in<br />

verschiedenen Diagrammen weitere<br />

Probleme verursacht:<br />

■<br />

■<br />

So können Sachverhalte redundant<br />

modelliert werden, weil Modellierer<br />

jeweils nur ihre Sicht auf das Ge samt -<br />

modell haben.<br />

Oder nicht benötigte Modellelemente<br />

werden nur aus einem Diagramm<br />

gelöscht und verbleiben somit als ungenutzte<br />

Elemente im Modell.<br />

In diesem Artikel 1 ) stellen wir eine Werk -<br />

zeugumgebung vor, deren Komponenten<br />

einen projektspezifischen Qualitäts siche -<br />

rungs prozess für Softwaremodelle unterstützen.<br />

Dieser Prozess basiert auf Metri -<br />

ken, Smells und Refactorings als<br />

1<br />

) Diese Arbeit wurde teilweise von Siemens<br />

Corporate Technology, München, gefördert.<br />

Quali tätssicherungstechniken für Software -<br />

modelle (vgl. [Are11]). Die Umgebung ist<br />

flexibel bezüglich der Modellierungs -<br />

sprache, der Auswahl vorhandener Techni -<br />

ken sowie der konkret verwendeten<br />

Spezifikationssprachen für Erweiterungen.<br />

Die Werkzeuge sind in hohem Maße integriert:<br />

Einerseits benutzen sie sich gegenseitig,<br />

andererseits kann der Qualitäts -<br />

sicherungsprozess komplett innerhalb einer<br />

vorhandenen Modellierungsumgebung, wie<br />

„Papyrus“ (vgl. [Ecl-a]) und „IBM<br />

Rational Software Architect“ (vgl. [IBM]),<br />

durchgeführt werden. Die Werkzeuge<br />

basieren auf dem Eclipse Modeling<br />

Framework (EMF) (vgl. [Stei08]) und werden<br />

im Eclipse-Incubation-Projekt „EMF<br />

Refactor“ (vgl. [Ecl-b]) angeboten.<br />

Modellqualität<br />

Im Gegensatz zur Softwarequalität gibt es<br />

für die Qualität von Softwaremodellen keinen<br />

offiziellen Standard. Eine Übersicht<br />

über die in der Literatur betrachteten<br />

Qualitätsaspekte findet man in einem<br />

Artikel von Mohagheghi et. al. (vgl.<br />

[Moh09]). Dort werden sechs primäre<br />

Qualitätsaspekte identifiziert, die in<br />

Forschungspapieren der Jahre 2000 bis<br />

2007 hinsichtlich der Qualität von Soft -<br />

waremodellen diskutiert wurden: die so<br />

genannten 6C-Goals. Diese sind (in alphabetischer<br />

Reihenfolge):<br />

■ Changeability (Änderbarkeit): Ein<br />

Modell ist gut änderbar, wenn Modi -<br />

fikationen oder Verbesserungen in<br />

einem Maße unterstützt werden, dass<br />

das Modell schnell und kontinuierlich<br />

weiterentwickelt werden kann.<br />

■ Completeness (Vollständigkeit): Ein<br />

Modell ist vollständig, wenn es zum<br />

Thorsten Arendt<br />

(arendt@mathematik.uni-Marburg.de)<br />

ist wissenschaftlicher Mitarbeiter und Doktorand<br />

am Fachbereich Mathematik und Informatik der<br />

Philipps-Universität Marburg. Ein Schwerpunkt seiner<br />

Arbeit ist die modellbasierte Softwareent -<br />

wicklung, insbesondere die Qualitätssicherung von<br />

Softwaremodellen und die Entwicklung geeigneter<br />

Werkzeuge.<br />

einen alle relevanten und notwendigen<br />

Informationen enthält und zum anderen<br />

entsprechend dem Model lierungs -<br />

zweck ausreichend detailliert ist.<br />

■ Comprehensibility (Verständlichkeit):<br />

Ein Modell ist gut verständlich, wenn<br />

es von den vorgesehenen Anwendern<br />

gelesen und schnell interpretiert werden<br />

kann (Anwender sind hier entweder<br />

menschliche Benutzer oder verarbeitende<br />

Werkzeuge).<br />

■ Confinement (Angemessenheit): Ein<br />

Sachverhalt wurde angemessen modelliert,<br />

wenn das Modell mit dem Mo del -<br />

lierungszweck und der Model lierungs -<br />

domäne übereinstimmt. Diese<br />

Defi ni tion schließt auch die Auswahl<br />

der Modellierungssprache und der relevanten<br />

Konzepte (z. B. Diagramme und<br />

Elemente) auf der richtigen Abstrak -<br />

tions ebene mit ein.<br />

■ Consistency (Konsistenz): Ein Modell<br />

ist konsistent, wenn es frei von Wi -<br />

dersprüchen ist. Dazu zählt zum einen<br />

die syntaktische Konsistenz bezüglich<br />

14 15


schwerpunkt<br />

Papyrus<br />

Installieren Sie die aktuelle Version „Juno“ der „Eclipse Modeling Tools“ von der Seite<br />

eclipse.org/downloads. Starten Sie Eclipse und installieren Sie die UML-Modellierungs -<br />

umgebung Papyrus (Help > Install New Software… > Work with: Juno > Modeling > Papyrus<br />

SDK Binaries > next > …) sowie das Werkzeug BIRT für die Erstellung von Berichten<br />

(Help > Install New Software… > Work with: Juno > Bussiness… > BIRT Framework > next ><br />

…). Laden Sie sich anschließend aus dem Download-Bereich der EMF-Refactor-Web-<br />

Seite (eclipse.org/modeling/emft/refactor) das Archiv Juno.zip herunter, entpacken Sie dieses<br />

in das plugins-Verzeichnis Ihrer Eclipse-Installation und starten Sie Eclipse neu. Ein Bei -<br />

spielprojekt kann ebenfalls von der EMF-Refactor-Web-Seite heruntergeladen werden.<br />

IBM RSA v7.5.5<br />

Wenn Sie eine bereits installierte Version des IBM Rational Software Architect haben,<br />

laden Sie sich aus dem Download-Bereich der EMF-Refactor-Web-Seite<br />

(eclipse.org/modeling/emft/refactor) das Archiv RSA755.zip herunter, entpacken Sie dieses in<br />

das plugins-Verzeichnis Ihrer RSA-Installation und starten Sie den RSA. Auch hier stellt<br />

die Web-Seite von EMF Refactor ein Beispielprojekt zum Download bereit.<br />

Kasten 1: Download und Installation der Werkzeuge, Techniken und Beispiele für<br />

die Qualitätssicherung von UML-Modellen.<br />

■<br />

der verwendeten Modellierungssprache<br />

und gegebenenfalls einzuhaltenden<br />

Mo dellierungskonventionen, zum an -<br />

deren aber auch die Konsistenz hinsichtlich<br />

semantischer Widersprüche,<br />

beispielsweise zu Modellen einer anderen<br />

Abstraktionsebene.<br />

Correctness (Korrektheit): Ein Modell<br />

ist korrekt, wenn es die richtigen Ele -<br />

mente und Beziehungen zwischen diesen<br />

enthält und richtige Aussagen über<br />

die zu modellierende Domäne trifft.<br />

Wie bereits erwähnt, basieren diese De -<br />

finitionen (oder besser: Beschreibungen)<br />

nicht auf einem offiziell anerkannten<br />

Standard. Sie stellen jedoch den aktuellen<br />

Stand der Technik dar und sollten somit bei<br />

der Betrachtung von Modellqualität immer<br />

mit berücksichtigt werden. Anhand des<br />

Domänenmodells eines KFZ-Verleihs (siehe<br />

Abbildung 1) wollen wir die beschriebenen<br />

Qualitätsaspekte im Folgenden andiskutieren.<br />

Der Verleih (Company) hat eine hierarchisch<br />

organisierte Mitarbeiter struktur<br />

(Employee, Supervisor) sowie eine Menge<br />

von Kunden (Customer) mit Adres sen und<br />

Bankverbindungen. Weiterhin bietet das<br />

Unternehmen einen Dienst für den Verleih<br />

seiner Kraftfahrzeuge an (VehicleRental,<br />

Vehicle).<br />

Obwohl das Modell konsistent zur<br />

UML-Sprachspezifikation ist (Qualitäts -<br />

aspekt „Consistency“), weist es bezüglich<br />

anderer Aspekte die folgenden Mängel auf:<br />

■<br />

■<br />

Die in den Klassen Car, Truck und<br />

Motorbike vorkommenden redundanten<br />

Attribute power und manufacturer beeinflussen<br />

die Änderbarkeit des Modells,<br />

da z. B. bei der Einführung einer neuen<br />

Klasse Manufacturer das Modell an mehreren<br />

statt an einer Stelle angepasst<br />

werden muss („Change ability“).<br />

Die abstrakte Klasse Supervisor ist eine<br />

Unterklasse der konkreten Klasse<br />

Employee. Hier wird das Prinzip der<br />

Abstraktion unzweckmäßig verwendet,<br />

da z. B. kein Objekt der Klasse<br />

Abb. 1: UML-Klassenmodell eines KFZ-Verleihs.<br />

6/2012


schwerpunkt<br />

■<br />

■<br />

Supervisor in einem Sequenzdiagramm<br />

modelliert werden kann, obwohl ein<br />

Vorgesetzter auch ein Mitarbeiter ist<br />

(„Confinement“). Andererseits könnte<br />

diese Klasse aber auch fälschlicherweise<br />

als abstrakt gekennzeichnet sein („Cor-<br />

rec tness“).<br />

Eine unzweckmäßige Verwendung des<br />

Abstraktionsprinzips kommt auch bei<br />

der Klasse Service vor, die von lediglich<br />

einer einzigen konkreten Klasse<br />

(VehicleRental) beerbt wird („Confi ne -<br />

ment“). Jedoch könnten die angebotenen<br />

Dienste auch noch unvollständig<br />

modelliert sein („Completeness“).<br />

Das Modell enthält ein Interface<br />

IService (siehe Modellbaum in Abbil -<br />

dung 1), das in keinem Diagramm vorkommt<br />

und möglicherweise das Er geb -<br />

nis eines fehlerhaften Löschens ist<br />

(siehe oben). Solche ungenutzten Ele -<br />

mente beeinflussen unter anderem die<br />

Verständlichkeit des Modells („Com-<br />

pre hensibility“).<br />

Im Folgenden beschreiben wir, wie die<br />

Qualität des Beispielmodells analysiert und<br />

durch Umstrukturierung gezielt verbessert<br />

werden kann.<br />

Modellmetriken<br />

Softwaremetriken sind verbreitete Hilfsmit -<br />

tel, um bestimmte (Qualitäts-)Eigen -<br />

schaften zu messen. Somit kann es in einem<br />

Modell-Review hilfreich sein, einen Bericht<br />

über projektspezifische Modellmetriken zu<br />

erstellen und zu analysieren. In unserer<br />

Umgebung wird eine Metrikenberechnung<br />

aus dem Kontextmenü eines Modell -<br />

elements gestartet (EMF Metrics > Calculate<br />

Configured UML Metrics). Ebenso können die<br />

konfigurierten Metriken lediglich auf dem<br />

selektierten Element oder auch transitiv auf<br />

allen enthaltenen Elementen (z. B. auf<br />

Opera tionen einer selektierten Klasse)<br />

berechnet werden. Die Metrikwerte werden<br />

in einer eigenen Sicht präsentiert und<br />

können anschließend in Formaten wie<br />

HTML, PDF oder PPT exportiert werden.<br />

Die Werkzeugumgebung unterstützt rudimentäre<br />

Designs, wie Listen und verschiedene<br />

Diagrammarten. Weitere Designs<br />

können leicht importiert werden.<br />

Abbildung 2 zeigt den Export der berechneten<br />

Metriken NATM (Gesamtanzahl der<br />

Attribute in Klassen des Modells) und<br />

NOM (Gesamtanzahl der Operationen in<br />

Klassen des Modells) auf unserem Beispiel -<br />

modell in Form eines Kuchendiagramms.<br />

Abb. 2: Export einer<br />

Metrikenberechnung.<br />

Das unausgeglichene Verhältnis zwischen<br />

Attributen (40) und Operationen (4) kann<br />

unterschiedlich interpretiert werden:<br />

Einerseits könnte es ein Hinweis darauf<br />

sein, dass das objektorientierte Prinzip der<br />

Operationen nicht genügend genutzt wird<br />

(„Confinement“), andererseits könnte es<br />

auf eine unvollständige Modellierung hinweisen<br />

(„Completeness“).<br />

Smells in Softwaremodellen<br />

Eine weitere Technik zur Qualitäts -<br />

sicherung von Softwaremodellen sind<br />

Smells in Softwaremodellen. Dies sind<br />

Stellen im Modell, die hinsichtlich be -<br />

stimmter Qualitätskriterien verdächtig<br />

sind. Sie sollten genauer betrachtet und<br />

eventuell verbessert werden. Viele Smells in<br />

Softwaremodellen für UML-Klassen -<br />

modelle wurden aus entsprechenden Smells<br />

für objektorientierte Programme abgeleitet<br />

(vgl. [Fow99]).<br />

Smells in Softwaremodellen können<br />

metrik- oder musterbasiert sein. Ein<br />

Abb. 3: Gefundene Smells.<br />

Beispiel für einen metrikbasierten Smell ist<br />

der oben diskutierte Fall, in dem deutlich<br />

mehr Attribute als Operationen im Modell<br />

vorhanden sind (Too Many Knowers).<br />

Andere Smells in Softwaremodellen werden<br />

als Muster auf der abstrakten Syntax der<br />

Modellierungssprache definiert, die dann<br />

in konkreten Modellen gesucht werden.<br />

Ein Beispiel für einen solchen Smell ist Equal<br />

Attributes in Sibling Classes, der nach Klassen<br />

mit derselben Oberklasse sucht, die zusätzlich<br />

alle ein Attribut mit gleichen Eigen -<br />

schaften (Name, Typ und Multiplizität)<br />

besitzen.<br />

In unserer Werkzeugumgebung wird eine<br />

Smell-Analyse aus dem Kontextmenü eines<br />

Modellelements gestartet (EMF Smell ><br />

Calculate Configured UML Smells). Ein Aufruf<br />

auf dem Wurzelelement vom Typ Model<br />

sucht nach allen konfigurierten Smells im<br />

gesamten Modell. Die gefundenen Smells<br />

werden in einer eigenen Sicht präsentiert<br />

und können anschließend exportiert werden.<br />

In unserem Beispielmodell befinden sich<br />

insgesamt zwölf Smells (siehe auch Abbi l -<br />

dung 3):<br />

■<br />

■<br />

■<br />

Der Smell Equal Attributes in Sibling<br />

Classes ist insgesamt sechsmal vorhanden<br />

(die beiden Attribute power und<br />

manufacturer jeweils in den Klassen Car,<br />

Truck und Motorbike).<br />

Ebenso werden die anderen beschriebenen<br />

Situationen gefunden (Smells<br />

Speculative Generality, Unused Interface<br />

und Concrete Superclass).<br />

Der Smell Long Parameter List, der nach<br />

Operationen mit einer hohen Anzahl<br />

von Eingabeparametern sucht, tritt<br />

16 17


schwerpunkt<br />

dreimal auf. Das Beispiel berücksichtigt<br />

hier eine projektspezifische Grenze von<br />

mindestens vier Eingabeparametern.<br />

Wählt man ein konkretes Vorkommen eines<br />

Smells aus (z. B. {Motorbike, power} in Ab -<br />

bildung 3), werden die entsprechenden Mo -<br />

dellelemente im Modellbaum sowie in offenen<br />

grafischen Diagrammeditoren markiert.<br />

Abb. 4: Anwendbare Refactorings.<br />

Refactorings für<br />

Softwaremodelle<br />

Eine bekannte Technik für die Quali täts -<br />

sicherung von Programmen durch Um -<br />

strukturierung, ohne die Semantik zu<br />

ändern, ist Refactoring (vgl. [Fow99]).<br />

Diese Technik kann auch zur Qualitäts -<br />

sicherung von Softwaremodellen angewendet<br />

werden und wird vom Eclipse-Plug-In<br />

„EMF Refactor“ (vgl. [Ecl-b]) unterstützt.<br />

Bei der Durchführung eines Refactorings<br />

benutzt EMF Refactor eine fest vorgegebene<br />

Struktur: Nach einer ersten Überprüfung<br />

von Vorbedingungen auf dem aktuellen<br />

Kontext (Initial Check) folgen eine zweite<br />

Überprüfung unter Einbeziehung der eingegebenen<br />

Parameterwerte (Final Check) und<br />

schließlich die Durchführung der konkreten<br />

Änderungen (Model Change).<br />

Refactorings können sowohl direkt auf<br />

den Modellelementen als auch aus der<br />

Ergebnissicht der Smell-Suche (z B.<br />

{Motorbike, power} > Refactoring Analysis)<br />

aufgerufen werden. Im zweiten Fall schlägt<br />

EMF Refactor alle Refactorings vor, die in<br />

dem konkreten Kontext anwendbar sind.<br />

Beispielsweise werden für die Eliminierung<br />

des Smells Equal Attributes in Sibling Classes<br />

auf den Elementen {Motorbike, power} neun<br />

Refactorings vorgeschlagen, die auf einem<br />

dieser beiden Elemente durchgeführt werden<br />

können (siehe Abbildung 4). Da jedoch<br />

auch anwendbare Refactorings vorgeschlagen<br />

werden, die nicht unmittelbar dazu beitragen,<br />

den Smell zu entfernen (wie z. B.<br />

Rename Class), bietet EMF Refactor eine<br />

manuelle Konfiguration der geeigneten<br />

Model Refactorings an.<br />

In unserem Beispiel wenden wir das<br />

Refactoring Pull Up Attribute auf das<br />

Attribut power an. Da die UML Mehr -<br />

fachvererbung erlaubt, muss als Parameter<br />

die Oberklasse angegeben werden, in die<br />

das Attribut verschoben werden soll. Der<br />

Eingabedialog bietet zudem die Mög -<br />

lichkeit, Voransichten der Änderungen am<br />

Modell sowie der vorkommenden Smells<br />

vor und nach dem Refactoring anzuzeigen.<br />

Sind bestimmte Vorbedingungen nicht<br />

erfüllt, werden detaillierte Fehlermel dun -<br />

gen angezeigt. Weiterhin stehen die<br />

üblichen Funktionalitäten undo und redo<br />

zur Verfügung. Abbildung 5 zeigt einen<br />

Ausschnitt unseres Beispielmodells nach<br />

Durchführung von Pull Up Attribute auf den<br />

Attributen power und manufacturer.<br />

Projektspezifische<br />

Anpassungen<br />

Da Softwaremodelle für verschiedene<br />

Zwecke und in unterschiedlichen Domänen<br />

(z. B. Web-Anwendungen und eingebettete<br />

Systeme) eingesetzt werden, variieren auch<br />

die Bedeutung einzelner Qualitätsaspekte<br />

und somit die Auswahl spezifischer Si -<br />

cherungstechniken. Unsere Werkzeug -<br />

umge bung bietet die Möglichkeit, die vorhandenen<br />

Techniken projektspezifisch zu<br />

konfigurieren (z. B. Project > Properties ><br />

EMF Smell). In der Standardeinstellung sind<br />

alle vorhandenen Techniken aktiviert. Zwei<br />

weitere projektspezifische Einstellungen<br />

wurden bereits erwähnt: die Einstellung der<br />

Grenzen bei metrikbasierten Smells und die<br />

Konfiguration der für die Eliminierung von<br />

Smells in Softwaremodellen geeigneten<br />

Refactorings.<br />

Neben der Anwendung von vorhandenen<br />

Techniken bietet die Werkzeugumgebung<br />

auch die Möglichkeit, neue Metriken,<br />

Smells und Refactorings zu integrieren<br />

(z. B. über File > New > Other… > EMF Smell<br />

> Model-Smell). Dazu besitzt jedes Werk -<br />

zeug einen Codegenerator, der nach der<br />

Eingabe spezifischer Informationen (z. B.<br />

den Namen des Smells) Code generiert, der<br />

dann vom Anwendungsmodul verwendet<br />

werden kann. Vorhandene Techniken können<br />

kombiniert werden: Neue Metriken<br />

oder metrikbasierte Smells benutzen vorhandene<br />

Metriken, neue Refactorings kombinieren<br />

vorhandene Refactorings. Neue<br />

Techniken können in Java, der Object<br />

Constraint Language (OCL) oder der<br />

Modelltransformationssprache Henshin<br />

(vgl. [Are10]) spezifiziert und weitere<br />

Spezi fikationssprachen über entsprechende<br />

Adapter integriert werden.<br />

Implementierte Techniken<br />

für UML<br />

Die Werkzeuge unterstützen zurzeit über<br />

100 Metriken sowie jeweils 30 Smells und<br />

Refactorings für UML-Modelle. Sie<br />

join the<br />

experts<br />

of enterprise infrastructure<br />

Software-Entwickler / Architekt (m/w)<br />

Arbeiten Sie gerne selbstständig, motiviert und im Team? Haben Sie gesunden Ehrgeiz und Lust Verantwortung<br />

zu übernehmen? Wir bieten Ihnen erstklassigen Wissensaustausch, ein tolles Umfeld, spannende Projekte in den<br />

unterschiedlichsten Branchen und Bereichen sowie herausfordernde Produktentwicklung.<br />

Wenn Sie ihr Know-how gerne auch als Trainer oder Coach weitergeben möchten, Sie über Berufserfahrung<br />

mit verteilten Systemen verfügen und Ihnen Komponenten- und Objektorientierung im .NET- oder JEE-<br />

Umfeld vertraut sind, dann lernen Sie uns doch kennen. Wir freuen uns auf Ihre Bewerbung!<br />

Software <strong>GmbH</strong><br />

Henkestraße 91, 91052 Erlangen<br />

Telefon: 09131/ 89 03-0<br />

Telefax: 09131/ 89 03-55<br />

Internet: www.mathema.de<br />

E-Mail: info@mathema.de


schwerpunkt<br />

Abb. 5: Teil des verbesserten UML-Klassenmodells.<br />

ermöglichen einen flexiblen Einsatz zur<br />

Quali tätssicherung verschiedenartiger<br />

UML-Modelle. Viele Smells und<br />

Refactorings für Klassendiagramme orientieren<br />

sich an den entsprechenden Pendants<br />

für Klassen struk turen auf Programmier -<br />

ebene, wie in [Fow99] beschrieben. Weitere<br />

Techniken können mit Hilfe der erwähnten<br />

Spezifi kationssprachen leicht ergänzt werden.<br />

Neben den bereits erwähnten Metriken<br />

NATM und NOM werden alle gängigen<br />

objektorientierten Metriken für UML-<br />

Modelle unterstützt, etwa Metriken hinsichtlich<br />

bestimmter Eigenschaften über<br />

Vererbung (z. B. MaxDIT – Maximale Tiefe<br />

aller Vererbungshierarchien im Klassen -<br />

modell) oder Kopplung (z. B. Ce – Efferent<br />

Coupling/ausgehende Abhängigkeiten eines<br />

Pakets und Ca – Afferent Coupling/eingehende<br />

Abhängigkeiten eines Pakets).<br />

Weiterhin können die Metriken auf verschiedenen<br />

Modellelement-Typen berechnet<br />

werden (Modell, Paket, Klasse usw.).<br />

Weitere implementierte Smells und Refac -<br />

torings für UML-Modelle neben den in<br />

unserem Beispiel diskutierten sind:<br />

■<br />

■<br />

Multiple Definition of Classes with<br />

Equal Names: Dieser musterbasierte<br />

Smell identifiziert Klassen in unterschiedlichen<br />

Paketen, die den gleichen<br />

Namen besitzen.<br />

Primitive Obsession: Dieser metrikbasierte<br />

Smell wurde in zwei unterschiedlichen<br />

Varianten implementiert. Zum<br />

einen tritt dieser Smell auf, wenn die<br />

Anzahl der konstanten Attribute einer<br />

Klasse einen spezifischen Wert überschreitet,<br />

und zum anderen, wenn die<br />

Anzahl der Attribute einer Klasse mit<br />

primitivem Datentyp (Integer, String)<br />

über dem konfigurierten Schwellenwert<br />

liegt.<br />

■<br />

■<br />

Introduce Parameter Object: Dieses<br />

Refactoring erstellt – ausgehend von<br />

einer Liste von Parametern einer Opera -<br />

tion – eine neue Klasse, legt für jeden<br />

dieser Parameter ein entsprechendes<br />

Attribut in der Klasse an und ersetzt<br />

schließlich die Parameterliste durch<br />

einen neuen Parameter, getypt durch die<br />

neue Klasse (sowohl in der ur sprüng -<br />

lichen Operation als auch in anderen<br />

Operationen der gleichen Klasse).<br />

Remove Isolated State: Bei diesem<br />

Refactoring wird ein Zustand, der<br />

weder eigehende noch ausgehende<br />

Transitionen besitzt, aus der entsprechenden<br />

Region eines Zustandsdia -<br />

gramms gelöscht.<br />

Die Liste der unterstützten Metriken,<br />

Smells und Refactorings für UML-Modelle<br />

wird sukzessive erweitert.<br />

Literatur & Links<br />

Fazit<br />

In diesem Artikel haben wir einen<br />

Qualitätssicherungsprozess für Software -<br />

modelle sowie eine unterstützende Werk -<br />

zeug umgebung anhand eines Beispiel -<br />

modells der UML vorgestellt. Prozess und<br />

Werkzeuge bedienen dabei zwei verschiedene<br />

Benutzergruppen:<br />

[Are10] T. Arendt, E. Biermann, S. Jurack, C. Krause, G. Taentzer, Henshin: Advanced Concepts<br />

and Tools for In-Place EMF Model Transformations, MoDELS 2010, Springer 2010<br />

[Are11] T. Arendt, S. Kranz, F. Mantz, N. Regnat, G. Taentzer, Towards Syntactical Model<br />

Quality Assurance in Industrial Software Development: Process Definition and Tool Support,<br />

Software Engineering 2011<br />

[Ecl-a] Eclipse, Papyrus, siehe: eclipse.org/modeling/mdt/papyrus/<br />

[Ecl-b] Eclipse, EMF Refactor, siehe: eclipse.org/modeling/emft/refactor/<br />

[Fow99] M. Fowler, K. Beck, Refactoring – Improving the Design of Existing Code, Addison-<br />

Wesley 1999<br />

[IBM] IBM, Rational Software Architect, siehe:<br />

http://www-01.ibm.com/software/rational/products/swarchitect/<br />

[Moh09] P. Mohagheghi, V. Dehlen, T. Neple, Definitions and Approaches to Model Quality in<br />

Model-Based Software Development – A Review of Literature, Information and Software<br />

Technology, 12/2009<br />

[OMG] Object Management Group, Unified Modeling Language, siehe: omg.org/spec/UML/<br />

[Stei08] D. Steinberg, F. Budinsky, M. Paternostro, E. Merks, EMF: Eclipse Modeling Frame -<br />

work, Addison-Wesley 2008<br />

[Yat] Yatta Solutions <strong>GmbH</strong>, UML Lab, siehe: uml-lab.com<br />

■<br />

■<br />

Qualitätsverantwortliche können projektspezifische<br />

Qualitätseigenschaften<br />

und somit bestimmte Sicherungs -<br />

techniken festlegen.<br />

Modellierer und Reviewer werden aufgrund<br />

der Integration der Werkzeuge in<br />

Modellierungsumgebungen direkt in<br />

ihrer Modellierungsarbeit unterstützt.<br />

Obwohl der Anwendungsfokus der vorgestellten<br />

Werkzeuge auf der direkten Mo -<br />

dellierung von Softwareartefakten liegt,<br />

sind auch andere Anwendungsszenarien<br />

denkbar. Beispielsweise könnte in einem<br />

Reverse-Engineering-Prozess aus dem vorhandenen<br />

Programmcode ein entsprechendes<br />

UML-Modell erstellt werden (z. B. mit<br />

UML Lab, vgl. [Yat]) und anschließend das<br />

Design ähnlich einer statischen Code -<br />

analyse mit Hilfe der vorhandenen Metri -<br />

ken und Smells analysiert werden. Eine<br />

Batch-Verarbeitung ist derzeit noch nicht<br />

möglich. Entsprechende Schnittstellen werden<br />

jedoch in einer zukünftigen Version<br />

von EMF Refactor bereitgestellt. ■<br />

18 19


advertorial<br />

MODEL DRIVEN ARCHITECTURE<br />

(ODER WIE AUCH IMMER SIE ES NENNEN MÖCHTEN)<br />

FUNKTIONIERT<br />

Als die UML 1996 als Standard für die Modellierung von Software und Systemen präsentiert wurde, haben die Erfinder gedacht, dass es jetzt<br />

den einen, einzig wahren Standard gibt, der dazu geeignet ist, die Welt (speziell die der Techniker) zu beschreiben.<br />

2012 – knapp 16 Jahre später – beschreibt<br />

die UML immer noch erst knapp 10% aller<br />

Software und Systeme. Es gibt nicht mehr<br />

nur die UML, sondern BPMN, SysML,<br />

BrainML, Togaf, … und viele, viele andere<br />

Sprachen, die ihren Ursprung schon in der<br />

UML haben, aber eben Domain spezifisch<br />

(DSL) sind. Daran kann man aber auch<br />

erkennen, dass die Erkenntnis: „Ein Bild<br />

sagt mehr als tausend Worte“ schon längst<br />

in vielen anderen Branchen Einzug gehalten<br />

hat und nicht mehr nur „für Soft -<br />

wareentwickler only“ verwendet wird.<br />

Unter uns gesagt: Man kann mit allen<br />

DSLs mehr oder weniger auch wirklich<br />

alles modellieren, wenn man möchte. Und<br />

meiner Meinung nach adressiert man mit<br />

DSLs viel mehr die Eitelkeit von<br />

Fachanwendern, die das eine wollen und<br />

das andere eben justament nicht.<br />

Ein klassisches „not invented here“-<br />

Problem, was leider eine große Heraus -<br />

forderung für die gesamte Branche darstellt.<br />

Wie auch immer…Was aber - egal<br />

welcher DSL Fraktion man angehört - auch<br />

ein Fakt ist: Aus semantisch korrekten<br />

Modellen kann man wiederverwendbare,<br />

wenn man will auch ausführbare Anwen -<br />

dun gen generieren. Damit entsteht das,<br />

wovon die Branche schon lange träumt:<br />

wiederverwendbare, fehlerfreiere, überschaubarere<br />

Ergebnisse.<br />

Es gibt mittlerweile Domänen, wo ohne<br />

UML oder entsprechender DSL, die<br />

Komplexität nicht mehr zu bewältigen<br />

wäre. Das sind scheinbar ganz banale<br />

Systeme wie die Ladestromsteuerung von<br />

Hoch leistungsbatterien in modernen Elek -<br />

tro fahrzeugen. In der Grundschaltung<br />

betrachtet eine primitive Anordnung, aber<br />

bei genauerer Betrachtung – Temperatur -<br />

fühler, Bremsenergierückführung, Sonnen -<br />

licht kollektoren, zuschaltbare Benzin-/<br />

Diesel motoren etc. – ist die Komplexität<br />

unglaublich groß und dann noch verschiedene<br />

Varianten und Versionen. Wenn Ihnen<br />

nun die Frage auf der Zunge liegt: Zahlt<br />

sich das überhaupt aus? Meine klare<br />

Antwort: JA!<br />

Fachabteilungen können jetzt auf wichtige Modellinformationen mittels WEB/Cloud<br />

Anwendung zugreifen<br />

Also Model Driven Architecture lässt<br />

sich in allen Domänen anwenden. Für den<br />

abstrakten Metamodellierer genauso wie<br />

für den Codezeilenjunkie.<br />

Das Produkt Enterprise Architect von<br />

SparxSystems begleitet mittlerweile über<br />

320.000 Anwender im Arbeitsalltag in den<br />

unterschiedlichsten Lebenslagen. Die einen<br />

verwenden es klassisch für das Design von<br />

neuen, innovativen Anwendungen und<br />

wollen die seltene Chance, endlich mal was<br />

komplett Neues entwickeln zu dürfen, professionell<br />

angehen und nutzen. Die anderen<br />

sind dankbar für die automatisiert generierbare<br />

technische Dokumentation aus<br />

bestehendem source code. Enterprise<br />

Architect basiert auf einem Datenbank -<br />

repository: Damit entsteht der große<br />

Vorteil, dass alle Elemente und Konnek -<br />

toren (Kanten, Verbindungen) samt ihren<br />

Baselines über die Lebensdauer beisammen<br />

sind und man sich sogenannte Medien -<br />

brüche sparen kann. Enterprise Architect<br />

ist aber ein UML-Tool mit all seinen<br />

Komplexitäten und daher mitunter für die<br />

Fachseite oder den Kunden nicht unbedingt<br />

geeignet (Anmerkung am Rande: Der<br />

Versuch, „Otto Normalverbraucher“ zu<br />

erklären, dass er seine Anforderungen doch<br />

gleich mit UML modellieren möge, stößt<br />

sicherlich auf allgemeine Verwunderung,<br />

wenn ihr Auftraggeber nicht selbst UML-<br />

Anwender ist. So sind selbst die meisten<br />

Fachanwender/Auftraggeber nicht in der<br />

Lage, wohl formatierte und eineindeutige<br />

Anforderungen zu formulieren, aber das ist<br />

eine andere Geschichte).<br />

Um aber die Anforderungen bzw. vielmehr<br />

die Umsetzung von Anforderungen in<br />

Use Cases, Activities oder gar Klassen zu<br />

verfolgen (=tracen), müssen diese letztlich<br />

auch ins Enterprise Architect Repository.<br />

Dazu kann man sie importieren oder verknüpfen.<br />

Das ist z. B. mit DOORS, Team<br />

Foundation Server, CodeBeamer, Polarion<br />

oder dem meist genutzten Anforderungs -<br />

managementtool Excel möglich. Kreative<br />

Weiterentwicklungen wie EnArWEB<br />

(Enterprise Architect für WEB) des<br />

SparxSystems Partners LieberLieber, die<br />

auf dem Repository von Enterprise Archi -<br />

tect beruhen, erleichtern diese Aufgabe<br />

aber wesentlich.<br />

■<br />

KONTAKT:<br />

SparxSystems Software <strong>GmbH</strong><br />

Handelskai 340/Top 5<br />

A-1020 Wien<br />

URL: www.sparxsystems.at<br />

E-Mail: peter.lieber@sparxsystems.at<br />

Vorgestellte Produkte:<br />

Enterprise Architect, AMUSE, EnArWEB<br />

6/2012


„Worauf konzentrieren Sie sich, wenn Sie<br />

Modelle erstellen?“ Häufig lautet die<br />

Antwort auf diese Frage: „Auf das Tool“.<br />

IT-Werkzeuge nehmen bei der Model -<br />

lierung einen prominenten Platz ein und<br />

beanspruchen damit auch einen guten Teil<br />

unserer Aufmerksamkeit. Darunter leiden<br />

insbesondere kreative Prozesse, wie der<br />

Entwurf von Software oder die Beschrei -<br />

bung komplexer Fachlichkeit.<br />

Kein Wunder also, wenn viele Konzepte<br />

am Flipchart oder Whiteboard entwickelt<br />

werden. Architektur und Entwurfsarbeit<br />

finden heute oft in Kleingruppen statt, werden<br />

informell vorangetrieben und möglichst<br />

schnell der Umsetzung zugeführt.<br />

Agile Praktiken ergreifen immer mehr<br />

Disziplinen und letztendlich verschließen<br />

sich auch die analytischen Domänen nicht<br />

davor.<br />

Die Geschäftsprozess-Modellierung ist<br />

eine dieser Domänen. Komplizierte, vielschwerpunkt<br />

die autoren<br />

ANALOGE MODELLIERUNG:<br />

ÜBER DIE QUALITÄTSSTIFTENDE<br />

ABKEHR VOM TOOL<br />

Modellierung wird fast untrennbar mit Modellierungswerkzeugen in Verbindung gebracht.<br />

Trotz des unbestrittenen Nutzens von Werkzeugen ist die initiale Modellerstellung oft aufwändig,<br />

fehleranfällig und wenig begeisternd. Am Beispiel der Geschäftsprozess-Modellierung zeigt<br />

dieser Artikel einen alternativen Weg auf, der den kreativen Prozess der Modellerstellung vom<br />

Modellierungswerkzeug löst. Physische Modelle und interaktives Vorgehen schaffen eine leichtgewichtige<br />

und lebendige Modellierungsdisziplin.<br />

Stefan Toth<br />

(st@oose.de)<br />

arbeitet als Softwarearchitekt, Berater und Trainer<br />

bei oose. Seine Schwerpunkte sind die Konzeption<br />

und Bewertung mittlerer bis großer<br />

Softwarelösungen sowie die Verbindung dieser<br />

Themen zu agilem Vorgehen und EAM.<br />

leicht unternehmensweite Abläufe, die<br />

meist eine Vielzahl von Stakeholdern<br />

betreffen, sollen hier in verständliche und<br />

klare Diagramme gegossen werden. Nur so<br />

können Prozesse geeignet analysiert, optimiert<br />

oder automatisiert werden. Aus -<br />

tausch, Zusammenarbeit und eine dynamische<br />

Modellierung sind hier extrem wichtig<br />

und doch selten gelebt.<br />

Unser Artikel greift diesen Faden auf.<br />

Ausgehend von den in der Praxis beobachtbaren<br />

Problemen, stellen wir alternative<br />

Modellierungstechniken für Geschäfts -<br />

prozesse vor – inklusive konkreter Hin -<br />

weise zu deren Anwendung. Die gewonnenen<br />

Erkenntnisse betten wir in einen<br />

Gesamtprozess ein, der Schritt für Schritt<br />

beschreibt, wie Sie von der Erhebung und<br />

Analyse über die Beschrei bung bis zur<br />

Wartung von Modellen gelangen. Als<br />

Modellierungsnotation verwenden wir die<br />

Business Process Model & Notation<br />

Kim Nena Duggen<br />

(kd@oose.de)<br />

arbeitet als Business-Analyst, Beraterin und<br />

Trainerin bei oose in Hamburg. Ihre Schwerpunkte<br />

liegen in der Analyse, Modellierung und<br />

Optimierung von Geschäftsprozessen und dem<br />

Coaching von Business-Analysten.<br />

(BPMN). Kasten 1 bietet für Neulinge<br />

etwas Hintergrund, später zeigen wir auch<br />

die wichtigsten Notations ele mente im<br />

Überblick (siehe Abbildung 1). Die Kon -<br />

zepte und Erkenntnisse sind auf andere<br />

Domänen wie Architektur und Notationen<br />

wie UML übertragbar.<br />

Was ist die BPMN 2.0?<br />

Die BPMN ist eine grafische Spezifikationssprache zum Modellieren von Geschäfts -<br />

prozessen. Sie wurde 2002 von der Object Management Group (offenes Konsortium für<br />

Spezifikationen in der Computerindustrie) erarbeitet und 2010 in der Version 2.0 um ein<br />

Metamodell und weitere Diagrammarten erweitert.<br />

Warum sollte man BPMN zur Modellierung nutzen?<br />

Die BPMN 2.0 eignet sich als Modellierungsnotation für Geschäftsprozesse, da sie ein<br />

weit verbreiteter Standard ist. Sie ist so konzipiert, dass sowohl Fachabteilungen als<br />

auch IT-Vertreter den Einsatz der Elemente leicht erlernen können. Gleichzeitig ist die<br />

Notation so mächtig, dass ausführbare Modellierung zur Automatisierung von<br />

Prozessen genutzt werden kann.<br />

Wo findet man die Spezifikation?<br />

Hier: omg.org/spec/BPMN/2.0/<br />

Kasten 1: Die Business Process Model & Notation (BPMN 2.0).<br />

Stärken und Schwächen von<br />

Modellierungswerkzeugen<br />

Modellierungswerkzeuge leisten enorme<br />

Dienste, wenn es um die Dokumentation<br />

und Verwaltung von Konzepten, Sichten<br />

und Entscheidungen geht. Sie erlauben<br />

unternehmensweiten Zugriff auf Modelle<br />

und bieten Analyse- und Auswertungs -<br />

möglichkeiten für Beziehungen und<br />

Elemente. Auch die Weiterentwicklung und<br />

Wartung von komplexen Konzepten oder<br />

Prozessmodellen sind mit Modellierungs -<br />

werk zeugen einfacher und effektiver als<br />

ohne. Der Abschnitt „Der Modellierungs -<br />

prozess“ illustriert, wie ein Vorgehen aussehen<br />

kann, das diese Vorteile von Tools<br />

nutzt.<br />

Die Verwendung von Modellierungs -<br />

werk zeugen hat allerdings auch Nachteile,<br />

20 21


■ Fachliche Fragen in den Vordergrund<br />

bringen: Intuitive und „nicht spürbare“<br />

Werkzeuge fördern den fachlichen<br />

Fokus. Abstraktionen und Verein -<br />

fachungen vom Standard sind einfacher<br />

möglich und ad-hoc anwendbar.<br />

■ Den nötigen Überblick fördern:<br />

Mehrere Prozesse gleichzeitig sichtbar<br />

zu machen und Zusammenhänge oder<br />

Verantwortlichkeitsübergänge zu visualisieren,<br />

stärkt die Übersicht und<br />

Erkenntnisfähigkeit.<br />

■ Dynamik und Interaktion stärken: Die<br />

Abkehr vom klassischen Besprechungsschwerpunkt<br />

Abb. 1: BPMN-Übersetzung (angelehnt an [Sil11]).<br />

die sich hauptsächlich dann zeigen, wenn<br />

gleichzeitig modelliert und konzeptionell<br />

gearbeitet wird. Werden Geschäftsprozess-<br />

Modelle erstellt, trifft genau das zu:<br />

Generell sollte hier in Workshops gearbeitet<br />

werden. Dynamik und der Austausch<br />

zwischen Fachabteilungen und Analysten<br />

sind extrem wichtig. Alle Beteiligten müssen<br />

den Überblick über modellierte Pro -<br />

zesse und deren Kontext haben und letztlich<br />

ist der Wille zur Beteiligung bei<br />

fachlichen Ansprechpartnern essenziell.<br />

Modellierungswerkzeuge können hier einige<br />

Schwächen offenbaren:<br />

■ Erzwungener Formalismus: An kreativen<br />

Analyseworkshops nehmen mehrere<br />

fachliche Stakeholder und Prozess -<br />

experten teil, um eine initiale Sicht auf<br />

die Prozesslandschaft zu erarbeiten.<br />

Dabei ist es hilfreich, Formalien zu -<br />

nächst beiseite zu lassen und sich auf<br />

die Fachlichkeit zu konzentrieren.<br />

Tools erzwingen jedoch meist eine<br />

„korrekte“ Modellierung und machen<br />

Details von Anfang an wichtig.<br />

■ Überforderung von fachlichen An -<br />

sprech partnern: Modellierungs werk -<br />

zeuge bieten eine Vielzahl von Op tionen<br />

und Elementen zur Model lierung. Diese<br />

Vollständigkeit in der Umsetzung von<br />

Notationen ist bei der detaillierten<br />

Ausgestaltung oder Auto matisierung<br />

von Prozessen wichtig, behindert bei der<br />

ersten Erhebung allerdings deutlich.<br />

Fachliche Ansprech partner sind von der<br />

Symbolvielfalt oft erschlagen, sehen sich<br />

mit einer recht flachen Lernkurve konfrontiert<br />

und verlieren schnell den Fokus<br />

auf die Domäne.<br />

■ Schwer greifbare Zusammenhänge: Die<br />

Analyse von Unternehmensarchi tek -<br />

turen erfordert unterschiedliche Mo -<br />

dell arten (Business Process Diagrams,<br />

Domänendiagramme, Organigramme<br />

usw.), Prozessmodelle werden auf<br />

unterschiedlichen Abstraktionsebenen<br />

erstellt und Prozesse bedingen sich oft<br />

gegenseitig. Diese Zusammenhänge<br />

sind im Werkzeug häufig nicht direkt<br />

sichtbar. Im Tool von Diagramm zu<br />

Diagramm und zum Navigations -<br />

bereich zu springen, führt häufig dazu,<br />

dass Workshop-Teilnehmer den Überblick<br />

verlieren. Erschwerend kommt<br />

hinzu, dass größere Modelle wegen der<br />

üblichen Beamer-Auflösung nie vollständig<br />

gezeigt werden können.<br />

■ Bedienung vor Fachlichkeit: Die An -<br />

ordnung und Ausrichtung von Modell -<br />

elementen, die richtige Beschriftung,<br />

die Suche nach Tool-Optionen und<br />

Teilnehmer-Tipps zu Tastenkombina -<br />

tionen lenken die Aufmerksamkeit weg<br />

von der Fachlichkeit. Es wird aufwändiger,<br />

komplizierte Sachverhalte zu<br />

besprechen, und wichtige fachliche<br />

Fragen bleiben oft ungeklärt. Work -<br />

shops werden zäh und verlieren an<br />

Dynamik.<br />

■ Wenig interaktiver Charakter: Model -<br />

lierungswerkzeuge in Workshops einzusetzen,<br />

bedingt meist ein klassisches<br />

Besprechungs-Setup: Der Beamer projiziert<br />

an eine Wand und die Workshop-<br />

Teilnehmer sitzen an einem großen<br />

Tisch. Das fördert eine konsumierende<br />

Haltung und behindert einen lebendigen<br />

Austausch. Es gibt keine direkte<br />

Form der Mitgestaltung, sondern einen<br />

Mittler in Form des Modellierers.<br />

Damit behindert man die Lebendigkeit<br />

des Prozesses, es entsteht ein Nadelöhr<br />

und wichtige Fragen werden vielleicht<br />

nicht gestellt. Werden Modellierungs -<br />

vorschläge direkt in das Tool aufgenommen,<br />

entstehen Diskussions pau -<br />

sen, in denen die Teilnehmer warten.<br />

■ Starrheit von Modelliertem: In der<br />

Praxis ist zu beobachten, dass weder<br />

Modellierer noch fachliche Ansprech -<br />

partner grobe Änderungen an in<br />

Werkzeugen erfassten Prozessen vornehmen<br />

wollen. Ein im Tool modellierter<br />

Prozess wirkt häufig professioneller,<br />

durchdachter und stabiler, als er es<br />

eigentlich ist. Teilnehmer sehen sich im<br />

ersten Moment ohne Zugriffs- oder<br />

Gestal tungs möglichkeit und halten sich<br />

mit grundlegenden Fragen und Änderungswünschen<br />

eher zurück.<br />

Alternative Modellierungs -<br />

techniken<br />

Die beobachtbaren Schwächen von Tools<br />

können mit alternativen Modellierungs -<br />

techniken überwunden werden. Auf der<br />

Suche danach sind folgende Ziele zentral:<br />

6/2012


schwerpunkt<br />

Setup, die Arbeit im Stehen und mit<br />

haptischen Dingen ist ein agiler Trend,<br />

der auch in großen Konzernen angekommen<br />

ist. Die Mitwirkenden arbeiten<br />

engagierter und fokussierter. Sie<br />

werden aktiv in die Modellierung einbezogen<br />

und gestalten mit. Durch die<br />

einfache Änderbarkeit von modellierten<br />

Ideen wird eine dynamische Weiter -<br />

entwicklung von Ideen und Konzepten<br />

möglich.<br />

Vier Analogtechniken<br />

Wir haben mehrere Techniken in realen<br />

Projektsituationen getestet. Positive Effekte<br />

sind vor allem bei der technologiefreien<br />

(„analogen“) Modellierung spürbar:<br />

■ Flipchart: In der ersten Variante zeichnen<br />

die Workshop-Teilnehmer (oder ein<br />

Moderator) die eingebrachten Pro -<br />

zessinhalte auf ein Flipchart. Das<br />

schafft einen guten Überblick und liefert<br />

eine Diskussionsgrundlage für die<br />

Gruppe.<br />

■ Meta-Planwand mit Moderations -<br />

karten: Eine andere Möglichkeit<br />

besteht darin, Prozessergebnisse auf<br />

Moderationskarten zu schreiben und<br />

diese zur Übersicht an einer Meta-<br />

Planwand anzubringen. Alle Teil neh -<br />

mer können durch selbständiges<br />

Ausfüllen der Karten interaktiv Input<br />

geben. Darüber hinaus können die<br />

Karten flexibel verschoben oder umbenannt<br />

werden.<br />

■ Moderationskarten auf dem Tisch: Um<br />

eine größere Arbeitsfläche zu schaffen,<br />

an der mehrere Beteiligte von verschiedenen<br />

Seiten arbeiten, können<br />

Moderationskarten auch freifliegend auf<br />

einem großen Tisch verwendet werden.<br />

■ Whiteboard/Whiteboard-Folie und<br />

Post-its: Im vierten Ansatz werden<br />

Prozesse mittels geeigneter Post-its auf<br />

einer Whiteboard-Folie angebracht.<br />

Später werden Verbindungslinien eingezeichnet.<br />

Das vorrangige Ziel – Ergebnisse zu visualisieren<br />

und Einigkeit innerhalb der Gruppe<br />

herzustellen – wird mit jeder der beschriebenen<br />

werkzeugunabhängigen Varianten<br />

er reicht. Man profitiert allerdings vor<br />

allem von Techniken, die große Flexibilität<br />

gewährleisten. Im Praxiseinsatz ist das bei<br />

Flipcharts und auch bei Meta-Planwänden<br />

nicht unbedingt der Fall. Darüber hinaus<br />

sind eine einfache Ergebnissicherung und<br />

■<br />

■<br />

■<br />

■<br />

■<br />

■<br />

Ergebnis-Loyalität erreichen: Haptisch visualisierte Modelle schaffen Verbindung<br />

mit dem Ergebnis und intensivieren die Kommunikation. Hängen Sie Plots und<br />

Whiteboard-Folien mit Modellen an gut frequentierten Orten sichtbar auf.<br />

Entspannung für die Fachexperten: Machen Sie eine Pause zwischen der gemeinsamen<br />

Modellierung und den anschließenden Reviews. So werden mehr Fehler aufgedeckt,<br />

mehr Lücken erkannt und das Review wird effektiver.<br />

Fremdbeurteilung: Lassen Sie modellierte Prozesse von unbeteiligten Dritten in eigenen<br />

Worten wiedergeben. So wird deutlich, ob die Modelle selbstsprechend und<br />

logisch konstruiert sind.<br />

Sich beschränken: Modellieren Sie nur das, was nötig ist. Klassifizieren Sie die identifizierten<br />

Prozesse und detaillieren Sie nur wichtige und/oder unklare Abläufe.<br />

Level für Level: Ein stufenweises Vorgehen vermeidet Detailverlorenheit oder zu<br />

hohe Abstraktionsgrade. Gehen Sie von der Essenz über Gutfall- und Schlechtfall-<br />

Beschreibungen bis hin zur Erweiterung um Varianten. Die Modellierung wird einfacher<br />

und die ins Tool überführten Prozesse werden stabiler.<br />

Experimente wagen: Testen Sie vorhandene Materialien wie Flipcharts, Meta-<br />

Planwände oder auch Post-its in Workshop-Situationen und sammeln Sie so Best<br />

Practices, um die im eigenen Kontext passendste Modellierungstechniken zu finden.<br />

Kasten 2: Modellierungstipps.<br />

zumindest temporäre Stabilität von Vorteil<br />

– beides Dinge, die bei der Nutzung von<br />

Moderationskarten auf Tischen nicht gegeben<br />

sind. Am besten erfüllen Whiteboard-<br />

Folien diese Kriterien. Sie haben sich im<br />

Praxiseinsatz in Kombination mit Post-its<br />

gut bewährt. Die Anleihe bei agilen<br />

Planungsinstrumenten (wie Backlog-Wän -<br />

den) ist hier auch am stärksten spürbar.<br />

Experimentieren Sie aber zunächst durchaus<br />

mit vorhandenen Ressourcen wie<br />

Flipcharts oder Meta-Planwänden, um die<br />

im eigenen Kontext geeignete Model -<br />

lierungstechnik zu entdecken (diesen und<br />

zusätzliche Praxistipps zur Modellierung<br />

zeigt Kasten 2).<br />

Pragmatischer Wortschatz<br />

Da die Workshops zu Beginn einer Pro -<br />

zesserhebung lediglich dazu dienen sollen,<br />

Prozesse zu identifizieren und diese grob zu<br />

beschreiben, empfiehlt es sich, ein reduziertes<br />

Set von BPMN-Elementen zu nutzen –<br />

eben den Wortschatz zu begrenzen. Mo -<br />

derierte Prozessworkshops bieten Fach -<br />

experten und künftigen Modellierern eine<br />

wunderbare Möglichkeit, um die Notation<br />

leicht kennen und anwenden zu lernen.<br />

Abbildung 1 zeigt die reduzierte BPMN-<br />

Palette und die nötigen Post-it- oder<br />

Moderationskarten-Elemente.<br />

Bedeutung für die<br />

Zusammenarbeit<br />

In der praktischen Anwendung der Tech -<br />

niken profitieren sowohl die fachliche als<br />

auch die technische und organisatorische<br />

Seite von der angesprochenen Interaktivität<br />

und Dynamik. Aus Gesprächen mit<br />

Projektmitarbeitern können wir folgende<br />

Essenz ableiten:<br />

■<br />

■<br />

■<br />

■<br />

Business-Analysten profitieren stark<br />

von der einfachen Änderbarkeit bereits<br />

modellierter Prozessteile. Dadurch sind<br />

Rückmeldungen von Fachexperten einfacher<br />

aufzunehmen, was auch die<br />

Anzahl an Rück mel dungen und Ideen<br />

steigert. Einige Analysten berichteten<br />

davon, „endlich ehrliches Feedback“ zu<br />

bekommen.<br />

Fachabteilungen sind oft überrascht,<br />

wenn sich das Prozessbild an einer<br />

Wand entfaltet. Einfachheit oder<br />

Komple xität fallen leichter auf. Ein klarer<br />

Vorteil ist die gute Review-<br />

Möglichkeit in frühen Projektphasen.<br />

Durch die vereinfachte Notation und<br />

eine flexible Ausrichtung können<br />

Fachabteilungen Änderungen „leicht<br />

und schnell selbst durchführen“.<br />

Führungskräfte sind mitunter etwas<br />

skeptisch, weil teuer gekaufte Tools<br />

nicht von Beginn an eingesetzt werden<br />

und das „Zettelwerk“ auf den ersten<br />

Blick nicht professionell wirkt. „Die<br />

Ergebnisse sprechen allerdings eine<br />

andere Sprache“.<br />

Softwareentwickler fühlen sich meist<br />

besser informiert und haben das<br />

Gefühl, dass der Fachbereich „mehr<br />

erzählt“. Die „Fachlichkeit wird greif-<br />

22 23


schwerpunkt<br />

Rolle<br />

Business-Analyst<br />

Modellierer<br />

Fachexperte<br />

IT-Ansprechpartner<br />

Verantwortlichkeit<br />

Organisation, Erhebung, Moderation.<br />

Erstellung der Modelle (haptisch, im Tool).<br />

Zulieferung des fachlichen Inhalts (Ist/Soll), Definition aller<br />

Anforderungen und Machbarkeitsanalyse der organisatorischen<br />

Anforderungen.<br />

Zulieferung des technischen Inhalts und Machbarkeitsanalyse<br />

der IT-Anforderungen.<br />

Profiwissen und<br />

Praxislösungen<br />

Alle Bücher inkl.<br />

kostenlosem E-Book!<br />

Entscheider Festlegung des Projektfokus, Ressourcenallokation,<br />

Umsetzungsverantwortung.<br />

Tabelle 1: Typische Teilnehmer von Modellierungsworkshops.<br />

NEU<br />

barer“. Auch loben sie die „gemeinsame<br />

Sprache“ – ein Effekt, der mit der<br />

vereinfachten, auch für fachliche<br />

Ansprechpartner leicht erlernbaren<br />

BPMN aus Abbildung 1 zusammenhängt.<br />

Die vorgestellten Techniken zur Model -<br />

lierung haben sich bei der gemeinsamen<br />

Modellierung bewährt. Workshops bringen<br />

die Beteiligten zusammen und ermöglichen<br />

einen direkten Austausch. Wer aber sind<br />

die Beteiligten genau und was sind ihre<br />

Aufgaben während der Modellierung?<br />

Tabelle 1 zeigt eine typische Zusammen -<br />

setzung und definiert Verant wort lichkeiten<br />

für die wichtigsten Rollen.<br />

Die Rolle des Modellierers wird in der<br />

Praxis – je nach Teamgröße und Knowhow<br />

– entweder eigenständig besetzt, Busi -<br />

ness-Analysten zugeschlagen oder direkt<br />

den Fachexperten übertragen. Wie im<br />

Modellierungsprozess weiter unten zu<br />

sehen, ist es ideal, wenn Fachexperten die<br />

Modellierung ihrer eigenen fachlichen<br />

Inhalte selbst übernehmen. Durch die vereinfachte<br />

Notation (siehe Abbildung 1) und<br />

die haptische Arbeit ist das meist gut zu<br />

erreichen.<br />

Der Modellierungsprozess<br />

Wir orientieren uns zunächst an dem Vor -<br />

gehensmodell IBPM (Integrierte Business<br />

Process Management Projektmethodik)<br />

von Slama und Nelius (vgl. [Nel11]). Zur<br />

Integration eines Geschäftsprozessmanage -<br />

ment-Projekts in einem Unternehmen sehen<br />

sie die Erhebung und Beschreibung von<br />

Prozessmodellen über vier Abstraktions -<br />

ebenen vor:<br />

■ In der Planungsphase wird zunächst der<br />

Prozess-Scope definiert, also der<br />

Beschreibungskontext eingeengt. Ein<br />

Wertschöpfungsketten-Diagramm listet<br />

die Prozesse auf, die näher betrachtet<br />

werden sollen.<br />

■ Im Rahmen der Analyse wird lediglich<br />

der Gutfall 1 ) des einzelnen Prozesses<br />

betrachtet, um sich in der initialen<br />

Beschreibung nicht in Details zu verlieren.<br />

■ Mittels einer Auflistung aller Ausnah -<br />

me fälle wird im fachlichen Design eine<br />

Erweiterung um Varianten, Fehler -<br />

hand ling usw. vorgenommen.<br />

■ Schlussendlich entsteht so eine fachlich<br />

vollwertige Beschreibung aller Aspekte<br />

des Geschäftsprozesses, seiner Ge -<br />

schäfts objekte und der beteiligten<br />

Rollen.<br />

Dieses Vorgehen eignet sich hervorragend,<br />

um mit den jeweiligen Fachexperten Ab läufe<br />

stufenweise zu vervollständigen. Je nach<br />

Projektziel kann bis zu einer deskriptiven,<br />

einer eher analytischen oder sogar einer ausführbaren<br />

Ebene detailliert werden.<br />

Auf dieser Basis baut der in Abbildung 2<br />

gezeigte Prozess auf. Er ergänzt IBPM um<br />

die oben vorgestellten alternativen Model -<br />

lierungs techniken und illustriert die wichtigsten<br />

Verantwortlichkeiten (gleichzeitig<br />

ist er ein kleines Beispiel für die Model -<br />

lierung mit Post-its). In insgesamt zehn<br />

1<br />

) Der Gutfall betrachtet nur den regulären Prozess,<br />

ohne Ausnahmen und Fehlersituationen. Beim<br />

Schlechtfall kommen Alternativen, Fehlerkompen -<br />

sationen etc. hinzu. Die bewusste Trennung dieser<br />

beiden Fälle ist Teil des methodischen Vorgehens,<br />

dient der Blickwinkelerweiterung und hilft dabei,<br />

sich nicht schon zu Beginn in Details zu verlieren.<br />

NEU<br />

Stefan Zörner<br />

Softwarearchitekturen<br />

dokumentieren und kommunizieren<br />

Entwürfe, Entscheidungen und Lösungen<br />

nachvollziehbar und wirkungsvoll festhalten<br />

277 Seiten<br />

Flexibler Einband. € 34,90<br />

ISBN 978-3-446-42924-6<br />

Klaus Leopold,<br />

Siegfried Kaltenecker<br />

Kanban in der IT<br />

Eine Kultur der kontinuierlichen<br />

Verbesserung schaffen<br />

331 Seiten<br />

Flexibler Einband. € 34,90<br />

ISBN 978-3-446-43059-4<br />

Auch als Kindle-<br />

Edition erhältlich!<br />

Ernst Tiemeyer<br />

Handbuch IT-Management<br />

Konzepte, Methoden, Lösungen<br />

und Arbeitshilfen für die Praxis<br />

4., überarbeitete Auflage<br />

719 Seiten<br />

Flexibler Einband. € 59,90<br />

ISBN 978-3-446-42751-8<br />

Jetzt direkt bestellen!<br />

Carl Hanser Verlag <strong>GmbH</strong> & Co. KG<br />

direkt@hanser.de<br />

6/2012<br />

www.hanser-fachbuch.de/computer<br />

www.hanser.de/computer


schwerpunkt<br />

2. Nach der Unsicherheit bezogen auf die<br />

Prozessinhalte (siehe „Priorität“ bzw.<br />

„Stabilität“ in Abbildung 3).<br />

Jeder Prozess kann in beiden Kategorien<br />

eine hohe (H), mittlere (M) oder niedrige<br />

(N) Bewertung erhalten. Im weiteren<br />

Verlauf werden vorrangig die hoch kategorisierten<br />

Prozesse näher betrachtet – zu -<br />

nächst jene mit der Bewertung H/H, also<br />

Prozesse, die sehr wichtig für das Projekt,<br />

aber auch sehr unklar sind.<br />

Abb. 2: Der oose-Modellierungsprozess.<br />

Schritten führt er so detailliert wie nötig,<br />

aber so schlank wie möglich zu belastbaren<br />

Ergebnissen. In der Praxis werden für einen<br />

Durchlauf – je nach Beschrei bungsfokus –<br />

mehrere Definitions-, Model lierungs- und<br />

Überarbeitungsworkshops abgehalten, die<br />

im Abstand von einigen Tagen oder<br />

Wochen abgehalten werden können. Die<br />

Schritte beschreiben wir nachfolgend im<br />

Detail.<br />

Kick-off vorbereiten und<br />

Projektfokus definieren<br />

Zunächst ist festzulegen, welche Abtei -<br />

lungen, Teams oder Personen an der Be -<br />

schreibung der Fachlichkeit mitwirken sollen.<br />

Danach wird der Kick-off vorbereitet<br />

(Überlegungen zu Medien, Raumausstat -<br />

tung und unterstützendes Informations -<br />

material). Im ersten Workshop definieren<br />

Entscheider (z. B. die Abteilungsleiter) dann<br />

den Projektfokus.<br />

Prozesse identifizieren<br />

Der nächste Schritt ist die Identifizierung der<br />

Prozesse. In einem weiteren Workshop werden<br />

die für den Fokus relevanten<br />

Fachexperten aktiv eingebunden. Sie identifizieren<br />

Prozesse entweder unter<br />

Zuhilfenahme von Referenzmodellen oder<br />

arbeiten sich logisch durch die End-to-End-<br />

Abläufe – von der Kundenanfrage bis zur<br />

Leistungserbringung. Dabei achten sie darauf,<br />

unterstützende Prozesse nicht zu vergessen,<br />

die lediglich indirekt dazu dienen,<br />

Leistungen zu erbringen. Ein gutes Re -<br />

ferenzmodell enthält zumindest eine Auf -<br />

listung der gängigsten Prozesse vergleichbarer<br />

Unternehmen und liefert damit eine gute<br />

Ausgangsbasis (vgl. [Nis08]). Die identifizierten<br />

Prozesse werden zunächst auf<br />

Moderationskarten oder großen Post-its<br />

gesammelt und an einer (Meta-Plan-)Wand<br />

nach thematischer Zusammen gehörigkeit<br />

gruppiert. Als Namenskonvention dienen<br />

Substantiv und Verb (z. B. „Prozesse identifizieren“).<br />

Prozesse essenziell beschreiben<br />

Nach der Identifikation der zentralen<br />

Prozesse, wird eine essenzielle Gutfall-<br />

Beschreibung jedes Prozesses angelegt. Der<br />

Gutfall behandelt keine Ausnahmen oder<br />

Fehler, grenzt aber die Prozessinhalte ab und<br />

macht eine erste Struktur ableitbar.<br />

Essenzielle Beschreibungen sind bewusst<br />

stark vereinfacht, abstrakt, technologieneutral<br />

und unabhängig von den Personen, die<br />

sie im Realfall implementieren. Die Essenz -<br />

beschreibungen werden für die identifizierten<br />

Prozesse in einem mit Abbildung 3 vergleichbaren<br />

Formular oder zunächst auf<br />

Flipcharts erstellt. Dabei müssen die<br />

Formularinhalte nicht vollständig erarbeitet<br />

werden. Sie werden teilweise noch später<br />

detaillierter betrachtet. Zunächst geht<br />

es darum, die Prozesse etwas näher kennenzulernen<br />

und sie grob voneinander ab -<br />

zugrenzen.<br />

Prozesse klassifizieren<br />

Anschließend klassifizieren die Workshop-<br />

Teilnehmer alle Prozesse nach zwei Achsen:<br />

1. Nach der Wichtigkeit für die Errei -<br />

chung des Projektziels.<br />

Gutfall-Modellierung vornehmen<br />

Nun beginnt die Modellierung der Prozesse<br />

selbst und die vorgestellten Model lierungs -<br />

techniken beginnen ihre Stärken auszuspielen.<br />

Alle in der Essenzbeschreibung enthaltenen<br />

Aktivitäten, Ereignisse und<br />

Ge schäfts objekte werden visualisiert. Postits<br />

wandern auf möglichst große Wand -<br />

flächen, Moderationskarten auf Pinn -<br />

wände. Ein erster Entwurf entsteht aus den<br />

Auslösern (= Startereignis), Ergebnissen<br />

(= Endereignis) und Essenzschritten (=<br />

Akti vitäten) der Essenzbeschreibung.<br />

Die Teilnehmer sammeln und benennen<br />

Aktivitäten und Ereignisse (eintretende<br />

bzw. auslösende Zustände). Um auszudrücken,<br />

wer für eine Aktivität des Pro -<br />

zesses verantwortlich ist, werden die<br />

Karten oder Post-its in entsprechend<br />

benannte Bahnen (Lanes) sortiert (zur<br />

Notation siehe Abbildung 2). Es ist ausreichend<br />

Platz zwischen den modellierten<br />

Elementen ratsam, um vielfache Neuarran -<br />

ge ments zu vermeiden: Die grafische<br />

Darstellung des Gutfalls kann neue Ak -<br />

tivitäten offensichtlich machen und die spätere<br />

Schlechtfall-Betrachtung ergänzt<br />

Verzweigungen, Ereignisse und eventuell<br />

auch weitere Aktivitäten.<br />

Nach dieser gemeinsamen Modellierung<br />

sind die wichtigsten Prozesse grafisch dokumentiert<br />

und die vor- und nachgelagerte<br />

Prozesse sind über die benötigten In- und<br />

Outputs ableitbar. Der Prozess würde in etwa<br />

so aussehen, wie in Abbildung 2 dargestellt.<br />

Review durchführen<br />

Mit ein wenig zeitlichem Abstand wird in<br />

einem weiteren Workshop ein Review der<br />

grob beschriebenen Prozesse vorgenommen.<br />

Bei jedem Prozess, der einem Review<br />

unterzogen wird, gibt ein Fachexperte (vorrangig<br />

jemand, der nicht an der initialen<br />

Beschreibung mitgewirkt hat) den Prozess<br />

anhand des Post-its-Modells in eigenen<br />

Worten wieder. Anschließend können An -<br />

24 25


schwerpunkt<br />

Abb. 3: Formular zur Essenzbeschreibung von Prozessen.<br />

passungen flexibel durch Umpositio -<br />

nierungen und Ergänzungen im physischen<br />

Modell durchgeführt werden.<br />

Gutfall-Modellierung<br />

korrigieren und erweitern<br />

Es folgen die Detaillierung und Erwei -<br />

terung des Post-it- oder des Kartenmodells.<br />

Der grobe Prozess wird durch gezielte<br />

Diskussionen des Schlechtfalls um Alterna -<br />

tiven, Ausnahmen und Kompensations -<br />

aktivitäten ergänzt. In unserem Beispiel aus<br />

Abbildung 2 werden etwa nach Schritt 5<br />

Prozesse mit niedriger Wertung zurückgestellt<br />

– ein alternativer Weg und ein<br />

Schlechtfall für die betroffenen Prozesse.<br />

Darüber hinaus wird nun am visualisierten<br />

Modell für alle deutlich, wo Verant -<br />

wortlichkeitsübergänge nötig sind und wo die<br />

Komplexität hoch ist. Auf dieser Basis kann<br />

entschieden werden, ob der Teil nehmerkreis<br />

für den nächsten Workshop erweitert wird,<br />

ob Teilprozesse ausgelagert oder unnötige<br />

Aktivitäten eingespart werden können.<br />

Detaillierte Prozesse ins Tool überführen<br />

Es hat sich bewährt, die Prozessmodelle<br />

eine gewisse Zeit für alle Beteiligten sichtbar<br />

hängen zu lassen. So können nötige<br />

Ergänzungen vorgenommen oder unklare<br />

Punkte geklärt werden. Ist der beschriebene<br />

Prozess einigermaßen stabil, beginnt die<br />

Überführung ins Modellierungswerkzeug.<br />

Sukzessive werden nun Organisations -<br />

struk turen (Prozessbeteiligte), Prozesse,<br />

Geschäftsobjekte (Entitäten), Regelwerke<br />

und weitere ausgestaltende Details im Tool<br />

erfasst. Gleichzeitig dient ein Abgleich zwischen<br />

bereits vorhandenen Modell elementen<br />

mit den neuen Modellinhalten der Überprüfung<br />

auf Wiederverwen dungs möglichkeiten.<br />

Die Beschreibungslogik im Tool unterstützt<br />

beim Angleichen der Lösung an Architekturoder<br />

Model lierungs vorgaben.<br />

Finales Review und Abnahme durchführen<br />

Die ins Tool überführten Modelle können<br />

dann im Zusammenhang betrachtet werden.<br />

Hierzu können bewusst Sichten auf<br />

Elemente der Unternehmensarchitektur<br />

gebildet werden. Zum Beispiel würde ein<br />

Blick auf den Sollprozess im Zusam -<br />

menspiel mit dem Organigramm inklusive<br />

konkreter Stellenbesetzung zeigen, ob<br />

Parallelisierungen möglich sind oder<br />

Engpässe entstehen könnten. Die Work -<br />

shop-Beteiligten nutzen Tool-Funktionen,<br />

um ein Review der Ergebnisse durchzuführen<br />

und diese abzunehmen.<br />

Weitere Verwendung der Modelle<br />

Die Modelle können nun im Model -<br />

lierungswerkzeug genutzt werden. Idealer -<br />

weise stehen sie allen Interessierten unternehmensweit<br />

zur Verfügung. Sichten und<br />

Ausschnitte (z. B. Abstraktionsebene für die<br />

Geschäftsführung) ermöglichen eine zielgruppengerechte<br />

Kommunikation. Modelle<br />

werden im Tool gewartet und aktualisiert,<br />

weiterentwickelt und möglichst auch versioniert.<br />

Die Stärken von Modellierungs -<br />

werkzeugen beginnen zu greifen.<br />

Fazit und Ausblick<br />

Bei der Erhebung und Analyse von Ge -<br />

schäftsprozessen sind Austausch, Dynamik<br />

und Übersicht sehr wichtig. Um dieser<br />

Tatsache Rechnung zu tragen, sollten Sie<br />

eine Umgebung schaffen, in der fachliche<br />

Fragen in den Vordergrund rücken,<br />

Interaktion gefördert wird und der Kontext<br />

immer sichtbar ist. Die vorgestellten alternativen<br />

Modellierungstechniken arbeiten in<br />

diese Richtung und verdrängen Tools aus<br />

den frühen Phasen der Modellierung.<br />

Haptische, anfassbare, physische Tech ni -<br />

ken, wie das Modellieren auf Whiteboard-<br />

Folie, bieten ein hohes Maß an Flexibilität. In<br />

gemeinsamen Workshops greifen die<br />

Beteiligten direkt ein und verwenden einen<br />

einfach erlernbaren, eingeschränkten No ta -<br />

tions-Wortschatz. In der Praxis kann man<br />

beobachten, dass die Akzeptanz gegenüber<br />

der Geschäftsprozess-Modellierung steigt,<br />

die Qualität der Prozesse verbessert wird und<br />

gleichzeitig die Erstellungsaufwände sinken.<br />

Der hier vorgestellte Modellierungs -<br />

prozess illustriert, wie diese Form der<br />

Modellierung abläuft und wie sich Modelle<br />

schließlich hin zum Tool entwickeln. Die<br />

Agilität der Modellierung wird durch einzelne<br />

Schritte des Prozesses erhöht: So<br />

fokussiert die Priorisierung Aufwände auf<br />

die wichtigen Unternehmensteile, direktes<br />

Feedback sorgt für stabilere Entwürfe und<br />

Fachexperten wenden die Analysemetho -<br />

den auch selbst an. Der Prozess wird iterativ<br />

durchlaufen und kann leicht verschlankt<br />

oder erweitert werden.<br />

Die in diesem Artikel beschriebenen<br />

Ideen haben wir in der Praxis erprobt und<br />

sie sollten mit dem vorliegenden Material<br />

ausprobiert werden können. In Kasten 2<br />

finden Sie weitere Hinweise für den Praxis -<br />

einsatz. Experimentieren Sie mit den<br />

Methoden und passen Sie den Prozess auf<br />

Ihr Unternehmen und Ihr Projekt an.<br />

Fangen Sie klein an – weniger formal bringt<br />

manchmal mehr Ergebnis.<br />

■<br />

Literatur & Links<br />

[OMG] Object Management Group (OMG),<br />

BPMN 2.0 Spezifikation, siehe:<br />

omg.org/spec/BPMN/2.0/<br />

[oos] BPM-Werkzeugliste, siehe:<br />

oose.de/nuetzliches/fachliches/bpm-werkzeuge<br />

[Nel11] R. Nelius, D. Slama, Enterprise BPM –<br />

Erfolgsrezepte für unternehmensweites Pro -<br />

zess management, dpunkt.verlag 2011<br />

[Nis08] V. Nissen, M. Seifert, Das Consulting<br />

C – Grundzüge eines Prozessreferenzmodells<br />

für Beratungsunternehmen, in: M. Bichler<br />

(Hrsg.), Proc. der Multikonferenz Wirtschafts -<br />

informatik, München, GITO-Verlag 2008<br />

[Sil11] B. Silver, BPMN Method & Style, Cody<br />

Cassidy Press 2011<br />

6/2012


Zur Vorgeschichte<br />

In BPMN modellierte Geschäftsprozesse<br />

können zwar erst direkt in Prozess-Engines<br />

ausgeführt werden, seit die Version 2.0 ein<br />

formales Metamodell in Form eines XML-<br />

Schemas vorgibt, das der Serialisierung der<br />

Diagramme dient. Tatsächlich wurde der<br />

Standard jedoch schon zuvor für die<br />

Prozessautomatisierung eingesetzt, beispielsweise<br />

2010 bei der 1&1 Internet AG:<br />

Dort wurde die Bestellabwicklung von<br />

DSL-Anschlüssen in BPMN modelliert und<br />

mit Hilfe einer Modelltransformation<br />

(Mapping) in die proprietäre Prozess -<br />

sprache von JBoss jBPM 3 überführt (vgl.<br />

[Cam-a]). Schon damals konnten nennenswerte<br />

Vorteile bei der Prozessabstimmung<br />

zwischen Fachabteilung und IT sowie im<br />

Rahmen des Prozessbetriebs auch innerschwerpunkt<br />

mehr zum thema:<br />

bpmn.info<br />

der autor<br />

BPMN 2.0:<br />

EINE ZWISCHENBILANZ<br />

Die Business Process Model and Notation (BPMN) 2.0 wurde im Januar 2011 verabschiedet.<br />

Die primäre Intention dieses Standards ist die Verbesserung der Abstimmung zwischen<br />

Business und IT bei der Entwicklung von Anwendungen für das Human-Workflow-Management<br />

und die Orchestrierung von (Web-)Services. Knapp zwei Jahre später ist es nun Zeit für eine<br />

Zwischenbilanz: Wo stehen wir in der Zusammenarbeit zwischen Business und IT, wenn es um<br />

die Automatisierung von Geschäftsprozessen mit BPMN geht?<br />

Jakob Freund<br />

(jakob.freund@camunda.com)<br />

ist Geschäftsführer der camunda services <strong>GmbH</strong><br />

und berät seine Kunden zu den Themen Business<br />

Process Management und BPMN. Er interessiert<br />

sich für Prozessarchitekturen, die sowohl die<br />

Organisation als auch die technische Umsetzung<br />

von Kernprozessen direkt unterstützen.<br />

Der Siegeszug von BPMN<br />

Obwohl die Business Process Model and<br />

Notation (BPMN) bereits 2002 entwickelt<br />

wurde, begann ihre eigentliche Verbreitung<br />

im Jahre 2005 mit der Adaption durch die<br />

Object Management Group (OMG), die<br />

unter anderem den UML-Standard verantwortet.<br />

Seitdem wurde sie weltweit von<br />

zahlreichen Unternehmen und Behörden<br />

aufgegriffen, wobei sie gerade in Deutsch -<br />

land erst relativ spät wahrgenommen wurde.<br />

Eine Ursache dürfte in der hierzulande<br />

traditionellen Dominanz der ereignisgesteuerten<br />

Prozesskette (EPK) sowie be -<br />

stimmter Tools für das organisatorische<br />

Prozessmanagement liegen, deren Her -<br />

steller eigene Notationen definiert haben<br />

und diese auch gern beibehalten hätten.<br />

Ungefähr im Jahr 2008 begann aber auch<br />

in Deutschland die Trendwende zu Gunsten<br />

der BPMN, nicht zuletzt, weil viele Unter -<br />

nehmen lieber einen global gültigen<br />

Standard für die Prozessmodellierung verwenden<br />

als die proprietäre Notation ir -<br />

gend eines Tool-Herstellers.<br />

halb der IT realisiert werden. Dieses Phä -<br />

no men beschränkte sich nicht auf die<br />

Prozessautomatisierung, sondern konnte<br />

auch allgemein in IT-Projekten beobachtet<br />

werden, wie beispielsweise dem Atlas-<br />

Projekt des Bundesministeriums der Finan -<br />

zen (vgl. [Cam-b]).<br />

Mit der Version 2.0 und der somit direkten<br />

Ausführbarkeit der Prozessmodelle<br />

waren dementsprechend große Hoffnungen<br />

verbunden, da die zuvor notwendigen<br />

Mappings nun entfielen und ein echter<br />

Roundtrip der Modelle zwischen Business<br />

und IT in greifbare Nähe rückte.<br />

Schleppende Umsetzung<br />

in den Engines<br />

Obwohl die Prozess-Engine-Anbieter IBM,<br />

Oracle und SAP selbst die drei hauptverantwortlich<br />

treibenden Kräfte hinter<br />

BPMN 2.0 waren, sollte es noch einige<br />

Monate dauern, bis sie den Standard in<br />

ihren eigenen Produkten überhaupt umge-<br />

setzt hatten. Andere große und weltweit<br />

relevante Anbieter von Prozess-Engines<br />

verweigern sich bis heute der BPMN und<br />

bleiben älteren Standards, wie z. B. der<br />

Business Process Execution Language<br />

(BPEL) und der XPDL (XML Process De -<br />

finition Language (XPDL), oder ihrer eigenen<br />

proprietären Prozessbeschrei bungs -<br />

sprache, treu.<br />

Aus Sicht dieser Hersteller ist das natürlich<br />

verständlich, aus Anwendersicht aber<br />

eher enttäuschend. Zwar muss man zugestehen,<br />

dass die Idee der einfachen Aus -<br />

tauschbarkeit von Prozess-Engines dank<br />

BPMN 2.0 ohnehin in der Praxis kaum realistisch<br />

ist: Dafür sind proprietäre Erwei -<br />

terungen des Standards in den jeweiligen<br />

Produkten aus unterschiedlichen und<br />

zumeist nachvollziehbaren Gründen zu<br />

häufig erforderlich. Trotzdem lohnt sich<br />

das Erlernen einer einheitlichen Aus -<br />

führungssprache: Einen guten Teil des<br />

Know-hows, das man für die Prozess -<br />

Abb. 1: Tool-Kette auf Basis von BPMN 2.0.<br />

26 27


schwerpunkt<br />

Abb. 2: Laufzeitinformationen für eine konkrete Prozessinstanz, eingeblendet in einem<br />

BPMN-Diagramm aus Adonis (der Prozess steht momentan in der Aufgabe<br />

„Rechnung klären“, erkennbar an der orangefarbenen Markierung).<br />

umsetzung in einem Produkt von Oracle<br />

aufbauen muss, kann man für die Auto -<br />

matisierung mit SAP Netweaver wiederverwenden.<br />

Sobald das Produkt jedoch eine<br />

andere Sprache spricht, muss man die<br />

Lernkurve in dieser Hinsicht komplett<br />

erneut durchlaufen.<br />

Auch deshalb ist es umso erfreulicher,<br />

dass neue Anbieter von Prozess-Engines<br />

den Markt betreten haben, die von Anfang<br />

an konsequent auf BPMN 2.0 setzen.<br />

Dabei hat sicher auch das Open-Source-<br />

Projekt „Activiti“ (vgl. [Act]) unterstützt,<br />

das eine native BPMN-2.0-Engine enthält<br />

und in unterschiedliche kommerzielle<br />

Produkte integriert wurde.<br />

Erfreuliche Umsetzung in den<br />

Modellierungswerkzeugen<br />

Der Markt für Modellierungswerkzeuge ist<br />

schon weiter. Mittlerweile haben die meis -<br />

ten etablierten Hersteller BPMN in ihren<br />

Produkten berücksichtigt. An dieser Stelle<br />

hat tatsächlich das marktwirtschaftliche<br />

Prinzip gewirkt: Manch ein Anbieter war<br />

zunächst wenig begeistert von BPMN, hat<br />

dann aber notgedrungen die Unter stützung<br />

umgesetzt, da sie in Ausschrei bungen und<br />

Kundenanfragen immer häufiger zum<br />

K.O.-Kriterium wurde.<br />

Mittlerweile kann man als Kunde also aus<br />

einer breiten Palette von BPMN-Werk zeugen<br />

wählen, die sowohl als Open-Source bzw. als<br />

Freeware als auch zu kleinen und großen<br />

Lizenzpreisen von bis zu sechsstelligen<br />

Beträgen verfügbar sind. Damit einher geht<br />

ein größerer und besser funktionierender<br />

Markt für Beratungs- und<br />

Schulungsleistungen: Dem BPMN-Exper ten<br />

ist es egal, mit welchem Tool der Kunde<br />

arbeitet. Er kann auf jedem Produkt schulen<br />

und beraten, das BPMN ordentlich unterstützt.<br />

Dementsprechend zahlreich sind mittlerweile<br />

auch die Informa tions quellen im<br />

Internet sowie die Bücher, Beratungs- und<br />

Seminarangebote zu BPMN. Der damit verbundene<br />

zunehmende Qualitäts- und<br />

Preiswettbewerb dürfte schlussendlich<br />

wiederum dem Kunden zu Gute kommen.<br />

In Bezug auf die angestrebte verbesserte<br />

Abstimmung zwischen Business und IT spielt<br />

die Kombinierbarkeit von Model -<br />

lierungswerkzeugen und Prozess-Engines<br />

eine besondere Rolle. Im Idealfall können<br />

Business-Analysten, Requirements-Engi -<br />

neers, Product Owner und andere Akteure<br />

mit einem intuitiv bedienbaren Werkzeug<br />

den Soll-Prozess modellieren und die Ent -<br />

wickler können dieses Modell in der<br />

Entwicklungsumgebung ihrer Prozess-En -<br />

gine direkt übernehmen und in die technische<br />

Ausführung bringen (siehe Abbil dung 1).<br />

Wenn dabei Änderungen des Prozessmodells<br />

erforderlich werden, können diese sofort in<br />

das fachliche Model lierungswerkzeug zurükkgespielt<br />

und bei Bedarf durch den Vertreter<br />

der Fachseite geprüft und freigegeben werden.<br />

Diese Kombination aus Forward- und<br />

Reverse-Engineering wird in der BPM-Welt<br />

auch als Roundtrip bezeichnet. Ein guter Teil<br />

der Idee hinter BPMN 2.0 basiert auf der<br />

Ambition, diesen Roundtrip praktisch zu<br />

verwirklichen.<br />

Auch hier fällt die Bilanz in Bezug auf die<br />

größeren Hersteller eher ernüchternd aus:<br />

Ein vollständiger BPMN-Roundtrip mit<br />

einem wirklich businesstauglichen Tool einerseits<br />

und einer entwicklerfreundlichen<br />

Umgebung andererseits ist bislang nicht in<br />

Sicht. Dabei wäre das technisch gar nicht so<br />

schwierig und es wurde bereits demons triert,<br />

wie eine BPMN-2.0-Prozess-Engine mit acht<br />

unterschiedlichen BPMN-Model lierungs -<br />

werk zeugen gekoppelt werden kann, darunter<br />

so bekannte Werkzeuge wie „BOC Ado -<br />

nis“ oder „Enterprise Archi tect“ (vgl.<br />

[BPM-a]). Dabei ist es sogar möglich, die<br />

Historie für eine durchlaufene Prozessinstanz<br />

inklusive der Laufzeitin for ma tionen, wie z.<br />

B. der Durchlaufzeit für einzelne Aufgaben,<br />

direkt im Diagramm des fachlichen Werk -<br />

zeugs einzublenden (siehe Abbildung 2).<br />

Anforderungen an die<br />

Betriebsorganisation<br />

Mit der Popularität von BPMN nahm<br />

naturgemäß auch die Anzahl ihrer Kritiker<br />

Abb. 3: Dieses Diagramm sieht einfach aus, ist aber missverständlich.<br />

6/2012


zu. Ein häufiges Argument gegen den<br />

Standard ist die Komplexität der Notation:<br />

Über 60 unterschiedliche Symbole sind darin<br />

enthalten und man darf natürlich be -<br />

zweifeln, dass der durchschnittliche Fach -<br />

anwender, beispielsweise im Vertrieb oder<br />

in der Buchhaltung, all diese Symbole erlernen<br />

wird. Mittlerweile hat sich aber die<br />

Erkenntnis durchgesetzt, dass genau dieser<br />

Fachanwender erstens tatsächlich zugänglicher<br />

für viele Symbole ist, als zunächst<br />

angenommen, und zweitens die gesamte<br />

Palette auch gar nicht kennen muss, um<br />

von BPMN zu profitieren.<br />

Das folgende Prozessfragment verdeutlicht<br />

das: Ein eingegangener Antrag wird<br />

geprüft. Wenn der Antrag in Ordnung ist,<br />

wird er angenommen, ansonsten abgelehnt.<br />

Außerdem soll, wenn sich die Prüfung länschwerpunkt<br />

Abb. 4: Eine EPK-Version des<br />

Diagramms aus Abbildung 3.<br />

ger hinzieht, die entstehende Verzögerung<br />

nach fünf Tagen gemeldet werden, damit<br />

der Vorgang eskaliert werden kann. Wenn<br />

man diesen Prozess modelliert und sich<br />

dabei auf diejenigen Symbole der BPMN<br />

beschränkt, die man auch aus anderen<br />

Notationen kennt, besteht eine gute<br />

Chance, dass ein Diagramm wie in<br />

Abbildung 3 dabei herauskommt. Zum<br />

Vergleich zeigt Abbildung 4 eine traditionelle<br />

EPK, die nach demselben Prinzip aufgebaut<br />

ist.<br />

Diese Modelle erscheinen zunächst einfach,<br />

da die verwendeten Symbole mehr<br />

oder weniger allgemein bekannt sind.<br />

Jedoch ist die Semantik weder korrekt noch<br />

eindeutig nachvollziehbar: Den Modellen<br />

zufolge würde, wenn die Antragsprüfung<br />

fünf Tage oder länger dauert, diese Ver -<br />

zögerung erst nach abgeschlossener<br />

Prüfung gemeldet werden. Wir könnten<br />

also den Antrag auch 100 Tage lang prüfen<br />

– eine Verzögerung wird stets erst gemeldet,<br />

wenn die Prüfung abgeschlossen ist.<br />

Wir könnten das Ganze umbauen, um der<br />

gewünschten Semantik näher zu kommen,<br />

werden diese aber nie ganz erreichen,<br />

zumindest nicht ohne eine größere Anzahl<br />

von Symbolen hinzuzuziehen und damit<br />

das Diagramm schlussendlich wieder un -<br />

übersichtlich zu machen.<br />

In Abbildung 5 sehen wir, wie wir die<br />

gewünschte Semantik relativ elegant erreichen<br />

können. Wir benutzen dazu ein angeheftetes<br />

Zeitereignis, das als „nicht unterbrechend“<br />

markiert ist (gestrichelte Linie).<br />

Jetzt drücken wir aus, dass nach fünf Tagen<br />

eine Verzögerung gemeldet wird, wenn die<br />

Antragsprüfung entsprechend lange dauert<br />

(und auch nur dann). Die Antragsprüfung<br />

wird nicht abgebrochen, sondern parallel<br />

zur Verzögerungsmeldung fortgesetzt. Wir<br />

Abb. 5: Das Zeitereignis markiert eindeutig, unter welchen Umständen eine<br />

Verzögerung gemeldet wird.<br />

haben die Erfahrung gemacht, dass auch<br />

Fachanwender ohne BPMN-Kenntnisse diese<br />

Darstellung relativ schnell verinnerlichen<br />

und auf andere Prozessfragmente anwenden<br />

können, denn tatsächlich handelt es sich<br />

hierbei um ein Muster, das in den unterschiedlichsten<br />

Prozessen immer wiederkehrt.<br />

Ganz nebenbei ist dieses Diagramm nicht<br />

nur eindeutig interpretierbar, sondern in<br />

einer BPMN-2.0-Prozess-Engine auch noch<br />

direkt ausführbar. In der EPK haben wir eine<br />

solche Form der Modellierung überhaupt<br />

nicht zur Verfü gung.<br />

Das Beispiel ist nur die Spitze des<br />

Eisbergs: Es gibt zahlreiche Modellierungs -<br />

muster dieser Art, deren Existenz den meis -<br />

ten Interessierten zunächst gar nicht<br />

bewusst ist, die aber den eigentlichen Wert<br />

von BPMN in der Praxis ausmachen. Hier<br />

wird auch deutlich, dass BPMN tatsächlich<br />

ein starkes Umdenken erfordert, wenn man<br />

bislang mit älteren Prozessnotationen wie<br />

der EPK gearbeitet hat. Insofern ist es nicht<br />

überraschend, dass EPK-Kenner häufig<br />

größere Schwierigkeiten haben, BPMN zu<br />

verinnerlichen, als Menschen, die noch<br />

überhaupt keine Erfahrung in der Prozess -<br />

modellierung haben. Im schlimmsten Fall<br />

mussten wir feststellen, dass leidenschaftliche<br />

EPK-Anhänger BPMN anders anwenden<br />

als eigentlich gedacht, damit sie ihre<br />

bisherigen Denkmuster nicht aufgeben<br />

mussten. Ein schönes Beispiel hierfür ist die<br />

„Prozess-Schnittstelle“ in der EPK, die eine<br />

Verknüpfung von zwei Prozessen im Sinne<br />

eines Vorgängers und Nachfolgers ermöglicht.<br />

Das Konzept widerspricht fundamental<br />

den zentralen BPMN-Denkmustern, die<br />

eine solche Beziehung nur entweder als<br />

einen sequenziellen Aufruf von zwei<br />

Teilprozessen innerhalb eines Ober -<br />

prozesses begreifen würden oder als eine<br />

Kollaboration zweiter autonomer Prozesse,<br />

die über Nachrichtenflüsse miteinander<br />

kommunizieren.<br />

Insgesamt kann man festhalten, dass<br />

BPMN zwar die Abstimmung zwischen<br />

Fach- und IT-Seite wesentlich verbessern<br />

kann, dies aber auch das Meistern einer<br />

steilen Lernkurve auf Seiten der Prozess -<br />

modellierer bedingt. Das gilt wohlgemerkt<br />

für die Ersteller, nicht für die Betrachter der<br />

Prozessmodelle. Ein guter Prozessmodel -<br />

lierer ist in der Lage, mit BPMN sehr aussagekräftige,<br />

häufig direkt ausführbare<br />

BPMN-Diagramme zu erstellen, die trotzdem<br />

auch von BPMN-unkundigen Fach an -<br />

wendern schnell verstanden und korrekt<br />

interpretiert werden können.<br />

28 29


schwerpunkt<br />

Abb. 6: Ein „Two-Phase-Commit“, modelliert in BPMN (Quelle: Daniel Meyer,<br />

camunda).<br />

Neue technische Patterns<br />

Da BPMN eine vom konkreten Soft -<br />

wareprodukt unabhängige Sprache ist,<br />

wird sie auch zunehmend zu einem beliebten<br />

Vehikel für Architekturdiskussionen in<br />

der IT-Community:<br />

■<br />

■<br />

■<br />

In seiner Dissertation hat beispielsweise<br />

Volker Stiehl die Umsetzung der be -<br />

kannten EAI-Workflow-Patterns mit<br />

BPMN und Prozess-Engines beleuchtet<br />

(vgl. [Sti11]).<br />

Bernd Rücker schlägt eine konkrete<br />

Umsetzung des UI-Mediator-Patterns<br />

zur Kombination von Masken- und<br />

Prozessflüssen in Prozess-Engines vor<br />

(vgl. [BPM-b]).<br />

Daniel Meyer modelliert mögliche<br />

Strategien zur Sicherung der Trans -<br />

aktionssicherheit in BPMN und<br />

beschreibt ihre Konsequenzen für Pro -<br />

zess anwendungsarchitekturen (siehe<br />

Abbildung 6 bzw. [BPM-c]).<br />

Obwohl diese und viele weitere Diskus -<br />

sionsteilnehmer aus unterschiedlichen Kon -<br />

texten stammen und verschiedene<br />

Software produkte kennen, sprechen sie<br />

doch mit BPMN alle eine gemeinsame<br />

Sprache und können auf diese Weise ihr<br />

Wissen weitergeben, ihre Erfahrungen austauschen<br />

und neue Lösungsansätze miteinander<br />

diskutieren.<br />

Verfeinerungen funktionieren<br />

nur selten<br />

In der Lehre und Praxis dominiert bis heute<br />

eine etwas problematische Vorstellung<br />

davon, wie man von einem fachlichen zu<br />

einem technischen Prozessmodell gelangen<br />

kann: Dieser zufolge beschreibt man einen<br />

Geschäftsprozess zunächst nur grob und<br />

verfeinert ihn dann über Teil- oder Unter -<br />

prozesse (in BPMN Sub Processes), bis man<br />

einen Detaillierungsgrad erreicht hat, der<br />

eine direkte Ausführung in einer Prozess-<br />

Engine erlaubt. Während also die unteren<br />

Ebenen des Modells technisch verwertet<br />

werden, können die oberen Ebenen als<br />

Dokumentation für Mitarbeiter oder<br />

Auditoren dienen.<br />

Dieses auf den ersten Blick sehr plausible<br />

Vorgehen wird inzwischen seit fast zehn<br />

Jahren empfohlen – und doch gibt es so gut<br />

wie keine Beispiele aus realen Projekten, in<br />

denen es tatsächlich funktioniert hat (ich<br />

kann das zwar nicht empirisch belegen,<br />

beschäftige mich aber seit 2004 mit dem<br />

Thema und beziehe hier insofern Stellung<br />

aus meiner eigenen Sicht). Wo liegt das<br />

Problem? Zusammengefasst gibt es – ganz<br />

unabhängig von BPMN – zwei Ursachen:<br />

1. Eine konsistente Verfeinerung ist häufig<br />

schon auf fachlicher Ebene schwierig<br />

und beim Übergang in die technische<br />

Umsetzung so gut wie unmöglich.<br />

2. Das ausführbare Prozessmodell ist<br />

nicht nur die technische Abbildung<br />

fachlicher Anforderungen, sondern<br />

selbst ebenfalls ein fachlicher Artefakt<br />

und darf daher nicht nur von Ent -<br />

wicklern determiniert werden.<br />

Um den ersten Punkt zu verdeutlichen,<br />

betrachten wir einen typischen End-to-<br />

End-Prozess, den Rechnungseingang in<br />

Abbildung 7, auf grober Ebene. Das Pro -<br />

blem ergibt sich, wenn wir diesen Prozess<br />

verfeinern wollen, um bestimmte Details<br />

aufzunehmen. Beispielsweise wird die Ge -<br />

schäftsführung nicht jede Rechnung sofort<br />

bezahlen, die genehmigt wurde. Nehmen<br />

wir an, sie macht nur einmal pro Monat,<br />

z. B. zum Monatsende, einen Sammel -<br />

Nutzen Sie Ihre Chance!<br />

Werden Sie Teil des OIO-Teams.<br />

täglicher Austausch mit<br />

Technologie-Begeisterten<br />

ständige<br />

Weiterbildung<br />

Verantwortung<br />

anspruchsvolle<br />

Entwicklungsprojekte<br />

hausinternes<br />

Schulungsprogramm<br />

fl exible<br />

Arbeitszeitgestaltung<br />

Wir sind das Expertenhaus für die Softwareentwicklung mit Java, XML und Open<br />

Source in Mannheim und suchen zur Festanstellung:<br />

+ Java Experte (m/w)<br />

+ Java Consultant (m/w)<br />

+ Java Senior Consultant (m/w)<br />

+ Atlassian Consultant (m/w)<br />

Sie arbeiten in einem hochmotivierten Expertenteam mit wenig Bürokratie und<br />

bringen sich von Anfang an aktiv in die Geschäftsprozesse mit ein. Dazu zählt<br />

die Mitwirkung bei anspruchsvollen Entwicklunsprojekten bei uns vor Ort und bei<br />

unseren namhaften internationalen und nationalen Kunden.<br />

Als Consultant sind Sie in unseren drei Geschäftsbereichen als Trainer, Berater<br />

und Entwickler tätig und betreiben regelmäßig Forschung und Weiterbildung.<br />

Sie fühlen sich angesprochen?<br />

Dann senden Sie uns Ihre Bewerbung per Email an work@oio.de<br />

Weitere Informationen fi nden Sie unter www.oio.de.<br />

) Schulung )<br />

) Beratung ) ) Entwicklung )<br />

OIO - Orientation in Objects <strong>GmbH</strong> I Weinheimer Str. 68 I 68309 Mannheim I Tel. +49 621 71839-0 I Fax +49 621 71839-50 I info@oio.de I www.oio.de


schwerpunkt<br />

Abb. 7: Der Prozess „Rechnungseingang“, grob beschrieben.<br />

durchlauf, um alle aufgelaufenen Rech -<br />

nungen zu bezahlen. Dieser Umstand ist<br />

gewissermaßen eine Detailinformation<br />

(Wie erledigt die Geschäftsführung die<br />

Aufgabe „Rechnung bezahlen?“), aber wir<br />

können sie in diesem Diagramm nicht sauber<br />

und präzise beschreiben. Natürlich<br />

könnten wir irgendeinen Hinweis hineinsetzen,<br />

eine Textanmerkung an der Auf -<br />

gabe „Rechnung bezahlen“ zum Beispiel.<br />

Aber wir wollen ja den Ablauf insgesamt<br />

verfeinern, um ihn im Ergebnis so detailliert<br />

zu beschreiben, dass eine Prozess-<br />

Engine ihn ausführen kann, soweit das<br />

sinnvoll ist. Mit diesem Prozessmodell ist<br />

das jedoch unmöglich: Es beschreibt genau<br />

einen Vorgang (eine Rechnung) und für<br />

jede Rechnung wird die Aufgabe „Rech -<br />

nung bezahlen“ ausgeführt. Es ist unmöglich,<br />

in dieses Modell z. B. einen Teilprozess<br />

„Rechnungen bezahlen“ einzufügen, der<br />

erst am Monatsende ausgeführt wird.<br />

Besser ausgedrückt, wäre es sogar möglich,<br />

aber dieser Teilprozess würde genauso oft<br />

ausgeführt, wie es eingehende Rechnungen<br />

gibt, d. h. bei 20 Rechnungen pro Monat<br />

wird am Monatsende zwanzigmal der<br />

Teilprozess „Rechnungen bezahlen“ ausgeführt,<br />

was wohl kaum im Sinne des<br />

Erfinders wäre. Dieses Prinzip ist nicht verhandelbar<br />

und es gilt auch nicht erst, seit es<br />

BPMN gibt. Dahinter steckt das Paradigma<br />

des Tokens, das nach einem eindeutig definierten<br />

Schema durch ein Prozessmodell<br />

läuft, egal ob es sich dabei um BPMN, EPK<br />

oder eine andere „kontrollflussbasierte<br />

Notation“ handelt (vgl. [All09]).<br />

Ein weiteres Problem auf dem Weg zum<br />

ausführbaren Modell betrifft die Unter -<br />

scheidung zwischen dem „menschlichen“<br />

und dem „technischen“ Fluss. Beginnen wir<br />

mit der Annahme, dass der oben dargestellte<br />

Prozess durch einen Workflow unterstützt<br />

werden soll. Wir können die dargestellten<br />

Aufgaben typisieren, um dar zu stellen, ob<br />

eine Aufgabe manuell (eine Hand), als User-<br />

Task (ein Torso) oder als Service-Task<br />

(Zahnräder) ausgeführt wird. Manuelle<br />

Aufgaben werden unabhängig von der<br />

Prozess-Engine von Menschen erledigt,<br />

User-Tasks sind Aufgaben, die ein Anwender<br />

von der Prozess-Engine in seiner Aufgaben -<br />

liste zugeordnet bekommt und dann erledigt<br />

(typisches Human-Work flow-Management<br />

also), und Service-Tasks werden direkt von<br />

der Prozess-Engine ausgeführt, indem diese<br />

eine Schnittstelle aufruft.<br />

Während die Prozess-Engine sowohl<br />

User- als auch Service-Tasks interpretiert,<br />

überspringt sie manuelle Aufgaben während<br />

der Ausführung. Wir kommen aber in<br />

Verlegenheit, sobald wir innerhalb eines<br />

Prozesses Entscheidungspunkte in Form<br />

von Gateways haben, die mal von einem<br />

Menschen und mal von einer Prozess-<br />

Engine interpretiert werden sollen.<br />

In dem in Abbildung 8 gezeigten Prozess<br />

soll die Team-Assistenz eine erhaltene<br />

Rechnung noch vor dem Scannen darauf<br />

prüfen, ob sie bestimmten Anforderungen<br />

genügt (z. B. ob sie eine vollständige An -<br />

schrift enthält). Tut sie das nicht, muss eine<br />

neue Rechnung angefordert werden. Nur<br />

wenn die Rechnung in Ordnung ist, wird<br />

sie gescannt und damit der technische<br />

Workflow in Gang gesetzt. Das in Abbil -<br />

dung 8 gezeigte Beispiel kann so nicht in<br />

eine Prozess-Engine „deployed“ werden:<br />

Abb. 8: Die Rechnung wird manuell geprüft, bevor der Workflow starten soll.<br />

30 31


schwerpunkt<br />

Abb. 9: Menschliche und technische Abläufe im Zusammenspiel<br />

(Kollaborationsdiagramm).<br />

Während die Engine die beiden rechten<br />

Gateways interpretieren soll, um den Fluss<br />

zu steuern, wird erwartet, dass sie das erste<br />

Gateway ignoriert (zumal ein technischer<br />

Prozess ja auch noch gar nicht gestartet<br />

wurde). Ein Prozessfluss kann jedoch nur<br />

entweder von einer Maschine (Prozess-<br />

Engine) oder von einem Menschen kontrolliert<br />

werden, was auch für jede Verfei -<br />

nerung des Flusses gilt.<br />

Eine mögliche Lösung dieses Problems ist<br />

in Abbildung 9 dargestellt. In diesem<br />

Kollaborationsdiagramm gibt es drei so<br />

genannte Pools, in denen jeweils ein Pro -<br />

zess enthalten ist. Der oberste Prozess<br />

beschreibt das Verhalten der Team-Assis -<br />

tenz, der mittlere Pool beschreibt den technischen<br />

Workflow in der Prozess-Engine<br />

und der unterste zeigt, dass die Ge -<br />

schäftsführung am Monatsende alle fälligen<br />

Überweisungen ausführen wird. Mit<br />

dieser strikten Trennung von menschlichen<br />

und technischen Flüssen können wir den<br />

Prozess in Gänze betrachten, analysieren<br />

und diskutieren und ihn gleichzeitig konsis -<br />

tent und direkt in der Prozess-Engine<br />

umsetzen, denn der mittlere Pool ist tatsächlich<br />

ohne Transformation genauso<br />

ablauffähig, wie er hier dargestellt wird.<br />

In dem Beispiel wird auch der zweite<br />

oben angeführte Grund für die Schwäche<br />

Literatur & Links<br />

des Verfeinerungsparadigmas deutlich: Der<br />

Schritt „PDF archivieren“ wird automatisch<br />

ausgeführt, kein Anwender ist daran<br />

direkt beteiligt. Dass diese Datei archiviert<br />

wird, ist aber nicht etwa der Wunsch eines<br />

Softwareentwicklers, sondern eine fachliche<br />

Anforderung. Sie muss also von der<br />

Fachseite kommen, obwohl im mittleren<br />

Pool doch scheinbar „nur“ die technische<br />

Umsetzung beschrieben wird. Es ist<br />

schlichtweg nicht möglich, das gezeigte<br />

Kollaborationsdiagramm in einem gröberen<br />

Diagramm zusammenfassen, ohne größere<br />

Fehler im Token-Fluss in Kauf zu nehmen.<br />

Das ist in der Praxis jedoch weniger<br />

kritisch, als häufig angenommen wird.<br />

Tatsächlich basiert unser methodisches<br />

Framework zur Anwendung der BPMN,<br />

das im „Praxishandbuch BPMN“ (vgl.<br />

[Fre12]) beschrieben wird, auf genau dieser<br />

Erkenntnis. Nichtsdestotrotz wird er -<br />

kennbar, dass einige grundsätzliche Para -<br />

digmen, die bislang in der Welt der<br />

Prozessmodellierung galten, möglicherweise<br />

infrage gestellt werden müssen.<br />

Fazit<br />

BPMN wird von vielen Unternehmen verschiedenster<br />

Branchen sowie im öffentlichen<br />

Dienst genutzt und ist in zahlreichen<br />

Produkten implementiert. Als Kommunika -<br />

tionsvehikel zwischen Business und IT<br />

konnte sich der Standard trotz der zum Teil<br />

verzögerten Umsetzung durch die Soft -<br />

warehersteller bereits bewähren. Nicht s -<br />

destotrotz befinden wir uns noch in einer<br />

frühen Phase der Lernkurve und jede<br />

gewonnene Erkenntnis wirft neue Fragen<br />

auf dem jeweils nächsthöheren Niveau auf.<br />

Insgesamt gibt es aber bereits ein großes<br />

Ökosystem an Softwareherstellern, Bera -<br />

tern, Anwendern und Wissenschaftlern, in<br />

dem konkrete Lösungsansätze für das<br />

Prozessmanagement sowohl für die fachliche<br />

Prozessorganisation als auch für die<br />

technische Prozessumsetzung auf Basis von<br />

BPMN intensiv entwickelt, diskutiert und<br />

getestet werden. Unterm Strich darf BPMN<br />

insofern schon aus heutiger Sicht als eine<br />

Erfolgsgeschichte bewertet werden, die<br />

einen wichtigen Beitrag zur Weiterent -<br />

wicklung der Informatik leistet. ■<br />

[Act] Activiti, Activiti BPM Platform, siehe: Activiti.org<br />

[All09] T. Allweyer, BPMN 2.0, Books On Demand, 2009<br />

[BPM-a] BPM-Guide.de, BPMN 2.0 funktioniert, siehe: bpm-guide.de/2012/06/18/bpmn20-works/<br />

[BPM-b] BPM-Guide.de, Page-Flow vs. Process-Flow – how a UI Mediator might help, siehe: bpmguide.de/2012/04/04/pageflow-vs-process-flow-and-ui-mediator-pattern<br />

[BPM-c] BPM-Guide.de, Where is the „retry” in BPMN 2.0, siehe:<br />

bpm-guide.de/2012/06/15/where-is-the-retry-in-bpmn-2-0/<br />

[Cam-a] camunda, Prozessautomatisierung mit BPMN und Open Source, siehe:<br />

camunda.com/references/1&1_de.pdf<br />

[Cam-b] camunda, Prozessmodellierung und IT-Spezifikation mit BPMN 2.0, siehe:<br />

camunda.com/references/bmf_de.pdf<br />

[Fre12] J. Freund, B. Rücker, Praxishandbuch BPMN, Carl Hanser Verlag 2012<br />

[Sti11] V. Stiehl, Systematisches Konstruieren von Verbundanwendungen unter Verwendung von<br />

BPMN, TU Darmstadt 2011, siehe: tuprints.ulb.tu-darmstadt.de/2751/1/verbundanwendungen.pdf<br />

6/2012


schwerpunkt<br />

mehr zum thema:<br />

hypersenses.com<br />

die autorin<br />

VOM SCHUSTER MIT<br />

DEN GERADEN ABSÄTZEN:<br />

DIE LÖSUNG DES<br />

MDD-PARADOXONS<br />

Generatoren und domänenspezifische Sprachen (DSLs) stellen zusammen mit Modellen zwar<br />

die zentralen Elemente der modellgetriebenen Entwicklung dar, sie selber werden aber mit den<br />

herkömmlichen Methoden paradoxerweise nicht modellgetrieben entwickelt. Daraus resultiert,<br />

dass die Generator- und DSL-Entwicklung als zeitaufwändige und fehleranfällige Geheimwissen -<br />

schaft gilt. In diesem Artikel stelle ich eine Lösung vor, mit der dieses Paradoxon behoben werden<br />

kann und Aufwand und Komplexität deutlich reduziert werden können.<br />

Dr. Daniela Schilling<br />

(dschilling@d-s-t-g.com)<br />

ist bei Delta Software Technology als<br />

Programm-Manager mit dem Schwerpunkt<br />

generative Entwicklung tätig.<br />

Modelle und modellgetriebene Methoden<br />

haben erfolgreich Einzug in die Software -<br />

entwicklung gehalten. Sie gelten als<br />

Garanten für Qualität, Effizienz und gute<br />

Wartbarkeit, insbesondere wenn ähnliche<br />

Aufgaben mehrfach gelöst werden müssen.<br />

Das Lösen ähnlicher Aufgaben entspricht<br />

dem Standardfall in der Softwareent -<br />

wicklung. Beispiele dafür sind Funktionen<br />

oder (Teil-)Anwendungen, die im Rahmen<br />

einer neuen Anwendung mit Anpassungen<br />

wiederverwendet werden, für mehrere<br />

Kunden in unterschiedlichen Ausprägun -<br />

gen verfügbar sein sollen, kontextabhängig<br />

unterschiedliche Ausprägungen zeigen oder<br />

für verschiedene Plattformen zur Verfü -<br />

gung gestellt werden sollen.<br />

Ein Sprichwort besagt, dass der Schuster<br />

zwar die Schuhe anderer Leute flickt, selbst<br />

aber schiefe Absätze trägt. Ähnlich verhält<br />

es sich mit Generatoren und DSLs.<br />

Die Grundlage für die modellgetriebene<br />

Entwicklung stellen – neben den Modellen<br />

– Generatoren und domänenspezifische<br />

Sprachen (Domain Specific Languages,<br />

DSLs) dar. Dabei gibt es zwei Mög -<br />

lichkeiten, das Thema Generator und DSL<br />

zu handhaben:<br />

Vorgehensweise besteht darin, dass die<br />

Generatoren und DSLs maßgeschneidert<br />

für eine bestimmte Aufgaben -<br />

stellung entwickelt werden und so ein<br />

höherer Abstraktionsgrad erreicht werden<br />

kann.<br />

Bei der Entwicklung individueller Genera -<br />

toren und DSLs mit herkömmlichen Me -<br />

tho den, wie z. B. Template-basierten Ansät -<br />

zen (ein Beispiel zeigt Abbildung 1), gilt es,<br />

mehrere Hürden zu nehmen: Der Genera -<br />

tor muss Daten aus einer Konfiguration,<br />

also der Beschreibung, wie der Generator<br />

parametrisiert werden soll, auslesen. Die<br />

dazu notwenige Navigation muss manuell<br />

entwickelt werden. Auf der anderen Seite<br />

muss dafür gesorgt werden, dass die<br />

Konfiguration alle Informationen bereithält,<br />

die der Generator erwartet – und das<br />

sowohl in der vom Generator erwarteten<br />

Art und Weise, als auch an exakt der korrekten<br />

Stelle. Sollen der Generator oder die<br />

DSL, mittels der die Konfigurationen<br />

beschrieben werden, verändert werden,<br />

wirkt sich dies oft auch auf den jeweils<br />

anderen Part aus.<br />

Die Spezifikation oder Implementierung<br />

eines Generators besteht in den meisten<br />

Ansätzen aus einer Beschreibung des zu<br />

generierenden Codes, einer Beschreibung,<br />

wie die Codeanteile zusammenzufügen<br />

sind, und verschiedenen Berechnungs vor -<br />

schriften. Da diese drei Bestandteile bei<br />

derartigen Ansätzen nicht strikt voneinander<br />

getrennt, sondern stark miteinander<br />

verwoben sind, ist die Spezifikation nur<br />

schwer les- und wartbar. Soll der generierte<br />

Code für Entwickler gut lesbar sein und<br />

vielleicht auch noch vorhandene Unterneh -<br />

■<br />

■<br />

Zum einen besteht die Möglichkeit, vorgefertigte,<br />

universelle Generatoren und<br />

DSLs zu verwenden. Ein Beispiel dafür<br />

sind die vielen Generatoren, die Java-<br />

Code aus UML-Modellen erzeugen.<br />

Die zweite Möglichkeit besteht darin,<br />

Generatoren und DSLs individuell zu<br />

entwickeln. Der Vorteil dieser zweiten<br />

1<br />

)Das hier verwendete Beispiel wurde von Mykola<br />

Dobrochynskyy in DotNetPro Ausgabe 02/2011 vorgestellt.<br />

Abb. 1: Template-basierte Spezifikation eines Generators 1 ).<br />

32 33


schwerpunkt<br />

Für den bereits erwähnten Schuster ist es<br />

klar, was er tun muss, um zu ordentlichen<br />

Schuhen mit geraden Absätzen zu kommen.<br />

Er muss nur seine eigenen Schuhe<br />

genauso behandeln wie die seiner Kunden.<br />

Ähnlich muss man auch mit dem MDD-<br />

Paradoxon verfahren. Deshalb schlage ich<br />

eine modellgetriebene Entwicklung von<br />

Generatoren und DSLs vor, mit der die<br />

zuvor aufgeführten Hürden beseitigt werden<br />

können.<br />

Abb. 2: Schematische Darstellung des Konzepts.<br />

Modellgetriebene Entwicklung<br />

von Generatoren und DSLs<br />

Ein Generator wird immer dann benötigt,<br />

wenn Varianten eines Systems oder eines<br />

Teil systems entwickelt werden, also eine<br />

System familie gebildet werden soll. Dabei<br />

sollen neue Aufgaben einmal gelöst und<br />

mensrichtlinien zur Programmierung erfüllen,<br />

ist zusätzlicher Aufwand erforderlich.<br />

Die Entwicklung einer DSL, die zum<br />

Generator passt und darüber hinaus zu<br />

einem späteren Zeitpunkt noch erweiterbar<br />

ist, setzt viel Erfahrung in der Entwicklung<br />

von Grammatiken voraus. Soll diese DSL<br />

nicht nur von ihren Entwicklern, sondern<br />

auch von weiteren Personen verwendet<br />

werden, ist ein hoher Einarbeitungs -<br />

aufwand erforderlich. Aus diesen und weiteren<br />

Gründen gilt die Entwicklung von<br />

Generatoren und DSLs als fehleranfällige<br />

Geheimwissenschaft, für die erfahrene<br />

Entwickler und viel Zeit erforderlich sind.<br />

Hinzu kommt ein großer initialer<br />

Entwicklungsaufwand für Generator und<br />

DSL, bevor sie in Betrieb genommen, getes -<br />

tet oder in den übrigen Entwicklungs pro -<br />

zess integriert werden können. Das passt<br />

aber nicht zu den in vielen Unternehmen<br />

eingesetzten agilen Entwicklungsprozessen,<br />

bei denen tägliche oder wöchentliche<br />

Builds erforderlich sind.<br />

Doch wie kommt es, dass Generatoren<br />

und DSLs als Garanten für Effizienz und<br />

Qualität gelten, ihre eigene Entwicklung<br />

jedoch scheinbar so komplex ist? Ein Grund<br />

ist meiner Meinung nach, dass Genera toren<br />

und DSLs zwar selber Soft ware sind, sie aber<br />

nicht mit modellgetriebenen Methoden entwickelt<br />

werden. Diese Tatsache bezeichne<br />

ich als das Model-Driven-Development-<br />

Paradox (kurz MDD-Pa radoxon).<br />

2<br />

) Die generative Softwareentwicklung wird umfassend<br />

in dem Buch „Generative Programming.<br />

Methods, Tools, and Applications“ von Krzystof<br />

Czarnecki und Ulrich Eisenecker beschrieben<br />

(Addison-Wesley, 2000).<br />

Die generative Softwareentwicklung zielt auf die weitgehend automatisierte Erstellung<br />

von Softwaresystemen auf der Grundlage von Software-Systemfamilien.<br />

Die Softwaresysteme einer Familie weisen eine gemeinsame, hoch flexible System -<br />

architektur auf und werden überwiegend aus Softwarebausteinen, die zur Familie gehören,<br />

erstellt. Bestimmte Softwarebausteine werden in allen Systemen einer Familie eingesetzt,<br />

andere nur in einigen und einige spezielle Bausteine können für einzelne<br />

Softwaresysteme ergänzt werden. Die Architektur bildet mit den Bausteinen den<br />

Lösungsraum. Selbstverständlich können Softwaresysteme aus den einzelnen Bausteinen<br />

gemäß der Architektur auch manuell erstellt werden. Hierfür sind jedoch tiefgehende<br />

Kenntnisse der Architektur sowie der zugehörigen Bausteine erforderlich. Die manuelle<br />

Erstellung ist daher zeitaufwändig und fehleranfällig.<br />

Der Erstellungsprozess kann automatisiert werden, wenn eine domänenspezifische<br />

Sprache vorliegt, mit deren Hilfe die gewünschten Softwaresysteme der Familie vollständig<br />

und richtig beschrieben werden können. Eine domänenspezifische Sprache kann<br />

textuell, dialogbasiert oder grafisch-interaktiv sein. Die domänenspezifische Sprache<br />

umfasst den Problemraum.<br />

Eine mit einer domänenspezifischen Sprache erstellte Spezifikation eines Software -<br />

systems wird unter Verwendung von Konfigurationswissen automatisch vervollständigt,<br />

analysiert, auf Baubarkeit getestet und je nach Bedarf optimiert. Anschließend kann das<br />

System mit den gewünschten Eigenschaften automatisch erzeugt werden.<br />

Die Bestandteile Problemraum, Konfigurationswissen und Lösungsraum bilden zusammen<br />

das generative Domänenmodell. Es kann vorkommen, dass eine einzelne Domäne<br />

so umfangreich und komplex ist, dass sie in Teildomänen zerlegt werden muss, oder dass<br />

eine Softwaresystemfamilie mehrere Domänen umspannt. Dann werden mehrere generative<br />

Domänenmodelle in geeigneter Weise miteinander verbunden, um die gewünschten<br />

Systeme zu erstellen.<br />

Die generative Softwareentwicklung umfasst zwei Kernprozesse: das Domain<br />

Engineering und das Application Engineering. Im Domain Engineering wird festgelegt,<br />

was genau zur Domäne gehört, die Domäne wird analysiert und es wird die gesamte<br />

Infrastruktur zur Wiederverwendung einschließlich Systemfamilien-Architektur, Bau -<br />

steinen und erforderlichen Werkzeugen erstellt. Das Application Engineering beginnt<br />

mit der Analyse der Kundenanforderungen, die bei weitgehender Automatisierung mit<br />

einer domänenspezifischen Sprache beschrieben werden, der Erzeugung des gewünschten<br />

Systems, seinem Test und seiner Auslieferung. Äußert der Kunde spezielle Wünsche,<br />

die bisher nicht abgedeckt sind, muss entschieden werden, ob das Domain Engineering<br />

erneut durchlaufen wird. Andernfalls können die Kundenwünsche nicht auf der<br />

Grundlage der Softwaresystem-Familie erfüllt werden.<br />

Prof. Ulrich Eisenecker, Leipzig.<br />

Kasten 1: Generative Softwareentwicklung. 2 )<br />

6/2012


schwerpunkt<br />

sich wiederholende oder ähnliche Aufga -<br />

ben dann vom Generator übernommen<br />

werden (dies entspricht dem Prinzip der<br />

generativen Softwareentwicklung, siehe<br />

Kasten 1). Um möglichst effiziente Genera -<br />

toren und DSLs zu gewährleisten, werden<br />

diese nicht universell einsetzbar, sondern<br />

maßgeschneidert für eine bestimmte<br />

Aufgabe entwickelt.<br />

Das zu entwickelnde System – und damit<br />

auch der Generator – stehen aber nicht im<br />

luftleeren Raum, sondern sind Teil einer<br />

Anwendungsdomäne, für die bestimmte<br />

Eigenschaften bekannt sind. Häufig ergibt<br />

sich die Notwendigkeit für einen Generator<br />

nicht im ersten Schritt, sondern erst, nachdem<br />

bereits eine Anwendung, ein Teil -<br />

system oder ein Prototyp erstellt wurden.<br />

Es ist sinnvoll, diese Implemen tierun gen bei<br />

der Entwicklung des Generators wiederzuverwenden,<br />

damit das in der Imple men -<br />

tierung enthaltene Expertenwis sen nicht<br />

verloren geht bzw. mühsam nachimplementiert<br />

und erneut getestet werden muss. Die<br />

folgenden Elemente sind Teil der hier vorgestellten<br />

Lösung (siehe Abbildung 2):<br />

■ Variabilitätsmodell: Programmier spra -<br />

chenunabhängige Beschreibung der<br />

Anwendungsdomäne.<br />

■ Codemuster: Diese spezifizieren ge -<br />

mein sam mit dem Variabilitätsmodell<br />

den Generator.<br />

■ Konfigurationsmuster: Diese spezifizieren<br />

gemeinsam mit dem Variabi li täts -<br />

modell die DSL.<br />

■ Generator: Wird automatisch aus<br />

Variabilitätsmodell und Codemustern<br />

erzeugt.<br />

■ DSL: Wird inklusive eines Parsers automatisch<br />

aus Variabilitätsmodell und<br />

Kon figurationsmustern erzeugt.<br />

■ Konfiguration: Mittels DSL formulierte<br />

Anforderungen an den Generator.<br />

■ Generate: Ausgabe des Generators.<br />

01 CREATE TABLE Person<br />

02 (<br />

03 Person_ID NUMBER(10) NOT NULL,<br />

04 Name VARCHAR2(400),<br />

05 ProjectRole VARCHAR2(400),<br />

06 CONSTRAINT Person_PK PRIMARY KEY<br />

(Person_ID)<br />

07 );<br />

08<br />

09 CREATE TABLE WorkItem<br />

10 (<br />

11 WorkItem_ID NUMBER(10) NOT NULL,<br />

12 Opened DATE,<br />

13 Closed DATE,<br />

14 Description VARCHAR2(400),<br />

15 CONSTRAINT WorkItem_PK PRIMARY KEY<br />

(WorkItem_ID)<br />

16 );<br />

Listing 1: Zwei beispielhafte PL/SQL-<br />

Tabellen.<br />

hat wiederum einen Namen und einen<br />

Datentyp, wobei als Datentyp String,<br />

Datetime und Integer zur Verfügung stehen.<br />

Für diese Tabellen soll der entsprechende<br />

Oracle-PL/SQL-Code generiert werden.<br />

Zur Veranschaulichung der Konzepte wurde<br />

die Aufgabenstellung vereinfacht (siehe<br />

Listing 1).<br />

Das Variabilitätsmodell<br />

Das zentrale Element des Ansatzes ist das<br />

Varia bilitätsmodell. Es stellt eine Form von<br />

Metamodell dar, für das bestimmte Eigen -<br />

schaften festgelegt sind (z. B. ist es strikt<br />

hierarchisch). Das Variabilitätsmodell wird<br />

aus den Eigenschaften der Anwendungs -<br />

domäne abgeleitet und beschreibt die<br />

Punkte, in denen sich die zu generierenden<br />

Artefakte unterscheiden können. Es ist<br />

vollständig unabhängig von der Program -<br />

miersprache, die später generiert werden<br />

soll. Es ist sogar möglich, dasselbe Variabi -<br />

litätsmodell für verschiedene Programmier -<br />

sprachen zu verwenden. Ein Variabilitäts -<br />

modell setzt sich aus beliebig vielen<br />

Meta klassen zusammen. Jede dieser Klas -<br />

sen hat wiederum beliebig viele Features,<br />

die die Eigenschaften der Klasse definieren.<br />

Ich habe an dieser Stelle die UML als<br />

Mo dellierungssprache für das Variabilitäts -<br />

modell gewählt (siehe Abbildung 3). Dies<br />

ist jedoch nur beispielhaft – andere Darstel -<br />

lungsformen sind ebenso möglich.<br />

Der Generator<br />

Mittels Codemustern wird spezifiziert, wie<br />

der zu generierende Code aussehen soll. Ein<br />

Codemuster beschreibt einen Teilaspekt des<br />

Generators. Der gesamte Generator wird<br />

durch eine Menge von Codemustern be -<br />

schrieben, die sich gegenseitig aufrufen und<br />

auf diese Weise einen Aufrufbaum bilden.<br />

Jedes Codemuster wird an eine Klasse aus<br />

Die verschiedenen Artefakte werden im<br />

Folgenden genauer betrachtet, zuvor wird<br />

jedoch noch ein Beispiel für eine Gene -<br />

rierungsaufgabe beschrieben, das ich zur<br />

Veranschaulichung des Konzepts verwende.<br />

Eine Generierungsaufgabe<br />

Ein Beispiel für eine Generierungsaufgabe<br />

ist die Erzeugung von Datenbank-Be -<br />

schreibungen mit beliebigen Tabellen. Jede<br />

Tabelle hat einen Namen und eine<br />

bestimmte Anzahl von Spalten. Eine Spalte<br />

Abb. 3: Variabilitätsmodell zum Tabellenbeispiel in Listing 1 als UML-Diagramm.<br />

34 35


schwerpunkt<br />

Abb. 4: Zwei Codemuster mit Verbindungen zum Variabilitätsmodell.<br />

dem Variabilitätsmodell gebunden, diese<br />

bildet dann den Kontext des Musters.<br />

Die Codemuster können aus existierendem<br />

Code oder Codefragmenten abgeleitet<br />

werden. Dazu werden die Stellen im Code<br />

identifiziert, die variieren können. Jede dieser<br />

Stellen wird an ein Feature aus dem<br />

Variabilitätsmodell gebunden. Außerdem<br />

wird für jede der Stellen festgelegt, ob ein<br />

Wert berechnet, ein Wert aus der Konfi -<br />

guration ausgelesen, zur Erzeugung weiteren<br />

Codes ein anderes Codemuster aufgerufen<br />

oder ob dieses Stück Code nur unter<br />

bestimmten Bedingungen ausgegeben werden<br />

soll. Da auch Anteile der DSL mit den<br />

Features verbunden werden, entsteht eine<br />

Verbindung zwischen Generator und DSL,<br />

aus der die Navigation automatisch abgeleitet<br />

werden kann. Darüber hinaus ist im<br />

Variabilitätsmodell für jedes Feature festgelegt,<br />

ob dieses optional oder zwingend<br />

erforderlich ist. Durch die Verbindung zwischen<br />

den variablen Stellen und dem<br />

Variabilitätsmodell wird somit auch festgelegt,<br />

ob bestimmte Codestellen optional<br />

oder zwingend erforderlich sind.<br />

Für unser Beispiel benötigen wir zwei<br />

Codemuster, CreateTable und CreateColumn,<br />

die entsprechend ihren Namen an die<br />

Metaklassen Table und Column gebunden<br />

werden. Die Aufgabe von CreateTable<br />

besteht darin, den Rahmen einer Tabelle zu<br />

erzeugen. Dazu gehört das Festlegen des<br />

Namens der Tabelle, der ID und des<br />

Tabellenschlüssels. Als Codevor lage können<br />

die Zeilen 01 bis 07 aus Listing 1 verwendet<br />

werden. In diesem Muster sind der<br />

Tabellenname und die Spalten variabel.<br />

Statt des konkreten Tabellennamens wird<br />

ein Platzhalter, hier tableName, verwendet.<br />

Die entsprechenden Stellen werden mit<br />

dem Feature name der Klasse Table verbunden.<br />

Zudem wird definiert, dass der tatsächliche<br />

Tabellenname bei der Gene -<br />

rierung aus der Konfiguration ausgelesen<br />

werden soll. Die Generierung der Spalten<br />

erfolgt durch den Aufruf des Musters<br />

CreateColumn. Der Aufruf ist mit<br />

createColumns beschriftet und mit der<br />

Komposition columns verbunden.<br />

Trends und Innovationen im Software Engineering<br />

Neues aus Wissenschaft und Praxis<br />

Softwareforen-Jahrestreffen | 29. und 30. Januar 2013 in Leipzig<br />

Aus dem Vortragsprogramm:<br />

Lothar Engelke, Geschäftsführer Infrastruktur (ITERGO Informationstechnologie <strong>GmbH</strong>):<br />

Infrastruktur 2020 – Wohin geht die Reise?<br />

Prof. Dr. Andreas Gadatsch (Hochschule Hochschule Bonn-Rhein-Sieg):<br />

Der CIO wird abgeschafft!? – Aktuelle Trends zum Informations- und Prozessmanagement<br />

Dr. Thorsten Weyer, Head of Requirements Engineering (paluno - Universität Duisburg-Essen):<br />

Von Geistersehern, Tagträumern und Weisen – Überlegungen zum agilen Requirements Engineering<br />

Alle Informationen auf www.softwareforen.de/goto/jahrestreffen


DSL und Konfiguration<br />

Um eine Konfiguration beschreiben zu<br />

können, wird eine DSL benötigt. Die<br />

Grammatik der DSL ergibt sich automatisch<br />

aus dem Variabilitätsmodell. Mittels<br />

der hier vorgestellten Lösung können zwei<br />

Darstellungsformen von DSLs erzeugt werden.<br />

Zum einen kann eine klassische Text-<br />

DSL erzeugt werden und zum anderen eine<br />

Formular-DSL. Letztere ähnelt in Aussehen<br />

und Bedienung einem elektronischen<br />

Bestellformular. Aufgrund ihrer einfachen<br />

Bedienbarkeit, auch für Nicht-Experten,<br />

betrachten wir im Folgenden Formular-<br />

DSLs.<br />

Die DSL wird ebenfalls mit Hilfe von<br />

Mustern – den Konfigurationsmustern –<br />

spezifiziert, die mit Metaklassen verbunden<br />

werden. Ein Konfigurationsmuster kann<br />

zum einen erläuternden Text enthalten.<br />

Dieser Text wird später der Person angezeigt,<br />

die die Konfiguration mittels der DSL<br />

erzeugt. Der Text kann zum Bespiel<br />

beschreiben, welche variablen Stellen exis -<br />

tieren, ob diese zwingend einen Wert enthalten<br />

müssen oder ob sie optional sind.<br />

Zum anderen kann ein Konfigurations -<br />

muster eine Beschreibung von Eingabe -<br />

feldern enthalten, in die Text eingeben werden<br />

kann, eine Auswahlliste spezifizieren<br />

oder einen Aufruf eines anderen Konfigura -<br />

tionsmusters enthalten, um weitere<br />

Konfigurationsmöglichkeiten zu spezifizieren.<br />

Die Felder werden, wie die variablen<br />

Stellen der Codemuster, mit Features des<br />

Variabilitätsmodells verbunden. Auf diese<br />

Weise wird die Verbindung zwischen dem<br />

Generator und der DSL einfach spezifiziert<br />

und muss nicht mühsam implementiert<br />

werden (siehe Abbildung 6).<br />

Der Einfachheit halber habe ich für das<br />

Tabellenbeispiel zu jeder Klasse ein Konfi -<br />

gurationsmuster angegeben, eine solche<br />

1:1-Beziehung ist jedoch kein Muss (siehe<br />

Abbildung 7).<br />

Wie im Fall des Generators gilt auch hier:<br />

Das Variabilitätsmodell und die Konfigura -<br />

tions muster enthalten alle nötigen Informa -<br />

tionen, um die DSL automatisch zu erzeuschwerpunkt<br />

Das Codemuster CreateColumn enthält<br />

zunächst den Spaltennamen als variable<br />

Stelle. Diese ist mit dem Feature name der<br />

Klasse Column verbunden, der tatsächliche<br />

Name soll aus der Konfiguration ausgelesen<br />

werden. Neben dem Namen der Spalte<br />

muss noch ihr Datentyp festgelegt werden.<br />

Da das Variabilitätsmodell unabhängig von<br />

der Programmiersprache ist, enthält die<br />

Aufzählung Datatype im Variabilitäts -<br />

modell andere Bezeichner, als in Oracle<br />

PL/SQL benötigt, weshalb nicht einfach der<br />

in der Konfiguration ausgewählte Datentyp<br />

ausgegeben wird. Stattdessen werden<br />

Codeblöcke verwendet, die den auszugebenden<br />

Code enthalten. Bedingungen definieren,<br />

wann der jeweilige Block ausgegeben<br />

werden soll. Beispielsweise soll<br />

VARCHAR2 (400) immer dann ausgegeben<br />

werden, wenn als datatype in der<br />

Konfiguration String ausgewählt wurde. Da<br />

es sich bei datatype um ein Feature der<br />

Klasse Column handelt, besteht auch hier<br />

wieder eine Verbindung zum Variabilitäts -<br />

modell.<br />

Die 1:1-Beziehung im Tabellen beispiel –<br />

jeweils ein Muster zu einer Metaklasse –<br />

sowie das Beibehalten der Hierarchie, hängen<br />

mit dem stark vereinfachten Beispiel zusammen.<br />

In komplexeren Anwendungen ist diese<br />

Beziehung nicht zwangsläufig gegeben.<br />

Wenn Sie sich die Muster in Abbildung 4<br />

ansehen, werden Sie feststellen, dass im<br />

Muster weder Operationen, Bedingungen,<br />

noch Berechnungsvorschriften enthalten<br />

sind, die nur zur Codegenerierung benötigt<br />

werden (zum Vergleich siehe Abbildung 1).<br />

So enthalten die Muster beispielsweise keine<br />

Push- und Pop-Operationen zur Ein -<br />

rückung – stattdessen wird der Code an<br />

genau der Stelle generiert, an der er im<br />

Muster angezeigt wird bzw. an der die variable<br />

Stelle im Muster angezeigt wird. Die<br />

Berechnungsvorschriften, also z. B. welcher<br />

Wert aus der Konfiguration ausgelesen<br />

werden soll, oder Bedingungen, wann ein<br />

Codeblock generiert werden soll, sind in<br />

den Eigenschaften der jeweiligen variablen<br />

Stelle enthalten. Abbildung 5 zeigt die<br />

Abb. 5: Eigenschaften eines Codeblocks.<br />

Eigenschaften des Codeblocks, der mit<br />

VARCHAR2 (400) beschriftet ist. Auf diese<br />

Weise wird das WYSIWYG-Prinzip konsequent<br />

umgesetzt und die Lesbarkeit des<br />

Musters und damit der Generator-<br />

Spezifikation signifikant verbessert.<br />

Variabilitätsmodell und Codemuster enthalten<br />

zusammen alle nötigen Informatio -<br />

nen, um einen Generator automatisch zu<br />

erzeugen. Durch die Verbindung der<br />

Codemuster mit dem Variabilitätsmodell<br />

kann die Navigation automatisch abgeleitet<br />

werden. Sobald ein Teil des Variabi -<br />

litätsmodells und der Codemuster erstellt<br />

wurde, kann bereits ein Generator erzeugt<br />

werden. Es ist nicht notwendig, zunächst<br />

die vollständige Spezifikation zu erstellen.<br />

Stattdessen können die noch fehlenden<br />

Anteile anschließend nach und nach hinzugefügt<br />

werden. Auf diese Weise stehen<br />

innerhalb kürzester Zeit verwendbare<br />

Generatoren zur Verfügung. Wöchentliche<br />

oder gar tägliche Builds sind kein Problem,<br />

sodass sich die Entwicklung des Generators<br />

ohne weiteres in einen agilen Entwick -<br />

lungs prozess integrieren lässt.<br />

Noch einen Vorteil bietet dieses Vor -<br />

gehen: Die Spezifikation des Generators<br />

wird aus existierendem Code abgeleitet.<br />

Der generierte Code sieht nahezu genauso<br />

aus wie der Ursprungscode. Auf diese<br />

Weise kommen implementierungstechnische<br />

Finessen und Optimierungen auch in<br />

den Generaten zum Tragen. War der<br />

Ursprungscode lesbar, so gilt dies auch für<br />

den generierten Code. Außerdem ist es auf<br />

diese Weise möglich, unternehmensspezifische<br />

Programmier-Richtlinien auch durch<br />

den generierten Code einzuhalten.<br />

Abb. 6: Verbindung zwischen Konfigurations- und Codemuster via Variabilitätsmodell.<br />

36 37


schwerpunkt<br />

Abb. 7: Konfigurationsmuster des Tabellenbeispiels.<br />

gen. Das gilt insbesondere für die Gram -<br />

matik der DSL, die nicht explizit entwickelt<br />

werden muss, sondern automatisch aus<br />

dem Variabilitätsmodell abgeleitet werden<br />

kann, da das Variabilitätsmodell implizit<br />

die Menge aller zulässigen (Teil-)Gram -<br />

matiken darstellt. Sobald Variabi li täts -<br />

modell und Konfigurationsmuster teilweise<br />

erstellt wurden, kann die DSL erstellt werden.<br />

Somit steht auch innerhalb kürzes ter<br />

Zeit eine (Teil-)DSL zur Verfügung und die<br />

DSL-Entwicklung lässt sich problemlos in<br />

einen agilen Entwicklungsprozess integrieren.<br />

Die Formular-DSL<br />

Aus den Konfigurationsmustern und dem<br />

Variabilitätsmodell kann automatisch eine<br />

Formular-DSL erzeugt werden, die einem<br />

elektronischen Bestellschein ähnelt. Sie ist<br />

einfach zu handhaben, sodass auch für<br />

Nicht-Experten keine langwierige Einarbei -<br />

tung erforderlich ist. In einem solchen<br />

Formular werden Instanzen von zwingend<br />

erforderlichen Klassen und Features automatisch<br />

eingefügt, weitere können hinzugefügt<br />

und mit Default-Werten gefüllt werden.<br />

Durch die Spezifikation mittels<br />

Variabilitäts modell und Konfigurations -<br />

muster wird sichergestellt, dass nur Werte<br />

eingegeben werden können, die auch vom<br />

Generator verarbeitet werden können. Eine<br />

so erzeugte Konfiguration entspricht dann<br />

einer Instanz des Variabilitätsmodells.<br />

Aufgrund ihrer Struktur kann man eine<br />

solche Konfiguration als XML-Dokument<br />

speichern. Dies hat den Vorteil, dass man<br />

sie auch leicht mit anderen Werkzeugen<br />

austauschen kann.<br />

Noch mehr Wiederverwendung<br />

Generatoren und DSLs werden eingesetzt,<br />

um Varianten einer Funktion oder eines<br />

Produkts zu erzeugen. Aber auch bei der<br />

Spezifikation von Generator und DSL müssen<br />

häufig ähnliche Aufgaben oder Funk -<br />

tionen beschrieben werden. Um den Auf -<br />

wand für die Spezifikation zu reduzieren,<br />

schlage ich – neben der Wiederverwendung<br />

von existierendem Code – die Verwendung<br />

von Vererbungsmechanismen vor. Es sind<br />

drei Arten von Vererbung möglich:<br />

■ Vererbung auf Variabilitätsmodell-Ebene<br />

■ Mustervererbung<br />

■ Frame-Vererbung<br />

Abb. 8: Konfiguration der beiden Beispieltabellen.<br />

Auf Variabilitätsmodell-Ebene wird Verer -<br />

bung eingesetzt, um ähnliche Metaklassen<br />

zu erzeugen. Mustervererbung kommt<br />

immer dann zum Einsatz, wenn zwei<br />

Muster erzeugt werden sollen, die eine ähnliche<br />

Aufgabe, aber unterschiedliche Kon -<br />

texte haben. Soll eine Funktion oder ein<br />

Produkt in mehreren Implementierungs -<br />

varianten verfügbar sein, z. B. für verschiedene<br />

Plattformen, Programmiersprachen<br />

oder in unterschiedlichen Ausprägungen<br />

für mehrere Kunden, besteht die Mög -<br />

lichkeit, mehrere so genannte Frames in -<br />

nerhalb eines Musters zu erzeugen. Jeder<br />

dieser Frames beschreibt eine Implemen -<br />

tierungsvariante, alle Frames innerhalb<br />

eines Musters haben den gleichen Kontext.<br />

Für jede Implementierungsvariante wird<br />

ein Generator erzeugt. Da das Variabi -<br />

litätsmodell und die DSL programmiersprachenunabhängig<br />

sind, muss die DSL<br />

nicht verändert werden. Tatsächlich kann<br />

eine Konfiguration für alle durch die Ver -<br />

erbung entstandenen Generatoren verwendet<br />

werden.<br />

Für Muster- oder Frame-Vererbung wird<br />

zunächst ein Muster bzw. Frame, wie oben<br />

beschrieben, erzeugt. Weitere Muster oder<br />

Frames entstehen dann durch Vererbung.<br />

Unterschiede zwischen dem vererbenden<br />

und dem erbenden Muster/Frame entstehen<br />

durch die Überschreibung der relevanten<br />

Merkmale. Wird anschließend das vererbende<br />

Muster/Frame verändert, so werden<br />

diese Änderungen auch an die erbenden<br />

Muster/Frames weiter gegeben, falls das<br />

entsprechende Feature nicht überschrieben<br />

wurde.<br />

Der oben beschriebene Tabellengenera -<br />

tor generiert PL/SQL-Tabellen. Soll zusätzlich<br />

auch MySQL generiert werden, benötigt<br />

man dazu einen entsprechenden<br />

Generator. In dem hier vorgestellten Ansatz<br />

lässt sich dieser zweite Generator ganz einfach<br />

durch Vererbung erzeugen. In beiden<br />

6/2012


schwerpunkt<br />

Codemustern werden neue MySQL-Frames<br />

angelegt, die vom existierenden PL/SQL-<br />

Frame erben. Der Code für PL/SQL und<br />

MySQL unterscheidet sich hier nur in den<br />

möglichen Datentypen. Während in<br />

PL/SQL VARCHAR2 zum Einsatz kommt,<br />

wird an dieser Stelle in MySQL TEXT verwendet.<br />

Nur im Muster CreateColumn müssen<br />

Überschreibungen vorgenommen werden,<br />

das Muster CreateTable kann so<br />

beibehalten werden – fertig ist der zweite<br />

Generator. Abbildung 9 zeigt das Muster<br />

CreateColumn mit seinen beiden Frames.<br />

Wird diesem Generator nun die in Ab -<br />

bildung 8 dargestellte Konfiguration übergeben,<br />

werden beide Tabellen als MySQL-<br />

Code generiert.<br />

Vererbung lässt sich nicht nur bei der<br />

Spezifikation des Generators einsetzen –<br />

das gleiche Prinzip kann man auch auf die<br />

Konfigurationsmuster anwenden. Auf diese<br />

Weise können die Vererbungsmechanismen<br />

auch die Entwicklung der DSL vereinfachen.<br />

Anwendungsgebiete<br />

Eine Einschränkung des hier vorgestellten<br />

Ansatzes auf ein bestimmtes Anwendungs -<br />

gebiet gibt es nicht. Der Generator und die<br />

dazugehörige DSL können perfekt auf die<br />

jeweiligen unternehmens- und projektspezifischen<br />

sowie technischen Anforderungen<br />

zugeschnitten werden. Die Verwendung der<br />

Codemuster bietet gleich mehrere Vorteile:<br />

Zum einen kann beliebiger Code als<br />

Vorlage dienen, sodass es keine Einschrän -<br />

kung bezüglich der zu generierenden Pro -<br />

grammiersprache gibt. Zum anderen werden<br />

bewährte Optimierungen, z. B.<br />

Speicher platz-Optimierungen, wiederverwendet.<br />

Damit kann sichergestellt werden,<br />

dass auch der generierte Code die Opti -<br />

mierungsmaßnahmen umsetzt. Darüber<br />

hinaus wird so das Expertenwissen auch<br />

allen anderen Entwicklern des Teams zur<br />

Verfügung gestellt.<br />

Ebenso gibt es keine Begrenzungen für die<br />

Größe der zu lösenden Aufgabe, denn der<br />

Ansatz skaliert sowohl für kleine (Teil-)<br />

Aufgaben als auch für große und komplexe<br />

Systeme.<br />

Die hier vorgeschlagene Formular-DSL<br />

ist auch von Nicht-Experten ohne großen<br />

Abb. 9: Codemuster mit den zwei Frames PL/SQL und MySQL.<br />

Einarbeitungsaufwand bedienbar, da sie<br />

einem elektronischen Bestellformular<br />

ähnelt. Auf diese Art ist eine Aufgaben -<br />

teilung möglich: Die Entwicklungs abtei -<br />

lung erstellt den Generator und die passende<br />

DSL, eine Fachabteilung kann dann die<br />

für sie geeignete Konfiguration vornehmen.<br />

Wir haben dieses Vorgehen verwendet,<br />

um tausende von Service-Adaptern und<br />

SQL-Anwendungen zu generieren, die nun<br />

erfolgreich bei unseren Kunden im Einsatz<br />

sind. Genauso kann die Methode zur<br />

Generierung von eingebettetem Code angewendet<br />

werden, um Mobile-Apps zu erzeugen<br />

oder große Anwendungen zu generieren.<br />

Der Gewinn<br />

Stellt man die Vorteile modellgetriebener<br />

Entwicklung nicht generell in Frage, so sind<br />

diese auch auf die Entwicklung von<br />

Generatoren und DSLs übertragbar. Zu<br />

den Vorteilen gehört, dass die Entwicklung<br />

auf ein höheres Abstraktionslevel gehoben<br />

wird: Statt zu programmieren, werden<br />

Generator und DSL deklariert. Die konsequente<br />

Umsetzung des WYSIWYG-Prinzips<br />

steigert die Lesbarkeit der Spezifikationen,<br />

was die Entwicklung und Wartung erleichtert.<br />

Zudem kann der Testaufwand reduziert<br />

werden. Die strikte Trennung von<br />

Variabilitätsmodell und Mustern verbessert<br />

zum einen die Wartbarkeit des Systems und<br />

ermöglicht zum anderen aber auch eine<br />

verteilte Entwicklung.<br />

Aufgrund des geringen Initialaufwands<br />

skaliert der Ansatz für Aufgaben jeglicher<br />

Größe. Selbst kleine Aufgaben, wie das<br />

zuvor gezeigte Tabellenbeispiel, können<br />

effizient gelöst werden. Zudem ist es jederzeit<br />

möglich, weitere Klassen und Features<br />

sowie Muster hinzuzufügen und das<br />

System so zu einem großen und komplexen<br />

System auszubauen. Es ist also nicht notwendig,<br />

schon zu Beginn der Entwicklung<br />

alle Anforderungen an Generator und DSL<br />

zu kennen.<br />

Der zweite Effekt des geringen Initial -<br />

aufwands besteht darin, dass sich die vorgestellte<br />

Methode bereits dann lohnt, wenn<br />

es nur zwei Varianten des (Teil-)Systems<br />

geben soll. Durch die Erweiterbarkeit von<br />

Variabilitätsmodell, DSL und Generator ist<br />

es unerheblich, ob von vornherein feststeht,<br />

dass mehrere Varianten benötigt werden<br />

und generative Methoden zum Einsatz<br />

kommen sollen, oder ob sich dies erst herausstellt,<br />

wenn bereits eine Variante produktiv<br />

ist.<br />

Vom Schuster mit<br />

den geraden Absätzen<br />

Individuell entwickelte Generatoren und<br />

DSLs erhöhen den Abstraktionsgrad der<br />

Softwareentwicklung. Mit der hier vorgestellten<br />

Lösung können durch die Ver -<br />

knüpfung der Generator- und DSL-<br />

Spezifikation mit einem Variabilitätsmodell<br />

Informationen, wie die Grammatik der<br />

DSL oder die Navigation des Generators,<br />

automatisch abgeleitet werden und müssen<br />

nicht, wie in klassischen Ansätzen, mühsam<br />

erarbeitet werden. Dieses Vorgehen<br />

löst das MDD-Paradoxon und ermöglicht<br />

so die Nutzung der Vorteile modellgetriebener<br />

Methoden bereits bei der Ent -<br />

wicklung von Generatoren und DSLs.<br />

Außerdem können bewährte und getestete<br />

Implementierungen einfach zur Spezifika -<br />

tion maßgeschneiderter Generatoren<br />

wieder verwendet werden. Aus der zeitaufwändigen<br />

und fehleranfälligen Geheim wis -<br />

senschaft wird so eine weit weniger komplexe<br />

Entwicklungsaufgabe, die sich auch<br />

leicht in agile Entwicklungsprozesse integrieren<br />

lässt.<br />

■<br />

Das Fundament für Softwarearchitekten –<br />

vertiefen Sie Ihr Know-how!<br />

www.sigs-datacom.de/wissen/themenchannel/software-architektur.html<br />

38 39


schwerpunkt<br />

der autor<br />

MODELLGETRIEBENE SOFTWARE-<br />

ENTWICKLUNG IN EINEM<br />

GROSSPROJEKT:<br />

EIN PRAXISBERICHT ÜBER DEN<br />

ERFOLGREICHEN EINSATZ VON MDD<br />

Die Vorteile von MDD sind bekannt: erhöhte Produktivität durch Automatisierung sowie verbesserte<br />

Qualität und Wartbarkeit, um nur die wichtigsten zu nennen. Wie Modelltransforma -<br />

tionen funktionieren und welche Werkzeuge es gibt, beschreiben thematisch verwandte Artikel.<br />

Aber wie funktioniert der MDD-Ansatz in einem realen Großprojekt? Dieser Artikel befasst sich<br />

mit der MDD-Vorgehensweise in der Praxis und stellt aus den gemachten Erfahrungen eine<br />

Reihe von Bausteinen vor, die zu einem erfolgreichen Einsatz von MDD führen. Dabei steht<br />

nicht nur Technologie im Vordergrund, sondern es werden auch Prozessfaktoren und organisatorische<br />

Faktoren mit einbezogen.<br />

Benedikt von Treskow<br />

(benedikt.vonTreskow@credit-suisse.com)<br />

ist Solution Architekt bei der Credit Suisse AG und<br />

verantwortlich für Architektur und Design von serviceorientierten<br />

JEE-Applikationen. Seine<br />

Schwerpunkte sind die Konzeption und Umsetzung<br />

von modellgetriebenen Entwicklungsmethoden.<br />

Im Folgenden stelle ich kurz das Projekt<br />

vor, um das es in diesem Artikel geht, und<br />

erläutere die Beweggründe, weshalb in der<br />

Initiierungsphase des Projekts der modellgetriebene<br />

Weg eingeschlagen wurde. Die<br />

Motivation für eine modellgetriebene<br />

Softwareentwicklung (Model Driven<br />

Development, MDD) lässt sich auf andere<br />

ähnliche Projekte übertragen. Anschließend<br />

beschreibe ich die wichtigsten Bausteine<br />

näher und gehe auf die Lektionen ein, die<br />

wir bei der Einführung und Verwendung<br />

modellgetriebener Methoden gelernt ha -<br />

ben. Eine vollständige Auflistung aller<br />

Faktoren ist aus Platzgründen nicht möglich.<br />

Abschließend gehe ich der Frage nach,<br />

wie MDD mit agilem Vorgehen kombiniert<br />

werden kann und welche Herausfor derun -<br />

gen dabei bestehen.<br />

Das Projekt<br />

Die in diesem Artikel geschilderten Erfah -<br />

rungen stammen aus einem mehrjährigen<br />

Modernisierungsprojekt, das ein in die<br />

Jahre gekommenes Kernsystem auf einer<br />

modernen SOA-Plattform neu implementiert.<br />

Dabei geht es nicht um eine Code-zu-<br />

Code-Migration, sondern um den Entwurf<br />

einer von Grund auf neuen Architektur für<br />

ein dezentrales System, das sich mit unterschiedlichen<br />

Schnittstellen-Technologien in<br />

die Applikationslandschaft einfügt.<br />

In einem Vorprojekt wurden bereits<br />

modell getriebene Ansätze gewählt, um das<br />

Altsystem nachzudokumentieren sowie<br />

Systemstrukturen und Abhängigkeiten zu<br />

analysieren. Ziel war dabei die möglichst<br />

vollständige Erfassung der bestehenden<br />

Funktionalität sowie die Planung des mehrjährigen<br />

Migrationsvorgehens.<br />

Zu den bestehenden Anforderungen des<br />

Ist-Systems werden durch die Optimierung<br />

der Geschäftsprozesse zusätzliche Anfor -<br />

derungen erhoben. Doch nicht nur funktionale,<br />

sondern auch hohe nicht-funktionale<br />

Anforderungen, wie Performance und<br />

hohes Transaktionsvolumen, die für<br />

zukünftige Ansprüche auch nach oben skalierbar<br />

sein müssen, sind Herausfor derun -<br />

gen für das Projekt. Ein solches Moderni -<br />

sierungsvorhaben ist nur mit einem großen<br />

Team zu bewerkstelligen. Circa 80<br />

Projektmitglieder arbeiten gemein sam an<br />

der Lösung vielfältiger Aufgaben.<br />

Die MDD-Methode wurde in drei<br />

Phasen schrittweise eingeführt (siehe Abbil -<br />

dung 1). Zu Beginn entwickelte das<br />

Architekturteam eine Referenzapplikation.<br />

In dieser wurden diverse technische Proto -<br />

Abb. 1: Einführung von MDD im Projekt.<br />

typen vereint, um die Architektur zu verifizieren<br />

und generierbare Teile zu identifizieren.<br />

Die Referenzapplikation diente später<br />

als Testumgebung und Hilfsmittel für das<br />

Einlernen neuer Teammitglieder.<br />

In der zweiten Phase wurde die MDD-<br />

Werkzeugkette finalisiert und darauf basierend<br />

das erste Applikations-Release 0.5 mit<br />

einem kleineren Entwicklerteam verwirklicht.<br />

Ziel war es dabei, die End-to-End-<br />

Mach barkeit der modellgetriebenen Me -<br />

tho de zu prüfen und die Werkzeugkette für<br />

das Aus rollen auf ein größeres Team vorzubereiten.<br />

Meilensteine der dritten Phase waren die<br />

Verwendung der MDD-Werkzeugkette im<br />

gesamten Team inklusive Offshore-<br />

Mitarbeitern und die erfolgreiche Lieferung<br />

des folgenden Applikationsrelease 1.0.<br />

Aktuell ist die MDD-Werkzeugkette im<br />

Wartungsmodus und bildet die Basis für<br />

zukünftige Releases.<br />

6/2012


schwerpunkt<br />

Treiber für den MDD-Einsatz<br />

Im Folgenden werden die Treiber des konkreten<br />

Projekts erläutert, weshalb eine<br />

modellgetriebene Vorgehensweise gewählt<br />

wurde. Die hier genannten Gründe sind<br />

nicht projektspezifisch, sondern bekannte<br />

Gegebenheiten in vergleichbaren Projekten.<br />

Wartbarkeit und Langlebigkeit<br />

Für das zu entwickelnde System wird eine<br />

lange Lebenszeit erwartet, sodass hohe<br />

Anforderungen an die Wartbarkeit gestellt<br />

werden. Dies gelingt nur durch eine stets<br />

aktuelle Dokumentation des Systems, die<br />

durch Modelle (=Dokumentation) und den<br />

Einsatz von Codegeneratoren immer synchron<br />

mit der Implementierung gehalten<br />

wird.<br />

Die Erfahrung mit dem Altsystem hat<br />

gezeigt, dass eine vernachlässigte Doku -<br />

men tation zu schwerer Wartbarkeit führen<br />

kann. Sehr aufwändig sind Re-Doku -<br />

mentationen und Analysen, die immer<br />

durch Abstraktion (modellbasiert, grafische<br />

Abhängigkeiten) bewerkstelligt werden.<br />

Durch MDD wird diese Abstraktion<br />

von Anfang an gelebt und dadurch eine<br />

hohe Qualität der Dokumentation erreicht<br />

(Document-first). Modelle stellen nicht das<br />

einzige Dokumentationsmedium dar. Sie<br />

bieten aber immer einen Einstiegspunkt in<br />

das System und referenzieren weiterführende<br />

technische Dokumentation.<br />

Kommunikation in verteilten Teams<br />

Auch wenn es der Idealzustand wäre, dass<br />

alle Projektmitglieder in einem Raum<br />

arbeiten, sind die Teams in derartigen<br />

Projekten zum Teil global verteilt. Häufig<br />

werden Anforderungen und Geschäfts -<br />

prozesse von einem Team spezifiziert, während<br />

ein anderes Team Design und Imple -<br />

mentierung übernimmt.<br />

Die Größe des Projektteams erfordert<br />

präzise Spezifikationen. Vor allem in<br />

Offshore-Szenarien können durch den<br />

Einsatz von MDD Anforderungen eindeutig<br />

beschrieben werden. Durch Modelle<br />

wird eine gemeinsame Sprache definiert,<br />

die durchgängig nachvollziehbar ist – von<br />

den Anforderungen, über das Design bis<br />

hin zum Code. Die durch MDD herbeigeführte<br />

Abstraktion ermöglicht es, Fach -<br />

exper ten einzubeziehen, die nicht unbedingt<br />

die eingesetzte Zieltechnologie<br />

beherrschen müssen.<br />

Automatisierung<br />

Die mehrjährige Laufzeit des Projekts<br />

erfordert ein einheitliches Vorgehen auf der<br />

vorgegebener Architektur. Zwar müssen<br />

Korrekturen (Refactorings) auch an der<br />

Architektur möglich sein, der grundlegende<br />

Architekturstil (z. B. Schichtenmodell) so -<br />

wie eingesetzte Muster und Frameworks<br />

werden jedoch zu Beginn definiert und<br />

nicht jedes Jahr neu festgelegt.<br />

Im Sinne der „Software-Industriali -<br />

sierung“ (vgl. [Zie10]) errichtet man mit<br />

MDD eine Fertigungsstraße, auf der in<br />

geteilten Arbeitsschritten Anforderungen<br />

spezifiziert sowie Design und Implemen -<br />

tierung erstellt werden. Die Architekturund<br />

Design-Richtlinien werden von Anfang<br />

an durch Codegenerierung durchgesetzt,<br />

sodass sich die Entwickler auf das Wesent -<br />

liche, nämlich die Implementierung der<br />

Fachlogik, konzentrieren können.<br />

Technologische Bausteine<br />

„Out of the box“ eignen sich MDD-<br />

Werkzeuge nur bedingt für den produktiven<br />

Einsatz. Üblich ist die Anpassung von<br />

MDD-Generatoren an die Gegebenheiten<br />

der Zielplattform sowie an die Architekturund<br />

Unternehmensstandards, wie beispielsweise<br />

die Verwendung existierender Frame -<br />

works oder Code-Richtlinien.<br />

In diesem Abschnitt beschreibe ich die<br />

wesentlichen technologischen Bausteine für<br />

die Erstellung bzw. Anpassung eines<br />

Generator-Frameworks.<br />

Domänenspezifische Sprache<br />

Die Definition eines Metamodells ist die<br />

Basis der domänenspezifischen Sprache<br />

(Domain Specific Language, DSL) und bildet<br />

ein eindeutiges Verständnis und ge -<br />

mein sames Vokabular für die Ziel archi -<br />

tektur. Die Erstellung des Meta modells ist<br />

typischerweise ein iterativer Prozess. Zu<br />

Beginn steht ein konzeptioneller Entwurf<br />

(Blueprint), der dann in weiteren Schritten<br />

stetig verfeinert wird.<br />

In Abbildung 1 zeigen die Schritte 1 und 2<br />

exemplarisch, wie das konzeptionelle,<br />

schichtenbasierte SOA-Modell „Archi -<br />

tektur Blueprint“ in das „Formale Meta -<br />

modell“ überführt wird. Im Projektbeispiel<br />

wurden im Blueprint zuerst die Schichten<br />

konzipiert, beispielsweise: Wo finden<br />

Input/Output-Mapping und Validierung<br />

statt? Wo werden Business-Regeln ausgeführt?<br />

Wo werden Datenzugriffe implementiert<br />

oder externe Systeme aufgerufen?<br />

Während der Verfeinerung zum „Formalen<br />

Metamodell“ werden dann konkrete<br />

Elemente auf den Schichten spezifiziert<br />

sowie deren Attribute und Abhängigkeiten<br />

untereinander. Hier werden beispielsweise<br />

spezifische Servicetypen definiert (Daten -<br />

bank, Regelausführung, externer Aufruf<br />

usw.) und deren Eigenschaften beschrieben.<br />

Einerseits ist es wichtig, das Metamodell in<br />

einen stabilen Zustand zu bringen (häufige<br />

Änderungen könnten sich später negativ<br />

auf den Entwicklungsprozess auswirken),<br />

andererseits sollte das Metamodell so entworfen<br />

werden, dass erforderliche Erwei -<br />

terungen flexibel vorgenommen werden<br />

kön nen.<br />

Abbildung 2 zeigt das Metamodell als<br />

Bestandteil der 3. Transformationskette. Es<br />

ist die Grundlage für den Model lierungs stil<br />

(konkrete Syntax, z. B. durch Ableitung<br />

eines UML-Profils) und wird durch die<br />

Modell-zu-Modell-Transforma tion instanziiert.<br />

Die Generator-Templates beziehen<br />

sich auf das Metamodell und sind UMLfrei.<br />

Abb. 2: Vom Architektur-Blueprint, über das Metamodell zur Transformationskette.<br />

Verhältnis generierter/manuell<br />

geschriebener Code<br />

Es hängt stark von der Applikationsart und<br />

der eingesetzten Programmiersprache ab,<br />

wie viel Code generiert werden kann.<br />

Sicher gibt es Plattformen, auf denen<br />

100 % Codegenerierung möglich und<br />

erwünscht ist (z. B. eingebettete Systeme).<br />

40 41


schwerpunkt<br />

Schicht Generierte Manuell erstellte Generierter<br />

Elemente Elemente Anteil<br />

Adapter JEE-Beans Mapping-Klassen 50 %<br />

(MDB, SessionBeans)<br />

Business-Services / Java-Interfaces Konkrete Klassen 40 %<br />

Compound-Services Abstrakte Klassen<br />

Basis-Services<br />

Service-Orchestrierung Java-Klassen – 100 %<br />

Datenmodell JPA-Entitäten – 100 %<br />

Unit-Tests JUnit-Tests Testdaten-Instanzen 70 %<br />

(Infrastruktur-Code)<br />

Tabelle 1: Auszug generierte Anteile.<br />

Im Rahmen von Geschäftsapplikationen ist<br />

eine vollständige Generierung nicht das<br />

Ziel. Das würde die Komplexität der Busi -<br />

ness-Logik lediglich auf die Modellebene<br />

heben, aber nicht davon abstrahieren.<br />

Tabelle 1 listet generierte und manuell<br />

erstellte Anteile auf den jeweiligen Schich -<br />

ten auf.<br />

Die hier gezeigten strukturellen Code -<br />

bestandteile zählen eher zum MDD-<br />

Standard-Repertoire. Im Folgenden hebe<br />

ich die Service-Orchestrierung hervor, mit<br />

der wir im Projekt sehr gute Erfahrungen<br />

machen. Die Service-Orchestrierung stellt<br />

die Implementierung eines Compound<br />

Service dar (Definition aus [Jos08], häufig<br />

wird der Begriff Micro-Flow äquivalent<br />

verwendet). Dieser fasst durch eine Aufruf -<br />

kette interne Basis-Services in einer Trans -<br />

aktion zusammen.<br />

Team Empowerment<br />

Pair Programming<br />

Test Driven Development<br />

TRAINING<br />

Abbildung 3 zeigt ein Beispiel für eine<br />

Service-Orchestrierung. Jede Aktion stellt<br />

einen Verarbeitungsschritt dar, in dem<br />

Basis- oder weitere Compound-Services<br />

auf gerufen werden (z. B. Daten validieren,<br />

Daten anreichern, Daten weitersenden).<br />

Der hierfür angepasste Modellierungsstil<br />

ist auf wenige Elemente beschränkt. Da -<br />

durch werden die Ablauf-Diagramme nicht<br />

für Verhaltensprogrammierung missbraucht,<br />

sondern bleiben auf einer fachlichen<br />

Ebene, während algorithmische<br />

Details im Code implementiert werden.<br />

Diagramme wie das in Abbildung 3 werden<br />

im Projekt auch von technologiefernen<br />

Rol len verwendet, um die fachliche Kor -<br />

rekt heit zu verifizieren.<br />

Die vollständige Generierung der<br />

Service-Orchestrierung ist ein gutes Beispiel<br />

dafür, wie die Dokumentation mit der<br />

Imple mentierung vollkommen synchron<br />

gehalten wird.<br />

Frühe Modellvalidierung<br />

Häufig bieten Generator-Frameworks eine<br />

integrierte Validierungs-API an, sodass<br />

während der Codegenerierung die Eingabe-<br />

Modelle auf Korrektheit geprüft werden<br />

Clean Code<br />

Spring<br />

Sprint Burndown<br />

Continuous Integration<br />

Bob Martin Dr. Peter Hruschka Fahd Al-Fatish<br />

Detlef Buder<br />

5.–6.11.2012 PSPO mit Fahd Al-Fatish Frankfurt/M.<br />

8.–9.11.2012 PSM mit Fahd Al-Fatish Frankfurt/M.<br />

4.–5.2.2013 Clean Code mit Bob Martin Karlsruhe<br />

6.–8.2.2013 Advanced TDD mit Bob Martin Karlsruhe<br />

21.–22.2.2013 PSPO mit Fahd Al-Fatish Karlsruhe<br />

25.2.2013 Scrum Basics mit Detlef Buder Karlsruhe<br />

26.–27.2.2013 Agiles Requirements Engineering mit Dr. Peter Hruschka Frankfurt/M.<br />

Bei Angabe von »OBJEKTspektrum« bei der Anmeldung unter »Bemerkungen« erhalten Sie 5% Rabatt auf die Teilnahmegebühr.<br />

www.andrena.de<br />

andrena objects ag · Albert-Nestler-Straße 9 · 76131 Karlsruhe<br />

Telefon 0721 6105-122 · Telefax 0721 6105-140 · veranstaltungen@andrena.de<br />

Experts in agile software engineering


schwerpunkt<br />

Kategorie<br />

Vollständigkeit<br />

Korrektheit<br />

Konvention<br />

Beispielregel<br />

Ist Modellelement dokumentiert?<br />

Sind Typen an Datenattributen definiert?<br />

Sind Typen an Serviceparametern definiert?<br />

Referenzieren Datenattribute korrekte Typen<br />

(z. B. referenziert eine Entität kein Datentransferobjekt)?<br />

Verwenden Serviceparameter die korrekten Typen (Datentransferobjekte)?<br />

Ist eine Abhängigkeit zwischen zwei fachlichen Komponenten erlaubt?<br />

Namenskonventionen<br />

Tabelle 2: Drei Kategorien der Validierungsregeln.<br />

können. Die Erfahrung hat gezeigt, dass<br />

eine frühere Validierung – nicht nur aus<br />

generierbaren Modellen, sondern auch aus<br />

Anforderungsspezifikationen und High-<br />

Level-Designs – sehr wichtig ist, um früh<br />

auf Unvollständigkeiten reagieren zu können<br />

oder Projektkonventionen (z. B.<br />

Namens gebung) rechtzeitig einzuhalten.<br />

Sinnvoll sind Modellierungswerkzeuge,<br />

die „on-the fly“ validieren und dem Benut -<br />

zer unmittelbar Feedback geben, wie man<br />

es von Programmier-Editoren kennt. Ne -<br />

ben der automatischen syntaktischen<br />

Validierung sind semantische Reviews, z. B.<br />

über die Granularität der Services oder<br />

Datenstrukturen, für die Qualitäts -<br />

sicherung nicht wegzudenken und können<br />

durch Werkzeuge nicht ersetzt werden. Alle<br />

Validierungsregeln lassen sich in drei Kate -<br />

gorien einteilen (siehe Tabelle 2).<br />

Eingeschränkter Modellierungsstil<br />

Abhängig vom gewählten Modellierungs -<br />

werk zeug werden bei einem gegebenen<br />

Metamodell Werkzeugerweiterungen automatisch<br />

erzeugt (z. B. angepasste Dia -<br />

grammtypen, Modellierungspaletten und<br />

Kon text menus).<br />

Bewährt haben sich im Projekt speziell<br />

entwickelte Erweiterungen, um den Model -<br />

lierer besser zu führen und das Design effizient<br />

nach Richtlinien zu erstellen. Dazu<br />

gehören – neben Modellvorlagen und<br />

-mustern – die unterstützte Navigation<br />

durch das Modell, die schnelle Suche über<br />

referenzierte Elemente oder die einfache<br />

Navigation vom Modellelement zur entsprechenden<br />

Quellcode-Stelle.<br />

Die Diskussion über grafische und textuelle<br />

Modelle kann ich aus Platzgründen<br />

hier nicht weiter vertiefen. Wir machen mit<br />

grafischer Notation sehr gute Erfahrungen,<br />

gerade weil Abläufe, komplexe Daten -<br />

modelle und deren Beziehungen grafisch<br />

am besten erfassbar sind. Ganz typisch sind<br />

Meetings mit an die Wand gestrahlten<br />

Ablauf-Diagrammen einer Service-Orches -<br />

trierung, die dann mit Fachexperten Archi -<br />

tekten und Entwicklern gemeinsam besprochen<br />

werden. Es gibt auch Verwendung für<br />

textuelle Modellierung, z. B. im GUI-<br />

Design oder als formale Geschäftsregel-<br />

Definition.<br />

Continuous Integration<br />

Aus der Projekterfahrung ist ein weiterer<br />

wichtiger Baustein die Einbindung von<br />

MDD in den kontinuierlichen Integrations -<br />

prozess (Continuous Integration). Diese<br />

ermöglicht nicht nur die ständige Überwachung<br />

der Modellqualität (Validation),<br />

sondern auch die Prüfung, ob Modell und<br />

Code synchron zueinander sind. Regel -<br />

mäßig werden sämtliche Generatoren auf<br />

allen Modellen ausgeführt und anschließend<br />

prüft der Compiler, ob die Imple -<br />

mentierung zu den generierten Schnitt -<br />

stellen und abstrakten Klassen kompatibel<br />

ist.<br />

Abb. 3: Beispiel „Service-Orchestrierung“<br />

Darüber hinaus berichten speziell entwickelte<br />

Reports über Codebestandteile,<br />

die ihren Ursprung nicht im Modell haben<br />

(auch solche können natürlich ihre Berech -<br />

ti gung haben). Zu empfehlen ist der Einsatz<br />

gängiger Best Practices über MDD und den<br />

Entwurf domänenspezifischer Sprachen<br />

(vgl. hierzu z. B. [Sta06], [Völ11]).<br />

Organisatorische Bausteine<br />

Das Bereitstellen einer funktionierenden<br />

Werkzeugkette führt noch nicht zur erfolgreichen<br />

Umsetzung der MDD-Methodik.<br />

Im Folgenden beschreibe ich die nicht<br />

weniger wichtigen soften Faktoren, die ein<br />

Projekt berücksichtigen sollte.<br />

Rollenverteilung<br />

Die Konzeption und Implementierung der<br />

MDD-Werkzeugkette wird in der Initi -<br />

ierungsphase des Projekts zeitgleich mit der<br />

Definition der Zielarchitektur durchgeführt.<br />

Ein dediziertes Team (siehe „Archi -<br />

tek turumsetzungsteam“ in Abbildung 4),<br />

das aus Spezialisten der Ziel-Plattform und<br />

MDD-Experten besteht, ist hierfür verantwortlich.<br />

In enger Zusammenarbeit werden<br />

anhand von Prototypen die Design-Richt -<br />

linien und generierbare Teile definiert.<br />

Dieses Team ist außerdem für die Lauf -<br />

zeitaspekte und die Einhaltung der nichtfunktionalen<br />

Anforderungen verantwortlich.<br />

Wichtig ist, dass das Architekturum set -<br />

zungsteam schnell auf Änderungsanforderungen<br />

und Erweiterungen reagieren kann<br />

und einen eigenen Release-Zyklus der<br />

MDD-Werkzeugkette und des Laufzeit-<br />

42 43


schwerpunkt<br />

Frameworks pflegt, der mit dem Implemen -<br />

tierungsteam und dessen Entwicklungs -<br />

prozess abgestimmt ist.<br />

Modellbasiertes Requirements-<br />

Engineering<br />

Es bewährte sich im Projekt, das Require -<br />

ments-Engineering nahezu vollständig in die<br />

MDD-Methode einzubeziehen. So können<br />

die Anforderungen an Schnittstellen mit<br />

Hilfe von konzeptionellen Daten modellen<br />

(Business-Objekt-Modell) be schrie ben werden.<br />

Auch die formale Be schrei bung von<br />

Anwendungsfällen im Modell (z. B. Akti -<br />

vitäten- oder Sequenz diagramme) ermöglicht<br />

eine einheitliche und validierbare Spe -<br />

zifi kation. Aus den Anforderungen<br />

abge leitete Designmodelle referenzieren ihre<br />

Herkunft und stellen somit eine nahtlose<br />

Nachvollziehbarkeit (Traceability) her.<br />

Daher lassen sich in der Wartung Änderungsanforderungen<br />

schnell umsetzen, da<br />

mit Hilfe des Modells die zu ändernden<br />

Systembestandteile effizient identifiziert<br />

werden. Abbildung 5 zeigt dies an einem einfachen<br />

Beispiel: Die Änderungsanforderung<br />

„E-Mail senden“ wird in einem alternativen<br />

Ablauf des Anfor derungsfalls beschrieben<br />

(1). Über die verlinkten Designmodelle ist<br />

die Stelle für die Anpassung effizient lokalisiert<br />

und wird in der Service-Orchestrierung<br />

ergänzt (2). Die Code-Generierung sorgt<br />

dafür, dass für den Entwickler die Schablone<br />

vorgeneriert wird, in der der eigentliche<br />

Basis-Service für den E-Mail-Versand aufgerufen<br />

wird (3).<br />

Das Testteam profitiert von den im<br />

Modell definierten Anforderungen: Mit<br />

Hilfe von speziellen Reports lassen sich die<br />

zu testenden Bestandteile aus dem Modell<br />

automatisch beziehen, z. B. durch das Aus -<br />

lesen aller fachlichen Pfade eines Anfor -<br />

derungsfalls.<br />

Abb. 4: Architekturumsetzungsteam.<br />

durch konkurrierende Modifikationen<br />

minimiert. Darüber hinaus können<br />

Zugriffsberechti gungen erzwingen, welche<br />

Teams auf welchen Modellpartitionen<br />

arbeiten. Letzterer Mechanismus wird im<br />

Projekt lediglich auf sehr zentralen<br />

Modellpartitionen (z. B. Da tenmodell) eingesetzt.<br />

Das Mergen und ge legentliche<br />

Auflösen von Konflikten wird mit<br />

Werkzeugunterstützung vorgenommen.<br />

Durch ein gemeinsam genutztes (Modell-)<br />

Re pository hat das gesamte Projektteam<br />

ständig eine gemeinsame Sicht auf Anfor -<br />

derungen, Design und Code.<br />

MDD und agile Prozesse<br />

Kritiker des MDD-Ansatzes wenden ein,<br />

dass man mit MDD an Flexibilität verliert.<br />

Diesen Eindruck mag das von der OMG<br />

beschriebene MDA-Vorgehen vermitteln,<br />

das falsch als Wasserfall-Modell interpretiert<br />

werden kann (Computation Indepen -<br />

dent Model -> Platform Independent<br />

Model -> Platform Specific Model, vgl.<br />

[OMG12]).<br />

Im Folgenden beschreibe ich, wie sich<br />

agile und modellgetriebene Ansätze ge -<br />

winn bringend ergänzen, aber auch, wo<br />

wesentliche Unterschiede bestehen.<br />

Skalierbarkeit des MDD-Ansatzes<br />

Um den modellzentrierten Ansatz in einem<br />

größeren Team auszurollen, muss zu<br />

Beginn (d. h. bevor das Team die Zielgröße<br />

erreicht) feststehen, wie mit dem Modell<br />

gearbeitet wird. Auch wenn Model -<br />

lierungs werkzeuge generell Teamwork<br />

unterstützen, sollten Fragen zu Teamwork,<br />

Locking-Granularität, Modell-Merging etc.<br />

geklärt werden.<br />

Im konkreten Projekt wurde das Modell<br />

nach fachlichen Komponenten partitioniert<br />

und die Verantwortlichkeiten wurden auf<br />

kleine Teams verteilt. Dadurch wird die<br />

Wahrschein lichkeit von Modellkonflikten<br />

Abb. 5: Von der Änderungsanforderung, über das Modell zum Code.<br />

6/2012


schwerpunkt<br />

Iteratives Vorgehen mit kleinen Teams<br />

Modelle stellen kein Hindernis dar, um ein<br />

agiles Vorgehen einzusetzen. Die Voraus -<br />

setzung wird zuerst durch die Projekt -<br />

organisation geschaffen. Ein großes Team<br />

muss in mehrere kleine unterteilt werden,<br />

denen die Lieferverantwortung für eine<br />

Teilkomponente übertragen wird.<br />

Die kleinen Teams bestehen aus diversen<br />

Rollen (Require ments-Engi neers und<br />

Entwickler), sodass Kommuni ka tionswege<br />

optimiert werden. Innerhalb dieser Teams<br />

werden agile Methoden angewandt, z. B.<br />

eigenständige Sprint-Planung und regelmäßige<br />

Scrum-Meetings. Das funktioniert bei<br />

gegebener Infra struktur auch über<br />

Zeitzonen hinweg.<br />

Geliefert werden fachliche abgeschlossene<br />

Anwendungsfälle, die jeweils einer<br />

Komponente zugewiesen werden. Es ist<br />

nicht auszuschließen, dass mehrere Teams<br />

gemeinsame Komponenten modifizieren,<br />

z. B. Datenmodelle oder Basis-Services.<br />

Diese zentralen Komponenten werden<br />

durch dedizierte Teams gewartet, die Änderungsanforderungen<br />

entgegennehmen und<br />

diese kontrolliert umsetzen.<br />

Restrukturierung (Refactoring)<br />

Refactorings auf Codeebene werden optimal<br />

durch Entwicklungswerkzeuge unterstützt.<br />

Bei Verwendung des MDD-Ansatzes<br />

kann Mehraufwand entstehen, weil die<br />

Synchronisation von Modellen und Code<br />

ganzheitlich betrachtet werden muss.<br />

Allerdings gibt es technische Lösungen, um<br />

den Mehraufwand zu minimieren: Für<br />

mögliche Änderungen helfen Refactoring-<br />

Skripte, wie sie z. B. in „Eclipse JDT“ (vgl.<br />

[Ecl]) unterstützt werden. Falls Massen -<br />

änderungen (Verschieben, Umbenennen,<br />

etc.) erforderlich sind, leiten wir diese<br />

Skripte automatisch aus dem Modell ab<br />

und führen sie auf der Codeebene aus.<br />

Fazit<br />

Modellgetriebene Ansätze (auch in anderen<br />

Varianten als hier dargestellt) sind aus größeren<br />

Projekten nicht wegzudenken. Bei<br />

der Berücksichtigung von bewährten<br />

Praktiken ist die Einführung von MDD aus<br />

technischer Sicht unproblematisch. Das<br />

alleinige Bereitstellen einer MDD-Werk -<br />

zeugkette reicht allerdings häufig nicht aus.<br />

Wichtig sind die ganzheitliche Betrachtung<br />

von MDD und die Adressierung softer<br />

Faktoren, wie Organisation und Prozesse.<br />

Ein wesentlicher Beitrag zum Erfolg von<br />

MDD im konkreten Projekt war die holis -<br />

tische Umsetzung, d. h. die Einbeziehung aller<br />

Mitarbeiter des Projekts als Nutzer der<br />

Modelle. So werden die Vorteile von MDD<br />

nicht nur für eine „elitäre“ Gruppe sichtbar,<br />

sondern für alle Projekt beteiligten. Ver -<br />

gleichs schätzungen über die fachliche Kom -<br />

ple xität haben gezeigt, dass im Projekt für die<br />

Implementierung neuer Anforderung die Effi -<br />

zienz um ca. 30 bis 40 % gesteigert wurde.<br />

Beim Skalieren über die Teamgröße wurden<br />

die meisten Lektionen gelernt. In einem<br />

wachsenden Team bedarf es spezieller<br />

Rollen, die das Wissen als Coachs ebenso<br />

weitergeben wie gute Dokumentation über<br />

die Installation und Anwendung der MDD-<br />

Werkzeugkette (z. B. durch eine Referenz -<br />

applikation). Die Einarbeitung neuer<br />

Mitarbeiter ist nicht zu vernachlässigen.<br />

Haben aber Entwickler die Zusammen -<br />

hänge von Modell, Generatoren und Code<br />

verstanden, können sie sich schnell produktiv<br />

einbringen.<br />

Nicht nur Teams ändern sich, sondern<br />

auch die Modellgröße und die Art, wie auf<br />

das Modell zugegriffen wird. In dem hier<br />

Literatur & Links<br />

vorgestellten Projekt ging die erste<br />

Festlegung der Modellpartitionierung nicht<br />

weit genug und wurde später korrigiert,<br />

nachdem die Teilkomponenten und Team -<br />

ver ant wortlichkeiten feststanden.<br />

Auch bei der Generatorentwicklung gab<br />

es gelernte Lektionen. Beispielsweise hat<br />

die Modellierung von Testdaten-Instanzen<br />

zu Beginn sehr gut funktioniert und ermöglichte<br />

die vollständige Generierung von<br />

Unit-Tests. Mit wachsendem Datenmodell<br />

erwies sich aber dieser Ansatz als zeitaufwändig.<br />

Nach einer Korrektur nimmt der<br />

Unit-Testgenerator nun dem Entwickler<br />

immer noch die Arbeit für das Erstellen von<br />

Unit-Tests ab, die Dateninstanzen werden<br />

aber im Code oder in einer Datenbank<br />

hinterlegt. Generell sollte es das Ziel der<br />

Codegenerierung sein, möglichst sinnvoll,<br />

statt möglichst viel zu generieren.<br />

Nicht jedes Projekt eignet sich für MDD,<br />

z. B. wenn die Projektgröße den initialen<br />

Aufwand für die Erstellung der MDD-<br />

Werkzeugkette nicht rechtfertigt. Hat aber<br />

eine Organisation den MDD-Prozess etabliert,<br />

so ist die Wahrscheinlichkeit groß,<br />

dass sich verwandte Projekte mit einem<br />

ähnlichem Architekturstil finden. Dann<br />

kann ein Unternehmen durch Software-<br />

Industrialisierung über Projektgrenzen hinaus<br />

profitieren, indem bereits implementierte<br />

MDD-Werkzeugketten in Projekten<br />

wiederverwendet werden. Eine Weiterent -<br />

wicklung des klassischen MDD-Vorgehens<br />

ist die Kombination von MDD mit agilen<br />

Vorgehensmodellen. In diesem Artikel habe<br />

ich gezeigt, dass diese Methoden sich nicht<br />

ausschließen und ein Projekt von beiden<br />

Ansätzen profitieren kann.<br />

■<br />

Wert der Dokumentation<br />

Beim Thema Dokumentation besteht der<br />

we sentliche Unterschied der Ansätze. Lang -<br />

lebige aktuelle Dokumentation widerspricht<br />

dem agilen Prinzip „der Code ist die<br />

Dokumentation“ (vgl. [Fow05]). Dieses<br />

Prinzip ist nicht anwendbar, wenn es sich<br />

um eine nicht mehr gelehrte Sprache handelt<br />

und nur wenig Experten-Know-how<br />

vorhanden ist. Spätestens in ein paar<br />

Jahren, wenn vielleicht auch Java nicht<br />

mehr State-of-the-Art ist, muss diese Aus -<br />

sage hinterfragt werden.<br />

[Ecl] Eclipse, Eclipse Java development tools (JDT), siehe: eclipse.org/jdt<br />

[Fow05] M. Fowler, CodeAsDocumentation, 2005, siehe:<br />

martinfowler.com/bliki/CodeAsDocumentation.html<br />

[Jos08] N. Josuttis, SOA in der Praxis, dpunkt.verlag 2008, siehe:<br />

soa-in-der-praxis.de/soa-glossar.html<br />

[OMG12] Object Management Group (OMG), MDA Specifications, 2012, siehe :<br />

omg.org/mda/specs.htm<br />

[Sta06] T. Stahl, M. Völter, Model-Driven Software Development, Wiley 2006<br />

[Völ11] M. Völter, DSL Best Practices, 2011, siehe:<br />

voelter.de/data/pub/DSLBestPractices-2011Update.pdf<br />

[Zie10] S. Ziegler et. al., Industrielle Software Entwicklung, BITKOM 2010, siehe:<br />

bitkom.org/files/documents/Industrielle_Softwareentwicklung_web.pdf<br />

44 45


advertorial<br />

der autor<br />

ANFORDERUNGSMANAGEMENT<br />

IN EINER ZUNEHMEND AGILEN<br />

PROJEKTLANDSCHAFT<br />

Agiles Anforderungsmanagement findet aktuell eine große Beachtung bei<br />

Prozessverantwortlichen in der Industrie. Häufig werden die agilen Methoden allerdings isoliert<br />

betrachtet. Eine solche Betrachtungsweise behindert aber die mögliche Evolution des<br />

Anforderungsmanagements. Die ideologische Trennung der bisherigen Vorgehensweisen von<br />

den agilen Methoden muss aufgegeben werden, um das Ziel des Anforderungsmanagements<br />

zu erreichen: ein gemeinsames Verständnis über ein zu entwickelndes System zwischen<br />

Auftragnehmer und Auftraggeber zu erreichen. Der Artikel beschreibt die wesentlichen Änderungen<br />

und Vorteile, die sich durch die agilen Methoden ergeben. Es wird gezeigt, dass die<br />

Elemente des agilen Anforderungsmanagements als Bereicherung der aktuellen<br />

Methodenlandschaft zu verstehen sind und nicht als ein radikaler Paradigmenwechsel.<br />

Arno Dämon<br />

(arno.daemon@de.ibm.com)<br />

hat in verschiedenen Rollen und Firmen über 15<br />

Jahre Erfahrung in der Softwareentwicklung als<br />

Entwickler und Konfigurationsmanager gesammelt,<br />

bevor er im Jahr 2000 zu IBM Rational wechselte.<br />

Er hat seit dieser Zeit umfangreiche Erfahrung in<br />

den Bereichen Änderungs- und Konfigurations -<br />

management akkumuliert. In letzter Zeit hat sich<br />

Arno Dämon mit der Umsetzung der anforderungsgetriebenen<br />

Softwareentwicklung in einigen<br />

Implementierungsprojekten auseinandergesetzt.<br />

Ein verschärfter Wettbewerb und komplexere<br />

Projekte zwingen die Hersteller, ihre<br />

Prozesse und Abläufe in der Art zu verbessern,<br />

dass die Projekte in einer kürzeren<br />

Zeit als noch vor einigen Jahren auf den<br />

Markt gebracht werden können. Gleich -<br />

zeitig sollen die Produkte aber in exzellenter<br />

Qualität und mit konkurrenzfähigen<br />

Eigenschaften versehen werden.<br />

Auf der Suche nach Verbesserungs mög -<br />

lichkeiten rücken häufig die Anforderun -<br />

gen und die Anforderungsmanagement -<br />

prozesse in den Fokus, weil sie im gesamten<br />

Entwicklungsprozess eine wichtige Rolle<br />

spielen und durch die permanente Präsenz<br />

offensichtlich ein hohes Verbesserungs -<br />

potenzial bieten. Belastbare und konsistente<br />

Anforderungen, deren Änderungen formal<br />

über die Projektlaufzeit kontrolliert<br />

werden, senken nachweisbar die Fehler -<br />

raten über die gesamte Projektlaufzeit (vgl.<br />

Abb. 1).<br />

Gleichzeitig planen viele Firmen Projekte<br />

mit agilen Ansätzen wie Scrum oder XP<br />

durchzuführen, denn die Projekte, die dem<br />

agilen Entwicklungsansatz gefolgt sind,<br />

haben sehr oft die erwarteten Verbes serun -<br />

gen erbracht. Sie stehen daher bei den<br />

Überlegungen der Methoden- und Tool-<br />

Verantwortlichen häufig an oberster Stelle<br />

der potenziellen Konzepte.<br />

Doch schaut man sich z. B. den Scrum-<br />

Ansatz an, dann fällt auf, dass der bislang<br />

verbreitete formale Anforderungsmanage -<br />

ment ansatz hier nicht enthalten ist. Im<br />

Gegenteil, häufig wird das formale<br />

Anforderungsmanagement komplett abgelehnt<br />

und als Gefahr von den „Agilisten“<br />

angesehen.<br />

Im Folgenden wird beschrieben, wie<br />

Anforderungsmanagement unter dem<br />

Gesichtspunkt der agilen Methoden betrieben<br />

werden sollte und welche Vorteile die<br />

Umstellung vom formalen Anforderungs -<br />

manage ment auf das agile Anforderungs -<br />

manage ment erbringen kann.<br />

Was ist eigentlich anders?<br />

Anforderungsmanagement wird häufig so<br />

verstanden, dass am Anfang des Projekts<br />

eine Spezifikation geschrieben und dann in<br />

einer Baseline eingefroren wird. Oft werden<br />

daraus umfangreiche Lastenhefte generiert<br />

und mit einem potenziellen Lieferan -<br />

ten ausgetauscht. Änderungen an den<br />

An forderungen sind risikobehaftet und<br />

sollten nur unter formaler Kontrolle durch-<br />

Abb. 1: Kosten durch späte Entdeckung von Fehlern<br />

geführt werden. In vielen Fällen werden die<br />

An forderungen in starren Systemen mit<br />

einem Metamodell versehen, um einheitliche<br />

Strukturen zu generieren.<br />

Im agilen Umfeld werden Anforderungen<br />

anders verstanden. Sie sollen die Kunden -<br />

wünsche abbilden und helfen, sie zu verstehen.<br />

Durch enge Zusammenarbeit mit dem<br />

Kunden soll sichergestellt werden, dass die<br />

Wünsche stets aktuell in den Anfor -<br />

derungen abgebildet sind. Änderungen sind<br />

willkommen und werden daher als selbstverständlicher<br />

Teil des Anforderungs -<br />

manage ments verstanden. Spätestens nach<br />

jeder Iteration werden sie geprüft und überarbeitet.<br />

Agil arbeitende Teams betrachten<br />

die Änderungen eher als Zeichen von<br />

Reifung, also als Fortschritt.<br />

6/2012


advertorial<br />

Agile Verfahren wie Scrum beinhalten<br />

daher kaum Anforderungsmanagement im<br />

klassischen Sinn. Scrum verwendet eine<br />

einfache priorisierte Liste, die die An -<br />

forderungen (Product Backlog genannt)<br />

enthält. Die Anforderungen des Kunden<br />

werden im Wesentlichen als Benutzer -<br />

geschichten textuell erfasst und durch die<br />

kontinuierliche direkte Kommunikation<br />

der Anforderungsbeteiligten konsistent<br />

gehalten. Bereits realisierte und vom<br />

Auftraggeber akzeptierte Anforderungen<br />

werden aus dem Product Backlog gestrichen.<br />

Der Product Backlog ist damit eine<br />

Liste von Anforderungen die noch erledigt<br />

werden müssen.<br />

Als Synonym für eine Person oder eine<br />

Gruppe, die ein berechtigtes Interesse am<br />

Verlauf oder dem Ergebnis des Projekts hat,<br />

wird in diesem Artikel die Bezeichnung<br />

„Stakeholder“ (in etwa identisch mit dem<br />

Projektbeteiligten der DIN 69905) verwendet.<br />

Stakeholder oder Projektbeteiligte sind<br />

alle Personen, Institutionen und Doku -<br />

mente, die von der Entwicklung und vom<br />

Betrieb eines Systems in irgendeiner Weise<br />

betroffen sind. Dazu gehören auch<br />

Personen, die nicht in der Systement -<br />

wicklung mitwirken, aber das neue System<br />

zum Beispiel nutzen, in Betrieb halten oder<br />

schulen. Stakeholder sind die Informations -<br />

lieferanten für Ziele, Anforderungen und<br />

Randbedingungen an ein zu entwickelndes<br />

System oder Produkt.<br />

Der Stakeholder soll idealerweise direkt<br />

mit dem Projektteam in Kontakt stehen<br />

und am besten auch räumlich nahe zu dem<br />

agilen Team sein, um eine kontinuierliche<br />

Kommunikation zu garantieren. Am Ende<br />

jeder Iteration wird der aktuelle Stand der<br />

Entwicklung von dem Stakeholder in<br />

Augenschein genommen und überprüft.<br />

Das ist möglich, da das agile Team nach<br />

jeder Iteration per Definition funktionierende<br />

Software bereitstellen soll. Dieser<br />

Stand des Projektes wird als „Potentially<br />

Shippable Functionality“ bezeichnet. Das<br />

bedeutet, dass der Stakeholder potenziell<br />

auslieferbare und in sich abgeschlossene<br />

Funktionalität erhält und anschließend<br />

begutachten kann. Beim Scrum wird der<br />

Stakeholder als „Product Owner“ bezeichnet.<br />

Die Lücke zwischen den Erwartungen<br />

des Auftraggebers und dem im Produkt tatsächlich<br />

enthaltenen Kundennutzen wird<br />

durch ständig wiederkehrende formale<br />

Überprüfung (Retrospektive) offengelegt.<br />

Die gewonnenen Erkenntnisse werden in<br />

Abb. 2: Vergleich des Kundennutzens bei<br />

Anwendung des Wasserfallmodells oder<br />

des agilen Modells<br />

der folgenden Iteration erneut in die<br />

Anforderungen miteinbezogen. Es ist<br />

durchaus üblich, dass die Ergebnisse aus<br />

der Retrospektive auch den Inhalt des<br />

Product Backlog verändern.<br />

Agile Projekte liefern daher in der Regel<br />

einen höheren Kundennutzen zu einem früheren<br />

Zeitpunkt.<br />

Die Vorteile des agilen Anforderungs -<br />

managements sind im Wesentlichen:<br />

■<br />

■<br />

Höhere Sichtbarkeit über die gesamte<br />

Projektlaufzeit:<br />

Durch die kontinuierliche Überprüfung<br />

und Begutachtung der Arbeitsergeb -<br />

nisse bei jedem Abschluss einer<br />

Iteration wird der Status direkt aus den<br />

gewonnenen Ergebnissen abgeleitet.<br />

Die Reife der Software basiert auf dem<br />

aktuellen Stand des Projekts. Bei den<br />

formellen Projekten ist die Sichtbarkeit<br />

während der Phase der Erfassung von<br />

Anforderungen hoch, aber der Kunde<br />

bleibt nach dem Start der Implemen -<br />

tierungsarbeiten fast im Dunkeln, ob<br />

und wie seine Anforderungen umgesetzt<br />

wurden oder nicht. Zwischen -<br />

geschobene Meilensteine sollen im formell<br />

durchgeführten Projekt die<br />

Sicht barkeit verbessern. Bei genauer<br />

Betrachtung erkennt man an dieser<br />

Stelle schon die Hinwendung zum iterativen,<br />

agilen Verfahren.<br />

Bessere Anpassungsfähigkeit an geänderte<br />

Bedingungen und Änderungswünsche:<br />

Im Zuge der Realisierung von Soft -<br />

wareanforderungen sind Änderungen<br />

■<br />

an der Tagesordnung. Eine späte Änderung<br />

der Anforderung ist oft ein Wett -<br />

bewerbsvorteil für den Auftraggeber.<br />

Für die traditionellen Methoden, wie<br />

z. B. die Wasserfallmethode, ist eine<br />

späte Änderung ein nahezu unkalkulierbares<br />

Risiko. Agiles Anforderungs -<br />

management ermöglicht es dem<br />

Kunden zu jedem Zeitpunkt, die Anfor -<br />

derungen an sich ändernde Bedin -<br />

gungen anzupassen.<br />

Risikominimierung:<br />

Die agilen Methoden im Anforderungs -<br />

management führen zu einer Fo kus -<br />

sierung auf die schnelle Lieferung von<br />

Kundennutzen. Als Ergebnis dieser<br />

Fokussierung und der damit verbundenen<br />

Vorteile sind die Organisationen in<br />

der Lage, das Gesamtrisiko, das mit der<br />

Entwicklung verbunden ist, signifikant<br />

zu reduzieren. Hier wird einer der<br />

wichtigsten Unterschiede zwischen den<br />

formellen Entwicklungsansätzen und<br />

dem agilen Anforderungsmanagement<br />

sichtbar.<br />

Die formellen Methoden gehen davon<br />

aus, dass die Eigenschaften eines<br />

Produktes am Projektanfang vollständig,<br />

eindeutig und messbar vorliegen.<br />

Durch diese Vorgehensweise soll das<br />

Risiko, mit einer fehlerhaften Spezifika -<br />

tion zu arbeiten, reduziert oder ausgeschlossen<br />

werden. Agile Projekte hingegen<br />

nehmen immer die Stories vom<br />

Product Backlog, von denen angenommen<br />

wird, dass das Risiko sie zu implementieren<br />

besonders hoch ist.<br />

Diese Vorgehensweise macht Sinn,<br />

wenn man bedenkt, dass agil arbeitende<br />

Teams möglichst früh und möglichst<br />

viel aus den Projektergebnissen lernen<br />

wollen. Unter diesem Gesichtspunkt<br />

wäre es kontraproduktiv, die „spannenden“<br />

Themen erst in einer späten<br />

Projektphase abzuarbeiten.<br />

Agiles Anforderungsmanagement konzentriert<br />

sich daher sehr stark auf Interaktion<br />

mit dem Auftraggeber, wobei der größte<br />

Teil dieser Wechselwirkung durch Retros -<br />

pektiven und Prototyping herbeigeführt<br />

wird. Die Retrospektiven dienen zunächst<br />

der Verbesserung der Fehlerraten in der<br />

angestrebten Lösung, aber sie sind auch<br />

eine Methode zur Verbesserung der<br />

Qualität der Anforderungen selbst, da<br />

nicht nur die Software, sondern auch die<br />

Anforderungen überprüft werden.<br />

46 47


advertorial<br />

Ist es nicht möglich, alle Anforderungen<br />

von nur einer einzigen Person zu erhalten,<br />

kann es notwendig werden, bei der<br />

Erhebung der Anforderungen diese als<br />

einen Prozess zu betrachten. Das bringt<br />

inhärent den Vorteil mit sich, dass die<br />

Anforderungen aus unterschiedlichen<br />

Stand punkten der am Projekt Beteiligten<br />

formuliert werden.<br />

Weiterhin sollten die Projekte, die vom<br />

formellen Anforderungsmanagement zum<br />

agilen Ansatz wechseln, ohne Bedenken die<br />

verschiedenen Interviewtechniken, die in<br />

den Vorgängerprojekten benutzt wurden,<br />

einsetzen. Die Bedeutung der kontextfreien<br />

Fragen, offenen Fragen und Meta-Fragen<br />

sind auch in einem agilen Umfeld gültig.<br />

Wie sehen die Anforderungen<br />

in agilen Projekten aus?<br />

Die Ausgestaltung der Anforderungen im<br />

agilen Umfeld ist nicht fest vorgegeben. Sie<br />

sollten dennoch nicht blindlings definiert<br />

werden. Bestimmte Sachverhalte lassen sich<br />

von Fall zu Fall durch verschiedene<br />

Verfahren formulieren. Verschiedene For -<br />

men, die allerdings unternehmens- oder<br />

projektspezifisch standardisiert sein sollten,<br />

helfen trotz der Vielfalt der Ausdrucks -<br />

möglichkeiten, einer bestimmten Semantik<br />

zu folgen. Diese kann nach jeder Retros -<br />

pektive überprüft und gegebenenfalls angepasst<br />

werden.<br />

Oft reicht ein kurzer syntaktisch standardisierter<br />

Satz (Benutzergeschichte) auf einer<br />

Karteikarte aus, um eine Anforderung hinreichend<br />

zu beschreiben. Ein anderes Mal<br />

ist es besser, die möglichen Ablaufvarianten<br />

zu visualisieren, also ein Bild zu zeichnen<br />

(Aktivitätsdiagramm), oder ein Status dia -<br />

gramm zur Darstellung der möglichen<br />

Zustände der Lösung zu beschreiben.<br />

Am häufigsten werden jedoch textuelle<br />

Notationen verwendet. Bei Scrum ist eine<br />

User Story eine der gebräuchlichsten<br />

Formen der Notation für ein Element des<br />

Product Backlog. Definitionsgemäß<br />

gehorcht sie einer speziellen Syntax:<br />

„Als möchte ich , weil<br />

”. Also z. B.: “Als Adminis -<br />

trator möchte ich das Passwort eines<br />

Benutzers zurücksetzen können, weil dieser<br />

sonst bei vergessenem Passwort keine<br />

Möglichkeit mehr hat, in das System zu<br />

gelangen”.<br />

Die User Stories werden vom Product<br />

Owner zur Verfügung gestellt und sind<br />

Abb. 3: Rational Requirements Composer unterstützt die Bearbeitung des „Product<br />

Backlog“<br />

bewusst kurz gehalten. Eine gut gemachte<br />

Story ist rein fachlich gehalten. Es ist üblicherweise<br />

keine gute Idee, eine Story nach<br />

Komponenten zu zerteilen – also Frontend,<br />

Mittelschicht und Datenbank. Sinnvoller<br />

ist es, sie in funktionale Teile zu zerlegen.<br />

Die Kunst des Product Owners besteht<br />

darin, diese Stories in genau der richtigen<br />

Größe bereitzustellen und besonders darauf<br />

zu achten, dass sie nicht zu lang werden.<br />

Als Faustregel sollte gelten: Die Story<br />

muss klein genug sein, um in einen Sprint<br />

zu passen und muss noch gut schätzbar<br />

sein, allerdings muss die Story groß genug<br />

sein, um einen funktionalen Mehrwert zu<br />

bieten und schätzbar sein.<br />

Epics sind Anforderungen, die eigentlich<br />

nur als Platzhalter für große, später zu realisierende<br />

Features stehen. Epics sind zu<br />

groß für die Implementierung, sie müssen<br />

zunächst in kleine User Stories geschnitten<br />

werden. Weiterhin eignen sich Elemente<br />

aus der UML wie Anwendungs-, Zustandsoder<br />

auch Sequenzdiagramme.<br />

Der richtige<br />

Detaillierungsgrad<br />

Wie tief ein Team im Einzelfall Anfor -<br />

derungen vor der Realisierung verstehen<br />

sollte, hängt von der Kompliziertheit und<br />

Komplexität der Anforderung selbst ab,<br />

ebenso aber von der Ausgangssituation bei<br />

den Anforderungsgebern und System -<br />

benutzern sowie den Bedürfnissen und<br />

Notwendigkeiten auf Seiten der Realisierer.<br />

Gute User Stories sollten sich an sechs<br />

Kriterien orientieren, die unter dem<br />

Akronym „INVEST” zusammengefasst<br />

werden (vgl. [Wak03]).<br />

Für Anforderungsmanager, die vom streng<br />

formellen zum agilen, iterativen Anfor -<br />

derungs management umsteigen, ist es ein<br />

sinnvoller erster Schritt, gezielt die<br />

Verständnistiefe, also die Unvollkommen heit<br />

der Anforderungen zu steuern. Der<br />

Anforderungsmanager sollte die gezielte<br />

Unvollkommenheit als notwendigen Opti -<br />

mierungsschritt akzeptieren lernen. Die<br />

erfahrenen Agilisten sollten allerdings<br />

anspruchsvollere Techniken ebenso beherrschen<br />

lernen, weil eine Standardisierung auf<br />

der Basis einfachster Mittel nicht optimal ist.<br />

Das Rauschen im Blätterwald<br />

Das agile Anforderungsmanagement kann<br />

zunächst vollkommen ohne Unterstützung<br />

durch ein Softwaretool betrieben werden.<br />

Die grundlegenden Tätigkeiten eines An -<br />

forderungsmanagers oder Product Owners<br />

können mit „Post-it“ und Karteikarten<br />

abgebildet werden. Dieser rudimentäre<br />

Ansatz ist durchaus tragfähig. Insbeson -<br />

dere bei größeren und pragmatisch arbeitenden<br />

Teams macht der Einsatz eines<br />

unterstützenden Tools Sinn. Der Require -<br />

ments Composer von Rational bietet hier<br />

6/2012


advertorial<br />

Freigabe anzeigen. Des Weiteren können sie<br />

Dateien, die mit anderen Tools erstellt wurden,<br />

hochladen und zu ihren Anfor -<br />

derungsinformationen hinzufügen – dazu<br />

zählt auch das Zuweisen von Attributen<br />

und Tags, das Einordnen in Objektgruppen<br />

und die Prüfung und Freigabe durch andere.<br />

Abb. 4: Bearbeitung von Benutzergeschichten in Rational Requiements Composer<br />

eine effektive Unterstützung für agiles<br />

Anforderungsmanagement an.<br />

Teams, die mit Rational Requirements<br />

Composer (RRC) arbeiten, können An -<br />

forderungsartefakte mit beliebigen zugehörigen<br />

Informationen verknüpfen. Des<br />

Weiteren besteht die Möglichkeit, Arte -<br />

fakte in Dokumente und Benutzer -<br />

schnittstellenskizzen einzubetten, um Ideen<br />

auf diese Weise zu optimieren. Dieser<br />

umfassende und flexible Ansatz ermöglicht<br />

es den Teams, flexibel zusammenzuarbeiten<br />

und während der Entwicklung geschäftsorientierter<br />

Lösungen Sachverhalte zu klären<br />

und eine Einigung zu erreichen.<br />

Rational Requirements Composer unterstützt<br />

das agile Anforderungsmanagement<br />

bei Aufgaben wie:<br />

■<br />

Alle Projektbeteiligten einzubinden und<br />

die aktive Zusammenarbeit bei allen<br />

Anforderungen zu vereinfachen.<br />

■ Gemeinsame Visionen und das Ver -<br />

ständnis der Projekt- und Programm -<br />

anforderungen zu erreichen.<br />

■ Teams mithilfe der integrierten Glos -<br />

sarfunktionen durch ein gemeinsames<br />

Vokabular zu vereinen.<br />

■ Neuen Teammitgliedern in kurzer Zeit<br />

einen produktiven Projekteinstieg zu<br />

ermöglichen, indem ihnen die Anfor -<br />

derungen, der Geschäftskontext und<br />

die bisherigen Diskussionen online zur<br />

Verfügung gestellt werden.<br />

Durch die Nutzung einer gemeinsamen<br />

Datenbank und den Einsatz von Web-<br />

Clients können die Beteiligten Dokumente<br />

oder Diagramme auf einfachste Weise<br />

erstellen, den aktuellen Arbeitsstand des<br />

Teams anzeigen und offene Fragen klären.<br />

Sie können sich in Gruppen über Anfor -<br />

derungen austauschen, viele kleine schnelle<br />

Onlineprüfungen durchführen und deren<br />

Zusammenfassung<br />

Die Kunst des agilen Anforderungs -<br />

managements besteht darin, die genannten<br />

Eigenschaften – angemessen, passend, relevant<br />

und so weiter – zu erfüllen. Dabei ist<br />

Iteration wichtiger als Spezifikation. Die<br />

Aufgabe des Teams beschränkt sich nicht<br />

nur auf die Erhebung, Analyse, Spezifi -<br />

kation und Dokumentation von Anfor -<br />

derungen, sondern auch auf die Inhalte und<br />

Bedeutungen von Anforderungen. Diese<br />

sind zwischen den Beteiligten (vor allem<br />

zwischen fachlichen Vertretern und<br />

Entwicklern) „proaktiv“ zu vermitteln und<br />

zu klären.<br />

Es gilt: Evolution ist wichtiger als<br />

Determination. Die Aufgabe des Anfor -<br />

derungsmanagements findet im Gegensatz<br />

zu den klassischen Methoden keinen eigenen<br />

Abschluss mehr, sondern ist eine, die<br />

gesamte Entwicklungszeit begleitende<br />

Tätigkeit. Agiles Anforderungsmanage -<br />

ment verlangt, dass Spezifikationen,<br />

Defini tionen und andere Artefakte jederzeit<br />

hinterfragt werden dürfen und gegebenenfalls<br />

weiterentwickelt werden. ■<br />

Literatur<br />

[Wak03] Wake, William C.: INVEST in Good<br />

Stories, and SMART Tasks, 2003:<br />

www.xp123.com<br />

Erstmals erschienen im Online Themenspecial<br />

Requirements Engineering 2012<br />

Die IBM Premium-Konferenz steht ganz im Zeichen der Innovationen<br />

von Software und Systemen. Entdecken Sie unter dem Motto „Next<br />

Now!“, wie Softwareentwicklung bereits heute die Weichen für die<br />

Innovationen von morgen stellt: Vom 14. bis 15. 11. 2012 in Pots -<br />

dam. Freuen Sie sich auf internationale Top-Keynote-Sprecher, zahlreiche<br />

Workshops und die Solution Expo. In 40 Sessions in fünf parallelen<br />

Tracks erhalten die Teilnehmer kompakt Informationen über die<br />

neuesten Entwicklungen im Software- und Systembereich.<br />

Weitere Detailinformationen finden Sie unter: www.ibm.com/de/events/innovate<br />

48 49


Haben Sie schon einmal über...<br />

Collaborative Application Lifecycle Management<br />

Dann<br />

haben<br />

die richtige<br />

wir<br />

Lektüre<br />

für<br />

Sie !<br />

Winter 2012<br />

www.OBJEKTspektrum.de<br />

...nachgedacht ?<br />

In Kooperation mit IBM<br />

SONDERBEILAGE<br />

Collaborative Application Lifecycle Management<br />

Die Zeitschrift für Software-Engineering und -Management<br />

Am 14.12.2012 erscheint unsere<br />

Sonderbeilage zum Thema CALM<br />

mit Meinungen, Lösungen und<br />

Fallbeispielen. Das rund 36 Seiten<br />

starke Magazin beschreibt die<br />

Möglichkeiten zum effizienten<br />

Tracking Ihrer Anwendungen mit<br />

zahlreichen Fachbeiträgen, Tipps<br />

und Meinungen von Experten.<br />

Das Magazin erscheint als Sonderbeilage in den Ausgaben 01/2013.<br />

Bestellen Sie Ihr persönliches und kostenloses Exemplar per E-Mail bei<br />

Birgitt.Gilis@sigs-datacom.de<br />

Betreff: CALM


fachartikel<br />

mehr zum thema:<br />

noop.nl<br />

randsinrepose.com/<br />

die autoren<br />

VON SURFERN UND<br />

SCHWERÖLTANKERN:<br />

TROTZ KULTURSCHOCK ZUM<br />

WIRTSCHAFTLICHEN ERFOLG<br />

Die agile Welt wird in der aktuellen Literatur wie eine paradiesische Insel beschrieben. Auf dieser<br />

Insel ist man angeblich angekommen, sobald die Organisation agil arbeitet. In der Umsetzung von<br />

Projekten arbeitet man jedoch selten isoliert von der Außenwelt. Es gibt Partner, Subunter nehmer<br />

oder Kunden, die ebenfalls ihren Teil zum Projekt beitragen. Nicht immer sind diese Mitstreiter<br />

agil organisiert. In der Realität sind Projekte irgendwo zwischen agilen Surfern und schwerfälligen<br />

Schweröltankern weit verbreitet. In diesem Artikel beschreiben wir, welche Herausforderungen<br />

wir erlebt und welche Best Practices wir entwickelt haben, um solche Projekte trotz aller<br />

Unterschiede in der Projektorganisation zu einem wirtschaftlichen Erfolg zu bringen.<br />

Jacob Fahrenkrug<br />

(jfahrenkrug@hypoport.de)<br />

ist Softwarearchitekt bei der HYPOPORT AG. Als<br />

Teil eines selbstorganisierten und funktionsübergreifenden<br />

Teams treibt er die Entwicklung der<br />

Finanzierungsplattform EUROPACE NL für den<br />

niederländischen Immobilienfinanzierungs-Markt<br />

voran.<br />

Unsere Organisation ist nach agilen Prin -<br />

zipien aufgestellt. Wir entwickeln und<br />

betreiben Finanzmarktplätze – differenziert<br />

nach Produktsparten, Ländern und Ziel -<br />

gruppen. Unser Hauptinteresse dabei ist es,<br />

einen möglichst erfolgreichen Marktplatz<br />

zu etablieren, da unsere Erlöse durch<br />

erfolgreich über den Marktplatz abgewi -<br />

ckelte Transaktionen entstehen. Bei der<br />

Entwicklung dieser Marktplätze arbeiten<br />

wir sehr häufig mit potenziellen oder<br />

bereits aktiven Nutzern zusammen. Bei diesen<br />

Partnern handelt es sich um Banken,<br />

Versicherungen und größere Vertriebsorga -<br />

nisa tionen von Finanzdienstleistungs -<br />

produkten.<br />

Nicht zuletzt aufgrund einer zunehmenden<br />

Regulierung des Marktes trifft man<br />

dabei vielfach auf Partner, die nach klassischen,<br />

am Wasserfallmodell orientierten<br />

Vorgehensweisen arbeiten. Insofern ist ein<br />

gemeinsames Projekt von Surfern und<br />

Schweröltankern bei uns eher die Regel als<br />

die Ausnahme.<br />

Banken und große<br />

Systemhäuser<br />

Bei der Umsetzung von Projekten mit<br />

Schwer öltankern haben wir als Surfer die<br />

Beobachtung gemacht, dass es einige<br />

Reibungspunkte gibt.<br />

Funktional aufgestellte Partner<br />

Neben den Anwendern und den Entwick -<br />

lern des neuen Produkts gibt es sehr oft<br />

Stabsstellen und Zentralfunktionen, die<br />

sich für jeweils einzelne Aspekte der<br />

Produkt entwicklung in der Verantwortung<br />

sehen. Ihr Hauptaugenmerk liegt zumeist<br />

leider nicht auf dem wirtschaftlichen Erfolg<br />

eines Produkts, sondern auf der maximalen<br />

Verwirklichung desjenigen Aspekts innerhalb<br />

des Produkts, für den sie verantwortlich<br />

sind. Da gibt es beispielsweise die<br />

Enterprise-Architekten, die unabhängig<br />

vom jeweiligen Produktkontext ihre Stan -<br />

dard-Architekturprinzipien verwirklichen<br />

wollen. Ebenso gibt es Qualitätsmanager,<br />

die auf jeden Fall erst testen wollen, wenn<br />

das Produkt in Gänze fertig gestellt ist.<br />

Diese funktionale Orientierung wird nach<br />

unserer Erfahrung sogar noch immens verstärkt,<br />

wenn sich die gesamte Organisation<br />

entlang dieser funktionalen Rollen aufgestellt<br />

hat. Neben dem abgeschwächten<br />

Fokus auf die eigentlichen Produktziele<br />

kommt dann oft noch erschwerend hinzu,<br />

dass die Mitarbeiter an diversen Themen<br />

bzw. Projekten parallel arbeiten. Aus Sicht<br />

des einzelnen Mitarbeiters besteht seine<br />

Aufgabe dann nicht in der Realisierung<br />

einer konkreten Produktidee, sondern im<br />

Ausfüllen einer Funktion (z. B. Testen) in<br />

einer Vielzahl von Produkten, die um seine<br />

Mitarbeit im Rahmen seiner Funktion konkurrieren.<br />

Vor diesem Hintergrund ist es verständlich,<br />

dass sich die Produktentwicklung eher<br />

nach einem Multi-Projekt-Monster anfühlt<br />

als nach einer gemeinsamen, am Erfolg<br />

eines Produkts ausgerichteten agilen Vor -<br />

gehensweise. Gravierende Nachteile sind<br />

dabei – neben den Aufwänden für die<br />

Planung und die Erfüllung der Planung –<br />

insbesondere auch die häufigen Kontext -<br />

wechsel bei den einzelnen Projektbe teilig -<br />

ten. Dass in dieser Situation noch Zeit für<br />

produktive Arbeit am wirtschaftlichen<br />

Erfolg des Produkts bleibt, grenzt fast<br />

schon an ein Wunder.<br />

Volker Kultermann<br />

(volker.kultermann@hypoport.de)<br />

ist Produktleiter bei der HYPOPORT AG. Er verantwortet<br />

die Entwicklung der neuen Plattform -<br />

generation von EUROPACE für den deutschen<br />

Markt. Dabei gestaltet er viele Projekte aus dem<br />

Banken- und Bausparkassenumfeld.<br />

Wirtschaftliches Setup des Projekts<br />

Eine weitere Herausforderung, die bereits<br />

sehr früh im Aufsetzen eines gemeinsamen<br />

Projekts zu meistern ist, ist die Frage nach<br />

der wirtschaftlichen Gestaltung des Pro jekts.<br />

Bei den ersten gemeinsamen Produkt -<br />

entwicklungen ist es oftmals sehr schwer,<br />

gegen das Standardmuster eines auf einem<br />

Pflichtenheft basierenden Festpreisange bots<br />

mit fest vereinbartem Projektplan anzukommen.<br />

Gibt es bereits eine Historie gemeinsamer<br />

erfolgreicher Projekte, so ist es sehr viel<br />

leichter möglich, eine Form der Zusammen -<br />

arbeit zu etablieren, bei der man gemeinsam<br />

den wirtschaftlichen Erfolg des Produkts<br />

gestaltet und nicht vorab Verhandlungen<br />

über ein Festpreisprojekt führen muss.<br />

Räumlich voneinander getrennte<br />

Projektpartner<br />

Eine ebenfalls regelmäßig anzutreffende<br />

Rahmenbedingung ist die räumliche Tren -<br />

nung von Projektpartnern. Zu der räumlichen<br />

Trennung kommt zum Teil noch<br />

erschwerend hinzu, dass die Projektpartner<br />

keine gemeinsame Muttersprache haben.<br />

Wir haben diese Herausforderung zum<br />

Beispiel bei unserem niederländischen Fi -<br />

50 51


fachartikel<br />

nanz marktplatz. Innerhalb dieses Projekts<br />

arbeiten das Entwicklerteam in Berlin und<br />

unsere Business-Analysten in den Nieder -<br />

landen. Organisatorisch stellt uns das vor<br />

einige Probleme. In agilen Projekten wird<br />

Wert darauf gelegt, möglichst direkten<br />

Kontakt zueinander zu haben. Bei einer<br />

räumlichen Trennung wird die Kommuni -<br />

kation schwieriger. Häufig muss zum<br />

Telefon gegriffen werden. Am Telefon kann<br />

nicht immer alles besprochen werden und es<br />

kommt leichter zu Missverständnissen.<br />

Jeder, der schon einmal an einem Software -<br />

design-Meeting teilgenommen hat, weiß,<br />

wie schwer es ist, ein gemeinsames Pro blemund<br />

Lösungsverständnis zu entwickeln.<br />

Selbst wenn viele Bilder am White board entstehen,<br />

diese direkt diskutiert werden und<br />

alle Teilnehmer dieselbe Sprache sprechen,<br />

ist es ein schwieriges Unterfangen. Unserer<br />

Erfahrung nach potenziert sich das Problem,<br />

sobald Sprache und Kommunikationskanäle<br />

weniger direkt sind.<br />

Meeting-Marathons<br />

Wir haben die Erfahrung gemacht, dass<br />

Banken, Systemhäuser und Finanz diens t -<br />

leister ihr Geschäft überwiegend durch<br />

aufwändige Prozesse steuern. Das liegt einerseits<br />

an besonderen rechtlichen Rah men -<br />

bedingungen und andererseits schlicht an<br />

ihrer Größe. Teil solcher Prozes se sind häufig<br />

fest vorgegebene Meetings, an denen sämtliche<br />

Stakeholder teilnehmen müssen. Diese<br />

Meetings werden dann aus Kosten gründen<br />

alle auf einen Tag gelegt. Im Ergebnis bedeutet<br />

dies häufig, dass in den meisten Meetings<br />

zu viele Leute sitzen. Das Niveau der<br />

Meetings muss so gestaltet werden, dass alle<br />

Teilnehmer verstehen, worum es geht. Viel<br />

Zeit geht verloren, weil man die<br />

Rahmenbedingungen und die Gründe für das<br />

Meeting erläutern muss. Dadurch sinkt die<br />

Produktivität der Meetings signifikant.<br />

Unser Werkzeugkasten<br />

Im Laufe der Zeit haben wir in unterschiedlichen<br />

Projekten mit verschiedenen<br />

Werkzeugen experimentiert. Die Werk -<br />

zeuge, die am besten funktionierten, stellen<br />

wir im Folgenden vor.<br />

Persönliches Netzwerk<br />

Ein persönliches Netzwerk ist eine der<br />

effektivsten Methoden, um ein gemeinsames<br />

Commitment und einen reibungslosen<br />

Fluss von Informationen zu erreichen.<br />

Jeder Mensch weiß aus eigener Erfahrung,<br />

dass es leichter ist, jemanden anzurufen,<br />

Abb. 1: Das persönliche Netzwerk.<br />

den man bereits persönlich getroffen hat,<br />

als jemand völlig Fremden. Ebenfalls<br />

bekannt ist, dass ein Telefonat oder ein<br />

Gespräch in der Kaffeeküche oft größere<br />

Erfolgs chancen haben als eine lange E-<br />

Mail. Netzwerke, die eine große Hierarchie<br />

und viele Fach bereiche überspannen, sind<br />

besonders nützlich. Es ist wichtig, sich<br />

genau zu überlegen, wie das Netzwerk aussehen<br />

sollte. Dafür braucht man Zeit, denn<br />

man muss den Partner und dessen<br />

Organisation kennenlernen. Das Netzwerk<br />

sollte aus Per sonen bestehen, die Einfluss<br />

haben. Nicht immer sind Personen mit<br />

Titeln oder Kom pe tenzträger die wahren<br />

Entscheider. Welche Rollen braucht man in<br />

einem guten persönlichen Netzwerk?<br />

Unserer Erfahrung nach braucht man gute<br />

Beziehungen zu folgenden Personenkreisen<br />

(siehe auch Abbil dung 1):<br />

■ Der Einstiegspunkt ist der Projektleiter.<br />

■ Weiterhin braucht man direkten<br />

Kontakt zu Architekten, Schnittstellen-<br />

Verantwortlichen, Testern, Key-<br />

Accoun tern und Kollegen vom Betrieb.<br />

■ Der Zugang zu Marketing und Chefs<br />

der IT-Abteilungen hilft ebenfalls.<br />

Der eine oder andere Leser wird jetzt sagen:<br />

„Toll, selbstverständlich brauche ich so ein<br />

Netzwerk! Aber warum hilft mir das<br />

besonders, wenn ich als agiler Surfer ein<br />

Projekt mit einem Schweröltanker umsetzen<br />

will?”<br />

Durch ein gutes Netzwerk kann man<br />

Entscheidungen schneller voranbringen.<br />

Weil die Entscheidungen erst möglichst spät<br />

im agilen Prozess getroffen werden, ist dies<br />

für einen agilen Projektpartner von be -<br />

sonderer Bedeutung. Es gibt nur kurze<br />

Zeitfenster für die Entscheidung, um schnell<br />

produktiv weiter zu arbeiten. Häufig ist man<br />

inmitten der Umsetzung einer Anforderung<br />

und stellt fest, dass es eine Definitionslücke<br />

gibt. Wenn man dann die aktuelle Iteration<br />

nicht abbrechen möchte, muss schnell eine<br />

Entscheidung her.<br />

In einem unserer Projekte, ging es um die<br />

Erstellung einer Schnittstelle zur Prüfung<br />

der Kreditwürdigkeit von Kreditantrags -<br />

stellern. Die Schnittstelle ist für unseren<br />

Finanzmarktplatz von besonderer strategischer<br />

Bedeutung, weil sie zu einem besseren<br />

Verhältnis von gestellten Kreditanträgen zu<br />

vermittelten Krediten führt. Je früher diese<br />

Schnittstelle also am Markt ist, desto besser<br />

6/2012


fachartikel<br />

ist dies für die Nutzer der Plattform und<br />

damit auch für uns. Unser Projektpartner<br />

war ein großer niederländischer Kredit -<br />

dienstleister mit einer funktional aufgestellten<br />

IT-Abteilung. Das bedeutete für uns,<br />

dass wir mit Mitarbeitern aus diversen<br />

Abteilungen zusammen arbeiten mussten.<br />

Wir haben drei Workshops beim Partner<br />

gebraucht, bis wir die richtigen Kollegen an<br />

einem Tisch hatten. Ab diesem Zeitpunkt<br />

konnten wir richtig Fahrt aufnehmen und<br />

die Schnittstelle gemeinsam in drei weiteren<br />

Workshops definieren. Das Ergebnis<br />

war so überzeugend, dass unser Partner in<br />

Erwägung zog, die Schnittstelle auch intern<br />

einzusetzen und anderen Partnern zur<br />

Verfügung zu stellen. Ohne ein persönliches<br />

Netzwerk hätten wir diese Qualität innerhalb<br />

von sechs Workshops zu je zwei Tagen<br />

nicht erreicht.<br />

Meetings und Meeting-Räume<br />

richtig gestalten<br />

Ein Szenario, das wir regelmäßig bei Kick -<br />

off-Veranstaltungen mit großen System -<br />

häusern und Banken erleben, ist das<br />

Folgende: Wir werden eingeladen, um den<br />

Projekt-Kickoff bei unseren Partnern<br />

durchzuführen. Uns wird ein tolles<br />

Gebäude mit einem riesigen sterilen<br />

Meeting-Raum präsentiert. Dazu kommen<br />

eine zwei Folien lange Agenda und eine<br />

ganze Armee an Teil nehmern. Es gibt einen<br />

großen Tisch in der Mitte. Auf der einen<br />

Seite sitzen unsere angehenden Partner, die<br />

andere Seite ist für uns reserviert. Meistens<br />

wird eine solche Veranstaltung zu einer<br />

Show, bei der es darum geht, klar zu<br />

machen, wer der „Boss” bei diesem Projekt<br />

sein wird.<br />

Wir sind der Meinung, dass ein solches<br />

Gebaren nicht gut für das gemeinsame<br />

Projektziel ist. Damit ein Kickoff trotzdem<br />

ein intensives Kennenlernen mit konkreten<br />

Aufgaben, Verantwortlichen und einem<br />

Folgetermin wird, haben wir einen einfachen<br />

Trick. Als erstes sollte man fragen, ob<br />

sich ein Flipchart und ein Whiteboard auftreiben<br />

lassen. In der allgemeinen Ver -<br />

wirrung kann man sich dann dem Raum<br />

widmen. Zunächst sollte man den Tisch an<br />

die Seite stellen und die Stühle im Halbkreis<br />

arrangieren (siehe Abbildung 2). Sobald<br />

Flipchart und/oder Whiteboard eintreffen,<br />

wird die Situation folgendermaßen erklärt:<br />

Das neue „Setting” des Raums führt dazu,<br />

dass alle Beteiligten in eine gemeinsame<br />

Richtung schauen. Was gut ist, da man ja<br />

ein gemeinsames Ziel hat.<br />

Abb. 2: Vergleich von Meeting-Raum-Setups.<br />

Dieser Termin soll genutzt werden, um die<br />

ersten Kontakte in Richtung persönliches<br />

Netzwerk zu knüpfen. Deshalb gibt es eine<br />

ausgedehnte Vorstellungsrunde. Jeder<br />

Teilnehmer stellt sich kurz vor und schreibt<br />

seinen Namen, E-Mail-Adresse und Telefon -<br />

nummer auf ein Flipchart. An schlie ßend<br />

darf jeder Anwesende seine wichtigste Frage<br />

für diese Veranstaltung nennen. Diese wird<br />

ebenfalls auf ein Flipchart geschrieben. Es<br />

gibt keine Pflicht, eine Frage zu formulieren.<br />

Sobald jeder einmal zu Wort gekommen ist,<br />

kann man verkünden, dass diese Fragen die<br />

Agenda des heutigen Meetings darstellen,<br />

und man sollte in eine zehn- bis fünfzehnminütige<br />

Pause gehen. Diese Pause ist wichtig<br />

für die Organisatoren, um sich mit der<br />

Situation abzufinden und sich auf das einzulassen,<br />

was gerade passiert ist.<br />

Unsere Erfahrung zeigt, dass der Verzicht<br />

auf Folien und die Entfernung der physischen<br />

Barriere in Form des Tisches sowie<br />

das persönliche Engagement (jeder Teil -<br />

nehmer hatte bereits mindestens einmal<br />

den Stift in der Hand und hat somit etwas<br />

zum Meeting beigetragen) eine positive<br />

Stimmung schaffen. Es war noch nie je -<br />

mand böse, dass die ursprüngliche Agenda<br />

nicht beachtet wurde. Bisher wurde dieses<br />

Verhalten immer als erfrischend und ausgesprochen<br />

professionell wahrgenommen.<br />

Räumliche Barrieren aufheben<br />

Ganz egal wie gut die Technik heute bereits<br />

ist, kein Telefonat und keine Video -<br />

konferenz ersetzen ein gutes Gespräch, das<br />

von Angesicht zu Angesicht geführt wird.<br />

Der direkte Kontakt zu den Kollegen ist<br />

wichtig, um das persönliche Netzwerk auszubauen<br />

und sich in Meetings nicht unproduktiv<br />

gegenüber zu sitzen. Videokon -<br />

ferenzen erzwingen ein „sich gegenüber<br />

Sitzen“. Bei Telefonaten geht ein wichtiger<br />

Kanal der Kommunikation, die Körper -<br />

sprache, verloren. Nun lässt sich nicht<br />

immer begründen, warum bei jeder Frage<br />

eine Dienstreise gebucht werden muss, aber<br />

manche Probleme lassen sich einfach nicht<br />

per Telefon oder Videokonferenz lösen. Es<br />

gibt viele Beispiele für Meetings, die sich<br />

nicht effektiv per Telefon oder Video -<br />

konferenz abhalten lassen. Dazu gehören<br />

Kickoffs und fachliche Workshops, bei<br />

denen es darum geht, ein gemeinsames<br />

Verständnis zu entwickeln. Auch Retro -<br />

spektiven, bei denen besprochen wird, wie<br />

die Zusammenarbeit bisher lief und wie sie<br />

in Zukunft laufen soll, gehören dazu.<br />

Regelmäßige Meetings, die abwechselnd<br />

an den Standorten der Beteiligten ausgerichtet<br />

werden, sind unserer Meinung nach<br />

entscheidend für ein gutes Klima im<br />

Projekt. Dadurch, dass solche Meetings<br />

häufig den ganzen Tag dauern und die<br />

Pausen gemeinsam verbracht werden, lernt<br />

man sich besser kennen. Man versteht die<br />

Ängste und Sorgen der Partner, wodurch<br />

eine Arbeitsatmosphäre geschaffen wird,<br />

die auf Verständnis und Vertrauen beruht.<br />

Die zuerst vielleicht abschreckend wirken-<br />

52 53


Partner mit dem agilen Virus infizieren<br />

Partner, die wenig Erfahrungen mit agilen<br />

Projekten haben, fokussieren sich häufig<br />

auf lokale Probleme. Dieses Denken führt<br />

dazu, dass jeder Projektpartner versucht,<br />

innerhalb klarer Grenzen möglichst kostengünstig<br />

durch das Projekt zu kommen.<br />

In agilen Projekten gibt es solche Gren -<br />

zen nicht. Es wird sich einem höheren Ziel<br />

unterworfen: dem gemeinsamen Business-<br />

Case. Ohne einen solchen Business-Case<br />

würde es das Projekt nicht geben. Natür -<br />

lich sind Kosten auch in agilen Projekten<br />

eine wichtige Dimension, jedoch wird diese<br />

nicht über alles gestellt. Aus unserer Sicht<br />

macht es wenig Sinn, harte Grenzen zwischen<br />

den Partnern zu ziehen. Das Konzept<br />

hinter dieser Philosophie nennen wir<br />

Achievement by Caring. Dadurch, dass sich<br />

alle Beteiligten dem „höheren Ziel” (dem<br />

gemeinsamen Business-Case) unterwerfen,<br />

gibt es keine Grenzen. Aufgaben werden da<br />

erledigt, wo die Kompetenzen liegen, nicht<br />

da, wo die Budgets größer sind. Wenn<br />

Wissen und/oder Fertigkeiten zwischen den<br />

Partnern verteilt sind, werden die Aufgaben<br />

gemeinsam erledigt. Das fördert die<br />

Verteilung von Wissen und ein Gefühl von<br />

Zusammenhalt. Dieses Konzept ist kein<br />

Hexenwerk und den meisten Menschen<br />

durchaus bewusst. Leider wird in Kosten<br />

getriebenen Projekten häufig dieses höhere<br />

Ziel dem Budget untergeordnet.<br />

Die beste Möglichkeit, diese Denkweise<br />

zu durchbrechen, ist, einige ausgewählte<br />

einflussreiche Personen aus dem persönlichen<br />

Netzwerk mit dem agilen Virus zu<br />

infizieren. Auch diese Methode konnten<br />

wir erfolgreich in dem erwähnten Schnitt -<br />

stellen-Projekt einsetzen. Zu Beginn unserer<br />

Workshops haben wir viel mit dem<br />

Projektleiter unseres Partners über Res -<br />

sour cen diskutieren müssen. Nach den<br />

ersten drei Workshops haben sich drei der<br />

Mitarbeiter unseres Partners persönlich<br />

engagiert und das Projekt und die Ver -<br />

fügbarkeit von Ressourcen von innen vorfachartikel<br />

den Kosten für Dienstreisen sind gut inves -<br />

tiertes Geld. An dieser Stelle möchten wir<br />

gerne das obige Beispiel aus unserem<br />

Schnittstellenprojekt nochmals anbringen.<br />

Für dieses Projekt sind zu jedem der sechs<br />

Workshops drei unserer Mitarbeiter zu<br />

unserem Partner in die Niederlande geflogen.<br />

Stellt man die Reisekosten nun ins<br />

Verhältnis zu den anschließend aufgetretenen<br />

Wartungskosten aufgrund von Spezifi -<br />

kationsfehlern, so fällt die Bilanz klar zu<br />

Gunsten der Reisekosten aus. Bei einem<br />

anderen, früheren Schnittstellenprojekt mit<br />

demselben Partner haben wir versucht, die<br />

Reisekosten zu sparen, und kämpfen noch<br />

heute mit den immer wieder auftretenden<br />

Systemfehlern.<br />

Fragen statt erklären<br />

In agilen Organisationen sind funktionsübergreifende<br />

Teams ein wesentliches<br />

Standbein des Projekt-Setups. Das hat den<br />

Vorteil, dass Spezialwissen schnell auf viele<br />

Teammitglieder verteilt wird:<br />

■ Mittelfristig werden so die Entwickler<br />

zu kleinen Domänenexperten und Tes -<br />

tern.<br />

■ Die Tester werden zu kleinen Entwick -<br />

lern und Domänenexperten.<br />

■ Die Domänenexperten werden zu kleinen<br />

Testern und Entwicklern.<br />

Das heißt nicht, dass jeder alles perfekt<br />

beherrscht, aber jedes Teammitglied hat so<br />

viel Einblick in die Tätigkeiten der Kol -<br />

legen, dass bei Engpässen ausgeholfen werden<br />

kann. Durch die regelmäßigen<br />

Meetings werden außerdem Moderations -<br />

techniken und der Umgang mit Medien wie<br />

Flip charts, Meta-Planwänden und White -<br />

boards professionalisiert.<br />

Wenn ein solcher „Alleskönner” auf<br />

Part ner trifft, die funktional organisiert<br />

sind, kann es leicht passieren, dass die<br />

Partner überrannt werden. Im schlimmsten<br />

Fall werden die Mitarbeiter aus dem agilen<br />

Team als überheblich und besserwisserisch<br />

wahrgenommen. Deshalb ist es unserer<br />

Meinung nach wichtig, möglichst wenig<br />

inhaltlich zu dozieren, denn die Partner<br />

sind auch Profis auf ihrem Gebiet und es<br />

gibt garantiert eine Menge Dinge, die man<br />

von ihnen lernen kann. Das Motto, das wir<br />

uns dabei zunutze machen, ist: Zuhören,<br />

um zu verstehen, anstatt zuzuhören, um zu<br />

antworten. Wenn man verstehen möchte,<br />

was den Partner zu bestimmten Entschei -<br />

dungen treibt, muss man Fragen stellen.<br />

Durch Fragen ist der Partner auch weiterhin<br />

involviert und weiß, dass es um ihn<br />

geht und nicht um eine weitere<br />

Selbstdarstellungsshow der coolen agilen<br />

Truppe. Fragen sorgen ebenfalls dafür, dass<br />

der Partner mit eigenen kreativen Lösungs -<br />

vorschlägen kommt. Ein Vorschlag aus den<br />

eigenen Reihen hat eine deutlich höhere<br />

Chance, am Ende auch umgesetzt zu werden,<br />

als eine Lösung, die von außen<br />

kommt.<br />

Praktisch,<br />

klar, effektiv!<br />

Inkl. kostenlosem<br />

E-Book!<br />

Chris Rupp, Stefan Queins, die SOPHISTen<br />

UML 2 glasklar<br />

Praxiswissen für die UML-Modellierung<br />

4., aktualisierte und erweiterte Auflage. 580 Seiten<br />

Flexibler Einband. € 34,90<br />

ISBN 978-3-446-43057-0<br />

Inkl. kostenlosem<br />

E-Book!<br />

Gernot Starke<br />

Effektive Softwarearchitekturen<br />

Ein praktischer Leitfaden<br />

5., überarbeitete Auflage<br />

426 Seiten. Flexibler Einband<br />

€ 44,90<br />

ISBN 978-3-446-42728-0<br />

Chris Rupp, die SOPHISTen<br />

Requirements-Engineering<br />

und -Management<br />

Professionelle, iterative<br />

Anforderungsanalyse für die Praxis<br />

5., aktualisierte und erweiterte<br />

Auflage. 569 Seiten<br />

Flexibler Einband. Vierfarbig<br />

€ 49,90<br />

ISBN 978-3-446-41841-7<br />

Jetzt direkt bestellen!<br />

Carl Hanser Verlag <strong>GmbH</strong> & Co. KG<br />

direkt@hanser.de<br />

6/2012<br />

www.hanser-fachbuch.de/computer<br />

www.hanser.de/computer


fachartikel<br />

■ Dem klassischen Auftraggeber verlangt<br />

dies ein höheres Maß an Vertrauen ab.<br />

■ Für den klassischen Lieferanten bedeutet<br />

es, dass er die von ihm bearbeiteten<br />

Themen aus Marktsicht und wirtschaftlicher<br />

Sicht verstehen und bewerten<br />

muss. Dies ist eine wesentlich größere<br />

Herausforderung, als diese lediglich<br />

inhaltlich durchdringen und<br />

umsetzen zu müssen.<br />

Abb. 3: Chancen- und Risikoverteilung im Projektsetup.<br />

angetrieben. Beim letzten Workshop war<br />

sogar der Meeting-Raum bereits so vorbereitet,<br />

dass kein Tisch im Weg stand, und<br />

wir hatten ausreichend Flipchart-Papier<br />

und -Marker.<br />

Um es mit den Worten von Jurgen Apello<br />

zu sagen: Change Agents werden ausfindig<br />

gemacht und Change Agents leben das<br />

gewünschte Verhalten vor. Diese Vorbilder<br />

generieren dann Nachahmer (frei übersetzt<br />

aus [App12]). Getreu dem Motto „Think<br />

Big”, kann dadurch sogar eine ganze Orga -<br />

nisation des Partners agil werden (dieses<br />

Ziel haben wir noch nie erreicht, aber es ist<br />

schön, davon zu träumen).<br />

Wirtschaftliches Setup des Projekts<br />

„Ich will wissen, was genau ich wann<br />

bekomme und wie viel es mich kostet.” Die<br />

meisten Gespräche bezüglich eines Projekt-<br />

Setups folgen diesem Muster. Bei einem<br />

klassischen Lieferanten-Auftraggeber-Ver -<br />

hält nis ist das auch ein legitimer Ansatz.<br />

Schließlich trägt das Risiko des wirtschaftlichen<br />

Erfolgs allein der Auftraggeber,<br />

wohingegen der Lieferant nur das Risiko<br />

der Erbringung einer Leistung trägt. Man<br />

kann dort zwar über eine lange Zusam -<br />

menarbeit das gegenseitige Vertrauen ausbauen<br />

– der Tenor der Zusammenarbeit<br />

wird sich dadurch allerdings nicht grundlegend<br />

ändern.<br />

Unser Ziel ist eine konstruktive Zusam -<br />

menarbeit auf Augenhöhe, die bei allen<br />

Beteiligten den wirtschaftlichen Erfolg des<br />

Produkts ins Zentrum rückt. Das lässt sich<br />

jedoch nur erreichen, indem man das<br />

Lieferanten-Auftraggeber-Verhältnis aufbricht<br />

bzw. dieses klassische Muster in der<br />

Zusammenarbeit erst gar nicht etabliert.<br />

Nur wenn alle Projektbeteiligten, wie in<br />

Abbildung 3 dargestellt, gleiche Chancen<br />

und Risiken und damit auch gleiche<br />

Zielsysteme haben, wird dies nach unserer<br />

Erfahrung auch gelingen. Erreicht werden<br />

kann das, indem die klassische Vergütung in<br />

Form von fest vereinbarten Zahlungen nach<br />

Projekt- bzw. Entwicklungsfortschritt vermieden<br />

wird. An ihre Stelle tritt eine laufende<br />

Beteiligung am Erfolg des Pro dukts.<br />

Das hat natürlich Auswirkungen auf die<br />

Projektbeteiligten:<br />

Der Lohn für dieses beiderseitige Invest -<br />

ment ist eine Harmonisierung der Ziel -<br />

systeme. Dadurch werden lokale Opti -<br />

mierungen (z. B. Minimierung des eigenen<br />

Aufwands) vermieden und alle Beteiligten<br />

arbeiten mit ganzer Kraft für ein erfolgreiches<br />

Produkt.<br />

Wie kann so etwas in der Realität aussehen?<br />

Bei den von uns entwickelten und<br />

betriebenen Finanzmarktplätzen wird für<br />

jede erfolgreiche Transaktion eine geringe<br />

Gebühr fällig. Diese Transaktionsgebühr<br />

motiviert uns, bestimmte Produktentwick -<br />

lungen mit Partnern durchzuführen – oder<br />

auch nicht. Eine klassische Projektvergü -<br />

tung nach dem beschriebenen Lieferanten-<br />

Auftraggeber-Verhältnis ist in einigen<br />

Projekten dann zwar immer noch vorhanden,<br />

tritt aber absolut in den Hintergrund<br />

und bestimmt nicht die Art der Zu sam -<br />

menarbeit.<br />

Ein weiterer, von uns häufig beobachteter<br />

Nebeneffekt dieses Ansatzes ist die bei<br />

großen Partnern sehr viel einfachere Bud -<br />

getierung einer gemeinsamen Produktent -<br />

wick lung. Für große, klassisch aufgestellte<br />

Projekte müssen häufig komplexe Budge -<br />

tierungsprozesse durchlaufen werden.<br />

Leistungen müssen vorab möglichst detailliert<br />

beschrieben und Stundensätze verhandelt<br />

werden. Tritt an diese Stelle jedoch<br />

eine laufende Partizipation am gemeinsamen<br />

wirtschaftlichen Erfolg, so entspricht<br />

dies Vertriebs- oder Produktionskosten. Da<br />

diese nicht wie bei Projekten vorab anfallen,<br />

sondern im laufenden Geschäftsbetrieb<br />

im Rahmen des Vertriebs bzw. der Pro -<br />

duktion, führt dies – insbesondere in großen,<br />

klassisch aufgestellten Organisationen<br />

– zu einem sehr viel einfacheren Start der<br />

Zusammenarbeit als die Budgetierung und<br />

Planung eines gemeinsamen klassischen<br />

Projekts.<br />

Zusammenfassung<br />

Schweröltanker und Surfer haben beide<br />

ihre Daseinsberechtigung. Und je nach<br />

Aufgabe kann der eine oder andere zum<br />

Einsatz kommen. Man muss sich bewusst<br />

machen, dass Schweröltanker aufgrund<br />

ihrer Schwere und Größe hochseetauglich<br />

sind. Sie sind in der Lage, mal ein Unwetter<br />

zu überstehen, und können große Mengen<br />

54 55


fachartikel<br />

Öl über eine weite Strecke transportieren.<br />

Dabei haben sie nicht die Fähigkeit, schnell<br />

zu reagieren. Beim Bremsen, Beschleunigen<br />

und Lenken greift das Gesetz von der<br />

Trägheit der Masse.<br />

Surfer sind klein, leicht und wendig.<br />

Kurs änderungen sind jederzeit möglich.<br />

Innerhalb von Sekunden können sie Fahrt<br />

aufnehmen und abbremsen. Die Wellen<br />

werden nicht gebrochen, sondern die<br />

Energie der Wellen wird genutzt, um<br />

schneller und langsamer zu werden. Jedoch<br />

kann mit einem Surfbrett keine große<br />

Menge auf einmal transportiert werden.<br />

Auch weite Strecken können nicht am<br />

Stück gefahren werden.<br />

Wir haben in diesem Artikel beschrieben,<br />

dass es einige Herausforderungen gibt,<br />

wenn Surfer und Schweröltanker gemeinsam<br />

dasselbe Ziel ansteuern. Unsere<br />

Erfahrungen lassen sich wie folgt zusam -<br />

menfassen:<br />

■<br />

Wichtig ist die Bildung eines persönlichen<br />

Netzwerks, damit die richtigen<br />

Leute zum richtigen Zeitpunkt<br />

Entschei dungen treffen können. Ein<br />

persönliches Netzwerk hilft besonders,<br />

wenn man es mit einem funktional aufgestellten<br />

Partner zu tun hat. Wenn das<br />

persönliche Netzwerk Entscheidungs -<br />

träger aus jedem Funktionsbereich des<br />

Partners umspannt, können schnell die<br />

richtigen Leute zusammengebracht und<br />

eine Entscheidung herbeigeführt werden,<br />

die ohne ein solches Netzwerk<br />

Mo nate dauern würde.<br />

■ Durch ein kommunikationsförderndes<br />

Setup von Meeting-Räumen und eine<br />

Moderation, die alle Meeting-Teil -<br />

nehmer dazu bringt, sich zu engagieren,<br />

werden aus Meeting-Marathons produktive<br />

soziale Events, die das Team<br />

zusammenschweißen.<br />

■ Wenn man das Gefühl hat, dass der<br />

Projektpartner bei einem bestimmten<br />

Problem nicht die optimale Lösung<br />

gewählt hat, sollte man durch Fragen<br />

versuchen, die Beweggründe zu ermitteln.<br />

Das schafft Verständnis und<br />

Vertrauen. Fragen sind ebenfalls ein<br />

gutes Mittel gegen Meeting-Mara -<br />

thons. So kann schon im Vorfeld<br />

hinterfragt werden, ob der Teilneh mer -<br />

kreis der richtige ist oder ob es sinnvoll<br />

ist, ein komplexes fachliches Problem<br />

nach einem anstrengenden Arbeitstag<br />

um 18:30 Uhr zu klären.<br />

■ Räumliche Barrieren sollten soweit wie<br />

möglich eliminiert werden, um die<br />

Missverständnisse, die aufgrund von<br />

fehlenden Kommunikationskanälen<br />

entstehen, zu vermeiden. Gegen eine<br />

räumliche Trennung hilft nur eins: Man<br />

muss sich an einem gemeinsamen Ort<br />

treffen und so oft wie möglich gemeinsam<br />

arbeiten. Dadurch können auch<br />

sprachliche Missverständnisse schneller<br />

aufgelöst werden.<br />

■ Das Infizieren von einzelnen Mitar -<br />

beitern des Schweröltankers mit dem<br />

agilen Virus führt dazu, dass Entschei -<br />

dungen und Vorgehensweisen auch von<br />

innen heraus angestoßen werden.<br />

■<br />

Veränderungen, die aus den eigenen<br />

Reihen kommen, werden schneller<br />

akzeptiert als solche, die von außen<br />

kommen. Damit ist die aktive Verbrei -<br />

tung des agilen Virus ein sehr gutes<br />

Mittel gegen funktional aufgestellte<br />

Partner. Diese Methode kann ebenfalls<br />

benutzen werden, um Veränderungen<br />

am wirtschaftlichen Setup zu erreichen.<br />

Ist das Projekt dann so gestaltet, dass<br />

alle Beteiligten am wirtschaftlichen<br />

Erfolg partizipieren statt an der<br />

Erbringung einzelner Leistungen, sind<br />

die Weichen für eine erfolgreiche Zu -<br />

sammenarbeit richtig gestellt. Das<br />

Projekt-Setup entsprechend zu gestalten,<br />

ist eine besonders schwere Auf gabe, die<br />

nur durch gegenseitiges Verständnis und<br />

Vertrauen zwischen den Projektpart nern<br />

gemeistert werden kann. Alle in diesem<br />

Artikel vorgestellten Werkzeuge helfen<br />

dabei, genau das herzustellen.<br />

In einer Welt voller Surfer und Schwer -<br />

öltanker, die gemeinsam Projekte umsetzen<br />

wollen, versuchen wir, unsere Erfahrungen<br />

zu teilen. Unser Ziel ist es, dass auch andere<br />

Surfer gemeinsam mit Schweröltankern<br />

ans Ziel gelangen.<br />

■<br />

Literatur<br />

[App12] J. Appelo, How to Change the World:<br />

Change Management 3.0, Jojo Ventures BV<br />

2012<br />

Vorsprung durch Schulungen von innoQ<br />

Certified Professional for Software Architecture (iSAQB ® ) ·<br />

Ruby on Rails · RESTful HTTP · Cloud Computing · Webarchitektur<br />

www.innoQ.com/training<br />

Unsere Standorte in Ihrer Nähe: Düsseldorf · Frankfurt · München · Zürich


WIR<br />

SUCHEN<br />

DICH!<br />

SOA<br />

SCRUM<br />

CMS<br />

KONZEPTION<br />

TESTING<br />

BPM<br />

.NET<br />

EAI<br />

PROJEKTMANAGEMENT<br />

SHAREPOINT<br />

CRM<br />

IDENTITY MANAGEMENT<br />

BIZTALK<br />

ANALYSE<br />

Acando freut sich<br />

auf neue Kollegen<br />

mit Microsoft- oder<br />

Java-Know-how<br />

Consultant bei Acando<br />

Die Acando Group ist eine internationale Management- und IT-Beratung mit Sitz in Stockholm. Rund 1.000 Mitarbeiterinnen<br />

und Mitarbeiter in fünf Ländern machen Acando mit ihrem Know-how und ihrer Leidenschaft zu einem<br />

angesehenen Dienstleister auf dem europäischen Markt. In Deutschland sind wir rund 300 Kolleginnen und Kollegen<br />

am Hauptstandort im Herzen von Hamburg und in vier weiteren Metropolen. Vielseitige Projekte, ein transparentes<br />

Karriere-Konzept und aktiv gelebter Teamgeist zeichnen Acando als attraktiven Arbeitgeber für Berufseinsteiger und<br />

erfahrene Experten aus.<br />

Consultants für die Standorte<br />

Hamburg, Düsseldorf, Frankfurt a. M., Stuttgart, München<br />

Kontakt<br />

Franziska Schlüter<br />

Bewerbung<br />

www.acando.de


expedITion-Workshops<br />

– jetzt bewerben –<br />

Capgemini-expedITion.de<br />

Schließlich haben wir das Wichtigste ja gemeinsam und sehen IT-Architektur nicht<br />

als Bereich, sondern als etwas, das uns jeden Tag aufs Neue begeistert. Klingt<br />

inspirierend? Dann sehen Sie sich unsere Angebote für angehende und erfahrene<br />

IT-Architekten an, die unter www.de.capgemini.com/karriere-technology schon auf<br />

Sie warten. Zum Beispiel:<br />

IT-Architekt (m/w) Public Sector<br />

IT-Architekt (m/w) Banken und Versicherungen<br />

IT-Architekt (m/w) Logistik<br />

IT-Architekt (m/w) Automotive<br />

Substanz? Herzlich? Willkommen!


Machen Sie Karriere<br />

SW-Testautomatisierer (m/w)<br />

Dienstort: München, Wien, Linz, Graz oder Lustenau<br />

Unsere Testautomatomatisierer werden nach einer eingehenden<br />

Certified Tester Schulung und Tool-Einarbeitung laufend<br />

in spannenden Entwicklungsprojekten zur Qualitätssicherung<br />

von Software und neuen Technologien eingesetzt.<br />

Ihre Aufgaben- und Verantwortungsbereiche:<br />

▪ Testautomatisierung<br />

▪ Entwicklung von Test-Frameworks<br />

▪ Erstellung von Testtreibern und -Scripts<br />

▪ Durchführung von Software-Tests inkl. Testprotokollierung<br />

Wir freuen uns über folgende Eigenschaften:<br />

▪ Fundierte Erfahrung und entsprechende Ausbildung in der<br />

Software-Entwicklung (Informatik HTL, FH, UNI)<br />

▪ Sehr gute Kenntnisse in Java- oder .Net-Entwicklungsumgebungen<br />

▪ Erfahrung im Software-Test von Vorteil (z.B. Unit-Test-<br />

Erstellung oder sonstige Testautomatisierung; wird durch<br />

unser Ausbildungsprogramm ergänzt)<br />

▪ Kenntnisse von Testautomatisierungstools<br />

von Vorteil<br />

▪ Genauigkeit und analytisches Denken<br />

▪ Reisebereitschaft (projektabhängig)<br />

▪ Persönliches Engagement<br />

Trainer und Berater (m/w)<br />

Dienstort: München, Wien, Linz, Graz oder Lustenau<br />

Ihre Aufgaben- und Verantwortungsbereiche:<br />

▪ Durchführen von Trainings in den Bereichen ISTQB, IREB,<br />

ISAQB, Software-Testing und Qualitätsmanagement<br />

▪ Beratung in IT-Qualitätsmanagement, Software- und<br />

System-Qualitätsmanagement<br />

▪ Methodische Beratung<br />

(z.B. Requirements-Engineering,<br />

Testen, Review-Techniken)<br />

▪ IT-Prozess-Beratung, Prozess-<br />

Analysen bei unseren Kunden<br />

Wir freuen uns über folgende Eigenschaften:<br />

▪ Fundierte Ausbildung (z.B. Studium Wirtschafts-<br />

Informatik, Informatik oder entsprechende andere<br />

Weiterbildungen)<br />

▪ Mindestens 5 Jahre praktische Erfahrung in Entwicklung,<br />

Projektmanagement oder Qualitätsmanagement von SW<br />

▪ Wenn möglich bereits Erfahrung als<br />

Trainer in SW-Entwicklungsthemen<br />

▪ Kommunikative und offene<br />

Persönlichkeit<br />

▪ Seriöses Auftreten<br />

▪ Reisebereitschaft<br />

▪ Persönliches Engagement<br />

Wir bieten Ihnen<br />

▪<br />

▪<br />

▪<br />

▪<br />

▪<br />

▪<br />

▪<br />

Attraktive Position mit Entwicklungspotential in einem jungen und dynamisch wachsenden Unternehmen<br />

Persönlich beeinflussbare Verantwortungsbereiche sowie interessante Zukunftsperspektiven<br />

Laufende Aus- und Weiterbildung<br />

Gutes leistungsorientiertes Gehaltspaket: außergewöhnliches Engagement und Erfolg werden belohnt!<br />

Moderne Arbeitsmittel und flexibles Arbeitszeitmodell<br />

Unterschiedliche Benefits und Sozialleistungen<br />

Corporate Social Responsibility<br />

Bewerben Sie sich jetzt!<br />

www.software-quality-lab.com/karriere/<br />

2013 Besuchen Sie uns bei den<br />

Software Quality Days 2013!<br />

Jetzt online anmelden! www.software-quality-days.com


Zukunft bewegen.<br />

„Lösungen für die Zukunft entwickeln.<br />

Und die eigenen Karrierechancen.<br />

Bei DB Systel.“<br />

Die Deutsche Bahn ist ein führendes Mobilitäts- und Logistikunternehmen. Unsere<br />

Tochter DB Systel <strong>GmbH</strong> ist einer der größten Anbieter von ICT-Services in Deutschland<br />

und deckt dabei den gesamten Lebenszyklus von ICT-Lösungen ab. Von der strategischen<br />

Planung über die fachliche Analyse und die Entwicklung bis hin zu Betrieb und kontinuierlicher<br />

Optimierung.<br />

Wir suchen zum nächstmöglichen Termin in Frankfurt am Main engagierte<br />

(Senior-)Softwareentwickler und Technische Architekturexperten<br />

u. a. für folgende Technologieschwerpunkte:<br />

SAP, BusinessObjects, SharePoint<br />

JEE, Oracle, DB2<br />

Mobile Applikationen (iOS, BlackBerry, Android)<br />

EAI, SOA, MDM, BPM<br />

Ihr Profil:<br />

abgeschlossenes einschlägiges Studium an einer Hochschule oder Fachhochschule<br />

oder durch entsprechende einschlägige berufliche Erfahrung erworbene Kenntnisse<br />

im Tätigkeitsbereich und angrenzenden Aufgabengebieten<br />

gute Englischkenntnisse in Wort und Schrift<br />

Kommunikations- und Teamfähigkeit<br />

hohe Kunden- und Serviceorientierung<br />

Ziel- und Ergebnisorientierung<br />

Zuverlässigkeit und Verantwortungsbewusstsein<br />

Interessiert? Dann senden Sie Ihre aussagekräftige Bewerbung bitte unter Angabe des<br />

Ausschreibungskennworts, Ihres frühestmöglichen Eintrittstermins und Ihrer Jahresbrutto-<br />

Gehaltsvorstellung an:<br />

DB Mobility Logistics AG<br />

Personalgewinnung<br />

Bewerbermanagement Professionals<br />

Ausschreibungskennwort: OBJEKTspektrum Softwareentwicklung<br />

Caroline-Michaelis-Str. 5–11<br />

10115 Berlin<br />

E-Mail: bewerbung@dbsystel.de<br />

Fragen beantworten wir Ihnen unter unserer Bewerberhotline gerne montags bis freitags von<br />

10:00 bis 12:00 Uhr und von 14:00 bis 16:00 Uhr unter der Telefonnummer 069 265-18601.<br />

Informationen zur DB als Arbeitgeber und zu den vielfältigen Einstiegsmöglichkeiten erhalten<br />

Sie unter www.deutschebahn.com/karriere sowie unter www.dbsystel.de/karriere.


0 5<br />

Unterstützung im<br />

Softwareprojekt<br />

cover_OS_05_12:cover_OS_05_09.qxd 03.08.12 10:53 Seite 1<br />

Poster zu<br />

GUI-Technologien<br />

www.OBJEKTspektrum.de<br />

<strong>SCHWERPUNKT</strong>: AGILE@ENTERPRISE<br />

G 6540F<br />

September/ Oktober 2012 • Nr. 5<br />

€ 8,90 Österreich € 9,90 Schweiz sfr 16,50<br />

Die Zeitschrift für Software-Engineering und -Management<br />

<strong>SCHWERPUNKT</strong>: AGILE@ENTERPRISE<br />

Agiles Management – ein Widerspruch in sich?<br />

Praxisbeispiel: Allianz Global Insurance<br />

Zertifizierungsmöglichkeiten<br />

INTERVIEW MIT KEN SCHWABER: „Agilität ist keine Methode”<br />

FACHARTIKELTotal Quality Management in der IT<br />

COBOL im 21. Jahrhundert<br />

Jeden Tag sind Sie aktiv in Softwareentwicklungsprojekten<br />

involviert und managen sie. Wie erläutern Sie Ihrem<br />

übergeordneten Projektverantwortlichen die neuesten Trends<br />

und belegen die Wirtschaftlichkeit der richtigen Technologie?<br />

OBJEKTspektrum unterstützt Sie bei der Argumentation<br />

und liefert Ihnen wertvolle Anregungen für den Alltag<br />

des Software-Engineerings.<br />

JavaSPEKTRUM ist das Praxismagazin für professionelle<br />

Softwarearchitekten und Entwickler, die mit der Java-Plattform<br />

arbeiten. Das Heft stellt neue Entwicklungen und Konzepte vor, prüft<br />

die Relevanz für den täglichen Einsatz. Es werden aktuelle Themen<br />

wie Aspektorientierung, Agilität, Eclipse, Embedded vertieft. Wie<br />

Java mit anderen Plattformen in der Praxis effizient interagieren<br />

kann, erfahren Sie in der Rubrik „Integrationsspektrum“.<br />

Java SPEKTRUM<br />

Alle Jahresabonnementen erhalten einen persönlichen Login zu allen Artikel-pdfs.<br />

Wir benötigen hierfür unbedingt Ihre e-Mail-Adresse.<br />

Bitte schicken uns diesen Bestellschein ausgefüllt per Fax (+49 (0)2241/2341-199)<br />

zurück oder gehen Sie online unter www.sigs.de/publications/aboservice.htm<br />

Schwerpunkt Java in the box: Mobil, Embedded, Robotik<br />

G30325 www.javaspektrum.de<br />

Ste lenmarkt<br />

ab Seite 41<br />

weitere Angebote<br />

online<br />

AUSGABE 5 · Oktober / November ’12<br />

D / 6,40 · A / 7,30 · SFR 12,50<br />

mit Integrations-<br />

4 1 9 4 1 5 6 1 0 6 4 0 5<br />

Magazin für professionelle Entwicklung und Integration von Enterprise-Systemen<br />

Schwerpunkt<br />

Java in the box:<br />

Mobil, Embedded, Robotik<br />

Unternehmensanwendungen<br />

mit<br />

Oracle ADF Mobile<br />

Echtzeit-Java-Technologie<br />

in sicherheitskritischen<br />

Systemen<br />

Javas Erfolg<br />

in der Industrie<br />

Java 7: Das Fork-Join-Framework<br />

für mehr Performance<br />

Testen – Teil 3: Feinabstimmung<br />

von Entwickler- und Testteams<br />

Eine Lanze für XML brechen<br />

mit<br />

Java User Group-<br />

Terminen<br />

cover_JS_05_12.in d 1 29.08.12 08:25<br />

+++ Jetzt bestellen +++<br />

Hiermit bestelle ich<br />

ein Mini-Abo mit 3 Ausgaben für nur 15,00 €:<br />

q OBJEKTspektrum* q JavaSPEKTRUM*<br />

*wandelt sich automatisch in Jahresabo um, wenn nicht 6 Wochen vor Ende des Bezugszeitraums gekündigt wird<br />

ein Jahresabonnement: Deutschland Europa Auß. Europa<br />

OBJEKTspektrum (OS) q 50,90 € q 58,60 € q 63,60 €<br />

JavaSPEKTRUM (JS) q 36,60 € q 42,00 € q 49,00 €<br />

Kombi-Abo (OS+JS) q 81,30 € q 95,40 € q 105,00 €<br />

ein kostenloses Probeheft<br />

q OBJEKTspektrum q JavaSPEKTRUM<br />

Firma:<br />

Name:<br />

Straße:<br />

Telefon:<br />

e-Mail:<br />

Zahlungswunsch: q per Rechnung<br />

Abteilung:<br />

Vorname:<br />

L/PLZ/Ort:<br />

Telefax:<br />

Position:<br />

q per Kreditkarte – wir rufen Sie an unter Tel.-Nr.:<br />

q per Bankeinzug Kto.-Nr.: BLZ: Bank:<br />

Datum:<br />

Unterschrift:<br />

Verlagsanschrift: SIGS DATACOM <strong>GmbH</strong>, Lindlaustr. 2c, 53842 Troisdorf, Tel.-Nr.: +49 (0) 2241/2341-100, Fax-Nr.: +49 (0) 2241/2341-199, info@sigs-datacom.de<br />

Die vollständigen AGBs finden Sie unter http://www.sigs-datacom.de/agb/


fachartikel<br />

der autor<br />

m e h r z u m t h e m a :<br />

vector.com/RE-Buch<br />

vector.com/RE-Publikationen<br />

ANFORDERUNGEN ERMITTELN:<br />

ZEHN SCHRITTE FÜR DIE PRAXIS<br />

Eine Anforderung beschreibt, was der Kunde oder Benutzer vom Produkt erwarten. Dies<br />

umfasst Ziele, Nutzen, Funktionen, Qualitätseigenschaften und Randbedingungen. Doch woher<br />

kommen die Anforderungen? Sammelt man Anforderungen nur ein, floppt das spätere<br />

Produkt, weil die Eigenschaften fehlen, die ein Produkt erst richtig attraktiv machen.<br />

Anforderungen müssen gezielt entwickelt werden – und das ist nicht einfach. Im Folgenden<br />

beschreibe ich die methodische Ermittlung von Anforderungen in zehn Schritten. 1 )<br />

Christof Ebert<br />

(Christof.Ebert@vector.com)<br />

ist Geschäftsführer der Vector Consulting Services.<br />

Er unterstützt Unternehmen weltweit bei der<br />

Optimierung ihrer Produktentwicklung und<br />

-strategie sowie im Veränderungsmanagement.<br />

Er lehrt an der Universität Stuttgart.<br />

Erfolgreiche Anforderungen<br />

Die Saturn-V-Rakete ist die größte jemals<br />

gebaute Rakete. Mit ihr wurden die ersten<br />

Menschen zum Mond gebracht. Der deutsche<br />

Wernher von Braun wusste als ihr<br />

Konstrukteur, dass der Schlüssel zum Er -<br />

folg in abgestimmten Anforderungen lag.<br />

Eine wichtige Anforderung war, wie viel<br />

Gewicht die Saturn V transportieren muss.<br />

Das war eine fundamentale Anforderung<br />

im gesamten Raumfahrtprogramm, denn<br />

nur mit ausreichend Schub konnte die<br />

Raumkapsel die Erde verlassen. Doch verschiedene<br />

kritische Anforderungen hingen<br />

voneinander ab: Startgewicht, Manövrier -<br />

fähigkeit und auch die große Menge<br />

Treibstoff waren bei starkem Schub kaum<br />

beherrschbar. Was tun? Von Braun analysierte<br />

die Anforderungen und Randbe din -<br />

gungen und erhielt vom NASA-Manage -<br />

ment nach einiger Zeit die Antwort, dass<br />

die Raumkapsel maximal 34 Tonnen wiegen<br />

würde. Diese Schätzung wäre verlässlich,<br />

wäre sicher genug und er solle nun die<br />

Rakete dazu konstruieren. Von Braun<br />

machte weitere methodische Analysen und<br />

kommunizierte seinen Entwicklungsleitern,<br />

dass die Rakete eine Zuladung von 40<br />

Tonnen transportieren müsse. Das erforderte<br />

substanzielle Änderungen des ur -<br />

sprüng lichen Designs, beispielsweise fünf<br />

statt vier Triebwerke.<br />

Einige Jahre später kam dann die Apollo-<br />

11-Kapsel zum Start – und wog 50 Tonnen.<br />

Der Start der Saturn mit dieser Zuladung<br />

gelang zwar gerade noch, wäre aber mit<br />

den ursprünglichen Anforderungen<br />

geschei tert. Der Rest ist Geschichte – und<br />

zeigt die Bedeutung einer methodischen<br />

Anforderungsermittlung.<br />

Software- und IT-Projekte sind häufig in<br />

der gleichen Situation. Die Anforderungen<br />

sind unsicher und demzufolge sind die<br />

Schätzungen von Dauern, Produktivität<br />

und Kosten falsch. Zusätzliches Budget<br />

und einen Zeitpuffer hinzuzufügen, ergibt<br />

aber auch keinen Sinn, denn man weiß ja<br />

gar nicht, auf welcher Basis geschätzt werden<br />

soll. Und jeder Personentag mehr<br />

macht das Projekt teurer. Der Software-<br />

Guru Tom DeMarco, der inzwischen auf<br />

fünfzig Jahre Erfahrungen mit verkorksten<br />

IT-Projekten zurückblickt, fasst seine<br />

Erfahrungen lapidar wie folgt zusammen:<br />

„Früher dachte ich, Termin- und Budget -<br />

überschreitungen kommen von schlechter<br />

Schätzung und Planung. Dann dachte ich,<br />

sie kommen von der hohen Komplexität.<br />

Heute weiß ich, dass sie davon kommen,<br />

dass praktisch jedes Projekt falsch begonnen<br />

wird. Dann fehlt die Zeit für<br />

Anforderungsanalyse und Planung. Und<br />

damit ist das Scheitern vorprogrammiert.“<br />

Anforderungen kommunizieren Bedürf -<br />

nisse und Randbedingungen. Das Require -<br />

ments Engineering (RE) ist die Disziplin,<br />

die die Behandlung von Anforderungen<br />

über den gesamten Lebenszyklus der<br />

Software hinweg umfasst. RE – und dabei<br />

insbesondere die Ermittlung von Anfor -<br />

erungen – ist schwierig in der Umsetzung,<br />

da es zwar viele Interessengruppen gibt<br />

(siehe Abbildung 1), die sich gerne überall<br />

1P)<br />

Dieser Artikel basiert teilweise auf dem Buch<br />

„Systematisches Requirements Engineering“ von<br />

Christof Ebert (vgl. [Ebe12]).<br />

Abb. 1: Herausforderung: Viele Interessengruppen mit eigenen Zielen.<br />

6 / 2 012


Das Ziel ist, die ursächlichen Fragen und<br />

die Umgebung oder die Kunden des<br />

Auftraggebers zu verstehen und Lösungen<br />

für bestehende Bedürfnisse zu entwickeln.<br />

Hierbei kommt dem Marketing eine<br />

Schlüssel rolle zu – vor allem bei Lösungen,<br />

die verschiedene Kunden als Markt adressieren<br />

sollen. Daher verlangt dieser Schritt<br />

eine kommerzielle Analyse des Markts, der<br />

Wettbewerber, der Preise und deren Elas ti -<br />

zität sowie der Segmentierung des Markts.<br />

Häufig resultieren aus diesem ersten Schritt<br />

sehr viele Ideen, die nicht notwendigerweise<br />

realisiert werden (siehe Abbildung 2).<br />

Diese Ideen müssen aber dokumentiert<br />

werden, um nichts zu übersehen und sie<br />

dann methodisch zu bewerten und zu reduzieren.<br />

Während der Ermittlung treten viefachartikel<br />

einmischen, sich aber nicht festlegen wollen.<br />

Vielfältige und oft sich widersprechende<br />

Interessengeflechte bei Auftragnehmer<br />

und Auftraggeber verschärfen die Situa -<br />

tion. Projekte scheitern daher vor allem<br />

wegen eines unzureichenden RE (vgl.<br />

[Ebe12]). Das sollte Grund genug sein, sich<br />

intensiver mit der Ermittlung von<br />

Anforderungen zu befassen. Wir betrachten<br />

daher die Ermittlung von Anfor -<br />

derungen im Folgenden methodisch und<br />

anhand von konkreten Schritten, die sich in<br />

die Praxis umsetzen lassen.<br />

Schritt 1: Stakeholder und<br />

Interessengruppen klären<br />

Klären Sie zuerst die relevanten Stake -<br />

holder und die rechtliche Verbindlichkeit<br />

der Anforderungen. Es geht um einen<br />

Vertrag, den Sie erfüllen wollen. Also muss<br />

von Beginn an klar sein, wer die relevanten<br />

Vertragspartner sind. Dieser Schritt beantwortet<br />

die Fragen: Wer stellt überhaupt die<br />

Anforderungen und bezahlt für das<br />

Produkt oder Projekt? Wer hat Interesse am<br />

Erfolg des Projekts? Wie kommuniziert das<br />

Projekt mit dem Kunden? Welche Schnitt -<br />

stellen mit dem Kunden oder dessen<br />

Interessengruppen existieren? Wie sehen<br />

das Reporting und die Eskalationswege<br />

aus?<br />

Interessengruppen werden nach Kunden,<br />

Lieferanten, Vertriebspartnern und firmeninternen<br />

Gruppen unterschieden. Nehmen<br />

Sie diese verschiedenen Perspektiven explizit<br />

ein, z. B. Auftraggeber, Benutzer, Ent -<br />

wickler, Geschäftsleitung. Prüfen Sie, in<br />

welchem Verhältnis diese Gruppen zueinander<br />

stehen. Fragen Sie grundsätzlich<br />

jeden Gesprächspartner danach, ob er sich<br />

weitere Personen vorstellen kann, die eine<br />

wichtige Rolle spielen könnten.<br />

RE bedeutet Zusammenarbeit. Abbil -<br />

dung 1 verdeutlicht einige der Schlüssel -<br />

rollen, die bei der Definition und Bearbei -<br />

tung von Anforderungen eine Rolle spielen.<br />

Sie sind um typische Dokumente des RE<br />

herum gruppiert. Damit wird unterstrichen,<br />

dass RE formale Artefakte liefert,<br />

anhand derer Vereinbarungen getroffen<br />

und ausgetauscht werden. Wie bei jedem<br />

Prozess kann man geteilter Meinung darüber<br />

sein, ob man ihn personen- bzw. rollenorientiert<br />

beschreibt oder eher dokumentenzentrisch.<br />

Beides muss adressiert<br />

werden, denn zu einem Prozess gehören<br />

sowohl die Aus führenden als auch die<br />

Ergebnisse. Es hängt eher von der<br />

Prozessreife ab, ob die Perso nen den<br />

Prozess stark beeinflussen oder ob ein<br />

Unternehmen versucht, den Prozess unabhängig<br />

von der Situation und den beteiligten<br />

Interessengruppen zu stabilisieren und<br />

damit auch verbesserungsfähig zu machen.<br />

Neben den offensichtlichen Rollen, wie<br />

beispielsweise den Kunden, dem Projekt -<br />

manager oder der Entwicklung, gibt es<br />

auch weniger auffällige Rollen, die aber<br />

trotzdem zusammenspielen müssen. Die<br />

Geschäftsführung und das obere Manage -<br />

ment sind wichtig für RE, da sie die<br />

Geschäfts- und Projektziele definieren,<br />

anhand derer die Anforderungen bewertet<br />

werden. Ein Produktmanager wiederum<br />

muss zwischen Vertrieb, Entwicklung und<br />

Projektmanagement vermitteln, um Um -<br />

satz- und Gewinnziele zu erreichen.<br />

Während eine Projektmanagerin daran<br />

gemessen wird, ob sie ihr Projekt pünktlich<br />

und mit der richtigen Qualität abschließt,<br />

wird der Vertrieb anhand von Verkaufs -<br />

zahlen bewertet. Ein typischer Zielkonflikt<br />

zwischen diesen beiden Rollen ist die<br />

Stabilität von Anforderungen. Ein Verkäu -<br />

fer ist immer bereit, die Anforderungen<br />

opportunistisch anzupassen, um die<br />

Verkaufszahlen in die Höhe zu treiben. Die<br />

Projektmanagerin auf der anderen Seite<br />

will ihr Projekt in trockene Tücher bringen<br />

und ist daher an Stabilität interessiert.<br />

Hier kommt nun der Produktmanager<br />

ins Spiel, der am Langzeiterfolg und am<br />

gesamten Ergebnis der Produktlinie gemessen<br />

wird. Er muss beide Ziele optimieren:<br />

die Kosten und den Umsatz. Denn nur<br />

dann stimmt der Gewinn. Ähnlich verhält<br />

es sich mit der Geschäftsleitung oder ihrem<br />

jeweiligen Management. Wer kennt es<br />

nicht, das Phänomen, dass Kunden und<br />

Geschäftsleitung ihre naturgemäß engen<br />

Kontakte auch nutzen, um neue Ideen zu<br />

konkretisieren, und dabei häufig Zusagen<br />

machen, die niemals mit der unternehmerischen<br />

Realität abgestimmt waren? Es ist<br />

einfach zu verlockend, einen neuen oder<br />

erweiterten Auftrag an Land zu ziehen.<br />

Kunden haben ihr eigenes Geschäft und<br />

stehen nicht beliebig für Diskussionen zur<br />

Verfügung. Das ist übrigens ein wesentlicher<br />

Grund dafür, weshalb agile Vor -<br />

gehensweisen nicht immer so einfach<br />

umzusetzen sind, wie es deren Protago -<br />

nisten glauben machen. Soweit der Kunde<br />

nicht direkt für Gespräche oder Workshops<br />

zur Verfügung steht, übernimmt intern der<br />

Produktmanager die Rolle des Kunden.<br />

Der Vertrieb oder das Marketing können<br />

diese Rolle auch spielen, allerdings sollte<br />

man Zielkonflikte vermeiden, die darin<br />

bestehen, dass der Vertrieb beispielsweise<br />

nur eine Region oder einen aktuellen<br />

Kunden konkret abdeckt und den Erfolg an<br />

diesen Umsatzzahlen misst, während das<br />

Produkt eine weitaus größere Ausdehnung<br />

hat.<br />

Schritt 2: Kritische<br />

Erfolgsfaktoren identifizieren<br />

In diesem Schritt geht es darum, zu verstehen,<br />

was den Kunden, Benutzer oder<br />

Markt wirklich bewegt und wie das eigene<br />

zukünftige Produkt darauf einen positiven<br />

Einfluss nehmen kann. Was ist dem<br />

Kunden wirklich wichtig? Was ist in seinen<br />

Augen der größte Nutzen? Hinterfragen Sie<br />

die Aussagen des Kunden. Was will er erreichen?<br />

Was sind seine Beweggründe?<br />

Welche Einflüsse und Bedingungen spielen<br />

eine Rolle? Wichtig ist es, bereits in diesem<br />

Schritt sauber zwischen Anforderungen<br />

und Lösungen zu trennen.<br />

Abb. 2: Ermittlung: Mögliche<br />

Anforderungen erfassen.<br />

62 63


Sie suchen gezielt nach Fachinformationen?<br />

Bei WISSEN – der kostenlosen Online-Bibliothek<br />

von SIGS DATACOM – sind Sie direkt am Ziel!<br />

Hochkarätige Fachbeiträge, Praxisberichte, Interviews, Vorträge und Whitepaper –<br />

alles ist online leicht auffindbar. Bei Suchmaschinen-Anfragen haben Sie den Aufwand,<br />

bei den Ergebnissen die Spreu vom Weizen zu trennen und die qualitativ hochwertigen<br />

Inhalte zu filtern, die Ihnen wirklich weiterhelfen.<br />

Anders bei der Online-Bibliothek WISSEN!<br />

Hier haben Sie – in gewohnter Qualität von OBJEKTspektrum und JavaSPEKTRUM –<br />

kostenlos Zugriff auf vielfältige Fachinformationen. Namhafte Evangelisten und Experten<br />

aus der Branche haben die Inhalte vorstrukturiert nach Ihren Anforderungen.<br />

Sie wissen genau was und wie Sie suchen und welche Informationen Sie benötigen.<br />

Aktuell unterstützen 13 Themenchannel<br />

Sie bei Ihrer täglichen Arbeit:<br />

Software-Architektur<br />

Projektmanagement Mobile<br />

Software-Qualität und Testen<br />

Softskills<br />

Java<br />

IT-Management<br />

Embedded<br />

Scrum und Agile<br />

SOA und BPM<br />

Cloud Computing<br />

Requirements Engineering<br />

Modelling<br />

Überzeugen Sie sich selbst unter www.sigs-datacom.de/wissen/themenchannel


fachartikel<br />

Sicht auf die Kunden der eigenen Kunden<br />

offensichtlich, dass eine Lösung für deren<br />

eigene Probleme zu neuen Diensten und<br />

damit zu Wertschöpfung führt.<br />

Abb. 3: RE schafft Konflikte.<br />

le Konflikte zutage (siehe Abbildung 3).<br />

Beispiele für Konflikte sind:<br />

■ Eine Vielfalt von Funktionen und Ab -<br />

hän gigkeiten zwischen diesen Funk -<br />

tionen.<br />

■ Verschiedene Schlüsselgruppen auf der<br />

Kundenseite, z. B. Einkauf vs. Benutzer<br />

vs. Administratoren.<br />

■ Sich widersprechende inhaltliche Ziele,<br />

z. B. Funktionalität vs. Kosten und<br />

Budget, Qualität vs. Entwicklungszeit,<br />

Kosten für geplante Qualität vs. aktuelle<br />

Entwicklungszeit.<br />

■ Technische Implikationen, z. B. Sicher -<br />

heit vs. Zugriffsmöglichkeiten.<br />

Derartige Konflikte sind normal. Das liegt<br />

an den verschiedenen Perspektiven, aber<br />

auch daran, dass man gerne aneinander<br />

vorbeiredet, um kritische Erfolgsfaktoren<br />

aus der eigenen Perspektive zu festigen.<br />

Lösen Sie Konflikte sofort auf, denn<br />

sonst rächen sie sich später durch Nach -<br />

arbeiten oder kontinuierliches Hinterfra -<br />

gen. Das Erkennen und Auflösen von<br />

Konflikten ist der eigentliche kreative<br />

Prozess der Anforderungsermittlung, denn<br />

es werden sowohl technische als auch<br />

betriebswirtschaftliche und menschliche<br />

Randbedingungen berücksichtigt. Ob<br />

Konflikte eskalieren und wie gut wir sie<br />

auflösen können, hängt mit unserer Kom -<br />

munikationsfähigkeit zusammen (vgl.<br />

[Sch10]). Getroffene Entscheidungen – also<br />

Annahmen, Randbedingungen und Priori -<br />

täten – müssen als Vereinbarungen unterzeichnet<br />

werden.<br />

Schaffen Sie Win-Win-Positionen im<br />

Herausarbeiten der kritischen Erfolgsfak -<br />

toren. Nehmen wir an, ein Hersteller von<br />

Aufzügen will diese direkt mit einem eigenen<br />

Rechner koppeln, um die Adminis -<br />

tration und den Service zu vereinfachen.<br />

Kunden sind dem zunächst abgeneigt, da es<br />

die Komplexität erhöht und keinen offensichtlichen<br />

Mehrwert schafft. Nun entwi -<br />

ckelt der Hersteller eine Zusatzfunktion, mit<br />

der automatisch Notrufe sicher übertragen<br />

werden, was für den Kunden die eigenen<br />

Aufwände zur Überwachung reduziert.<br />

Damit ist das für den Hersteller technisch<br />

notwendige Feature auch für den Kunden<br />

ein greifbarer Mehrwert. Hier wird deutlich,<br />

dass ein Hersteller in der wirtschaftlichen<br />

Gewinnkette immer den Punkt im Auge<br />

behalten muss, der einen Wert erzeugt, für<br />

den bezahlt wird. Häufig wird erst durch die<br />

Abb. 4: Der Systemkontext.<br />

Schritt 3: Vision, Umfang<br />

und Kontext abstimmen<br />

Anforderungen müssen einen Zusatznutzen<br />

bieten, für den ein Kunde bereit ist zu zahlen.<br />

Hier wird entschieden: Was wird sich<br />

durch das Produkt konkret ändern? Wie<br />

sieht die Änderung aus? Was wird durch<br />

das Produkt besser oder anders?<br />

Lassen Sie Funktionen bereits jetzt weg,<br />

die der Kunde nicht wünscht oder bei denen<br />

Quelle und Wert unklar sind. Notieren Sie<br />

für alle extrahierten Anfor derungen immer<br />

die Quelle und den wahrgenommenen Wert<br />

aus Kundensicht. Achten Sie auf<br />

Ausgewogenheit und Voll stän digkeit. Häufig<br />

springen dem Analys ten oder Produkt -<br />

manager sofort die neuen Funktionen ins<br />

Auge, während Quali tätsan for derungen und<br />

Randbedingungen vernachlässigt werden.<br />

Klären Sie mit den relevanten Schlüssel -<br />

personen, was der Kunde möchte und was<br />

er braucht. Stimmen Sie mit ihm ab, was<br />

Sie brauchen (z. B. Kostenanforderungen,<br />

Randbedingungen, Qualitätsan forderun -<br />

gen, Plattformvorgaben, technische Rand -<br />

bedingungen). Divergenzen müssen jetzt<br />

geklärt werden oder es wird nachher unzufriedene<br />

Kunden geben. Aus Ihrem technischen<br />

Wissen allein können Sie kaum eine<br />

Verbindung zu den tatsächlichen Anfor -<br />

derungen herstellen – Sie müssen sich in die<br />

Kundensicht einarbeiten.<br />

Danach werden Systemumgebung und<br />

-kontext abgestimmt. Dabei wird zwischen<br />

Problemraum und Lösungsraum unterschieden:<br />

64 65


fachartikel<br />

■ Der Problemraum entspricht der<br />

Zielsetzung und den Anforderungen,<br />

also dem, was zu tun ist.<br />

■ Der Lösungsraum entspricht dem<br />

Archi tekturentwurf und der Reali -<br />

sierung, also wie das im Problemraum<br />

definierte Ziel erreicht wird.<br />

Anwendungsfälle helfen bei der Beschrei -<br />

bung des Problemraums, um einzugrenzen,<br />

was die Erfordernisse sind. Sie werden im<br />

weiteren Schritt für den Entwurf des<br />

Lösungsraumes genutzt. Die Schlüssel -<br />

fragen lauten: In welcher Umgebung wird<br />

das System eingesetzt? Was ist Bestandteil<br />

des Systems und was nicht? Was sind die<br />

Schnittstellen des Systems? Was ist das zu<br />

entwickelnde System und was ist es nicht?<br />

Der Lösungsraum wird durch diese<br />

Anwen dungsfällte und Kontextdiagramme<br />

festgelegt, also dadurch, welche Kompo -<br />

nenten oder Lösungsbestandteile geliefert<br />

werden müssen und daher Teil des Projekts<br />

sind und welche Anteile bereits vorhanden<br />

sind oder aber zu einem späteren Zeitpunkt<br />

zur Verfügung stehen.<br />

Der Systemkontext beschreibt die<br />

Grenzen des zu entwickelnden Systems und<br />

somit seiner Schnittstellen zur Außenwelt<br />

(siehe Abbildung 4). Der Systemkontext<br />

legt damit auch fest, was gemacht wird und<br />

was nicht. Er beinhaltet Personen, andere<br />

Systeme, Prozesse, Ereignisse und<br />

Dokumente. Im Rahmen der Kontextab -<br />

grenzung wird geklärt, welche Aspekte<br />

durch das zu entwickelnde System abgedeckt<br />

werden und welche Aspekte Teil der<br />

Umgebung dieses Systems sind.<br />

Jetzt werden die vielfältigen Schnittste -<br />

llen des Systems identifiziert und spezifiziert,<br />

also die Eingangs- und Ausgangs -<br />

parameter eines interaktiven Systems oder<br />

die physikalischen Schnittstellen eines eingebetteten<br />

Systems. An dieser Stelle entscheidet<br />

sich häufig auch bereits, wie portabel<br />

die Lösung später einmal sein wird.<br />

Wenn beispielsweise ein bestimmtes<br />

Kommunika tions protokoll vorausgesetzt<br />

wird, kann es später schwierig sein, dies zu<br />

ändern. Halten Sie also die Schnittstellen so<br />

abstrakt wie möglich oder isolieren Sie die<br />

Schnittstellen vom restlichen Lösungsraum.<br />

Dazu werden Use-Case-Diagramme eingesetzt,<br />

die die Akteure in der System -<br />

umgebung und deren Beziehungen zueinander<br />

veranschaulichen (z. B., wer welche<br />

Informationen nutzt). Auch Datenfluss-<br />

Diagramme kommen zum Einsatz, um<br />

Quellen und Senken in der Systemumge -<br />

Abb. 5: Ermittlung: Vision und Umfang<br />

festlegen.<br />

bung mit Datenflüssen zum und vom<br />

System darzustellen. Als Ergebnis dieses<br />

Schritts sind einige Ideen gestrichen und die<br />

Vision, der Umfang und der Kontext des<br />

Produkts stehen fest (siehe Abbildung 5).<br />

Schritt 4: Anforderungen<br />

methodisch entwickeln<br />

Nun werden die Anforderungen an die spätere<br />

Lösung konkret identifiziert und entwickelt.<br />

Das umfasst sowohl die funktionalen<br />

Anforderungen, also konkrete<br />

Funk tionen, Algorithmen etc., als auch<br />

Quali tätsanforderungen und Randbedin -<br />

gun gen, wie z. B. Performance, Sicherheit<br />

und gesetzliche Regelungen. Die entscheidende<br />

Frage hier ist: Was sind jene<br />

Eigenschaften, durch die sich die Lösung<br />

später besser verkaufen lässt? Weshalb<br />

investiert jemand in dieses Produkt?<br />

Ermitteln Sie die Anforderungen zielorientiert.<br />

In diesem Schritt ist die Struktur<br />

noch untergeordnet, denn sie könnte die<br />

Abb. 6: Ermittlung: Unbekannte Anforderungen identifizieren.<br />

Kreativität einschränken oder Lösungs -<br />

möglichkeiten und Zusammenhänge verstecken.<br />

Check- und Fragelisten helfen<br />

beim Extrahieren von Anforderungen, die<br />

vielleicht sonst verborgen blieben. Die<br />

Quellen für Anforderungen und für die<br />

Bewertung, welche Anforderungen wesentlich<br />

sind, sind vielfältig und sollten situativ<br />

genutzt werden:<br />

■ Marktforschung/Marktstudien, speziell<br />

für neue Produkte, in den Bereichen<br />

B2B und B2C.<br />

■ Internet (Blogs, Foren, Bewertungen)<br />

für Folgeprodukte und neue Funk -<br />

tionen.<br />

■ Eigene Forschung für neue Produkte.<br />

■ Eigene Entwicklung.<br />

■ Eigenes Marketing und Vertrieb.<br />

■ Eigene Dienstleistungen für Folge pro -<br />

dukte, Korrekturen und neue Funk -<br />

tionen.<br />

■ Benutzergruppen für Folgeprodukte,<br />

speziell im Bereich B2B und B2C.<br />

■ Kundeninterviews, Seminare und<br />

Work shops.<br />

■ Bestehende Lasten- und Pflichtenhefte.<br />

■ Händler, Vertriebspartner für Folgepro -<br />

duk te, Korrekturen und neue<br />

Funktionen.<br />

■ Berater (intern, extern) für Strategie -<br />

definition, Vision und neue Produkte.<br />

Unbekannte Anforderungen und Rand be -<br />

dingungen sind schwierig zu ermitteln,<br />

denn wir können nicht direkt danach fragen<br />

(siehe Abbildung 6). Wir sollten uns<br />

aber darüber im Klaren sein, dass es immer<br />

6/2012


fachartikel<br />

bung eines archetypischen hypothetischen<br />

Benutzers und seiner Ziele, demografische<br />

Daten, Verhaltens weisen,<br />

Vorlieben sowie Herausar bei tung und<br />

Typisierung der damit verbundenen<br />

Anwendungsfälle, vgl. [Coo99]).<br />

■ Kontextbewertung: Demografische<br />

Analysen (d. h. Analyse von Daten und<br />

Statistiken für bestimmte Märkte und<br />

deren Verhalten, Kaufverhalten, Vorlie -<br />

ben und Größe), ethnografische Analy -<br />

sen, kulturelle Besonderheiten, Farben<br />

und Symbolik.<br />

Abb. 7: Ermittlung: Methodische Vervollständigung.<br />

Perspektiven gibt, wo wir als Auftrag -<br />

nehmer nicht alles wissen oder wo der Auf -<br />

traggeber nicht alles weiß. Die Be reiche, wo<br />

wir etwas wissen und der Benutzer oder<br />

Kunde ebenfalls, wurden ja bereits adressiert.<br />

Nun geht es darum, zu hinterfragen,<br />

was wir nicht wissen (können) und was der<br />

Benutzer oder Kunde nicht weiß.<br />

Hilfsmittel, um Annahmen und Entschei -<br />

dungen zu verdeutlichen, sind ein Baum -<br />

diagramm, das die Anforderungen herunterbricht,<br />

eine Durchführbarkeitsstudie<br />

oder Prototyping, ein Modell, das<br />

Annahmen beschreibt und untersucht, oder<br />

Normen, die mit externen Randbedin gun -<br />

gen vergleichen.<br />

Betrachten Sie die Anforderungen im Zu -<br />

sammenhang, um zu verstehen, welche<br />

Anforderungen sich widersprechen oder<br />

konkurrieren. Modellieren Sie Abhängig -<br />

keiten, um die Machbarkeit der Lösung im<br />

Kontext zu prüfen. Spielen Sie Szenarien<br />

durch, auch solche, die nur ausnahmsweise<br />

auftreten. Konflikte sind natürlich und<br />

müssen dokumentiert, priorisiert und entschieden<br />

werden. Nehmen Sie technische<br />

oder projektinterne Konflikte nie persönlich.<br />

Hier sind einige Techniken, um Anfor -<br />

derungen methodisch zu ermitteln und zu<br />

bewerten – gerade wenn wir als Auftrag -<br />

nehmer oder der Auftraggeber nicht genau<br />

wissen, um was es geht (siehe Abbildung 7):<br />

■ Kunden und Marktstudien: Frage bö -<br />

gen, Interviews, Analyse existierender<br />

Dokumente. Das sind die häufigsten<br />

Instrumente, um Anforderungen zu<br />

ermitteln und zu entwickeln.<br />

■ Kreativitätstechniken und Gruppen -<br />

arbeit: Brainstorming, Fokusgruppen,<br />

Rollenspiele und Workshops. Achtung:<br />

Gruppenorientierte Techniken müssen<br />

sorgfältig moderiert werden, denn sie<br />

können auch zu Blockadesituationen<br />

führen. Beispielsweise kann ein Brain -<br />

storming bei starken Teilnehmern dazu<br />

führen, dass gute Ideen der schwächeren<br />

Teilnehmer unausgesprochen bleiben<br />

und der Lösungsraum viel zu früh<br />

eingeengt wird. Rollenspiele wiederum<br />

erfordern ein gutes gegenseitiges<br />

Verständnis und können nicht über<br />

Hierarchieebenen oder Abteilungen<br />

hinweg durchgeführt werden.<br />

■ Schrittweise Ermittlung: Prototyping,<br />

Simulation, Ablaufmodell, Benutzer -<br />

schnitt stelle, Experimente, Konzept -<br />

tests mit Kunden und Anforderungen<br />

aus Benutzeraktivitäten synthetisieren.<br />

■ Modelle und Analysen: Konzepte,<br />

Szenarien, Bilder, Diagramme, strukturierte<br />

und formalisierte Analysever -<br />

fahren (z. B. strukturierte Analyse,<br />

objekt orientierte Analyse, Joint Appli -<br />

cation Development, Problem Frames,<br />

QFD, FMEA), Anforderungen aus exis -<br />

tierendem System herausarbeiten sowie<br />

Glossar und Taxonomie als Verständ -<br />

nishilfe aufbauen.<br />

■ Kognitive Verfahren: Protokollanalyse,<br />

Verhalten und Persona (d. h. Beschrei -<br />

Nutzen Sie „negative Anforderungen“, um<br />

Szenarien, Fälle und Verhalten zu beschreiben,<br />

die nicht eintreten dürfen. Welche<br />

Basisfaktoren können im nächsten Release<br />

wegfallen? Welche Verhaltensweisen müssen<br />

gezielt ausgeschlossen werden?<br />

Negative Anforderungen werden in der<br />

Spezifikation gleich gehandhabt wie die<br />

bekannten „positiven Anforderungen“, mit<br />

dem Unterschied, dass sie in der späteren<br />

Entwicklung wirksam ausgeschlossen oder<br />

in ihrer Wirkung abgeschwächt werden<br />

müssen. Hier ein Beispiel:<br />

■ M-Req-1: Bei geöffneten Türen darf der<br />

Aufzug nicht fahren.<br />

■ M-Req-2: Bei Betrieb und Wartung des<br />

Aufzugs darf zu keinem Zeitpunkt,<br />

auch nicht in Ausnahmesituationen,<br />

eine Gefahr für Menschen ausgehen.<br />

■ K-Req-1: Das Betriebssystem darf nicht<br />

ausfallen.<br />

Negative Anforderungen werden typischerweise<br />

durch Misuse Cases, Abuse Cases<br />

oder ganz banal als Anforderung, die als<br />

„negativ“ deklariert wird, dargestellt. Im<br />

Ergebnis sind einige neue Anforderungen<br />

ermittelt.<br />

Schritt 5: Anforderungen dokumentieren<br />

und strukturieren<br />

Anforderungen müssen systematisch erfasst<br />

und beschrieben werden, um nachher bearbeitet<br />

werden zu können. Dieser Schritt<br />

beantwortet die Fragen: Wie kann ich die<br />

Anforderungen so beschreiben und strukturieren,<br />

dass ich sie später wiederfinden<br />

kann? Wie hängen die Anforderungen zu -<br />

sammen und können zur besseren Ver -<br />

ständlichkeit gebündelt werden?<br />

Die Anforderungen sollten hinreichend<br />

gut beschrieben sein, um die Projektrisiken<br />

abzuschwächen (vgl. [Dav05]). Eine Be -<br />

schreibungssystematik dient dazu, Anfor -<br />

66 67


interne und externe Abhängigkeiten besser<br />

zu verstehen. Sie beantwortet die Frage: Ist<br />

die vorgeschlagene Lösung hinreichend,<br />

um die Anforderungen abzudecken? Ein<br />

Lösungsmodell dient der Kommunikation<br />

von bestimmten vorläufigen Lösungsent -<br />

scheidungen, bevor mit dem Design oder<br />

der Architektur begonnen wird. Beispiels -<br />

weise beschreibt die Lösung, welche<br />

Objekte oder Komponenten im System eingesetzt<br />

werden und wie diese untereinander<br />

und mit der Außenwelt kommunizieren.<br />

Andere Modelle erläutern, wie Daten -<br />

strukturen aussehen und wie darauf zugefachartikel<br />

derungen zu separieren und sie lesbar zu<br />

machen. Numerische Codes werden eingeführt,<br />

damit jede einzelne Anforderung<br />

identifizierbar und damit verfolgbar ist.<br />

Die Nachverfolgung von Anforderungen ist<br />

nicht nur während des Projekts wichtig,<br />

sondern auch bereits für das spätere Änderungsmanagement.<br />

Wie wollen Sie eine<br />

Änderung kommunizieren, wenn Sie dazu<br />

keine Referenz haben? Dazu eignen sich<br />

vorgegebene Templates oder Datenbanken,<br />

aber auch einfache Tabellen- oder Text -<br />

programme.<br />

Niemals sollten Anforderungen nur mit<br />

Papier und Bleistift übernommen werden.<br />

Das führt zu psychologischen Blockaden,<br />

denn der Änderungsaufwand selbst für<br />

kleinste Änderungen wird als zu groß empfunden.<br />

Beschreiben Sie daher die<br />

Anforderungen bereits frühzeitig in einem<br />

offenen und änderungsfreundlichen Werk -<br />

zeug.<br />

Schritt 6: Anforderungen<br />

modellieren<br />

Der Problemraum wird modelliert, um Zu -<br />

sam menhänge zu erkennen. Die Schlüssel -<br />

Abb. 8: Anforderungen und Bedürfnisse bewerten.<br />

fragen sind: Wie hängen die Anforderungen<br />

zusammen? Welche Einflüsse aus der<br />

Umgebung und untereinander treten auf?<br />

Die Modellierung ist zwangsläufig eine<br />

Randbedingung der Realität, um bestimmte<br />

Blickwinkel einzunehmen oder bestimmte<br />

Fragestellungen zu beantworten. Bei -<br />

spiels weise kann ein Anforderungsmodell<br />

die zeitlichen Abhängigkeiten von externen<br />

Szenarien beschreiben oder es kann auf<br />

Anwendungsfälle (Use-Cases) eingehen.<br />

Ähnlich wie die Modellierung des Pro -<br />

blemraums dient die Modellierung des<br />

Lösungsraums dazu, die Lösung und deren<br />

GEWINNER!<br />

Leserbefragung<br />

1. Preis<br />

5 Tage<br />

OOP2013<br />

software meets business<br />

21. – 25. Januar 2013, München<br />

Carsten Sydow<br />

www.javaspektrum.de<br />

www.objektspektrum.de<br />

2. Preis<br />

2-tägiges<br />

Seminar<br />

Matthias Gutheil<br />

SIGS-DATACOM <strong>GmbH</strong><br />

Lindlaustraße 2c<br />

53842 Troisdorf<br />

Tel.: +49 (0)2241 2341-100<br />

Fax: +49 (0)2241 2341-199<br />

Email: info@sigs-datacom.de<br />

3. – 15. Preis<br />

Fachbücher<br />

Mario Beyeler<br />

Björn Kimminich<br />

Jose Marin<br />

Ralph Nelius<br />

Harald Radlinger<br />

Michael Schneider<br />

Jürgen Schiewe<br />

Gerald Simon<br />

Michael Siwak<br />

Michael Starck<br />

Frank Ullrich<br />

Jan Windhuysen<br />

Reto Zenger<br />

6/2012


fachartikel<br />

Beispiel: Gefahrenanalyse<br />

System: Aufzug<br />

Subsystem: Seilzug-Feststellbremse<br />

1) Kritischer Use-Case: Was muss unbedingt funktionieren? Beispiel: Aus der Funk -<br />

tionsbeschreibung von Servo-Mechanik, Seilzug, Elektromotor, und Ansteuer -<br />

elektronik lassen sich kritische Use-Cases oder mögliche Unfallszenarien identifizieren.<br />

Nach der Abwärtsfahrt mit vielen Haltepunkten steht der Aufzug und wird<br />

durch die Seilzug-Feststellbremse abgesichert. Die aufgebrachte Zuspannkraft<br />

sichert die Kabine gegen minimale Bewegungen.<br />

2) Fehlfunktionen: Welche Fehlfunktionen können auftreten? Methoden: Gefahren -<br />

analyse, System-FMEA und Komponenten-FMEA, Misuse-Cases. Beispiel: Die<br />

Zuspannkraft kann sich physikalisch beim Abkühlen des Seil-Brems-Systems soweit<br />

verringern, dass die Kabine nicht mehr ausreichend gesichert ist<br />

3) Bewertung: Wie kritisch ist die jeweilige Fehlfunktion? Methoden: FTA (Fault Tree<br />

Analysis), FMEDA (Failure Modes, Effects and Diagnostic Coverage Analysis),<br />

Zuverlässigkeitsdiagramme. Beispiel: Aufzüge können Personenschäden verursachen.<br />

Daher Bewertung mit SIL (Safety Integrity Level) 3.<br />

4) Schutzziel: Wie muss eine noch fehlende Produktanforderung aussehen? Beispiel:<br />

Nach jeder Bewegung muss die Kabine ausreichend gesichert sein.<br />

5) Umsetzung: Wie muss die zugehörige Komponenten-Anforderung aussehen?<br />

Beispiel: Aus den Schutzzielen leiten sich mit den Wie-Fragen die Sicher heits -<br />

anforderungen auf Komponentenebene ab. „Welche Sicherheitsfunktion kann die<br />

Fehlfunktion kompensieren?“ „Wie lässt sich die Sicherheitsfunktion umsetzen?“<br />

Beispiel: Die beteiligten Elektronikkomponenten überwachen Kabinenbewegungen<br />

auch nach Stillstand, um Seilverkürzungen durch Abkühlung entgegenzuwirken.<br />

Kasten 1: Anforderungen und Bedürfnisse bewerten.<br />

griffen wird. Bei eingebetteten Systemen<br />

beschreibt ein Lösungsmodell zeitliche<br />

Abhängigkeiten oder, wie auf äußere Erei -<br />

gnisse reagiert wird.<br />

Schritt 7: Anforderungen<br />

analysieren<br />

Entscheidend sind hier Antworten auf die<br />

Fragen: Wie beeinflussen sich die Anfor -<br />

derungen gegenseitig? Welche Anforderun -<br />

gen ermöglichen Wiederverwendung?<br />

Welche Anforderungen können so modifiziert<br />

werden, dass sich Teile von früheren<br />

Lösungen wiederverwenden lassen? Welche<br />

Anforderungen verursachen den meisten<br />

Aufwand? Welche tragen am meisten zu<br />

den vorgegebenen Zielen bei? Gibt es<br />

Anforderungen, die sehr viel Aufwand verursachen<br />

und wenig Bezug zu den identifizierten<br />

Zielen haben? Die Antworten aus<br />

diesem Schritt beeinflussen typischerweise<br />

die parallel laufenden Vertragsver hand -<br />

lungen hinsichtlich der Angebotsgestal -<br />

tung. Je nach der zur Verfügung stehenden<br />

Zeit kann in diesem Schritt auch bereits<br />

eine erste grobe Modellierung von Pro -<br />

blem- und Lösungsraum erfolgen.<br />

Nur mit einer begleitenden Analyse verstehen<br />

Sie die Zusammenhänge und Rand -<br />

be dingungen. Aus diesem Grund werden in<br />

vielen Unternehmen die Personen, die<br />

Anforderungen ermitteln, auch als System -<br />

analysten bezeichnet. In dieser Analyse<br />

geht es sowohl um das Produktmanage -<br />

ment als auch um eine technische Analyse.<br />

Häufig sind bestimmte Funktionen nicht<br />

machbar oder Randbedingungen konkurrieren<br />

miteinander. Manche Anforderungen<br />

bedingen andere Anforderungen. Stellen<br />

Sie fest, welche Abhängigkeiten (auch<br />

ungewollte) bestehen. Prüfen Sie, ob die<br />

Anforderungen hinreichend zur Wert -<br />

schöp fung beitragen, sodass der Kunde<br />

bereit ist, dafür Geld in die Hand zu nehmen.<br />

Ermitteln Sie, was zum System und<br />

was zu seiner Umwelt gehört. Mit der<br />

Festlegung der System grenze entscheidet<br />

sich der Zweck des Systems, d. h. welche<br />

Leistung das System seiner Umwelt bringt<br />

und wie es von außen genutzt wird.<br />

Ein gutes Hilfsmittel zur initialen Bewer -<br />

tung ist das Kano-Modell. Abbildung 8<br />

zeigt die drei Faktoren (Basis-, Leistungsund<br />

Begeisterungsfaktoren) aus dem Kano-<br />

Modell. Die Punkte sind erfasste Anfor -<br />

derungen. Diese werden nun für verschiedene<br />

Perspektiven (oder Zielgruppen,<br />

Rollen) jeweils in die drei Kategorien gruppiert.<br />

Dann wird ausgewählt, was realisiert<br />

wird. Die Abbildung zeigt, dass wenige<br />

Begeisterungsfaktoren so ausgewählt werden,<br />

dass für jede Zielgruppe ein Kauf -<br />

anreiz geschaffen wird, ohne zu viel zu<br />

investieren. Umgekehrt werden nicht alle<br />

möglichen Basisfaktoren implementiert –<br />

wohlwissend, dass dafür sowieso nicht<br />

gezahlt wird.<br />

Schritt 8: Anforderungen prüfen<br />

Dieser Schritt beantwortet die Frage, ob die<br />

Anforderungen die richtige Qualität haben.<br />

Sind sie hinreichend beschrieben, um daraus<br />

eine gute und brauchbare Lösung abzuleiten?<br />

Die Prüfung von Anforderungen lohnt<br />

sich. Fehler in Anforderungen sind im<br />

Projekt selbst schwierig zu identifizieren<br />

und teuer in ihrer Korrektur. Anfor -<br />

derungen werden daher frühzeitig geprüft.<br />

Keine andere Technik der Qualitätskon -<br />

trolle hat einen solch hohen wirtschaftlichen<br />

Nutzen wie die Prüfung von<br />

Anforderungen (vgl. [Ebe07]). Korrekturen<br />

während der Anforderungsentwicklung<br />

und Dokumentation sind sehr viel günstiger<br />

als spätere Nacharbeiten. Das gilt so -<br />

wohl extern, beispielsweise durch die<br />

Konsistenz der Entwicklungsergebnisse mit<br />

Kundenerwartungen und Marktanfor -<br />

derun gen, als auch intern, beispielsweise<br />

durch brauchbare Spezifikationen (d. h.<br />

Verständlichkeit, Vollständigkeit, Mach -<br />

bar keit, Widerspruchsfreiheit usw.).<br />

Eine gute Anforderung beschreibt etwas,<br />

das notwendig, überprüfbar und erreichbar<br />

ist. Notwendig ist eine Anforderung dann,<br />

wenn durch ihr Verschwinden die Ab -<br />

nahme oder die Vertragserfüllung infrage<br />

gestellt wäre. Häufig gibt es allerdings keine<br />

klare Antwort zum wirklichen Bedarf<br />

oder Grenznutzen der spezifischen Anfor -<br />

derung und man kann die Anforderung<br />

streichen oder niedrig priorisieren. Überprüfbar<br />

ist eine Anforderung dann, wenn<br />

beim Lesen der Anforderungsspezifikation<br />

68 69


fachartikel<br />

■ Trennen Sie bei der Anforderungsermittlung zwischen der externen Sicht (Markt-<br />

anforderungen, Bedürfnisse, Problembeschreibung) und der internen Sicht<br />

(Produktanforderungen, Lösungskonzeption, Komponentenanforderungen).<br />

■ Ermitteln Sie die Anforderungen systematisch. Nutzen Sie dazu Checklisten, Frage -<br />

listen, Regeln für Workshops und Interviews, Analysemethoden, verständliche<br />

Notationen und durchgängige Prüfverfahren.<br />

■ Bilden Sie in der Spezifikation der Anforderungen drei Typen von Anforderungen:<br />

Markt-, Produkt- und Komponentenanforderungen. Vermischen Sie diese drei verschiedenen<br />

Sichtweisen nicht, denn sie helfen bei der Strukturierung und Entwick -<br />

lung der späteren Lösung und bei der sauberen Behandlung von Änderungen auf<br />

einer dieser drei Abstraktionsebenen.<br />

■ Trennen Sie in Spezifikationen sauber zwischen „Was“ (Anforderungen) und „Wie“<br />

(Lösungen). Beginnen Sie nicht zu früh mit der Lösung, solange noch nicht klar ist,<br />

was die wesentlichen Bedürfnisse sind.<br />

■ Modellieren Sie beim Übergang von der Problembeschreibung (z. B. Lastenheft) zur<br />

Lösungskonzeption (z. B. Pflichtenheft) sowohl die Systemumgebung als auch die zu<br />

entwickelnde Systemarchitektur. Beim Übergang zu den Komponentenan -<br />

forderungen muss die Systemarchitektur bereits hinreichend detailliert sein, um<br />

Auswirkungen von Entwurfsentscheidungen (z. B. Partitionierungen) bewerten zu<br />

können.<br />

■ Antworten Sie immer auf der Basis der Konsequenzen auf den Projektplan, falls es<br />

zu Änderungsvorschlägen kommt. Begeben Sie sich nie in eine Situation, in der<br />

Änderungswünsche isoliert von den Auswirkungen im Projekt und der Rückwirkung<br />

auf andere Funktionen behandelt werden.<br />

■ Lösen Sie Konflikte sofort auf, denn sonst rächen sie sich später durch Nacharbeiten<br />

oder kontinuierliches Hinterfragen. Versuchen Sie, Win-Win-Ergebnisse zu erreichen.<br />

■ Berücksichtigen Sie alle Anforderungen. Entscheiden Sie explizit, was übernommen<br />

wird und was nicht. Fragen Sie relevante Interessenvertreter, ob etwas übersehen<br />

wurde. Machen Sie dabei klar, dass die Ermittlung von Anforderungen noch keine<br />

Garantie für deren Lieferung ist. Geliefert wird nur, was vereinbart und bezahlt wird.<br />

■ Betrachten Sie die Anforderungsermittlung projektbegleitend. Als Prozess begleitet<br />

es die weitere Entwicklung bis zum Projektabschluss und darüber hinaus in die<br />

Betriebs- und Wartungsphase – bis zum Lebensende des Produkts.<br />

■ Setzen Sie Methodik und Werkzeuge bei der Ermittlung situativ ein. Ein Werkzeug<br />

allein bringt keine Verbesserung. Die Basis für gute Ergebnisse sind Systematik und<br />

Disziplin. Zuerst muss ein schlanker Prozess für das RE für alle Projektbeteiligten<br />

(auch Vertrieb) verpflichtend vereinbart werden. Anforderungen und deren Verwal -<br />

tung können durch einfache Spreadsheets unterstützt werden.<br />

■ Optimieren Sie das RE und Sie werden in den Projekten beträchtlichen Aufwand<br />

sparen. Systematische Anforderungsermittlung reduziert Nacharbeiten, Zusatz -<br />

aufwände durch Inkonsistenzen und Fehler, die erst spät entdeckt werden.<br />

Kasten 2: Tipps für die Praxis.<br />

klar wird, wie sie später getestet und abgenommen<br />

wird. Erreichbar ist eine Anfor -<br />

derung, wenn sie technisch möglich ist. Sie<br />

darf nicht im Widerspruch zu anderen<br />

Anforderungen und Randbedingungen, wie<br />

Budget oder Übergabetermin, stehen.<br />

Kasten 1 zeigt die systematische Erarbei -<br />

tung von Qualitätszielen und daraus abgeleiteten<br />

Prüfschritten, die dann zu einer<br />

Vervollständigung der noch fehlenden<br />

Anforderungen führen.<br />

Schritt 9: Anforderungen<br />

priorisieren<br />

Die Priorisierung ist eine wirtschaftliche<br />

Entscheidung, die vom Produktmanager<br />

oder demjenigen getragen werden muss,<br />

der für den kommerziellen Erfolg des<br />

Produkts oder Projekts verantwortlich ist.<br />

Sie erlaubt, bei Zeitdruck oder drohenden<br />

Budgetüberschreitungen eher unwichtige<br />

Funktionen herauszunehmen. Aus dem<br />

Verhältnis von Aufwand und Nutzenbei -<br />

trag lässt sich eine erste interne Priori -<br />

sierung ableiten.<br />

Die Kernfrage lautet: Welche Anfor -<br />

derungen sind erfolgsentscheidend und<br />

welche könnten vernachlässigt werden?<br />

Idealerweise können Sie die Priorisierung<br />

direkt mit dem Kunden verhandeln. Dieser<br />

hat meistens ein Interesse an termingenauer<br />

Lieferung und weiß um die Schwierig -<br />

keiten, alle Anforderungen und Einflüsse<br />

exakt abzuschätzen. Bedenken Sie, dass der<br />

Kunde seine eigenen Geschäftsmodelle hat<br />

– was für Sie wichtig oder unwichtig<br />

erscheint, muss nicht auch für den Kunden<br />

gelten. Versuchen Sie daher, das Geschäfts -<br />

modell des Kunden immer wieder zu<br />

hinterfragen, um zu prüfen, wie seine<br />

Anforderungen dazu passen. Falls der<br />

Kunde kein Interesse an der Priorisierung<br />

hat oder falls diese nicht ausreichend ist<br />

(z. B. wenn nur 10 % des Aufwands niedrig<br />

priorisiert sind), muss diese Bewertng beim<br />

Lieferanten intern übernommen werden,<br />

beispielsweise durch den Key Account<br />

Manager für diesen Kunden oder durch<br />

den Vertrieb oder das Marketing. Die<br />

Priorisierung darf nie allein im technischen<br />

Bereich erfolgen.<br />

Die Klassifikation der Anforderungen<br />

baut auf der Priorisierung auf und bildet<br />

die Anforderungen auf verschiedene<br />

Inkremente, Iterationen oder Produkt -<br />

versionen (Releases) ab. Sie unterscheidet<br />

die Anforderungen auch nach der Art der<br />

Realisierung. Beispielsweise sind manche<br />

Anforderungen nicht technischer Natur<br />

und verlangen nach organisatorischen<br />

Änderungen beim Benutzer.<br />

Schritt 10: Über<br />

Annahmen und<br />

Anforderungen entscheiden<br />

Nun haben wir eine Menge von Rand -<br />

bedingungen, Annahmen, Anforderungen,<br />

Prioritäten und Abhängigkeiten herausgearbeitet,<br />

modelliert und bewertet. Führen<br />

Sie getroffene Annahmen, Randbe din -<br />

gungen und Prioritäten immer wieder einer<br />

Entscheidungen zu. Sind Sie noch auf Kurs?<br />

Passen die getroffenen Annahmen zu den<br />

Randbedingungen und Kundenzielen? Die<br />

Entscheidung sollte iterativ nach jedem und<br />

6/2012


fachartikel<br />

teilweise in jedem der beschriebenen neun<br />

Schritte geschehen, denn sonst wird es<br />

unübersichtlich und aufwändig, sollte es zu<br />

Änderungen kommen. Bei Kunden hatten<br />

wir schon Fälle, wo die Anforderungen<br />

nahezu fertig herausgearbeitet und analysiert<br />

waren, um dann festzustellen, dass<br />

wesentliche Zielgruppen und Interessen -<br />

vertreter nicht berücksichtigt waren. Als<br />

diese sich dann einbrachten, hatte sich die<br />

Lage dadurch nochmals stark geändert.<br />

Solche Entscheidungen können sowohl<br />

intern als auch extern fallen. Prioritäten<br />

aus Kundensicht werden vorzugsweise<br />

direkt mit den Kunden getroffen. Sie werden<br />

aber nicht sofort zugesichert, denn<br />

noch sind Aufwände und Implikationen<br />

nicht bewertet. Daher erfolgt die endgültige<br />

Priorisierung immer intern. Nur so wird die<br />

bestmögliche Konvergenz von Zielen und<br />

Randbedin gungen erreicht. Jede dieser<br />

Festle gungen muss in Form einer Verein -<br />

barung dokumentiert werden und wird<br />

damit zu einem Bestandteil der Anfor -<br />

derungen.<br />

Fazit<br />

Anforderungen konkretisieren Ziele und<br />

definieren die Basis, auf der eine Lösung<br />

zum Kundennutzen entwickelt wird. Viel<br />

zu häufig werden Anforderungen unzusammenhängend<br />

gesammelt, statt sie aus<br />

einer Wertvorstellung und Vision aus Kun -<br />

densicht heraus zu entwickeln.<br />

Das Problem dabei ist, dass Funktionen<br />

schrittweise in ein zunehmend komplexes<br />

Produkt hinein entwickelt werden, ohne<br />

dass eine Sicht auf das endgültige Produkt<br />

vorliegt. Zumeist werden die Anforderun -<br />

gen nur oberflächlich beschrieben und<br />

nicht im Kontext analysiert, weil dieser<br />

nicht klar beschrieben und abgestimmt ist.<br />

Die Konsequenz sind viele Anfor derungs -<br />

änderungen und entsprechend Termin- und<br />

Kostenüberschreitungen sowie eine immer<br />

weniger beherrschte Komplexität des<br />

Produkts, was spätestens mit Varianten<br />

oder Versionen dann zu unnötigen Fehlern<br />

und weiteren Zusatzaufwänden führt.<br />

Ziele und Anforderungen sind nicht<br />

absolut wahr. Verschiedene Interessen -<br />

gruppen haben eine unterschiedliche<br />

Wahrnehmung und natürlich divergierende<br />

Ziele. Die Anforderungsermittlung schafft<br />

eine Basis gegenseitigen Verstehens. In<br />

einem Projekt ohne definierte und vereinbarte<br />

Ziele sind die Eigenschaften und die<br />

Qualität des resultierenden Produkts und<br />

damit unser wirtschaftlicher Erfolg von<br />

zufälliger Natur. Sie ergeben sich bestenfalls<br />

noch teilweise aus offensichtlichen<br />

Bedürfnissen der Problemstellung. Zur<br />

Hauptsache hängen sie jedoch von der<br />

Interpretation und den Vorlieben der beteiligten<br />

Gruppen ab (z. B. Produktmanager,<br />

Vertrieb, Entwickler, Systemanalysten), von<br />

Gruppenstrukturen und von den Beziehun -<br />

gen zwischen diesen Gruppen. Das Projekt<br />

ist nicht marktorientiert und sein Erfolg ist<br />

fragwürdig.<br />

Die Anforderungsermittlung hat die folgenden<br />

Ergebnisse:<br />

■<br />

■<br />

■<br />

Kontext und Vision des Projekts oder<br />

des Produkts.<br />

Bedürfnisse und Erwartungen an das<br />

Projekt.<br />

Spezifizierte Anforderungen.<br />

■ Gemeinsame Basis für Marketing, Ent -<br />

wicklung und Kunden.<br />

Das Ende dieser initialen Ermittlung ist<br />

erreicht, wenn alle notwendigen Abstim -<br />

mungen für das Projekt unterzeichnet sind.<br />

Alle wichtigen Interessengruppen müssen<br />

darin übereinstimmen, das Ende erreicht zu<br />

haben – sonst werden sie nie aufhören, Än -<br />

derungen vorzuschlagen. Änderungen an<br />

Projektinhalten sollten vertraglich geregelt<br />

werden, insbesondere der Änderungsprozess<br />

und die Entscheidung, welche Änderungen<br />

aufgenommen werden. Häufig<br />

führt die Furcht vor eigenen Unzuläng -<br />

lichkeiten in der Ermittlungsphase zu<br />

einem viel zu langen und unproduktiven<br />

Kreis lauf von Spezifikationen, Nachbes -<br />

serungen und Abstimmungsgesprächen.<br />

Den Interessengruppen sollten dabei drei<br />

Regeln ganz klar sein:<br />

1. Anforderungen sind nicht stabil.<br />

Anforderungen vor Projektstart einfrieren<br />

zu wollen, ist der falsche Ansatz.<br />

Wichtig ist es, ein sauberes Änderungsmanagement<br />

zu vereinbaren, um später<br />

mit Änderungen umgehen zu können.<br />

2. Nur ein zügiger Projektabschluss kann<br />

die Anforderungsfluktuationen begrenzen.<br />

Vereinbaren Sie eine kurze<br />

Projektdauer und die Änderungen und<br />

Unsicherheiten gehen automatisch<br />

zurück. Teilen Sie das Projekt in<br />

Inkremente auf, um die Komplexität<br />

und damit die Anforderungs än -<br />

derungen zu kontrollieren.<br />

3. Analyse schafft Paralyse. Das Projekt<br />

muss gestartet werden, um den Markt -<br />

eintritt nicht zu verpassen. Jeder Kunde<br />

oder Markt will eine Lösung für die<br />

artikulierten Bedürfnisse zum optimalen<br />

Zeitpunkt und nicht ein übergewichtiges<br />

Produkt viel zu spät. Nehmen<br />

Sie Funktionen heraus, über die man<br />

sich nicht einigen kann – sie sind offensichtlich<br />

nicht so wichtig. Priorisieren<br />

Sie nach Marktwert und Machbarkeit.<br />

Ein komplexes Produkt, das zu viele<br />

Bedürfnisse in einem Schritt erfüllen<br />

will, findet nachher keinen großen<br />

Markt.<br />

Achten Sie daher auf einen schnellen – aber<br />

nicht vorzeitigen – Abschluss der Ermitt -<br />

lung. In aller Regel sind die Anforderungen<br />

weder stabil noch komplett. Also müssen die<br />

kritischen Anforderungen verstanden sein,<br />

um damit ein Projekt inkrementell aufzusetzen.<br />

Da sich die Anforderungen nach der<br />

Ermittlungsaktivität noch ändern, sollte die<br />

Ermittlung immer auch spätere Änderungen<br />

antizipieren. David Parnas hatte das als<br />

„Design for Change“ charakterisiert. Heute<br />

sprechen wir von „Tech nical Debt“ (vgl.<br />

[Ebe12]). Gemeint ist, dass wir unser Design<br />

so machen müssen, dass Risiken, Altlasten<br />

und offene Punkte für zukünftige Versionen<br />

in ihren Konse quenzen und Kosten<br />

beherrscht werden.<br />

■<br />

Literatur<br />

[Coo99] A. Cooper, The Inmates are Running<br />

the Asylum, Macmillan 1999<br />

[Dav05] A.M. Davis, Just Enough<br />

Requirements Management, Dorset House<br />

2005<br />

[Ebe07] C. Ebert, R. Dumke, Software<br />

Measure ment, Springer-Verlag 2007<br />

[Ebe12] C. Ebert, Systematisches Require -<br />

ments Engineering (4. überarb. Auflage),<br />

dpunkt.verlag 2012<br />

[Sch10] E. Schick, Der Ich-Faktor, Han ser<br />

Verlag 2010<br />

70 71


mehr zum thema:<br />

swadok.de<br />

buchbesprechung für sie gelesen von ...<br />

SOFTWAREARCHITEKTUR-<br />

DOKUMENTATION WIRD MÖGLICH<br />

Das Buch von Stefan Zörner gibt Antworten auf die Frage, warum eine Dokumentation der<br />

Softwarearchitektur nötig ist. Dazu gibt es ganz praktische Hilfestellungen, wie eine gute<br />

Architekturdokumentation möglich wird.<br />

... Frank Pientka<br />

(Frank.Pientka@gmx.de),<br />

Senior Software Architect bei der MATERNA <strong>GmbH</strong><br />

und Gründungsmitglied des iSAQBs.<br />

Nach einer kurzen Motivation des Themas<br />

(Kapitel 1) werden im Hauptteil des Buches<br />

die Grundlagen und Voraussetzungen<br />

(Kapitel 2-6) für eine gute Softwarearchi -<br />

tektur erläutert. Es schließen sich drei<br />

Praxis kapitel (7-9) an, in denen der Autor<br />

die Dokumentationswerkzeuge vorstellt<br />

und einen Überblick über die Architektur<br />

gibt. Bei der Auswahl des Dokumentations -<br />

werkzeugs ist es wichtig zu klären, an wen<br />

die Architekturdokumentation adressiert<br />

ist und wer sie erstellen soll. Außerdem ist<br />

es hier wichtig, die genannten Schwächen<br />

und Stärken der jeweiligen Werkzeuge zu<br />

kennen und sich dann bewusst für die am<br />

besten geeignete Lösung zum Verwalten,<br />

Erstellen und Kommunizieren der Archi -<br />

tektur inhalte zu entscheiden.<br />

In einem eigenen Kapitel (8) diskutiert<br />

der Autor die Vor- und Nachteile, die<br />

Archi tekturdokumentation begleitend oder<br />

im Nachhinein durchzuführen. Da eine<br />

Softwarearchitektur nicht nur auf dem<br />

Papier, sondern irgendwann einmal auch<br />

im Code stattfindet, zeigt Zörner dies am<br />

Beispiel einer Schach-Engine „DokChess“,<br />

deren Code auch auf der Web-Seite zum<br />

Buch verfügbar ist. Ab schließend wird im<br />

Buch auf die typischen Stolpersteine bei der<br />

Architekturdokumen tation eingegangen,<br />

insbesondere darauf, wie diese umgangen<br />

oder entschärft werden können. Immer<br />

wieder streut der Autor Beispiele ein und<br />

fasst am Ende jedes Kapitels die<br />

Kernaussagen zusammen.<br />

Für eine pragmatische Architekturdoku -<br />

men tation sollte eine Balance zwischen<br />

einem „so viel wie nötig“ und einem „so<br />

wenig wie möglich“ gefunden werden.<br />

Zörner macht Lust, Architekturdoku -<br />

mentation nicht nur als lästige und notwendige<br />

Pflicht zu sehen, sondern sie als<br />

effizientes Kommunikations- und Entschei -<br />

dungs mittel zu nutzen.<br />

Wichtige Architekturaspekte lassen sich<br />

mit Bildern besser festhalten und kommunizieren.<br />

Verschiedene Architektursichten<br />

Stefan Zörner<br />

„Softwarearchitekturen<br />

dokumentieren und kommunizieren:<br />

Entwürfe, Entscheidungen und<br />

Lösungen nachvollziehbar und<br />

wirkungsvoll festhalten“<br />

Hanser Verlag, München, 2012<br />

ISBN: 978-3-446-42924-6<br />

277 Seiten, flexibler Einband<br />

34,90 € (auch als E-Book erhältlich)<br />

helfen, die Aspekte fokussierter darzustellen.<br />

Der Autor empfiehlt hierfür eine<br />

„Simplified UML”, um die wenigen UML-<br />

Elemente korrekt und konsistent zu verwenden,<br />

am besten unter Angabe der verwendeten<br />

UML-Version.<br />

Zörner verwendet originelle und eingängige<br />

Schaubilder, wie die Architektur-<br />

Brezel, das Vier-Quadranten-Modell (Was,<br />

Wie, Wohin noch, Warum), eine Kreuz -<br />

tabelle für Qualitätsziele mit Qualitäts -<br />

szenarien oder den Produktkarton. Diese<br />

helfen, komplexe Zusammenhänge prägnant<br />

darzustellen. Die Beispiele im Buch<br />

sind programmiersprachen- und technolo-<br />

gieneutral, wobei ein Grundverständnis der<br />

UML hilfreich ist.<br />

Der Autor plädiert für eine feste Archi -<br />

tektur-Dokumentationsstruktur, die so -<br />

wohl denjenigen hilft, die die Dokumen -<br />

tation erstellen, als auch denjenigen, die sie<br />

lesen. Dabei empfiehlt er die weit verbreitete<br />

arc42-Vorlage seines Vorwort-Schreibers<br />

Gernot Starke, zumal Zörner hierzu eigene<br />

Strukturergänzungen und die Werkzeug -<br />

unterstützung für „MagicDraw“ und<br />

„Confluence“ eingebracht hat.<br />

Für die Architekturdokumentation müssen<br />

die relevanten Themen identifiziert,<br />

priorisiert und dann jeweils mit einem kurzen<br />

Konzept und möglichen Lösungs -<br />

optionen umrissen werden. Deswegen ist es<br />

dem Autor für einen nachvollziehbaren und<br />

bewertbaren Architekturentwurf wichtig,<br />

dass die relevanten Einflussfaktoren – wie<br />

Randb edin gungen, Risiken und Quali -<br />

tätsziele – betrachtet werden und zentrale<br />

Entscheidun gen festgehalten werden. Dabei<br />

ist ihm der Lösungsweg mit den betrachteten<br />

und verworfenen Alternativen mindestens<br />

genauso wichtig wie die getroffene Entschei -<br />

dung.<br />

Zörner greift aktuelle Trends, z. B. die<br />

agile Softwareentwicklung, auf und schlägt<br />

gängige Werkzeuge, z. B. UML-Werkzeuge,<br />

Wikis, Blogs, MindMaps und Bugtracking-<br />

Tools, bei der Architektur dokumentation<br />

vor.<br />

Man merkt dem Buch an, dass sein Autor<br />

seit mehreren Jahren den Spagat als<br />

Softwareentwickler, Apache-Committer,<br />

Architekt, Trainer oder Referent übt. Bei<br />

der Fülle der präsentierten Ideen bietet es<br />

sich an, Ausschnitte aus dem Buch bei passender<br />

Gelegenheit immer wieder nachzulesen.<br />

Die dazugehörige Webseite und die im<br />

Preis des gedruckten Buches enthaltene<br />

PDF-Fassung erhöhen den Nutzen, da<br />

damit das Lesen und spätere Nachschlagen<br />

erleichtert werden. Ich kann das Buch allen<br />

Softwarearchitekten und Softwerkern<br />

wärmstens empfehlen kann.<br />

■<br />

6/2012


fachartikel<br />

m e h r z u m t h e m a :<br />

de.wikipedia.org/wiki/JavaScript<br />

de.wikipedia.org/wiki/Portal_%28Informatik%29<br />

die autoren<br />

ARCHITEKTUREN FÜR MODERNE<br />

WEB-ANWENDUNGEN:<br />

TEIL 2: JAVASCRIPT UND<br />

JEE-PORTAL-SERVER<br />

Web-Anwendungen lassen sich in Anwendungsklassen unterteilen, die sich jeweils unterschiedlich<br />

gut mit den verschiedenen Technologie-Stacks realisieren lassen. In der letzten Ausgabe<br />

von OBJEKTspektrum haben wir einige Anwendungsklassen vorgestellt und Realisierungen auf<br />

der Basis von Content-Management-Systemen (CMS) und serverseitigen Web-Frameworks<br />

beleuchtet. Anschließend haben wir gezeigt, welche Anwendungsklassen sich mit den zwei vorgestellten<br />

Realisierungstypen am besten umsetzen lassen. Diesmal stellen wir zwei weitere<br />

Realisierungstypen vor – Architekturen auf der Basis von JavaScript und JEE-Portal-Servern –<br />

und zeigen so eine technologische Lösung für die restlichen Anwendungsklassen.<br />

Andreas Hartmann<br />

(hartmann@adesso.de)<br />

ist Principal Software Architect bei der adesso AG,<br />

Vortragender auf Konferenzen sowie Autor diverser<br />

Fachartikel. Sein Tätigkeitsschwerpunkt liegt in<br />

der Konzeption und Implementierung von leichtgewichtigen<br />

Softwarearchitekturen und Frameworks<br />

auf Basis der JEE-Plattform.<br />

JavaScript-basierte<br />

Web-Anwendungen<br />

Die Rolle von JavaScript in modernen Web-<br />

Anwendungen ist fundamental. Gelegent -<br />

lich wird noch versucht, JavaScript direkt<br />

mit der Anforderungsdefinition zu verbieten,<br />

um Rücksicht auf diejenigen zu nehmen,<br />

die JavaScript aus Policy-Gründen<br />

nicht aktiviert haben, oder um „barrierefrei”<br />

zu sein. Im Projektverlauf wird dann<br />

aber trotzdem häufig JavaScript eingesetzt,<br />

weil eine neue Anforderung hinzugekommen<br />

ist, die sich nur mit JavaScript umsetzen<br />

lässt. Dazu zählt beispielsweise eine<br />

Sicherheitsabfrage vor dem Schließen eines<br />

Fensters mit einem bereits ausgefüllten<br />

Formular. Oder das eingesetzte Web-<br />

Frame work abstrahiert so sehr von<br />

JavaScript, dass es dem Entwickler gar<br />

nicht auffällt, dass er JavaScript einsetzt.<br />

Dieses ambivalente bis ablehnende Ver -<br />

halten gegenüber JavaScript ist oft kontraproduktiv.<br />

Ein bewusster Einsatz von<br />

JavaScript bietet nämlich viele Möglich -<br />

keiten (siehe Abbildung 1).<br />

Mit Hilfe von JavaScript kann der<br />

Browser mittlerweile als vollwertige An -<br />

wen dungsplattform für Rich Internet<br />

Tom Hombergs<br />

(tom.hombergs@adesso.de)<br />

ist Senior Software Engineer bei der adesso AG<br />

und arbeitet dort als Architekt und Entwickler an<br />

der Konzeption und Entwicklung von Anwendungen<br />

auf Basis von Java-Technologien. Seine<br />

Schwerpunkte sind Web-Anwendungen.<br />

Eberhard Wolff<br />

(eberhard.wolff@adesso.de)<br />

arbeitet als Architektur- und Technologie-Manager<br />

für die adesso AG in Berlin. Er wurde von Oracle in<br />

die Gruppe der Java-Champions aufgenommen, ist<br />

Autor einiger Fachbücher und spricht regelmäßiger<br />

auf verschiedenen Konferenzen.<br />

Abb. 1: Neue Möglichkeiten mit HTML5 und JavaScript.<br />

Appli cations (RIAs) genutzt werden.<br />

JavaScript kann natürlich wie bisher eingesetzt<br />

werden, um die Benutzungsoberfläche<br />

dynamischer und letztendlich für den<br />

Benutzer angenehmer zur gestalten. Aber<br />

der Einsatz der mit HTML5 eingeführten<br />

JavaScript-APIs eröffnet völlig neue Mög -<br />

lichkeiten, die nicht nur Einfluss auf die<br />

Benutzungsoberfläche, sondern auch auf<br />

die Implementierung der Geschäftslogik<br />

und die serverseitige Architektur haben. Im<br />

72 73


fachartikel<br />

Der Begriff Unobtrusive JavaScript und das übergreifende Konzept des Pro gressive<br />

Enhancement stammen aus der Zeit der Anfänge von AJAX, in der JavaScript eine größere<br />

Rolle zukam als zuvor. Das Konzept des Progressive En han cement sieht vor, bei der<br />

Entwicklung von Web-Anwendungen zunächst eine Grundfunktionalität zur Verfügung<br />

zu stellen, die mit allen Browsern und von allen Benutzern genutzt werden kann. Auf<br />

Basis dieser Grundfunktionalität kann dann weitere Funktionalität hinzugefügt werden,<br />

die nur verfügbar ist, wenn der Benutzer und dessen Browser die notwendigen<br />

Voraussetzungen dafür mitbringen. Unobtrusive JavaScript greift dieses Konzept auf<br />

und überträgt es auf die Verwendung von JavaScript. Java Script soll demnach nur für<br />

Zusatzfunk tionalität eingebaut werden, auf die man auch verzichten kann, denn nicht<br />

jeder Benutzer hat JavaScript in seinem Browser aktiviert. Laut einer Untersu chung von<br />

Yahoo aus dem Jahre 2010 haben aber nur etwa ein bis zwei Prozent der Internet-Nutzer<br />

JavaScript in ihrem Browser deaktiviert (vgl. [Zak10]). In Anbetracht dieser Verbreitung<br />

von JavaScript und der Einführung zahlreicher neuer JavaScript-APIs mit HTML5 sollte<br />

das Konzept des Unobtrusive Javascript von Anwendung zu Anwen dung überdacht<br />

werden. Sind für die An wen dung beispielsweise HTML5-Java Script-Features notwendig,<br />

kann man auf JavaScript nicht verzichten. Sind die Nutzer der Anwendung dagegen<br />

hauptsächlich Mitarbeiter in Unternehmen mit restriktiven Sicherheits-Policies, sollte<br />

man dem Konzept des Unobtrusive JavaScript folgen. Zumindest bei öffentlich zugänglichen<br />

Anwendungen im In ter net ist zu beobachten, dass JavaScript mehr und mehr eine<br />

zwingende Voraus setzung zur Nutzung ist. Als Beispiel lassen sich die Anwendungen<br />

von Google, wie z. B. „Google Docs“ und „GMail“, nennen, die ohne JavaScript nicht<br />

lauffähig sind.<br />

Kasten 1: Unobtrusive JavaScript.<br />

Folgenden erläutern wir verschiedene<br />

Szenarien zum Einsatz von JavaScript<br />

sowie deren Auswirkungen auf die Archi -<br />

tektur einer Web-Anwendung.<br />

Bereicherung der GUI mit JavaScript<br />

Der Einsatz von JavaScript zur Berei cherung<br />

der Benutzungsoberfläche ist nichts Neues.<br />

Dabei liefert ein Web-Server üblicherweise<br />

ein HTML-Dokument mit viel serverseitig<br />

generiertem Markup und wenig JavaScript<br />

aus. Der JavaScript-Code ergänzt das<br />

Markup, um es dynamischer zu gestalten,<br />

z. B. um Formulareingaben clients eitig zu<br />

validieren oder um Tabellen mit einer<br />

Filteroption zu versehen. Dafür steht eine<br />

Vielzahl von JavaScript-Frame works mit<br />

diversen Plug-Ins zur Verfügung, die so gut<br />

wie jeden Anwendungsfall abdecken. Das<br />

wohl am weitesten verbreitete Framework<br />

dieser Art ist „JQuery“ (vgl. [Jqu]).<br />

Der Ansatz, JavaScript als Ergänzung<br />

einzusetzen, folgt dem verbreiteten Grund -<br />

satz des Unobtrusive JavaScript, nach dem<br />

eine Anwendung auch ohne JavaScript<br />

funktionieren soll und durch JavaScript nur<br />

optionale Zusatz-Features umgesetzt werden<br />

(siehe Kasten 1). Dieser Ansatz eignet<br />

sich somit gut für Web-Anwendungen, die<br />

hohe Anforderungen an eine ansprechende<br />

Benutzungsoberfläche stellen, bei denen<br />

aber Kompromisse in Bezug auf die<br />

Usability bei deaktiviertem JavaScript<br />

akzeptabel sind.<br />

Dieser Ansatz lässt sich leicht mit einem<br />

der bewährten, im letzten Artikel vorgestellten<br />

serverseitigen Web-Frameworks verbinden<br />

(vgl. [Har12]). Sowohl das HTML-<br />

Markup als auch das JavaScript werden<br />

durch eines der konventionellen Web-Frame -<br />

works erzeugt. Allerdings verstecken viele<br />

dieser Frame works den Einsatz von<br />

JavaScript, sodass der Entwickler in einigen<br />

Fällen gar nicht mehr weiß, ob die von ihm<br />

entwickelte Benut zungsoberfläche JavaScript<br />

einsetzt oder nicht. Hier sind Model/View/<br />

Co ntroller-Frameworks den komponentenbasierten<br />

Frameworks gegenüber im Vorteil,<br />

da sie keine so umfassende Abstraktion über<br />

HTTP, HTML oder JavaScript haben.<br />

Unterstützen die Web-Frameworks Java -<br />

Script, kann der Funktionsumfang mit einer<br />

guten JavaScript-Bibliothek wie JQuery meistens<br />

nicht mithalten. So ist es häufig trotzdem<br />

notwendig, JavaScript an einigen Stellen<br />

per Hand zu schreiben. Dadurch entsteht<br />

eine Diskrepanz in der Entwicklung: An einigen<br />

Stellen wird JavaScript automatisch<br />

erzeugt, an anderen Stellen per Hand. Das<br />

kann zu Konflikten führen.<br />

Erzeugung der GUI mit JavaScript<br />

JavaScript kann durch die Performance<br />

moderner JavaScript-Implementierungen<br />

und die Vielzahl mächtiger Bibliotheken<br />

mittlerweile viel mehr, als nur einfache<br />

GUI-Logik implementieren. Die Entwick -<br />

lung der gesamten Benutzungs ober fläche<br />

kann in JavaScript erfolgen. In diesem<br />

Szenario wird von einem Web-Server ein so<br />

gut wie leeres HTML-Dokument mit einer<br />

JavaScript-Datei ausgeliefert. Die Java -<br />

Script-Datei enthält Code, der das komplette<br />

HTML-Markup für die Benut -<br />

zungsoberfläche erzeugt. Die Logik zur<br />

Erzeugung des HTML-Markups wird also<br />

vom Server vollständig in den Client verlagert.<br />

Wo man sonst vielleicht ein kompo -<br />

nentenbasiertes Web-Framework auf der<br />

Server-Seite genutzt hat, greift man nun auf<br />

ein JavaScript-Templating-Framework, wie<br />

z. B. „HandlebarsJS“, zurück, um dem<br />

Code Struktur zu geben (vgl. [Han]). Mit<br />

solchen Templating-Frameworks lassen<br />

sich Oberflächen-Elemente an zentraler<br />

Stelle definieren und an verschiedenen<br />

Stellen der Benutzungsoberfläche mit<br />

unterschiedlichen Inhalten anzeigen. Ak -<br />

tuell entsteht in dem Bereich der<br />

JavaScript-Templating-Bibliotheken eine<br />

Vielzahl von Technologien.<br />

Der Server liefert also nur HTML-Gerüs -<br />

te und JavaScript aus. Serverseitige Web-<br />

Frameworks haben in diesem Szenario<br />

kaum noch eine Bedeutung – allenfalls zur<br />

Erzeugung des HTML-Rahmens können<br />

sie eingesetzt werden. Einen fast leeren<br />

HTML-Rahmen kann man aber auch mit<br />

viel weniger Overhead erzeugen. Da die<br />

Erzeugung des HTML-Markups vollständig<br />

im Client abläuft, hat der Server aber<br />

auch nicht mehr so viel zu tun und kann<br />

potenziell mehr parallele Anfragen beantworten,<br />

als dies beim Einsatz eines serverseitigen<br />

Web-Frameworks der Fall wäre.<br />

Das ausgelieferte JavaScript ist vollständig<br />

von Hand programmiert, es gibt keine<br />

Mischung mehr mit automatisch erzeugtem<br />

JavaScript-Code.<br />

Serverseitige Anwendungslogik kann<br />

dem JavaScript-Client beispielsweise über<br />

eine REST-Schnittstelle zur Verfügung ge -<br />

stellt werden. Hierfür kommen REST-<br />

Frameworks wie „Jersey“, „Restlet“ zum<br />

Einsatz (vgl. [Jer], [Res]). Zum Aufruf der<br />

REST-Schnittstelle aus dem JavaScript-<br />

Code heraus wird die bewährte<br />

XmlHttpRequest-API genutzt. Es handelt<br />

sich also um gewöhnliche AJAX-Anfragen.<br />

Da der Zustand der Benutzungsoberfläche<br />

6 / 2 012


fachartikel<br />

im Client gespeichert wird, ist die serverseitige<br />

Verarbeitungslogik zustandslos. Damit<br />

sinkt der Speicher-Footprint auf dem Server<br />

und die nicht immer ganz einfach umzusetzende<br />

Replikation von Sessions in einem<br />

Server-Cluster ist kein Thema mehr.<br />

Im Hinblick auf Barrierefreiheit ist bei<br />

einer JavaScript-lastigen Architektur übrigens<br />

nicht viel mehr Sorgfalt erforderlich<br />

als bei Architekturen ohne JavaScript.<br />

Gegen den Grundsatz des Unobtrusive<br />

JavaScript wird hier zwar explizit verstoßen.<br />

Allerdings unterstützen moderne<br />

Hilfs programme für Benutzer mit Behin -<br />

derungen mittlerweile den ARIA-Standard<br />

des W3C, durch den Oberflächenelemente<br />

im Markup mit bestimmten Rollen annotiert<br />

werden können. Diese Rollen werden<br />

von Hilfsprogrammen, wie z. B. Screen-<br />

Readern, dann ausgewertet – egal ob das<br />

Markup mit JavaScript erzeugt wurde oder<br />

nicht.<br />

Echtzeitkommunikation mit WebSocket<br />

Anwendungen, die eine Echtzeit-Kom -<br />

muni kation zwischen Client und Server in<br />

beiden Richtungen erfordern, konnte man<br />

bisher eher schlecht als Web-Anwendungen<br />

implementieren. Zu dieser Gattung von<br />

Anwendung gehören zum Beispiel<br />

Monitoring-Dashboards, die in kurzen<br />

Abständen regelmäßig Daten von einem<br />

Server entgegennehmen und diese anzeigen.<br />

Da das HTTP-Protokoll eine Kommuni -<br />

kation vom Server zum Client nur nach<br />

einer Client-Anfrage vorsieht, müsste hier<br />

intensiv vom Comet-Programmiermodell<br />

Gebrauch gemacht werden. Dabei sendet<br />

der Client zunächst eine AJAX-Anfrage an<br />

den Server. Dieser hält die Anfrage solange<br />

offen, bis neue Daten zum Versenden verfügbar<br />

sind, und sendet diese Daten dann<br />

als Antwort auf die Anfrage zurück. Nach<br />

dem Empfang der Daten schickt der Client<br />

direkt die nächste Anfrage dieser Art an<br />

den Server. Dadurch kann der Server jederzeit<br />

aktuelle Daten an den Client schicken,<br />

da ständig eine entsprechende Anfrage vorliegt.<br />

Die Kommunikation geht aber immer<br />

noch vom Client aus. Ein echter Server-<br />

Push-Mechanismus ließ sich bisher in Web-<br />

Anwendungen nicht realisieren, weshalb<br />

Echtzeit-Anwendungen oft mit einem eigenen<br />

Client-Programm umgesetzt wurden.<br />

Die WebSocket-API schließt genau diese<br />

Lücke. Per WebSocket ist es möglich, eine<br />

Socket-Verbindung aus dem Browser heraus<br />

zu einem oder mehreren Servern aufzubauen.<br />

Ist eine solche Verbindung einmal<br />

aufgebaut, kann sie sowohl vom Client als<br />

auch vom Server zum Versenden von<br />

Nachrichten genutzt werden. Der Server ist<br />

nun in der Lage, echte Push-Nachrichten<br />

an den Client zu senden. Natürlich möchte<br />

man diese Verbindungen weder client- noch<br />

serverseitig manuell im Code verwalten.<br />

Deshalb greift man auf Frameworks wie<br />

„SocketIO“ zurück (vgl. [Soc]). Im clientseitigen<br />

JavaScript-Code dient SocketIO als<br />

Abstraktion der WebSocket-API. Server -<br />

seitig kann es im Zusammenspiel mit dem<br />

JavaScript-Framework „NodeJS“ als<br />

WebSocket-Server eingesetzt werden (vgl.<br />

[Joy]). Ist man serverseitig auf Java angewiesen,<br />

kann beispielsweise ein Jetty-Web-<br />

Server als WebSocket-Server fungieren, da<br />

er eine entsprechende WebSocket-Biblio -<br />

thek direkt mitbringt (vgl. [Jet]). Eine gute<br />

Abstraktion über verschiedene Kommuni -<br />

kations mechanismen – unter anderem auch<br />

WebSockets – ist das „Atmosphere“-<br />

Frame work (vgl. [Atm]).<br />

Offline-Anwendungen<br />

Ein weiteres Szenario, das bisher nicht mit<br />

einer Web-Architektur abzubilden war,<br />

sind offline-fähige Web-Anwendungen.<br />

Einmal vom Server heruntergeladen, sind<br />

sie auch ohne Internet-Verbindung lauffähig.<br />

Der Benutzer kann mit der Anwen -<br />

dung arbeiten und entstandene Daten bei<br />

der nächsten Online-Sitzung mit dem<br />

Server synchronisieren. Bisher musste für<br />

ein solches Szenario stets ein proprietäres<br />

Client-Programm oder Plug-In installiert<br />

werden.<br />

Mit dem in HTML5 eingeführten<br />

Application Cache können offline-fähige<br />

Anwendungen nun auch mit dem Browser<br />

als Client realisiert werden. Der Entwickler<br />

definiert, welche Dateien der Browser beim<br />

ersten Zugriff in einem Cache halten soll.<br />

Gibt man die Adresse der Web-Anwendung<br />

ohne eine Verbindung zum Internet in den<br />

Browser ein, lädt dieser die definierten<br />

Dateien aus dem Cache, sodass die<br />

Anwendung weiterhin funktioniert. Daten,<br />

die bei der Nutzung der Web-Anwendung<br />

im Offline-Modus anfallen, können z. B. in<br />

der ebenfalls mit HTML5 eingeführten<br />

IndexedDB gespeichert werden. Dabei<br />

handelt es sich um eine NoSQL-<br />

Datenbank, die vom Browser zur Ver fü -<br />

gung gestellt wird und die Java Script-Ob -<br />

jekte im JSON-Format (JavaScript Object<br />

Notation) persistiert.<br />

Zur Vereinfachung der clientseitigen Da -<br />

ten speicherung kann z. B. das „AmplifyJS”-<br />

Framework eingesetzt werden, das eine<br />

Abstraktionsschicht zum Datenspeicher zur<br />

Verfügung stellt (vgl. [Amp]). So muss der<br />

restliche JavaScript-Code nicht zwischen<br />

Online- und Offline-Datenspeicherung<br />

unter scheiden. Zur Synchronisation der<br />

offline angefallenen Daten mit einer serverseitigen<br />

Datenbank hat man mehrere Mög -<br />

lichkeiten. Greift man serverseitig auf eine<br />

Datenbank mit REST-Schnittstelle zurück,<br />

wie z. B. „CouchDB“, kann man aus dem<br />

JavaScript-Code der Web-Anwendung heraus<br />

diese REST-Schnittstelle bedienen (vgl.<br />

[Apa]). Alternativ kann die Synchroni -<br />

sierung auch per WebSocket vorgenommen<br />

werden, wofür dann allerdings ein<br />

WebSocket-Server als Vermittler zwischen<br />

Client und Datenbank notwendig wird.<br />

Ein großer Vorteil dieses Offline-Szena -<br />

rios ist, dass der Rollout einer Anwendung<br />

völlig trivial wird. Zur „Installation” der<br />

Client-Anwendung greift der Benutzer einfach<br />

einmal online auf die Anwendung zu.<br />

Der Browser kümmert sich dann darum,<br />

die benötigten Daten in den Cache zu<br />

laden. Vorsicht ist bei einer offline-fähigen<br />

Anwendung geboten, wenn im Offline-<br />

Modus sicherheitskritische Daten verarbeitet<br />

oder erzeugt werden. Da die komplette<br />

Anwendungslogik in JavaScript abgebildet<br />

werden muss, stehen hier Tür und Tor für<br />

clientseitige Manipulation offen.<br />

JEE-Portal-Server<br />

Für Unternehmen stellen Portale eine einheitliche<br />

Plattform für Mitarbeiter, Partner,<br />

Kunden und/oder Lieferanten dar, die einen<br />

personalisierten Zugriff auf Informationen<br />

und Prozesse ermöglicht. Die wirtschaftlichen<br />

Beweggründe sind dabei die effizientere<br />

Nutzung der bestehenden IT-Infra struk -<br />

tur, die Personalisierung von Infor ma tionen,<br />

die Verwaltung von Wissen, die Vermei dung<br />

von Medienbrüchen und die Optimierung<br />

der Arbeitsabläufe durch eine bereichs- und<br />

unternehmensübergreifende Anwendungs -<br />

integration.<br />

Portale, respektive JEE-Portal-Server,<br />

adres sieren die Themen Aggregation, Per -<br />

so nalisierung, Präsentation und Sicherheit.<br />

Portale übernehmen dabei die Rolle einer<br />

Integrationsplattform zur Aggregation von<br />

Inhalten und Anwendungen. Typische<br />

Merkmale von Portal-Servern sind:<br />

■ Benutzer können persönliche Bereiche<br />

individuell konfigurieren.<br />

■ Portal-Server ermöglichen die Um -<br />

setzung eines einheitlichen Look&Feels<br />

74 75


fachartikel<br />

Abb. 2: Portal-Pages.<br />

■<br />

■<br />

und die Aufbereitung der Inhalte für<br />

unterschiedliche Ausgabekanäle. Dabei<br />

werden Anforderungen z. B. aus dem<br />

mobilen und barrierefreien Kontext<br />

umgesetzt.<br />

Portal-Server stellen den notwendigen<br />

technischen Rahmen für eine einheitliche<br />

Sicherheitsarchitektur zur Verfü -<br />

gung. Die technischen Rahmenbedin -<br />

gun gen für das Single Sign-on bei den<br />

einzelnen Anwendungen hängen allerdings<br />

vom konkret eingesetzten Portal-<br />

Server ab. Ergänzend hierzu erfolgt die<br />

Vergabe von Berechtigungen auf verschiedene<br />

Portal-Bestandteile orthogonal<br />

zu dem Berechtigungs konzept der<br />

integrierten Anwendun gen. So wird<br />

festgelegt, welche Benut zer/Gruppen<br />

welche Portal-Bestandteile sehen oder<br />

editieren dürfen. Nach einer<br />

Anmeldung am Portal erhält der Be -<br />

nutzer dann gemäß seiner Portal-<br />

Berechtigung Zugriff auf die einzelnen<br />

Portal-Bestandteile.<br />

Darüber hinaus bieten die verschiedenen<br />

Portal-Server eine Fülle von bereits fertigen<br />

Portlets an, die im Rahmen der eigenen<br />

Anwendung verwendet und bei<br />

Bedarf angepasst werden können. So hat<br />

zum Beispiel das Liferay Portal einen<br />

sehr umfangreichen Satz von Portlets zu<br />

verschiedenen Bereichen, wie z. B.<br />

Community, Content-Ma nage ment so -<br />

wie Collaboration (vgl. [Lif]).<br />

Ein Portal im Sinne von „Java EE“ setzt<br />

sich aus einer oder mehreren Portal Pages<br />

zusammen (siehe Abbildung 2). Auf einer<br />

Portal Page befinden sich mehrere Portlets,<br />

die jeweils die Logik und Darstellung für<br />

einen Teil der Seite verwalten, sowie<br />

Portlet-Applications. Eine Portlet-Applica -<br />

tion besteht dabei aus mehreren Portlets,<br />

die in sich geschlossen eine fachlich/technisch<br />

sinnvolle Einheit bilden. Dem Benut -<br />

zer ist es prinzipiell möglich, Portlets ge -<br />

mäß seiner eigenen Vorstellung anzuordnen<br />

und nach Belieben weitere Portlets auf seine<br />

Portal-Seite zu legen, sofern er hierzu die<br />

notwendigen Berechtigungen hat.<br />

Ein Portlet selbst besteht aus einem<br />

Portlet Title, den Portlet Modes View, Edit<br />

und Help, den Portlet States Normal,<br />

Maximized und Minimized, dem eigentlichen<br />

Content sowie dem Portlet Window,<br />

das alles umschließt (siehe Abbildung 3).<br />

Welche Portlet Modes angezeigt werden,<br />

hängt von der konkreten Berechtigung<br />

eines Benutzers ab. Gängig ist, dass ein<br />

Benutzer lediglich die Berechtigung für den<br />

Portlet Mode View hat, während ein<br />

Administrator die Berechtigung für den<br />

Portlet Mode Edit erhält, um so das Portlet<br />

anzupassen. Der Portlet Mode Help wird<br />

in Regel nicht verwendet, da eine Extra-<br />

Hilfeseite heutzutage nicht mehr den Be -<br />

nut zeranforderungen hinsichtlich der Hilfe -<br />

funktionalität entspricht. Hier wird vielmehr<br />

eine kontextsensitive Hilfe bei den<br />

Portlet Modes View und Edit erwartet.<br />

Bei den Portlet States ist Normal der gängige.<br />

Dabei werden mehrere Portlets<br />

gemeinsam auf der Seite angezeigt. Die<br />

Portlet States Maximized und Minimized<br />

stehen dem Benutzer in den meisten<br />

Portalen nicht direkt zur Verfügung, sondern<br />

werden – abhängig vom fachlichen<br />

Kontext – programmatisch benutzt.<br />

Die Implementierung von Portlets ge -<br />

schieht auf Basis des Standards „JSR<br />

impressum<br />

Verlag: SIGS DATACOM <strong>GmbH</strong><br />

Lindlaustr. 2c, D-53842 Troisdorf<br />

Tel.: +49 (0) 2241/2341-100, Fax: +49 (0) 2241/2341-199<br />

www.sigs-datacom.de · E-Mail: info@sigs-datacom.de<br />

Chefredakteur: Thorsten Janning<br />

Lindlaustr. 2c, D-53842 Troisdorf<br />

Tel.: +49 (0) 2241/2341-100, Fax: +49 (0) 2241/2341-199<br />

E-Mail: fachartikel@objektspektrum.de<br />

Mitglieder der Redaktion:<br />

Matthias Bohlen, Consultant<br />

Wolfgang Keller, object architects<br />

Dr. Johannes Mainusch, Otto <strong>GmbH</strong> & Co. KG<br />

Prof. Dr. Andreas Rausch, Technische Universität Clausthal<br />

Martin Schimak, Martin Schimak <strong>GmbH</strong><br />

Rainer Singvogel, msg systems ag<br />

Torsten Weber, GROSSWEBER, Groß, Weber & Partner<br />

Honorary Editorial Member: Dr. Frances Paulisch<br />

Aus der Szene: Ulrich Schmitz und Kirsten Waldheim,<br />

E-Mail: Ulrich.Schmitz@sigs-datacom.de<br />

Schlussredakteurin: Kirsten Waldheim,<br />

E-Mail: schlussredaktion@objektspektrum.de<br />

Freie Mitarbeiterin: Elke Niedermair, E-Mail: e.a.n@gmx.de<br />

Manuskripteinsendungen: Manuskripte werden von der Redaktion –<br />

ausschließlich in elektronischer Form – gerne angenommen. Mit der<br />

Einsendung von Manuskripten gibt der Verfasser die Zustimmung zum<br />

Abdruck, zur Vervielfältigung auf Datenträgern und zur Übersetzung.<br />

Weitere Informationen und Honorarfestlegungen finden Sie in unseren<br />

Autorenrichtlinien: www.sigs-datacom.de/fachzeitschriften/<br />

objektspektrum/hinweise-fuer-autoren/richtlinien.html.<br />

Verlagsleitung: Günter Fuhrmeister<br />

Redaktions- und Herstellungsleitung Zeitschriften:<br />

Susanne Herl, Tel.: +49 (0) 2241/2341-550,<br />

E-Mail: Susanne.Herl@sigs-datacom.de<br />

Leserservice: objektspektrum@sigs-datacom.de<br />

Vertriebs- und Marketingleitung: Beate Friedrichs<br />

Tel.: +49(0)2241 / 2341 - 560, Email: Beate.Friedrichs@sigs-datacom.de<br />

Anzeigen: Brigitta und Karl Reinhart<br />

Ostring 5h, D-85630 Grasbrunn,<br />

Tel.: +49 (0) 89/464729, Fax: +49 (0) 89/463815,<br />

E-Mail: Karl.Reinhart@sigs-datacom.de<br />

Druck: F&W Mediencenter <strong>GmbH</strong><br />

Holzhauser Feld 2 · D-83361 Kienberg · Tel.: +49 (0) 8628/9884-52<br />

E-Mail: anzeigendaten@objektspektrum.de<br />

Abonnenten-Service: IPS Datenservice <strong>GmbH</strong>, Postfach 13 31,<br />

D-53335 Meckenheim, Tel.: +49 (0) 22 25/70 85-374<br />

Fax: +49 (0) 22 25/70 85-376, Patrick König, Markus Preis<br />

E-Mail: aboservice@sigs-datacom.de<br />

Erscheinungsweise: zweimonatlich<br />

Bezugspreise:<br />

Einzelverkaufspreis: € 8,90 (D), € 9,90 (A), sfr 16,50 (CH)<br />

Jahresabonnement Deutschland: € 50,90 inkl. Versandkosten<br />

Jahresabonnement Europa: € 58,20 inkl. Versandkosten<br />

Jahresabonnement außerhalb Europas: € 63,60 inkl. Versandkosten<br />

Studentenabo: € 44,84 inkl. Versandkosten<br />

Bankverbindung:<br />

Postbank München, Konto-Nr. 560 737 801, BLZ 700 100 80<br />

Lieferung an Handel:<br />

Verlagsunion KG, Postfach 5707,<br />

D-65047 Wiesbaden, Tel.: +49 (0) 61 23/620-0<br />

Layout und Produktion: leuchtfeuer-agentur · Sven Lesemann<br />

Büro in Köln: Schanzenstraße 31 · D-51063 Köln,<br />

www.leuchtfeuer-agentur.de · E-Mail: Lesemann@leuchtfeuer-agentur.de<br />

Urheberrecht: Für Programme, die als Beispiele veröffentlicht werden, kann<br />

der Herausgeber weder Gewähr noch irgendwelche Haftung über nehmen. Aus<br />

der Veröffentlichung kann nicht geschlossen wer den, dass die beschriebenen<br />

Lösungen oder verwendeten Bezeich nungen frei von gewerblichen<br />

Schutzrechten sind. Die Erwähnung oder Be ur teilung von Produkten stellt keine<br />

irgendwie geartete Empfehlung dar. Für die mit Namen oder Signatur<br />

gekennzeichneten Beiträge über nehmen der Verlag und die Redaktion lediglich<br />

die presse rechtliche Verantwortung.<br />

© 2012 SIGS DATACOM <strong>GmbH</strong><br />

ISSN 0945-0491<br />

Die Zeitschrift wird mit chlorfreiem Papier hergestellt<br />

6/2012


fachartikel<br />

Abb. 3: Portlet.<br />

168“ bzw. des aktuellen „JSR-286-<br />

Portlet“-Standards, wobei JSR 168 rudimentär<br />

ist. In diesem Standard wird z. B.<br />

nicht geregelt, wie Nachrichten zwischen<br />

einzelnen Portlets ausgetauscht werden<br />

können. Hierfür hatten die diversen Portal-<br />

Server-Hersteller jeweils bisher eigene proprietäre<br />

Lösungen. Im JSR 286 wurden<br />

unter anderem die Inter Portlet<br />

Communication (IPC) und das Resource<br />

Serving mit aufgenommen.<br />

Bei den Portlets unterscheidet man unter<br />

anderem zwischen der Action und der<br />

Render Phase. In der Action Phase wird<br />

eine Aktion innerhalb eines Portlets ausgelöst,<br />

während in der Render Phase der<br />

Portlet Content lediglich dargestellt wird.<br />

Abb. 4: Sequenzdiagramm JSR 268.<br />

Das Zusammenspiel zwischen den einzelnen<br />

Portlets regelt dabei der Portlet Con -<br />

tainer. Dieser sorgt unter anderem für die<br />

korrekte Bearbeitungsabfolge bei einer Be -<br />

nut zerinteraktion. Abbildung 4 zeigt ein<br />

Sequenzdiagramm. Hier wird zunächst die<br />

Benutzerinteraktion in Portlet A bearbeitet<br />

und anschließend der Content aller Portlets<br />

erzeugt. Für weitere Details sei auf den JSR<br />

286 verwiesen (vgl. [Ora]).<br />

Die Implementierung von Portlets nach<br />

JSR 286 erinnert stark an die Pro -<br />

grammierung von Servlets und ist dementsprechend<br />

so nicht praktikabel im Rahmen<br />

der Anwendungsentwicklung einsetzbar.<br />

Um die verschiedenen Web-Frameworks im<br />

Rahmen der Portlet-Entwicklung dennoch<br />

einsetzen zu können, wird jeweils eine<br />

Web-Framework-spezifische Portlet Bridge<br />

benötigt. So gibt es zur Nutzung von „Java<br />

Server Faces“ bei der Portlet-Entwicklung<br />

den JSR 329, der die JSF Portlet Bridge<br />

adressiert.<br />

Das Einbinden bestehender Web-Appli -<br />

kationen in ein Portal ist ein komplexer<br />

Vorgang. Zwar kann man auf verschiedene<br />

Web-Clipping-Lösungen diverser Portal-<br />

Server-Hersteller zurückgreifen, jedoch treten<br />

hier schon recht schnell erste technische<br />

Probleme auf, wenn eine zu integrierende<br />

Anwendung JavaScript enthält oder sich<br />

ändert. Alternativ trifft man nicht selten<br />

iFrame-basierte Lösungen an. Dabei entstehen<br />

Nachteile, z. B. dass eingebundene<br />

Anwendungen nicht am Portlet-Lebens -<br />

zyklus teilnehmen und meist eine fest vorgegebene<br />

Größe besitzen. Gemeinsam<br />

haben beide Lösungsansätze, dass hier<br />

jeweils versucht wird, eine bestehende<br />

Anwendung in ein Portlet zu überführen,<br />

ohne dass hierbei Aspekte wie Navig -<br />

ationsstruktur und Benutzungskonzept an<br />

das Portal angepasst werden.<br />

Einen anderen Lösungsansatz verfolgt<br />

der Standard Web Services for Remote<br />

Portlets (WSRP), wenn es um die Einbin -<br />

dung bestehender Anwendungen geht.<br />

Hierbei werden Portlets/Web-Anwendun -<br />

gen eines anderen Portal-Servers/Applika -<br />

tions-Servers mittels des WSRP-Standards<br />

in das eigene Portal eingebunden (siehe<br />

Abbildung 5).<br />

Browser-seitige Integration<br />

Portal-Server ermöglichen also die Inte -<br />

gration verschiedene Portlets zu einem großen<br />

Ganzen. Aber die Integration verschiedener<br />

Web-Anwendungen kann auch im<br />

Browser erfolgen. Dabei kann zwischen<br />

Oberflächen- und Geschäftslogik-Inte -<br />

gration unterschieden werden. Diese beiden<br />

Va rianten gelten vom Ansatz her prinzipiell<br />

erst einmal für alle vorgestellten<br />

Reali sierungstypen, wobei sich dies natürlich<br />

abhängig von der konkreten<br />

Technologie in der Ausführung entsprechend<br />

unterscheidet.<br />

Die Oberflächenintegration kann mittels<br />

Screen-Scraping, iFrames oder beispielsweise<br />

als Popup erfolgen. Bei der Anbin -<br />

dung mittels Screen-Scraping werden aus<br />

einer anderen Web-Applikation Bereiche<br />

herausgeschnitten und innerhalb der eigenen<br />

Web-Applikation zur Anzeige ge -<br />

bracht. Eine solche Anbindung ist meistens<br />

komplex und schwer zu implementieren.<br />

76 77


fachartikel<br />

Abb. 5: WSRP-Szenario.<br />

Darüber hinaus ziehen Änderungen an der<br />

eingebunden Web-Applikation meist Änderungen<br />

an der einbindenden Web-Applika -<br />

tion nach sich. Dieses Vorgehen hat allerdings<br />

den Vorteil, dass man prinzipiell die<br />

volle Kontrolle über den Seiteninhalt hat.<br />

Bei der Integration mittels eines iFrames<br />

wird in der Regel in einen Teil der Web-<br />

Seite die vollständige Web-Applikation<br />

inte griert. Das führt zu einem Bruch im<br />

Look&Feel zwischen der eingebunden<br />

Web-Applikation und der eigentlichen<br />

Web-Applikation. Des Weiteren können<br />

zwischen den beiden Web-Applikationen<br />

Nachrichten und Daten nicht ohne weiteres<br />

ausgetauscht werden, da es sich hierbei um<br />

eine Cross Domain Communication handelt,<br />

die aus Sicherheitsgründen nicht er -<br />

laubt ist, da Cross-Site-Scripting-Angriffe<br />

möglich sind. Eine Solche Kommunikation<br />

wurde jedoch mit HTML5 deutlich vereinfacht.<br />

Darüber hinaus durchläuft jede Web-<br />

Applikation ihren eigenen Lebenszyklus<br />

und hat erst mal ihren eigenen Sicherheits -<br />

ontext, sodass man auch diese Bereiche<br />

integrieren muss.<br />

Die Integration mittels Popup ist seit der<br />

durchgängigen Verfügbarkeit von Browser-<br />

Tabs eine optisch ansprechende Lösung,<br />

um eine Integration mehrerer Web-Appli -<br />

kationen zu erreichen. Die integrierte An -<br />

wen dung öffnet sich dann in einem neuen<br />

Tab. Prinzipiell ergeben sich aber dieselben<br />

technischen Probleme wie bei der iFramebasierten<br />

Lösungen.<br />

Bei der Integration auf Geschäftslogik-<br />

Ebene werden Services direkt aus dem<br />

Browser heraus aufgerufen und die entsprechenden<br />

Daten zur Anzeige gebracht.<br />

Für die Darstellung der Daten ist dabei die<br />

aufrufende Web-Applikation verantwortlich.<br />

Das setzt allerdings voraus, dass<br />

bereits entsprechende Services existieren<br />

und diese mit einer passenden Schnittstel -<br />

len technologie ausgestattet sind, die sich<br />

aus einem Browser ansprechen lässt, wie z.<br />

B. REST Services.<br />

Literatur & Links<br />

Fazit<br />

Bei dem Versuch, den Anwendungsklassen<br />

einen eindeutigen Realisierungstyp zuzuordnen,<br />

lässt sich ziemlich schnell feststellen,<br />

dass es keine allgemeingültige Lösung<br />

gibt. Das Problem ist vielschichtig und<br />

kann nicht auf die zwei Parameter „fachlicher<br />

Einsatz“ und „Technologie-Stack“<br />

heruntergebrochen werden. Unter anderem<br />

spielen das technologische Know-how des<br />

Teams und Vorgaben hinsichtlich der<br />

Betriebsplattform eine entscheidende Rolle.<br />

Für eine erste Auswahl kann man allerdings<br />

den möglichen Lösungsraum entsprechend<br />

eingrenzen: Bei Business-to-Business-<br />

Lösungen, die mehrere Anwendungen in<br />

einer GUI integrieren, kann es sinnvoll sein,<br />

einen Portal-Server oder browserseitige<br />

Integration einzusetzen. Gerade in diesem<br />

Bereich werden Portal-Server-Features, wie<br />

vom Benutzer individuell zusammengestellte<br />

Portal-Seiten, aber praktisch nie ausgenutzt,<br />

weshalb der Einsatz eines Portal-<br />

Servers gut überlegt sein sollte.<br />

Sachbearbeiter-Anwendungen zur Unter -<br />

stützung der Kernprozesse der Unter -<br />

nehmen und Anwendungen für Businessto-Consumer-Lösungen<br />

lassen sich<br />

beispielsweise gut mit einem der im letzten<br />

Artikel vorgestellten serverseitigen Web-<br />

Frameworks umsetzen. Aufgrund der<br />

hohen Komplexität der GUI wird der<br />

Einsatz von JavaScript aber fast immer<br />

erforderlich sein. Auch die Erzeugung der<br />

kompletten GUI mit JavaScript ist eine<br />

mögliche Alternative, gerade wenn<br />

Echtzeit-Kommunikation und Offline-<br />

Fähigkeit ins Spiel kommen.<br />

■<br />

[Amp] AmplifyJS Framework, Homepage, siehe: amplifyjs.com/<br />

[Apa] The Apache Software Foundation, CouchDB-Datenbank, siehe: couchdb.apache.org/<br />

[Atm] Atmosphere Framework, Homepage, siehe: atmosphere.java.net/<br />

[Han] HandlebarsJS Framework, Homepage, siehe: handlebarsjs.com/<br />

[Har12] A. Hartmann, T. Hombergs, E. Wollf, Architekturen für moderne Web-Anwendungen:<br />

Teil 1: CMS und serverseitige Web-Frameworks, in: OBJEKTspektrum 5/2012<br />

[Jer] Jersey REST-Framework, Homepage, siehe: jersey.java.net/<br />

[Jet] Jetty-Webserver-Projekt, Homepage, siehe: jetty.codehaus.org/jetty/<br />

[Joy] Joyent, Inc., NodeJS Framework, siehe: nodejs.org/<br />

[Jqu] JQuery Framework, Homepage, siehe: jquery.com/<br />

[Lif] Liferay Portalservers, Homepage, siehe: liferay.com/<br />

[Ora] Oracle, JSR 286: Portlet Specification, siehe: jcp.org/en/jsr/detail?id=286<br />

[Res] Restlet Framework, Homepage, siehe: restlet.org/<br />

[Soc] SocketIO Frameworks, Homepage, siehe: socket.io/<br />

[Zak10] N.C. Zakas, How many users have JavaScript disabled?, 2010, siehe:<br />

developer.yahoo.com/blogs/ydn/posts/2010/10/how-many-users-have-javascript-disabled/<br />

6/2012


fachartikel<br />

m e h r z u m t h e m a :<br />

vierfores.de<br />

nutzfahrzeuge.fraunhofer.de<br />

die autoren<br />

SICHERHEIT IN DER<br />

FAHRZEUGTECHNIK:<br />

SOFTWARE IN EINGEBETTETEN<br />

SYSTEMEN<br />

Die Fahrzeugtechnik ist einer der wichtigsten Treiber für Innovationen bei der Entwicklung komplexer<br />

Systeme. Stetig erhöht sich hier der Anteil softwaregesteuerter Komponenten und auch<br />

der Einsatz autonomer Fahrzeuge ist heute vorstellbar. Trotz der wachsenden Komplexität<br />

muss Qualität sichergestellt werden. Das erfordert leistungsfähige Modellierungs- und<br />

Analysetechniken sowie geeignete Entwicklungsprozesse und Verfahren, die das Verstehen der<br />

komplizierten Sachverhalte erleichtern. Der Artikel beleuchtet aus Sicht der Qualitätssicherung<br />

Probleme und Einflussfaktoren, die in der Entwicklung von eingebetteten Systemen zumeist<br />

nicht hinreichend berücksichtigt werden. Unzulänglichkeiten existierender Verfahren und<br />

Techniken sowie mögliche Ansätze zur Verbesserung werden diskutiert und potenzielle<br />

Anwendungen im Kontext der Entwicklung von autonomen Systemen beschrieben.<br />

Dr. Patric Keller<br />

(pkeller@cs.uni-kl.de)<br />

ist wissenschaftlicher Mitarbeiter am Lehrstuhl<br />

Software Dependability im Fachbereich Informatik<br />

der TU Kaiserslautern. Er forscht zu den Themen<br />

Sicherheit, Zuverlässigkeit und Verfügbarkeit von<br />

Systemen.<br />

Verfahren und Modelle in der<br />

Qualitätssicherung<br />

Pkw-Produzenten haben früher bei ihren<br />

Fahrzeugen vornehmlich Leistungsdaten in<br />

den Vordergrund gestellt. Aktuell prägen<br />

Schlagwörter wie Sicherheit und Komfort<br />

die Entwicklungen der Automobilindustrie<br />

maßgeblich mit. Fahrerassistenz-Systeme,<br />

wie z. B. Spurhalte-, Notbrems- oder Ein -<br />

park-Systeme, vermitteln mehr Sicherheit<br />

durch eine Entlastung und Unterstützung<br />

Die in diesem Artikel beschriebenen<br />

Arbei ten finden im Pilotprojekt „Virtu -<br />

elle und Erweiterte Realität für höchste<br />

Sicherheit und Zuverlässigkeit von Ein -<br />

gebetteten Systemen“ (ViERforES) im<br />

Rahmen des BMBF-Programms „Spit -<br />

zen forschung und Innovation in den<br />

Neuen Ländern“ statt. ViERforES ist<br />

Bestandteil der Innovationsallianz Vir -<br />

tuel le Techniken – ein Zusammenschluss<br />

mehrerer vom Bundesministerium für<br />

Bildung und Forschung (BMBF) unter<br />

dem Dach der Hightech-Strategie IKT<br />

2020 geförderter Projekte. Beteiligt an<br />

den Forschungsarbeiten sind die Ottovon-Guericke-Universität<br />

Magdeburg,<br />

die TU Kaiserslautern, das Fraunhofer-<br />

Institut für Experimentelles Software<br />

Engineering in Kaiserslautern und das<br />

Fraunhofer-Institut für Fabrikbetrieb und<br />

-automatisierung in Magdeburg.<br />

Kasten 1: Das Projekt ViERforES.<br />

des Fahrers in unterschiedlichsten Situa -<br />

tionen. Derartige Systeme erfordern entsprechend<br />

leistungsfähige Softwarelösun -<br />

gen. Die technischen Herausforderungen<br />

bei der Realisierung solcher Systeme sind<br />

immens. Vor allem Aspekte wie Zuver -<br />

lässigkeit, Verfügbarkeit und Sicherheit<br />

sind von besonderer Bedeutung (vgl.<br />

[Sch12]). Sicherheit adressiert hier vor<br />

allem Safety- und Security-Eigenschaften<br />

der Systeme, d. h. die Einflüsse des Systems<br />

auf die Umwelt (Safety) und umgekehrt<br />

(Security). Die genannten Aspekte werden<br />

zunehmend durch Software in ihrer<br />

Interaktion mit elektronischen Komponen -<br />

ten, mechanischen Bauteilen und der<br />

Umgebung des Systems beeinflusst. Daher<br />

muss auf die Sicherstellung der damit verbundenen<br />

Eigenschaften innerhalb der<br />

Software ein besonderes Augenmerk gelegt<br />

werden.<br />

Während Zuverlässigkeit das Ausfallver -<br />

halten eines Systems in Abhängigkeit von<br />

Betriebsbedingungen und Laufzeit be -<br />

schreibt, thematisiert der Begriff Sicherheit<br />

im Sinne von Safety die kritischen bzw.<br />

unerwünschten Systemzustände, deren<br />

Ursachen und Auftrittsverhalten. Eine im<br />

Zusammenhang mit Safety weit verbreitete<br />

Technik zur Analyse von Ursache-/ Wirkzu -<br />

sammenhängen von Aus fäl len ist die<br />

Fehlerbaum-Analyse (vgl. [DIN90] und<br />

[DIN07]). Dabei handelt es sich um eine<br />

Methode, die Ausfälle z. B. auf Komponen -<br />

ten ebene qualitativ und quantitativ in<br />

Relation zu gefährlichen Wirkungen im<br />

Dr. Veit Köppen<br />

(vkoeppen@ovgu.de)<br />

ist geschäftsführender Leiter des Center for Digital<br />

Engineering an der Otto-von-Guericke-Universität<br />

Magdeburg und wissenschaftlicher Assistent im<br />

Institut für Technische und Betriebliche<br />

Informationssysteme.<br />

Prof. Dr. Peter Liggesmeyer<br />

(liggesmeyer@cs.uni-kl.de)<br />

ist Inhaber des Lehrstuhls Software Dependability<br />

im FB Informatik der TU Kaiserslautern, wissenschaftlicher<br />

Direktor des Fraunhofer-Instituts für<br />

Experimentelles Software Engineering, und<br />

Vizepräsident der Gesellschaft für Informatik.<br />

System setzt. Das heißt, durch diese<br />

Methode lassen sich zum einen die Art und<br />

Weise eines System ausfalls und zum anderen<br />

die Wahr schein lichkeit für ein<br />

Systemversagen erfassen. Der Terminus<br />

„gefährlich“ bezeichnet in diesem<br />

Zusammenhang eine Situation des Systems,<br />

in der der Eintritt eines Ereig nisses, das zur<br />

Verletzung von Personen oder zur<br />

Beschädigung bzw. Verlust von Eigentum<br />

führen kann, möglich ist. Abbildung 1 zeigt<br />

den prinzipiellen Aufbau des bei der<br />

78 79


fachartikel<br />

Abb. 1: Fehlerbaum, der die Bedingung für einen Systemausfall mittels grafischer<br />

Elemente beschreibt.<br />

Analyse verwendeten Fehlerbaummodells<br />

anhand eines einfachen Beispiels.<br />

Die Fehlerbaum-Analysetechnik eignet<br />

sich, um Fragen nach den Bedingungen,<br />

unter denen ein bestimmter unerwünschter<br />

Systemzustand erreicht werden kann, zu<br />

beantworten. Das kann auch die Ab -<br />

schätzung der Wahrscheinlichkeit für dessen<br />

Eintritt einschließen. In den letzten<br />

Jahren wurden das Verfahren und das zu<br />

Grunde liegende Modell um zusätzliche<br />

Methoden und Elemente erweitert. Dane -<br />

ben gibt es eine Vielzahl weiterer formaler<br />

und informaler Techniken, die gegenwärtig<br />

zum Einsatz kommen (eine Übersicht geben<br />

[Lig00] und [Lig09]).<br />

Geeignete Analyseverfahren müssen zum<br />

einen das Versagen von Hardware -<br />

komponenten berücksichtigen. Zum anderen<br />

müssen sie auch systematische Fehler,<br />

d. h. Fehler, die sich während der<br />

Konzeption, des Designs oder der<br />

Implementierung in den für die Steuerung<br />

relevanten Softwaremodulen manifestieren,<br />

in die Analysen mit einbeziehen. Außerdem<br />

spielen umweltbedingte Störeinflüsse, wie<br />

erschwerte Witterungsbedingungen und die<br />

Verfälschung von Sensordaten, die sich auf<br />

die Qualität der Sensordaten auswirken<br />

und letztendlich die Entscheidung über das<br />

Eingreifen in das Fahrverhalten mitbestimmen,<br />

eine nicht zu vernachlässigende Rolle.<br />

Hinzu kommen Betrachtungen zu Reak -<br />

tionen auf unvorhergesehene Ereignisse,<br />

wie Teilsystemausfälle oder die Verletzung<br />

temporaler Bedingungen (kritisch in<br />

Echtzeitsystemen). All diese Aspekte und<br />

viele weitere müssen durch die Analyse<br />

abgedeckt sein.<br />

Die aktuellen Forschungsarbeiten konzentrieren<br />

sich darauf, existierende Model -<br />

lierungskonzepte, wie Komponen tenfehler-<br />

Bäume (vgl. [Kai03]) und State/Event<br />

Fehlerbäume (vgl. [Kai06]) zu erweitern<br />

und anzupassen, um die gewünschten<br />

Analysen zu ermöglichen. Dies beinhaltet<br />

in einem ersten Schritt die Definition geeigneter<br />

Modelle, die nicht nur in der Lage<br />

sein müssen, statische, sondern auch komplexe<br />

dynamische Abhängigkeiten (z. B.<br />

Adaption, zeitliche Abhängigkeiten) abzubilden.<br />

Als Referenzsystem dient hierbei<br />

unter anderem der Entwurf eines Acc-<br />

Teilsystems (Adaptive Cruise Control).<br />

Dessen Hauptaufgabe ist die Koordination<br />

des Fahrverhaltens eines Fahrzeugs in<br />

einem Verbund. Im Rahmen der Unter -<br />

suchung an diesem System gilt es, die relevanten<br />

Ursache- und Wirkzusammenhänge<br />

bezüglich Sensorversagen und Verfälschung<br />

von Sensordaten formal zu erfassen und zu<br />

bewerten. Abbildung 2 zeigt einen Aus -<br />

schnitt eines Komponentenfehler-Baums.<br />

Schadcode und mögliche<br />

Einflüsse auf die Sicherheit<br />

Während die Abschätzungsmethodik im<br />

Safety-Bereich bereits etabliert ist, müssen<br />

auch Abhängigkeitsstrukturen hinsichtlich<br />

einer umfassenden Sicherheit beachtet werden.<br />

Bei komplexen, offenen Systemen<br />

muss damit gerechnet werden, dass eine<br />

mangelhafte Datensicherheit (Security)<br />

Gefährdungen im Sinne von Safety hervor-<br />

Weiterführende Ansätze<br />

Im grundlegenden Aufbau ähneln sich die<br />

genannten Systeme größtenteils: Auf Basis<br />

von Sensordaten werden Entscheidungen<br />

entsprechend vordefinierten Regeln getroffen,<br />

die das Fahrverhalten direkt (durch<br />

aktiven Eingriff, z. B. Abbremsen) oder passiv<br />

(z. B. durch Warnung des Fahrers)<br />

beeinflussen können. Systemausfälle sind<br />

dabei auf Fehler in der Hard- oder Soft -<br />

ware zurückzuführen. Die Eigenschaft solcher<br />

Systeme, Echtzeitbedingungen einhalten<br />

zu müssen, deren Adaptivität sowie<br />

deren Komplexität machen es schwierig,<br />

bestehende Analysetechniken und -verfahren<br />

anzuwenden.<br />

Abb. 2: Auszug der erweiterten Komponenten-Fehlerbäume, erstellt im Rahmen der<br />

ACC-Analysearbeiten.<br />

6 / 2 012


fachartikel<br />

rufen kann. Bei der Betrachtung von komplexem<br />

Systemverbünden, wie sie z. B. im<br />

Fahrzeug eingesetzt werden, muss man bei<br />

der Angriffssicherheit zwischen eingeschleustem<br />

Schadcode und Angriffen von<br />

außen unterscheiden.<br />

Schadcode-Erkennung und die durch den<br />

Nutzer einzuleitenden Maßnahmen unterscheiden<br />

sich in der Domäne eingebetteter<br />

Systeme grundlegend von der im Desktop-<br />

Bereich. Die Gründe hierfür sind die zur<br />

Verfügung stehenden Ressourcen und die<br />

Funktionalität des Systemverbunds. Bereits<br />

bei der Entwicklung müssen potenzielle<br />

Eigenschaften von Schadcode betrachtet<br />

werden – das schließt unter anderem die<br />

folgenden Eigenschaften ein (vgl. hierzu<br />

auch [Kil06]):<br />

Interoperabilitätsebene<br />

Technisch<br />

Pragmatisch<br />

Sozial<br />

Semantisch<br />

Politisch / Menschlich<br />

Organisatorisch<br />

Juristisch<br />

Physisch<br />

International<br />

Empirisch<br />

Dynamisch<br />

Beispiel in der Fahrzeugtechnik<br />

CAN-Bus.<br />

Stelle ich die Bremse am richtigen Rad?<br />

Nutzerakzeptanz.<br />

Spezifikation der Maßeinheiten,<br />

Mnemonische Namen der Datenfelder.<br />

Gutes ABS vs. schlechte Atomenergie.<br />

Unfallfreie Fahrt bzw. Schadensminimierung.<br />

Darf die Bremse autonom gestellt werden?<br />

Steckerform, Pin-Belegung.<br />

Eignung für den weltweiten Markt.<br />

ABS / ESP im Fahrsicherheitstraining.<br />

Ausfallerkennung der Drehgeber.<br />

■ Verbreitungsmethode.<br />

■ Aktivierung.<br />

■ Unterbringung auf dem System, insbesondere<br />

bei verteilten Komponenten.<br />

■ Wirkungsweise auf das System, inklusive<br />

Fragen der Steuerung<br />

■ Nutzung und Art der Kommunika -<br />

tions infrastruktur.<br />

■ Funktionalität des Schadcodes, vom<br />

Kom munikationsmanagement bis hin<br />

zur Spionage.<br />

■ Selbstschutzmechanismen der Schad -<br />

soft ware, wie Polymorphie oder Tar -<br />

nung.<br />

Um die Analyse während der Entwicklung<br />

effizient zu unterstützen, sind eine formale<br />

Klassifikation potenzieller Schadcode-<br />

Software und deren Zusammenspiel in den<br />

Softwarekomponenten zielführend. Hierbei<br />

können die obigen Eigenschaften entsprechend<br />

ihren möglichen Ausprägungen einfach<br />

aufgenommen und während der<br />

Entwicklung entsprechend den Szenarien,<br />

Ressourcen und Anforderungen getestet<br />

werden.<br />

Eine weitere Frage bei der Berück -<br />

sichtigung der Domäne eingebetteter<br />

Systeme ist die Behandlung von identifiziertem<br />

Schadcode. Dabei ist zu berück -<br />

sichtigen, dass einerseits das Gesamtsystem<br />

nach Möglichkeit weiter funktionieren<br />

muss und eine Intervention durch den<br />

Nutzer möglichst gering gehalten werden<br />

sollte. Andererseits müssen Informationen<br />

über die Entdeckung und mögliche<br />

Vorgehensmaßnahmen aufgrund kleiner<br />

Displays einfach und verständlich gestaltet<br />

sein. Hier muss eine Vielzahl von Fragen<br />

der Visualisierung bezüglich Eindeutigkeit<br />

Syntaktisch<br />

Konzeptionell<br />

und Verständnis berücksichtigt werden.<br />

Nur durch eine frühzeitige Einbeziehung<br />

potenzieller Nutzer und ein entsprechendes<br />

Anforderungsprofil in der Bedienung kann<br />

sich an dieser Stelle ein System erfolgreich<br />

in der Praxis bewähren. Das schließt darüber<br />

hinaus auch Fragen der Interaktion<br />

zwischen Nutzer und System ein. In<br />

Abhängigkeit vom Nutzerprofil ist dabei<br />

der Informations- und Interaktionsgrad<br />

adaptiv anzupassen.<br />

Faktoren Interoperabilität<br />

und Sicherheit<br />

Das Zusammenspiel unterschiedlicher<br />

Syste me bedeutet zunehmend auch eine<br />

Komplexität bei der Kopplung und Inte -<br />

gration innerhalb des Gesamtsystems. Eine<br />

Infrastruktur im eingebetteten Systembe -<br />

trieb muss sicherstellen, dass der Ausfall<br />

und der Austausch defekter oder zu ersetzender<br />

Komponenten einfach gestaltet<br />

sind. Das bedeutet, dass bereits im Ent -<br />

wick lungsprozess geeignete Maßnahmen<br />

definiert werden müssen.<br />

Interoperabilität erfordert ein korrektes<br />

Zusammenspiel zwischen unabhängigen<br />

und zumeist heterogenen Komponenten<br />

innerhalb eines Systems, um gemeinsam<br />

eine definierte Funktionalität zu erbringen.<br />

Theoretisch kann man durch standardisierte<br />

Austauschformate und Kommunika -<br />

tions strukturen eine einfach beherrschbare<br />

Datenfelder und -typen der CAN-Nachrichten.<br />

Kompatibler Drehgeber mit anderem Wirkprinzip des Sensors.<br />

Tabelle 1: Interoperabilitätsebenen in der Fahrzeugtechnik.<br />

Struktur erreichen. Jedoch stellt die Ein -<br />

haltung der Standards eine in der Praxis<br />

häufig sehr hohe Hürde bei der Ent -<br />

wicklung von Komponenten dar. Das liegt<br />

nicht nur an der Weiterentwicklung von<br />

Techniken, sondern häufig auch an den<br />

strikten oder einschränkenden Vorgaben<br />

der Standards. M. Manso, M. Wachowicz<br />

und M. Bernabé diskutieren in [Man09]<br />

eine Vielzahl von Ebenen der Inter -<br />

operabilität, wie in Tabelle 1 beschrieben.<br />

Der Transfer auf Beispiele der Fahr -<br />

zeugtechnik anhand von ABS & ESP<br />

(Antiblockier-System und Electronic Stabi -<br />

lity Control) findet sich ebenfalls dort.<br />

Die Angriffssicherheit ist im großen<br />

Maße abhängig von der Inter operabi -<br />

litätssteuerung, d. h. von möglichen<br />

Kommunikationsinfrastrukturen, der Ar -<br />

chi tektur im Systemverbund, Kopplungs -<br />

konzepten und Schnittstellen. Die Preise für<br />

eingebettete Systeme fallen stetig. Das<br />

ermöglicht den Einsatz redundanter<br />

System komponenten, die sowohl die<br />

Ausfall- als auch die Angriffssicherheit<br />

erhöhen können. Redundanz ermöglicht<br />

die Validation der Reaktionen der einzelnen<br />

Komponenten. Darüber hinaus können<br />

effiziente und sichere Implementierungen<br />

parallel genutzt werden. So kann in definierten<br />

Abständen eine Validierung der<br />

Reaktionen erfolgen, ohne die Effizienz des<br />

Systems stark einzuschränken.<br />

80 81


fachartikel<br />

zu Grunde liegenden Ent wicklungsprozesse<br />

zu bewerten und entsprechend zu beeinflussen.<br />

Abb. 3: Transformationen zwischen Entwicklung und Verifikation (vgl. [Güd12]).<br />

Bei der Entwicklung von Systemen exis -<br />

tieren häufig Zielkonflikte. Diese Kon flikte<br />

müssen bereits in der Entwicklung adressiert<br />

werden, weshalb sie bereits zu diesem<br />

Zeitpunkt erkannt und Lösungen gefunden<br />

werden sollten. Leistungsfähige Model -<br />

lierungs techniken und Simulationen spielen<br />

hier eine tragende Rolle. Aktuell werden in<br />

den Domänen „Virtuelles Engi neering“,<br />

„Digitales Engineering“ und „Rapid-<br />

Prototyping“ neue Methoden, Techniken<br />

und Werkzeuge eingesetzt, um bereits in<br />

den frühen Phasen der System entwicklung<br />

Eigenschaften der Systeme, aber auch der<br />

Sicherheits- und<br />

Zuverlässigkeitsanforderungen<br />

Bei der Entwicklung neuer Systeme steht<br />

oft die effiziente Konstruktion im Vorder -<br />

grund. Das kann sich auf unterschiedliche<br />

Aspekte, wie Time-to-Market oder Kosten,<br />

beziehen, die im Unterschied zur Qualität<br />

leicht erfasst werden können. Qualität<br />

erfordert die Beachtung vieler Aspekte.<br />

Neben Fragen der Sicherheit sind unter<br />

anderem auch Fragen zur Zuverlässigkeit,<br />

Korrektheit, Verfügbarkeit und Fehler -<br />

toleranz zu beantworten. Allein eine nachträgliche<br />

Überprüfung des Systems ist dabei<br />

nicht zielführend. Bereits in frühen Phasen<br />

der Konzeption und des Entwurfs – aber<br />

auch während der Entwicklung – müssen<br />

zweckdienliche Maßnahmen ergriffen werden.<br />

Modellbasierte Ansätze, formale<br />

Methoden und stochastische Verfahren<br />

können hier geeignete Lösungen bieten.<br />

Um noch nicht realisierte Komponenten<br />

eines Systems bei dieser Analyse mit<br />

Online Themenspecials des Jahres 2012<br />

Cloud erschienen am 26.04.2012<br />

Mobile erschienen am 05.06.2012<br />

Requirements Engineering erschienen am 28.06.2012<br />

Testing – neue Konzepte,<br />

Strategien, Zukunftsaussichten erschienen am 27.09.2012<br />

Agility – nicht nur Scrum ist agil! 18.10.2012<br />

Architekturen – neue Modelle für Anforderungen,<br />

Qualitätsssicherung und Risikoanalyse 15.11.2012<br />

Anmeldung unter: www.sigs-datacom.de/os/themenspecial.htm<br />

6/2012


fachartikel<br />

Abb. 4: RAVON, ausgestattet mit multiplen<br />

Sensoren zur Umwelterfassung<br />

(Quelle: uni-kl.de/ravon).<br />

sionalität im Entwicklungsprozess Rech -<br />

nung getragen werden und gleichzeitige<br />

Fehl ent wicklungen können vermieden werden.<br />

Aufgrund der unterschiedlichen Metho den<br />

und einzusetzenden Tools ist eine Integration<br />

in den Entwicklungsprozess unabdingbar,<br />

um eine Steuerung der nicht-funktionalen<br />

Eigenschaften der Systeme handhabbar zu<br />

gestalten (siehe Abbildung 3). So ermöglicht<br />

es beispielsweise eine formale Beschreibung<br />

in der Sprache SAML (vgl. [Güd12]), Sicher -<br />

heitsanforderungen zu spezifizieren und<br />

bereits im Entwicklungsprozess den Einfluss<br />

dieser Faktoren zu steuern.<br />

Abb. 5: Grafische Darstellung eines<br />

Verhaltensmoduls mit Eingangs- und<br />

Ausgangssteuerwerten (Quelle: [Pro10]).<br />

betrachten zu können, ist die Integration<br />

entsprechender Modelle notwendig. Aus<br />

diesen Modellen müssen die zu betrachtenden<br />

Eigenschaften abgeleitet werden. Dabei<br />

ist es nicht hinreichend, das System –<br />

sowohl software- als auch hardwareseitig –<br />

zu modellieren, sondern es müssen darüber<br />

hinaus Aspekte der Umgebung in die<br />

Analyse einbezogen werden. Im Anschluss<br />

kann – unter Verschmelzung von<br />

Eigenschaftsbeschreibung und Modell –<br />

eine Analyse erfolgen. Hierbei ist festzuhalten,<br />

dass die stochastische Analyse durch<br />

eine Vielzahl von Parametern und eine<br />

hohe Anzahl an Teilkomponenten<br />

erschwert wird. Auch die Definition der<br />

Ziele kann konfliktbehaftet sein. Ein möglicher<br />

Ausweg aus diesem Dilemma ist die<br />

Identifikation von potenziellen Kompro -<br />

missen durch eine Pareto-Optimierung<br />

(vgl. [Ste86]). So kann der Multi di men -<br />

Autonome Fahrzeuge<br />

Im Vergleich mit den Sicherheitsan for -<br />

derungen von Fahrassistenz-Systemen<br />

übersteigen die Anforderungen von autonomen<br />

Fahrsystemen die vorherigen deutlich.<br />

Eine wesentliche Funktion autonomer<br />

Fahrzeuge ist das Erreichen eines festgelegten<br />

Zielpunkts, ausgehend vom definierten<br />

Startpunkt. Hierbei werden die von der<br />

Sensorik generierten Umgebungsinforma -<br />

tionen genutzt, um dem System die Planung<br />

und das sichere Abfahren von Routen zu<br />

ermöglichen.<br />

Eine besondere Eigenschaft derartiger<br />

Systeme ist es, dass sie eigenständig, also<br />

ohne Eingriff von außen, spezifiziertes<br />

Verhalten korrekt, zuverlässig und sicher<br />

umsetzen. Dabei sollen Gefährdungen (z. B.<br />

Hindernisse oder Personen auf der Strecke)<br />

selbstständig erkannt und – wenn notwendig<br />

– entsprechende Gegenreaktionen initiiert<br />

werden. Ähnlich wie bei den Assis tenz -<br />

Abb. 6: Beispiel für die Kopplung zweier Verhaltensmodule mittels eines<br />

Fusionsmoduls (Quelle: [Pro10]).<br />

systemen wird eine Vielzahl von hete ro -<br />

genen Sensoren zu einem Verbund gekoppelt.<br />

Die produzierten Daten fusionieren zu<br />

einem gemeinsamen Umgebungs modell,<br />

das für die Navigation und Kolli sions -<br />

vermeidung verwendet wird.<br />

Die Forschungsarbeiten im Rahmen der<br />

Entwicklung neuer Techniken für Sicher -<br />

heitsanalysen nutzen unter anderem das<br />

von der Arbeitsgruppe Robotik an der TU<br />

Kaiserslautern entwickelte RAVON-<br />

System (Robust Autonomous Vehicle for<br />

Off-Road Navigation) (siehe Abbildung 4)<br />

als Evaluierungsplattform. Dieses zeichnet<br />

sich durch die Fähigkeit aus, auf der<br />

Grundlage eines komplexen Verhaltens -<br />

netz werks (dem „Integrated Behaviorbased<br />

Control“ (iB2C) Network), Umge -<br />

bungsinformationen in Navigations- und<br />

Steuerungsbefehle umzuwandeln. Im Kern<br />

setzt sich dieses Netzwerk aus einzelnen<br />

Modulen, den so genannten Verhaltens -<br />

modulen, zusammen (vgl. [Pro10], siehe<br />

Abbildung 5). Jedes dieser Module übernimmt<br />

bestimmte Aufgaben, wie z. B. die<br />

Berechnung von Abstands- oder Geschwin -<br />

dig keitswerten aus gegebenen Eingabe -<br />

werten (ē > ). Die errechneten Ausgabev ek -<br />

toren (ū > ) können wiederum als Eingabe für<br />

andere Module dienen. Durch Stimulation<br />

(s), Inhibition (ī > ) oder Aktivitätssignale (ā > )<br />

können sich diese Module gegenseitig<br />

beeinflussen. Um komplexes Verhalten zu<br />

realisieren, werden Gruppen von Verhal -<br />

tensmodulen mittels so genannter Fusions -<br />

module zusammengeschaltet (siehe Abbil -<br />

dung 6).<br />

Das entstehende Netzwerk organisiert<br />

sich auf unterschiedlichen Hierarchie -<br />

ebenen (siehe Abbildung 7). Dabei gibt es<br />

übergeordnete Ebenen, die z. B. für die<br />

82 83


fachartikel<br />

Abb. 7: Beispiel für die hierarchische Organisation auf unterschiedlichen Ebenen<br />

(Quelle: [Pro10]).<br />

Routenplanung verantwortlich sind, und<br />

untergeordnete Verhaltensebenen, deren<br />

Aufgabe ist es z. B., Anweisungen in Steuer -<br />

daten für Lenkung, Motor usw. umzuwandeln.<br />

Ab einem bestimmten Punkt erreichen<br />

diese Netze eine Komplexität, bei der es<br />

nicht mehr möglich ist, einfache Zusam -<br />

menhänge betreffend Sicherheit und<br />

Verlässlichkeit zu erfassen (beispielsweise<br />

setzt sich der RAVON-Demonstrator aus<br />

über 500 Modulen zusammen). Frage -<br />

stellungen, die speziell in der Verwendung<br />

von diesen Verhaltensnetzen auftauchen,<br />

sind unter anderem:<br />

■ Wie wirken sich Ausfälle einzelner<br />

Module auf die Sicherheit und Zuver -<br />

lässigkeit des Gesamtsystems aus?<br />

■ Gibt es Module, die sich gegenseitig<br />

blockieren und nicht-spezifiziertes<br />

Verhalten hervorrufen können?<br />

■ Wie wirkt sich Sensorrauschen auf das<br />

Gesamtverhalten aus?<br />

■ Unter welchen Bedingungen ist der<br />

Systembetrieb nicht mehr sicher?<br />

■ Wie wahrscheinlich ist ein System -<br />

versagen unter bestimmten Bedin gun gen?<br />

Aufgrund der Komplexität und der starken<br />

Abhängigkeit der Elemente der Verhaltens -<br />

netze sind Verfahren wie einfache klassische<br />

Fehlerbaum-Analysen zur Bewertung<br />

der Systemsicherheit nicht geeignet. Der<br />

Einsatz von State-Event-Fehlerbäumen er -<br />

mög licht es, dynamische Aspekten (z. B.<br />

Verhaltensadaption) in die Untersuchungen<br />

einzubeziehen. Die Module werden als<br />

Literatur & Links<br />

Fehlerkomponenten modelliert und deren<br />

Abhängigkeiten in Form von Ereignissen<br />

beschrieben. Die Modellierung konzentriert<br />

sich dabei ausschließlich auf Bereiche<br />

des Systems, die zu den Sicherheits -<br />

mechanismen in Beziehung stehen. Zur<br />

Analyse werden die Modelle in eine Form<br />

von Petri-Netzen überführt (vgl. [Kai06]).<br />

Auf diese Weise können die internen<br />

Zustände von Modulen sowie deren<br />

Abhängigkeiten zu unerwünschten System -<br />

zuständen in Relation gesetzt werden.<br />

Ein Ansatz zur Bewertung der Zuver -<br />

lässig keit verfolgt die Transformation von<br />

relevanten Teilen der Verhaltensnetze in<br />

endliche Automaten. Das ermöglicht weitere<br />

Analysen, z. B. die Untersuchung der<br />

Erreichbarkeit und die Berechnung der<br />

Wahrscheinlichkeit des Eintritts eines<br />

bestimmten Zustands. Eine besondere<br />

Herausforderung im Rahmen von quantitativen<br />

Analysen stellt dabei das Abschät -<br />

zen der Ausfallwahrscheinlichkeiten für die<br />

Verhaltensmodule dar, da diese als Soft -<br />

ware realisiert sind und entsprechende<br />

Kennwerte somit nur schwierig zu erfassen<br />

sind.<br />

■<br />

[DIN90] DIN 25424-2:1990-04, Fehlerbaumanalyse – Handrechenverfahren zur Auswertung<br />

eines Fehlerbaums, Beuth Verlag 1990<br />

[DIN07] DIN EN 61025:2007-08, Fehlzustandsbaumanalyse, Beuth Verlag 2007<br />

[Güd12] M. Güdemann, M. Lipaczewski, S. Struck, F. Ortmeier, Unifying Probabilistic and<br />

Traditional Formal Model Based Analysis, in: Proc. of 8. Dagstuhl-Workshop MBEES 2012 -<br />

Model-Based Development of Embedded Systems, 2012<br />

[Kai03] B. Kaiser, P. Liggesmeyer, O. Mäckel, A new component concept for fault trees, in: Proc.<br />

of 8th Australian Workshop on Industrial Experience with Safety Critical Systems and Software –<br />

SCS 2003<br />

[Kai06] B. Kaiser, State/event fault trees. A safety and reliability analysis technique for softwarecontrolled<br />

systems, Verlag Dr. Hut 2006<br />

[Kil06] S. Kiltz, A. Lang, J. Dittmann, Klassifizierung der Eigenschaften von Trojanischen Pferden,<br />

D-A-CH Security 2006, Syssec 2006<br />

[Lig00] P. Liggesmeyer, Qualitätssicherung softwareintensiver technischer Systeme, Spektrum-<br />

Verlag 2000<br />

[Lig09] P. Liggesmeyer, Software-Qualität, Spektrum-Verlag 2009<br />

[Man09] M. Manso, M. Wachowicz, M. Bernabé, Towards an Integrated Model of Inter -<br />

operability for Spatial Data Infrastructures, Transactions in GIS 13 (1), 2009<br />

[Pro10] M. Proetzsch, Development Process for Complex Behavior-Based Robot Control Systems,<br />

ser. RRLab Dissertations, Verlag Dr. Hut 2010<br />

[Sch12] F. Schmidt, Funktionale Absicherung kamerabasierter Aktiver Fahrerassistenzsysteme<br />

durch Hardware-in-the-Loop-Tests, Dissertation, TU Kaiserslautern 2012<br />

[Ste86] R.E. Steuer, Multiple Criteria Optimization: Theory, Computation and Application, John<br />

Wiley & Sons 1986<br />

6/2012


konferenzvorschau<br />

mehr zum thema:<br />

OOP2013.de<br />

die autorin<br />

OOP 2013<br />

CONTINUOUS INNOVATION:<br />

THE FOUNDATION FOR SUCCESS<br />

Die OOP hat sich seit vielen Jahren zu dem Treffpunkt für technisch-fachliche Experten,<br />

Projektleiter und IT-Führungskräfte etabliert. Auf der Konferenz erhalten diese einen exzellenten<br />

Überblick über den aktuellen Stand des modernen Software-Engineering. Sowohl vielversprechende<br />

Konzepte für zukünftige Herausforderungen als auch neueste Techniken, die sich bereits in der<br />

Praxis bewährt haben, werden auf der Konferenz diskutiert. Die nächste OOP findet vom 21. bis<br />

25. Januar 2013 im International Congress Center München statt.<br />

Jutta Eckstein<br />

(jutta@eckstein.com)<br />

ist Technical Chair der OOP.<br />

OOP<br />

2013<br />

software meets business<br />

Die nächste OOP steht ganz unter dem<br />

Motto der Innovation – nicht als Produkt,<br />

sondern vielmehr als Haltung, wie dies<br />

Uwe Reineck, Ulrich Sambeth und Andreas<br />

Winklhofer in ihrem neuesten Buch ausführen.<br />

Wie die Autoren dort ebenfalls erläutern,<br />

ermöglicht es erst diese Haltung, neue<br />

Probleme mit neuen Mitteln zu lösen. Was<br />

das für die Softwareentwicklung, für<br />

Architekturen und für verwendete Spra -<br />

chen bedeutet, wollen wir auf der OOP-<br />

Konferenz beleuchten. Wir möchten uns<br />

aber nicht nur auf die technische Pers -<br />

pektive beschränken, denn wie Prof. Dr.<br />

Felix C. Brodbeck (Universität München)<br />

in einem Interview mit der Süddeutschen<br />

Zeitung deutlich macht, behindert das<br />

heutzutage meist verankerte aufgabenorientierte<br />

(im Gegensatz zum personenorientierten)<br />

Management die Innovations -<br />

kraft, da bei diesem Managementstil die<br />

Kompetenzen und die Kreativität der<br />

Mitarbeiter nicht genügend einbezogen<br />

werden. Deshalb wollen wir im Rahmen<br />

der Konferenz alternative Managementstile<br />

betrachten.<br />

Wie bereits 2012 wurde das Programm<br />

auch diesmal durch die OOP-Community<br />

gestaltet. Die neun Track-Chairs wurden<br />

dabei von 31 Reviewern unterstützt, die<br />

sicherstellen, dass sich das Motto<br />

„Continuous Innova tion: The Foundation<br />

for Success“ durch das gesamte Programm<br />

zieht. Zu meiner großen Freude ist es uns<br />

erneut gelungen, exzellente Keynote-<br />

Sprecher für die Konfe renz zu verpflichten.<br />

Darunter sind z. B.:<br />

■<br />

Bjarte Bogsnes erklärt, wie ein Leben<br />

ohne Budgets gelingen kann. Dabei<br />

handelt es sich nicht um einen theoretischen<br />

Erguss, sondern er berichtet von<br />

seiner Erfahrung, wie er bei seinem<br />

Arbeitgeber Statoil die Idee des „Be -<br />

yond Budgeting“ umgesetzt hat.<br />

■ Da der Lean-Gedanke meist in einem<br />

Atemzug mit Innovationen genannt<br />

wird, freuen wir uns besonders, dass<br />

Mary Poppendieck, ihres Zeichens<br />

Urheberin der Lean-Softwareent wick -<br />

lung, mit uns ihre Gedanken zum Reife -<br />

prozess von Plattformen teilt.<br />

■ Subbu Subramanian, Engineering-Ma -<br />

nager des Infrastruktur-Teams bei Face -<br />

book, gibt uns Einblicke in das Thema<br />

Skalierung.<br />

Interaktive Formate sollen den Austausch<br />

über innovative Ideen anregen. So findet in<br />

der Ausstellungshalle, wie schon bei der<br />

letzten OOP, die „OpenArena“ statt, die<br />

allen Teilnehmern dazu ausreichend Gele -<br />

genheit bietet. Nicolai Josuttis veranstaltet<br />

als „Chef de Cuisine“ eine Kochshow, bei<br />

der drei Expertenteams an einem Beispiel<br />

parallel mit verschiedenen Zutaten<br />

(Standards und Tools) einen Geschäfts -<br />

prozess umsetzen und garnieren.<br />

Jörg Bächtiger macht mittels eines<br />

Theater stücks die Tücken von „Conti nuous<br />

Delivery“ deutlich. Frank Busch mann lädt<br />

zusammen mit Kevlin Henney zu einer<br />

„Fishbowl” ein – dabei handelt es sich um<br />

eine offene Diskussionsrunde mit wechselnden<br />

Teilnehmern, dieses Mal zum Thema<br />

„Agilität und Architektur“. Und schließlich<br />

sorgt Martin Heider mit „Pecha Kucha All<br />

Night Long” dafür, dass ein Feuerwerk an<br />

Ideen abgebrannt wird: Hier haben die<br />

Sprecher gerade mal 6 Minuten und 40 Se -<br />

kunden Zeit, um auf den Punkt zu kommen<br />

– da bleibt keine Zeit für „Gelaber“.<br />

Auch über die Keynotes hinaus bietet das<br />

Programm in den einzelnen Tracks viele<br />

Highlights: Im von Stefan Tilkov zusam -<br />

men gestellten Track zu „Web Archi -<br />

tecture“ spricht zum Beispiel Oliver Gierke<br />

über „Hypermedia-getriebene REST-<br />

Architekturen“. Bernd Kolb konnte für seinen<br />

Technologies-Track Horia Dragomir<br />

vom Spielehersteller Wooga gewinnen, der<br />

in die Zukunft von HTML 5 blickt. Bei<br />

Technologies befinden sich außerdem die<br />

Spezial-Tracks zum Thema „Sprachen und<br />

Mobile Development“.<br />

Im neuen Track „Requirements Engi -<br />

neering &Acceptance Test Driven Develop -<br />

ment“ (RE&ATDD), gezeichnet von<br />

Susanne Mühlbauer, gibt beispielsweise<br />

Ellen Gottesdiener Einblicke in Sessions zu<br />

„Product Discovery“. Matthias Bohlen<br />

zeigt in seinem Track „Reinventing Ma -<br />

nage ment“ viele neue Ideen im Manage -<br />

ment auf – unter anderem werden dort<br />

Einblicke in „Real Options, Theorie U<br />

sowie Design und Innovation Thinking“<br />

gegeben. Frank Buytendijk geht in diesem<br />

Track auf das Thema „Postmodern IT“ ein.<br />

Thorsten Janning ist verantwortlich für<br />

„Pro ject Management& Lean IT“ und hat<br />

hier unter anderem Robert Brazile eingeladen,<br />

um zum Thema „Product Manage ment<br />

für Entwickler“ zu sprechen. Michael Stal<br />

hat den „Softwarearchitektur“-Track inklusive<br />

einem Spezial-Track zum Thema<br />

„Professional Architect“ gestaltet. Hier stellt<br />

beispielsweise Gernot Starke den „Knigge<br />

für Softwarearchitekten” vor. Den Track zu<br />

„Agile, Lean, Scrum und Kan ban“ hat<br />

Bernd Schiffer entworfen, in dem Einblicke<br />

in „Lean Startup“ gegeben werden und in<br />

dem Klaus Leopold über „Muster in<br />

Kanban” berichtet. Schließlich gibt es noch<br />

einen Spezial-Track zum Thema „Auto-<br />

motive Entwicklung“ sowie einen zu<br />

„DevOps“, also zu der Strategie, Ent -<br />

wicklung und Produktion zur schnelleren<br />

Inbetriebnahme enger zusammenzubringen.<br />

Natürlich soll auch in diesem Jahr das<br />

entspannte Networking nicht zu kurz kommen.<br />

Den passenden Rahmen hierfür bieten<br />

die Welcome Reception am Dienstag<br />

mit dem anschließenden Klassiker IT-<br />

Stammtisch, an dem Experten über das vergangene<br />

IT-Jahr debattieren.<br />

■<br />

84 85


konferenzrückblick<br />

mehr zum thema:<br />

is.uni-paderborn.de/architekturen2012<br />

fg-swa.gi.de<br />

die autoren<br />

ARCHITEKTUREN 2012:<br />

INDUSTRIE UND<br />

WISSENSCHAFT TREFFEN SICH<br />

Modellgetriebene Softwareentwicklung gehört heute zum Stand der Technik. Trotzdem gibt es<br />

immer noch viele Herausforderungen, wie die langfristige Wartung, der Übergang von<br />

Architektur zur Implementierung und nicht zuletzt der Nachwuchs an Fachkräften in diesem<br />

Bereich. Auf der Fachtagung „Architekturen 2012“ trafen sich Anfang Juli 2012 in Paderborn<br />

Menschen aus Industrie und Wissenschaft, um sich zu diesen Themen auszutauschen.<br />

Benjamin Klatt<br />

(klatt@fzi.de)<br />

ist wissenschaftlicher Mitarbeiter am FZI<br />

Forschungszentrum Informatik. Der Schwerpunkt<br />

seiner Arbeit liegt auf der Evolution und Qualitäts -<br />

analyse von Software sowie der modellgetriebenen<br />

Softwareentwicklung.<br />

Die Fachgruppe Architekturen der Gesell -<br />

schaft für Informatik (GI) verfolgt das Ziel,<br />

die Themen Softwarearchitektur und -qualität<br />

sowohl im industriellen Einsatz als<br />

auch in Forschung und Lehre in<br />

Deutschland voranzutreiben. Eine der<br />

wichtigsten Veran stal tungen in diesem<br />

Zusammenschluss ist die Jahrestagung der<br />

Fachgruppe, die in diesem Jahr in der<br />

Zukunftsmeile Fürsten allee in Paderborn<br />

stattfand.<br />

Zwei Tage lang wurden innovative Pro -<br />

jekte, Best Practices, Lessons Learned und<br />

aktuelle Forschungsprojekte in Vorträgen<br />

und Arbeitskreistreffen diskutiert. Hierbei<br />

trafen Architekten und Entwickler aus der<br />

Industrie auf Professoren und Wissen -<br />

schaftler aus der deutschen Software-<br />

Engineering-Forschung.<br />

Das Themenspektrum reichte in diesem<br />

Jahr von der Modernisierung von Entwick -<br />

l ungsprozessen, der Rekonstruktion von<br />

Softwarearchitektur, über die langfristige<br />

Nachvollziehbarkeit von Entwurfsentschei -<br />

dungen, bis hin zu zukunftsweisenden<br />

Systemen für „On-The-Fly Computing“.<br />

Die Erfahrungsberichte der Industrie ka -<br />

men von Firmen aus dem Paderborner Um -<br />

feld, wie Wincor Nixdorf oder avarto, aber<br />

auch von überregionalen Firmen, wie beispielsweise<br />

Accso aus Darmstadt. Auch die<br />

wissenschaftlichen Vertreter kamen nicht<br />

nur aus Paderborn, sondern aus allen Re -<br />

gionen Deutschlands, wie zum Beispiel dem<br />

KIT und FZI Karlsruhe, dem Fraun hofer<br />

IESE Kaiserslautern, der Christian-Alb rechts-<br />

Universität Kiel und der TU Mün chen.<br />

Wichtiger Bestandteil einer Fachgruppe<br />

zur aktiven Vernetzung von Industrie und<br />

Wissenschaft sind die Arbeitskreise. Hier<br />

wird aktiv an aktuellen Themen gearbeitet<br />

und gemeinsame Aktivitäten werden<br />

geplant. Im Rahmen der Architekturen<br />

2012 trafen sich die folgenden Arbeits -<br />

kreise:<br />

■<br />

■<br />

■<br />

■<br />

Traceability/Evolution<br />

Langlebige Softwaresysteme<br />

Langlebige Technische Systeme<br />

Modellgetriebene Softwareentwicklung<br />

Speziell in Letzterem zeigte sich, dass ein<br />

hoher Know-how-Bedarf seitens der<br />

Industrie besteht. Während in der Ausbil -<br />

dung und Lehre bereits fundiertes Wissen –<br />

auch im Umgang mit domänenspezifischen<br />

Modellen und deren integriertem Einsatz in<br />

der Praxis – vermittelt wird, besteht industriell<br />

ein sehr hoher Bedarf, der, wenn<br />

überhaupt, nur mittel- bis langfristig<br />

gedeckt werden kann. Das liegt nicht<br />

zuletzt an der inzwischen breiten Anwen -<br />

dung modellgetriebener Entwicklung in<br />

verschiedenen Domänen von eingebetteten<br />

Systemen bis hin zu betrieblichen Informa -<br />

tionssystemen sowohl zur effizienteren<br />

Softwareentwicklung als auch zur Simula -<br />

tion und Qualitätsvorhersage.<br />

Es zeichnet sich deutlich ab, dass sich die<br />

modellgetriebene Entwicklung dem nächs -<br />

ten Reifegrad nähert. Vor einigen Jahren<br />

wurde noch über Grundlagen diskutiert, beispielsweise<br />

wie ein modellgetriebener Code-<br />

Generator strukturiert werden sollte oder<br />

was der UML noch an Ausdrucks mög -<br />

lichkeiten fehlt. Dagegen spricht man heute<br />

über die Effizienz bei der Entwick lung von<br />

domänenspezifischen Sprachen (DSLs) oder<br />

den Umgang mit mehreren, zusammenhängenden<br />

DSLs. Immer mehr Open-Source-<br />

Projekte, beispielsweise im Umfeld des<br />

Eclipse-Modeling-Frameworks, entstehen<br />

und werden vorangetrieben, die auf den<br />

besagten Grundlagen aufbauen. „Die Arbeit<br />

mit Modellen, sei es zur Architektur -<br />

entwicklung, Simulation oder zur Analyse<br />

von Bestandssoftware, führt die Software -<br />

entwicklung weiter auf ihrem Weg zu einer<br />

reifen Ingenieursdisziplin“, so Dr. Stefan<br />

Sauer, Geschäftsführer des s-lab–Software<br />

Quality Lab an der Universität Paderborn.<br />

Steffen Becker<br />

(steffen.becker@upb.de)<br />

ist Juniorprofessor für Softwaretechnik an der<br />

Universität Paderborn und Sprecher des GI<br />

Arbeitskreises modellgetriebene Softwareent -<br />

wicklung. Seine Interessen umfassen insbesondere<br />

die Modellierung und Qualitätsanalyse dynamischer<br />

Softwaresysteme.<br />

Die stetige Weiterentwicklung dieser<br />

Themen auch fachgruppenübergreifend hat<br />

dazu geführt, dass die Fachgruppe<br />

„Architekturen“ in diesem Jahr aus der<br />

Fusion der Fachgruppen „Software-<br />

Architektur“ und „Objektorientierte<br />

Software-Entwicklung“ hervorgegangen<br />

ist, um diese beiden Kompetenzfelder noch<br />

besser miteinander zu verknüpfen. Durch<br />

diese Fusion sollen die Aktivitäten stärker<br />

gebündelt und speziell die Verbindung der<br />

Mitglieder aus Industrie und Wissenschaft<br />

weiter ausgebaut werden. Die entstandene<br />

GI-Fachgruppe „Architekturen“ ist wie<br />

ihre Vorgängerorganisationen Ansprech -<br />

partner sowohl für ihre Mitglieder als auch<br />

allgemein für Unternehmen und For -<br />

schungs einrichtungen, um die Software -<br />

technik im Bereich Architekturen und<br />

Entwurf in Deutschland weiter zu fördern<br />

und Kompetenzen zu vermitteln.<br />

In diesem Sinne ist jeder Interessierte<br />

herzlich eingeladen, sich direkt an die<br />

Fachgruppe oder an einen der Arbeitskreise<br />

zu wenden.<br />

■<br />

6/2012


seminare<br />

80 mm hoch, 2 farbig<br />

Wissen wie´s geht<br />

Trainings für Java / Java EE<br />

•Java Grundlagen- und Expertenkurse<br />

•Java EE: Web-Entwicklung & EJB 3.0<br />

•JSF, JPA, Spring, Struts<br />

•Eclipse, Opensource<br />

•IBM WebSphere, Portal, RAD<br />

•IBM Host Grundlagen für Java Entwickler<br />

•Java Entwicklung mit Android etc.<br />

aformatik Training & Consulting <strong>GmbH</strong> & Co. KG<br />

Tilsiter Str. 6 | 71065 Sindelfingen | 07031 238070<br />

www.aformatik.de<br />

Zusammen<br />

Wirken<br />

Profitieren Sie von uns!<br />

Wir sind unabhängig, hersteller- und produktneutral.<br />

Unsere langjährig erfahrenen, praxisnahen und didaktisch<br />

ausgebildeten Trainer bieten Ihnen hochaktuelle<br />

Inhalte, moderne Lerntechniken, praxisbezogene Beispiele<br />

und Übungen mit durchgängigem Fallbeispiel in<br />

einer angenehmen und komfortablen Lernatmosphäre.<br />

oose.<br />

Innovative Informatik<br />

Persistenz mit Hibernate<br />

OR-Mapping von Java-Objekten<br />

29. – 31. Oktober 2012, 1.315,– € (zzgl. 19 % MwSt.)<br />

Testkonzepte<br />

Software-Tests zur kontinuierlichen Sicherung der<br />

Qualität<br />

28. – 30. November 2012, 1.315,– € (zzgl. 19 % MwSt.)<br />

Sicherheitskonzepte unter Java<br />

Mechanismen für Datenschutz und<br />

Datensicherheit in Netzwerken<br />

29. – 30. November 2012, 925,– € (zzgl. 19 % MwSt.)<br />

Lesen bildet. Training macht fit.<br />

Software <strong>GmbH</strong><br />

Henkestraße 91, 91052 Erlangen<br />

Telefon: (09131) 89032-0<br />

Telefax: (09131) 89032-55<br />

meet the<br />

Internet: training.mathema.de<br />

E-Mail: training@mathema.de<br />

experts<br />

of enterprise infrastructure<br />

Neues in Java 7<br />

Die nächste Java Generation<br />

5. – 6. November 2012, 835,– € (zzgl. 19 % MwSt.)<br />

Web-Anwendungen mit<br />

JavaServer Faces (JSF)<br />

Komponentenbasierte<br />

Web-Entwicklung mit<br />

JavaServer Faces (JSF)<br />

21. – 23. Nov. 2012<br />

1.180,– € (zzgl. 19 % MwSt.)<br />

2012_okt_os_2_9.indd 1<br />

13.09.2012 11:12:08 Uhr<br />

Vom Wissen zum Können<br />

Seminare<br />

o Agiles Requirements Engineering<br />

o Analyse und Design mit UML<br />

mit Tooltag oder OCUP-F-Zertifizierung<br />

o Requirements Engineering & Management<br />

optional mit CPRE-Zertifizierung<br />

o Geschäftsprozesse modellieren mit BPMN<br />

optional mit OCEB-Zertifizierung<br />

o Systems Engineering mit SysML/UML<br />

optional mit OCSMP-Model-User-Zertifizierung<br />

o CTFL: Certified Tester Foundation Level<br />

o Agiles Testen<br />

o Softwarearchitektur<br />

optional mit CPSA-Zertifizierung<br />

o Architekturbewertung<br />

o Kommunikation & Moderation<br />

für Analytiker und Entwickler<br />

o Certified Scrum Master<br />

o Führen als Scrum Master<br />

o Professional Scrum Master<br />

o Agiles SW-Projektmanagement<br />

Iteratives Vorgehen und Timeboxing<br />

o PMI Agile Certified Practitioner<br />

(PMI-ACP) SM<br />

o Java für Anwendungsentwickler<br />

o Einstieg in Enterprise JavaBeans<br />

Publikationen unserer Trainer<br />

oose.de<br />

Kontakt:<br />

SIGS-DATACOM <strong>GmbH</strong>, Anja Keß,<br />

Lindlaustraße 2c, D-53842 Troisdorf,<br />

Tel.: +49 (0) 22 41 / 23 41-201, Fax: +49 (0) 22 41 / 23 41-199<br />

Email: anja.kess@sigs-datacom.de<br />

www.sigs-datacom.de<br />

WISSENSVERMITTLUNG aus 1. Hand<br />

■ Continuous Delivery<br />

Ganzheitliche Optimierung<br />

der Entwicklungsprozesse!<br />

Michael Hüttermann<br />

16. November 2012, Köln 1.090,- € zzgl. MwSt.<br />

■ Software Testen im 21. Jahrhundert<br />

Effektive und effiziente Verfahren<br />

zum professionellen Testen<br />

Peter Zimmerer<br />

20. – 22. November 2012, München 2.090,- € zzgl. MwSt.<br />

■ Clean Code Developer Akademie:<br />

Komponentenorientierung -<br />

Software arbeitsteilig entwickeln<br />

Stefan Lieser, Ralf Westphal<br />

21. – 23. November 2012, Hamburg 2.290,- € zzgl. MwSt.<br />

■ Methoden und Sozialkompetenz<br />

in IT-Projekten<br />

Souverän handeln<br />

Anneliese Engel, Daniela Scheurlen<br />

21. – 22. November 2012, Nürnberg 1.590,- € zzgl. MwSt.<br />

■ Best Practices für sichere Web-Anwendungen<br />

Sicherheitslücken in Webanwendungen<br />

erkennen, schließen und vermeiden<br />

Thomas Schreiber<br />

28. – 30. November 2012, München 2.090,- € zzgl. MwSt.<br />

■ Die Architektur Akademie<br />

Konzeption, Erstellung und Weiterentwicklung<br />

von tragfähigen Software-Architekturen<br />

Frank Buschmann<br />

4.690,- € zzgl. MwSt.<br />

10. – 12. Dezember 2012, München inkl. 5 Übernachtungen<br />

86 86 87 87


vorschau<br />

THEMENVORSCHAU JANUAR/FEBRUAR 2013<br />

Dieses Heft erscheint am 14. Dezember 2012<br />

Schwerpunktthema:<br />

IT-Trends 2013<br />

Linking Open Data<br />

Modellgetriebene Multiplattform-Entwicklung<br />

Verschlankung der IT-Organisation durch Prozessvarianten<br />

Beyond Budgeting<br />

Agiles Testen: Die Mischung macht’s<br />

Und andere Trendthemen<br />

SAGEN SIE UNS IHRE MEINUNG!<br />

Leserbriefe nehmen wir gerne entgegen.<br />

Schicken Sie einfach eine E-Mail mit Namen<br />

und Anschrift an<br />

leserbrief@objektspektrum.de.<br />

Die Redaktion behält sich Kürzungen vor. In<br />

keinem Fall spiegeln Leserbriefe die Meinung<br />

der Redaktion wider.<br />

Hinweis: Diese Vorschau ist ein Auszug aus der aktuellen Planung. Änderungen behalten wir uns vor.<br />

WEITERE <strong>SCHWERPUNKT</strong>THEMEN 2013<br />

März/April 2013: IT-Governance<br />

Mai/Juni 2013: Requirements-Engineering<br />

Juli/August 2013: Testautomatisierung<br />

aufruf<br />

AUFRUF ZU BEITRÄGEN FÜR DIE AUSGABE MÄRZ/APRIL 2013<br />

Einreichung der Entwürfe bis zum 16. Dezember 2012<br />

Wir suchen anspruchsvolle, gut geschriebene, unterhaltsame Fachbeiträge zu allen Themenbereichen von OBJEKTspektrum, insbesondere auch zum<br />

Schwerpunktthema:<br />

IT-Governance<br />

In dieser Ausgabe von OBJEKTspektrum legen wir besonderen Wert auf Artikel, die entweder moderne Konzepte und Werkzeuge beschreiben oder Erfahrungs -<br />

berichte bieten. Mögliche Themen können sein:<br />

IT-Kennzahlen und IT-Management-Cockpits<br />

Portfolio-Planung und -Steuerung<br />

Zentrale und dezentrale Steuerung der IT<br />

IT-Demand- und IT-Supply-Varianten<br />

Ansätze für Lean IT-Management<br />

Beiträge sollten einen Umfang von bis zu 22.000 Textzeichen (ohne Leerzeichen) haben und ein bis zwei Abbildungen pro Seite (bei 4-6 Heftseiten) enthalten.<br />

Weitere Informationen und Termine finden Sie unter sigs-datacom.de/fachzeitschriften/objektspektrum/hinweise-fuer-autoren/aufruf-zu-beitraegen.html<br />

oder folgen Sie uns auf Twitter unter: twitter.com/objektspektrum.<br />

inserenten<br />

FIRMA URL SEITE<br />

Acando <strong>GmbH</strong> www.acando.de 56<br />

aformatik Training & Consulting <strong>GmbH</strong> & Co.KG www.aformatik.de 86<br />

andrena Objects www.andrena.de 41<br />

bbv Software Services AG www.bbv.ch 13<br />

Capgemini Deutschland <strong>GmbH</strong> www.capgemini.de 57<br />

Carl Hanser Verlag www.hanser.de 23; 53<br />

DB Systel <strong>GmbH</strong> www.db.de/karriere 59<br />

IBM Deutschland www.ibm.com 45-49<br />

innoQ Deutschland <strong>GmbH</strong> www.innoq.com 55<br />

JavaSPEKTRUM Miniabo www.javaspektrum.de 60<br />

MATHEMA Software <strong>GmbH</strong> www.mathema.de 17; 86<br />

OBJEKTspektrum Information Days www.infodays.de 88<br />

OBJEKTspektrum-Leserbefragung www.objektspektrum.de 67<br />

OBJEKTspektrum Miniabo www.objektspektrum.de 60<br />

Online Themenspecials www.objektspektrum.de 81<br />

OOP 2013 www.oop2013.de 2<br />

oose Innovative Informatik <strong>GmbH</strong> www.oose.de 86<br />

FIRMA URL SEITE<br />

Orientation in Objects <strong>GmbH</strong> www.oio.de 29<br />

SIGS DATACOM Wissen www.sigs-datacom.de/wissen 38; 63<br />

Software Quality Lab <strong>GmbH</strong> www.software-quality-lab.com 58<br />

Softwareforen Leipzig <strong>GmbH</strong> www.softwareforen.de 35<br />

SparxSystems Central Europe www.sparxsystems.at 19<br />

Banderolen (teilweise nur Teilauflage):<br />

IBM Deutschland<br />

www.ibm.com<br />

Software Quality Lab <strong>GmbH</strong><br />

www.software-quality-lab.com<br />

Posterbeilage:<br />

bbv Software Services AG<br />

www.bbv.ch<br />

Teilbeilagen:<br />

OOP 2013<br />

www.oop2013.de<br />

OBJEKTspektrum Inforrmation Days<br />

www.infodays.de<br />

Software & Support Media <strong>GmbH</strong><br />

www.entwickler-akademie.de<br />

6/2012


iSAQB<br />

2. iSAQB Architekturtage<br />

Softwarearchitektur<br />

im Team.<br />

Softwarearchitektur<br />

im Wandel.<br />

■ 20.11.2012, München ■ 21.11.2012, Frankfurt ■ 22.11.2012, Düsseldorf<br />

www.infodays.de<br />

Platin-Sponsoren:<br />

Gold-Sponsoren:<br />

Silber-Sponsoren:<br />

oose.<br />

Innovative Informatik

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!