SCHWERPUNKT: MODELLE - Sigs-Datacom GmbH
SCHWERPUNKT: MODELLE - Sigs-Datacom GmbH
SCHWERPUNKT: MODELLE - Sigs-Datacom GmbH
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