Home
Best Practices in der Softwareentwicklung
Contents
1. Vgl Balzert Bal01 S 697ff Abbildung 5 2 Strikte lineare und baumartige Schichtenstruktur Abbildung a zeigt eine strikte Schichtenstruktur mit Zugriffskante x und eine lineare Schichten struktur ohne Zugriffskante x Abbildung b ist ein Beispiel f r eine baumartige Schichtenstruktur Innerhalb der Schichten befinden sich die mit K bezeichneten Komponenten Ein Schichtenmodell mit linearer Ordnung schr nkt die Zugriffsm glichkeiten gegen ber einer strikten Ordnung zus tzlich dadurch ein dass nur Zugriffe auf die eigene oder die n chstniedrige Schicht erlaubt werden Ein bekanntes lineares Schich tenmodell ist das ISO OSI Modell f r die Kommunikation in Rechnernetzen Hierbei werden die unterschiedlichen Aufgaben der elektronischen Kommunikation je nach ihrem Abstraktionsgrad auf insgesamt sieben Schichten verteilt CDKM02 S 103 Bei einer baumartigen Schichtenarchitektur ist es im Gegensatz zur strikten oder linearen Architektur m glich mehrere Schichten auf der gleichen Abstraktionsebene anzuordnen Da diese Architektur Zugriffe zwischen Schichten derselben Abstrakti onsebene verbietet ergibt sich durch die Kommunikationsbeziehungen zwischen den Schichten eine baumartige Struktur wie sie in Abbildung 5 2b dargestellt ist In einer sinnvoll gestalteten Schichtenarchitektur besitzen alle Dienstleistungen einer Schicht dasselbe
2. Vgl Balzert Bal01 S 698 Tabelle 5 1 Vor und Nachteile von Schichtenarchitekturen 5 1 3 Vergleich von Schichten Architekturen Klassische Schichten Architekturen Ein Anwendungssystem hat in der Regel drei wichtige Funktionen zu bernehmen Pr sentation Verarbeitung und Datenhaltung Die Pr sentationsfunktion ist die Schnittstelle zum Anwender in Form einer Benutzeroberfl che die Verarbeitungs funktion umfasst die gesamte Gesch ftslogik der Anwendung und f r das Lesen und Speichern der Anwendungsdaten ist die Datenhaltung zust ndig Abbildung 5 3 zeigt wie diese Funktionen auf eine zwei oder drei Schichten ver teilt werden k nnen Bei einem monolithischen System werden alle Funktionen durch eine Schicht bernommen w hrend in einer 3 Schichten Architektur jede Funktion durch eine eigene Schicht bernommen wird Die 2 Schichten Architektur stellt ei ne Zwischenform dar bei der Pr sentation und Verarbeitung durch eine einzelne Schicht realisiert werden Die Anzahl der Schichten in die ein Anwendungssystem unterteilt werden soll te ist abh ngig vom Funktionsumfang Je umfangreicher ein System ist desto mehr Schichten sollte die Architektur besitzen Wie bereits erw hnt bedingt die Einf hrung einer weitern Schicht zun chst einen h heren Implementierungsaufwand und meist auch einen erh hten Kommunikationsaufwand zwischen den Schichten Im Gegenzug wird jedoch die Strukturierung des Gesamtsystems erh ht was
3. Anwendungsobjekte Plattform 2 Server Objekte Spezielle Objektdienste Allgemeine Dienste Namensgebung Kopieren L schen Hilfedienste Drucken Sicherheitsdienste Abbildung 5 6 Architektur eines CORBA Systems den umgekehrten Weg wieder an das Client Objekt bermittelt F r den Transport m ssen der Methodenaufruf mit seinen Argumenten und das Ergebnis des Aufrufs in einen zu sendenden Datenstrom verwandelt und aus dem empfangenen Datenstrom extrahiert werden Diese Aufgaben werden als Marshalling bzw Demarshalling be zeichnet und werden von den Stumpf und Skelettobjekten bernommen Zusammen mit dem ORB der f r die Netzwerkkommunikation verantwortlich ist sind so bei ei nem Methodenaufruf der Aufenthaltsort der Anwendungsobjekte sowie die eventuell durchgef hrte Netzwerkkommunikation transparent Client Objekt Server Objekt o Ergebnis 2 as Stumpf s Demarshalling u Marshalling Abbildung 5 7 Entfernter Methodenaufruf mit CORBA Ergebnis Um ein Objekt in CORBA nutzbar zu machen m ssen dessen Schnittstellen zur Au enwelt zun chst in der Interface Definition Language IDL programmier sprachenneutral beschrieben werden Mithilfe der Metainformationen einer IDL Objektbeschreibung k nnen sowohl Stumpf als auch Skelett eines Anwendungsob jekts erzeugt werden Dar ber hinaus ben tigt der ORB die Metainformationen 5 2 KOMPONENTENBASIERTE ARCHITEKTUREN 49 um den ent
4. Forderkreis der Angewandten Informatik an der Westf lischen Wilhelms Universit t M nster e V Working Paper No 1 Best Practices in der Softwareentwicklung Christian Arndt Christian Hermanns Herbert Kuchen Michael Poldner 16 Februar 2009 WILHELMS UNIVERSITAT MUNSTER Best Practices in der Softwareentwicklung Christian Arndt Christian Hermanns Herbert Kuchen Michael Poldner 16 Februar 2009 Christian Arndt Christian Hermanns Prof Dr Herbert Kuchen Michael Poldner Institut fiir Wirtschaftsinformatik Westf lische Wilhelms Universit t M nster Leonardo Campus 3 48149 M nster kuchen uni muenster de Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbi bliografie detaillierte bibliografische Daten sind im Internet ber http dnb ddb de abrufbar ISSN 1868 0801 Dieses Werk ist urheberrechtlich gesch tzt Die dadurch begr ndeten Rechte ins besondere die der bersetzung des Nachdrucks des Vortrags der Entnahme von Abbildungen und Tabellen der Funksendung der Mikroverfilmung oder der Ver vielf ltigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen bleiben auch bei nur auszugsweiser Verwertung vorbehalten Eine Vervielf ltigung dies Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Gren zen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundes
5. ig an Auch f r die berprufung von Refactorings sind die vor der Implementierung erstellten Testf lle wichtig Fortw hrende Integration Bei der Verwendung traditioneller Vorgehensmodelle zur Softwareentwicklungen wer den Integrationsma nahmen zumeist relativ weit ans Ende der Entwicklungsar beiten gestellt Werden in dieser sp ten Phase Integrationsprobleme festgestellt die nicht selten auf grunds tzliche Schwachpunkte in der Systemarchitektur bzw bei der Gestaltung der Komponenten und Schnittstellen hinweisen so ist deren Korrektur mit einem berproportional h heren Aufwand verbunden als zu einem fr heren Zeitpunkt des Projektes Zudem stehen f r die Behebung der Proble me nur noch sehr beschr nkte Ressourcen zur Verf gung so das eine Termin oder Budget berschreitung oder gar ein Abbruch des Projektes h ufig unausweich lich ist Durch eine m glichst fr hzeitige und fortw hrende Integration sollen Feh ler im Zusammenwirken der einzelnen Komponenten fr hzeitig aufgedeckt werden Dies erm glicht es strukturelle Defizite zu einem Zeitpunkt zu erkennen zu dem deren Korrektur noch mit einem verh ltnism ig geringen Aufwand m glich ist Idealerweise sollten Integrationen t glich durchgef hrt werden wobei jede Integra 14 KAPITEL 2 VORGEHENSMODELLE tion eine lauffahige Version des Softwaresystems zum Ergebnis hat Um die In tegrationsf higkeit einer Anderung und die Funktionalit t des Gesamtsystems zu berp
6. MLK04 NUn08 OAS07a LITERATURVERZEICHNIS LIBERTY Jesse HURWITZ Dan Programming ASP NET 3 O Reilly Media Inc 2005 LINTHICUM David S Enterprise Application Integration 1 Boston et al Addison Wesley 2000 LINK Johannes Softwaretests mit JUnit dpunkt verlag 2005 LEMBECK Christoph MULLER Roger A KUCHEN Herbert Test fallerzeugung mit einer symbolischen virtuellen Maschine und Constraint Solvern In GI Jahrestagung 2 Bd 51 GI 2004 S 418 427 LOHRER Matthias Einstieg in ASP NET 1 Galileo Computing 2003 LINNHOFF POPIEN Claudia CORBA Kommunikation und Manage ment 1 Berlin et al Springer 1998 LAHRES Bernhard RAYMAN Gregor Praxisbuch Objektorientierung Von den Grundlagen zur Umsetzung 1 Bonn Galileo Press 2006 MELTON Jim EISENBERG Andrew Understanding SQL and Java To gether A Guide to SQLJ JDBC and Related Technologies 1 San Francisco Morgan Kaufmann 2000 MICROSOFT ASP NET http www asp net Abrufdatum 17 07 2007 MICROSOFT Microsoft NET Homepage http www microsoft com net default aspx Abrufdatum 17 07 2007 RED HAT MIDDLEWARE NHibernate for NET http www hibernate org 343 html Abrufdatum 17 07 2007 MULLER Roger A LEMBECK Christoph KUCHEN Herbert A sym bolic Java virtual machine for test case generation In JASTED Conf on Software Engineering 2004 S 365 371 NUNIT orG NUnit http www nunit org Abruf
7. Selenium http selenium openga org Abrufdatum 28 03 2008 POENSGEN Benjamin Bock Bertram Function Point Analyse 1 Heidelberg dpunkt verlag 2005 PORTLAND PATTERN REPOSITORY Anti Patterns definition and ca talog http c2 com cgi wiki AntiPattern Abrufdatum 19 09 2007 PROJECT The J Jakarta Cactus http jakarta apache org cactus Abrufdatum 28 03 2008 RAIBLE Matt Comparing Web Frameworks https equinox dev java net framework comparison WebFrameworks pdf Abrufdatum 17 07 2007 RATIONAL SOFTWARE CORPORATION Rational Unified Pro cess Best Practices for Software Development Teams http 118 Rat08a Rat08b RB98 SBS06 Sch07 SGMo2 Sou08 Sta07 Sti05 Sun07a Sun07b Sun07c Sun07d LITERATURVERZEICHNIS www augustana ab ca mohrj courses 2000 winter csc220 papers rup_best_practices rup_bestpractices pdf Abrufdatum 19 09 2007 RATIONAL IBM Rational Performance Tester http www 306 ibm com software de rational Abrufdatum 28 03 2008 RATIONAL IBM Rational TestManager http www 306 ibm com software de rational Abrufdatum 28 03 2008 RUBIN William BRAIN Marshall Understanding DCOM 1 New Jersey Prentice Hall 1998 SRIGANESH Rima P BROSE Gerald SILVERMAN Micah Mastering Enterprise JavaBeans 3 0 1 Indianapolis Wiley Publishing Inc 2006 SCHWABER Carey The Forrester Wave Software Change And Con fig
8. Tabelle 3 2 Eine Feldgruppe besteht aus inhaltlisch zusam mengeh rigen Datenelementen z B Nachname und Vorname Diese Bewertung erfolgt pro Elementarprozess genau einmal unabh ngig davon wie h ufig dieser in der Anwendung auftritt und genutzt wird Die klassifizierten Elementarprozesse wer den dann in ein Rechenblatt Abb 3 3 eingetragen und mit Punktzahlen bewertet Durch Addition der so ermittelten Punktewerte erh lt man zun chst die so genann ten unbewerteten Function Points Ei Diese werden dann unter Ber cksichtigung 3 2 RISIKO MANAGEMENT 19 von insgesamt 14 Einflussgr en wie z B der Frage ob das zu erstellende System auf mehreren Rechnern verteilt arbeiten soll oder ob schwer zu erf llende Anfor derungen an die Effizienz bestehen um maximal 35 verringert oder erh ht Als Ergebnis erh lt man dann die bewerteten Function Points E3 die mithilfe einer Tabelle dann in Mitarbeiter Monate umgerechnet werden k nnen Kategorie Anzahl Klassifizierung Gewichtung K Eingabedaten einfach 9 mitte komplex Abfragen einfach mitte komplex Ausgaben einfach 3 mitte komplex Datenbest nde 3 einfach mitte komplex Referenzdaten einfach mitte komplex 36 15 21 xixixixi x x x x x x x Gil A1 A1 od A a el co a wo x x x S I on Summe E Einflussfaktoren 1 Datenkommunikation Frontend Backend 0 5 andern den FP Wert 2 Verteilte V
9. dass diese oft andere Bausteine erfordern die beim Testen zun chst noch nicht ber cksichtigt werden sollen Durch eine geschickt gew hlte Testreihenfolge l sst es sich oft erreichen dass von dem zu testenden Baustein nur solche Bausteine ben tigt werden die bereits sorgf ltig getestet wurden In diesem Fall kann man direkt auf die getesteten Bausteine zur ckgreifen und ben tigt kei ne weiteren Vorkehrungen Manchmal ben tigen sich Bausteine aber wechselseitig Dann l sst es sich oft nicht umgehen einen der Bausteine zun chst durch einen vereinfachten Baustein auch Stumpf Stub oder Mock genannt zu ersetzten der die Funktionalit t des eigentlichen Bausteins auf m glichst einfache Weise simuliert vgl Abb 7 1 Ein Problem bei der Verwendung von Testst mpfen ist dass der zu testende Baustein oft ge ndert werden muss um mit den Testst mpfen verkn pft zu werden Dies ist nicht nur umst ndlich sondern birgt auch das Risiko dass diese nderungen TT 78 KAPITEL 7 TESTEN aufrufende Testtreiber Komponente zu testende zu testende Komponente T7 Komponente aufgerufene aufgerufene Stumpf Stumpf Komponente Komponente Abbildung 7 1 Ersetzen von benachbarten Bausteinen durch vereinfachte Testst mpfe nach dem Testen nicht alle wieder revidiert werden so dass ein vereinfachter Test stumpf irrt mlich statt des eigentlichen Sof
10. der die entspre 6 3 VERHALTENSMUSTER 73 chende FuehreAus Operation umsetzt Beispielsweise kann jede Auswahlm glichkeit eines Men s durch ein Exemplar der Klasse MenueEintrag realisiert werden Ein Ob jekt der Klasse Anwendung erzeugt diese Men s mit allen ihren Men Fintr gen und verwaltet Objekte der Klasse Dokument die ein Benutzer ge ffnet hat Abb 6 5 Je der MenueEintrag wird mit einer konkreten Unterklasse von Befehl konfiguriert Bei Auswahl eines MenueEintrags ruft das MenueEintrag Objekt die Operation Fuehre Aus auf seinem Befehlsobjekt auf das die entsprechende Operation umsetzt Welche konkrete Unterklasse sich hinter ihrem Befehlsobjekt verbirgt ist einem Exemplar der Klasse MenueEintrag nicht bekannt Anwendung K gt Menue MenueEintrag Befehl AddDokument AddMenueEintrag Geklickt FuehreAus IN befehl FuehreAus Abbildung 6 6 Entwurfsmuster Befehl Abbildung 6 6 stellt die Struktur des Befehlsmusters dar Der Klient Anwen dung erzeugt ein KonkreterBefehl Objekt und bergibt es dem Empf nger welcher wei wie die an die Ausf hrung einer Anfrage gebundenen Operationen auszuf hren sind Ein Aufrufer MenueEintrag speichert das Befehlsobjekt und ruft bei einem bestimmten registrierten Ereignis Geklickt die FuehreAus Operation des Befehls objekts auf Das Befehlsmuster hat mehrere Vorteile Zum einem entkoppelt das Befehlsmus ter das Objekt
11. nstigt eine einseitige und technologiespezifische Diskussion von Integrationsproblemen Die Frage inwie weit die favorisierte Integrationsl sung dabei wirklich den gestellten Anforderungen gen gt und ob ihr Einsatz m glicherweise mit Nachteilen oder Risiken verbunden ist ger t dabei allzu leicht ins Hintertreffen Als Beispiel hierf r kann die derzeitige Euphorie um Web Service basierte Integrationsl sungen angesehen werden Statt um eine konkrete Technologie handelt es sich bei EAI vielmehr um ein Konzept welches mit einer Vielzahl m glicher Technologien realisiert werden kann Das Ziel der Anwendungsintegration besteht in der umfassenden Verkn pfung von Anwendungen auf innerbetrieblicher oder zwischenbetrieblicher Ebene Dabei sollen die bestehenden Anwendungen in ihrer urspr nglichen Form erhalten bleiben um einerseits die in ihre Erstellung investierten Ressourcen und andererseits das darin gebundene Wissen f r die Zukunft zu erhalten Zur Umsetzung dieses Ziels stellt das EAI Konzept eine Reihe von Methoden Architekturkonzepten sowie Standards und Technologien zur Verf gung 89 90 KAPITEL 9 ENTERPRISE APPLICATION INTEGRATION 9 1 Heterogene Systemlandschaften Der Ausgangspunkt von Integrationsvorhaben ist stets eine Menge von bereits exis tierenden Systemen die aufgrund von Heterogenit ten nicht oder nur mit Ein schr nkungen in der Lage sind miteinander zu interagieren Diese Heterogenit ten k nnen sich auf ver
12. und Nachteile des JSF Frameworks Vor und Nachteile des Spring MVC Frameworks Vor und Nachteile des Tapestry Frameworks xi xii TABELLENVERZEICHNIS Kapitel 1 Einleitung Was das Vorgehen und die eingesetzten Methoden und Werkzeuge bei der Softwa reentwicklung angeht gibt es zwischen verschiedenen Firmen deutliche Unterschie de W hrend manche Firmen die Vorschl ge aus Lehrb chern zur Softwaretechnik weitgehend umsetzen gibt es andere die hinter dem aktuellen Stand der Technik zur ckbleiben Bei gr eren Firmen kann man feststellen dass solche Unterschiede sogar zwischen verschiedenen Abteilungen bestehen Die vorliegende Brosch re hat zum Ziel Methoden aufzuzeigen ber deren Einsatz zumindest nachgedacht wer den kann und die die Softwareentwicklung effizienter und qualitativ hochwertiger gestalten k nnen Im Folgenden wird davon ausgegangen dass Sie als Leser zumindest ber Grund kenntnisse der Softwareentwicklung verf gen Einige oder vielleicht sogar die meis ten der angesprochenen Themen werden Ihnen bekannt sein Es wird aber zumindest ein paar Themen und Aspekte geben bei denen sie auf Ans tze sto en die Ihnen weniger vertraut sind und die in Ihrer Firma vielleicht sinnvoll eingesetzt werden k nnen Wenn dem so sein sollte hat diese Brosch re ihr Ziel erreicht Wenn Sie ei nige Themen bereits kennen sollten ist es nicht unbedingt zwingend die Brosch re vo
13. Abstraktionsniveau Dar ber hinaus sind die Schichten so zueinander angeordnet dass eine Schicht ausschlie lich die Dienstleistungen der untergeordneten Schichten in Anspruch nimmt w hrend sie den bergeordneten Schichten Dienstleistungen zur Verf gung stellt Die Anzahl der Schichten z hlt zu den zentralen Eigenschaften einer Architektur und ist daher entscheidend f r einen guten Softwareentwurf W hrend zu wenige Schichten die Wiederverwendbarkeit Anpassbarkeit und Portabilit t einer Anwen dung einschr nken f hren zu viele Schichten dazu dass die Komplexit t des Ge samtsystems durch den erh hten Aufwand der durch die Schichtenaufteilung ent steht steigt Die Vor und Nachteile die sich durch die Umsetzung einer Schichtenarchitek tur ergeben k nnen sind in der Tabelle 5 1 aufgef hrt Im nachfolgenden Abschnitt 42 KAPITEL 5 SOFTWAREARCHITEKTUREN werden m gliche Schichtenarchitekturen f r Desktop und Web Anwendungen vor gestellt und verglichen VORTEILE NACHTEILE Strukturierung in Abstraktionseb Geringer Effizienzverlust da Daten enen f rdert bersichtlichkeit oft ber mehrere Schichten trans portiert werden m ssen Innerhalb einer Schicht freie Ge Definition von eindeutig abgegrenz staltungsm glichkeiten da keine ten Schichten nicht immer m glich Zugriffsbeschr nkung Unterst tzt Wiederverwendbar keit nderbarkeit Wartbarkeit Portabilit t und Testbarkeit
14. Aggregation und Komposition 32 KAPITEL 4 OBJEKTORIENTIERUNG UND UML Eine spezielle Assoziation welche eine Ganzes Teil Beziehung ausdriickt nennt man Aggregation Sofern es einem Modellierer wichtig ist diese spezielle Art der Beziehung herauszustellen kann er die beteiligten Klassen statt durch eine durch gehende Linie auch durch eine Linie verbinden die mit einer wei en Raute beginnt In Abbildung 4 4 oben wird modelliert dass ein Fahrrad zwei Reifen enth lt Ist eine Ganzes Teil Beziehung so geartet dass beim L schen des Objektes f r das Ganze auch die Teil Objekte ihre Existenzberechtigung verlieren so kann man dies bei der Modellierung durch eine spezielle Form von Aggregation eine Kompo sition zum Ausdruck bringen Im Klassendiagramm wird statt einer wei en dann eine schwarze Raute verwendet In Abbildung 4 4 unten wird beispielsweise dargestellt dass eine Person belie bige viele Wohnsitze hat Stirbt die Person so hat sie auch keine Wohnsitze mehr sondern es gibt h chstens noch Wohnungen Aus Implementierungssicht zeigt eine Komposition an dass hier ein so genanntes kaskadierendes L schen realisiert werden muss Man beachte dass in obigem Fahrrad Beispiel ein Rad auch bei einem anderen Fahrrad montiert werden kann wenn das urspr ngliche Fahrrad verschrottet wird Daher wurde hier keine Komposition modelliert Beipiel 1 Krankenhausanwendung Nachdem die Bestandteile eines Klassendiagramms nun erl utert
15. Be schreibung der Schnittstellen der entfernten Objekte erfolgt mithilfe von Java EJB oder programmiersprachenunabh ngig mittels einer Interface Definition Language CORBA DCOM Abbildung 9 7 verdeutlicht den Kommunikationsmechanismus welcher komponentenorientierter Middleware zugrunde liegt Lokale Proxies Stub 100 KAPITEL 9 ENTERPRISE APPLICATION INTEGRATION und Skeleton fungieren als schnittstellen quivalente lokale Stellvertreterobjekte des jeweiligen entfernten Server Objektes Der Client ruft eine Methode des Stubs wel cher diese in ein plattformunabh ngiges Zwischenformat umwandelt Marshalling und ber den Kommunikationskanal an das Skeleton auf der Serverseite bermittelt Dieser konvertiert die Parameter in ein lokales Format und ruft die gewiinschte Me thode des Server Objektes auf Zur Ubertragung der Riickgabewerte des Aufrufs verl uft die Kommunikation in umgekehrter Richtung ber das Skeleton und den Kommunikationskanal bis hin zum Stub welcher die Ergebnisse lokal an die aufru fende Anwendung tibergibt Demarshalling Auf eine vertiefende Darstellung der Architektur und Funktionsweise der skiz zierten Ans tze soll an dieser Stelle zugunsten einer differenzierten Bewertung der Alternativen im Hinblick auf ihre Einsatzpotentiale im Kontext der Anwendungs integration verzichtet werden F r weiterf hrende Informationen zu CORBA Java EE und COM DCOM sei daher auf die angegebene Literatur sowie auf Abschnitt 5
16. Benutzerschnittstellenintegration wie auch der Datenintegration Die integrierte Informationssysteminfrastruktur kann als System von mehr oder weni ger lose miteinander gekoppelten Komponenten betrachtet werden F r die Rea 9 4 INTEGRATIONSEBENEN 97 lisierung dieses Integrationskonzeptes bietet sich ein ganzes B ndel von Techno logien an Diese unterscheiden sich zum Teil erheblich in Aspekten wie Einrich tungsaufwand Performanz Skalierbarkeit Austauschbarkeit und der Flexibilit t der durch sie bewirkten Kopplung zwischen den Systemen Dar ber hinaus stellen die verschiedenen Integrationstechnologien sehr unterschiedliche Anforderungen an die zu integrierenden Systeme oder sind mit Restriktionen verbunden die ihre Ein satzm glichkeiten auf bestimmte Integrationsszenarien einschr nken Historisch ist eine Entwicklung ausgehend von RPC Remote Procedure Call basierten Integrati onstechnologien ber komponentenorientierte Middleware Plattformen wie CORBA oder DCOM bis hin zu Web Service basierten Integrationsl sungen zu beobachten Eine der wichtigsten Triebfedern f r die zu beobachtende technologische Entwick lung im Bereich der Anwendungsintegration ist der Trend hin zu flexiblen unter nehmens bergreifenden und kurzfristig an neue Anforderungen und Rahmenbedin gungen anpassbaren Gesch ftsprozessen Dies erfordert eine flexible und skalierbare Integration der zugrunde liegenden Informationssysteme Aufgrund der gro en Bedeut
17. Beobachter voneinan der unabh ngig zu variieren Subjekte k nnen wiederverwendet werden ohne ihre Beobachter wiederverwenden zu m ssen und umgekehrt Zudem k nnen neue Beob 6 3 VERHALTENSMUSTER 75 Subjekt beobachter MeldeBeobachterAn MeldeBeobachterAb Benachrichtige Beobachter Aktualisiere f r alle b in beobachter b Aktualisiere KonkreterBeobachter beobachteterZustand Aktualisiere KonkretesSubjekt subjektZustand bach GibZustand 7 SetzeZustand N 5 7 7 7 S J beobchteterZustand return subjektZustand subjekt GibZustand Abbildung 6 8 Entwurfsmuster Beobachter achter ohne Modifikation des Subjekts oder anderer Beobachter hinzugef gt werden Nachteil des Musters ist dass eine scheinbar harmlose Operation auf dem Subjekt zu aufw ndigen Aktualisierungen bei den Beobachtern f hren kann Schlecht de finierte und gewartete Abh ngigkeiten f hren des Weiteren schnell zu unsinnigen Aktualisierungen die schwer aufzufinden sind 6 3 3 Weitere Verhaltensmuster Details zu den im Folgenden kurz skizzierten weiteren Verhaltensmustern findet man in GHJV96 Besucher erlaubt bei Klassen mit sehr umfangreichen Schnittstellen und Operatio nen die sich in Themenbereiche untergliedern lassen die Operationen jeweils eines Themenbereichs in eine eigene Besucherklasse herauszuziehen Hi
18. Geschwindigkeitsverlust zur Folge Plattformunabh ngigkeit Da f r nahezu jedes Betriebssystem eine JVM existiert ist auch Java EE quasi vollst ndig Plattformunabh ngig Bei NEI w re eine Plattformunabh ngigkeit aufgrund der vorhandenen virtuellen Ma schine theoretisch auch realisierbar bisher gibt es jedoch abgesehen von eini gen wenige Ausnahmen z B Mono f r Linux ausschlie lich eine Implemen tierung der CLR f r Windows Betriebssysteme Sprachunterst tzung Java EE unterst tzt ausschlie lich die Sprache Java In anderen Sprachen geschriebene Programme k nnen lediglich ber das Java Native Interface JNI eingebunden werden Diese Form der Einbindung ist jedoch mit zus tzlichem Aufwand verbunden Die CLR kann theoretisch jede 5 2 KOMPONENTENBASIERTE ARCHITEKTUREN 63 CLS konforme Sprachen ausfiihren Compiler fiir sehr viele Sprachen existieren bereits e Entwicklungstools Wahrend es fiir Java EE eine Menge verschiedener Werk zeuge und Entwicklungsplattformen gibt wird f r die Entwicklung von NET Anwendungen im Wesentlichen die Visual Studio NET Entwicklungsumge bung eingesetzt Fazit Die wichtigsten Unterschiede zwischen beiden Frameworks liegen in der Plattform strategie W hrend Java EE eine plattformunabh ngige an die Sprache Java ge bundene L sung darstellt ist NET sprachunabh ngig jedoch an die Windows Plattform gebunden Im Bezug auf die Pr sentationsschicht scheint NET mit dem Code Beh
19. Komplexere Client Server Architekturen ergeben sich wenn ein Prozess sowohl die Rolle eines Clients als auch die Rolle eines Servers bernimmt Ein solcher Prozess stellt als Server Dienste zur Verf gung w hrend er zur Erbringung dieser Dienste auf die Dienste anderer Server zur ckgreift 5 1 2 Aufbau von Schichtenarchitekturen Komplexe Softwaresysteme die aus vielen Komponenten bestehen werden h ufig als Schichtenarchitekturen konzipiert um eine st rkere Strukturierung zu erreichen Die Schichten eines Softwaresystems erlauben beliebigen Zugriff zwischen den Kom ponenten derselben Schicht schr nken jedoch die Zugriffe zwischen den Schichten ein Die Anordnung der Schichten in einer Architektur ist hierarchisch in Abh ngig keit von den Abstraktionsniveaus der Schichten Dabei nehmen die h her liegenden Schichten von untergeordneten Schichten Dienste in Anspruch Diese Rollenvertei lung entspricht dem Client Server Modell Die Schichtenhierarchie kann eine strikte lineare oder baumartige Struktur annehmen wie in Abbildung 5 2 dargestellt In einem Schichtenmodell mit strikter Ordnung befinden sich alle Schichten auf einem unterschiedlichen Abstraktionsniveau und es gilt die Einschr nkung dass eine Schicht auf alle Schichten mit einem niedrigeren Abstraktionsniveau jedoch nicht auf Schichten mit einem h heren Abstraktionsniveau zugreifen darf 5 1 SCHICHTENARCHITEKTUREN 41 a b
20. Objekte erf llen m ssen werden Zusicherungen genannt und in geschweiften Klammern hinter das zu spezifizierende Element geschrieben ber die Sichtbarkeit wird festgelegt ob und in welcher Weise ein Zugriff auf die Attribute und Methoden erfolgen darf M gliche Sichtbarkeiten sind private protected und public Als private deklarierte Attribute und Methoden sind nur innerhalb der Klasse selbst und nicht von au en sichtbar Typischerweise sch tzt man so die Attribute einer Klasse vor unkontrolliertem Zugriff Man spricht in diesem Zusammenhang auch von Datenkapselung Auf die gleiche Weise k nnen Hilfsmethoden verborgen werden die nur innerhalb der Klasse genutzt werden sollen Deklariert man Attribute oder Methoden mit protected so sind diese nicht nur in nerhalb der Klasse selbst sondern auch f r alle eventuell vorhandenen Unterklassen sichtbar vgl Unterkapitel 4 1 3 Mit public werden die Methoden ausgezeichnet die die Schnittstelle einer Klasse nach au en bilden F r die Attribute einer Klasse werden typischerweise so genannte Set und Get Operationen bereit gestellt mit denen die Attributwerte gesetzt bzw ausgelesen werden k nnen Durch die kontrollierte nderung der Attributwerte ber die Set Operationen kann ein konsistenter Zustand eines Objekts im Bezug auf die angege benen Zusicherungen gew hrleistet werden So kann beispielsweise die setBreite Operation der Klasse Rechteck beim Versuch die Breite des R
21. Testen so weit wie m glich zu au tomatisieren Einige Prozessmodelle f r die Softwareentwicklung wie z B Extreme Programming verlangen eine solche Automatisierung sogar vgl Abschnitt 2 3 F r die Automatisierung von Tests haben in den letzten Jahren einfache frei verf gbare Frameworks wie JUnit JUn08 Lin05 f r Java und Varianten wie NU nit NUn08 f r alle NET Sprachen inklusive C C Visual Basic eine gro e Beliebtheit erreicht nicht zuletzt weil Hersteller von Entwicklungsumgebun gen diese in ihre Werkzeuge integriert haben Bei diesem Ansatz wird zu einer zu testenden Klasse eine Testklasse als Testtrei ber erstelllt Hierin wird f r jeden Testfall eine Methode angelegt In diesen Testme thoden werden im Framework vordefinierte Methoden wie z B assertEquals ver wendet mit denen das erhalte Ergebnis mit dem erwarteten verglichen werden kann Au erdem bietet die Testklasse die M glichkeit durch geeignetes berschreiben der Methode setUp das zu testende Objekt vor den Tests in einen definierten Anfangs zustand zu bringen Hierbei k nnen z B auch Datenbank oder Netzwerkverbindun gen aufgebaut Entsprechend erlaubt die Methode tearDown nach den Tests solche Ressourcen wieder frei zu geben Im folgenden Beipiel wird eine JUnit Testklasse ListTest gezeigt mit der eine hier nicht gezeigte Klasse MyList getestet wird MyList implementiert eine lineare Liste und bietet neben einer Iteratorschnittstelle ein
22. Universit t M nster lie en sich Webanwendun gen bei denen ausschlie lich so genannte CRUD Operationen create read upda te delete ben tigt wurden inklusive der hierf r n tigen Navigationsstrukturen zu 111 lt EXTENSION templates Library gt lt DEFINE Root FOR Metamodel Entity gt lt FILE getClassPath this gt package lt getPackageName this package gt Entity public class lt this name gt implements java io Serializablet lt EXPAND Property FOREACH this ownedAttribute gt lt EXPAND Accessor FOREACH this ownedAttribute gt lt ENDFILE gt lt ENDDEFINE gt lt DEFINE Property FOR uml Property gt lt getVisibility this gt lt getStatic this gt lt getTypeName this gt lt getAttributeName this gt lt IF isMultiple this gt lt ELSE gt new java util ArrayList lt lt getQualifiedTypeName this type gt gt Q lt ENDIF gt lt ENDDEFINE gt lt DEFINE Accessor FOR uml Property gt lt IF this association null gt lt getMultiplicityAnnotation this gt JoinColumn name lt this name gt lt ENDIF gt public lt getStatic this gt lt getTypeName this gt lt getGetterName this gt return lt getAttributeName gt public lt getStatic this gt void lt getSetterName this gt lt getTypeName this gt p_ lt getParameterName this gt lt getAttributeName gt p_ lt getParameterName gt lt ENDDEFINE gt lt DEFINE Root FOR uml Model gt lt E
23. Unternehmen Frau Cornelia Gaebert INDAL M nster Herrn Hans Hermann G cke mdi nora Ibbenb ren und Herrn Johannes Schlatt mann LVM M nster Ihre Mitarbeit hat zu weiteren wertvollen praxisbezogenen Hinweisen gef hrt Martin Kittner Dr Christoph Asmacher Vorsitzender des F rderkreises f r Angewandte Informatik IHK Nord Westfalen ill iv Inhaltsverzeichnis Einleitung Vorgehensmodelle 2 1 Das Wassertall Modell x a Sax 28 Due ews ee en aeg 2 2 Der Rational Unified Process 22 22 2 222m nn 2 3 Extreme Programming want ehe Pr ee ir E eg Management Aspekte 3 1 Aufwandssch tzung 2 2 an ow aa aaa ah ara 3 2 Risiko Management sur wa ee nn Go ery E Ae 3 2 1 Ris ko Identifikation dg Er ara en a En Saag a 3 2 2 Risiko Ahalyser a 0 2 4 0006 Sod ele ae ae 3 2 3 Risiko Priorit tenbildung za sam Kerner 3 2 4 Risikomanagement Planung 3 2 5 Risiko berwind ng u au a sad de AC A 3 2 6 E EEN Objektorientierung und UML 4 1 Grundkonzepte der Objektorientierung 4 1 1 Objekte und Klassen 228 22 8 2a 8 u a El a 4 1 2 Attribute und Operationen o 2 22 2 nme ALG VererDime un aa ae ale Bl dee p Sed te 4 2 Unified Modeling Language 2 CE nn nen 4 2 1 Klassendiagramme a Ae water ea e ee ks 4 2 2 Darstellung einer Klasse im Klassendiagramm 4 2 3 Anwendungsfalldiagramme 4 2 4 Bequenzdiasgr mme water ehe ae Pal De par eg 4 2 5
24. als Objekt erlaubt eine Vielzahl von Verwendungsm glichkeiten ggf in Kombination mit anderen Mustern wie z B einen Klienten mit einem austausch baren Befehl zu parametrisieren Operationen in eine Queue zu stellen ein Logbuch zu f hren und Operationen r ckg ngig zu machen In manchen Situationen ist es notwendig Anfragen an Objekte zu stellen ohne irgendetwas ber die auszuf hrende Operation zu wissen oder das Objekt zu kennen an das die Anfrage gerichtet wird Ein Beispiel hierf r sind Klassenbibliotheken f r Benutzungsschnittstellen welche Men s oder Schaltfl chen bereitstellen die als Reaktion auf eine Benutzereingabe eine bestimmte Operation ausl sen Der Entwickler eines solchen Frameworks kennt das Zielobjekt einer Anfrage und die auszuf hrenden Operationen nicht Anwendung K gt Menue MenueEintrag AddDokument 1 AddMenueeintrag Geklickt befehl FuehreAus FuegeHinzu Abbildung 6 5 Entwurfsmuster Befehl am Beispiel Mit dem Befehlsmuster k nnen Anfragen an unbekannte Anwendungsobjekte gerichtet werden indem die Anfrage selbst zu einem Objekt gemacht wird Der Kern dieses Musters ist eine abstrakte Klasse Befehl die eine Schnittstelle zum Ausf hren von Operationen deklariert Im einfachsten Fall ist dies eine abstrakte FuehreAus Operation welche von konkreten Unterklassen implementiert wird Ex emplare dieser Unterklassen werden einem Empf nger bergeben
25. bei OO zumindest Klassendiagramme und oft auch Aktivit tsdiagramme und Use Case Diagramme sowie manchmal weitere Diagramme wie State Charts sollten erstellt und gepflegt werden Werkzeuge CASE Tool zumindest bei Verwendung von OO und UML IDE zur Steigerung der Produktivit t immer zu empfehlen CVS insbesondere bei Teamarbeit immer zu empfehlen Testautomatisierung sollte zur Steigerung der Produktivit t soweit wie m glich genutzt werden Software Entwurf Schichtenarchitektur zur Steigerung der Ubersichtlichkeit Wartbarkeit und Anpassbarkeit fast immer zu empfehlen Middleware zur Senkung des Entwicklungsaufwands bei Informati onssystemen zu empfehlen sofern keine extremen Effi zienzanforderungen bestehen Entwurfsmuster sollte jeder OO Entwickler kennen da sie u a die Wart barkeit und Flexibilit t erh hen Sonstiges EAI bei gro en Unternehmen mit bisher nicht oder schlecht verbundenen Einzelsystemen MDA MDSD bei vielen Versionen Varianten eines Softwaresystems zur Steigerung der Produktivit t nach allerdings erheb lichem Einarbeitungsaufwand Tabelle 1 1 Eignung von Technologien Ma nahmen und Ans tzen Kapitel 2 Vorgehensmodelle in der Software Entwicklung Jedes Softwareprojekt einer nennenswerten Komplexit t sollte in einem mehr oder weniger festgelegten organisatorischen Rahmen verlaufen Obwohl diese Erkennt nis nicht neu ist verlaufen zahlreiche Projekte noch imm
26. das die Anfrage ausl st von dem das wei wie sie umzusetzen ist Zum anderen ist es einfach neue Befehlsobjekte hinzuzuf gen weil keine bereits existierenden Klassen ge ndert werden m ssen Weiterhin kann ein Befehlsobjekt wie jedes andere Objekt auch manipuliert und erweitert werden So lassen sich meh rere Befehlsobjekte zu einem komplexeren Makro Befehl zusammensetzen Die Klassen BinOp und Addition in Abb 4 6 sind ein weiteres Beispiel f r eine Verwendung des Befehlsmusters 6 3 2 Beobachter Oftmals muss man die Konsistenz zwischen den miteinander in Beziehung stehen den Objekten eines Anwendungssystems aufrechterhalten Eine enge Kopplung der Klassen sollte hierbei aus Gr nden der Wiederverwendbarkeit und bersichtlichkeit vermieden werden Beobachter ist ein objektbasiertes Verhaltensmuster bei dem eine 1 n Abh ngigkeit zwischen Objekten definiert wird so dass die nderung des 74 KAPITEL 6 ENTWURFSMUSTER Zustands eines Objekts dazu f hrt dass alle abh ngigen Objekte benachrichtigt und automatisch aktualisiert werden a b c x 60 30 10 y 50 30 20 z 80 10 10 7 Benachrichtigung ber Anderung Anfragen Ver nderungen Abbildung 6 7 Objekt mit unterschiedlichen Visualisierungen Abbildung 6 7 zeigt verschiedene gleichzeitig genutzte Objekte zur Darstellung Beobachter desselben Anwendungsdatenobjekts Subjekt hier einer Tabelle We
27. die Funktion Que ryInterface ben tigt die zu einer bergebenen Schnittstellen ID falls vorhanden eine Referenz auf den zugeh rigen Interface Knoten zur ck gibt Die QueryInterface Funktion wird ben tigt um die von einer Komponente implementierten Schnittstel len zu ermitteln und um die Funktionen der verschiedenen Schnittstellen aufrufen zu k nnen Wie bereits erw hnt dienen die Schnittstellenknoten dazu die Instanzen einer COM Komponente zu unterscheiden Weil eine COM Komponente auch mehrere Interface Knoten besitzen kann werden COM Objekte ber Schnittstellenknoten der Unknown Schnittstelle identifiziert Alle Schnittstellen eines COM Objekts ge ben beim Aufruf der QueryInterface Funktion mit der ID der Unknown Schnitt stelle als Parameter die Referenz auf den selben Interface Knoten zur ck Dies gew hrleistet die eindeutige Identifizierbarkeit von COM Objekten ASP NET ASP NET Mic07a ist das Web Framework der NET Plattform welches die Er stellung von Web Anwendungen und Web Services unterst tzt Im Gegensatz zur Java EE Plattform f r die es viele Web Frameworks mit unterschiedlichen Schwer punkten und Zielsetzungen gibt ist ASP NET das einzige Web Framework f r die NET Plattform ASP NET ist der Nachfolger der Active Server Pages ASP Tech nologie und bietet generische L sungen f r die blichen Probleme die bei der Pro grammierung von Webanwendungen auftreten Es gibt zum Beispiel L sungen f r Sitzung
28. durch eine so genannte Klasse Ein einzelnes Objekt geh rt immer nur zu einer Klasse und kann diese Zugeh rigkeit nicht ndern Ein Objekt wird auch als Instanz seiner Klasse bezeichnet 4 1 2 Attribute und Operationen Die Struktur eines Objekts ergibt sich aus seinen Bestandteilen bzw den in ihm ent haltenen Daten Letztere werden auch Attribute genannt Die Objekte einer Klasse besitzen alle die gleichen Attribute unterscheiden sich aber in den Werten die die se annehmen Zwei Objekte mit identischen Attributauspr gungen k nnen ber die Objektidentit ten eindeutig unterschieden werden Die Werte der Attribute k nnen sich im Programmverlauf ndern Dazu werden Operationen auch Methoden ge nannt definiert die die Attributwerte manipulieren und das m gliche Verhalten der Objekte festlegen Operationen werden in der jeweiligen Klasse definiert und sind f r alle Objekte einer Klasse gleich Eine direkte Manipulation der Attribute durch Operationen anderer Klassen sollte unterbleiben Als spezielle Operationen einer Klasse sind die Konstruktoren sowie die Destruktoren zu nennen Ein Konstruktor erzeugt ein neues Objekt einer Klasse ein Destruktor l scht ein Objekt 4 1 3 Vererbung Mit dem Konzept der Vererbung lassen sich Spezialisierungsbeziehungen zwischen Klassen herstellen Oftmals k nnen gewisse Objekte einer Klasse mit weiteren spe ziellen Attributen ausgestattet werden so dass diese Objekte eine spezialisierte Va riant
29. ergibt Risikofaktor Schadenswahrscheinlichkeit x Schadensausma Ein unbefriedigendes Ergebnis liegt vor wenn die Hauptbeteiligten an einem Software Projekt durch das Ergebnis einen Schaden erleiden 1 f r Kunden und Entwickler Kosten und Termin berschreitungen 2 f r Benutzer falsche Funktionalit t mit Defiziten der Benutzeroberfl che Leistung oder Zuverl ssigkeit 3 f r Wartungsingenieure schlechte Qualit t 3 2 3 Risiko Priorit tenbildung Um zu verhindern dass die wirklich relevanten Risiken angemessen beachtet wer den empfiehlt es sich die Risiken nach ihrem Risikofaktor zu sortieren Oftmals ist es sehr schwierig die Eintrittswahrscheinlichkeiten hinreichend genau zu sch tzen Eine vollst ndige Risiko Analyse w rde jedoch teure und in der Entwicklung zeit aufw ndige Prototypen Leistungsmessungen und Simulationen erfordern so dass man sich im Allgemeinen mit groben Sch tzungen zufrieden gibt 3 2 4 Risikomanagement Planung Nachdem die Hauptrisikoelemente ermittelt wurden muss f r jedes Risikoelement ein Risiko Plan entwickelt werden welcher die zur Kontrolle des Risikoelements notwendigen Aktivit ten spezifiziert Eine Hilfe hierzu gibt Tabelle 3 4 in wel cher erfolgreiche Risikomanagement Techniken f r die wichtigsten Risikoelemente aufgelistet sind Der letzte Planungsschritt besteht darin die Risikopl ne in den bergeordneten Projektplan zu integrieren 3 2 5 Risiko berwindung
30. fiir deren Eigenschaften und zukiinftige Entwicklungspotentiale Aufgrund ihres grundlegenden Charakters und der mit ihrer Einf hrung verbundenen hohen Kapitalbindung ist sie von l ngerfristiger Wirkung und kann nachtr glich nur mit hohem Aufwand korrigiert oder zur ckgenommen werden Der auf kurzfristige Sicht attraktivste Ansatz kann sich l ngerfristig als Sackgasse f r die Fortentwicklung der betrieblichen Informationsverarbeitung er weisen Eine Entscheidung f r einen bestimmten Architekturansatz sollte demnach wohl berlegt sein und gen gend Flexibilit t bieten um nicht nur gegenw rtigen sondern auch zuk nftigen Anforderungen begegnen zu k nnen Im den folgenden Abschnitten werden drei grundlegende Ans tze f r die Gestaltung einer Integrati onsinfrastruktur vorgestellt Um Handlungsempfehlungen f r die Praxis ableiten zu k nnen sollen dabei vor allem deren spezifische Vor und Nachteile sowie m gliche Restriktionen herausgestellt werden 9 3 1 Punkt zu Punkt Integration Die Punkt zu Punkt Integration vgl Abbildung 9 1 stellt weniger eine Integrati onstopologie dar als vielmehr einen Hinweis auf das Fehlen einer solchen System System 2 3 System System 1 4 System System 6 5 Abbildung 9 1 Vollst ndige Punkt zu Punkt Integration von sechs Systemen Bei der Punkt zu Punkt Integration werden jeweils zwei Systeme bedarfsgetrie ben b
31. inhaltlich klar abgegrenz te und f r den praktischen Einsatz geeignete Funktionalit t ab Sie k nnen durch den Dienstanbieter ber ein ffentlich zug ngliches Verzeichnis Dienst Registry zur Verf gung gestellt und von einem Dienstkonsumenten anhand ihrer Beschrei bung zur Laufzeit eingebunden werden Elementare Dienste lassen sich durch eine so genannte Orchestrierung zu komplexen Diensten kombinieren welche wiederum ver ffentlicht werden k nnen Technologisch beruhen Web Services auf den XML basierten Standards SOAP WSDL Web Services Description Language und UDDI Universal Description Dis covery and Integration Wor07a Ein SOAP Aufruf l sst sich als XML Dokument verstehen welches einen Methodenaufruf beschreibt Die grundlegende Semantik einer SOAP Nachricht entspricht somit im Wesentlichen der eines RPC Aufrufes SOAP Nachrichten k nnen mithilfe verschiedener Protokolle wie HTTP UDP oder SMTP Simple Mail Transfer Protocol bertragen werden Firewallprobleme wie sie im Zusammenhang mit JMS beschrieben wurden k nnen h ufig umgangen wer den wenn HTTP als bertragungsprotokoll gew hlt wird WSDL erlaubt es die 104 KAPITEL 9 ENTERPRISE APPLICATION INTEGRATION durch einen Klienten zugreifbaren Funktionen eines Web Service zu definieren sowie deren Schnittstellen zu beschreiben Im Einzelnen beinhaltet ein WSDL Dokument Angaben iiber Parameter und Riickgabewerte der Funktionen eines Web Service sowie allgemeine Zugr
32. modularen Sprachen wie z B Visual Basic Ada und Modula Die Kapselung allein kann also nicht der Grund f r den Siegeszug der Objektorientierung sein Ein mindestens ebenso wichtiger Aspekt ist die Vererbung die kennzeichnen des Merkmal objektorientierter Sprachen ist Sie erlaubt Spezialisierungen einer Klasse in Form von so genannten Unterklassen zu bilden welche die Struktur und das Verhalten ihrer Oberklasse erben Dies erm glicht zun chst eine Wiederver 25 26 KAPITEL 4 OBJEKTORIENTIERUNG UND UML wendung von Code Methoden der Oberklasse brauchen in den Unterklassen nicht erneut implementiert zu werden Bei Bedarf d rfen ausgew hlte Methoden in ei ner Unterklasse aber wie man sagt berschrieben d h neu implementiert werden Dies erm glicht eine Reihe von m chtigen Programmiertechniken Alle der in Unter kapitel 6 vorgestellten Entwurfsmuster verwenden Vererbung oft in Kombination mit berschreiben von Methoden um die zur L sung der betrachteten Proble me ben tigte Flexibilit t zu gewinnen Vererbung sorgt beispielsweise daf r dass das objektorientierte Gegenst ck zu klassischen Software Bibliotheken die so ge nannten Frameworks flexibler als konventionelle Bibliotheken sind Letztere k nnen ganz oder gar nicht genutzt werden Bei der Verwendung von Frameworks dagegen k nnen die fehlenden oder nicht passenden Methoden durch berschreiben in selbst erstellten Unterklassen erg nzt bzw ersetzt werden so das
33. sie in der eigenen Firma sinnvoll umsetzen In Kapitel 3 wird dann zun chst ein Ansatz zur Sch tzung des Aufwands eines Projekts vorgestellt die Function Point Analyse Sie liefert typischerweise mit ge ringem Aufwand genauere Ergebnisse als ein simpler Vergleich mit abgeschlossenen Projekten oder eine rein erfahrungsbasierte Sch tzung wie man sie h ufig vorfindet Weiterhin wird in diesem Kapitel ein systematisches Vorgehen zur Identifikation von Risiken bei einer Softwareentwicklung sowie zu deren Bewertung und Beherrschung vorgeschlagen Vor dem Hintergrund dass auch heute noch ein erheblicher Prozent satz der Softwareprojekte scheitert ist eine systematische Behandlung der Risiken empfehlenswert In Kapitel 4 werden die Vorteile der objektorientierten Softwareentwicklung her ausgearbeitet Letztere wird zwar in der Praxis vielfach eingesetzt Aber es ist vermutlich nicht jedem klar worin die Vorteile im Einzelnen liegen W hrend bei eingebetteten System wie Waschmaschinen Supermarktkassen und Aufz gen auch klassiche imperative Sprachen wie C nach wie vor ihre Vorz ge haben so k nnen objektorientierte Sprachen wie Java C und C gerade bei gr eren Software systemen und Informationssystemen ihre besseren Strukturierungsm glichkeiten aus Sicht der so genannten Programmierung im Gro en ausspielen Hinzu kommt dass die objektorientierte Softwareentwicklung durch das Vorhandensein einer standardi sierten Modellierungssprache d
34. t ASP NET und bietet eben falls L sungsans tze f r die oben genannten zentralen Aufgaben der Web Programmierung Zudem besitzt ASP NET ein Code Behind Modell das die klare Trennung von Layout und Gesch ftslogik erm glicht e Komponentenbasierung Die Einf hrung von Komponenten erm glicht auch f r Webseiten ein intuitives ereignisbasiertes Programmiermodell mit Steue relementen die einen persistenten Zustand besitzen Komponenten werden bei Java EE nur durch einige wenige Web Frameworks wie JavaServer Fa ces oder Tapestry unterst tzt ASP NET erm glicht ein komponentenbasiertes Programmiermodell durch den Einsatz von serverseitigen Web Controls Gesch ftslogik e Transaktionen Beide Frameworks unterst tzen sowohl automatisches als auch manuelles Transaktionsmanagement e Entfernte Methodenaufrufe Java EE bietet bei entfernten Methodenauf rufen vollst ndige Ortstransparenz weil alle Komponenten ber JNDI ermit telt werden Durch die strikte Verwendung von Schnittstellen wird so auch eine automatische Lastverteilung erm glicht Bei NEI liegt Ortstransparenz 62 KAPITEL 5 SOFTWAREARCHITEKTUREN nur bei expliziter Verwendung von NET Remoting vor Ohne Remoting sind nur lokale Aufrufe m glich Dieser Ansatz bietet nur bedingt Ortstransparenz daf r sind die expliziten lokalen Aufrufe jedoch schneller als bei Methodenauf rufen mit vollst ndiger Ortstransparenz Web Services Beide Frameworks bieten eine gute Integ
35. ufig in speziell f r diese Aufgabe ent wickelten Templatesprachen entwickelt F r jede Zielplattform gibt es jeweils eigene Transformationsregeln Damit in den Modellen plattform spezifische Einstellungen vorgenommen werden k nnen m ssen sie semantisch angereichert werden Dies ge schieht durch so genannte Stereotype mit denen sich Modellelemente wie z B Klas sen und Methoden genauer charakterisieren lassen Wenn beispielsweise eine Klasse Exemplar vom Modellierer mit dem Stereotyp Entity versehen wird vgl Abb 10 1 so bedeutet dies f r eine Transformation des Modells im Hinblick auf die Zielplatt form Enterprise JavaBeans vgl Abschitt 5 2 3 dass diese Klasse als Entit tsklasse realisiert und deren Objekte vom EJB Container verwaltet und mit den zugeh ri gen Tupeln der entsprechenden Datenbanktabelle synchronisiert werden sollen Der in diesem Beispiel generierte Java Code kann wie in Abbildung 10 2 aussehen Ne ben EJB spezifischen Annotationen Entity ManyToOne usw wurden get und set Methoden f r das Attribut inventarnr und die Assoziation zur Klasse Buch an gelegt Die Transformation wird bei oAW durch ein Template in der Sprache xPand 109 110 KAPITEL 10 MODELL GETRIEBENE SOFTWARE ENTWICKLUNG beschrieben Das hier verwendete Template ist in Abbildung 10 3 zu sehen In diesem Template werden einige Hilfsfunktionen wie z B getPackageName getVisibility getStatic getTypeName getAttributeName und isMultiple verwen
36. zur Zusammenf hrung einige Jahre parallel zu diesem entwickelt VORTEILE NACHTEILE Das Standard Framework Umst ndliche ActionForms Gute Dokumentation Keine Unit Tests m glich Gute Tag Bibliothek Quelle Raible Rai07 Tabelle 5 3 Vor und Nachteile des Struts Frameworks 54 KAPITEL 5 SOFTWAREARCHITEKTUREN JavaServer Faces hnlich wie viele andere Web Frameworks basiert JavaServer Faces JSF Sun07b HS06 auf dem Model View Controller Paradigma Der Unterschied zu andern Fra meworks liegt in der Erzeugung der Webseiten welche aus einzelnen Ul Komponenten zusammengesetzt werden Dieser komponentenbasierte Ansatz weist ein h heres Abstraktionsniveau auf und macht die HTML Programmierung zu weiten Teilen berfl ssig VORTEILE NACHTEILE Java EE Standard komplexe Tag Bibliothek Leicht und schnell erlernbar Mehrere konkurrierende Implemen tierungen Viele Komponentenbibliotheken Quelle Raible Rai07 Tabelle 5 4 Vor und Nachteile des JSF Frameworks UI Komponenten besitzen einen Zustand der w hrend eines Request Response Zykluses erhalten bleibt und erzeugen ihre eigene HTML Repr sentation wodurch die Programmierung einer Web Oberfl che deutlich leichter und intuitiver gestaltet wird Dar ber hinaus verf gt JSF ber ein serverseitiges Ereignismodell Hierbei werden die Eingaben des Benutzers auf der Clientseite in Ereignisse auf der Server se
37. 2 in dieser Brosch re verwiesen Da Objekte ihre innere Struktur hinter einer Schnittstelle verbergen kann sich die Implementierung einer Methode ndern ohne dass sich zwangsl ufig die Im plementierung der zugreifenden Klienten ndern muss Dar ber hinaus k nnen Ob jekte aufgrund der objektorientierten Mechanismen der Vererbung und der Poly morphie entsprechend ihrer Klassenzugeh rigkeit beim Aufruf der gleichen Metho de ein v llig unterschiedliches Verhalten zeigen Die zentrale Aufgabe einer kom ponentenorientierten Middleware Plattform besteht demnach darin eine Verbin dung zwischen einem Klienten und einem entfernten Objekt zu etablieren und die Interaktion zwischen diesen zu vermitteln Erg nzend werden von den einzelnen Middleware Systemen zus tzliche zumeist plattform und herstellerspezifische Funk tionen bereitgestellt welche Aspekte wie die Suche und Verwaltung von Objekten die Durchf hrung von Transaktionen oder die Authentifizierung und Autorisierung von Benutzern betreffen Diese sollen an dieser Stelle jedoch nicht weiter vertieft werden Das Hauptproblem nicht nur in RPC basierten Integrationsans tzen sondern auch bei der Verwendung komponentenorientierter Middleware ist die enge Kopp lung zwischen den integrierten Systemen Bei einer Funktionsintegration auf Code oder Komponentenebene kann neue Funktionalit t nur durch Anpassung und an schlie ende Neu bersetzung eines Systems integriert werden Sind die An
38. Aktivitatsdiapramme 3 4 2 4 Sa ae 4 2 6 Weitere UML Diagramme 11 17 17 19 20 Ab 21 21 21 22 vi INHALTSVERZEICHNIS Softwarearchitekturen 39 5 1 Schichtenarchitekturen e 39 5 1 1 Das Client Server Modell e 39 5 1 2 Aufbau von Schichtenarchitekturen 0 40 5 1 3 Vergleich von Schichten Architekturen 42 5 2 Komponentenbasierte Architekturen 2 2 222222 nen 45 31 Komponenten san a o a Na een Beet 46 DD SGORBA A re a a Da nee na 47 Eh laueren le Baal dr Rn weeds Ars aha 49 sicht ANETTE ae a ER de NR en rn Bene 56 5 2 9 Vergleich Java EE und NET 2 222 E er Go ebe A Ae 60 Entwurfsmuster 65 6 1 Erzeugungsmuster EE EENHEETEN 66 6 1 1 Abstrakte Fabrik tags aad et ae Sot een eat ees A 66 6 1 2 Weitere Erzeugungsmuster 2 2 22 nennen 68 6 2 Strukturmuster 2 Hmm 68 6 2 1 Adapter rest ee ns ee ae ee ee E 69 6 2 2 Weitere Strukturmuster e 71 6 3 Verhaltensmuster e 72 6 3 1 Befehl 2 22 Comm nen 72 6 3 2 Beobachter 73 6 3 3 Weitere Verhaltensmuster ooo a a a 75 6 4 Weitere Entwurfsmuster e 76 Testen 77 7 1 Isolation zu testender Einheiten e CE 7 2 Automatisierung des Testens 0 00002 0a ee 79 3 Black Box Lesten 24 2234 2 2 3 22 Ae Ge At ee AE 80 7 4 Glass Box Testen 81 Tools 83 8 1 Versionsverwaltung lt 2 eal 3 8 au a Side Boe es 83 ala Aufgaben a 2 chat a os 2er area 83 8 1 2 Funktionsweise e 84 825 MGB OGIS we zu he cue ee Soi ee ee A e
39. Benutzeroberfl chen Die Aufgaben der Benutzeroberfl che werden dabei folgender ma en auf die drei Komponenten Model View und Controller aufgeteilt das Model speichert die Daten der Anwendung die View ist f r die visuelle Repr sentation der Daten verantwortlich der Controller enth lt die Anwendungslogik der Anwendung und steuert das Zusammenspiel zwischen View und Model Das Struts Framework stellt einen zentralen Controller das ActionServlet be reit Alle Seiten Request werden an den zentralen Controller in Form von Actions die in einer zentralen Konfigurationsdatei definiert werden geschickt Der Control ler ruft die mit einer Action verkn pfte Action Klasse auf die daraufhin das an wendungsspezifische Model manipuliert Anhand eines zur ckgegebenen ActionFor ward Codes kann der Controller die an den Client zu schickende Antwortseite iden tifizieren Von zentraler Bedeutung f r die Funktionsweise des Struts Frameworks ist die oben bereits erw hnte Konfigurationsdatei in der der gesamte Kontrollfluss der Web Anwendung definiert wird Obwohl Struts ein sehr ausgereiftes und popul res Framework ist werden heute immer h ufiger auch neuere leichtgewichtige Frameworks wie JSF Spring MVC oder Tapestry eingesetzt Weitere Verbesserungen sollen mit dem Struts 2 0 Framework das eine Integration von Struts mit dem WebWork Framewok darstellt eingef hrt werden WebWork ist aus dem Struts Framework entstanden und wurde bis
40. Benutzeroberfl chen Man kann Ereignis folgen bestehend aus Klicks Mausbewegungen Textfeldeintr gen usw wie sie bei der Bedienung einer graphischen Benutzeroberfl che anfallen aufzeichnen und zur Durchf hrung eines Tests automatisiert wieder abspielen Hierbei l sst sich dann pr fen ob das System erwartungsgem reagiert Problematisch bei diesem Testen der graphischen Benutzeroberfl che kann die mangelnde Robustheit der Testf lle gegen ber nderungen an der Benutzeroberfl che sein Nur die ausgereifteren Tools erlauben eine Weiterverwendung von Testf llen nach nicht trivialen nderungen an den entsprechenden Fenstern Die oben genannten Tools zum Testen von Webappli kationen sind hier deutlich robuster da HTML einen gezielteren Zugriff auf Be dienelemente zul sst als das die Pixeldarstellung eines Fensters einer konventionel len graphischen Benutzeroberfl che bietet Dies ist nicht nur ein weiteres Argument f r Webapplikationen sondern er ffnet auch die M glichkeit in der Testphase mit einer Weboberfl che zu arbeiten die dann sp ter ggf durch eine konventionelle gra phische Benutzeroberfl che ersetzt bzw hierum erg nzt wird Insbesondere bei NET und den dort vorliegenden hnlichkeiten zwischen Webforms und konventionellen Fenstern sollte dies mit berschaubarem Aufwand realisierbar sein 7 3 Black Box Testen F r das Erstellen von Testf llen gibt es im Wesentlichen zwei Ans tze Black Box Testen und Gla
41. E und NET ge geniibergestellt und wichtige Gemeinsamkeiten und Unterschiede zwischen beiden 5 2 KOMPONENTENBASIERTE ARCHITEKTUREN 61 Frameworks beschrieben CORBA wird aufgrund der relativ geringen Verbreitung und abnehmenden praktischen Relevanz nicht in diesen Vergleich mit einbezogen Abbildung 5 13 stellt die Architekturen einer Java EE und einer NET Anwendung vergleichend gegen ber Gegenstand des Vergleichs sind die Pr sentationsschicht die Gesch ftslogikschicht und die Plattformen die den beiden Frameworks zugrun de liegen Die Unterschiede innerhalb der einzelnen Schichten werden im Folgenden genauer beschrieben Pr sentationsschicht e HTML Erzeugung Die dynamische Generierung von HTML Seiten geschieht bei Java EE mithilfe von Servlets oder JSP Seiten Das NET Framework ver wendet f r diese Aufgabe ASPX Seiten die von ihrem Aufbau in etwa mit JSP Seiten vergleichbar sind Hinsichtlich der automatischen Integration von JavaScript Code zur Client seitigen Pr fung von Benutzereingaben zeigt sich dass die ASPX Technologie etwas komfortabler ist e Web Frameworks F r Java EE gibt es eine Vielzahl von Frameworks die JSPs bzw Servlets um weitere generische L sungen wie Sitzungsverwaltung Sicherheit Validierung Internationalisierung und Seitennavigation erweitern Dar ber hinaus besitzen die Frameworks unterschiedliche Ans tze zur Tren nung von Layout und Gesch ftslogik Das Web Framework der NET Plattform hei
42. Kan ale Dee at 86 8 2 1 Funktionsweise e 86 82 2 Auswahl von CASE Plattformen 86 8 2 3 Test Werkzeuge 4 2 fo ok sa ee ana a Dre Er 88 8 2 4 Werkzeuge zur Architekturtiberwachung 88 INHALTSVERZEICHNIS 9 Enterprise Application Integration 9 1 Heterogene Systemlandschaften 9 2 Motivationen f r IntegrationsmaBnahmen 9 3 EAl Architekturkonzepte 02 0002 eee 9 3 1 Punkt zu Punkt ntegration 2 see ete eS 9 3 2 Hub and Spokes Integration 0 9 33 Eer A Ar Goad Geek hed er de Se Ske u 9 4 Integrationsebenen 9 4 1 Integration auf Datenebene 0 4 9 4 2 Integration auf Funktionsebene 9 4 3 Integration ber die Benutzerschnittstelle 2 9 5 Zusammenfassende Bewertung 10 Modell getriebene Software Entwicklung vi 89 90 90 92 92 93 93 94 94 96 105 107 109 viii INHALTSVERZEICHNIS Abbildungsverzeichnis 2 Wasserf llm dell e 5 8 2 5 4 4 a Eech o PS SER OY PERS 7 2 2 Rational Unified Process 3 aa aa aa Arie ale Able a 10 2 3 Extreme Programming au arte rear 11 3 1 Die sechs Schritte des Risikomanagements 20 4 1 Beispiel Klasse Rechteck im Klassendiagramm 28 4 2 Beispiel Klassenhierarchie und zugeh riger Java Code 30 4 3 Klassendiagramm mit Assoziation e 31 4 4 Klassendiagramm mit Aggregation und Komposition 31 4 5 Klassendiagramm f r ein
43. Krankenhaus Softwaresystem 32 4 6 Klassendiagramm f r arithmetische Ausdr cke 33 4 7 Beispiel Anwendungsfall Diagramm ooa oa a a 34 4 8 Sequenzdiagramm f r die Auswertung eines arithmetischen Ausdrucks 35 4 9 Aktivit tsdiagramm f r die Fr hst ckszubereitung 37 5 1 Das Client Server Modell 4 5 IER 40 5 2 Strikte lineare und baumartige Schichtenstruktur 2 41 5 3 Schichtenarchitektur f r Desktop Anwendungen 43 5 4 Schichtenarchitekturen f r Web Anwendungen 44 5 5 Multi Channel Architektur ooa nn 46 5 6 Architektur eines CORBA Systems 48 5 7 Entfernter Methodenaufruf mit CORBA 48 5 8 Architektur einer Java EE Anwendung 50 5 9 Aufbau einer EJB Komponente 51 5 10 Common Language Infrastructure 2 2 2 2m a 57 5 11 Architektur des NET Frameworks 00 97 5 12 Aufbau einer COM Komponente 2 22 nn nn 58 5 13 Vergleich Java EE und NET Architektur 0 60 6 1 Entwurfsmuster Abstrakte Fabrik am Beispiel 2 2 2 2 67 6 2 Entwurfsmuster Adapter am Beispiel 69 6 3 a Adapter va as hae Ed a Ri En a Ra ved Os 70 ix ABBILDUNGSVERZEICHNIS 6 4 Ob jekt Ada pt t yx act yk ac oar heed meh ee gree hn Seats A ate eh 6 5 Entwurfsmuster Befehl am Beispiel 6 6 Entwurfsmuster Befehl ere dE besen a Zeile Ge eg te 6 7 Objekt mit unterschiedlichen Visua
44. Nachdem die Risikopl ne aufgestellt wurden werden die dort festgelegten Akti vit ten zur Risiko Minimierung ausgef hrt Beispielsweise wird ein Prototyp erstellt oder es werden die Anforderungen gelockert 22 KAPITEL 3 MANAGEMENT ASPEKTE Risikoelement Risikomanagement Techniken 1 Personelle Defizite qualifizierte Mitarbeiter einstellen Teams zusammenstellen 2 Unrealistische Termin und Kostenvorgaben detaillierte Kosten und Zeitsch tzung mit mehreren Methoden Produkt an Kostenvorgaben orientieren Inkrementelle Entwicklung Wiederverwendung von Software Anforderungen streichen Features 3 Entwicklung von falschen Benutzerbeteiligung Funktionen und Eigenschaften Prototypen Fr hzeitiges Benutzerhandbuch 4 Entwicklung der falschen Prototypen Benutzungsschnittstelle Aufgabenanalyse Benutzerbeteiligung 5 Vergolden Anforderungen streichen Realisierung nicht geforderter Prototypen Kosten Nutzen Analyse Entwicklung an den Kosten orientieren 6 Kontinuierliche Anforderungs nderungen hohe Anderungsschwelle Inkrementelle Entwicklung nderungen auf sp tere Erweiterungen verschieben erledigten Auftr gen 7 Defizite bei extern Leistungstest gelieferten Komponenten Inspektionen Kompatibilit tsanalyse 8 Defizite bei extern Prototypen Fr hzeitige berpr fung Vertr ge auf Erfolgsbasis 9 Defizite in der E
45. Rechteck mit der Ausnahme weiter so wird der Fehler durch den entsprechenden Ablauf behandelt Aktivit ten mit einem Gabel hnlichen Symbol werden durch eigene Aktivit ts diagramme verfeinert Aktivit tsdiagramme k nnen horizontal in Bereiche unterteilt werden die jeweils einem ber dem Bereich angegebenen Bearbeiter zugeordnet werden Dieser Bear beiter ist f r die Ausf hrung der Aktivit tsfolge in seinem Bereich verantwortlich 4 2 UNIFIED MODELING LANGUAGE 37 Fr hst cksgetr nkezubereiter Koch Anfangsknoten Partition Fallunterscheidungsknoten e kein Kaffee verfeinerte Aktivit t Verzweigungskonten Kaffee vorhanden d Ausnahme behandlung Ausnahmekante nicht behandelte Ausnahme a Objektflussknoten Aktivit ts en Tase Licht geht aus Vereinigungskonten Fallunterscheidungsende ER Kaffee Endknoten Abbildung 4 9 Aktivit tsdiagramm f r die Fr hst ckszubereitung Abb 4 9 zeigt ein Aktivit tsdiagramm f r die Zubereitung eines Fr hst cks Das Diagramm besteht aus zwei Bereichen der linke Bereich modelliert die Bereitstel lung eines Getr nks durch einen Fr hst cksgetr nkezubereiter w hrend im rechten Bereich die Zubereitung von Muesli durch einen Koch dargestellt wird Der Ablauf wird gleich am Anfang in die beiden genannten Teilabl ufe aufgespalten und am Ende wieder zusammengef hrt Im linken B
46. UER Andreas GNZEL Holger Data Warehouse Systeme Architek tur Entwicklung Anwendung 2 Heidelberg dpunkt Verlag 2001 Bij 5NKE Jana JOHANNES Hermann ODBC Optimaler Einsatz im Client Server Umfeld 1 Mnchen Addison Wesley 1997 BURKE Bill MONSON HAEFEL Richard Enterprise JavaBeans 3 0 5 O Reilly Media 2006 BOEHM Barry W Software Risk Management 1 IEEE Computer Society Press 1989 113 114 Boe91 Bor07 CHK06 Co107 EFH 07 ELO7 Fai94 Fej08 Fow05 GHJV96 Hen06 H0106 LITERATURVERZEICHNIS BOEHM Barry W Software Risk Management Principles and Practices In IEEE Software 8 1991 Nr 1 S 32 41 BORLAND Borland Together http www borland com us products together index html Abrufdatum 17 07 2007 CDKM02 CoULOURIS George DOLLIMORE Jean KINDBERG Tim MUHR Judith Verteilte Systeme Konzepte und Design 1 Mnchen Pearson Studium 2002 CONRAD Stefan HASSELBRING Wilhelm KOSCHEL Arne Enter prise Application Integration Grundlagen Konzepte Entwurfsmuster Praxisbeispiele 1 Mnchen Spektrum Akademischer Verlag 2006 COLLABNET Subversion http subversion tigris org Abrufda tum 17 07 2007 EFFTINGE Sven FRIESE Peter HAASE Arno KADURA Cle mens KOLB Bernd Mororr Dieter THOMS Karsten V LTER Markus open Architecture Ware User Guide Version 4 2 http www eclipse org gmt oaw doc 4 2
47. UG zertifizierten Be rater zur ckgreifen Die FPA eignet sich nicht nur zur Sch tzung des Aufwands von Software Projek ten sondern u a auch zur Bewertung von Altsystemen sowie von Angeboten von Auftragnehmern und bei Make or Buy Entscheidungen Im Gegensatz zu lteren Verfahren die mit unbefriedigendem Erfolg versucht haben den Aufwand eines Projekts auf der Basis von ebenfalls unbekannten und gesch tzten Codezeilen vorherzusagen basiert die FPA auf den fachlichen Anforde rungen wie sie in einem Lasten oder Pflichtenheft formuliert sind Zur quantitativen Bestimmung des fachlichen Funktionsumfangs einer IT Anwendung zerlegt die FPA diese aus Sicht der Anwender in ihre Elementarprozesse Ein Elementarprozess ist die aus Anwendersicht kleinste sinnvolle und in sich abgeschlossene Aktivit t die mit dem System durchf hrbar ist Unterschieden werden die Elementarprozesse Einga 17 18 KAPITEL 3 MANAGEMENT ASPEKTE Eingaben Ausgaben und Abfragen b e 1 4 5 15 gt 16 b e 1 4 6 19 gt 20 0 1 e e m 0 1 e e m 2 e m k 2 3 e m k gt 3 m k k gt 4 m k k Tabelle 3 1 Zuordnung von Komplexit tsstufen einfach e mittel m komplex k f r Eingaben Ausgaben und Abfragen abh ngig von der Anzahl e der betrof fenen Datenelemente und der Anzahl b der betroffenen Datenbest nde f e 1 19 20 50 gt 51 1 e e m 2 5 e m k gt 6 m k k Tabelle 3 2 Z
48. UREN 45 SCHICHTENARCHITEKTUREN MERKMAL KLASSISCH WEB Plattform Eingeschr nkt da Desk Gegeben Es m ssen u U unabh ngigkeit top Clients oft plattfor jedoch unterschiedliche Web mabh ngig sind Browser unterst tzt werden Verteilung Aufw ndig da Client Leicht keine anwendungsspe Software auf dem Client zifische Software auf dem Web installiert werden muss Client zu installieren Skalierbarkeit Gut Gut Wartbarkeit Eingeschr nkt da Client Gut Software evtl neu installiert werden muss Sitzungs Leicht da eine permanente u a durch Cookies verwaltung Verbindung besteht angelehnt an Balzert Bal01 S 703ff Tabelle 5 2 Vergleich von Schichtenarchitekturen Abbildung 5 5 zeigt eine Multi Channel Architektur die ber die verschiedenen Module der Pr sentationsschicht unterschiedliche Zugriffsm glichkeiten auf das Sys tem bietet Die Dienste des Systems k nnen ber einen Desktop einen Web oder einen Web Service Client in Anspruch genommen werden Aufgrund der Schichten architektur greifen alle Module der Pr sentationsschicht auf die gleiche Gesch ftslogik zu Gesch ftslogik und Datenhaltung m ssen daher nur einmalig implementiert wer den wodurch der Aufwand f r die Erweiterung des Systems um neue Zugangsm g lichkeiten minimiert wird 5 2 Komponentenbasierte Architekturen In der komponentenbasierten Softwareentwicklung wird ein Softwaresystem a
49. Vielzahl von Werkzeugen zur ckgegriffen werden um u a Aspekte wie Ver sionsverwaltung Modellierung Implementierung und Testen zeitgem handhaben zu k nnen Hierauf wird in Kapitel 8 eingegangen Ein Thema mit dem sich z Z viele Firmen besch ftigen ist die so genannte Enterprise Application Integration d h die Integration der verschiedenen in ei nem Unternehmen vorhandenen Softwaresysteme Ziel ist die Unterst tzung neuer Gesch ftsprozesse oder die Beschleunigung vorhandener Prozesse Welche Ans tze hierf r in Frage kommen und welche Vor und Nachteile diese haben wird in Kapitel 9 ausgef hrt Kapitel 10 besch ftigt sich mit der Modell getriebenen Softwareentwicklung Hierbei wird Code zum gro en Teil oder manchmal sogar vollst ndig aus Modellen meist UML Modellen generiert Dies hat nicht nur den Vorteil dass Modelle und Code konsistent bleiben sondern erm glicht auch eine erhebliche Steigerung der Pro duktivit t in Situationen in denen h ufig neuen Versionen oder kundenspezisfische oder plattformspezifische Varianten eines Softwaresystems erstellt werden m ssen Auch wenn bereits einige Firmen auch im M nsterland die Modell getriebene Soft wareentwicklung produktiv einsetzen so handelt es sich hier um eine Technologie die ihren Zenit noch vor sich hat Es ist davon auszugehen dass sie in den n chsten Jahren an Bedeutung gewinnen wird Ihr Nachteil liegt darin dass sie mit einem erheblichen Einarbeitungsaufwan
50. XPAND Root FOREACH this allOwnedElements gt lt ENDDEFINE gt DEFINE Root FOR uml Element gt lt ENDDEFINE gt Abbildung 10 3 xPand Transformationsregeln im Buch Beispiel 100 aus den UML Modellen erzeugen Wol08 Im Wesentlichen wurden hierbei Klassendiagramme zur Datenmodellierung und Aktivit tsdiagramme zur Modellie rung der Navigationsstruktur in der webbasierten Benutzeroberfl che benutzt Ex emplarisch wurde so ein Bibliotheksverwaltungssystem vollkommen automatisch aus UML Modellen erzeugt Bei algorithmisch anspruchsvolleren Anwendungen wird ei ne Codegenerierung zu 100 nicht m glich sein jedoch kann auch hier vielfach ein gro er Teil erzeugt werden Nur der verbleibende algorithmisch komplexere Rest muss dann von Entwicklern in so genannten gesch tzten Regionen per Hand erstellt werden Die Modell getriebene Softwareentwicklung ist ein noch junger und in Entwick lung befindlicher Zweig der Softwareentwicklung Gleichwohl wird dieser Ansatz auch von einigen Firmen im M nsterland bereits produktiv eingesetzt und bietet auch f r andere erhebliches Potenzial zur Steigerung der Produktivit t Zu beachten 112 KAPITEL 10 MODELL GETRIEBENE SOFTWARE ENTWICKLUNG ist hierbei allerdings dass der Ansatz einen nicht unerheblichen Einarbeitungsauf wand erfordert und nur geeignet ist wenn die oben erw hnten Rahmenbedingungen viele Versionen bzw Varianten eines Systems f r die jeweils gleichen Plattformen gegeben si
51. agramme Anwendungsfalldiagramm Sequenzdiagramm und Aktivit tsdiagramm 4 2 1 Klassendiagramme Klassen und ihre Beziehungen werden in der UML durch so genannte Klassendia gramme dargestellt Klassenname Attributtyp Zusicherung Rechteck Attribute breite int breite gt 0 Sichtbarkeit hoehe int 4 Initialwert private public getBreite int protected getHoehe int setBreite b int setHoehe h Parameter Operationen Name Typ Initialwert Methoden ae flaeche Abbildung 4 1 Beispiel Klasse Rechteck im Klassendiagramm 4 2 UNIFIED MODELING LANGUAGE 29 4 2 2 Darstellung einer Klasse im Klassendiagramm Die grafischen Darstellung einer Klasse in einem so genannten UML Klassen diagramm besteht aus einem dreigeteilten Rechteck s Abb 4 1 Im oberen Teil steht der Name der Klasse im mittleren die Attribute und im unteren die Metho den Der mittlere und untere Teil k nnen weggelassen werden wenn diese Details nicht betrachtet werden sollen Die Attribute und Methoden sowie deren Parameter k nnen durch eine Typangabe z B int n her charakterisiert werden In der gra fischen Darstellung wird der Typ vom zugeh rigen Bezeichner durch einen Doppel punkt getrennt z B breite int nitialwerte k nnen hinter einem angef gten einem Attribut zugeordnet werden z B hoehe int 4 Zus tzliche Be dingungen Voraussetzungen oder Regeln die die
52. angen ist es daher sinnvoll sich die Aufgaben innerhalb der einzelnen Phasen ge nauer anzuschauen Ein Verzeichnis von CASE Werkzeugen findet sich bei Lam07 F r einen modellgetriebenen Softwareentwicklungsprozess gibt es u a kommerziell erh ltliche Plattformen wie die Rational Suite IBMOTb von IBM oder Borland Together Bor07 von Borland Es existieren aber auch kostenfreie L sungen wie StarUML Sta07 oder EclipseUML Omo07 88 KAPITEL 8 TOOLS 8 2 3 Test Werkzeuge Insbesondere was den Werkzeugeinsatz beim Testen angeht gibt es bei vielen Fir men noch Nachholbedarf Hier l sst sich sowohl die Durchf hrung von Tests als auch die Erstellung von Testf llen zumindest teilweise automatisieren Das Spektrum er streckt sich bez glich der automatisierten Testdurchf hrung von frei verf gbaren Tools f r das Unit Testing wie JUnit Lin05 JUn08 f r Java und Varianten hier von f r andere Sprachen z B NUnit f r C bis hin zu kommerziellen Werkzeugen wie dem IBM Rational TestManager Rat08b und HP Functional Testing HPO8a die neben funktionalen Tests auch das Testen von Benutzerschnittstellen durch Auf zeichnen und Abspielen von Ereignisfolgen unterst tzen Varianten von JUnit wie HttpUnit Fej08 und Cactus Pro08 unterst tzen ebenso wie z B Selenium ope08 und Watij Wat08 das Testen von Webapplikationen Schlie lich gibt es Werkzeuge f r das Performance Testing die festzustellen ge statten ob Leistungsanford
53. ass die beiden Klassen assoziert sind Im Klassendiagramm wird dies dadurch visualisiert dass die beiden Klassen durch eine Linie verbunden werden An dieser Linie kann annotiert werden mit wie vielen Objekten der Nachbarklasse ein Objekt der betrachteten Klasse verbunden ist steht hierbei f r beliebig viele Objekte n m f r mindestens n und h chstens m Nachbarobjekte Weiterhin kann eine As soziation mit einem Namen und mit Namen f r die Rollen jeder Klasse auch Sicht der Nachbarklasse annotiert werden Eine Assoziation wird h ufig dadurch implementiert dass jede beteiligte Klasse Attribute vom Typ der Nachbarklasse bekommt Gibt es nur h chstens ein Nachba robjekt so reicht ein einzelnes Attribut vom Typ der Nachbarklasse Bei mehreren oder beliebig vielen Nachbarobjekten bekommt die Klasse blicherweise als Attribut eine Kollektion Array Liste Menge von Objekten vom Typ der Nachbarklasse Kardinalit t Assoziationsname public class Rechteck protected Bild bild d enthalt public Rechteck int b 7 0 1 int h Bild abb breite b hoehe h bild abb breite hoehe flaeche Komponente Bild Rollennamen Abbildung 4 3 Klassendiagramm mit Assoziation In Abbildung 4 3 wird dargestellt dass ein Bild beliebig viele Rechtecke enth lt w hrend ein Rechteck in h chstens einem Bild vorkommt 4 hat gt 2 Fahrrad E Pai 4 hat gt E Abbildung 4 4 Klassendiagramm mit
54. ationslogik z B zur elementa ren Pr fung der Eingabe und sendet Benutzereingaben an den Web Server zur ck Mit Ausnahme der Aufteilung der Pr sentationsfunktion zwischen Web Browser und Web Server sind die Web Architekturen analog zu den klassischen Schichten architekturen Wie in Abbildung 5 4 dargestellt besitzen Web Architekturen daher blicherweise zwei drei oder vier Schichten F r die Wahl der geeigneten Schichten anzahl gelten die gleichen Argumente die auch bei der Betrachtung der klassischen Schichten Architekturen genannt wurden Vor allem f r komplexere Systeme ist da her eine Architektur mit vier oder mehr Schichten zu bevorzugen Der Abschnitt Multi Channel Architekturen zeigt welche Vorteile die Verteilung der einzelnen Sys temfunktionen auf unterschiedliche Schichten mit sich bringt 44 KAPITEL 5 SOFTWAREARCHITEKTUREN Web Client Web Client Web Client Prasentation Integrierte EE Webzugangs ee E EE LC schicht und Mono Gesch fts G haft Verarbeitung lithisches logik esc a S Server System logik Datenhaltung Datenbank Datenbank 2 Schichten 3 Schichten 4 Schichten Abbildung 5 4 Schichtenarchitekturen f r Web Anwendungen Vergleich Wie bereits erw hnt liegt der Unterschied zwischen klassischen Architekturen und den Web Architekturen in der Umsetzung der Pr sentationsfunktion W hrend die klassischen Architekturen eine Desktop Anwendung benutzen w
55. b Position Punkt position aendere dx dy getPosition Punkt verschiebe dx double dy double abst rakte Methoden flaeche double public abstract double flaeche zeichne public abstract void zeichne public class Rechteck extends Figur double breite hoehe public Rechteck double breite double hoehe Punkt pos this breite breite breite double mitte double this hoehe hoehe hoehe double radius double super pos public double flaeche return breite hoehe public void zeichne Public class Kreis extends Figur analog zu Rechteck Abbildung 4 2 Beispiel Klassenhierarchie und zugeh riger Java Code Abbildung 4 2 zeigt eine sehr einfache Vererbungshierarchie am Beispiel von geometrischen Figuren sowie deren Implementierung in Java Die gemeinsamen At tribute und Methoden von konkreten Figuren wie Rechtecken und Kreisen werden in einer abstrakten Oberklasse Figur zusammengefasst von der keine Instanzen gebildet werden k nnen Jede Figur ist also entweder ein Rechteck oder ein Kreis Alle Figuren k nnen gezeichnet werden und besitzen eine Fl che jedoch unterschei den sich die Implementierungen dieser Methoden da sie in den Unterklassen jeweils 4 2 UNIFIED MODELING LANGUAGE 31 geeignet berschrieben werden Assoziationen Verweisen Objekte einer Klasse dauerhaft auf Objekte einer anderen Klasse so sagt man d
56. beste L sung war Zu den h ufig beanstandeten M ngeln fr herer EJB Spezifikationen z hlen e Geringe Flexibilit t Die Dienste des Frameworks standen nur den EJB Komponenten zur Verf gung Es war nicht m glich einzelne Dienste au erhalb des Frameworks d h ohne vollst ndige Implementierung einer EJB L sung zu nutzen e Aufw ndiges Testen Das Testen von EJB Komponenten konnte mitunter recht teuer und zeitaufw ndig sein da sich einzelne Komponenten nicht au er halb des Frameworks testen lie en Auch f r das Testen kleiner nderungen musste deshalb jedes Mal ein vollst ndiges Deployment durchgef hrt werden e Komplexit t Zu einer EJB Komponente geh rten neben der EJB Klasse mehrere Schnittstellen f r entfernte lokale und administrative Zugriffe auf die Komponente sowie ein Deployment Descriptor Zudem mussten Methoden zum Management des Lebenszyklusses implementiert werden auch wenn diese nicht ben tigt wurden 52 KAPITEL 5 SOFTWAREARCHITEKTUREN Mit den in der EJB Spezifikation 3 0 eingef hrten Neuerungen wird versucht diese Kritikpunkte zu beheben um die Produktivit t bei der Anwendungsentwicklung im Vergleich zu fr heren Versionen zu steigern Zu den wichtigsten Neuerungen geh ren e POJOs Die EJB Klassen m ssen nun keine bestimmten Klassen oder Schnitt stellen des Frameworks mehr erweitern bzw implementieren Das hei t alle durch den Anwender implementierten Objekte sind POJOs Plain Old Java Obje
57. ces for Remote Portlets OASO07b beschreibt wie WSRP kompa tible Portale Anwendungen und Inhalte mithilfe standardisierter Web Services dy namisch integrieren konnen Im Unterschied zu Web Services erlaubt WSRP nicht nur Inhalte und Anwendungslogik sondern auch Darstellungselemente Markup Fragmente zu ver ffentlichen und zu konsumieren Auf diese Weise k nnen Portal betreiber flexibel Angebote nebst ihrer Pr sentation aus verschiedenen organisa tionsinternen und externen Quellen integrieren und dem Benutzer bereitstellen 9 5 Zusammenfassende Bewertung Verglichen mit einer Integration auf Funktionsebene l sst sich eine Datenintegration relativ einfach bewerkstelligen Dies liegt nicht zuletzt daran dass hierf r ein breit gef chertes Angebot an ausgereiften Integrationstechnologien zur Verf gung steht Eine Datenintegration ist daher vor allem dann zu empfehlen wenn ein lesender Zugriff auf die Daten einer Anwendung ben tigt wird Soll ber eine Integration der zugrunde liegenden Datenbasis auch schreibend auf die Daten einer Anwendung zu gegriffen werden so muss mit Problemen durch semantische Heterogenit ten gerech net werden So ist es zum Beispiel denkbar dass eine Anwendung Datens tze in die Datenbank einer Zielanwendung eintr gt die durch diese nicht korrekt interpretiert werden k nnen Eine Integration auf Datenebene verleitet dazu in Ermangelung ei nes Zugriffs auf die Verarbeitungslogik einer Anwendung diese
58. chdem ob sie einen Desktop Client oder einen Web Client als Frontend besitzt Es k nnen jedoch auch beide Varianten in einer Anwendung kombiniert werden Ein Java EE Server umfasst einen Web Server und einen so genannten Applica tion Server Der Web Server stellt die Laufzeitumgebung f r Servlets und JavaServer Pages JSPs die dazu dienen die Webzugangsschicht zu realisieren sie nehmen HTTP Anfragen entgegen und generieren dynamisch HTML Seiten Falls die Be nutzerschnittstelle der Anwendung ausschlie lich ein Desktop Client ist entf llt der Einsatz eines Web Servers Der Application Server stellt die Laufzeitumgebung f r die Gesch ftslogikkomponenten die Enterprise JavaBeans EJBs zur Verf gung Die Gesch ftsprozesse werden dabei durch spezielle EJBs n mlich Session Beans und Message Driven Beans implementiert wobei die Session Beans der Umsetzung von synchronen und die Message Driven Beans der Umsetzung von asynchronen Prozessen dienen Als Datencontainer f r die Gesch ftsdaten dienen die so geann ten Entities fr her Entity Beans dies sind leichtgewichtige POJOs Plain Old Java Objects die durch einen Entity Manager auf die Eintr ge einer relationalen Datenbank abgebildet werden d h es wird daf r gesorgt dass jedes Entity Objekt 50 KAPITEL 5 SOFTWAREARCHITEKTUREN JEE Client Web Client Prasentation EE JSP Servlets Application Server Application Server Session Beans Session Beans Verarbeitung und Message und M
59. che sind die syntaktischen und semantischen Heterogenit ten welche sich aus den spezifischen Anforderungen der einzelnen Anwendungen ergeben Unterschiede auf Daten und Schemaebene ergeben sich durch die Nutzung verschiedener Attribute eines Daten objektes unterschiedliche Datentypen Bezeichnungen Ma einheiten oder Werte bereiche sowie die verschiedenartige Anwendung von Abstraktionsmechanismen wie der Vererbung Um die Datenbest nde verschiedener Anwendungen im Zuge einer Integration zusammenzuf hren m ssen die Heterogenit ten durch Transformation der Daten berwunden werden Eine Transformation kann dabei ausgehend vom Datenmodell einer Datenquelle auf das Datenmodell eines Zielsystems oder auf ein verallgemeinertes f deriertes Datenmodell stattfinden F r die Umsetzung einer Datenintegration bieten sich verschiedene Technologien wie JDBC Java Database Connectivity ME00 ODBC Open Database Connec tivity BJ97 Datentransformationsdienste OLAP Online Analytical Processing Oeh00 und Data Warehousing BGO1 an Eine direkte Vergleichbarkeit der Tech nologien ist nicht gegeben da der Funktionsumfang sehr stark variiert W hrend sich die Funktionalit t von JDBC und ODBC darauf beschr nkt eine definierte und uni versell verwendbare Schnittstelle f r den Zugriff auf verschiedene Datenbanksysteme 96 KAPITEL 9 ENTERPRISE APPLICATION INTEGRATION bereitzustellen bieten Datentransformationsdienste und Data Warehouse Sys
60. chtzeitleistung Simulation Leistungstests Modellierung Prototypen Instrumentierung Tuning 10 Uberfordern der Software Technik Technische Analyse Kosten Nutzen Analyse Prototypen Tabelle 3 4 Typische Risiken einer Software Entwicklung 3 2 6 Risiko berwachung Die Fortschritte der Risiko Minimierung m ssen st ndig berwacht werden da mit bei Abweichungen unmittelbar korrigierende Ma nahmen durchgef hrt werden k nnen Eine bew hrte Technik zur Risiko berwachung stellt die Verfolgung der Top 10 Risiken dar welche es dem Manager erm glicht sich jeweils auf die kriti schen Risikoelemente zu konzentrieren Die Verfolgung der Top 10 Risiken beinhal tet folgende Schritte 1 Sortieren der Risikoelemente nach ihrer Priorit t 2 Definieren von regelm igen berpr fungsterminen 3 Erstellen eines Fortschrittsbericht im Vergleich zum vorhergehenden Termin gt gezieltes Beseitigen der aktuellen Risikoelemente 3 2 RISIKO MANAGEMENT 23 Die Risikoelemente werden regelm ig neu bewertet was zur Folge hat dass ei nige der Risikoelemente eine niedrigere Priorit t erhalten oder ganz verschwinden w hrend andere h here priorisiert werden oder neu in die Liste aufgenommen wer den 24 KAPITEL 3 MANAGEMENT ASPEKTE Kapitel 4 Objektorientierung und Unified Modeling Language Die Objektorientierung OO hat sich heute in der Softwareentwicklung weitgehend d
61. cts und besitzen somit keine direkten Laufzeitabh ngigkeiten vom EJB Container Dies f hrt zu einer Komplexit tsreduktion bei den EJB Klassen und erm glicht zudem auch das Testen von Klassen au erhalb des EJB Contai ners Spezielle Data Transfer Objekte zur Weitergabe von Ergebnissen an die Pr sentations oder Webzugangsschicht sind nicht mehr erforderlich e Leichtgewichtiges O R Mapping EJB 3 0 umfasst ein neues Persistenz Framework die Java Persistence API JPA f r das so genannte objektrela tionale Mapping O R Mapping JPA bildet leichtgewichtige Entity Objekte POJOs auf die Eintr ge einer relationalen Datenbanktabelle ab Ein Entity Objekt entspricht dabei einem Tupel in einer relationalen Datenbanktabelle Das Framework sorgt f r Konsistenz zwischen Objektmodell und Datenbank indem es nderungen an den Entity Objekten in die Datenbank bernimmt JPA ist auch ohne einen EJB Container nutzbar und ersetzt die schwergewich tigen Container abh ngigen EntityBeans e Dependency Injection Besitzt eine Komponente Abh ngigkeiten zu ande ren Komponenten so werden diese Abh ngigkeiten nicht durch die Implemen tierung der Komponente festgelegt sondern ber einen Methodenaufruf zur Laufzeit in die Komponente injiziert Dieser Ansatz reduziert die Abh ngig keiten zwischen den Komponenten und erh ht gleichzeitig die Wartbarkeit und Wiederverwendbarkeit der Komponenten e Komplexit tsreduktion Neben den bereits erw hnt
62. d Enterprise JavaBe ans in Verbindung mit RMI sind an die Verwendung der Programmiersprache Java gebunden Die Integration von Fremdsystemen die nicht in Java geschrieben sind ist m glich l sst sich jedoch nur mit zus tzlichem Aufwand realisieren CORBA bietet lediglich eine Spezifikation ohne konkrete Implementierung Die verf gbaren Imple mentierungen weisen dabei herstellerspezifische Erweiterungen und Besonderheiten auf weshalb die Interoperabilit t zweier Implementierungen oftmals nur sicher gestellt werden kann indem auf die Nutzung derartiger Erweiterungen verzichtet wird Dar ber hinaus setzt der objektorientierte Ansatz von CORBA implizit vor aus dass die zu integrierenden Systeme in einer Sprache implementiert wurden die dieses Paradigma unterst tzt Sollen Funktionen und Daten integriert werden die mit einer Skriptsprache wie Perl oder PHP erstellt wurden so sind diese zun chst durch einen so genannten Wrapper vgl Adapter Muster in GHJV96 in ein Ob jekt zu kapseln hnlich wie der RPC Mechanismus basiert komponentenorientierte Middleware auf einem synchronen Kommunikationsmodell Nachrichtenbasierte Middleware Plattformen Im Unterschied zu RPC und RMI unterst tzen nachrichtenbasierte Middleware Plattformen engl Message Oriented Middleware MOM sowohl synchrone als auch asynchrone Kommunikation Dadurch eignen sie sich gleicherma en f r den Aufruf von Funktionen wie auch f r die unidirektionale bertragun
63. d verbunden ist Tabelle 1 1 fasst die behandelten Technologien Ma nahmen und Ans tze zusam men und gibt an wo diese besonders geeignet sind Die Darstellung in der Tabelle ist aus Platzgr nden etwas pauschal Eine genauere Erl uterung finden Sie in den jeweiligen Kapiteln Die Autoren dieser Brosch re sind an Ihren Anregungen und Anmerkungen sehr interessiert Falls Sie solche haben schicken Sie sie bitte per Email an kuchen uni muenster de KAPITEL 1 EINLEITUNG Technologie Ansatz Wo wann geeignet Prozessmodelle ftir die Software Entwicklung Wasserfallmodell bei kleineren und ggf mittleren Projekten mit wenig innovativem Charakter Extreme Programming bei kleinen und mittleren Projekten mit innovativem Anteil und sich w hrend der Entwicklung wandelnden Kundenw nschen Unified Process bei mittleren und gr eren Projekten mit innovativem Anteil inbesondere das iterative Vorgehen ist zur Risi koreduktion empfehlenswert Aufwandsabsch tzung und Risiko Management Function Point Methode falls Umrechnung von Function Points in Mitarbeiter monate aus abgeschlossenen Projekten bekannt Risiko Management bei Projekten mit innovativem Charakter und oder neuen Technologien oder Plattformen Software Entwicklungsparadigmen und Modellierung Objekt Orientierung bei Informationssystemen weniger geeignet bei man chen eingebetteten Systemen UML immer
64. datum 11 04 2008 OASIS ORGANIZATION FOR THE ADVANCEMENT OF STRUCTURED INFORMATION STANDARDS Web Services Business Process Executi on Language Version 2 0 http docs oasis open org wsbpel 2 0 wsbpel v2 0 pdf Abrufdatum 19 09 2007 LITERATURVERZEICHNIS 117 OAS07b OASIS ORGANIZATION FOR THE ADVANCEMENT OF STRUCTURED INFORMATION STANDARDS Web Services for Remote Portlets Version 1 0 Standard Specification OASO7c Obj07 Oeh00 Oes05 Om007 00808 ope08 PBO5 Por07 Pro08 Rai07 Rat07 http www oasis open org committees download php 3343 oasis 200304 wsrp specification 1 0 pdf Abrufdatum 19 09 2007 OASIS ORGANIZATION FOR THE ADVANCEMENT OF STRUC TURED INFORMATION STANDARDS Web Services Security SOAP Message Security 1 1 Standard Specification http www oasis open org committees download php 16790 wss vi 1 spec os SOAPMessageSecurity pdf Abrufdatum 19 09 2007 OBJECT MANAGEMENT GROUP CORBA http www corba org Abrufdatum 17 07 2007 OFHLER Karsten OLAP Grundlagen Modellierung und betriebswirt schaftliche Ligsungen 1 Mnchen Wien Verlag Hanser 2000 OESTEREICH Bernd Analyse und Design mit UML 2 Objektorientierte Softwareentwicklung 7 Mnchen Oldenbourg 2005 OMONDO EclipseUML http www eclipsedownload com Abrufda tum 17 07 2007 OOSE INNOVATIVE INFORMATIK UML Tools http www oose de umltools htm Abrufdatum 05 03 2008 OPENQA
65. den allgemeinen Diensten Die Anwendungsobjekte die in Form von Client und Server Objekten die Anwendungsfunktionalit t implementieren greifen ber Schnittstellen auf die Dienste des ORB zu Der ORB erm glicht die trans parente Kommunikation zwischen Client und Server Objekten ber ein Netzwerk Daf r nutzt der ORB die speziellen Objektdienste zur Verwaltung der Objekte im Netzwerk Zus tzlich stellt der ORB den Anwendungsobjekten weitere allgemeine Dienste zur Verf gung Zu diesen geh ren Hilfsdienste die zum Beispiel Drucken Datenbankzugriffe und das Verschicken von Emails unterst tzen Die Kommunikation zwischen Anwendungsobjekten realisiert der ORB in Form von entfernten Methodenaufrufen Wie in Abbildung 5 7 dargestellt wird dem Client Objekt daf r ber eine entsprechende Schnittstelle ein Objektstumpf zur Verf gung gestellt der als Stellvertreter das entfernte aufzurufende Objekt repr sentiert Der Stumpf besitzt dieselbe Schnittstelle wie das durch ihn repr sentierte Objekt Wird eine Methode des Stumpfes aufgerufen so leitet diese den Aufruf an den ORB wei ter Der ORB ruft ber ein Skelett die entsprechende Methode des Server Objektes auf Das Skelett bernimmt serverseitig die gleiche Funktion wie der Stumpf auf der Client Seite Es dient dazu dem Server Objekt einen lokalen Aufruf vorzut uschen und macht so den entfernten Aufruf transparent Das Ergebnis des Aufrufs wird ber 48 KAPITEL 5 SOFTWAREARCHITEKTUREN
66. det Diese werden bei oAW in einer weiteren Dom nen spezifischen Sprache n mlich Xtend definiert Fiir die Funktion getMultiplicityAnnotation sieht eine solche Xtend Definition beispielsweise wie folgt aus String getMultiplicityAnnotation uml Property p isMultiple getOpposite p Many One To isMultiple p Many One Buch lt lt Entity gt gt Exemplar lt lt Entity gt gt autor String inventarnr int titel String isbn String Abbildung 10 1 Klassendiagramm mit Stereotypen package Data Entity public class Exemplar implements java io Serializable protected int inventarnr protected Data Buch buch public int getInventarnr return inventarnr public void setInventarnr int p_inventarnr inventarnr p_inventarnr ManyToOne JoinColumn name buch public Data Buch getBuch return buch public void setbuch Data Buch p_buch buch p_buch Abbildung 10 2 Generierter EJB Code f r die Klasse Exemplar im Buch Beispiel Durch die Modell getriebene Softwareentwicklung SV 06 l sst sich die Produkti vit t bei der Softwareentwicklung besonders dann steigern wenn viele sehr hnliche Versionen oder Varianten eines Softwaresystems f r jeweils die gleichen Plattformen erstellt werden m ssen Dann lassen sich die Transformationen wiederholt nutzen Bei Einzelentwicklungen bringt dieser Ansatz wenig Vorteile In einem Pilotprojekt an der
67. diskutierten Prinzipien und Vorgehensweisen auch innerhalb traditio neller Vorgehensmodelle sinnvoll einsetzen Extreme Programming ist nur f r kleinere und mittlere Projekte mit maximal 15 Entwicklern geeignet Gr ere Projekte erfordern mehr organisatorischen Aufwand 16 KAPITEL 2 VORGEHENSMODELLE Kapitel 3 Management Aspekte 3 1 Aufwandssch tzung Die Sch tzung des Aufwands eines Projekts ist aufgrund der bei Projektanfang unzureichenden Informationen einerseits schwierig andererseits aber f r Planunng von Laufzeit Kosten und Personaleinsatz unabdingbar Vollst ndig berzeugende L sungen f r dieses Problem gibt es nicht In vielen F llen hilft ein simpler Ver gleich des neuen Projekts mit einem oder mehreren hnlich gelagerten abgeschlosse nen Projekten Diesen Ansatz bezeichnet man auch als Analogiemethode Besonders pr zise Sch tzungen kann sie aber in der Regel nicht liefern In empirischen Vergleichen verschiedener Sch tzmethoden hat die so genannte Function Point Analyse FPA PB05 oder Function Point Methode am besten ab geschnitten Bal01 Sie hat daher in Deutschland und auch weltweit eine beachtliche Benutzergemeinde die IFPUG IFP08 Sie ist recht leicht und mit berschaubarem Aufwand durchf hrbar und f hrt zu relativ pr zisen Ergebnissen Selbst wenn man in der eigenen Firma kein eigenes Know How bez glich der Function Point Analyse aufbauen will so kann man ggf auf einen hierf r von der IFP
68. dung 4 8 zeigt ein Sequenzdiagramm das den Ablauf der Auswertung ei nes arithmetischen Ausdrucks genauer einer Summe von zwei Teilausdr cken spe zifiziert Hierbei wird angenommen dass ein arithmetischer Ausdruck durch das in Abbildung 4 6 dargestellte System von Klassen repr sentiert wird Zur Auswer tung des geschachtelten Ausdrucks der Summe werden zun chst die beiden Teilaus dr cke ausgewertet Die Zwischenergebnisse werden als Parameter an die Methode 36 KAPITEL 4 OBJEKTORIENTIERUNG UND UML ausfuehren des Additionsobjekts tibergeben auf das das Objekt verweist das den geschachtelten Ausdruck reprasentiert Das hierbei berechnete Ergebnis ist der ge suchte Summenwert Ab UML 2 0 ist auch m glich Kontrollstrukturen wie Verzweigungen und Schlei fen in Sequenzdiagrammen darzustellen Hierzu wird ein Sequenzdiagramm vertikal in Bereiche unterteilt die alternativ optional wiederholt oder parallel ausgef hrt werden Details hierzu findet man in Oes05 Sti05 Sequenzdiagramme sind eine Variante von Interaktionsdiagrammen weitere Va rianten sind Kommunikationsdiagramme und Zeitverlaufsdiagramme auf die hier nicht im Detail eingegangen wird Kommunikationsdiagramme sind semantisch qui valent zu Sequenzdiagrammen sie unterscheiden sich lediglich in der Art der Visua lisierung Von blichen UML Modellierungswerkzeugen k nnen Sequenzdiagramme auf Knopfdruck in quivalente Komunikationsdiagramme transformiert werden und u
69. dung f r eine Integrationsebene muss demnach ein Kompromiss zwischen den Anforderungen an die Integration und den technischen M glichkeiten f r deren Realisierung gefunden werden 9 4 1 Integration auf Datenebene Bei der Datenintegration erfolgt die Integration durch unmittelbaren Zugriff auf die Daten die von den jeweiligen Anwendungen erzeugt verwaltet und gespeichert werden vgl Abbildung 9 4 Ein wesentlicher Vorteil dieser Methode liegt darin dass keine Modifikationen der Datenstrukturen oder der Anwendungslogik der zu integrierenden Anwendun 9 4 INTEGRATIONSEBENEN 95 Integrierte Prasentation Integrationslogik Integrations plattform Anwendung A Anwendung B Datenspeicher A Datenspeicher B Abbildung 9 4 Integration auf Datenebene gen erforderlich ist Dies erm glicht vielmals eine schnelle L sung von Integrati onsproblemen und erlaubt eine Integration auch dann wenn eine Anpassung der Systeme nicht m glich ist da der Quellcode nicht verf gbar gemacht werden kann F r die berwindung der technischen Heterogenit t zwischen verschiedenen Daten bankmanagementsystemen und syntaktischer Heterogenit ten als Folge von unter schiedlichen Konzepten der Datenmodellierung z B Entity Relationship Modellie rung Objektorientierte Modellierung bietet sich eine Vielzahl von Werkzeugen an Dennoch ist eine Datenintegration keine triviale Angelegenheit Ursa
70. e vergleicht werden die kostenlos erh ltliche Open Source L sung Subversion C0107 und das von IBM kommerziell vertriebene ClearCase BM07a am besten bewertet werden 86 KAPITEL 8 TOOLS 8 2 CASE Tools 8 2 1 Funktionsweise Computer Aided Software Engineering CASE bezeichnet den Einsatz von Softwa retools zur Unterst tzung der Entwicklung und Wartung von Software Die Werk zeuge die hierf r zum Einsatz kommen werden als CASE Tools bezeichnet Die Un terst tzung durch ein CASE Tool kann sich auf verschiedenste Aspekte des Softwa reentwicklungsprozesses beziehen Ziel des Einsatzes von CASE Werkzeugen ist die qualitative und quantitative Verbesserung der Softwareentwicklung Zu den CASE Werkzeugen z hlen daher nicht nur die unabdingbaren Hilfsmittel wie Compiler Editor Linker und Debugger Der Einsatzbereich f r CASE Tools umfasst s mtliche Phasen des Entwicklungs prozesses wie Planung Definition Entwurf Implementierung sowie Einf hrung und Wartung Wie in Abbildung 8 2 dargestellt lassen sich CASE Werkzeuge in Abh ngigkeit von ihren Schwerpunkten zu Kategorien zusammenfassen Diejenigen Werkzeuge die die ersten Phasen der Softwareentwicklung Planung Definition und Entwurf unterst tzen werden auch als Front End oder Upper CASE Werkzeuge bezeichnet Zu den Back End oder Lower CASE Werkzeugen geh ren alle Werkzeu ge die sich den sp teren Phasen der Softwareentwicklung Implementierung Ent wurf Einf hr
71. e Methode insertFirst In der Testklasse ListTest wird beispielhaft eine Methode testList gezeigt in der eine Liste mit den Elementen 42 17 und 39 erzeugt wird f r die anschlie end mit assertEquals berpr ft wird ob diese Elemente auch ordnungsgem eingetragen wurden import junit framework public class ListTest extends TestCase public static Test suite return new TestSuite ListTest class public static void main String args junit textui TestRunner run suite protected void setUp protected void tearDown SU KAPITEL 7 TESTEN public void testList MyList lt Integer gt list new MyList lt Integer gt int testvalues 42 17 39 for int i testvalues list insertFirst i int i testvalues length 1 for Integer val list assertEquals val 0 testvaluesli Varianten von JUnit gibt es auch f r das Testen von Webapplikationen HttpUnit Fej08 erlaubt beispielsweise das Testen von Webapplikationen ber die aus HTML Seiten bestehende Benutzeroberfl che hnliche Tools hierf r sind Cactus Pro08 Selenium ope08 und Wat Wat08 Neben den erw hnten Frameworks gibt es zum automatisierten Abspielen von Testf llen auch kommerzielle Tools wie den IBM Rational TestManager und ande re Rational Tools Rat08b Rat08a und HP Functional Testing sowie weitere HP Tools HP08a HPO8b Solche Tools erlauben auch das Testen von konventionellen d h nicht HTML basierten graphischen
72. e Version erstellt hat gespeichert Dies erm glicht es die Entwicklung einzelner Teile des Pro jektes durch Versionsvergleiche vollst ndig nachzuvollziehen und nderungen unter Umst nden gezielt r ckg ngig zu machen Neben der historischen Versionsfortschreibung dient die Versionsverwaltung aber auch als zentrale und gemeinsame Datenbasis f r ein Softwareprojekt Der Einsatz einer Versionsverwaltung ist daher vor allem bei gr eren Projekten an denen meh rere Entwickler gleichzeitig arbeiten sinnvoll Zu den Hauptaufgaben eines Versionsverwaltungssystems z hlen e Protokollierung von nderungen Es kann jederzeit nachvollzogen wer den wer wann was ge ndert hat e Wiederherstellung Verschentliche oder f lschliche nderungen k nnen je derzeit r ckg ngig gemacht werden e Archivierung Die verschiedenen Releases eines Systems k nnen archiviert werden So kann auf diese Releases jederzeit zur ckgegriffen werden 83 84 KAPITEL 8 TOOLS e Koordinierung Es wird der gleichzeitige Zugriff von mehreren Anwendern auf die Dateien des Projektes erm glicht e Verwaltung mehrerer Entwicklungszweige Es ist m glich gleichzeitig mehrere Entwicklungszweige Branches eines Projektes zu verwalten Dabei kann bestimmt werden auf welche Zweige eine Anderung Auswirkungen hat 8 1 2 Funktionsweise Ein klassisches Versionsverwaltungssystem besteht in der Regel aus einem Server der die gemeinsame Datenbasis das Repositor
73. e daf r dass die unverzichtba re IT rund l uft F r diese Unternehmen ist es wichtig stets ber den aktuellen Stand der Softwareentwicklung informiert zu sein und fortschrittliche Methoden an zuwenden Nur dann sind Leistungs und Wettbewerbsf higkeit auf Dauer m glich Das gilt vor allem auch zunehmend in globalisierten M rkten Heimische Anbieter konkurrieren oft mehr und mehr mit g nstigen Software Produzenten etwa in Indien oder Osteuropa Die vorliegende Brosch re Best Practices in der Softwareentwicklung soll ins besondere kleinen und mittelgro en Betrieben eine Arbeitshilfe zur rationellen Soft wareentwicklung geben Sie soll in berschaubarer Form Methoden vorstellen die die Entwicklung effizienter gestalten k nnen Der vorliegende Leitfaden ist durch den F rderkreis f r Angewandte Informa tik an der Westf lischen Universit t M nster angeregt und finanziert worden Der F rderkreis wird von rund 30 Unternehmen aus der Region und der Industrie und Handelskammer Nord Westfalen getragen Hauptziel ist die F rderung der praxis orientierten Forschung und Lehre sowie der schnelle Wissenstransfer Besonderer Dank geb hrt dem Direktor des Instituts f r Angewandte Informatik Herrn Professor Dr Herbert Kuchen und seinen Mitarbeitern f r die au erordentlich engagierte und praxisnahe Umsetzung des Projektes Ein weiteres gro es Dankesch n geht an die Mitglieder einer projektbegleiten den Arbeitsgruppe aus
74. e der allgemeinen Klassendefinition repr sentieren Die in gleicher Weise spe zialisierten Objekte bilden dann eine Unterklasse der Ausgangsklasse Letztere wird dann auch als Oberklasse bezeichnet Diese Objekte einer Unterklasse erben alle nicht privaten Attribute und Operationen der Oberklasse Zus tzlich k nnen wei tere Attribute und Operationen erg nzt werden Eine Oberklasse kann hierbei so 28 KAPITEL 4 OBJEKTORIENTIERUNG UND UML allgemein gehalten sein dass es nicht immer sinnvoll ist hierfiir konkrete Objekte zu bilden Dies ist genau dann der Fall wenn eine Klasse nur gemeinsame Attri bute und Methoden fiir alle Unterklassen bereitstellen soll Solche Klassen werden als abstrakte Klassen bezeichnet Es k nnen keine Objekte von abstrakten Klassen erzeugt werden 4 2 Unified Modeling Language Bei der objektorientierten Softwareentwicklung wird das zu erstellende System vor der Implementierung typischerweise in der allgemein akzeptierten standardisierten Notation Unified Modeling Language UML modelliert Oes05 Sti05 Die UML stellt hierf r insgesamt sechs Strukturdiagramme zur Beschreibung statischer Struk turen wie z B der Beziehungen zwischen Objekten Klassen und Paketen und sie ben Verhaltensdiagramme zum Modellierung des dynamischen Verhaltens eines Sy tems zur Verf gung Die wichtigsten dieser Diagramme werden im Folgenden kurz vorgestellt n mlich das Strukturdiagramm Klassendiagramm sowie die Verhaltens di
75. e nachvollziehbar Aus diesem Grund und aufgrund der besonderen Betonung des Anforderungsmanagements sowie der Qualit tssicherung eignet sich der Ratio 2 3 EXTREME PROGRAMMING 11 nal Unified Process insbesondere f r Projekte die hohen Qualit tsanforderungen gerecht werden m ssen Das umfassende Projektmanagementinstrumentarium er laubt es auch gro e Projekte mit vielen Beteiligten und heterogener Interessenlage koordinieren zu k nnen In kleineren Teams oder kurzfristigeren Projekten f hrt der Einsatz des RUP schnell zu einem Verwaltungs Wasserkopf der das Projekt mit unn tiger B rokratie belastet Ein weiterer Kritikpunkt ist die fehlende Flexibilit t kurzfristig auf neue Anforderungen oder ver nderte technologische Rahmenbedin gungen reagieren zu k nnen Um unterschiedlichen Rahmenbedingungen einzelner Projekte gerecht werden zu k nnen ist der Rational Unified Process in hohem Ma e anpassbar Entsprechend der jeweiligen Anforderungen an das Projektmanagement k nnen einzelne Teile des RUP auf eigene Erfordernisse zugeschnitten oder anstatt des gesamten Prozesses nur eine sinnvolle Teilmenge der Handlungsempfehlungen eingesetzt werden 2 3 Extreme Programming Extreme Programming XP BA04 ist ein von Kent Beck Ward Cunningham und Ron Jeffries entwickelte Methodologie f r die Entwicklung von Software Extreme Programming ist der bedeutsamste Vertreter der so genannten agilen Vorgehensmo delle Diese entstanden aus de
76. e z B B ume Die Klassen Ausdruck Konstante und Geschachtelt in Abb 4 6 sind eine Auspr gung des Kompositum Musters zur Darstellung arithmetischer Aus dr cke z B im Rahmen eines Compilers Stellvertreter verschiebt die Kontrolle ber ein Objekt auf ein vorgelagertes Stell vertreter Objekt mit gleicher Schnittstelle Der Stellvertreter kann beispiels weise die Funktionalit t eines entfernten Objekts lokal zur Verf gung stellen oder ein Speicherplatz intensives Objekt solange im Hauptspeicher vertreten bis es wirklich gebraucht wird und es dann nachladen 72 KAPITEL 6 ENTWURFSMUSTER 6 3 Verhaltensmuster Verhaltensmuster befassen sich mit Algorithmen und der Zuweisung von Zust ndig keiten zu Objekten und beschreiben nicht nur Muster von Objekten oder Klassen sondern auch Muster der Interaktion zwischen ihnen d h komplexe Kontrollfl sse Einige dieser Muster beschreiben wie eine Gruppe von Objekten zusammenarbeitet um eine Aufgabe zu erf llen die keines der Objekte alleine ausf hren kann 6 3 1 Befehl Das Befehlsmuster ist ein objektbasiertes Verhaltensmuster Hierbei wird ein Befehl eine Operation als ein Objekt gekapselt Durch Anbindung eines Befehlsobjekts per Delegation wird einem Klienten Objekt die Operation als Dienstleistung zur Verf gung gestellt Durch Anbindung eins anderen Befehlsobjekts kann zur Laufzeit die Funktionalit t des Klientenobjekts indirekt ge ndert werden Die Kapselung ei ner Operation
77. echtecks auf einen negativen Wert zu setzen eine Exception ausl sen und auf diese Weise das Errei chen eines inkonsistenten Objektzustands unterbinden Dieses Verhalten kann nicht sichergestellt werden wenn das breite Attribut als public deklariert ist da so die ggf zur Verf gung gestellte Set Methode umgangen werden kann Oft muss nicht auf jedes der vorhandenen Attribute lesend oder schreibend zugegriffen werden Insofern liegt der Gedanke nahe nur diejenigen Get und Set Operationen zu implementie ren die auch tats chlich ben tigt werden Dennoch ist es sinnvoll f r jedes Attri but einer Klasse eine Set und Get Operation zu implementieren damit die Klasse besser getestet werden kann Da Get und Set Operationen sowie der Konstruktor einer Klasse blicherweise vorhanden sind werden sie in der Regel nicht explizit im Operationen Block einer Klasse im Klassendiagramm aufgelistet 30 KAPITEL 4 OBJEKTORIENTIERUNG UND UML Darstellung von Vererbung im Klassendiagramm Im Klassendiagramm werden Vererbungshierarchien durch eine Verbindungslinie zwischen der Ober und der Unterklasse dargestellt die auf der Seite der Ober klasse durch ein Dreieck gekennzeichnet wird Der Name einer abstrakten Klasse wird kursiv geschrieben public abstract class Figur protected Punkt position public Figur Punkt position this position position public Punkt getPosition return position public void verschiebe doub Figur dou
78. egel auf die Dienste der Komponentenplattform zur ckgegriffen Die f r die Kommunikation verwendeten Netzwerke und Protokolle sind dabei f r die Softwarekomponenten transparent was dazu f hrt dass die Entwicklung der Komponenten erheblich vereinfacht wird Durch den vorgeschriebenen Aufbau und die vereinheitlichte Interaktion wird ei ne Entkopplung der einzelnen Komponenten erreicht Ziel dieser Entkopplung ist es die bereits erw hnte Wiederverwendbarkeit und Austauschbarkeit der Komponen ten zu verbessern Im Folgenden werden drei weit verbreitete Komponentenmodelle CORBA Java EE und NET n her erl utert 5 2 2 CORBA Die Common Object Request Broker Architecture CORBA Obj07 ist ein von der Object Management Group entwickelter Standard der plattform und programmier sprachen bergreifende Protokolle und Dienste f r die Umsetzung objektorientierter und verteilter Anwendungen definiert Ziel dieser Architektur ist es die Interaktion von objektorientierten Systemen verschiedener Programmiersprachen und Plattfor men zu erm glichen Um die Interoperabilit t verschiedener CORBA Implementierungen zu gew hr leisten basiert die gesamte Architektur ausschlie lich auf offenen Standards und Schnittstellen Der Aufbau eines CORBA Systems wird in Abbildung 5 6 schema tisch dargestellt und setzt sich aus vier zentralen Bestandteilen zusammen Den Anwendungsobjekten dem Object Request Broker ORB den speziellen Objekt diensten und
79. eibung des Auf baus einer Softwarekomponente sowie der Laufzeitumgebung f r diese Komponente der Komponentenplattform Die Spezifikation der Komponentenplattform umfasst s mtliche Dienste und Funktionalit ten die einer Komponente zur Verf gung ge stellt werden und legt somit auch die Interaktions und Kompositionsm glichkeiten von Komponenten fest Eine Softwarekomponente ist ein Softwarebaustein der ber Schnittstellen Ope rationen Eigenschaften und Ereignisse zur Verf gung stellt Zudem ist sie eine un abh ngige Auslieferungseinheit die zur Ausf hrung eine bestimmte Laufzeitumge bung die Komponentenplattform ben tigt Dar ber hinaus besitzt sie Metadaten zur Selbstbeschreibung ber die sie ihre Schnittstellen und Kontextabh ngigkeiten d h ihre Abh ngigkeit von anderen Komponenten und Bibliotheken offen legt Ei ne Komponente sollte zudem in hinreichendem Ma e anpassungsf hig sein um ihre Wiederverwendbarkeit sowie ihre Kompositionsf higkeit zu gew hrleisten Eine Komponentenplattform bietet den Komponenten eine Infrastruktur f r h ufig ben tigte Mechanismen wie Verteilung Nachrichtenaustausch Persistenz Si cherheit und Versionierung Durch die Inanspruchnahme der Dienste der Komponen tenplattform m ssen diese Funktionen nicht f r jede Komponente einzeln implemen tiert werden Beispielsweise wird f r die Kommunikation zwischen den Softwarekom 5 2 KOMPONENTENBASIERTE ARCHITEKTUREN 47 ponenten in der R
80. eit mit dem Kunden nicht immer m glich oder auf wirtschaftliche Weise realisierbar Kritisch zu beur teilen sind auch die hier nicht n her behandelten Techniken der Programmierung in Paaren und der gemeinsamen Verantwortlichkeit f r die Quellcodebasis Pro grammieren in Paaren bedeutet dass bei der Erstellung des Quellcodes jeweils zwei Entwickler gemeinsam an einem Rechner arbeiten Einer der beiden Entwickler er stellt den Code w hrend der andere ber aktuelle Problemstellungen nachdenkt und den geschriebenen Code kontrolliert Um einen intensiven Erfahrungsaustausch zu gew hrleisten werden die Rollen regelm ig getauscht und die Programmier teams durch Rotation immer wieder neu zusammengestellt In einem Unterneh men dessen Betriebsklima durch Neid Misstrauen und Angst gepr gt ist oder in einem Team dessen Mitarbeiter sehr unterschiedliche Qualifikationen besitzen wer den diese Praktiken schwerlich auf fruchtbaren Boden fallen Arbeiten die Entwick ler r umlich verteilt so ist der Einsatz spezieller Werkzeuge f r das distributed pair programming erforderlich Diese erm glichen den Entwicklern eine einheitli che und konsistente Sicht auf den zu bearbeitenden Quellcode Die Synchronisation der verteilt stattfindenden Benutzerinteraktionen erfolgt dabei automatisiert ber 2 3 EXTREME PROGRAMMING 15 eine Datenverbindung Jede nderung wird somit unmittelbar f r jeden Teilnehmer der Pair Programming Sitzung sichtbar En
81. en Server Stub realisiert Letzterer reicht den Aufruf serverseitig als loka len Aufruf an die adressierte Methode weiter und veranlasst die bermittlung der R ckgabewerte an den entfernten Client Durch diesen Mechanismus ist die Benut zung eines Kommunikationskanals zum Aufruf einer entfernten Servermethode f r den Entwickler der Client Anwendung transparent Problematisch an RPC basierten Integrationsans tzen ist die enge Kopplung an implementierungsspezifische Details der zu integrierenden Anwendung Wird Letztere erweitert oder abge ndert so zieht dies im Regelfall Anpassungsentwicklungen am Quellcode der integrierenden An wendung nach sich Da die Kommunikation ber RPC und RMI Anfragen synchron abl uft ist die aufrufende Anwendung so lange blockiert blockierendes Warten bis vom Empf nger eine Antwort eintrifft Um eine reibungslose Kommunikation sicherzustellen muss daf r Sorge getragen werden dass zwischen den kommunizie renden Anwendungen stets eine stabile Netzwerkverbindung besteht und der Ser ver permanent verf gbar ist Alternativ besteht die M glichkeit einen asynchronen 9 4 INTEGRATIONSEBENEN 99 Kommunikationsmechanismus mittels synchroner Kommunikation und einem Puf fer nachzubilden Wenngleich die Problematik des blockierenden Wartens auf diese Weise vermieden werden kann so ist dies doch mit zus tzlichem Aufwand verbun den Komponentenorientierte Middleware Einen st rker objektorientierten Integration
82. en Vereinfachungen ver zichtet EJB 3 0 auf einen Gro teil der Komponentenschnittstellen und setzt auf das Paradigma der Configuration by exception welches besagt dass nur diejenigen Einstellungen konfiguriert werden m ssen die nicht den Standar deinstellungen entsprechen e Annotationen Durch den Einsatz von Annotationen k nnen die Komponen ten mit Querschnittsfunktionen wie z B dem Logging annotiert werden Sol che Funktionen m ssen dann nicht f r jede Komponente einzeln implementiert werden Mithilfe von Annotationen werden auch das POJO Programmiermodell und die Komplexit tsreduktion z B durch Einsparung des Deployment Des criptors realisiert 5 2 KOMPONENTENBASIERTE ARCHITEKTUREN 53 Web Frameworks Ein Web Framework dient dazu die Entwicklung von Web Anwendungen zu un terst tzen indem es generische L sungen f r h ufig auftretende Probleme bei der Web Entwicklung bereit stellt Ublich sind u a L sungen f r Datenbankzugriff Si cherheit Sitzungsverwaltung Seitennavigation Validierung von Benutzereingaben Internationalisierung und Templatesysteme zum einfachen Designen von Webseiten Im Folgenden werden einige bekannte Web Frameworks f r Java EE vorgestellt Struts Das Struts Framework Apa07a Hol06 erweitert die Java Servlet API und setzt f r die Gestaltung von Webseiten das Model View Controller Entwurfmuster MVC GHJV96 um MVC ist ein gebr uchliches Entwurfsmuster zur Programmierung von
83. en wollen Das Problem ist nun dass die Klasse TextAnzeige nicht f r GrafischesObjekt Klassen entworfen wurde und die Schnittstellen daher nicht bereinstimmen Eine m gliche L sung dieses Problems ist die TextAnzeige Klasse an die durch GrafischesObjekt definierte Schnittstelle anzupassen Dies ist jedoch nicht sinnvoll da dann auch alle Klienten der Klasse angepasst werden m ssten Besser ist es die neue Adapterklas se Text so dazwischen zu schalten dass sie die Schnittstelle von TextAnzeige an 70 KAPITEL 6 ENTWURFSMUSTER die Schnittstelle von GrafischesObjekt anpasst Hierbei gibt es zwei M glichkeiten 1 Text erbt sowohl von GrafischesObjekt als auch von TextAnzeige oder 2 Text erbt nur von GrafischesObjekt und ein TextAnzeige Objekt wird per Delegation an ein Text Objekt angebunden wobei die Klasse Text die Methode GibAusmasse der Klasse TextAnzeige nutzt um die geforderte Methode BegrenzungsRahmen zu implementieren Diese beiden Ans tze entsprechen der klassen bzw objektbasier ten Version des Adaptermusters In Abbildung 6 2 wird der Objektadapter Ansatz verwendet Man beachte dass die Adapterklasse Funktionalit t die von der zu ad aptierenden Klasse nicht geboten von der zu implementierenden Schnittstelle aber erwartet wird selbst implementiert im Beispiel ist dies die Methode ErzeugeMani pulator AdaptierteKlasse SpezifischeOperation Implementierung Operation SS SpezifischeOpe
84. enaufruf der EJB auszuf hren Durch den Container bereitgestellte Dienste wie z B das Transaktionsmanagement k nnen so automatisiert und f r den Programmierer transparent durchgef hrt werden Das 5 2 KOMPONENTENBASIERTE ARCHITEKTUREN 51 Business Interface ist die nach au en propagierte Schnittstelle einer EJB eine Kom ponente kann ber ein Local oder Remote Business Interface verf gen Diese k nnen entsprechend ber einen lokalen bzw entfernten Client angesprochen werden EJB Container JVM o Local Client EJB Komponente Middleware Dienste _ _ Lebenszyklus Management Remote Business Container erzeugte GE Slier X Interface Wrapper Klasse 5 Client pp Transaktionen EJB Klasse Abbildung 5 9 Aufbau einer EJB Komponente Eine ausf hrliche Beschreibung des EJB Komponentenmodells findet sich zum Beispiel bei SBS06 EL07 SGM02 Unterschiede zwischen EJB 2 1 und EJB 3 0 Das EJB Komponentenmodell wurde eingef hrt um die Entwicklung von verteil ten mehrschichtigen und objektorientierten Anwendungen zu vereinfachen Obwohl das EJB Modell diesen Anforderungen in weiten Teilen gerecht wurde haben sich im praktischen Einsatz auch einigen Schw chen gezeigt Vor allem das Aufkommen einfacherer Alternativen zeigte dass das EJB Modell im Hinblick auf die Produkti vit t bei der Anwendungsentwicklung oft nicht die
85. ens genauso viel Beachtung geschenkt werden wie der grunds tzlicheren Entscheidung f r eine Integrationsebene Da die Integrationsinfrastruktur grundlegende Funktionalit ten 108 KAPITEL 9 ENTERPRISE APPLICATION INTEGRATION bereitstellt welche die Interaktionsf higkeit zwischen den gegenw rtigen wie auch den zuk nftigen Informationssystemen eines Unternehmens erm glichen soll ist sie sowohl mit den Anforderungen Rahmenbedingungen und Restriktionen der exis tierenden Informationssysteme als auch mit den aus der Unternehmensstrategie abgeleiteten Zielvorgaben f r die zuk nftige Entwicklung der betrieblichen Informa tionsverarbeitung abzustimmen Aspekte wie Nachhaltigkeit Skalierbarkeit Flexibi lit t und Sicherheit spielen hier eine tragende Rolle Eine zu kurzsichtige und alleine an der gegenw rtigen Situation orientierte Planung einer Anwendungsintegration sollte vermieden werden da dies leicht zu einer Integrationsinfrastruktur f hrt die zuk nftigen Anforderungen nicht mehr gewachsen ist oder mit dem Wachstum des Unternehmens nicht schritt h lt und sich somit zum kostspieligen Engpass f r die Fortentwicklung der betrieblichen Informationsverarbeitung entwickelt Eine Integration auf Benutzerschnittstellenebene wird in der Literatur zur EAI CHK06 Lin00 gemeinhin als Notl sung angesehen die erst dann zur Anwendung kommt wenn eine Integration auf Daten oder Funktionsebene nicht m glich ist Die Hauptgr nde f r die Kri
86. entierte Architektur SOA KBS05 realisiert werden Analog zur Definition eines Web Service stellen Dienste im Sinne einer SOA ein durch eine wohldefinierte und ber ein ffentliches Verzeich nis zug ngliche Schnittstellenbeschreibung repr sentiertes sowie wiederverwendba res St ck Software dar das eine abgegrenzte Funktionalit t anbietet und durch einen Klienten integriert werden kann Eine Service Orientierte Architektur stellt ein Netzwerk von lose gekoppelten und miteinander interagierenden Diensten dar Diese Kommunizieren durch den Austausch von Nachrichten und k nnen unter einander auf Daten oder auf ihre Anwendungslogik zugreifen Wenngleich sich das SOA Konzept mithilfe von Web Services realisieren l sst so muss betont werden dass die Verwendung von Web Services nicht zwangsl ufig zu einer SOA f hrt und eine SOA andererseits nicht notwendigerweise mithilfe von Web Services implemen tiert werden muss Aus Sicht eines Gesch ftsprozessverantwortlichen macht weder die Integration eines zu komplexen noch die eines zu simplen Dienstes Sinn W hrend ein kom plexer Dienst sich aufgrund seiner ausgepr gten Semantik nur in wenigen F llen ohne aufw ndige Anpassungen einsetzen l sst kann ein elementarer Dienst zwar leicht wiederverwendet werden liefert dabei jedoch nur einen beschr nkten Nutzen Dienste sind demnach von mittlerer Komplexit t und bilden einen wiederverwend baren Ausschnitt aus einem Gesch ftsprozess oder eine
87. er Unified Modeling Language UML und hierauf aufbauender Werkzeuge erleichtert wird Die UML wird ebenfalls in diesem Kapitel kurz vorgestellt Jeder Softwareentwickler sollte sie heute kennen und beherrschen In Kapitel 5 werden dann einige Entwurfsaspekte von Softwaresystemen behan delt Inbesondere die Vorteile von Schichtenarchitekturen und komponentenbasierten Architekturen bei denen Middleware zur Reduktion des Aufwands und der Ferti gungstiefe eingesetzt wird sollte jeder Softwareentwickler kennen In Kapitel 6 werden so genannte Entwurfsmuster vorgestellt Hierbei handelt es sich um Systeme von Klassen die sich zur L sung gewisser immer wiederkehrender Entwurfsprobleme bew hrt haben und die in vielen F llen die angestrebte Flexibi lit t der L sung gew hrleisten k nnen Diese Muster geh ren zum Handwerkszeug jedes objektorientierten Entwicklers Wer sie nicht kennt kann kaum hochwertige objektorientierte Software entwickeln Kapitel 7 besch ftigt sich dann mit dem Thema Testen Die diesbez glichen Grundlagen werden erl utert Weiterhin wird hier auf Automatiserungsm glichkeiten eingegangen Es ist wegen der Kosten und des Zeitbedarfs heute nur noch in weni gen F llen sinnvoll Testeingaben per Hand bei jedem Test erneut in den Rechner einzutippen Viele Firmen haben was die Automatisierung von Tests angeht noch erhebliches Potenzial Bei der Softwareentwicklung sollte heute zur Steigerung der Produktivit t auf eine
88. er eine individuelle Schnittstelle miteinander gekoppelt Der Vorteil dieses Ansatzes liegt bei kleinen Systemen in seiner schnellen und kosteng nstigen Reali sierbarkeit Sobald jedoch mehrere Systeme miteinander verbunden werden m ssen zeigen sich die Grenzen dieses Integrationsansatzes Um in einer Infrastruktur mit n Systemen ein weiteres System mit allen bestehenden Anwendung zu integrieren m ssen n Schnittstellen geschaffen werden In einer Infrastruktur mit n Systemen m ssen demnach maximal n n 1 2 Schnittstellen gewartet werden Diese Schnitt stellenexplosion f hrt trotz der Vorteile dieses Ansatzes in berschaubaren Inte 9 3 EALARCHITEKTURKONZEPTE 93 grationsszenarien bei einer wachsenden Zahl der zu integrierenden Systeme zu einer unflexiblen und schwierig zu wartenden Schnittstellenlandschaft 9 3 2 Hub and Spokes Integration Bei der Hub and Spokes Integration vgl Abbildung 9 2 stellt eine zentrale Inte grationskomponente alle grundlegenden Infrastrukturdienste fiir die Anwendungsin tegration zur Verf gung Die einzelnen Systeme werden nicht direkt sondern ber den Hub miteinander integriert System System 2 3 System Integrations F System 1 infrastruktur Hub 4 System System 6 5 Abbildung 9 2 Hub and Spokes Integration Um ein neues System in eine Infrastruktur mit n Systemen einzubinden muss nur eine standardisie
89. er nach dem anarchischen Code and Fix Ansatz oder einer Variante des Wasserfall Modells In Literatur und Praxis hat sich eine verwirrende Vielfalt von Prozessmodellen und Entwicklungsme thodologien herausgebildet Dennoch oder gerade deswegen scheitern immer noch zahlreiche Projekte aufgrund von Fehlsteuerungen im Rahmen des Projektmana gements Laut einer Untersuchung der Standish Group wurden 2004 lediglich 29 aller IT Projekte erfolgreich abgeschlossen Als endg ltig gescheitert galten 18 aller Vorhaben Mehr als die H lfte aller Projekte 53 konnten nur nach zum Teil erheblichen Termin oder Budget berschreitungen bzw einer Reduzierung des Funktionsumfangs abgeschlossen werden Neben einer fehlenden Disziplin bei der Durchf hrung von Tests und einer unklaren oder l ckenhaften Erfassung der An forderungen werden nach wie vor Projektmanagementprobleme aufgrund eines feh lenden oder ungeeigneten Vorgehensmodells f r die Misere verantwortlich gemacht Der vollst ndige Verzicht auf ein Vorgehensmodell stellt f r Projekte die eine ge wisse Gr e berschreiten die denkbar schlechteste Alternative dar Trotzdem kann auch die Verwendung eines Vorgehensmodells dessen Eigenschaften das Projekt management in einem konkreten Fall nur unzureichend unterst tzen oder sich so gar kontraproduktiv auswirken zu erheblichen Problemen f hren Die verf gbaren Vorgehensmodelle unterscheiden sich zum Teil erheblich in ihren Voraussetzungen Zusic
90. erarbeitung 0 5 um 35 3 Leistungsanforderungen 0 5 4 Ressourcennutzung 0 5 5 Transaktionsrate 0 5 6 Online Benutzerschnittstelle 0 5 7 Anwenderfreundlichkeit 0 5 8 Onlineverarbeitung 0 5 9 Komplexe Verarbeitung 0 5 10 Wiederverwendbarkeit 0 5 11 Migrations u Installationshilfen 0 5 12 Betriebshilfen 0 5 13 Mehrfachinstallationen 0 5 14 Anderungsfreundlichkeit 0 5 I N 9 Of Of 9 o A Ga OF FY oj FY eA w N N Summe Ea der Einf sse Bewertete Function Points E3 E E2 100 0 65 Q w Tabelle 3 3 Beispiel Ermittlung von Function Points 3 2 Risiko Management Untersuchungen zeigen dass zur berarbeitung von fehlerhafter Software ungef hr 80 der berarbeitungskosten ben tigt werden um lediglich 20 der Fehler zu beseitigen Bei diesen 20 der Probleme handelt es sich um die risikoreichen Pro bleme die im Rahmen des Software Managements identifiziert und beseitigt wer den m ssen bevor sie den Projekterfolg gef hrden und solange die entsprechenden berarbeitungskosten noch relativ gering sind Nach Balzert Bal98 besteht das Risikomanagement aus sechs Schritten s Abb 20 KAPITEL 3 MANAGEMENT ASPEKTE Risiko Bewertung Risiko Identifikation d Risiko Analyse Risiko Prioritaten bildung Risiko Beherrschung Risiko management Planung __ Ri
91. erdurch kann der Themenbereich getrennt betrachtet und verstanden werden sowie die Klasse bersichtlich gehalten werden Iterator erlaubt das schrittweise Durchlaufen einer Kollektion wie z B einer Liste Memento erm glicht den Zustand eines Objektes extern zu sichern und bei Be darf wiederherzustellen Schablonenmethode hnlich wie bei der Fabrikmethode wird in einer Oberklas se eine abstrakte Schablonen Methode vorgesehen die in einer Unterklasse berschrieben wird 76 KAPITEL 6 ENTWURFSMUSTER Strategie erlaubt es Algorithmen in eigenen Klassen zu kapseln und so austausch bar zu halten Vermittler steuert die Kooperation von Objekten Zustand erlaubt das Verhalten eines Objekts von seinem Zustand abh ngig zu machen F r jeden Zustand wird eine eigene Unterklasse der Zustandsklasse mit hierf r spezifischem Verhalten bereitgestellt Durch Anbindung eines Ob jekts an ein Objekt der passenden Unterklasse wird daf r gesorgt dass es zum Zustand passende Dienstleistungen bereitgestellt bekommt und sich dadurch selbst zustandsabh ngig verh lt Zust ndigkeitskette schaltet mehrer Objekte hintereinander Eine eingehende Anfrage wird die entstandene Kette entlang geleitet bis ein Objekt die Anfrage beantworten kann 6 4 Weitere Entwurfsmuster Neben den klassischen Entwurfsmuster der Gang of Four haben inzwischen noch einige andere Muster eine gewisse Bedeutung erlangt Einige hiervon werden im Folgende
92. ereich wird zun chst Kaffee gesucht Ist kein Kaffe vorhanden wird Tee gekocht sofern das m glich ist Geht auch das nicht so wird eine Exception ausgel st die anzeigt dass der Ablauf gescheitert ist Ist Kaf fe vorhanden wird der Ablauf in drei parallele Teilabl ufe unterteilt Im ersten Ast werden Kaffee und Filter in die Kaffemaschine gef llt Parallel hierzu werden Was ser in die Maschine gef llt und Tassen geholt Sobald Kaffee Filter und Wasser in der Kaffeemaschine sind wird diese eingeschaltet Ist keine Tasse mehr vorhanden so wird die hierdurch ausgel ste Ausnahme dadurch behandelt dass eine Tasse ge sp lt wird Wenn die Machine fertig ist und die Tasse bereit ist wird der Kaffee eingesch ttet 38 KAPITEL 4 OBJEKTORIENTIERUNG UND UML 4 2 6 Weitere UML Diagramme Klassendiagramme Anwendungsfalldiagramme Sequenzdiagramme und Aktivitats diagramme sind die am h ufigsten verwendeten UML Diagramme Weitere hier nicht im Detail erlauterte UML Diagramme sind die folgenden Strukturdiagramme Montagediagramme modellieren die Grobstruktur eines Systems Komponentendiagramme zeigen aus welchen Komponenten ein System be steht und welche Scnittstellen diese bieten und nutzen Verteilungsdiagramme stellen die Verteilung von Komponenten auf Rechen knoten dar Objekdiagramme hneln Klassendiagrammen sie beschreiben aber die Ver kniipfungen einzelner Objekte statt ganzer Klassen Paketdiagramme beschreibe
93. erungen vom betrachteten System eingehalten werden Als Beispiel seien hier der HP LoadRunner HPO8b und IBM Rational Performance Tester Rat08a erw hnt Das automatische Generieren von Testf llen kann z B von QuickCheck Sou08 bernommen werden Hier werden per Zufallsgenerator zuf llige Testeingaben er zeugt f r die dann automatisch gepr ft wird ob sie das gew nschte Ergebnis be rechnen Dies funktioniert vielfach erstaunlich gut und ein Gro teil der Fehler wird durch die so erzeugten Testf lle aufgedeckt Vorausgesetzt wird hierbei dass eine spezielle Methode eine so genannte Property vom Tester bereitgestellt wird die pr ft ob ein berechnetes Ergebnis stimmt Das Erstellen solcher Properties kann manchmal aufw ndig werden Auch werden manchmal spezielle Generatoren f r sinnvolle Eingaben ben tigt Dies ist insbesondere dann der Fall wenn ein Gro teil der aufgrund der Datentypen der Eingabeparameter m glichen Eingaben unzul ssig ist und das Verhalten des Systems f r diese illegalen Eingaben nicht interessiert Schlie lich gibt es Werkzeuge die feststellen welcher Anteil des betrachteten Codes durch die bisher untersuchten Testf lle berdeckt wird So l sst sich Fest stellen ob Teile des Codes noch nicht getestet wurden und daher weitere Testf lle erforderlich sind 8 2 4 Werkzeuge zur Architektur berwachung Weiterhin gibt es kommerzielle Werkzeuge wie z B Sotograph Tom08 die ins besondere bei lange e
94. es Clients besteht eine COM Komponente somit aus einem Zeiger auf einen Zeiger der auf eine vTable zeigt Client Interface Variable Knoten vTable 0p gt gt gt Op 2 Op 3 COM Komponente Quelle Szyperski SGM02 S 331ff Abbildung 5 12 Aufbau einer COM Komponente Mithilfe dieser doppelten Indirektion ist es m glich fiir die Komponente ein objektorientiertes Verhalten zu simulieren Hierfiir wird den Methoden der Kompo nente bzw der vTable beim Aufruf die Referenz auf den Schnittstellenknoten als zus tzlicher Parameter bergeben Mithilfe dieser Referenz k nnen verschiedene In stanzen von Interface Knoten die auf dieselbe vTable zeigen unterschieden werden Die Methoden der vTable k nnen durch diese Referenz die Instanzen der Interface Knoten unterscheiden und objektorientiertes Verhalten simulieren indem sie intern den Interface Knoten Instanzvariablen zuordnen Das wichtigste Interface des COM ist das Unknown Interface dessen Funktionen QuerylInterface AddRef und Release von allen COM Schnittstellen implementiert werden m ssen Die Funktionen AddRef und Release in bzw dekrementieren einen Referenzz hler f r den Interface Knoten Mithilfe des Referenzz hlers k nnen nicht 5 2 KOMPONENTENBASIERTE ARCHITEKTUREN 59 mehr referenzierte COM Objekte ermittelt und gel scht werden Da eine COM Komponente auch mehrere Schnittstellen besitzen kann wird
95. essage Driven Beans Driven Beans Datenhaltung Datenbank Server Datenbank Server 3 Schichten 4 Schichten Abbildung 5 8 Architektur einer Java EE Anwendung einem Datenbank Tupel entspricht und dass beide synchron gehalten werden Die Bezeichnung POJO soll verdeutlichen dass es sich dabei um einfache Java Objekte handelt die keine externen Abh ngigkeiten durch Namenskonventionen oder zu im plementierenden Schnittstellen besitzen Fiir die Datenhaltung ist in der Regel ein separater Datenbank Server verantwortlich Die EJB Komponenten ben tigen zur Ausf hrung eine spezielle Laufzeitumge bung den EJB Container der durch den Application Server zur Verf gung gestellt wird Abbildung 5 9 zeigt den Aufbau einer EJB sowie deren Interaktionsm glich keiten mit Diensten des EJB Containers und den Clients die die Dienste der Kom ponente in Anspruch nehmen Nach der EJB Spezifikation 3 0 besteht eine EJB Komponente aus der eigent lichen EJB Klasse einem Business Interface und einer vom Container erzeugten Verpacker Klasse engl Wrapper Business Interface und EJB Klasse sind durch den Programmierer zu implementieren w hrend die Wrapper Klasse automatisch beim so genannten Deployment d h der Bereitstellung der Komponente auf ei nem Application Server durch den Application Server erzeugt wird Die Wrapper Klasse kapselt Zugriffe auf die EJB Klasse und erm glicht es so spezielle Dienste des Containers vor bzw nach einem Method
96. fe ohne komplexe Logiken oder Berechnungen ein 9 4 3 Integration ber die Benutzerschnittstelle Bei einer Integration auf Benutzerschnittstellenebene werden Daten Funktionen und Prozesse einer Anwendung durch Einbindung ihrer Benutzerschnittstelle zugreifbar gemacht vgl Abbildung 9 9 Die Programmlogik oder die Daten der Anwendung bleiben bei dieser Form der Integration unber hrt 106 KAPITEL 9 ENTERPRISE APPLICATION INTEGRATION A Portal System EN WSRP Portlets Prasentation Web Services Pr sentation A Pr sentation B Anwendung A Anwendung B Datenspei icher A Datenspeicher B Abbildung 9 9 Integration auf Benutzerschnittstellenebene Eine derartige Integration kann mithilfe so genannter Screen Scraping Systeme oder durch ein webbasiertes Portal gew hrleistet werden Welche Art der Integration in speziellen Situation sinnvoller ist h ngt vor allem davon ab ob die Daten eines Systems fiir eine automatisierte Weiterverarbeitung in einem Fremdsystem verfiigbar gemacht oder Benutzern in integrierter Form pr sentiert werden sollen Ein Screen Scraping System erm glicht es die Bildschirmmasken einer Anwendung zeilenweise auszuwerten und einen Benutzerdialog zu simulieren Die Ausgaben der Anwendung an den Benutzer k nnen auf diese Weise automatisch erfasst und einem Fremdsystem zugef hrt werden Screen Scraping gilt gemeinhin als Notl sung welche mit enormen Performanzeinbu en erka
97. fen oft den Speicherplatzverbrauch die Laufzeit und Sprach und Implementierungsaspekte Da in objektorientierten Syste men oft der Wiederverwendbarkeit eine zentrale Rolle zugeschrieben wird umfasst der Konsequenzenabschnitt eines Musters auch seinen Einfluss auf die Flexibilit t 65 66 KAPITEL 6 ENTWURFSMUSTER Erweiterbarkeit und Portabilit t des Systems In vielen Situationen k nnen mehrere Muster verwendet werden um ein Problem zu l sen Welches dann ausgew hlt wird h ngt davon ab welche mit jedem Muster verbundenen Vor und Nachteile in der jeweiligen Situation am wichtigsten sind Au erdem werden Muster oft kombiniert Entwurfmuster k nnen in drei Kategorien unterteilt werden Erzeugungsmuster Strukturmuster und Verhaltensmuster Erzeugungsmuster betreffen die Erzeugung von Objekten Die Unterscheidung der anderen beiden Kategorien ist nicht sehr trennscharf und ihre Beschreibungen sind recht generisch Strukturmuster befassen sich mit der Zusammensetzung von Klassen und Objekten w hrend ein Verhaltens muster ein interessantes Verhalten realisiert Entwurfsmuster basieren auf den bei den Mechanismen Vererbung und Delegation d h Weitergabe einer Anfrage an ein per Assoziation angebundenes Nachbarobjekt Abh ngig davon ob Vererbung oder Delegation bei dem jeweils betrachteten Muster von gr erer Bedeutung ist spricht man auch von einem Klassen bzw Objekt basierten Muster Bei Mustern die auf Flexibilit t abzielen
98. fernten Methodenaufruf durchf hren zu k nnen Eine ausf hrlichere Be schreibung von CORBA findet sich u a in LP98 SGMO2 Obwohl CORBA das in der Version 1 0 bereits 1991 ver ffentlicht wurde das lteste hier vorgestellte Komponenten Framework ist bleibt seine Verbreitung heu te deutlich hinter der von Java EE oder NET zur ck Gr nde hierf r sind u a die hohe Komplexit t sowie inkompatible oft unvollst ndige Hersteller spezifische Implementierungen 5 2 3 Java EE Grundlagen Die Java Platform Enterprise Edition Java EE Sun07a ist eine Menge von Spe zifikationen und Benutzerschnittstellen die auf der Java Platform Standard Edition Java SE aufbauen W hrend die Java SE f r die Entwicklung allein stehender Ein zelanwendungen geeignet ist stellt die Java EE Dienste und Schnittstellen f r die Entwicklung serverbasierter Applikationen bereit und ist besonders f r die Umset zung verteilter mehrschichtiger und komponentenbasierter Anwendungsarchitektu ren geeignet Der Java EE liegt das Komponentenmodell der Enterprise JavaBeans EJB zu grunde Das EJB Modell fokussiert Systeme bei denen die folgenden Eigenschaften von besonderer Bedeutung sind Skalierbarkeit Verf gbarkeit Sicherheit Transak tionen und Ortstranzparenz Der schematische Aufbau einer generischen Java EE Anwendung ist in Abbil dung 5 8 dargestellt Die Architektur einer klassischen Java EE Anwendung besteht aus drei oder vier Schichten je na
99. flexibel zusammenzusetzen Zur Erstel lung von Gesch ftsprozessen bietet WS BPEL die M glichkeit bereits existieren de Web Services zu adressieren und aufzurufen Dar ber hinaus k nnen Kontroll strukturen wie Verzweigungen und Schleifen implementiert werden Jeder mithilfe von WS BPEL erstellte Prozess stellt wiederum einen Web Service dar der durch ein WSDL Dokument beschrieben wird und ver ffentlicht werden kann Um einen WS BPEL Prozess ausf hren zu k nnen wird eine BPEL Engine als Laufzeitum gebung ben tigt welche auch einen transparenten Zugriff auf die eingebundenen Web Services erm glicht Zudem stellt sie Funktionen f r das Deployment und die Verwaltung der WS BPEL Prozesse sowie Persistenzdienste zur Verf gung Die Be schreibung der WS BPEL Prozesse erfolgt mittels XML wobei die einzelnen Spra chelemente wie Variablendeklarationen Zuweisungen oder Kontrollstrukturen durch entsprechende Tags dargestellt werden Verglichen mit anderen Programmierspra chen wie zum Beispiel Java wird der Quellcode eines WS BPEL Prozesses daher schnell un bersichtlich Durch die zunehmende Verf gbarkeit grafischer Entwick lungswerkzeuge relativiert sich dieser Nachteil jedoch zusehends Schwerer wiegt dass dem Entwickler nur wenige Konstrukte zur Verf gung stehen die eine ange messene Strukturierung von Prozessen erm glichen Dieser Umstand schr nkt die Einsatzm glichkeiten von WS BPEL auf die Beschreibung relativ berschaubarer Abl u
100. forderun gen an die Integrationsinfrastruktur und die Anbindung neuer Systeme im Zeitver lauf relativ unver ndert so kann dieser Nachteil hingenommen werden In einem dynamischen Umfeld mit rasch wechselnden Integrationsanforderungen erweist sich eine derartige L sung schnell als kostspielig und unflexibel In diesem Fall ist ei ne Integrationsinfrastruktur w nschenswert die es erm glicht Funktionalit ten zur Laufzeit dynamisch einzubinden Das hei t jegliche Referenzen oder Adressierungs informationen die zum Auffinden einer Funktionalit t erforderlich sind d rfen nicht 9 4 INTEGRATIONSEBENEN 101 zur Ubersetzungszeit sondern erst zur Laufzeit angelegt werden Ein weiterer gravierender Nachteil komponentenorientierter Middleware ist die unzureichende Kompatibilitat der Systeme untereinander Die Entscheidung fiir eine bestimmte Middleware Plattform bedingt dass alle in die Integrationsl sung einge bundenen Systeme den gleichen RPC Mechanismus das gleiche Objektmodell oder ein einheitliches Nachrichtenformat unterstiitzen miissen Da einige der am Markt verf gbaren Middleware Plattform dar ber hinaus keine vollst ndige Plattform und Programmiersprachenunabh ngigkeit bieten ist die Flexibilit t bei der Aus wahl von Betriebssystemen und Programmiersprachen stark eingeschr nkt So bie tet DCOM die gr ten Einsatzpotentiale in einer Windows Umgebung wenngleich Implementierungen f r weitere Betriebssysteme verf gbar sin
101. g und der Kosten f r die Fehlerbehebung Wenn sich eine Entwurfs oder Implementierungsent scheidung als ungeeignet herausstellt so ist hier im Gegensatz zum Wasserfallmodell nicht das Gesamtsystem sondern typischerweise die letzte Iteration betroffen die dann vergleichsweise kosteng nstig korrigiert werden kann Die drei zentralen Prin zipien des Unified Process sind auch losgel st hiervon interessant und k nnen auch in eigenen auf das jeweilige Projekt zugeschnittenen Vorgehensmodellen verwendet umgesetzt werden Die Unified Process basiert auch auf den folgenden Konzepten e Phasen erm glichen eine zeitliche und sachlogische Gliederung des Entwick lungsprozesses Jede Phase dient einem bestimmten Zweck umfasst bestimmte Aktivit ten und f hrt zu einem definierten Ergebnis Meilenstein Der RUP unterscheidet zwischen Konzeptionsphase Entwurfsphase Konstruktionspha se und bergabephase e Iterationen erm glichen es komplexe Teilaufgaben einzelner Phasen in ber schaubare Arbeitspakete zu zergliedern Den Ausgangspunkt einer Iteration bildet jeweils eine intersubjektiv nachpr fbare Zieldefinition welche am Ende der Iteration herangezogen wird um den Grad der Zielerreichung festzustellen e Meilensteine stellen die Verkn pfung von klar definierten Ergebnissen mit ei nem festgelegten Zeitpunkt dar und erm glichen es den Fortschritt des Pro jektes zu berwachen e Aktivit ten stellen die einzelnen Aufgaben Arbeitsschr
102. g von Informationen Bei der Anwendung asynchroner Kommunikation m ssen Sender und Empf nger f r eine funktionierende Kommunikation nicht zwingend aktiv sein Ist der Empf nger nicht verf gbar so werden die an ihn adressierten Nachrichten in einer Warteschlange persistent zwischengespeichert Die sendende Anwendung wird somit auch dann nicht blockiert wenn der Empf nger zum Zeitpunkt des Versendens einer Nach richt nicht erreichbar ist Aus diesem Grund zeichnet sich asynchrone nachrichten basierte Kommunikation vor allem in einem verteilten heterogenen Umfeld aus in welchem die zu integrierenden Anwendungen unterschiedlichen Verantwortlichkeiten unterstehen oder ber das Internet interagieren m ssen Nachrichtenbasierte Kom munikation erm glicht eine Entkopplung der zentralen Integrationsinfrastruktur von 102 KAPITEL 9 ENTERPRISE APPLICATION INTEGRATION der Implementierung der einzelnen Anwendungen Dies erlaubt gegen ber dem Ein satz von RPC oder RMI basierten Integrationsl sungen einen zus tzlichen Grad an Flexibilit t Ein Nachteil nachrichtenbasierter Kommunikation besteht darin dass sie die Suche nach Fehlern erschwert W hrend bei einer engen Kopplung zwei er Systeme aufgrund der Implementierungsabh ngigkeiten viele Fehler bereits zur bersetzungszeit gefunden werden k nnen zeigen sich bei einer nachrichtenbasier ten losen Kopplung viele Fehler erst zur Laufzeit Dabei ist in vielen F llen zun chst nicht direkt er
103. gar g nzlich verzichtet werden da Schnittstellen und Funktionalit ten der eingesetzten Web Services hinreichend bekannt sind Verglichen mit den anderen betrachteten Standards kommt UDDI im praktischen Einsatz daher eine eher geringe Bedeutung zu Der Hauptvorteil von Web Services liegt in der Verwendung offener Standards die sowohl Plattformunabh ngigkeit als auch Protokoll und Programmiersprachen unabh ngigkeit erm glichen und somit eine hohe Flexibilit t und Interoperabilit t Web Service basierter Integrationsl sungen sicherstellen 9 4 INTEGRATIONSEBENEN 105 Durch das blicherweise zur Nachrichten bertragung verwendete HTTP Pro tokoll ist eine Kommunikation auch ber Organisationsgrenzen hinweg problem los m glich Nachteile betreffen vor allem die Performanz die durch die XML Verarbeitung und die Gr e der zu bertragenen Nachrichten negativ beeinflusst wird Kritisch zu hinterfragen ist weiterhin ob die verf gbaren Standards wie XML Encryption Wor07b XML Signature Wor07c oder Web Services Security OASO7c ausreichen um auch in sensiblen Bereichen ein angemessenes Sicherheitsniveau zu gew hrleisten Orchestrierung von Web Services Mithilfe der Sprache WS BPEL Web Service Business Process Execution Lan guage OAS07a JMS06 lassen sich Web Services zu komplexeren Diensten or chestrieren Dies erm glicht es Gesch ftsprozesse aus elementaren Web Service Bausteinen mit definierten Schnittstellen
104. gen ber tritt der urspr ngliche Vorteil von Java n mlich die M glichkeit spezielle Java Klassen so genannte Applets ber das Internet zu laden ud gefahrlos auf dem eigenen Rechner in einem gesch tzten Bereich der so genannten Sandbox ausf hren zu k nnen deutlich in den Hintergrund In den nachfolgenden Abschnitten werden die grundlegenden Konzepte der Ob jektorientierung dargestellt Eine ausf hrlichere Einf hrung in die Objektorientie rung bieten Zep04 Bal98 LR06 Des Weiteren werden in Anlehnung an Oes05 Sti05 einige der wichtigsten Diagrammarten der UML sowie deren Semantik be schrieben Unter OOS08 findet sich eine Gegen berstellung von mehr als 100 UML Werkzeugen und deren Leistungsumfang Leser die mit der Objektorientierung ud 4 1 GRUNDKONZEPTE DER OBJEKTORIENTIERUNG 27 der UML vertraut sind k nnen den Rest des Kapitels berspringen 4 1 Grundkonzepte der Objektorientierung 4 1 1 Objekte und Klassen Bei jedem Programmmieransatz m ssen Objekte und Konzepte der Realwelt im Rechner repr sentiert werden In der Objektorientierung geschieht dies durch so genannte Objekte Jedes Objekt l sst sich durch zwei Merkmale charakterisieren 1 es besitzt einen eindeutigen Zustand und ein wohldefiniertes Verhalten und 2 unter allen Objekten ist es eindeutig identifizierbar Nicht jedes relevante Objekt wird individuell konzipiert Stattdessen beschreibt man Objekte mit gleicher Struktur und gleichem Verhalten
105. gt wurde als Prototyp an der Universit t M nster entwickelt MLK04 LMK04 Glass Box Testen findet auch Fehler die nur in Sonderf llen auftreten Allerdings ist der Rechenaufwand hier so gro dass es sich zwar f r das Testen von einzelnen algorithmisch komplexen Klas sen eignet i allg aber nicht f r die berpr fung ganzer Subsysteme oder Systeme Durch Verwenden beider Ans tze lassen sich die St rken von Black Box und Glass 82 KAPITEL 7 TESTEN Testfall 1 Testfall 2 a 17 42 a 17 42 ves INT wei up a length 1 Ergebnis 1 Ergebnis 1 S low lt up y j mid low up 2 up low mid 1 return mid Abbildung 7 3 Kontrollfluss berdeckung f r bin res Suchen Box Testen kombinieren Kapitel 8 Tools In diesem Kapitel sollen einige Werkzeuge vorgestellt werde deren Einsatz bei der Softwareentwicklung zu empfehlen ist oder zumindest berlegt werden sollte 8 1 Versionsverwaltung 8 1 1 Aufgaben Die Versionsverwaltung dient in der Softwareentwicklung der Verwaltung unter schiedlicher Versionen von digitalen Dokumenten wie Quellcode oder Dokumen tationsdateien Die wesentliche Aufgabe einer Versionsverwaltung besteht darin die unterschiedlichen Versionen der Dateien eines Projektes zu speichern Hierf r wer den zu jeder Version eine Versionsnummer sowie die Person welche die neu
106. herungen und Rahmenbedingungen Daher kann sich ein Vorgehensmodell wel ches sich in einem Projekt bew hrt hat in einem nur geringf gig anders gearteten Projekt als fataler Fehlgriff erweisen Dennoch neigen viele Projektleiter dazu aus Bequemlichkeit Routine oder mangelnden Kenntnissen f r unterschiedliche Pro jekte stets die gleichen Vorgehensmodelle einzusetzen Insbesondere Varianten des 5 6 KAPITEL 2 VORGEHENSMODELLE Wasserfall Modells werden aufgrund ihrer Einfachheit und ihrer hohen Verbreitung in der Praxis vielmals als eine Art Standardmethodologie eingesetzt Ein Vorgehensmodell oder Prozessmodell sollte Vorgaben fiir folgende Bereiche der Projektplanung berwachung und steuerung geben e sachlogische Strukturierung des Arbeitsablaufs Gliederung in Entwicklungs schritte Phasen oder Iterationen e Festlegung der jeweils durchzuf hrenden Aktivit ten e Fixierung der in den einzelnen Gliederungsabschnitten zu erstellenden Leis tungen e Definition von Kriterien zur berwachung des Projektfortschrittes Meilen steine Artefakte e Ermittlung der ben tigten sowie verf gbaren personellen und materiellen Res sourcen e Festlegung sowie Abgrenzung von Rollen Kompetenzen und Verantwortlich keiten e Ausarbeitung der anzuwendenden Standards Richtlinien Methoden und Werk zeuge Die zentralen Aspekte f r die ein Vorgehensmodell Handlungsempfehlungen bie ten sollte lassen sich kurz und pr gnant mit f
107. hode enth lt die in einer vom Framework Nutzer erstellten Unterklasse so berschrieben wird dass bei Aufruf der Fabrikmethode das gew nschte Objekt erzeugt wird Singleton stellt ein Einzelobjekt zur Verf gung und verhindert dass weitere Ob jekte der betreffenden Klasse erzeugt werden Es wird h ufig verwendet um in einem Softwaresystem globale Einstellungen zu speichern Prototyp erzeugt Objekte und insbesondere komplexe Objektstrukturen durch Klonen von Vorlagen statt durch direkte Verwendung von Konstruktoren Erbauer trennt den Konstruktionsprozess von komplexen Objektstrukturen von deren Repr sentation 6 2 Strukturmuster Strukturmuster befassen sich mit der Komposition von Klassen und Objekten um gr ere Strukturen zu bilden Als Beispiel wird im Folgenden der Adapter bzw 6 2 STRUKTURMUSTER 69 Wrapper vorgestellt der je nach Realisierung sowohl ein klassen oder objektba siertes Strukturmuster sein kann 6 2 1 Adapter Mitunter kann eine als wiederverwendbar entwickelte Klasse einer Klassenbibliothek nicht wiederverwendet werden weil ihre Schnittstelle nicht der von der Anwendung verlangten spezifischen Schnittstelle entspricht Das Adaptermuster l st dieses Pro blem und l sst Klassen zusammenarbeiten die wegen inkompatibler Schnittstellen ansonsten nicht dazu in der Lage w ren Im Allgemeinen passt ein Adapter die Schnittstelle des zu adaptierenden Objekts an eine andere Schnittstelle an und bie te
108. ie Integration mit COM wird durch die Verwendung des Adaptermusters er reicht Runtime callable Wrapper erm glichen den Zugriff auf COM Komponenten Microsoft unterst tzt eine Vielzahl von Programmiersprachen f r die CLR u a C J JScript Managed C und Visual Basic NET Da alle Sprachen vor der Ausf hrung in dieselbe Zwischensprache bersetzt werden erm glicht das NET Framework Programmiersprachenunabh ngigkeit Net Framework COM Dienste Betriebssystem Abbildung 5 11 Architektur des NET Frameworks 58 KAPITEL 5 SOFTWAREARCHITEKTUREN COM Das Component Object Model SGM02 S 329 ff stellt die Grundlage komponen tenbasierter Software fiir die Microsoft Windows Plattform dar Beim COM handelt es sich um einen bin ren sprachunabh ngigen Standard zur Definition von Schnitt stellen Das Verhalten einer Schnittstelle wird durch den COM Standard nicht weiter spezifiziert d h es werden keine Vorgaben gemacht wie das Verhalten der Schnitt stelle umzusetzen ist Eine COM Schnittstelle muss daher nicht zwangsl ufig durch ein Objekt implementiert werden sondern kann auch lediglich aus einer Menge von Funktionen bestehen die die Vorgaben der Schnittstelle umsetzen Abbildung 5 12 zeigt den Aufbau einer COM Schnittstelle Sie wird auf bin rer Ebene durch einen Interface Knoten repr sentiert Dieser Knoten enth lt einen Zei ger auf eine Tabelle von Funktionszeigern vTable Aus der Sicht ein
109. iebnahme unterschieden Der Entwicklungsablauf verl uft sequentiell d h eine Aktivit t muss vollst ndig beendet werden bevor die n chste gestartet werden kann vgl Abbildung 2 1 Um auf nderungen eingehen oder nachtr glich Korrekturen vornehmen zu k nnen sind in jeder Phase R ckspr nge auf vorangegangene und bereits abgearbeitete Phasen m glich Aufgrund seiner Einfachheit und des geringen Managementaufwands wird das Wasserfall Modell in der Praxis verbreitet eingesetzt Allerdings gibt es auch eine Reihe von Kritikpunkten e Das Wasserfall Modell verleitet aufgrund seines sequentiellen Charakters da zu die Anforderungsdefinition zu Beginn des Projektes vorzunehmen und anschlie end f r beendet zu erkl ren Ergeben sich im weiteren Verlauf des Projektes nderungen an den urspr nglich erhobenen Anforderungen oder Erg nzungen so k nnen diese in einer sp ten Projektphase nicht mehr oder nur mit enormen Aufwand ber cksichtigt werden e Test und Integrationsaktivit ten sieht das Wasserfall Modell erst nach dem Abschluss der Implementierungsphase vor Fehler werden oftmals erst dann er kannt wenn das Projekt weit fortgeschritten und ein Grossteil des verf gbaren 8 KAPITEL 2 VORGEHENSMODELLE Budgets aufgebraucht ist Zudem steigt der Aufwand fiir die Behebung von Fehlern mit zunehmendem Fortschritt des Projektes berproportional an Ins besondere die Beseitigung von Problemen die auf Fehlentscheidungen in der Definiti
110. ier Phasen des Projektes in unterschiedlich hohem Ma e an was durch die Darstellung in Form eines Gebirges verdeutlicht wird Auch in fr hen Phasen fallen hier bereits Implementierungs und Test Arbeiten an z B wenn es darum geht anhand eines kleinen Beispiels herauszufinden ob zwei Platt formen oder Frameworks vertr glich sind Die Phasenziele k nnen in Teilziele zerlegt werden welche jeweils durch eine Iteration abgearbeitet werden Der Projektfort schritt wird durch Meilensteine berpr ft und dokumentiert welche den Abschluss einer Phase oder Iteration markieren k nnen Charakteristisch f r den RUP sind sechs so genannte Best Practises welche bei der Umsetzung der Grundprinzipien helfen sollen Im Einzelnen sind dies Iterative Entwicklung Anforderungsmanage ment Architekturzentrierte Entwicklung Visuelle Modellierung in der Regel mit UML Qualit tssicherung und nderungsmanagement Im Rahmen eines RUP Projektes m ssen neben der eigentlichen Software zum Zweck des Projektmanagements eine ganze Reihe zus tzlicher Dokumente erstellt werden Der hohe Strukturierungsgrad des RUP und seine starke Ausrichtung auf formale Dokumente und Definitionen macht dieses eher schwergewichtige Vor gehensmodell in erster Linie f r Projekte mit mehr als 10 Beteiligten und einer Dauer von mehreren Monaten interessant Sowohl die Eigenschaften des zu entwi ckelnden Systems als auch der Verlauf des Entwicklungsprozesses sind in hohem Grad
111. iffs und Deploymentinformationen Um fiir eine bestimmte Anforderung einen ad quaten Web Service finden und adressieren zu k nnen kann der Standard UDDI verwendet werden UDDI stellt mithilfe einer SOAP Schnitt stelle einen Verzeichnisdienst bereit der Informationen ber Web Services und deren Anbieter enth lt Die Interaktionen zwischen einem Dienstanbieter und einem Kon sumenten sind in Abbildung 9 8 veranschaulicht Der Anbieter ver ffentlicht in einer UDDI Registry Informationen zu seinem Unternehmen bzw seiner Organisation so wie die WSDL Beschreibung der zu ver ffentlichen Web Services UDDI Registry WS description iind Anwendung A Anwendung B Service Ges Service Anbieter bind invoke Konsument Abbildung 9 8 Interaktionen zwischen Web Services Der Konsument durchsucht dieses Verzeichnis findet anhand der Anbieter und Dienstbeschreibungen einen passenden Dienst und erhalt die WSDL Beschreibung des ausgew hlten Web Services Mit dieser kann er den entsprechenden Dienst inte grieren und ber SOAP Nachrichten auf dessen Funktionen zugreifen Sollen Web Services lediglich innerhalb der eigenen Organisation oder eines beschr nkten Kreises von Anbietern und Nutzern ver ffentlicht werden so kann als Alternative zu UDDI auch ein eigener Web Service Verzeichnisdienst eingerichtet werden In vielen F llen kann auf die Verwendung eines Registry Dienstes so
112. in unterschiedlichen Systemen redundant zu implementieren Schwierig nachzuvollziehende Fehler sind dann m glich wenn nderungen an der Programmlogik nicht konsistent nachgef hrt werden oder transaktionsverarbeitende Logik dupliziert wurde Aus diesen Gr nden stellt die Datenintegration nur dann eine unproblematische Integrationsl sung dar wenn lediglich ein lesender Zugriff auf die Daten einer Anwendung ben tigt wird Die Integration auf Funktionsebene ist die semantisch reichhaltigste Art der In tegration da hier nicht nur die Semantik der Daten sondern zudem die Semantik der Programmlogik einer Anwendung zug nglich gemacht wird Dar ber hinaus lassen sich Redundanzen welche in den zu integrierenden Systemen sowohl auf Daten ebene als auch auf Funktionsebene bestehen k nnen weitestgehend beseitigen An dererseits l sst sich eine Funktionsintegration nicht in jedem Fall ohne Schwierig keiten durchf hren Probleme sind vor allem dann zu erwarten wenn Anwendungen zu integrieren sind die ber keine Schnittstellen zur Anbindung an Fremdsyste me verf gen und keinen Einblick in den Quellcode erlauben Dar ber hinaus ist die Funktionsintegration mit einem nicht zu untersch tzenden technischen Aufwand verbunden Hierzu tr gt nicht zuletzt die F lle der verf gbaren Integrationstechno logien bei Aufgrund der unterschiedlichen Eigenschaften der Technologiealternati ven sollte der Auswahl einer geeigneten Integrationstechnologie mindest
113. ind Modell den Web Controls und der guten Visual Studio Integration den L sungen f r Java EE berlegen zu sein Im Bereich der Gesch ftslogik insbesondere bei der Anbindung an relationale Datenbanken bietet Java EE die berzeugenderen Ans tze Ein Nachteil der NET Plattform ist hier vor allem darin zu sehen dass ADO NET noch kein automatisches O R Mapping unterst tzt F r Java EE gibt es neben der JPA viele weiter Frameworks die diese Funktion automatisieren So wohl Java EE als auch NET Komponenten k nnen relativ leicht als Web Services bereitgestellt und eingebunden werden Hierdurch werden auch heterogene Softwa rekomponenten in denen Java EE NET und andere Ans tze verkn pft werden erm glicht Web Services sind die lingua franca der Software Integration und ent sprechen damit der Sprache Englisch im internationalen Gesch ftsleben 64 KAPITEL 5 SOFTWAREARCHITEKTUREN Kapitel 6 Entwurfsmuster Entwurfsmuster GHJV96 sind bew hrte L sungen h ufig auftauchender Entwurfs probleme Durch ihre Verwendung ist eine Wiederverwendung auf Entwurfsebene m glich das Rad muss nicht mehr st ndig neu erfunden werden Im objektorien tierten Kontext besteht ein Muster aus einem System von wenigen Klassen Muster erlauben ein Softwaresystem auf einem h heren Abstraktionsniveau zu verstehen Statt als System von sehr vielen Klassen wird es von den Entwicklern als Kombina tion von deutlich weniger Mustern wahrgenom
114. ine klare Trennung von HTML und Anwendungscode erreicht die es erm glicht beide parallel und unabh ngig von einander zu entwickeln 56 KAPITEL 5 SOFTWAREARCHITEKTUREN VORTEILE NACHTEILE Hohe Produktivitat steile Lernkurve Echte HTML Templates Schlechte Dokumentation Viele Innovationen zwischen Lange Versionszyklen Versionszyklen Quelle Raible Rai07 Tabelle 5 6 Vor und Nachteile des Tapestry Frameworks 9 2 4 NEI Grundlagen Das NET Framework Mic07b ist eine von Microsoft entwickelte Implementierung der Common Language Infrastructure CLI Die CLI ist ein ISO IEC ECMA Standard der ahnlich wie CORBA eine programmiersprachen und plattformneutrale Softwarearchitektur spezifiziert Im Unterschied zu CORBA defi niert CLI zusatzlich eine Common Intermediate Language CIL und ein Dateifor mat fiir das Deployment von Komponenten den sogenannten Assemblies In diesen Punkten hnelt die CLI der Java Spazifikation die Java Bytecode als Zwischenspra che und Jar Dateien fiir das Deployment definiert Die CLI umfasst e die Common Language Specification CLS eine Menge von Regeln die eine Programmiersprache erfiillen muss um in die Zwischensprache die Com mon Intermediate Language bersetzt werden zu k nnen e das Common Type System CTS ein f r alle Sprachen der CLI einheitli ches und verbindliches Typsystem und e eine Laufzeitumgebung das Virtual Execution System VES welches
115. ingesetzten und h ufig gewarteten Softwaresystemen sicher stellen k nnen dass die urspr ngliche Architektur im Laufe der Zeit nicht immer mehr untergraben und die Verst ndlichkeit und Wartbarkeit somit verschlechtert wird sondern dass die ursp nglichen Architekturrichtlinien eingehalten werden z B bez glich der Schichten Solche Tools k nnen auch eine Vielzahl von Kennzahlen zu einem Softwareprodukt ermitteln die u a Aufschluss ber dessen Zustand geben Kapitel 9 Enterprise Application Integration Die Anwendungsintegration oder Enterprise Application Integration EAI CHK06 Lin00 geh rt zu den Themengebieten der Informatik die in Wissenschaft und Pra xis vielfach diskutiert werden Trotzdem wird das Konzept der EAI h ufig verk rzt oder sogar grunds tzlich falsch verstanden Neben einer uneinheitlichen Definition der relevanten Begriffe tr gt vor allem die F lle der im Kontext der EAI verf gbaren Produkte und Technologien zu der Verwirrung bei Nicht selten wird EAI mit dem Einsatz bestimmter Technologiekonzepte z B Middleware Plattformen oder In tegrationsarchitekturen z B Service Orientierte Architekturen gleichgesetzt Das Spektrum der verf gbaren Integrationstechnologien ist aufgrund der sich wandeln den Anforderungen an die Anwendungsintegration fortw hrenden Ver nderungen unterworfen Die Dominanz aktueller Technologietrends am Markt f r Integrati onsprodukte und in den wissenschaftlichen Publikationen beg
116. ird bei den Web Architekturen diese Funktion auf Web Server und Web Browser aufgeteilt Die Kommunikation zwischen Web Browser und Web Server basiert auf dem HTTP Protokoll was zur Folge hat dass die Verbindung zwischen Client und Ser ver nach jedem Request Response Zyklus wieder getrennt wird Im Unterschied zu einem Desktop Client besteht also keine dauerhafte Verbindung zum Server Um dennoch eine Zusammenfassung von Zugriffen zu Sitzungen zu erm glichen wird auf Techniken wie Cookies zur ckgegriffen Diese werden bei jeder Kommunikation zwischen Web Client und Web Serverim Header der betreffenden HTTP Nachricht mitgeschickt und erm glichen so die Zuordnung eines Zugriffs zu einer Sitzung Aufgrund dieser zentralen Unterschiede ergeben sich unterschiedliche Vor und Nachteile der beiden Architekturen welche in der nachfolgenden Tabelle gegen ber gestellt werden Multi Channel Architektur Der Vorteil einer Schichtenarchitektur zeigt sich vor allem dann wenn der Zugang zum System ber verschiedene Kan le erfolgen soll Durch die Verteilung der Pr sentations Verarbeitungs und Datenhaltungsfunkti on auf unterschiedliche Schichten muss f r eine neue Zugangsm glichkeit nicht das komplette System neu implementiert werden da es ausreichend ist die entsprechen den Sichten um weitere Module zu erg nzen Dabei kann auf die Funktionalit ten der bereits vorhandenen Schichten zur ckgegriffen werden 5 2 KOMPONENTENBASIERTE ARCHITEKT
117. ite umgewandelt Dieses Modell erm glicht eine Oberfl chenprogrammierung die sehr viel hnlichkeiten mit der Programmierung von Desktop Oberfl chen aufweist Spring MVC Das Spring MVC Framework Int07 JHA 05 zur Entwicklung von Web Anwen dungen ist ein Modul des Spring Frameworks Spring selber ist eine auf Java basie rende Plattform zur Serverprogrammierung die ebenso wie die Java EE Plattform dazu dient verteilte mehrschichtige und komponentenbasierte Architekturen zu im plementieren Ziel von Spring ist es die Entwicklung von Anwendungen f r Application Server durch ein leichtgewichtiges POJO basiertes Programmiermodell zu vereinfa chen Um dieses Ziel zu erreichen unterst tzt Spring und demzufolge auch Spring MVC die folgenden Programmierparadigmen e Dependency Injection Spring bietet ein auf der JavaBean Technologie ba sierendes Konfigurationsmanagement mit dem die Abh ngigkeiten zwischen den einzelnen Komponenten reduziert werden Hierf r werden die Abh ngigkeiten die eine Komponente besitzt nicht durch sie selbst bestimmt sondern von au Ben ber die Argumente eines Methodenaufrufes injiziert 5 2 KOMPONENTENBASIERTE ARCHITEKTUREN 59 VORTEILE NACHTEILE Gute Integration mit anderen Tech Aufw ndige Konfiguration durch nologien und Frameworks XML Leichtes Testen durch Dependency Erfordert viel Code in JSPs Injection Durch hohe Flexibilit t u U man gelnde Struktur kein Parent C
118. itte oder Arbeitspake te dar welche im Rahmen des Entwicklungsprozesses zu erledigen sind Die Granularit t der Aktivit ten sollte so gew hlt werden dass sich diesen jeweils ein sinnvolles und abgrenzbares Ergebnis sowie eindeutig formulierte Kompe tenzen und Verantwortlichkeiten zuordnen lassen e Disziplinen erm glichen eine inhaltliche Strukturierung der Entwicklungsakti vit ten Der RUP unterscheidet die sechs Kerndisziplinen Gesch ftsprozessmo dellierung Anforderungsanalyse Analyse und Design Implementierung sowie Test und Softwareverteilung Hinzu kommen die drei unterst tzenden Diszipli nen Konfigurations und nderungsmanagement Projektmanagement sowie Infrastrukturmanagement e Akteure erm glichen die Verkn pfung von Aufgaben und Artefakten mit den daf r verantwortlichen Personen und Rollen 10 KAPITEL 2 VORGEHENSMODELLE Phases Disciplines Inception Elaboration Construction Transition Business Modeling Requirements i Analysis amp Design Implementation Test Deployment Configuration amp Change Mgmt Project Management Environment oes oe a Iterations Abbildung 2 2 Der Rational Unified Process Abbildung 2 2 verdeutlicht das Zusammenspiel der vorgestellten Grundkonzepte innerhalb des Entwicklungsprozesses In den vier Projektphasen werden die nach Disziplinen geordneten Aktivit ten durch festgelegte Akteure ausgefiihrt Die ein zelnen Aktivit ten fallen in den v
119. itzen an den Assoziationen sagen aus dass der Zugriff auf die jeweiligen Nachbarobjekte nur in Pfeilrichtung m glich ist Von einem geschachtelten Ausdruck kann also beispiels weise auf die beiden Teilausdriicke zugegriffen werden nicht aber umgekehrt 4 2 3 Anwendungsfalldiagramme Ein Anwendungsfall use case beschreibt eine konkrete funktionalen Anforderung an ein Anwendungssystem bzw eine Interaktion zwischen einem Akteur und dem System Hierbei wird nur beschrieben was das System leisten muss aber nicht wie es das leisten soll Ein Anwendungsfall wird durch einen Akteur initiiert Ein Akteur kann sowohl ein Anwender als auch ein anderes Anwendungssystem sein Ublicherweise werden nicht die konkreten beteiligten Personen unterschieden son dern ihre Rollen die sie im Kontext eines bestimmten Anwendungsfalls einnehmen z B Handler und Kunde 34 KAPITEL 4 OBJEKTORIENTIERUNG UND UML Ein Anwendungsfalldiagramm zeigt die Zusammenh nge und Abh ngigkeiten zwischen Anwendungsf llen und Akteuren Ein als Strichm nnchen dargestellter Akteur ist im Diagramm durch eine Linie mit einem oder mehreren als Ellipse dar gestellten Anwendungsf llen verbunden an denen er beteiligt ist Ein Beispiel f r ein Bibliothekssystem ist in Abbildung 4 7 dargestellt Mahnungen O verschicken A Abrechnungssystem lt lt includes gt gt Kunde S Authentifizieren 2 2 7 lt lt includes gt gt Buch zuriickgeben lt l
120. kennbar ob ein Fehler mit der Erzeugung einer Nachricht im Quell system dem Nachrichtenformat selbst der bertragung der Nachricht oder ihrer Auswertung im Zielsystem zusammenh ngt Java Messaging Service In einem Java Umfeld bietet sich Java Message Service JMS vgl Sun07d als m gliche Implementierungsplattform f r eine nachrichtenbasierte Kommunikation an Die JMS API erlaubt es Java EE Anwendungen Nachrichten zu erzeugen zu versenden und zu empfangen Sie unterst tzt die Umsetzung einer lose gekoppelten verteilten und asynchronen Kommunikationsplattform Vorteilhaft ist die Verf gbar keit einer ausgereiften API die dem Anwender eine einfache Benutzung erm glicht und dar ber hinaus Dienste wie Transaktionssicherung oder die Unterst tzung ver schiedener Nachrichtenmodelle bereitstellt Neben der Punkt zu Punkt Kommunika tion Unicast welche mit einem E Mail Versand von einem Sender an einen Empf n ger verglichen werden kann lassen sich Nachrichten im Publish and Subscribe Modus versenden Beim Publish and Subscribe werden Nachrichten nicht an einen bestimm ten Empf nger sondern an ein so genanntes Topic gesendet Empf nger einer Nach richt sind dabei nur solche Systeme die das jeweilige Topic abonniert haben Auf diese Weise l sst sich auch eine Multicast oder Broadcast Kommunikation nachbil den welche mit einem E Mail Versand eines Senders an mehrere Mitglieder bzw eine ganze Gruppe von Empf ngern vergleichba
121. lient Prasentation Web Server Web Server PR Minion Pe eae Verarbeitung Session Beans NET Kissen Entities ADO NET Abbildung 5 13 Architekturvergleich von Java EE und NET Anwendungen re Request Response Zyklen zwischen Browser und Webserver hinweg erzeugt sei nen eigenen HTML und JavaScript Code zur Webclient seitigen Visualisierung im Browser kann mit anderen Controls zu einem komplexeren Control kombiniert wer den und wandelt Benutzereingaben in entsprechende Ereignisse um Diese Eigen schaften erm glichen es in einer zustandslosen Web Umgebung ein ereignisbasiertes zustandsbehaftetes Programmiermodell zu realisieren hnlich wie bei den Java EE Frameworks JSF und Tapestry Das ASP NET Framework bietet eine hohe Performanz und Skalierbarkeit Gr n de hierf r sind die Pr compilierung der ASPX Seiten die vielf ltigen Caching M glichkeiten und die automatisierte Sitzungsverwaltung die eine Sitzungsverfol gung auch auf einer Webfarm erm glicht Im Vergleich zu anderen Web Frameworks werden bei ASP NET gro e Teile des HTML und JavaScript Codes automatisch ge neriert Aussehen und Verhalten der Steuerelemente werden im Wesentlichen ber deren Eigenschaften gesteuert das Erzeugen des HTML Codes geschieht dann auto matisch Weiterf hrende Informationen ber die ASP NET Technologie finden sich u a in LH05 Loh03 5 2 5 Vergleich Java EE und NET In diesem Abschnitt werden die Komponenten Frameworks Java E
122. lisierungen 2 2 2 2 6 8 Entwurfsmuster Beobachter EK EE e EE EEN EEN 7 3 Kontrollfluss berdeckung a oaa E A e E rasen 8 1 Speichermodelle f r die Versionskontrolle 8 2 Kategorisierung von CASE Tools oaoa a aa a 9 1 Vollst ndige Punkt zu Punkt Integration von sechs Systemen D 9 2 Hub and Spokes Integration 93 aerer eler ee ie A oe i e det Wed 9 4 Integration auf Datenebene e 9 5 Integration auf Funktionsebene 00 0048 9 6 bersicht Integrationstechnologien 9 7 Entfernter Methodenaufruf ber einen Objekt Request Broker 9 8 Interaktionen zwischen Web Services 2 222 9 9 Integration auf Benutzerschnittstellenebene 10 1 Klassendiagramm Buch und Exemplar 10 2 Generierter EJB Code f r die Klasse Exemplar im Buch Beispiel 10 3 xPand Transformationsregeln im Buch Beispiel 2 Tabellenverzeichnis 1 1 3 1 3 2 3 3 3 4 5 1 5 2 5 3 5 4 5 9 5 6 Eignung von Technologien Ma nahmen und Ans tzen FP Bewertung von Eingaben Ausgaben und Abfragen FP Bewertung von internen Datenbest nden und Referenzdaten Beispiel Ermittlung von Function Points 2 2 2 2 Typische Risiken einer Software Entwicklung Vor und Nachteile von Schichtenarchitekturen Vergleich von Schichtenarchitekturen e Vor und Nachteile des Struts Frameworks Vor
123. llen an denen das jeweilige Objekt aktiv ist verdickt wird Horizontale Pfeile zeigen an wo eine Nach richt an ein Nachbarobjekt geschickt wird d h wo eine Methode des Nachbarobjekts mit welchen Parametern aufgerufen wird Eine gestrichelte Kante in Riickrichtung kann verwendet werden um anzuzeigen wann welches Ergebnis des Methodenauf rufs zur ckgeschickt wird Ein Pfeil von einem Objekt zu sich selber repr sentiert eine interne Operation des Objekts Ein Objekt kann nur dann eine Nachricht an ein anderes Objekt schicken wenn es dieses Objekt kennt d h wenn die zugeh rigen Klassen durch eine Assoziation verbunden sind das erste Objekt das zweite er zeugt hat oder eine Referenz auf das zweite Objekt als Teil Ergebnis einer vorhe rigen Rechnung des ersten Objekts ermittelt wurde UML Modellierungswerkzeuge k nnen insbesondere berpr fen ob die in einem Sequenzdiagramm unterstellte As soziation zwischen zwei Klassen in einem Klassendiagramm wirklich vorhanden ist und die Modelle insofern konsistent sind Geschachtelt Ausdruck Ausdruck Addition auswerten auswerten ergebnis1 GE ell auswerten ergebnis2 Wie a a dy Ia ere ek tae al ausfuehren ergebhis 1 ergebnis2 gt ergebnis ergebnis lt x y Abbildung 4 8 Sequenzdiagramm f r die Auswertung eines arithmetischen Aus drucks Abbil
124. llen Look and Feel Zudem sichert eine Widgetfabrik die Abh ngigkeiten zwischen den konkreten Widgetklassen ab Ein Swing Fenster sollte nur mit einem Swing Scrollbar ausgestattet werden Diese Konsistenzbedin gung wird automatisch als Konsequenz des Einsatzes einer SwingWidgetFabrik si chergestellt Das Abstrakte Fabrik Muster kann verwendet werden wenn 1 ein System un abh ngig von der Erzeugung Zusammensetzung und Repr sentation seiner erzeug ten Objekte sein soll 2 ein System mit einer von mehreren Produktfamilien kon figuriert werden soll 3 Konsistenzbedingungen bei der Zusammenarbeit von ver wandten Objekten sichergestellt werden m ssen und 4 nur eine Schnittstelle aber nicht die konkrete Implementierung einer Klassenbibliothek offen gelegt werden soll Das Abstrakte Fabrik Muster hat die folgenden Vorteile Zun chst erm glicht es Klassen von Objekten zu steuern welche durch die Anwendung erzeugt werden Da eine Fabrik f r den Prozess des Erzeugens von Objekten zust ndig ist und ihn kap selt isoliert es Klienten von den Implementierungs und Produktklassen Des Wei teren l sst sich ein einfacher Austausch von Produktfamilien realisieren Die Klasse einer konkreten Fabrik erscheint nur einmal in der Anwendung n mlich genau dort 68 KAPITEL 6 ENTWURFSMUSTER wo von ihr ein Exemplar erzeugt wird Dies erm glicht einen einfachen Austausch der von der Anwendung benutzten Fabriken und der damit zusammenh ngenden P
125. llst ndig im Detail zu lesen Sie k nnen dann gezielt die Kapitel durcharbeiten in denen Sie neue Aspekte vorfinden und die anderen eher diagonal lesen Zu jedem der hier behandelten Themen gibt es eigene umgangreiche B cher Eine umfassende detaillierte Darstellung h tte daher mehrere Tausend Seiten er fordert Ziel dieser Brosch re ist es daher nicht alle Aspekte der Softwaretechnik im Detail darzustellen sondern interessante Methoden und deren Vorz ge kurz vorzu stellen und Ihnen durch Literaturhinweise die M glichkeit zu geben die f r Sie rele vanten Aspekte in den entsprechenden umfassenderen Werk nochmal ausf hrlicher nachzuschlagen Die folgenden Themen werden in dieser Brosch re behandelt In Kapitel 2 wer den zun chst in der aktuellen Diskussion vielbeachtete Vorgehensmodelle f r die Softwareentwicklung vorgestellt und zwar der Unified Process und Extreme Pro gramming Viele Firmen setzen was das Vorgehensmodell angeht noch das klassi 1 2 KAPITEL 1 EINLEITUNG sche Wasserfallmodell ein In einigen Projekten mag das sinnvoll sein Zumindest aber in Projekten bei denen es bedeutsame Risiken zu bew ltigen gilt sollte zur Reduktion der Risisken und der Kosten der Behebung sp t erkannter Fehler eher ein iteratives Vorgehensmodell wie eines der beiden genannten Modelle eingesetzt werden Auch wenn man keinen der beiden Ans tze komplett bernimmt so kann man sich hieran zumindest einzelne Aspekte abschauen und
126. ls eine Zusammenstellung einzelner Softwarekomponenten beschrieben Eine Komponente ist ein Software Baustein mit einer spezifizierten Schnittstelle der konform zu einem Komponentenmodell ist das u a die Verkn pfungsm glichkeiten mit anderen Kom ponenten bestimmt Sie ben tigt zur Ausf hrung oft eine Komponentenplattform von der ihr Dienste wie z B Zugriffskontrolle Transaktionsverarbeitung und Syn chronisation mit einer Datenbank bereitgestellt werden Nicht zuletzt durch diese Dienste l sst sich eine Erh hung der Produktivit t und Qualit t erreichen Wei terhin wird angestrebt sorgf ltig getestete und zuverl ssige Komponenten auch in anderen Projekten wiederzuverwenden was wiederum eine Steigerung der Produk tivit t erm glicht Au erdem l sst sich durch eine Zerlegung eines Softwaresystems 46 KAPITEL 5 SOFTWAREARCHITEKTUREN Desktop Webservice Client ESSEN Client Pr sentation Webzugangs Web schicht Service Verarbeitung Gesch fts logik EE Datenhaltung Datenbank Abbildung 5 5 Multi Channel Architektur in mehrere unabh ngige Teilkomponenten das Abstraktionsniveau f r die Software entwickler erh hen 5 2 1 Komponenten Grundlage eines komponentenbasierten Softwaresystems ist ein Komponentenmo dell welches die Struktur der einzelnen Elemente der Architektur spezifiziert Ein Komponentenmodell umfasst im Wesentlichen eine genaue Beschr
127. men und dadurch leichter berblickt Jeder professionelle Softwareentwickler der diese Bezeichnung verdient sollte zu mindest die wichtigsten Muster kennen und bei den brigen Muster wissen wozu sie dienen und wo ihre Details bei Bedarf nachgeschlagen werden k nnen Muster sind in nahezu jeder gut strukturierten objektorientierten Architektur zu finden und besitzen vier grundlegende Elemente Jedes Muster wird durch einen Mustername benannt Entwurfsmuster stellen somit eine Terminologie f r den Softwareentwurf zur Verf gung welche die Kom munikation und die Dokumentation erleichtert und erweitert Der Problemabschnitt beschreibt wann ein Muster anzuwenden ist welches Problem adressiert wird und was sein Kontext ist Oft wird die Problembeschreibung eine Liste von Bedingun gen auff hren die erf llt sein m ssen wenn die Anwendung des Musters sinn voll sein soll Es beschreibt m gliche spezifische Entwurfsprobleme oder Klassen oder Objektstrukturen die symptomatisch f r einen unflexiblen Entwurf sind Der L sungsabschnitt beschreibt eine allgemeine Anordnung von Klassen und Objek ten aus denen der Entwurf besteht sowie ihre Beziehungen Zust ndigkeiten und Interaktionen Der Konsequenzenabschnitt beschreibt die Vor und Nachteile des aus der Anwendung eines Musters resultierenden Entwurfs und ist oft von zentra ler Bedeutung f r die Bewertung von Entwurfsalternativen Die Konsequenzen der Musteranwendung f r den Entwurf betref
128. mgekehrt Zeitverlaufsdiagramm sind etwas detaillierter da sie auch noch den ge nauen zeitlichen Ablauf auszudr cken gestatten wie dies bei der Modellierung von reaktiven Systemen h ufig erforderlich ist 4 2 5 Aktivit tsdiagramme Wie Sequenzdiagramme erlauben auch Aktivit tsdiagramme das dynamische Ver halten eines Systems zu modellieren allerdings auf einem etwas abstrakteren Ni veau Hier wird ein Ablauf nicht auf die Beitr ge beteiligter Objekte herunterge brochen sondern losgel st von Objekten und Nachrichten als Folge von Aktivit ten dargestellt Im Diagramm wird eine Aktivit t durch ein abgerundetes Rechteck re pr sentiert Pfeile zwischen den Aktivit ten geben an in welcher Reihenfolge die Aktivi ten durchlaufen werden Schwarze Balken zeigen an wo der Ablauf in parallel bearbeitete Teilabl ufe aufgespalten wird bzw wo diese Teilabl ufe wieder zusam mengef hrt werden Rauten stellen dar wo in Abh ngigkeit von gewissen Bedingun gen einer von zwei alternativen Abl ufen ausgew hlt wird bzw wo die Alternativen wieder zusammengef hrt werden Ein Pfeil zwischen zwei Aktivit ten kann optional mit einem Rechteck annotiert werden das anzeigt welche Daten in Pfeilrichtung flie en Geht von einer Aktivit t ein mit einem Blitz annotierter Pfeil aus so zeigt dies an dass im Falle eines Fehlers bei Ausf hrung der Aktivit t die Ausnahme Exception ausgel st wird auf die der Pfeil zeigt Geht der Ablauf hinter dem
129. n die Abhangigkeiten zwischen Paketen jeweils bestehend aus mehreren Klassen und die folgenden Verhaltensdiagramme Zustandsautomaten modellieren zustandsabhangiges Verhalten genauer eine Menge von m glichen Zust nden und die Ubergangsm glichkeiten zwischen diesen Interaktions bersichtdiagramme nutzen die Ausdrucksmittel von Aktivit ts diagrammen um Interaktionen die durch Interaktionsdiagramme beschrieben wurden zu kombinieren Details hierzu findet man zum Beispiel in Oes05 Sti05 Kapitel 5 Softwarearchitekturen Eine Softwarearchitektur beschreibt den grundlegenden Aufbau eines Softwaresys tems indem sie dessen wesentliche Elemente und deren Beziehungen zueinander darstellt Im Folgenden werden zwei weit verbreitete Ans tze zur Strukturierung von Softwaresystemen vorgestellt die sich auch kombinieren lassen n mlich Schich tenbildung und die Zerlegung in Komponenten 5 1 Schichtenarchitekturen Softwarearchitekturen deren Elemente Module Klassen in bereinander liegen den Schichten angeordnet sind werden als Schichtenarchitekturen bezeichnet Sie beschr nken die Zugriffe jedes Elements auf Elemente der gleichen oder tieferer Schichten Schichtenarchitekturen eigenen sich vor allem f r die Strukturierung von komplexen Systemen Sie reduzieren die Abh ngigkeiten zwischen den Elementen verschiedener Schichten und erh hen so u a die bersichtlichkeit Testbarkeit Wart barkeit und Wiederverwendbarkei
130. n kurz skizziert Datentransferobjekt data transfer object DTO stellt eine Zeile des Ergeb nisses einer Datenbankabfrage als Objekt zur Verf gung und erlaubt auf die Attribute ber get Methoden zuzugreifen Datenzugrifsobjekt data access object DAO kapselt den Zugriff auf eine Da tenquelle wie z B eine Datenbank und h lt diese daher austauschbar Business Delegate entkoppelt Pr sentations und Gesch ftslogik Kapitel 7 Testen Zum Thema Testen sollen im folgenden drei Aspekte genauer betrachtet werden Zun chst wird erl utert wie zu testende Softwarebausteine mit m glichst geringem nderungsaufwand isoliert getestet werden k nnen Dann wird die Automatisierung des Testens behandelt Im letzten Abschnitt dieses Kapitels wird dann gezeigt nach welchen Prinzipien Testf lle erzeugt werden k nnen 7 1 Isolation zu testender Einheiten Beim Testen ist es nicht sinnvoll sofort das zu komplette betrachtete Gesamtsystem im Rahmen eines Big Bang Ansatzes zu testen Das Ergebnis eines solche Versuchs w re absehbar es w rde ein Fehler auftreten der aber im Rahmen des Gesamt systems nur sehr schwer lokalisieren lie e Stattdessen beginnt man typischerweise mit einzenen Basiseinheiten Modulen Klassen und setzt diese dann sukzessiv zu immer gr eren Teilsystemen zusammen wobei auftretende Fehler jeweils vor einer weiteren Integration beseitigt werden Ein Problem beim Testen von Basiseinheiten und Teilsystemen ist
131. nd Ein weiteres Problem ist in der komplexeren Qualit tssicherung zu sehen W hrend es bei konventioneller Softwareentwicklung ausreicht den entwi ckelten Code zu testen k nnen sich Fehler nun nicht nur im handgeschriebenen Programmcode sondern auch in den Modellen Transformationsregeln und Metamo dellen verbergen Debugger die die Fehlersuche ber diese verschiedenen Ebenen hinweg unterst tzen fehlen noch Literaturverzeichnis AndO8 Apa07a Apa07b BAO4 Bal93 Bal98 Bal01 Bet07 le BJ97 BMHO6 Boe89 ANDROMDATEAM AndroMDA http www andromda org 2008 APACHE SOFTWARE FOUNDATION Struts http struts apache org Abrufdatum 17 07 2007 APACHE SOFTWARE FOUNDATION Tapestry http tapestry apache org Abrufdatum 17 07 2007 BECK Kent ANDRES Dirk Extreme Programming Explained Embrace Change 1 Boston Addison Wesley 2004 BALZERT Helmut CASE Systeme und Werkzeuge 1 Mannheim B I Wissenschaftsverlag 1993 BALZERT Helmut Lehrbuch der Software Technik Software Management Software Qualitig 5 ssicherung Unternehmensmodellie rung 1 Heidelberg u a Spektrum Akademischer Verlag 1998 BALZERT Helmut Lehrbuch der Software Technik Software Entwicklung 1 Heidelberg u a Spektrum Akademischer Verlag 2001 BETTER SCM INITIATIVE Version Control System Comparison http better scm berlios de comparison comparison html Abrufda tum 17 07 2007 BA
132. nkt f r die Durchf hrung eines Refactorings sind so ge nannte bad smells welche auf Schwachstellen im Code hinweisen Beispiele f r bad smells sind duplizierter Code berlange Klassen Methoden oder Parameterlisten switch Anweisungen oder tempor re Variablen Durch eine iterative Verbesserung der Codequalit t mithilfe von elementaren Refactorings k nnen Schwachstellen und potentielle Fehlerquellen im Code beseitigt werden Durch die erh hte Qualit t des Quelltextes verbessert sich dar ber hinaus die Verst ndlichkeit Wartbarkeit und Erweiterbarkeit des Softwaresystems Beispiele f r Refactoring Schritte sind das Verschieben von Klassen Methoden oder Feldern die Zusammenf hrung logisch zusammen geh riger Felder in einem Objekt oder die Nutzung von Subklassen und Polymorphie zur Vermeidung von switch Anweisungen Ausgangspunkt und Ziel je des Refactoring Schrittes ist stets eine lauff hige Version des Softwaresystems Um das Risiko unerw nschter Seiteneffekte m glichst gering zu halten sind komplexe Restrukturierungen in elementare Refactorings zu zerlegen Am Ende jedes Refac torings stehen Tests die die Funktionalit t des ge nderten Systems berpr fen Um diese vollst ndig und effizient durchf hren zu k nnen ist eine hohe Abdeckung mit automatisierten Tests erforderlich Andernfalls werden m glicherweise nicht alle Feh ler aufgedeckt oder der Zeitaufwand f r die Durchf hrung der Refactorings steigt unverh ltnism
133. nn sich die Tabelle ndert so wird zun chst das Datenobjekt aktualisiert welches dann alle Darstellungsobjekte ber seine Zustands nderung informiert Als Reaktion dar auf synchronisiert sich jedes Darstellungsobjekt mit dem Zustand des Datenobjekts mit Hilfe von Anfragen Abbildung 6 8 zeigt die Struktur des Beobachtermusters Die Basisklasse Subjekt definiert das Protokoll zur Benachrichtigung ber nderungen und die Schnittstelle zum An und Abmelden einer beliebigen Anzahl von Beobachtern Ein Beobach ter definiert eine Aktualisierungsschnittstelle ber welche die Synchronisation mit den ge nderten Daten des Subjekts erfolgt Der Zustand eines KonkretesSubjekt Objekts kann ber die Operation SetzeZustand ge ndert werden Eine Zustands nderung des konkreten Subjekts bewirkt die Benachrichtigung aller registrierten Beobachter welche sich daraufhin mit dem Subjekt ber die Operation GibZustand synchronisieren Das Beobachtermuster kann verwendet werden wenn 1 die nderung eines Ob jekts die nderung anderer Objekte verlangt wobei die Anzahl der zu ndernden Objekte nicht bekannt ist 2 ein Objekt andere Objekte benachrichtigen sollte ohne Annahmen dar ber treffen zu d rfen wer diese Objekte genau sind und 3 wenn eine Abstraktion zwei voneinander abh ngige Aspekte besitzt die aus Gr nden der Wiederverwendung in unterschiedlichen Objekten gekapselt werden sollen Somit erm glicht das Beobachtermuster Subjekte und
134. nn der Entwicklung werden alle Testf lle fehlschlagen da noch keine Programmfunktionalit t implementiert wurde Im weiteren Verlauf dokumentieren die erfolgreich durchlaufenen Testf lle den Projektfortschritt Weiterhin sind die Testf lle bei so genannten Regressionstests wichtig um nach einer nderung schnell und automatisch festzustellen ob die bisher realisierte Funktionalit t immer noch fehlerfrei verf gbar ist Nur durch diese Regressionstests l sst sich ein Projektfort schritt sicherstellen Refactoring Unter Refactoring FowO5 versteht man die schrittweise und systematische Verbesse rung der Struktur eines Softwaresystems unter Beibehaltung seiner Funktionalit t Der von Martin Fowler entwickelte Ansatz zur Coderestrukturierung gr ndet auf der Beobachtung dass Softwaresysteme im Laufe der Zeit bedingt durch zahlreiche nderungen Anpassungen und Erweiterungen eine zunehmend un berschaubare und chaotische Struktur annehmen Bezeichnend f r diesen Zustand ist das Anti Pattern des Spaghetti Codes Por07 welches auf plakative Weise ein Softwaresys 2 3 EXTREME PROGRAMMING 13 tem mit einer undurchdringlichen Struktur und Kontrollflusslogik beschreibt Auf grund der immer schwieriger zu durchschauenden Programmstruktur w chst die Gefahr dass nderungen in einem Programmteil unerw nschte Seiteneffekte in an deren Teilen der Software ausl sen die sich nur mit hohem Aufwand aufdecken und beheben lassen Ansatzpu
135. olgender Frage zusammenfassen Wer welche Akteure macht wann zeitliche und sachlogische Abfolge wie welche Standards Richtlinien Werkzeuge und Methoden was welche Artefakte Vorgehensmodelle f r die Softwareentwicklung lassen sich zwei grundlegenden Kategorien zuordnen den phasenorientierten und den agilen Vorgehensmodellen Als Orientierungshilfe werden im Folgenden mit dem Rational Unified Process RUP und Extreme Programming XP zwei Vertreter dieser unterschiedlichen Denkrich tungen vorgestellt Zuvor soll jedoch zum Vergleich das Wasserfallmodell skizziert werden welches eines der einfachsten phasenbasierten Vorgehensmodelle darstellt Aufgrund der gro en Verbreitung des Wasserfallmodells in der Praxis soll auf ei ne ausf hrliche Darstellung jedoch verzichtet und vielmehr auf die Schwachstellen dieses Ansatzes eingegangen werden 2 1 DAS WASSERFALL MODELL 7 System anforderungen Software anforderungen CA L Analyse L Entwurf zu E Implementierung EH Test E Betrieb Abbildung 2 1 Das Wasserfallmodell 2 1 Das Wasserfall Modell Das Wasserfall Modell Bal98 S 99 f gliedert den Entwicklungsprozess in mehrere Phasen die sukzessive abgearbeitet werden und an deren Ende das fertige Software produkt steht In der urspr nglichen Form werden die Phasen Anforderungsdefini tion Analyse Entwurf Implementierung Test und Inbetr
136. ollen Der Vorteil eines Klassenadapters ist dass er Teile des von der adaptierten Klasse geerbten Ver haltens tiberschreiben kann weil er Unterklasse von ihr ist Zudem wird lediglich ein einzelnes Objekt verwendet Es wird keine Zeigerindirektion ben tigt um zum adap tierten Objekt zu gelangen Im Gegensatz dazu erlaubt ein Objektadapter sowohl mit der anzupassenden Klasse selbst als auch mit allen ihren Unterklassen zusammen zuarbeiten Des Weiteren kann der Adapter neue Funktionalit t allen adaptierten Klassen auf einmal hinzuzuf gen Jedoch k nnen die Methoden der anzupassende Klasse nicht berschrieben werden 6 2 2 Weitere Strukturmuster Details zu den im Folgenden kurz skizzierten weiteren Strukturmustern findet man in GHJV 6 Br cke trennt eine Schnittstelle von ihrer Implementierung und erm glicht beide unabh ngig zu modifizieren Dekorierer erlaubt eine Klasse dynamisch um Funktionalit t zu erweitern bzw ihr Funktionalit t zu entziehen In solchen Anwendungen vermeidet dieses Muster die Erstellung einer sehr komplexen Klassenhierarchie Fassade vereinfacht die Nutzung eines Subsystems durch Bereitstellung einer kom pakten einfach zu verwendenden Schnittstelle Intern leitet die Fassadenklasse Aufrufe an die passenden Klassen des Subsystems weiter Fliegengewicht dient dem Sparen von Speicherplatz bei vielen hnlichen Kleinst objekten Kompositum repr sentiert rekursiv aufgebaute Objektstrukturen wi
137. on troller Quelle Raible Rai07 Tabelle 5 5 Vor und Nachteile des Spring MVC Frameworks e Integration Spring bietet gute Integrationsm glichkeiten mit anderen Fra meworks so dass sich bereits existierende und bew hrte L sungen leicht inte grieren lassen e Aspektorientierte Programmierung Durch dieses Paradigma k nnen ein zelne Aspekte das sind in der Regel anwendungs bergreifende Querschnitts funktionen wie z B Logging von der reinen Anwendungslogik isoliert werden Das Ziel ist es hierdurch die bersichtlichkeit Wartbarkeit und Wiederver wendbarkeit des Programmcodes zu erh hen Diese Eigenschaften geh ren im Vergleich zu anderen Web Frameworks zu den Besonderheiten von Spring MVC Wie der Name bereits andeutet setzt auch Spring MVC auf das MVC Paradigma Tapestry Tapestry Apa07b Ton06 basiert auf einer komponentenbasierten Architektur und weist daher hnliche Merkmale und Besonderheiten wie JSF auf Das Framework un terst tzt neben den blichen Merkmalen wie Seitennavigation Eingabevalidierung Internationalisierung und Sicherheit vor allem persistente d h Request Response Zyklus berdauernde Zust nde der Komponenten Durch die Verwendung von Komponenten erreicht Tapestry hnlich wie JSF einen relativ hohen Abstraktionsgrad bei der Oberfl chenprogrammierung verwen det jedoch f r die Erzeugung des HTML Codes eine eigene Template Engine Mithil fe der Template Engine wird e
138. on Look and Feel spezifischen Widgetklassen nicht ber die ganze Anwen dung verteilen 6 1 ERZEUGUNGSMUSTER 67 a AWTScrollbar SwingScrollbar 4 WidgetFabrik Klient ErzeugeScrollbar ErzeugeFenster Fenster Le gt AWTFenster SwingFenster je q A l SwingWidgetFabri AWTWidgetFabrikL e ve 1 a 1 Scrollbar ErzeugeScrollbar ErzeugeScrollbar I I ErzeugeFenster ErzeugeFenster i A I U U peace Abbildung 6 1 Entwurfsmuster Abstrakte Fabrik am Beispiel Dieses Designproblem kann mit einer abstrakten WidgetFabrik gel st werden die eine Schnittstelle zum Erzeugen jeder grundlegenden Art von Widget deklariert s Abbildung 6 1 Jede Widgetart wird durch eine abstrakte Klasse repr sentiert de ren konkrete Unterklassen den jeweiligen Look and Feel Standard implementieren F r jeden Look and Feel Standard gibt es eine konkrete Unterklasse der abstrakten Widgetfabrik welche f r jede abstrakte Widgetklasse eine Operation zum Erzeu gen eines neuen Widgets implementiert Eine abstrakte Fabrik verlagert folglich die Erzeugung von Objekten auf ihre konkreten Unterklassen Klienten erzeugen neue Widgets ausschlie lich ber die durch die abstrakte WidgetFabrik definierte Schnitt stelle ohne die konkreten Klassen zu kennen die sie benutzen Auf diese Weise blei ben sie unabh ngig vom aktue
139. onen sind Bei geringf gigen nderung werden daher zwei nahezu identische Versionen gespeichert Um ein Repository mit vielen unterschiedlichen Versionen effektiv und platzsparend verwalten zu k nnen ist es wichtig Redundanzen m glichst zu ver meiden Viele Versionsverwaltungssysteme speichern daher blicherweise lediglich die Unterschiede zwischen den einzelnen Versionen die nderungsmenge Um dies zu erreichen wird in vielen Systemen nur die neueste Version vollst ndig gespeichert w hrend alle lteren Versionen als R ckw rts Patch vorliegen ltere Versionen lassen sich dann durch Anwendung der R ckw rts Patches aus der aktuellsten Ver sion rekonstruieren Schnappsch sse Version 1 3 2 a N Delta1 1 N Delta 1 2 Anderungsmenge Ja Abbildung 8 1 Speichermodelle fiir die Versionskontrolle Verschiedene Versionen einer Datei k nnen entweder vollst ndig in Form von Schnappsch ssen oder als nderungsmenge die ausgehend von einer vollst ndigen Version nur die Versions unterschiede protokolliert gespeichert werden Es existiert eine Vielzahl von kommerziellen und nicht kommerziellen Versi onsverwaltungssystemen die aufgrund ihrer individuellen Eigenschaften f r unter schiedliche Anforderungen geeignet sind Eine Gegen berstellung der Eigenschaf ten bekannter Systeme findet sich z B bei Wik07 und Bet07 In einer von For rester durchgef hrten Studie Sch07 die 11 f hrende Versionsverwaltungssystem
140. ons oder Entwurfsphase zur ckgehen muss zu diesem sp ten Zeit punkt teuer erkauft werden e Ein Projekt welches dem Wasserfall Modell folgt liefert in der Regel erst sehr sp t eine lauff hige Version der zu entwickelnden Software an den Kun den aus Stellt dieser fest dass seine Anforderungen nicht vollst ndig oder nicht in der gew nschten Form umgesetzt wurden so ist eine Anpassung in den allermeisten F llen nicht mehr m glich Fine fr he Auslieferung von Teil funktionalit ten erm glicht es fr hzeitig ein Feedback durch den Kunden zu erhalten M gliche Fehlsteuerungen die sich aus einer unklaren oder unvoll st ndigen Erhebung der Anforderungen ergeben k nnen lassen sich auf diese Weise rechtzeitig korrigieren 2 2 Der Rational Unified Process Der Rational Unified Process RUP Rat07 ist ein iteratives Vorgehensmodell zur Softwareentwicklung welches von der Firma Rational Software heute IBM Ratio nal Software auf der Grundlage des Unified Process entwickelt wurde Rat07 Der Unified Process wurde parallel zur Unified Modelling Language UML Oes05 von Ivar Jacobson Grady Booch und James Rumbaugh entwickelt und kann als Me tamodell f r Vorgehensmodelle zur objektorientierten Softwareentwicklung aufge fasst werden Der RUP stellt eine konkrete Implementierung des Unified Process dar und basiert ebenfalls auf der UML als Modellierungssprache Als zentrale Prin zipien der Softwareentwicklung werden die Orientie
141. openArchitecture Ware 42 reference pdf 2007 EBERLING Werner LESSNER Jan Enterprise JavaBeans 8 1 Mnchen u a Carl Hanser Verlag 2007 FAIRLEY Richard Risk Management for Software Projects In IEEE Software 11 1994 Nr 3 S 57 67 FEJES Balasz Test Web Applications with HttpUnit http www javaworld com javaworld jw 04 2004 jw 0419 httpunit html page 1 Abrufdatum 28 03 2008 FOWLER Martin Refactoring Oder wie Sie das Design vorhandener Software verbessern 2 Mnchen Addison Wesley 2005 GAMMA Erich HELM Richard JOHNSON Ralph VLISSIDES John Entwurfsmuster Elemente wiederverwendbarer objektorientierter Softwa re 3 Bonn Addison Wesley 1996 HENNING Michi The Rise and Fall of CORBA In ACM Queue Com ponent Technologies 4 2006 Nr 5 HOLMES James Struts The Complete Reference 2 McGraw Hill Os borne Media 2006 LITERATURVERZEICHNIS 115 HP 08a HPOsb HS06 IBMO7a IBMO7b IFPO8 Int07 JHA 05 JMS06 Jun02 Jun04 JUn08 KBS05 Lam07 HP HP Functional Testing https h10078 www1 hp com cda hpms display main hpms_home jsp zn bto amp cp 1_4011_100__ Abrufdatum 28 03 2008 HP HP LoadRunner https h10078 www1 hp com cda hpms display main hpms_home jsp zn bto amp cp 1_4011_100__ Abrufdatum 28 03 2008 HOLMES James SCHALK Chris JavaServer Faces The Complete Re ference Complete Reference Series 1 McGraw Hill O
142. plication Testing in Java http watij com Abrufdatum 28 03 2008 WELLS Don Extreme Programming A gentle introduction http www extremeprogramming org index html Abrufdatum 19 09 2007 WIKIPEDIA Comparison of revision control software http en wikipedia org wiki Comparison_of_revision_control_software Abrufdatum 17 07 2007 WOLFFGANG Ulrich Modellgetriebene Entwicklung von Webapplikatio nen University of Miinster Department of Information Systems Diplom arbeit 2008 WORLD WIDE WEB CONSORTIUM W3C Web Service Glossa ry February 2004 http www w3 org TR ws gloss Abrufdatum 19 09 2007 WORLD WIDE WEB CONSORTIUM W3C XML Encryption Syntax and Processing December 2002 http www w3 org TR xmlenc core Abrufdatum 19 09 2007 WORLD WIDE WEB CONSORTIUM W3C XML Signature Syntax and Processing February 2002 http www w3 org TR xmldsig core Abrufdatum 19 09 2007 ZEPPENFELD Klaus Objektorientierte Programmiersprachen 1 Spek trum Akademischer Verlag 2004 Zij 5NER Stefan Portlets Portalkomponenten in Java 1 Frankfurt a M Entwickler Press 2006
143. r fen spielen automatisierte Tests eine tragende Rolle Einbeziehung des Kunden Viele Entwickler neigen zu einer phasenorientierten Sicht und Denkweise bei der die Aufnahme der Kundenanforderungen in einer fr hen Phase des Entwicklungs prozesses abgearbeitet und anschlie end endg ltig f r beendet erkl rt wird Kunden verf gen jedoch zu Beginn des Projektes h ufig nur ber ein sehr unscharfes Bild ihrer Anforderungen und Erwartungen welches sich im Verlauf des Projektes durch den Kontakt mit den Entwicklern und das Feedback aus der Betrachtung des entste henden Systems allm hlich konkretisiert und vervollst ndigt Die Anforderungsana lyse ist demnach vielmehr ein wechselseitiger Lernprozess bei dem die Entwickler im Projektverlauf immer mehr ber die Bed rfnisse des Kunden erfahren w hrend dieser seine Vorstellungen ber die M glichkeiten und Restriktionen der Technologie erweitert XP fordert daher eine intensive Einbeziehung des Kunden in den gesam ten Entwicklungsprozess Anforderungen werden dabei nicht vollst ndig zu Beginn des Projektes erhoben sondern iterativ und projektbegleitend mithilfe informeller Story Cards Die gr ten Vorteile verspricht der Einsatz von XP nur dann wenn alle 12 Prak tiken gemeinsam eingesetzt werden Dies stellt jedoch hohe Anforderungen an al le Beteiligten und l sst sich mit den Rahmenbedingungen eines Projektes oftmals nicht vereinen Zum Beispiel ist eine intensive Zusammenarb
144. r Kritik an traditionellen phasenorientierten Vorge hensmodellen Als Hauptkritikpunkte wurden starre und zu restriktive Regelwer ke ausufernde Projektdokumentation mangelnde Orientierung an den Kunden bed rfnissen zu lange Integrations und Releasezyklen sowie eine unzureichende Reaktionsf higkeit auf nderungen der Anforderungen oder technologischen Rah menbedingungen genannt In Anlehnung an die Schwierigkeiten in durch B rokratie gekennzeichneten Organisationen pr gten die Autoren hierf r den Begriff der Soft ware B rokratie Anwendungs Testf lle f lle Neue Anwendungsf lle Projekt Geschwindigkeit Fehler Anforderungen Architektur Prue Sak Prototyp etapher Release z ersion Akzeptanz i Lech Architectural Planung Iteration Bile Spike unklare zuverlassige Annahme Annahmen und Annahmen und l Ee Sch tzungen Sch tzungen N chste Iteration Prototyp Kleine Spike Releases Abbildung 2 3 Der Extreme Programming Prozess nach Wel07 12 KAPITEL 2 VORGEHENSMODELLE Extreme Programming basiert auf den vier grundlegenden Werten Kommunika tion Einfachheit Feedback und Mut Ihre Konkretisierung finden sie in 15 Prinzipi en welche aus diesen Werten abgeleitet sind Zur Umsetzung der Werte und Prinzi Dien stehen zw lf Praktiken zur Verf gung die jeweils fiir sich betrachtet sinnvolle und in der Praxis bew h
145. r die korrekte Verwendung eines Informationsobjek tes relevant Wenngleich im Kontext eines bestimmten Informationssystems implizit gelten kann dass es sich bei einem Attribut mit dem Namen Preis stets um einen Bruttopreis handelt so kann das Vorhandensein dieser impliziten Bedeutung Se mantik in einem anderen Informationssystem nicht vorausgesetzt werden Eine In teraktion zwischen zwei Informationssystemen wird demnach nur dann reibungslos funktionieren wenn beide f r die auszutauschenden Informationsobjekte die gleiche implizite Semantik verwenden Ist dies nicht gegeben so spricht man von einer se mantischen Heterogenit t Semantische Heterogenit ten lassen sich umgehen indem die auszutauschenden Informationsobjekte mit zus tzlicher Semantik beispielswei se einer Unterscheidung zwischen Bruttopreis und Nettopreis angereichert oder auf ein vereinheitlichtes semantisches Referenzmodell abgebildet werden 9 2 Motivationen f r Integrationsma nahmen Vorhandene Heterogenit ten sind nicht in jedem Fall kritisch wachsen sich aber sp testens dann zu einem Problem aus wenn die Systeme aufgrund betrieblicher Er fordernisse miteinander interagieren bzw Informationen austauschen m ssen Dies 9 2 MOTIVATIONEN FUR INTEGRATIONSMASSNAHMEN 91 ist zum Beispiel dann der Fall wenn zwei Systeme Aktivit ten in einem inner betrieblichen oder zwischenbetrieblichen Gesch ftsprozess unterst tzen welche in einer Kunde Lieferant Beziehung s
146. r ist Probleme sind zu erwarten wenn Anwendungen zu integrieren sind die in einer Programmiersprache vorliegen f r die keine JMS Implementierung verf gbar ist Eine Integration kann in diesem Fall nur mit erh htem Implementierungsaufwand oder unter Einschr nkungen vorgenommen werden Sollen Anwendungen ber Organisationsgrenzen hinweg angebunden oder die Systeme geografisch verteilter Einheiten einer einzelnen Organisation integriert werden so findet die Kommunikation der Anwendungen zumeist ber eine Firewall oder einen Proxy statt Hierbei ist zu beachten dass der JMS Dienst standardm ig den Port 7676 nutzt weshalb JMS Anfragen h ufig durch die Firewall blockiert wer den L sen l sst sich dieses Problem indem der betreffende Port explizit f r die JMS Kommunikation ge ffnet wird Wenn dies nicht erw nscht ist so k nnen JMS Nachrichten alternativ in spezielle HTTP Pakete verpackt HTTP Tunneling und auf diese Weise ber Firewallgrenzen hinweg versandt werden 9 4 INTEGRATIONSEBENEN 103 Service Orientierte Architekturen und Web Services Eine nicht nur plattformunabh ngige sondern auch programmiersprachen und pro tokollunabh ngige Alternative stellen Web Services dar Ein Web Service l sst sich als Komponente auffassen die ihre Funktionalit t ber eine ffentlich zug ngliche Schnittstelle anbietet und ber offene im Internet verwendete Protokolle zugreif bar ist Mithilfe von Web Services kann eine Service Ori
147. rachtung der Unternehmensorganisation geht der Blick f r Schnittstellenprobleme zwischen den Informationssystemen der einzelnen Organisationseinheiten schnell verloren Bei einer prozessorientierten Betrachtung werden die Anforderungen an die Integration der betrieblichen Informationssyste minfrastruktur unmittelbar sichtbar Abweichungen zwischen der Ist Situation und dem gew nschten Soll Zustand lassen sich somit leicht feststellen Auch die Ver schmelzung zweier Unternehmen mit jeweils eigener Informationssysteminfrastruk tur im Rahmen von Unternehmenszusammenschl ssen oder bernahmen kann In tegrationsma nahmen erforderlich machen In den folgenden Abschnitten sollen die wesentlichen Konzepte und Technologien der EAI vorgestellt werden Ausgehend von einer Betrachtung verschiedener Topo logien f r den Aufbau einer Integrationsinfrastruktur werden mit der Datenebene der Funktionsebene und der Ebene der Benutzerschnittstelle drei Ansatzpunkte f r die Durchf hrung einer Anwendungsintegration vorgestellt Nachdem kurz auf die Eigenschaften sowie die Vor und Nachteile der einzelnen Integrationsans tze einge gangen wurde werden konkrete Technologien zur Umsetzung einer entsprechenden Integration vorgestellt und gegeneinander abgew gt 92 KAPITEL 9 ENTERPRISE APPLICATION INTEGRATION 9 3 EAI Architekturkonzepte Die Auswahl einer geeigneten Architektur fiir die Gestaltung einer Integrations infrastruktur ist von tragender Bedeutung
148. ration Abbildung 6 3 Klassen Adapter AdaptierteKlasse SpezifischeOperation Adaptiertes Objekt Adapte Operation H adaptiertesObjekt SpezifischeOperation Abbildung 6 4 Objekt Adapter Das Adaptermuster kann verwendet werden wenn 1 eine existierende Klasse benutzt werden soll deren Schnittstelle nicht der ben tigten Schnittstelle entspricht 2 eine wiederverwendbare Klasse erstellt werden muss die mit unabh ngigen oder nicht vorhersehbaren Klassen zusammenarbeiten soll welche nicht notwendigerweise ber kompatible Schnittstellen verf gen und 3 nur f r Objektadapter verschie dene existierende Unterklassen benutzt werden m ssen und es unpraktisch ist die Schnittstellen jeder einzelnen Unterklassen durch Ableiten anzupassen Ein Klassenadapter verwendet Mehrfachvererbung um eine Schnittstelle an ei ne andere anzupassen vgl Abb 6 3 und ist daher in Sprachen wie Java die nur 6 2 STRUKTURMUSTER ral Einfachverbung bieten nicht verwendbar Ein Objektadapter verwendet Delegation vgl Abb 6 4 In beiden Fallen ruft der Klient die Operationen von Adapterobjek ten auf die sich auf Methoden der adaptierten Klasse abstiitzen Ein Klassenadapter passt die zu adaptierende Klasse an genau eine konkrete Zielklasse an Daraus ergibt sich der Nachteil dass ein Klassenadapter nicht funk tioniert wenn wir eine Klasse und all ihre Unterklassen anpassen w
149. ration von Web Services Bei Java EE geschieht dies ber zus tzliche Spezifikationen NEI verf gt ber native APIs zur Web Service Programmierung Datenhaltung Java EE beinhaltet die Java Persistence API JPA die ber leichtgewichtige Entities ein O R Mapping erm glicht JPA bietet zu dem Diente f r Sicherheit Fehlertoleranz Skalierbarkeit und den Zugriff auf verschiedenste Typen von Datenquellen Auch ADO NET erm glicht es ei ner NET Anwendung auf unterschiedliche Arten von Datenquellen zuzugrei fen allerdings unterst tzt es bisher kein automatisches O R Mapping F r zuk nftige Versionen von ADO NET ist auch ein automatisches Mapping ge plant Es gibt allerdings auch f r NET O R Mapper wie z B NHibernate Mid07 Hiermit l sst sich dann eine hnlich komfortable Anbindung der Da tenhaltung wie bei Java EE erreichen Plattform e Laufzeitumgebung Java EE basiert auf der Java Virtual Maschine JVM die den durch einen Compiler erzeugten Bytecode zur Laufzeit interpretiert bzw Just in Time zur Ausf hrungszeit in Maschinencode bersetzt Auch NET verf gt analog ber eine virtuelle Maschine CLR die pr compilierten Zwischencode MSIL Code interpretiert bzw Just in Time compiliert Die Ausf hrung ber einen Interpreter bzw Just in Time Compilierung erm g lichen es gewisse Aufgaben wie die Code Verifikation das Sicherheitsmana gement und die Speicherbereinigung zu automatisieren haben jedoch einen
150. republik Deutschland vom 9 September 1965 in der jeweils geltenden Fassung zul ssig Sie ist in der Regel verg tungspflichtig Zuwiderhandlungen unterliegen den Strafbe stimmungen des Urheberrechtsgesetzes Copyright F rderkreis der Angewandten Informatik an der Westf lischen Wilhelms Universit t M nster e V Einsteinstra e 62 D 48149 M nster 2009 Printed in Germany Die Wiedergabe von Gebrauchsnamen Handelsnamen Warenbezeichnungen usw in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme dass solche Namen im Sinne der Warenzeichen und Markenschutz Gesetzgebung als frei zu betrachten w ren und daher von jedermann benutzt werden d rften Text und Abbildungen wurden mit gr ter Sorgfalt erarbeitet Verlag und Autor k nnen jedoch f r eventuell verbliebene fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung bernehmen Vorwort Die Entwicklung leistungsf higer Software ist ein wesentlicher Kern von Informa tionstechnologie Zahlreiche Unternehmen entwickeln Software entweder als Soft wareanbieter im Rahmen eines eigenst ndigen Gesch ftsmodells oder als Nutzer selbstentwickelter Anwendungen zur Unterst tzung der Gesch ftsprozesse Auch im IHK Bezirk Nord Westfalen gibt es sehr viele Firmen die Software pro duzieren allein rund 1500 Anbieter Sie st rken die wirtschaftliche Leistungskraft der Region Und sie sorgen nat rlich in hohem Ma
151. roduktkonfigurationen aus dem gleichen Grund implementiert man abstrakte Fa briken am besten als Singleton s u GHJV96 Um verschiedene Look and Feel Objekte zu erzeugen sollten Klienten unterschiedliche konkrete Fabriken haben Ein weiterer Vorteil ist die einfache Konsistenzsicherung unter den Produkten um zu gew hrleisten dass nur Objekte einer Familie zu einer Zeit verwendet werden Als Nachteil von abstrakten Fabriken ist deren Erweiterbarkeit bzw die Un terst tzung neuer Produkte zu nennen Dies liegt daran dass die Schnittstelle der Fabrik die Menge von generierbaren Produkten festlegt Die Unterst tzung neuer Arten von Produkten erfordert es diese Schnittstelle zu erweitern was dazu f hrt die abstrakte Fabrik Klasse und all ihre Unterklassen zu ver ndern 6 1 2 Weitere Erzeugungsmuster Details zu den im Folgenden kurz skizzierten weiteren Erzeugungsmustern findet man in GHJV9B6 Fabrikmethode wird h ufig in so genannten Frameworks d h in objektorientier ten Klassenbibliotheken eingesetzt Ein Framework stellt oft sehr allgemeine Klassen zur Verf gung die bei seiner Nutzung durch Anwendungs bezogene Klassen erg nzt werden m ssen Problem ist dass bei der Framework Erstellung diese Klassen nicht bekannt sind und das Framework dennoch manchmal Ob jekte dieser Klassen erzeugen muss Letzteres wird von dem Fabrikmethode Muster dadurch erm glicht dass die betreffende Klasse des Frameworks ei ne abstrakte Met
152. rte Schnittstelle zum Hub geschaffen werden Verglichen mit der Punkt zu Punkt Integration entsteht bei der Verwendung einer Hub and Spokes Topologie ein hoher initialer Aufwand f r die Einrichtung des Hubs w hrend die Anbindung von Systemen an den Hub mit vergleichsweise geringen Kosten verbun den ist Ein Nachteil dieser Topologie entsteht dadurch dass jegliche Kommunika tion zwischen den Systemen ber den Hub l uft Dessen Leistungsf higkeit k nnte sich zum Performanz Engpass f r die gesamte Integrationsinfrastruktur entwickeln Bei einem Ausfall des Hubs w re gar jegliche Kommunikation zwischen den be teiligten Systemen unterbrochen Die geschilderten Probleme lassen sich durch den Aufbau von Rechnerverb nden Load Balancing Cluster Hochverf gbarkeitscluster und redundante Bereitstellung der Hub Funktionalit ten umgehen 9 3 3 Bus Integration Ausgehend von der Kritik an der Hub and Spokes Topologie macht sich die Bus Integration vgl Abbildung 9 3 einen verteilten Ansatz zu nutzen der die geschil derten Performanz und Verf gbarkeitsprobleme vermeidet Bei der Bus Integration werden die Integrationsfunktionalit ten verteilt durch die angebundenen Einheiten bereitgestellt Aufgrund des Fehlens einer zentralen Integrationskomponente ist eine 94 KAPITEL 9 ENTERPRISE APPLICATION INTEGRATION flexible Anpassung an Performanz und Verfiigbarkeitsanforderungen m glich Wie auch bei der Hub and Spokes Topologie ist zur Integra
153. rte Vorgehensweisen der Softwareentwicklung darstellen Durch kombinierten Einsatz dieser Best Practises soll die Entwicklung qualitativ hochwertiger Software m glich werden ohne gleichzeitig die Flexibilit t aufzugeben auf neue Anforderungen M glichkeiten oder Restriktionen angemessen reagieren zu k nnen Das Zusammenspiel der verschiedenen XP Praktiken im Entwicklungspro zess wird durch Abbildung 2 3 veranschaulicht Vier der wichtigsten XP Praktiken sollen nun exemplarisch vorgestellt werden Testgetriebene Entwicklung Um eine hohe Qualit t der Software sicherzustellen soll in einem XP Projekt kein St ck Programmcode ungetestet an den Kunden ausgeliefert werden Gleicherma en wird angestrebt fortw hrend Integrationen durchzuf hren und in kurzen Zeitabst n den lauff hige Versionen an den Kunden auszuliefern Auf diese Weise sollen Inte grationsprobleme fr hzeitig erkannt und regelm ig ein Feedback von Seiten des Kunden eingeholt werden Um beide Ziele auf wirtschaftliche Weise zu erreichen ist einerseits eine m glichst vollst ndige Testabdeckung und andererseits ein hoher Au tomatisierungsgrad der Tests erforderlich Die Testf lle werden stets auf der Grund lage der Anforderungen vor der eigentlichen Implementierung der zu testenden Pro grammteile erstellt So l sst sich gew hrleisten dass Testf lle nicht im Hinblick auf eine problemlose Testbarkeit bereits implementierter Funktionalit ten gestaltet wer den Zu Begi
154. rung an Anwendungsf llen use cases als Ausgangspunkt f r die Entwicklung die Architekturzentrierung der Pla nung sowie ein inkrementelles und iteratives Vorgehen in den Mittelpunkt gestellt Die Orientierung an den Anwendungsf llen bzw Gesch ftsprozessen bewirkt dass sich die Anwendungsf lle wie ein roter Faden durch die Entwicklung ziehen und je der Entwicklungsschritt sich letztlich auf einen Anwendungsfall zur ckf hren l sst Features bei denen sich die Entwickler selbst verwirklicht haben die aber von den Benutzern nicht verlangt wurden werden dadurch verhindert Die Architekturzen trierung verlangt dass bereits in einem fr hen Stadium die Grobarchitektur z B 4 Schichten Webapplikation basierend auf Java EE und einer r elationalen Daten bank auf der Grundlage einer kleinen Auswahl der wichtigsten Gesch ftsprozesse festgelegt wird so dass die restlichen Anwendungsf lle auf der Grundlage dieser Gro barchitektur leichter formuliert werden k nnen und Anwendungsfalle die mit dieser Grobarchitektur nicht vertr glich sind von Anfang an anders formuliert werden Die iterative inkrementelle Entwicklung verlangt dass zun chst ein Kernsystem basie 2 2 DER RATIONAL UNIFIED PROCESS 9 rend auf wenigen ausgew hlten Gesch ftsprozessen erstellt wird dass dann in jeder Iteration um weitere Funktionalit t erg nzt wird Diese iterative Vorgehen ist ganz entscheidend f r die Verminderung der Risiken bei der Softwareentwicklun
155. s auch zun chst nicht vollst ndig passende Klassen genutzt werden k nnen Dieser Aspekt wird insbeson dere bei dem Adpater Muster in Unterkapitel 6 besonders deutlich Neben der Kapselung und der Vererbung kommen inzwischen aber noch einige weitere Aspekte hinzu die f r die objektorientierte Softwareentwicklung sprechen Zun chst ist hier die Unified Modeling Language UML zu nennen Erfreulicherweise ist es der objektorientierten Community gelungen sich auf eine allgemein akzeptier te standardisierte Modellierungssprache die UML zu einigen Als Folge hiervon haben sich auch die Hersteller von Software Engineering Tools an dieser einheitli chen Notation orientiert so dass inzwischen eine vorher nicht gekannte Vielfalt von weitgehend kompatiblen Werkzeugen bereit steht die die objektorientierte Softwa reentwicklung weiter vereinfachen Weiterhin sind objektorientierte Programmiersprachen wie Java und C mit einem umfassenden Satz an vordefinierten Klassen und Frameworks f r nahezu al le Aspekte der Softwareentwicklung ausgestattet die die Anwendungsentwicklung zus tzlich enorm erleichtern Im Falle von Java reicht dies von Ans tzen zur Gestal tung der Pr sentationsschicht von Webanwendungen wie Servlets JSP Struts und JavaServer Faces ber Konzepte zur Realisierung der Gesch ftslogik und Datenhal tung von Informationssystemen wie Enterprise JavaBeans Spring und Hibernate bis hin zu Frameworks f r mobile Endger te Demge
156. sansatz vertreten komponentenorien tierte Middleware Plattformen wie die Common Object Request Broker Architek ture CORBA LP98 Hen06 das von Microsoft entwickelte Distributed Compo nent Object Model DCOM RB98 oder die im Rahmen der Java EE ehemals J2EE spezifizierten Enterprise JavaBeans EJB BMH06 Sun07c Hier werden die in einer zu integrierenden Anwendung enthaltenen Funktionen als Methoden in verteilten Objekten zug nglich gemacht Objekte verbergen gem dem Paradigma der Objektorientierten Programmierung ihre internen Strukturen und Eigenschaften wie auch die meisten Details bez glich Plattform Programmiersprachen und Imple mentierung hinter einer ffentlich zug nglichen Schnittstelle Anwendung A Anwendung B IDL Stub IDL Skeleton j Request Object Broker Abbildung 9 7 Entfernter Methodenaufruf ber einen Objekt Request Broker Durch einen so genannten Object Broker CORBA DCOM bzw RMI EJB wird ein Kommunikationskanal etabliert der es erm glicht einen entfernten Methodenaufruf gegen ber einem Klienten wie einen lokalen Aufruf erscheinen zu lassen Er stellt somit eine protokollunabh ngige Implementierung eines Kommu nikationskanals zwischen verteilten Objekten zur Verf gung Ein Entwickler kann somit auf entfernte Objekte zugreifen ohne auf Einzelheiten der verwendeten Hard wareplattformen oder Netzwerkprotokolle R cksicht nehmen zu m ssen Die
157. sborne Media 2006 IBM Rational ClearCase Change Management Solution http www 306 ibm com software awdtools changemgmt Abrufdatum 17 07 2007 IBM Rational Suite http www 306 ibm com software awdtools suite Abrufdatum 17 07 2007 IFPUG International Function Point User Group http www ifpug org Abrufdatum 28 03 2008 INTERFACE21 Spring Framework http www springframework org Abrufdatum 17 07 2007 JOHNSON Rod HOELLER Juergen ARENDSEN Alef RISBERG Tho mas KOPYLENKO Dmitriy Professional Java Development with the Spring Framework 1 Birmingham Wrox Press Ltd 2005 JURIC Matjaz MATHEW Benny SARANG Poornachandra Business Process Execution Language for Web Services 2 Packt Publishing 2006 JUNGMAYR Stefan Design for Testability In Proceedings of CON QUEST 2002 2002 S 57 64 JUNGMAYR Stefan Improving testability of object oriented systems dis sertation de 2004 ISBN 3 89825 781 9 JUNIT ORG JUnit Testing Ressources for Extreme Programming http www junit org Abrufdatum 28 03 2008 KRAFZIG Dirk BANKE Karl SLAMA Dirk Enterprise SOA Service Oriented Architecture Best Practices 1 New Jersey Prentice Hall 2005 LAMB David A Software Engineering Archives http www cs queensu ca Software Engineering Abrufdatum 17 07 2007 116 LHO5 Lin00 Lin05 LMK04 Loh03 LP98 LRO6 MEO0 Mic07a Mic07b Mid07
158. schiedenen Ebenen der Interaktion zwischen zwei Informations systemen vollziehen Bestehen zwischen diesen wesentliche Unterschiede in der tech nischen Repr sentation Speicherung und Bereitstellung der verwalteten Informatio nen so spricht man von einer technischen Heterogenit t Diese kann zum Beispiel durch zueinander inkompatible Hardwareplattformen Datenbankmanagementsyste me Kommunikationsmechanismen oder Programmiersprachen entstehen F r eine einfache berwindung derartiger Integrationsprobleme ist am Markt f r Integra tionsprodukte eine Vielzahl von Werkzeugen verf gbar Wesentlich schwieriger zu handhaben sind syntaktische Heterogenit ten Diese betreffen die Datenmodelle wel che der Speicherung von Informationen in einer Anwendung zugrunde liegen Unter scheiden sich die Datenmodelle zweier Informationssysteme deutlich voneinander so ist ein Informationsaustausch nur dann m glich wenn die zu bertragenden Infor mationen vom Datenmodell des Quellsystems auf das Datenmodell des Zielsystems oder auf ein zentralisiertes Datenmodell abgebildet werden kann Au erdem geht die Bedeutung eines Informationsobjektes manchmal nicht eindeutig aus dem Da tenmodell hervor Als Beispiel l sst sich ein Attribut Preis nennen Ohne weitere Anreicherung dieses Attributes mit zus tzlicher Information ist zum Beispiel nicht ersichtlich ob es sich um einen Bruttopreis oder einen Nettopreis handelt Dieser Bedeutungsinhalt ist jedoch f
159. siko Uberwindung __ Risiko Uberwachung Risiko Techniken Checklisten Vergleich mit Erfahrung Zerlegung Leistungsmodelle Kostenmodelle Analyse der Qualitatsanforderungen Risikofaktoren bestimmen Risikowirkung bestimmen Reduktion zusammengesetzer Risiken Kaufen von Informationen Risikovermeidung verminderung Risikoelement Planung Prototypen Simulationen Leistungstests Analysen Mitarbeiter Top10 Risiken Meilensteine Risiko Neueinsch tzung korrigierende Aktionen Abbildung 3 1 Die sechs Schritte des Risikomanagements 3 1 denen jeweils mehrere Techniken zugeordnet werden k nnen Fallstudien zum Risiko Management finden sich in z B in Boe91 Boe89 Fai94 3 2 1 Risiko Identifikation Checklisten sind ein hilfreiches Instrument um im Rahmen der Risikoidentifikati on die projektspezifischen Risiken zu finden Tabelle 3 4 zeigt die zehn wichtigsten Quellen f r Risiken in Software Projekten und die entsprechenden Techniken mit denen man die Risiken vermeidet oder berwindet 3 2 RISIKO MANAGEMENT 21 3 2 2 Risiko Analyse Bei der Risiko Analyse werden die Schadenswahrscheinlichkeit und das Schadens ausma f r jedes identifizierte Risikoelement und f r zusammengesetzte Risiken ab gesch tzt Eine quantitative Bewertung eines Risikos erfolgt durch den so genannten Risiko Faktor der sich aus dem Produkt aus dem erwarteten Verlust bzw Schaden und der Schadenswahrscheinlichkeit
160. ss Box Testen Beim Black Box Testen geht man von der Spezifika tion aus wie sie z B in Form des Pflichtenhefts oder der Schnittstellenbeschreibung von Klassen vorliegt und versucht alle hieraus ableitbaren Nutzungsszenarien des betrachteten Softwarebausteins abzuleiten und durch je einen Testfall berpr fen 7 4 GLASS BOX TESTEN 81 Diesen Ansatz bezeichnet man als Black Box Testen da man die Implementierung des Bausteins hierbei nicht ber cksichtigt Er funktioniert h ufig gut wenn man sich auf das normale Verhalten eines Systems konzentiert Fehler in Sonderf llen insbson dere solchen die sich nicht aus der Spezifikation ablesen lassen sondern durch die bei der Implementierung verwendeten Datenstrukturen und Algorithmen entstehen lassen sich mit diesem Ansatz nicht besonders gut aufsp ren Ein Vorteil von Black Box Testen ist dass es sich nicht nur f r einzelne Klassen und Module sondern auch f r Teilsysteme und das Gesamtsystem einsetzen l sst F r eine Testfall getriebene Softwareentwicklung wie sie bei Extreme Programming vgl Abschnitt 2 3 ver wendet wird l sst sich ausschlie lich mit Black Box Testen realisieren Ein interessantes Tool zur automatischen Erzeugung von Black Box Testf llen f r u a Java ist QuickCheck Sou08 Dieses Werkzeug erzeugt mit Hilfe eines Zufallsgenerators z B 100 Testf lle mit steigender Komplexit t die anhand einer vom Tester vorgegebenen Methode einer so genannten property a
161. st Die Einsatzpotentiale dieses Ansatzes sind jedoch auf Integrationsszenarien beschr nkt in welchen die zu integrierenden Anwendungen nicht auf unterschiedliche Rechner verteilt sind In einem verteilten Umfeld sind Mechanismen erforderlich die es erm glichen Methoden einer entfernten Anwendung aufzurufen F r diese Aufgabe bieten sich Dienste wie Remote Procedure Call RPC oder der aus dem Java Umfeld bekann te Mechanismus der Remote Method Invocation RMI an Der RPC Mechanismus f hrt eine zus tzliche Ebene der Abstraktion zwischen dem Klienten und dem Server ein der die Implementierungen der beiden Systeme voneinander entkoppelt und die erforderliche Netzwerkkommunikation vermittelt ohne dass diese durch den Ent wickler explizit implementiert werden muss Die Schnittstelle einer Funktion oder Methode wird mithilfe einer Schnittstellenbeschreibungssprache Interface Definiti on Language IDL spezifiziert Auf der Grundlage dieser abstrakten Beschreibung generiert ein IDL Compiler einen Client Stub und einen Server Stub Der Client Stub fungiert als lokaler Stellvertreter der durch den Server bereitgestellten Metho de F r den Klienten gestaltet sich der Aufruf der entfernten Methode als lokaler Prozeduraufruf Die technischen Einzelheiten der Kommunikation wie der Aufbau einer Kommunikationsverbindung ber den TCP IP Protokollstack oder die Erzeu gung von Nachrichten werden durch den Client Stub bzw in umgekehrter Richtung durch d
162. sverwaltung Authentifizierung und Autorisierung Caching sowie h ufig ver wendete Steuerelemente f r Web Oberfl chen wie Schaltfl chen Textfelder und Ta bellen Dar ber hinaus basiert das Framework auf der Common Language Runtime daher k nnen ASP NET Seiten in jeder NET Sprache erstellt werden Das Framework unterst tzt f r die Erzeugung von dynamischen Webseiten das ASPX Dateiformat Typischer Weise enth lt eine ASPX Datei statischen HTML Code in den ber bestimmte Tags dynamische Inhalte eingebunden werden k nnen Der Programmcode f r die dynamischen Inhalte wird nach dem so genannten Code Behind Modell in einer separaten Datei gespeichert Durch diese Form der Trennung von Layout und Programmlogik ist es m glich ein ereignisbasiertes Programmier modell umzusetzen Der dynamische Inhalt einer Webseite muss damit nicht mehr wie z B bei der veralteten ASP Technologie sequenziell mit der Webseite selbst erzeugt werden sondern wird durch die Reaktion auf Benutzereingaben im Code Behind manipuliert Dieser Ansatz ist deutlich intuitiver und erm glicht es Web Oberfl chen hnlich wie Desktop Anwendungen zu programmieren Das ASP NET Framework unterst tzt zudem ein Komponentenmodell welches es erm glicht Web seiten aus mehreren Ul Komponenten den sogenannten Web Controls oder Steuer elementen zusammenzusetzen Ein Web Control beh lt seinen Zustand ber mehre DU KAPITEL 5 SOFTWAREARCHITEKTUREN Java EE NET Web C
163. t Im folgenden Abschnitt wird zun chst das Client Server Modell dargestellt wel ches eine wichtige Grundlage f r die Konzeption von Schichtenarchitekturen dar stellt Darauf aufbauend werden die grundlegenden Eigenschaften von Schichten architekturen beschrieben Abschlie end werden zwei h ufig vorkommende Typen von Schichtenarchitekturen vorgestellt die 3 Schichtenarchitektur und die 4 Schich tenarchitektur 5 1 1 Das Client Server Modell Das Client Server Modell beschreibt einen Ansatz der die Elemente eines Softwa resystem in Clients und Server unterteilt Wie in Abbildung 5 1 dargestellt nimmt ein Client zur Erf llung seiner Aufgaben Dienste eines Servers in Anspruch in dem er eine Anfrage schickt Der Server nimmt die Anfrage entgegen und schickt 39 40 KAPITEL 5 SOFTWAREARCHITEKTUREN das Ergebnis der Anfrage an den Client zur ck Von besonderer Bedeutung ist das Client Server Modell bei der Umsetzung von verteilten Systemen Bei einer Client Server Architektur k nnen Clients und Server auf unterschiedlichen Rechnern lau fen die ber ein geeignetes Netzwerk mit einander verbunden sind Eine Client Server Architektur erh ht also in der Regel die Flexibilit t und Skalierbarkeit eines Systems 1 Aufruf Server 2 Verarbeitung 3 Ergebnis Abbildung 5 1 Das Client Server Modell Abbildung 5 1 zeigt die einfachste Form des Client Server Modells bestehend aus einem Client und einem Server
164. t extends gt gt Buch verloren Abbildung 4 7 Beispiel Anwendungsfall Diagramm Ein Anwendungsfall beschreibt meist nur den Normalfall einer Interaktion zwi schen Akteur und System Die Behandlung von Fehlern und Sonderfallen wird zur Vereinfachung des Anwendungsfalls oft in eigene Anwendungsfalle ausgelagert die mit dem Normallfall durch eine mit extends beschriftete gestrichelte Linie verbun den sind vgl Abb 4 7 Enthalten mehrere Anwendungsf lle einen gleichen Anteil so kann man diesen in einen eigenen Anwendungsfall herausziehen der dann im Diagramm ber eine mit inncludes beschriftete gestrichelte Linie an die Ausgangsanwendungsf lle an gebunden wird vgl Abb 4 7 Anwendungsfalldiagramme beschreiben ein Softwaresystem offensichtlich auf ei nem sehr groben Niveau Mindestens so wichtig wie das Diagramm selber ist daher die textuelle Beschreibung jedes Anwendungsfalls die spezifiziert was bei dem An wendungsfall passieren soll und welche Bedingungen vor und nach seiner Ausf hrung gelten m ssen Der Ablauf eines Anwendungsfalls wird oft durch ein Verhaltensdiagramm wie z B ein Sequenzdiagramm s u genauer beschrieben 4 2 UNIFIED MODELING LANGUAGE 39 4 2 4 Sequenzdiagramme Ein Sequenzdiagramm dient dazu zu spezifizieren in welcher Weise Objekte intera gieren um eine vorgegebene Aufgabe zu erfiillen Jedes der beteiligten Objekte wird hierbei durch eine vertikale Linie repr sentiert die an den Ste
165. t so eine einheitliche Abstraktion von mehreren unterschiedlichen Schnittstellen Die Schnittstelle des Adapters wird auf Basis der Schnittstelle des adaptierten Ob jekts realisiert ZeichenWerkzeug TextAnzeige GibAusmasse GrafischesObjekt BegrenzungsRahmen ErzeugeManipulator IN return text GibAusmasse text we BegrenzungsRahmen return new TextManipulator ErzeugeManipulator BegrenzungsRahmen ErzeugeManipulator Abbildung 6 2 Entwurfsmuster Adapter am Beispiel Betrachten wir als Beispiel ein Zeichenwerkzeug mit dem Linien Polygone Krei se Texte usw gezeichnet und zu Bildern und Diagrammen arrangiert werden k nnen vgl Abbildung 6 2 Jedes dieser grafischen Objekte kann editiert werden und einen passenden rechteckigen Begrezungsrahmen ermitteln Der Editor definiert hierzu f r jedes grafische Objekt eine konkrete Unterklasse z B eine Linien Klasse f r Linien eine Polygon Klasse f r Polygone usw die von einer abstrakten Klasse Grafisches Objekt abgeleitet werden Diese Oberklasse stellt eine einheitliche Schnittstelle f r die konkreten grafischen Objekte bereit Elementare geometrische Objekte k nnen sehr einfach implementiert werden da ihre Zeichen und Editierm glichkeiten be schr nkt sind Nehmen wir an dass eine vorhandene Klasse TextAnzeige bereits die Begrenzung eines Texts ermitteln kann und dass wir diese nutz
166. tehen Um Informationen entsprechend der Ge sch ftsprozesslogik ber die Systemgrenze hinweg von einer in die andere Akti vit t zu bertragen wird eine technische Schnittstelle ben tigt die eine Interak tion zwischen den jeweiligen Systemen erm glicht Ist dies nicht oder nur unzurei chend gew hrleistet so kommt es innerhalb des Prozesses unweigerlich zu einem Medienbruch Die fehlende oder mangelhafte Integration der Systeme zwingt zu ei ner Konvertierung der Informationen auf ein alternatives Medium welches in beiden Aktivit ten verarbeitet werden kann Der Austausch von Informationen per Email oder auf gedrucktem Papier sind nur zwei Beispiele f r eine derartige Situation Die Konvertierung und anschlie ende R ckkonvertierung der Informationen z B durch Erzeugung einer Excel Tabelle im Quellsystem welche auf elektronischem Wege an das Zielsystem bertragen und dort in die Datenbank eingelesen wird kostet Zeit und Geld Im Rahmen der Konvertierung k nnen dar ber hinaus Informationen ver loren gehen oder Fehler auftreten Medienbr che schr nken demnach nicht nur die Effizienz sondern auch die Effektivit t von Gesch ftsprozessen ein Den Ansto f r konkrete Integrationsprojekte k nnen vielerlei Ursachen geben Ein Beispiel ist die Optimierung oder Reorganisationen von Gesch ftsprozessen Bei einer an aufbauor ganisatorischen Gesichtspunkten wie Abteilungen Stellen Kompetenzen und Ver antwortlichkeiten orientierten Bet
167. teme dar ber hinaus einfach nutzbare Funktionalit ten f r die Umwandlung und Zusam menf hrung von Daten Der Hauptvorteil einer Integration auf Datenebene besteht darin dass sie zur In tegration einer Anwendung auch dann herangezogen werden kann wenn diese ber keinerlei offen gelegte Schnittstellen verf gt und eine Modifikation des Quellcodes nicht m glich ist Dar ber hinaus bietet ein breit gef chertes Angebot an ausge reiften Werkzeugen dem Entwickler ein hohes Ma an Unterst tzung Nachteilig ist jedoch dass eine Datenintegration keinen Zugriff auf die Funktionalit t eines Sys tems erm glicht Daher ist dieser Integrationsansatz nur dann zu empfehlen wenn ausschlie lich ein Zugriff auf die Daten einer Anwendung erforderlich ist Soll hinge gen die Anwendungslogik eines Systems genutzt werden so ist eine Integration auf Funktionsebene der Datenintegration vorzuziehen 9 4 2 Integration auf Funktionsebene Bei der Funktionsintegration wird die Programmfunktionalit t system bergreifend genutzt d h die integrierten Systeme k nnen gegenseitig auf ihre Anwendungslogik zugreifen vgl Abbbilung 9 5 Integrierte Pr sentation Integrationslogik Integrations plattform A Anwendung A Anwendung B Datenspeicher A Datenspeicher B Abbildung 9 5 Integration auf Funktionsebene Sie stellt das weitestgehende Integrationskonzept dar und umfasst die M glich keiten der
168. tik sind deutliche Defizite dieses Integrationsansatzes hin sichtlich Performanz und Skalierbarkeit Hinzu kommt die Problematik dass sich die Benutzerschnittstelle einer Anwendung verglichen mit der Anwendungslogik oder ih ren Datenstrukturen relativ h ufig ndert Bei der Verwendung von Screen Scraping Werkzeugen bewirkt jedoch oftmals schon die Verschiebung eines Anzeigeelementes um wenige Millimeter dass es nicht mehr zuverl ssig erkannt wird Dar ber hinaus werden in den einzelnen Anwendungen bestehende Redundanzen auf Daten oder Funktionsebene nicht beseitigt Kapitel 10 Modell getriebene Software Entwicklung Mit dem Siegeszug der Objektorientierung hat sich auch die hierfiir entwickelte ver einheitlichte Modellierungsnotation die Unified Modeling Language UML durch gesetzt vgl Abschnitt 4 2 Mit dem Vorliegen der Modelle entstand dann die Idee Teile eines objektorientierten Softwaresystems nicht von Hand zu erstellen sondern automatisch aus den Modellen zu generieren Die wohl beliebtesten Tools fiir die Modell getriebene Software Entwicklung sind androMDA And08 und openArchitectureWare oAW EFH 07 Beide bieten be reits vordefinierte Transformationsregeln so genannte Cartridges f r typische Platt formen wie Enterprise JavaBeans Spring Hibernate usw oAW ist etwas flexibler und leichter an eigene Plattformen anpassbar auch solche die nicht auf Java basie ren Die ben tigten Transformationen werden h
169. tion eines Systems in eine Infrastruktur mit n bestehenden Systemen lediglich eine Schnittstelle erforderlich System System System 1 2 3 System System System 4 5 6 Abbildung 9 3 Bus Integration Problematisch an diesem Ansatz ist dass die Integrationsfunktionalit ten nicht einmalig an einer zentralen Stelle sondern mehrfach implementiert sind wodurch sich ein erh hter Wartungs und Anpassungsaufwand ergibt Dar ber hinaus be wirkt die Koordination und Verwaltung der dezentral agierenden Einheiten einen Overhead der zu Performanzeinbu en und erh htem Netzwerkverkehr f hren kann 9 4 Integrationsebenen Ma nahmen zur Anwendungsintegration sind auf drei Ebenen eines Informations systems m glich der Datenebene der Funktionsebene und der Ebene der Benutzer schnittstelle Eine Integration auf diesen Ebenen ist mit spezifischen Vor und Nach teilen verbunden Dar ber hinaus stellt jede Integrationsebene gewisse Anforderun gen an die zu integrierenden Systeme weshalb eine uneingeschr nkte Wahlfreiheit in vielen F llen nicht gegeben ist Verf gt eine Anwendung beispielsweise ber keine Schnittstelle die einen Zugriff auf die Programmlogik erlaubt und ist dar ber hinaus der Quellcode nicht verf gbar bzw eine Anpassung des Systems nicht m glich so scheidet eine Integration auf Funktionsebene von vornherein als praktikable L sung aus Bei der Entschei
170. tsprechende Erweiterungen sind f r zahl reiche Entwicklungsumgebungen und Editoren verf gbar In Projekten deren An forderungen bereits zu Beginn des Vorhabens feststehen und die nur geringf gigen Ver nderungen der technologischen Rahmenbedingungen unterworfen sind bringt die Flexibilit t und Agilit t von XP keinen nennenswerten Vorteil Bei der Entwick lung sicherheitskritischer Anwendungen kann eine konsequente Befolgung der Werte von Extreme Programming gar zu gef hrlichen ad hoc Endscheidungen verleiten die zu einem unberechenbaren und unzuverl ssigen Systemverhalten f hren k nnen Da Extreme Programming dem Projektmanager f r seine Arbeit nur wenige konkrete Handlungsempfehlungen mit auf den Weg gibt h ngt der Erfolg des Projektes in hohem Ma e von dessen F higkeiten ab Auch dann wenn f r ein konkretes Projekt der gemeinsame Einsatz aller XP Techniken nicht sinnvoll oder m glich ist stellen die einzelnen Extreme Programming Praktiken n tzliche und in der Praxis bew hrte Techniken zur Erh hung der Qua lit t und Produktivit t in der Softwareentwicklung dar Insbesondere die Einf hrung automatisierter Tests hilft die Effizienz des Entwicklungsprozesses sowie die Qua lit t des Softwareproduktes zu steigern da Fehler zuverl ssiger erkannt werden und sich der Zeitaufwand f r die Fehlersuche gleichzeitig vermindern l sst Auf grund ihres universellen Charakters lassen sich viele der im Rahmen von Extreme Programming
171. twarebausteins im System verbleibt Bei der objektorientierten Softwareentwicklung l sst sich dieses Problem zumin dest bei einem geeigneten Design umgehen Wie das erreicht werden kann wird in Jun04 Jun02 im Detail erl utert Die Grundidee besteht darin dass eine Mock Klasse Unterklasse der Klasse wird die sie im Test ersetzen soll vg Abb 7 2 zu testende Klasse T verwendete K Mock M Klasse E is Abbildung 7 2 Verwendung von Mock Klassen Eine Anderung der zu testenden Klasse T kann vermieden werden wenn in T die zu ersetzende Klasse F nicht fest verdrahtet wird sondern wenn ein 7T Objekt stattdessen auch mit Objekten der Mock Klasse M verkniipft werden kann Insbe sondere darf in T nicht der Konstruktor von E verwendet werden Stattdessen sollte beispielsweise eine abstrakte Fabrik vgl Abschnitt 6 1 1 genutzt werden um die ben tigten Nachbarobjekte eines T Objekts zu erzeugen Im Normalbetrieb wird dann eine abstrakte Fabrik verwendet die E Objekte erzeugt Beim Testen von T w rde im Testtreiber stattdessen eine abstrakte Fabrik bereitgestellt die statt 7 2 AUTOMATISIERUNG DES TESTENS 79 E Objekten M Objekte erzeugt Voraussetzung fiir diesen Ansatz ist nat rlich dass die Klasse E berhaupt Un terklassen zul sst Im Falle von Java bedeutet dies dass E nicht final sein darf 7 2 Automatisierung des Testens Um Zeit und Kosten zu sparen ist es sinnvoll das
172. u a einen Class Loader einen JIT Just In Time Compiler und einen Memory Ma nager f r die Garbage Collection definiert Der Aufbau und die Funktionsweise der CLI sind in Abbildung 5 10 dargestellt Eine CLS konforme Quellsprache wird in die Zwischensprache CIL bersetzt Mithil fe einer plattformspezifischen Implementierung der VES wird die CIL interpretiert bzw in ausf hrbaren Maschinencode bersetzt Das NET Framework welches die CLI f r Windows Systeme implementiert besteht wie in Abbildung 5 11 dargestellt im Wesentlichen aus einer Menge von Klassenbibliotheken und der Common Language Runtime Die Common Language Runtime CLR ist die von Microsoft umgesetzte Im plementierung der VES die nicht nur die Spezifikation der CLI erf llt sondern dar ber hinaus Zugriffe auf das COM sowie das zugrunde liegende Betriebssystem und DLL basierte APIs erm glicht Durch die direkte Integration von COM und 5 2 KOMPONENTENBASIERTE ARCHITEKTUREN 57 Quellsprache CLS konform li Compiler Common Intermediate Language CIL 0110101000101101010001 0101110101010010101010 1010101010111010101110 0110101010101101001100 1010101010111011011001 0101110110101001010101 Abbildung 5 10 Aufbau und Funktionsweise der Common Language Infrastructure CLI der Windowsplattform erreichen die durch einen JIT Compiler bersetzten Zugriffe nahezu die gleiche Geschwindigkeit wie herk mmlicher pr compilierter Code D
173. uf Korrektheit berpr ft werden QuickCheck arbeitet meist sehr schnell und findet Fehler mit er staunlich gro er Zuverl ssigkeit Lediglich Fehler in Codeteilen die nur mit einer sehr geringen Wahrscheinlichkeit durchlaufen werden werden sofern es solche gibt teilweise nicht gefunden Problematisch ist allerdings dass in dem nicht seltenen Fall dass gewisse aufgrund der Paramatertypen m gliche Eingabeparameter einer zu testenden Methode unzul ssig sind vom Tester zun chst passende Eingabege neratoren erstellt werden m ssen da QuickCheck sonst nicht gen gend zul ssige Testeingaben findet 7 4 Glass Box Testen Beim Glass Box Testen geht man nicht von der Spezifikation sondern von dem Code des betrachteten Bausteins aus und versucht alle Kontroll und oder Datenfl sse die in diesem Baustein m glich sind durch m glichst wenige Testf lle abzudecken Abbildung 7 3 veranschaulicht den Code f r die bin re Suche in einem Array graphisch und zeigt wie sich der Kontrollfluss mit zwei Testf llen berdecken l sst In dem ersten rot dargestellten Testfall wird der Wert 5 in einem 2 elementigen Array mit den Werten 17 und 42 gesucht im anderen blau dargestellten Testfall wird im gleichen Array der Wert 42 gesucht Die rote bzw blaue Linie zeigen den sich jeweils ergebenden Kontrollfluss Ein entsprechendes Tools was f r Java Klassen ein solches System von Testf llen f r die berdeckung der Kontroll und Datenfl sse erzeu
174. uft werden muss Dar ber hinaus m ssen nderungen an der Benutzerschnittstelle einer Anwendung im Screen Scraping System nachgef hrt werden um Probleme wie Abst rze oder fehlerhafte Ergebnisse zu vermeiden An dererseits stellt Screen Scraping vielmals die einzige Alternative f r eine Integration dar wenn alle anderen Ans tze mangels Verf gbarkeit geeigneter Schnittstellen oder einer geeigneten Dokumentation bzw des Quellcodes ausscheiden Ein Portal kann als eine webbasierte Anwendung verstanden werden die Daten und Funktionen verschiedener Anwendungen als Dienste auf einer Plattform inte griert und dem Benutzer ber eine einheitlich gestaltete Bedienoberfl che zug nglich macht F r den Benutzer ergeben sich Vorteile wie eine einheitliche Bedienung Single Sign On benutzerspezifische Anpassung von Funktionsumfang und Layout sowie eine einfach einzurichtende Verkn pfung von Diensten und Inhalten verschie dener Anwendungen Die Pr sentation einer Anwendung auf der Portalseite erfolgt in einem Fensterbereich der als Portlet vgl Zi 06 f r die Entwicklung von Port lets mit Java bezeichnet wird Ein Portlet bildet die Benutzerschnittstelle einer einzelnen Anwendung oder einer Gruppe von logisch und oder inhaltlich zusammen geh rigen Anwendungen ab Durch Kommunikationsmechanismen k nnen einge schr nkte Interaktionen zwischen Portlets realisiert werden Der OASIS Standard 9 5 ZUSAMMENFASSENDE BEWERTUNG 107 WSRP Web Servi
175. ung der Integration auf Funktionsebene im Kontext der EAI soll eine Auswahl relevanter Technologien vorgestellt werden Da zahlreiche technologische Entwicklungen auf vorangegangene Technologien aufbauen indem sie diese weiterentwickeln oder ausgehend von deren Problemen einen vollst ndig neu en L sungsansatz versuchen werden nicht nur aktuelle Technologietrends sondern auch bestehende Technologien ber cksichtigt Als Ordnungsrahmen dient dabei eine Unterscheidung nach komponentenorientierten objektorientierten und dienstorien tierten Integrationstechnologien vgl Abbildung 9 6 Synchron Asynchron nachrichtenbasiert Synchron RPC basiert Funktionsorientiert Objektorientiert Serviceorientiert Abbildung 9 6 bersicht Integrationstechnologien 98 KAPITEL 9 ENTERPRISE APPLICATION INTEGRATION Remote Procedure Call Verfiigt eine Anwendung tiber eine API Application Programming Interface so k nnen ihre Funktionalit ten durch andere Systeme auf dem gleichen Rechner ber diese Schnittstelle direkt angesprochen und genutzt werden Der Quellcode der An wendung selbst wird dabei in der Regel nicht angepasst Der Hauptvorteil einer derartigen Integration liegt in der M glichkeit einer Nutzung der Typ berpr fung des Compilers zur bersetzungszeit Fehler k nnen so erheblich leichter gefunden und korrigiert werden als in einem Umfeld wo die Interaktion der Systeme durch die Verwendung von Nachrichten voneinander entkoppelt i
176. ung und Wartung zuordnen lassen Werkzeuge die sowohl die fr heren als auch die sp teren Phasen der Entwicklung abdecken werden als I integrated CASE Werkzeuge bezeichnet Werden mehrere CASE Werkzeuge in einer Plattform integriert so spricht man von einer CASE Umgebung SR Implemen Abnahme amp Wartung Definition Planung Entwurf tierung Einf hrung amp Pflege Integrierte Werkzeuge I CASE Spezialisierte Upper CASE Lower CASE Werkzeuge Front End Back End Abbildung 8 2 Kategorisierung von CASE Werkzeugen Bal93 S 126 8 2 2 Auswahl von CASE Plattformen Nach Bal98 S 591ff spielen bei der Auswahl von CASE Umgebungen drei Fakto ren eine entscheidende Rolle e allgemeine Anforderungen e firmenspezifische Anforderungen und 8 2 CASE TOOLS 87 e derzeitiges Marktangebot Die allgemeinen Anforderungen leiten sich aus dem Stand der Technik ab und sind unabh ngig von den firmenspezifischen Anforderungen Zu ihnen z hlen im wesent lichen Anforderungen an die CASE Plattform die einzelnen CASE Werkzeuge und die Entwicklungsumgebung Wichtige Anforderungen sind vgl Bal98 e Integrationsf higkeit F r eine CASE Plattform ist die Integrationsf higkeit von CASE Werkzeugen von entscheidender Bedeutung Hierf r ist h ufig auch eine sinnvolle Integration der Datenbest nde der einzelnenen Werkzeuge in ein gemeinsames Repository notwendig um die Interaktionsf higkeit der Werk
177. uordnung von Komplexit tsstufen einfach e mittel m komplex k zu internen Datenbest nden und Referenzdaten abh ngig von der Anzahl e der betroffenen Datenelemente und der Anzahl f der betroffenen Feldgruppen be Ausgabe und Abfrage d h Ausgabe mit trivialer Verarbeitungslogik Weiterhin betrachtet werden die vom System zu pflegenden Datenbest nde und die genutzten von externen Systemen gepflegten so genannten Referenzdaten Ein Elementarpro zess kann z B die Erfassung einer Kundenadresse der Ausdruck einer Rechnung die Berechnung eines Tarifs oder die Anzeige eines Kontostands sein Ein wesentliches Kriterium f r die Identifikation eines Elementarprozesses ist seine Einmaligkeit Ein Elementarprozess gilt dann als einmalig wenn er durch die ein oder ausgegebenen Daten oder durch die Verarbeitungslogik unterscheidbar ist An der Oberfl che hn liche Elementarprozesse welche beispielsweise eine gemeinsame Bildschirmmaske f r das Anzeigen und Erfassen von Kundendaten verwenden lassen sich auf diese Weise differenzieren Jeder identifizierten Eingabe Ausgabe und Abfrage wird in Abh ngigkeit von der Anzahl der betroffenen Datenelemente z B Name Kundennummer und Da tenbest nde d h z B einer Tabelle der Datenbank eine Komplexit t zugeordnet vgl Tabellen 3 1 Bei Datenbest nden und Referenzdaten h ngt die Komplexit t von der Anzahl der betroffenen Datenelemente und der Anzahl der so genannten Feldgruppen ab vgl
178. uration Management http www collab net forrester_wave_ report index html Abrufdatum 17 07 2007 SZYPERSKI Clemens GRUNTZ Dominik MURER Stephan Component software beyond object oriented programming 2 London u a Addison Wesley 2002 SOURCEFORGE QuickCheck for Java http sourceforge net projects qc4j Abrufdatum 28 03 2008 STARUML StarUML http staruml sourceforge net en Abruf datum 17 07 2007 STI RLE Harald UML 2 fr Studenten 1 Mnchen Pearson Studium 2005 SUN MICROSYSTEMS Java EE at a Glance http java sun com javaee Abrufdatum 17 07 2007 SUN MICROSYSTEMS JavaServer Faces Technology http java sun com javaee javaserverfaces Abrufdatum 17 07 2007 SUN MICROSYSTEMS The Java EE 5 Tutorial http java sun com javaee 5 docs tutorial doc Abrufdatum 19 09 2007 SUN MICROSYSTEMS Java Message Service Version 1 1 Documen tation http java sun com products jms docs html Abrufdatum 19 09 2007 LITERATURVERZEICHNIS 119 Svo6 Tomos Ton06 Wat08 Wel07 Wik07 Wol08 Wor07a Wor07b Wor07c Zep04 Zi 06 STAHL Thomas VOLTER Markus Model driven Software Development Technology Engineering Management Wiley 2006 TOMOGRAPHY Software Sotograph http www software tomography de html sotograph html Abrufdatum 28 03 2008 TONG Kent Ka L Enjoying Web Development with Tapestry 1 Lulu com 2006 WATIJ Watij Web Ap
179. urch andere Benutzer wieder freigegeben Auf diese Weise werden nderungskonflikte vermieden Die optimistische Versionskontrolle benutzt ein Verfahren welches als Copy Modify Merge bezeichnet wird Dieses Verfahren l sst gleichzeitige nderungen von unterschiedlichen Benutzern an derselben Datei zu Wird beim Checkin einer Datei festgestellt dass sich sowohl das Original im Repository als auch die lokale Kopie ge ndert haben so m ssen die beiden Versionen automatisch oder manuell zusammengef hrt werden Eine manuelle Aufl sung der Konflikte ist in der Regel nur notwendig wenn die Konflikte sich nicht automatisch beheben lassen Die optimistische Versionskontrolle besitzt im Vergleich zur pessimistischen den Nachteil dass sie durch die manuelle Konfliktbeseitigung zus tzlichen Aufwand f r den Anwender bedeutet Daf r wird durch das optimistische Verfahren der 8 1 VERSIONSVERWALTUNG 85 Mehrbenutzerbetrieb deutlich weniger eingeschr nkt Dies ist insbesondere bei einer gr eren Anzahl r umlich getrennter Anwender von Vorteil Wie in Abbildung 8 1 dargestellt gibt es grunds tzlich zwei M glichkeiten die verschiedenen Versionen einer Datei in einem Repository zu speichern Die einfachs te M glichkeit besteht darin von jeder Version einen vollst ndigen Schnappschuss zu speichern Bei dieser Form der Speicherung treten jedoch Redundanzen auf die umso gr er werden je kleiner die nderungen Deltas zwischen den Versi
180. urchgesetzt Einige Firmen werden objektorientiert entwickeln weil dies im Trend liegt ohne sich ber die Vorteile vollst ndig im Klaren zu sein Im Folgenden sollen diese Vorteile herausgearbeitet werden Der wohl am h ufigsten genannte Grund f r den Einsatz von Objektorientierung ist die Kapselung von Struktur und Verhalten oder anders gesagt von Daten und den auf ihnen arbeitenden Operationen im OO Kontext als Methoden bezeichnet Diese Kapselung in so genannten Klassen erm glicht zun chst eine bessere Struk turierung von Softwaresystemen die mun als Systeme von Klassen organisiert wer den k nnen Da nicht triviale Softwaresysteme blicherweise in Teamarbeit erstellt werden ist es weiterhin wichtig dass der verwendete Programmieransatz hierf r geeignet ist Die erw hnte Kapselung gew hrleistet dies da sie eine Trennung von Nutzern und Entwicklern einer Klasse erm glicht Die Nutzer einer Klasse m ssen nur deren Schnittstelle gegeben durch die Namen der Methoden und die Typen ihrer Parameter und ihrer Ergebnisse kennen nicht aber deren Implementierung Letztere interessiert nur die Entwickler Diese haben auch die M glichkeit die Imple mentierung z B aus Effizienzgriinden zu ndern ohne dass dies auf die Nutzer einen Einfluss hat vorausgesetzt dass die Schnittstelle unver ndert bleibt Die erw hnte Kapselung findet sich aber nicht nur in objektorientierten Programmiersprachen sondern auch in nicht objektorientierten
181. vor allem bei komplexeren Systemen sinnvoll ist Zudem wird die Skalierbarkeit der Anwen dung verbessert da sich die Schichten leicht auf unterschiedliche Rechner verteilen lassen Besonders bei komplexeren Anwendungen empfiehlt es sich im Hinblick auf 5 1 SCHICHTENARCHITEKTUREN 43 Prasentation Integrierte Ps Pr sentations g M und S SEH Geschafts ARE Verarbeitung lithisches logik See Datenbank Datenbank 1 Schicht 2 Schichten 3 Schichten Datenhaltung e Abbildung 5 3 Schichtenarchitektur fiir Desktop Anwendungen die Flexibilit t des Gesamtsystems eine Architektur mit drei oder mehr Schichten zu verwenden Ist das System sp ter um weitere Benutzerschnittstellen wie z B eine Web Schnittstelle oder eine Web Service Schnittstelle zu erweitern so k nnen in der Regel Teile der Verarbeitungs und Datenhaltungsschicht wiederverwendet werden Ein solches Szenario wird im Abschnitt Multi Channel Architekturen beschrieben Web Architekturen Im Unterschied zu den klassischen Schichten Architekturen weisen die Web Architek turen eine verteilte Pr sentationsfunktion auf Diese wird sowohl von einem Web Browser als auch von einen Web Server bernommen Der Web Server ist daf r zust ndig die anzuzeigende Webseite zu erzeugen und an den Web Browser zu schi cken Der Web Browser bernimmt lediglich die Darstellung der empfangenen Seite ggf erg nzt um z B in JavaScript realisierte Pr sent
182. wird typischerweise Delegation eingesetzt da so der verwendete Dienstleister zur Laufzeit ausgetauscht werden kann w hrend Vererbungshierarchi en statisch sind In den nachfolgenden Abschnitten werden einige Entwurfsmuster aus den drei erw hnten Kategorien vorgestellt Es wird beschrieben wann sie ein setzbar sind und welche Konsequenzen deren Einsatz hat 6 1 Erzeugungsmuster Entwurfsmuster die der Erzeugung von Objekten dienen verstecken den Erzeu gungsprozess und helfen so ein System unabh ngig davon zu machen wie seine Objekte erzeugt zusammengesetzt und repr sentiert werden 6 1 1 Abstrakte Fabrik Das wichtigste Erzeugungsmuster ist wohl die abstrakte Fabrik Abstract Factory Dieses objektbasierte Erzeugungsmuster bietet eine Schnittstelle zum Erzeugen von Familien verwandter oder voneinander abh ngiger Objekte ohne ihre konkreten Klassen zu spezifizieren Betrachten wir als Beispiel eine Klassenbibliothek f r Benutzerschnittstellen die mehrere Look and Feel Standards wie Swing oder Java AWT unterst tzt Unter schiedliche Look and Feel Standards legen jeweils ein unterschiedliches Aussehen und Verhalten der Interaktionselemente einer Benutzungsschnittstelle Widgets fest Typische Widgets sind Scrollbars Fenster oder Schaltfl chen Damit eine An wendung zwischen verschiedenen Look and Feel Standards portierbar bleibt sollte sie sich nicht auf die Widgets eines spezifischen Standards festlegen und die Erzeu gung v
183. wurden sollen nun zwei Beipielanwendungen gezeigt werden in denen diese verwendet werden Ph nomenTyp Messung name String 1 wert double 1 Ph nomen i Untersuchung name String datum Datum 0 1 2 1 Patient name String letzterWert Ph nomenTyp double Abbildung 4 5 Klassendiagramm f r ein Krankenhaus Softwaresystem 4 2 UNIFIED MODELING LANGUAGE 33 Abb 4 5 zeigt ein Beispiel Klassendiagramm fiir eine Krankenhausanwendung Hier wird modelliert dass Patienten untersucht werden Eine Messung ist eine spe zielle Untersuchung daher wird hier Vererbung eingesetzt Jeder Untersuchung ist ein Ph nomentyp z B Blutgruppe und ggf ein Ph nomen z B A zugeordnet Bei Messungen gibt es manchmal kein zugeordnetes Ph nomen sondern nur einen gemessenen Wert so z B bei Messungen zum Ph nomentyp K rpertemperatur Beispiel 2 Arithmetischer Ausdruck Ausdruck BinOp 2 1 L gt auswerten ausfuehren x y Konstante Geschachtelt Addition wert Abbildung 4 6 Klassendiagramm fiir arithmetische Ausdriicke Ein arithmetischer Ausdruck ist entweder einfach eine Konstante oder ein ge schachtelter Ausdruck bei dem zwei Teilausdr cke durch eine bin re Operation wie z B die Addition verkniipft werden vgl Abb 4 6 Die Pfeilsp
184. y verwaltet und ein oder mehreren Clients die mithilfe des Servers auf das Repository zugreifen Die Clients stellen die Anwenderschnittstelle dar ber die die Benutzer auf die Dienste des Versionsver waltungssystems zugreifen k nnen Zu den wichtigsten Diensten einer Versionsverwaltung z hlen das Checkout und das Checkin Beim Checkout erstellt ein Client eine lokale Kopie von einzelnen oder mehreren Dateien aus dem Repository Die nderungen an einer lokalen Kopie haben zun chst keinen Einfluss auf das im Repository gespeicherte Original und sind somit auch f r die brigen Clients nicht sichtbar Sollen die nderungen einer lokalen Kopie in das Repository bernommen werden so ist daf r eine besondere Best tigung notwendig Diese Best tigung wird als Checkin oder Commit bezeichnet Dabei wird f r die betroffenen Dateien eine neue Version im Repository erzeugt Bei der Koordinierung des Mehrbenutzerbetriebes tritt das Problem auf gleich zeitige nderungen an derselben Datei zu behandeln Hierf r gibt es im Wesentlichen zwei Strategien die pessimistische und die optimistische Versionskontrolle Der Mechanismus der pessimistischen Versionskontrolle wird als Lock Modify Write bezeichnet Beim Checkout werden dabei alle betroffenen Dateien gesperrt was zur Folge hat dass dieselbe Datei nur von einem Benutzer ausgecheckt und bearbeitet werden kann Erst nach dem Checkin wird die Sperre aufgehoben und die Datei f r nderungen d
185. zeu ge zu garantieren e Offenheit Die Plattform sollte m glichst ber Export und Importschnitt stellen verf gen und auch Drittanbietern muss es m glich sein Werkzeuge in die Plattform zu integrieren e Multi und Interprojektf higkeit Die CASE Plattform sollte in der Lage sein mehrere Projekte mit verschiedenen Mitarbeitern parallel verwalten zu k nnen Zudem sind projekt bergreifende Informationen separat zu verwalten um Redundanzen und Inkonsistenzen zu vermeiden Die firmenspezifischen Anforderungen leiten sich aus der individuellen Situati on und den Bed rfnissen der betroffenen Firma ab Hier nennt Balzert Bal93 S 144 ff folgende Kategorien die sich gegenseitig beeinflussen die Eigenschaften der Zielprodukte die zu unterst tzende Zielumgebung die zu unterst tzenden Methoden und Vorgehensmodelle sowie das Entwicklungsumfeld Nach Abgleich der allgemeinen und firmenspezifischen Anforderungen ergibt sich ein Kriterienkatalog der die ideale auf die Anforderungen der Firma zugeschnittene CASE Umgebung beschreibt Die ideale Firmenumgebung sollte mit den tats chlich am Markt vorhandenen L sungen verglichen werden um schlie lich die bestm gliche L sung auszuw hlen Bei der Begutachtung der Marktangebote gilt es vor allem zwei Punkte zu ber cksichtigen die technischen und die kaufm nnischen Aspekte der angebotenen Umgebungen Um einen berblick ber die Unterst tzungsm glichkeiten durch CASE Tools zu erl
Download Pdf Manuals
Related Search
Related Contents
Met DDW165, Wht DDW164 Hama 00073016 mobile device charger HP DF808 User's Manual PVI Industries 1000PHE125A-TPO User's Manual Honeywell Boiler aq475a User's Manual 9011/ Z000 Mode d`emploi Samsung Galaxy S4 Mini DUOS Manual de Usuario institut belge des services postaux et des télécommunications Copyright © All rights reserved.
Failed to retrieve file