Home
Modellierung und Architektur mit der UML - Homepage
Contents
1. Verwendung von Entwurfsmusten Buchkatalog ansehen 8 3 1 Entwicklung des Detailentwurfs aus dem Stabilit tsdiagramm 8 3 2 Ablauf des Anwendungsfalls Vergleich mit der L sung von Rosenberg und Scott 61 64 67 70 73 73 77 71 71 80 81 Inhaltsverzeichnis 9 berarbeitetes Klassendiagramm 101 9 1 Kategorieliste und Buchkatalog o ooo o s s s s 101 9 2 Warenkorb Qua hie Sa een bar a Dir Miele 103 9 3 Vergleich mit der L sung von Rosenberg und Scott 105 II Schluss 109 10 Diskussion der Ergebnisse 111 11 Bewertung des ICONIX Prozesses 115 A Prototyp und Benutzerhandbuch 121 ALL Startseite Azamon 02 zu A ee Als an Kara Wire oa ate a a 121 ADs Katalog u sls t at et aa ca Suka learn S S W Sus 122 Ad B chersuche 2 24 Cas a wk aan a en Die lan 126 AA Warenkorb aoaaa aaa 127 Ads Bestellen apyu s nie DAN AS bao EA Shae 127 AO Historie vite ionad ai EE 133 At Kontakt 2 2 a EE eeh ee er BAS WG lern 133 B Anwendungsfalle vor der Stabilitatsanalyse 135 BI Paket Buchbestellung 135 B 1 1 Artikel inden Warenkorb legen 135 B 1 2 Buch bestellen y y a dt ed A oth 135 B 1 3 Bestellung ansehen 78 sr a Beer a 136 B 1 4 Bestellung stornieren 136 B 1 5 Fehlerhafte Dateneingabe behandeln 2 2 2 2 nn n nennen 136 B 1 6 Lieferdatenbestimmen 0 020000 eee eee 137 B 1 7 Warenkorb editieren 137 B 1 8 Za
2. Ue Gojeyey allas Jap ne warsig sep fiaz omg Jap Un aig ne uablazue HEI IEISBUNPUaMUy uap yang auapunyah sapal AN YN pun yeupua auobayey Seat SI Jap aen aip Sep Malgo siugahuayong ua inaua 83 puis WapUBYIOA auo aey Dean Ul alp wayang uap yeu Bolejeyyong uap wa sig sep yansyaunp uueg azue uano ajey uajsuajun Jap auja walsh sep SSEp os puls WAPUBYIOA Jawu uauo ajeyqng uaan au ay S14 431S youa pay EN ue yemSneauohaey Jap U asap De pun uano areyang uanau uap pw ajs auo eley alelodua aip waysig Sep paisijenpe ygeueg uano aeyang uahuoyanz OT ETH alp sa yyansyainp uueg qe uuep auo ajey Seat NZ ALINA Jap UOA peld pun auo ajey ayyemas PUeISNZIJEMSNY ua iyaziap uap Laysiads pun palo puejenzyemsny sanau uja J nazia wasis seg auobajey aula ne fojeeyyong wu unu p31 apuny 180 Spo mejqepepuejg Abbildung 8 4 Sequenzdiagramm Buchkatalog ansehen Teil 2 Wenn der Kunde eine Kategorie ausw hlt f hrt dies letztlich zum Aufruf der Methode onKategorie Gewaehlt des KatalogHandlers O1 Dieser kennt die Daten des Events wozu auch die ausgew hlte Kategorie und der Pfad von der Wurzel zu dieser Kategorie geh ren Der Pfad wird ja oben im Haupt anzeigebereich dargestellt Diese Daten werden als Parameter des Aufrufs von setAuswahlZustand 96 8 4 Vergleich mit der L sung von Rosenberg und Scott bergeben O2 erzeugt aus diesen Daten das Objekt O6 vom Typ Auswahlzus
3. 102 TEEN lt lt control gt gt j A ViewHelper sinstantiate gt u gt view lt lt houndary gt gt SeiteKatalog Abbildung 9 1 Klassendiagramm Buchkatalog 9 2 Warenkorb Beziehungen der Kategorieliste Wie in fr heren Kapiteln bereits mehrfach erw hnt wurde kommuniziert der KatalogHandler nur mit der KatalogFassade ber die Methoden getTopLevelKa tegorien und getSubKategorien erh lt er von der Fassade Iteratoren mit denen er die Kategorien auslesen kann Dies versteckt die Implementierung und Struktur des Models vor den Klienten der Fas sade Damit dies funktionieren kann ist die KatalogFassade mit der Kategorieliste ber die Beziehung kommuniziert mit verbunden Die Kategorieliste liefert der Fassade Referenzen auf die TmpKate gorieListe als Ergebnis der Anfrage Daher r hrt die use Abh ngigkeit zwischen der Kategorieliste und der TmpKategorieListe Die KatalogFassade fordert dann von der TmpKategorieListe den Itera tor auf die Kategorien an durch den sie auf die Klasse Kategorie Zugriff bekommt Daher r hrt die access Abh ngigkeit zwischen KatalogFassade und Kategorie Damit die Zwischenergebnisse die in den Objekten der TmpKategorieListe gespeichert sind dem richtigen Kunden zugeordnet werden k nnen werden sie in der Session gespeichert Aggregation von Session zu TmpKategorieListe Jede Session ist genau einem Kunden zugeordnet Der Kunde ka
4. auf Das System f gt nun der Liste der Rezensionen f r dieses Buch ein neues Rezensions Objekt mit dem soeben eingegebenen Text und der Kennung des Kunden als Autor hinzu Anschlie end kehrt es auf die Seite Produktdetails zur ck wobei es die Rezension des Kunden als erste Rezension anzeigt Au erdem erzeugt das System auf dieser Seite einen Link mit dem der Kunde den Anwendungsfall Rezension berarbeiten aufrufen kann Alternativabl ufe Wenn der Kunde nicht angemeldet ist ruft das System zun chst den Anwen dungsfall Anmelden auf Wenn das System in der Liste der Rezensionen zu diesem Buch ein Rezensions Objekt findet das den Kunden als Autor hat w hlt es dieses aus und zeigt auf der Seite Rezension dessen Text im Feld f r den Rezensionstext an Der Kunde ndert den Text der Rezension und klickt auf Rezensi on abschicken Das System ruft nun den Anwendungsfall Buch bewerten auf Dann aktualisiert es den Rezensionstext im entsprechenden Rezensions Objekt Danach kehrt das System zur Seite Produktdetails zur ck wo es diese Rezension als erste Rezension anzeigt Au erdem zeigt es ein Navigationselement an mit dem der Kunde den Anwendungsfall Rezension berarbeiten erneut aufrufen kann Buch bewerten Standardablauf Das System ffnet die Seite Buch bewerten Dort w hlt der Kunde aus der Liste m glicher Buchbewertungen eine Option aus und klickt auf Absenden Das Syst
5. bzw der entsprechende Abschnitt des Kurzhandbuchs einem Anwendungsfall Das resultierende Anwen dungsfalldiagramm findet sich in Abbildung 5 3 Dies kann jedoch nur ein erster Entwurf sein denn man wird mit Sicherheit beim Schreiben der Anwendungsf lle noch auf Zerlegungsm glichkeiten sto en Au erdem muss noch das Verhalten der Anwendungsf lle untereinander analysiert werden Daher sind an dieser Stelle die extend und include Beziehungen zwischen den Anwendungsf llen noch nicht enthalten 5 4 Beziehungen zwischen den Anwendungsf llen Ein hilfreiches Mittel um die Beziehungen zwischen den Anwendungsf llen zu modellieren ist eine Untersuchung des Navigationskonzepts der Benutzerschnittstelle Ein Ausschnitt davon n mlich der Unterautomat Bestellung war bereits in Abbildung 5 2 zu sehen Abbildung 5 4 zeigt das vollst n dige Navigationskonzept Dieses stellt dar welche Bildschirmansichten von welchen anderen aus 2Die schattierten Zust nde sind vom Startzustand aus direkt erreichbar was aus bersichtlichkeitsgr nden hier aber nicht dargestellt wird Die Startseite Zustand Azamon wird vom System automatisch aufgerufen wenn der Kunde den 41 5 Anwendungsf lle Warenkorb editieren Kontaktinformationen ansehen Artikel in den Warenkorb legen Buchbestellung durchf hren Produktinformationen ansehen Bestellung stornieren Kunde Buchrezension durchf hren Neuen Account er ffnen Buch bewerten
6. ndern Rechnungsdaten anlegen kann Wenn das System im Kunden Objekt keine Kreditkartendaten finden kann ffnet es die Seite Zah lungsdaten anlegen Es zeigt dort im Abschnitt f r die Kreditkartendaten leere Felder an in denen der Kunde die Daten seiner Kreditkarte eintr gt Der Kunde klickt dann auf Daten abschicken Das System validiert nun die Kreditkartendaten aktualisiert die entsprechenden Attribute des Kunden Objekts und speichert es ab Anschlie end wechselt es wieder auf die Seite Zahlungsweise Wenn der Kunde auf Zahlungsdaten ndern klickt ffnet das System die Seite Zahlungsdaten an legen Es zeigt nun die Kreditkartendaten des Kunden im entsprechenden Abschnitt an Wenn bereits eine Rechnungsanschrift vorliegt zeigt das System diese ebenfalls im vorgesehenen Abschnitt an Wenn keine Rechnungsdaten gespeichert sind der Kunde aber schon mindestens dreimal erfolgreich per Kreditkarte bezahlt hat stellt das System die Felder f r die Rechnungsbestellung leer dar so dass der Kunde Daten eintragen kann Der Kunde tr gt nun die gew nschten Daten ein oder ndert sie und klickt anschlie end auf Daten abschicken Das System pr ft dann die Kreditkartendaten und die Rechnungsanschrift soweit wie m glich auf Konsistenz aktualisiert die entsprechenden Attribute des Kunden Objekts und speichert es ab Wenn das System bei der Validierung der Adress oder Kreditkartendaten Fehler feststellt ste
7. 2 Warenkorb erzeugen und zuordnen Ableiten der Methoden aus den Controllern In diesem Abschnitt soll beschrieben werden wie sich die Controller auf die Objekte verteilen und in welche Methoden oder S tze von Methoden sie sich verwandeln Der vollst ndige Ablauf des Anwendungsfalls kann aber nur im Kontext der Architektur sinnvoll betrachtet werden Daher kann die Realisierung unter Umst nden etwas vom vorl ufigen Design in Kapitel 6 abweichen Warenkorb suchen F r die Kommunikation mit den Entity Objekten des Systems die als Java Entity Beans realisiert sind sind die verschiedenen Sessionfassaden zust ndig Speziell f r den Wa renkorb gibt es die WarenkorbFassade Um zu pr fen ob ein Warenkorb vorhanden ist bekommt die WarenkorbFassade eine Methode sucheWarenkorb boolean Diese muss ihrerseits versuchen den Warenkorb aus der Session des Kunden auszulesen Deshalb ben tigt die Klasse Session eine get Methode f r den Warenkorb 86 8 1 Warenkorb editieren Positionen auslesen und Inhalt anzeigen Genau genommen handelt es sich hier um zwei verschiedene Funktionen die in einem Controller dargestellt sind Gemeint ist damit dass die Da ten des Warenkorbs ber irgend einen Mechanismus an die anzeigende Bildschirmseite bermittelt werden m ssen Der Warenkorb setzt sich aber aus Positionen zusammen die wiederum B cher ent halten Aus allen drei Klassen m ssen Daten in der Bildschirmansicht angezeigt werden ber e
8. Au erdem soll es jedem Kunden m glich sein Rezensionen f r B cher zu schreiben die dann im Buchshop eingesehen werden k nnen Bestandteil einer Rezension kann auch eine Punktbewertung sein Diese kann aber auch allein abgegeben werden Andere auch potentielle Kunden sollen die Rezensionen und Bewertungen einsehen K nnen 4 2 4 Identifizieren weiterer Klassen Durch die obige Analyse der Aufgabenstellung treten in den erg nzten Passagen einige neue Klassen zu Tage die in das Informationsmodell aufgenommen werden m ssen e die Kundenliste ohne die keine Accounts gef hrt werden k nnten oder irgendwelche Daten von Kunden gespeichert werden k nnten e die Generalisierung von Rechnung Abrechnung und eine weitere Spezialisierung die Kre ditkartenabrechnung e die Spezialisierungen von Bestellung Kreditkartenbestellung und Rechnungsbestellung e die Position die in Bestellung und Warenkorb enthalten ist Es reicht nicht aus zu sagen dass eine Bestellung und ein Warenkorb B cher enthalten Vielmehr sind weitere Angaben wie die Menge oder der Gesamtpreis vonn ten Die Gesamtheit dieser Angaben ist dann eine Position e das Suchergebnis denn die vom Kunden angesto ene Suche muss irgendwie zu sichtbaren Resultaten kommen e die Bestellliste ohne die es nicht m glich ist die Bestellungen eines Kunden zu verwalten Nachdem nun die Sammlung der Klassen vervollst ndigt wurde kann man daran gehen ein erstes Klassendiagram
9. Ausgew hlte Adresse ndern klickt wechselt das System auf die Seite Adressda ten Es tr gt in die dort vorgesehen Felder f r die Adressdaten die gespeicherten Daten des betreffen den Adress Objekts ein Der Kunde ndert die Daten und klickt auf Daten abschicken Das System validiert daraufhin die Adressdaten s o und aktualisiert bei erfolgreicher Validierung das Adress Objekt Dann zeigt es wieder die Seite Bestellen mit den aktuellen Daten an Wenn der Kunde eine Adresse markiert und auf Ausgew hlte Adresse l schen klickt l scht das System das betreffende Adress Objekt aus der Liste der Lieferadressen f r diesen Kunden und stellt die Seite Bestellen erneut mit den aktuellen Daten dar Wenn der Kunde auf Bestellung abbrechen klickt bergibt das System die Kontrolle wieder an den aufrufenden Anwendungsfall und signalisiert diesem dass die Bestellung abgebrochen wurde Wenn das System feststellt dass der Kunde keine Versandart oder keine Lieferadresse ausgew hlt hat fordert es den Kunden auf eine Adresse und Versandart auszuw hlen Wenn die Validierung der Adressdaten fehlschl gt ruft das System den Anwendungsfall Fehlerhafte Dateneingabe behandeln auf B 1 7 Warenkorb editieren Standardablauf Das System zeigt die Seite Warenkorb an Dann ffnet es das Warenkorb Objekt f r diesen Kunden und zeigt alle dort gespeicherten Positionen mit St ckzahl Preis Buchtitel und
10. Finden fehlender Objekte und 3 Vorl ufiges Design Die Abl ufe in den Stabilit tsdiagrammen stellen den Ablauf der Anwendungsf lle grafisch dar Des halb bietet es sich an dieser Stelle an noch einmal den Ablauf der Anwendungsf lle zu verifizieren und herauszufinden ob es mit den zur Verf gung stehenden Objekten m glich ist die in den Anwen dungsf llen geschilderten Abl ufe durchzuf hren Gleichzeitig kann eine berpr fung stattfinden ob der Anwendungsfall den man gerade bearbeitet alle n tigen Alternativabl ufe ber cksichtigt Diese Pr fung f hrt also unter Umst nden zur Korrektur von Anwendungsfalltexten Da die Anwendungsf lle im Kontext des Informationsmodells geschrieben sein sollen wird au er dem untersucht ob alle zur Ausf hrung n tigen Objekte zur Verf gung stehen und die Objekte ber alle n tigen Attribute verf gen Neu gefundene Objekte und Attribute werden dem Klassenmodell hinzugef gt Am Ende der Stabilit tsanalyse sollte man nach Aussage von Rosenberg ca 75 80 der Attribute gefunden haben Ausdr cklich ausgeschlossen wird an dieser Stelle jedoch das Hinzuf gen von Operationen zu den gefundenen Objekten Laut Rosenberg sollte man damit nicht beginnen solange man noch kein voll st ndiges Bild vom System entwickelt hat Die Stabilit tsanalyse dient in erster Linie dazu dieses Bild zu entwickeln Das Verhalten auf die verschiedenen Objekte zu verteilen ist die Aufgabe die im Detaildesign ge
11. Rosenberg Scott Use Case Driven Se Object Modeling 1 l schen 4375 43 75 with UML Einkauf fortsetzeri Aktualisieren Bestellen Abbildung A 10 Warenkorb 128 A3 Bestellen Bestellen Bestellung abbrechen Bestellen Kontakt 12 Lieferadresse ausw hlen Firma Mustermann Hans Mustermann z Hd Hans Mustermann Musterstra e 23 Musterallee 23 suis O 12345 Mustestadt Deutschland Tel 0123 45678 Tel 0123 88888 Ausgew hlte Adresse Ausgew hlte Adresse Neue Adresse anlegen 3 ndern l schen Versandart ausw hlen CH Deutsche Post Express O UPS O Trans O Flex O German Parcel Adresse und Versandart verwenden Abbildung A 11 Lieferdaten 129 A Prototyp und Benutzerhandbuch Lieferdaten angeben Im oberen Teil des Hauptanzeigebereichs finden Sie eine Liste der Adres sen die Sie als m gliche Lieferadressen angegeben haben W hlen Sie hier eine Adresse aus indem Sie den entsprechenden Radiobutton markieren Falls Sie noch keine Lieferadresse hinterlegt haben klicken Sie auf Neue Adresse anlegen um die Daten f r eine neue Adresse einzugeben Sie k nnen auch falsch eingegebene Adressdaten korrigieren wenn Sie die Adresse markieren und auf Ausge w hlte Adresse ndern klicken In beiden F llen ffnet sich dann die Seite Adressdaten ndern Machen Sie dort ihre Eingaben und klicken Sie auf Daten abschicken Die Daten werden dann in die Datenbank
12. Rosenberg macht dazu in RoSc99 S 41 folgenden Vorschlag Ich ermutige meine Kunden so oft wie m glich schnelles Prototyping einzusetzen Die Idee dabei ist dass Entwickler und Benutzer sich zusammensetzen und etwas entwerfen das demonstriert dass die Konzepte funktionieren Im Laufe der Jahre habe ich erkannt dass der beste Weg Gruppen von Anwendungsf llen zu finden der ist im Zusammenhang mit dem Prototypen ein grobes Benutzerhandbuch zu schreiben so als ob der Prototyp tats chlich ein funktionierendes System w re Um noch einen Schritt weiter zu gehen kann ich sagen dass es normalerweise ein exzel lenter Ansatz ist die grafische Benutzerschnittstelle GUI parallel zum gew nschten Sy stemverhalten zu erforschen Das bezieht mit ein mit den Benutzern zusammen durch die Pr sentationsaspekte des Systems zu iterieren und nachdem man sich ber einige Bild schirmansichten einig geworden ist die zugeh rigen Anwendungsf lle zu schreiben Bei dem Vorhaben eine Benutzerschnittstelle zu entwerfen die das gew nschte Systemverhalten auch wirklich widerspiegelt stellt sich die Frage wie man dieses Systemverhalten denn nun eigentlich er gr nden soll Im Grunde genommen ist das ja eben die Leistung beim Schreiben von Anwendungsf l len Wenn man statt dessen eine Benutzerschnittstelle entwirft muss man das Systemverhalten doch bereits kennen Wo also starten Eine M glichkeit dieses Problem zu l sen liegt i
13. Wenn das System f r diesen Kunden keinen Warenkorb finden kann erzeugt es ein neues Warenkorb Objekt und speichert es in der Session des Kunden Wenn der Inhalt des Warenkorbs leer ist zeigt das System eine entsprechende Meldung auf der Seite Warenkorb an Wenn der Kunde die Anzahl eines Artikels auf 0 setzt oder in einer Position auf L schen klickt l scht das System die zugeh rige Position aus dem Warenkorb und aktualisiert den Gesamtpreis ber alle Positionen im Warenkorb Dann zeigt es die aktuellen Werte neu an Wenn der Kunde anstatt auf Einkauf fortsetzen auf Bestellen klickt ruft das System den Anwen dungsfall Buch bestellen auf Auswirkungen auf das Klassenmodell e Damit der Warenkorb einem Kunden eindeutig zugeordnet werden kann muss er in einem bergeordneten Objekt gespeichert werden das den Kunden eindeutig identifiziert Ein solches Objekt ist die Session des Kunden Attribut Warenkorb in der Session Das Navigationskonzept Abbildung 5 4 sieht diese M glichkeit eigentlich nicht vor Dennoch ist dieser Fall denkbar wenn man die hier nicht modellierte Navigation ber das Hauptmen mit ber cksichtigt 68 Warenkorb editieren 6 2 Uu8u3s0 uolsog u uu28uaq nau Stad uablazuy uezle 0 Ime jYEZYINS 49p0 UPA UBYISOT 5 uaa s lenpje yezyanIS A veyayy UBLEISHENI Y pun 0 lt wapue syezyons u Biazue yeyul pun uasajsne uaualyisog ya
14. lle identifiziert hat muss unbedingt sichergestellt werden dass diese alle in der Problemstellung enthaltenen funktionalen Anforderungen abdecken Tabelle 5 2 zeigt die Zuordnung der Anforderungen aus der Problemstellung zu den entsprechenden Anwendungsf llen Abgedeckt durch Anwendungsfall Funktionale Anforderung Passwortgesch tzte Accounts Anmelden Neuen Account er ffnen Buchbestellung online Buchbestellung durchf hren Artikel in den Warenkorb legen Warenkorb Buch im Warenkorb zur Bestellung editieren vormerken Tabelle 5 2 Anforderungen und Anwendungsf lle 5 6 Beschreibung der Anwendungsfalle Nachdem nun die Anwendungsf lle identifiziert sind und die funktionalen Anforderungen den An wendungsf llen zugeordnet wurden kann man daran gehen die Texte der Anwendungsf lle zu ver fassen Dazu st tzt man sich im Wesentlichen auf den Inhalt des Kurzhandbuchs Dieses beschreibt jedoch lediglich die Benutzerseite und macht kaum Aussagen ber die Antworten des Systems auf be stimmte Benutzeraktionen Diese m ssen also in den Anwendungsf llen erg nzt werden Auch wird im Benutzerhandbuch der Standardablauf der Anwendungsf lle in den Vordergrund gestellt und nicht die Alternativabl ufe Daher m ssen auch diese vervollst ndigt werden Die Entwicklung von Anwendungsf llen aus dem Text des Benutzerhandbuchs soll hier aus Platz gr nden nur an einigen Beispielen erkl rt werden Eine vollst ndige Liste der Anwendu
15. lle identifiziert sind werden sie in Anwendungsfalldiagramme einge tragen und Paketen zugeordnet Abschlie end werden die funktionalen Anforderungen den Anwen dungsf llen und den damit verbundenen Objekten zugeordnet Zur Anwendungsfallanalyse geh rt auch das Schreiben der Anwendungsfalltexte Allerdings ist genau hier die Grenze zur n chsten Pha se des Prozesses Die Anforderungsanalyse schlie t mit dem Meilenstein Anforderungsreview ab 16 2 2 Phasen und Elemente des ICONIX Prozesses 2 2 2 Analyse und vorl ufiges Design In dieser Phase werden die Texte der Anwendungsf lle geschrieben Das beinhaltet sowohl die Standard als auch die Alternativabl ufe Dabei sollte besonders darauf geachtet werden dass die Alternativab l ufe vollst ndig sind weil viele Systemfunktionen vor allem die nicht offensichtlichen in den Alternativabl ufen stecken Daher w rde das Vergessen von Alternativabl ufen zur Unvollst ndigkeit der Spezifikation f hren Stabilitatsanalyse Die Stabilit tsanalyse ist der Kern des ICONIX Prozesses Als Mittel zur Darstellung dienen dabei Stabilit tsdiagramme Dabei handelt es sich um stereotypierte Klassendia gramme wobei die Klassen in die Stereotypen Boundary Entity und Control aufgeteilt werden Es handelt sich bei der Stabilit tsanalyse um eine erste Ann herung an das dynamische Modell des Systems einen ersten Versuch Das Ziel dabei ist es die L cke zwischen den Anforderunge
16. mlich Rechenoperationen Dieser Zustand ist aber im Problembereich nicht immer unmittelbar bedeutsam genauso wenig wie die auszuf hrenden Operationen so dass es sich je nach Kontext eben doch nicht um Objekte handelt da sie keinen Raum im zu modellierenden Teil der Welt einnehmen Letztendlich ist eben doch die Bedeutsamkeit des Objekt Kandidaten f r den jeweiligen Problem bereich das entscheidende Kriterium Wenn man ein objektorientiertes System baut das Arithmetik ausf hrt so sind die Werte als Zust nde der Zahlenobjekte ebenso bedeutsam wie die Rechenopera tionen Im anderen Systemen sind solche einfachen Attribute jedoch in der Regel Mittel zum Zweck denn sie tragen einen Teil des Objektzustands und sind somit keine Objekte Beziehungsklassen Eine Assoziation dient zum Verbinden von Paaren von Objekten Eine Beziehungsklasse ist eine spezielle Form der Assoziation die eigene Eigenschaften besitzt Diese Eigenschaften gelten f r genau eine Kombination von Objekten einer Klasse BoRuJa99 S 167f Sie zeichnet sich also dadurch aus dass sie nicht existieren kann wenn eines der beiden Objekte fehlt Da die Assoziation ber eigene Attribute verf gt stellt man sie als Klasse dar Beziehungen und Aktionen Rein tempor re Zusammenh nge in Form von Aktionen bleiben im statischen Modell unber cksichtigt sie sind Teil des dynamischen Modells Wichtig sind hier vielmehr diejenigen Sachverhalte die ber den betreffenden Zeitpun
17. muss Die Designphase endet mit dem Meilenstein Endg ltiges Designreview 2 2 4 Implementierung In der letzten Phase schlie lich wird die Software produziert und getestet Hier wird also endlich Code erzeugt Soweit n tig zeichnet man vorher Komponenten und Verteilungsdiagramme die bei der Implementierung helfen k nnen Zu einer handwerklich guten Umsetzung geh ren nat rlich auch Modul und Integrationstests die nach der Fertigstellung gr erer und kleinerer Einheiten der Software durchgef hrt werden m s sen Au erdem werden System und Benutzerakzeptanztests durchgef hrt wobei wieder die Anwen dungsf lle als Testszenarien benutzt werden Der letzte Meilenstein vor dem Abschluss des Projekts ist demnach die Auslieferung 2 3 Meilensteine Obwohl der Weg zum Ziel abh ngig von den Vorlieben und F higkeiten der Beteiligten sehr ver schieden sein kann sollten doch bestimmte Meilensteine immer passiert werden Sorgt man daf r dass diese Meilensteine passiert werden garantiert das zwar nicht den Projekterfolg aber es erh ht die Erfolgsaussichten deutlich Die meisten Meilensteine des Prozesses stellen Reviews dar In diesen wird sichergestellt dass die oben erw hnten Regeln der einzelnen Phasen auch eingehalten wurden 18 2 3 Meilensteine Allgemein gesprochen sollten nach Fertigstellung des Systems folgende Arbeitsschritte durcheef hrt worden sein e Das Team hat alle Anwendungsf lle ident
18. screen Lieferdaten bestimmen Buch bestellen Zahlungsdaten bestimmen Ka Ki lt lt extend gt gt 2 lt lt extend gt gt 2 Fehlerhafte Dateneingabe behandeln Abbildung 5 8 Paket Buchbestellung Buchkatalog C Deseme nl Buchkatalog ansehen Kurzinfo anzeigen Buchkatalog durchsuchen lt lt extend gt gt lt lt extend gt gt Produktinformationen ansehen Neuheiten und Empfehlungen ansehen Abbildung 5 9 Paket Buchkatalog 56 5 7 Anwendungsfallpakete Zum Paket Buchrezension Abbildung 5 10 geh ren die oben hergeleiteten Anwendungsf lle die aus Buchrezension durchf hren entstanden sind sowie die Bewertung von B chern da diese immer zu einer Buchrezension dazugeh rt und dem Bereich Kommentierung von B chern hinzugerechnet werden kann Buchrezension Buch bewerten Rezension berarbeiten A i lt lt include gt gt lt lt extend gt gt Buch rezensieren Rezension vorbereiten Abbildung 5 10 Paket Buchrezension Systemanmeldung und Kontaktinformationen Anmelden Neuen Account er ffnen G Kant aktinformationen ansehen Abbildung 5 11 Paket Systemanmeldung und Kontaktinformationen Das letzte Paket Abbildung 5 11 enth lt schlie lich die Anwendungsf lle die zur Systemanmeldung geh ren also Anmelden und Neuen Account anlegen Der letzte Anwendungsfall wird dem Paket einfach hinzugef gt da es nicht viel Sinn macht ei
19. welche Schritte der ICONIX Prozess vorsieht um die jeweilige Phase abzuschlie en Der Autor folgt dem vorgeschlagenen Weg und beschreibt f r jede Phase des Prozesses genau wie man mit der dargestellten Methode zu den jeweiligen Entwurfsentscheidungen findet Soweit auf diesem Weg Probleme auftreten etwa weil mit dem ICONIX Prozess bestimmte Probleme nicht befriedigend gel st werden k nnen wird nach M glichkeiten gesucht diese L cken zu f llen Dabei legt der Autor besonderen Wert darauf darzustellen wie man von einem Schritt des Prozesses zum n chsten gelangt Abschlie end wird f r jede Phase ein Vergleich mit der von Rosenberg und Scott gefundenen L sung gezogen Im Detail er rtert diese Arbeit folgende Fragestellungen e Kapitel 4 beschreibt wie man mit der auch als Methode von Abbot bekannten grammatikali schen Analyse der Problembeschreibung zu einem statischen Modell gelangt e Kapitel 5 beschreibt wie man aus einer anf nglichen Sammlung von Gesch ftsvorf llen einen GUI Prototypen und ein Benutzerhandbuch gewinnt und wie man aus dem Benutzerhandbuch Anwendungsf lle extrahiert 1 ber diese Arbeit e Kapitel 6 beschreibt wie man mit Hilfe der Stabilit tsanalyse die Anwendungsf lle auf Voll st ndigkeit und Durchf hrbarkeit berpr ft und mit dem Informationsmodell abgleicht und wie man die Objekte und Attribute findet die noch fehlen um diese Anwendungsf lle zu im plementieren Au erdem legt es
20. 1 8 2 8 3 Die Phasen des ICONIX Prozesses aus RoSc99 S 1 15 Erste Klassen 3 302 5 sus apu 2 2 a na de Ka ba he tae be bain hes 31 Informationsmodell a 33 Kunde mit Aggregationen CC 22 ee 33 Informationsmodell von Rosenberg und Scott 2 2 o ooo o 34 Erste Anwendungsf lle 38 Navigation durch den Bestellprozess 2 2 22 2 Cum en 40 Anwendungsf lle vor der Zerlegung 42 Navigationskonzept 43 bersicht ber die Anwendungsf lle 45 Buchbestellung gt 222 02 Swan ne ek 50 B chrezension a s s A a hl 53 Paket Buchbestellung 2 22 sua BAA ee esi are nl a 56 Paket Buchkatalog vc as lu ee Je er dl k n a 56 Paket Buchrezension odau doa maaa ai a aana a Eaei a aTa a 57 Paket Systemanmeldung und Kontaktinformationen 57 Anwendungsf lle von Rosenberg und Scott 58 Stabilit tsdiagramm Buchkatalog ansehen 66 Stabilit tsdiagramm Warenkorb editieren 69 Stabilit tsdiagramm Buch bestellen 72 Stabilit tsdiagramm Lieferdaten bestimmen oo oo o 74 Stabilit tsdiagramm Warenkorb editieren von Rosenberg und Scott 75 Architektur eines J2EE basierten Internetshops aus SiStJa S 366 80 Architekturfragment f r den Buchshop 82 Abarbeiten eines HTTP Requests 2 2 2 0 nen 83 Sequenzdiagramm Warenkorb editieren 2 2 cn none 89 Sequenzdiagra
21. 38 39 Inhaltsverzeichnis 3 2 5 3 5 4 5 5 5 6 5 7 5 8 S122 Buch suchen nd zes Foy hama k Gn ern a S ND a va 5 1 3 Warenkorb verwalten STA B chibestellen us Gove 2 8 S k uk ata OS a Sen as ae A 5 1 5 Bestellung verfolgen GUI Prototyp und Benutzerhandbuch 3 21 BLOOD muna a BA A ead Oe 52 2 Benutzerhandbuch Ae tii ET Identifizieren der Anwendungsf lle o e r eee e n Beziehungen zwischen den Anwendungsf llen o Zuordnen der funktionalen Anforderungen Beschreibung der Anwendungsf lle o oo 5 6 1 Buchbestellung 5 6 2 Buchrezension und Bewertung X03 Produkt bersichten a rs a a a Anwendungsfallpakete ee Vergleich mit dem Rosenberg Modell 6 Stabilit tsanalyse 6 1 6 2 6 3 6 4 6 5 Buchkatalog ansehen W renkorb editieren ic a AAA ea ee ae Bas B ch bestellen 4 rs 4 0 2 8 8 sm kn e a a ta 7 berlegungen zur Softwarearchitektur 7 1 7 2 7 3 7 4 Allgemeine berlegungen Spezielle berlegungen 3 ya a mw wa dal PA J2EE nd MVC 24 ot age PA ra Ae Ber BA A BA Ara Architekturfragment des Internet Shops 2 2 2 Cm nennen 8 Interaktionsmodellierung 8 1 8 2 8 3 8 4 Warenkorb editieren gay He a ragen 8 1 1 Entwicklung des Detailentwurfs aus dem Stabilit tsdiagramm 8 1 2 Ablauf des Anwendungsfalls 2 2 Comm o
22. Abschnitt wird wieder der berarbeitete Text des Anwendungsfalls geschildert wo bei die ge nderten Stellen kursiv dargestellt sind Abbildung 6 3 zeigt das zugeh rige Stabilit tsdia gramm berarbeiteter Text des Anwendungsfalls Standardablauf Der Kunde klickt auf der Seite Warenkorb auf Bestellen Das System stellt nun sicher dass der Kunde angemeldet ist und dass f r den Kunden ein Warenkorb existiert Dann stellt es sicher dass der Warenkorb des Kunden mindestens eine Position enth lt Anschlie end er zeugt es ein neues Bestellungs Objekt mit einer eindeutigen Bestellnummer f r diesen Kunden und kopiert den Inhalt des Warenkorbs hinein Danach ruft das System nacheinander die Anwendungsf l le Lieferdaten bestimmen und Zahlungsdaten bestimmen auf Dann stellt das System sicher dass der Kunde in keinem der aufgerufenen Anwendungsf lle die Bestellung abgebrochen hat Anschlie end zeigt das System die Seite Best tigung an Auf dieser Seite stellt es noch einmal alle Daten der Bestellung dar Der Kunde berpr ft die Richtigkeit der Daten und klickt auf Bestellung abschicken Das System f gt dann der Bestellliste die Bestellung hinzu und bergibt die Kontrolle an den Anwendungsfall Buchkatalog ansehen 71 Stabilit tsanalyse 6 uafequia lsilll 1s 8 u Hunjjaysag ays 11184588 uafinazia 1auuuunN sanau sw Guna sag Bunajsag uayn d yan gay uawwysag ualepsbu
23. Beispiele als im Buch Da sich der Autor dieser Arbeit auf die Kernabl ufe des Buchshops konzentriert hat die sich 73 6 Stabilit tsanalyse Fehlerhafte Dateneingabe behandeln Adresse eingeben ndern und best tigen Seite Adressdaten Adresse validieren Lieferadresse abspeichern Lieferadressen suchen Kunde und anzeigen Versandartenliste Versandarten auslesen Lieferadressen auslesen und anzeigen Kunde Hinweismeldung Adressp ndern klicken Adresse l schen klicken Seite Bestellen Lieferadresse l schen Auswahl unvollst ndig Versandart und Lieferadresse ausw hlen und best tigen Auswahlen pr fen Adresse und Versandart Bestellung Bestellung abbrechen speichem klicken Abbruch melden Buch bestellen Abbildung 6 4 Stabilit tsdiagramm Lieferdaten bestimmen 74 6 5 Vergleich mit der L sung von Rosenberg und Scott um den Produktkatalog und das Bestellverfahren ranken ist ein Vergleich nur bei einem einzigen Dia gramm m glich n mlich Warenkorb editieren Ansonsten haben sich Rosenberg und Scott haupt s chlich mit Aspekten wie dem Login Verfahren besch ftigt die nicht unmittelbar zu den Kernpro zessen geh ren oder haben Shop interne Vorg nge wie Ship Order behandelt die in dieser Arbeit nicht ber cksichtigt sind siehe Kapitel 1 Die einzige Stabilit tsanalyse die deckungsgleich ist ist Warenkorb editieren Leider wird gerade die
24. Bestandsinformation an Der Kunde ndert die St ckzahl einer Position im Warenkorb und klickt auf Aktualisieren Das System speichert die neue St ckzahl der betreffenden Position berechnet die Kosten f r diese Position und den Gesamtpreis ber alle Positionen im Warenkorb neu und zeigt die aktuellen Werte an Der Kunde klickt dann auf Einkauf fortsetzen woraufhin das System die Kontrolle wieder an den Anwendungsfall Buchkatalog ansehen bergibt Alternativabl ufe Wenn der Kunde die Anzahl eines Artikels auf 0 setzt l scht das System die zugeh rige Position aus dem Warenkorb und aktualisiert den Gesamtpreis ber alle Positionen im Warenkorb 137 B Anwendungsf lle vor der Stabilit tsanalyse Wenn der Kunde anstatt auf Aktualisieren auf L schen klickt l scht das System die zugeh rige Position aus dem Warenkorb und aktualisiert den Gesamtpreis ber alle Positionen im Warenkorb Wenn der Kunde anstatt auf Einkauf fortsetzen auf Bestellen klickt ruft das System den Anwen dungsfall Buch bestellen auf B 1 8 Zahlungsdaten bestimmen Standardablauf Das System zeigt die Seite Zahlungsweise an Es durchsucht das Kunden Objekt nach den Kreditkartendaten und der Rechnungsanschrift des Kunden und stellt sicher dass diese vorhanden sind Dann zeigt es die Daten in den jeweils daf r vorgesehenen Abschnitten an Der Kunde w hlt als Zahlungsweise Kreditkartenzahlung oder Rechnungs
25. Daten der Benutzer im Warenkorb ge ndert hat Deshalb gibt es eine Methode aktualisiereWarenkorb in der Klasse WarenkorbFassade die aus den Daten des Events einen neuen Warenkorb erzeugen und mit dem gespeicherten Warenkorb vergleichen kann Dazu dient die Methode vergleicheWarenkorb der WarenkorbFassade Da die WarenkorbFassade die Struktur und Implementierung des Warenkorbs kennt kann sie ber die Methode setStueckzahl der Klasse Position die St ckzahl der richtigen Position aktualisieren Nach dem Aktualisieren der St ckzahl muss das System allerdings den Preis der Position neu berech nen Au erdem muss es auch den Gesamtpreis des Warenkorbs neu berechnen weil sich dieser ja aus der Summe der Positionspreise zusammensetzt Dazu ben tigt man neben get und set Methoden f r die Preise in Position und Buch auch noch zwei Methoden berechnePreis in Position und Warenkorb Anzeigen Das Anzeigen wurde oben bereits beschrieben Der Mechanismus ist immer gleich da das HTTP Protokoll verlangt dass auf jede Client Anfrage eine Antwort des Servers erfolgt Die in Kapitel 7 beschriebene Architektur des Systems tr gt dieser Forderung Rechnung Position l schen Dieser Controller f hrt zu keiner neuen Methode Er w rde in Sprachen ohne Garbage Collection zu einem Destruktor f r die Klasse Position f hren doch Java kommt ohne Destruktoren aus Warenkorb erzeugen und zuordnen Dieser Controller ist beinahe eb
26. Der ICONIX Prozess hingegen beschreibt die Anwendungsf lle als Hilfe f r das Design des Systems mit einem besonderen Gewicht auf der R ck verfolgbarkeit zwischen den Teilen des Modells und den Anwendungsf llen aus denen sie entstanden sind Zum Beispiel wird der Text der Anwendungsf lle in die Sequenzdiagramme mit aufgenommen so dass vollkommen transparent wird wie die Abl ufe mit dem Anwendungsfalltext in Zusammen hang stehen Um also von Anfang an zu erleichtern dass man die Anwendungsf lle f r den Entwurf des Systems benutzen kann beschreiben diese die Anwendung des Systems durch den Benutzer im Kontext des Objektmodells Das bedeutet dass der Analytiker bereits beim Erstellen von Anwen dungsf llen die beteiligten Objekte des Informationsmodells konkret benennt Auch die Boundaries des Systems wie zum Beispiel die Bildschirmseiten bekommen in den Anwendungsf llen bereits Namen Zur Identifizierung von Anwendungsf llen nutzt man die Prototypen um herauszufinden welche Arbeitsprozesse der Benutzer des Systems durchf hren will Die so gefundenen Anwendungsf lle zeichnet man in die Anwendungsfalldiagramme ein Au erdem schreibt man Texte f r alle Anwen dungsf lle die die Standard und Alternativabl ufe beinhalten aber keine dar ber hinausgehenden Informationen Diese w ren nur Ballast und w rden den Blick von den wichtigen Aspekten ablenken n mlich wie der Benutzer und das System interagieren Nachdem die Anwendungsf
27. Hilfsmen im oberen Rand des Haupt anzeigebereichs Nichtsdestotrotz Kann sie jederzeit von berall aus erreicht werden Das Anklicken der entsprechenden Position bringt f r jeden der damit verbundenen Anwendungsf lle eine eigene Seite zur Anzeige Von dieser aus kann der Benutzer dann jeweils ber Navigationselemente wie Links oder Schaltfl chen auf andere Seiten verzweigen um Teilaufgaben durchzuf hren oder neue Anwendungsf lle aufzurufen Au erdem enthalten die verschiedenen Bildschirmansichten aber auch Formularelemente die beim Abarbeiten von Anwendungsf llen helfen Beim Bestellen eines Buches zum Beispiel muss der Kunde die Versandmodalit ten bestimmen und die Zahlungsdaten angeben und anschlie end die Bestellung best tigen Abschnitt 5 1 4 F r diese drei Ansichten ffnet man zweck m igerweise neue Seiten um die Buchbestellung nicht zu un bersichtlich werden zu lassen und gleichzeitig eine Gliederung nach Teilaufgaben vorzunehmen Da diese Teilaufgaben nacheinander bew ltigt werden k nnen kommt man zu einem Wizard hnlichen Aufbau des Bestellprozesses der in Abbildung 5 2 als Zustandsdiagramm dargestellt ist Die Zust nde stellen dabei die verschiede nen Seiten dar die der Benutzer w hrend der Buchbestellung durchgehen kann und die Events stehen f r die Navigationselemente die er anklicken muss um von einer Seite zur anderen zu gelangen Au erdem finden sich auf den entsprechenden Seiten Formularelemente zum Ei
28. Im unten dargestellten Beispiel von Singh u a ist diese Funktionalit t im Screen Flow Manager gekapselt 78 7 2 Spezielle berlegungen Anforderungen durch Mehrbenutzerbetrieb Normalerweise arbeiten Internet Systeme nebenl ufig Das bedeutet dass mehrere Benutzer gleich zeitig so mit dem System arbeiten k nnen m ssen als ob sie das System alleine benutzen w rden F r den Server bedeutet das in der Regel dass das angeschlossene Datenbanksystem Transaktionen beherrschen muss Auch die zu entwickelnde Anwendung muss darauf eingerichtet sein Das Stichwort Datenbank f hrt zu einer weiteren berlegung Das System muss n mlich die erzeugten Daten wie Kundenkartei Bestellungen und Abrechnungen irgendwie persistieren also f r weitere Verwendung in einer Datenbank speichern Man hat nun die Wahl diese Mechanismen inklusive der Transaktionslogik selbst zu implementieren oder daf r ein Persistenzframework zu benutzen Au erdem muss die Anwendung in der Lage sein die Daten der Einkaufssitzungen verschiedener Kunden voneinander zu unterscheiden Technisch bedeutet das dass das System eine Sessionverwal tung haben muss Jeder Verbindung zwischen Client und Server wird dann eine Session zugeordnet und die Daten die zur Session geh ren werden daran gebunden Zu diesen Daten geh ren unter An derem die Identifikation und der Warenkorb des Kunden und die Bildschirmansicht die er sich gerade ansieht Anforderungen an die Skalierbark
29. Klassen ist insgesamt niedrig Damit allerdings die WkPositionen wissen von welcher Position sie die Daten beziehen m ssen muss die Warenkorb Fassade vom Warenkorb mit getPosition int Referenzen auf die betreffenden Positionen anfordern und den WkPositionen im Konstruktor bergeben Dadurch entsteht eine Abh ngigkeit zwischen der WarenkorbFassade und der Klasse Position Weitere Beziehungen und Abh ngigkeiten Die WarenkorbFassade ben tigt eine Assoziati on zur Session und zum Warenkorb Erstere wird ben tigt um mit der Methode getWarenkorb eine Referenz auf den Warenkorb des Kunden zu erhalten letztere dient dazu den Gesamtpreis des Waren korbs zu ermitteln Die Beziehungen bzw Abh ngigkeiten zwischen den verschiedenen Controllern wurden im Kapitel 7 bereits erl utert Neue Objekte Dieser Teil des Modells kommt mit relativ wenigen neuen Klassen aus Abgesehen von den architekturbedingten Control Klassen sind dies nur die Klassen WkIterator und WkPositi on die durch den Einsatz des Iteratormusters der in Kapitel 8 beschrieben wurde zustande kommt 9 3 Vergleich mit der L sung von Rosenberg und Scott Abbildung 9 3 zeigt das vollst ndige Klassenmodell von Rosenberg und Scott aus dem Full Work book Model Um der besseren Vergleichbarkeit willen wurden allerdings die Teile die die internen Abl ufe des Buchshops betreffen entfernt Das Modell zeigt im oberen linken Teil die Boundary Klassen die aus den
30. Lieferung einer oder mehrerer Positionen von B chern selbsterkl rend Der Buchkatalog enth lt alle B cher die der Shop im Moment Buchkatalog EN S EES prinzipiell f hrt unabh ngig vom aktuellen Lagerbestand Eine Kreditkartenabrechnung ist eine Abrechnung f r eine Be Kreditkartenabrechnung stellung die der Kunde mit seiner Kreditkarte bezahlen will Sie wird direkt mit der Kreditkartenfirma abgerechnet Eine Kreditkartenbestellung ist eine Bestellung die der Kunde Kreditkartenbestellung A 8 mit seiner Kreditkarte bezahlt Als Kunde z hlt jede nat rliche oder juristische Person die in irgendeiner Form mit dem Shop in Kontakt getreten ist und als Kunde d A A RE potentieller K ufer von B chern in Frage kommt unabh ngig da von ob ein Account angelegt wurde oder nicht A Die Kundenliste ist die Liste aller Kunden die sich irgendwann Kundenliste einmal beim Buchshop angemeldet haben Eine Position enth lt im Wesentlichen B cher mit Mengenanga Position be und Gesamtpreis Sie kann im Warenkorb enthalten sein oder als Teil einer Bestellung auftreten Der Buchshop gibt die obere und untere Preisgrenze an zu der Re au a ein Buch verkauft werden kann sowie den aktuellen Preis der sich der Marktsituation anpasst Diese drei Parameter bilden zu sammen den Preisrahmen Eine Rechnung ist eine Abrechnung die nicht ber die Kreditkar Rechnung tenfirma abgewickelt wird sondern erst nach Erhalt des Artikels vo
31. Pr zisierung Es m ssen dabei folgende Fragen gekl rt werden e Was charakterisiert eigentlich den zu sichernden Zustand e Was muss gespeichert werden e Wie soll das Wiederherstellen des Zustands bei dem der Kunde die Seite verlassen hat genau funktionieren Grundlage f r diese Diskussion ist Abbildung A 4 Im Hauptanzeigebereich das ist der helle innere Bereich der Bildschirmansicht also rechts vom Hauptmen und unterhalb der Titelzeile ist zu sehen welche Informationen angezeigt werden wenn der Kunde eine Kategorie mit B chern ausgew hlt hat Die oberste Zeile enth lt die Kategoriehistorie also alle Kategorien von der Wurzelkategorie B cher aus die der Kunde ausw hlen musste um zur gerade gezeigten Ansicht zu gelangen Dort wo sich auf der Abbildung die Darstellung des Buches befindet kann alternativ zur Buchansicht die Liste der 64 6 1 Buchkatalog ansehen m glichen Subkategorien angezeigt werden und ein Hinweistext dass die gew hlte Kategorie keine B cher enth lt Dies ist dann der Fall wenn der Kunde sich gerade in einer Kategorie befindet die keine B cher enth lt etwa weil es sich nicht um eine Kategorie unterster Stufe handelt Um die obere Zeile der Bildschirmansicht wiederherzustellen muss das System die komplette Kate goriehistorie kennen f r den unteren Teil reicht die Kenntnis der gerade ausgew hlten Kategorie Ist die Kategorie bekannt kann das System die Ansicht fast vollst ndig
32. W hrend sich die Stabilit tsanalyse noch auf sehr abstraktem Niveau abspielt in der Art von Anwendungsfall A ruft Anwendungsfall B auf ist es nun an der Zeit sich die Dinge genauer anzusehen Am Anfang dieses Kapitels wurde bereits erl utert dass die Anwendung nicht ohne weiteres zu jeder Zeit eine Bildschir mansicht pr sentieren kann Dies stellt das Entwurfsprinzip control in the screen in Frage denn hier wird so getan als k nne eine Bildschirmseite eine andere zur Ansicht bringen Dies ist jedoch auf grund der Beschr nkungen des HTTP Protokolls nicht m glich Die in SiStJa vorgestellte Architektur stellt eine Referenzarchitektur f r Internet Shops auf der Ba sis von J2EE Technologien dar Im Folgenden soll ein vereinfachtes Architekturfragment erl utert werden siehe auch Abbildung 7 2 das von der dort vorgestellten Architektur abgeleitet ist und 81 7 berlegungen zur Softwarearchitektur m HttpServlet FrontController lt lt entity gt gt t erzeug Event EJBController verarbeitet H WarenkorbHandier __ KatalogHandler WarenkorbFassade CommandHandler benutzt SessionFassade ai benutzt KatalogFassade zeigtan erzeugt vector lt lt entity gt gt ViewDaten lt lt houndary gt gt View erzeugt ViewHelper verarbeitet Abbildung 7 2 Architekturfragment f r den B
33. Warenkorbinhalts durch den WarenkorbHandler dar Dieses Bei spiel macht deutlich wie die Abh ngigkeiten zwischen Objekten durch das Fassadenmuster im Ent wurf des Buchshops effektiv reduziert werden k nnen W hrend hier n mlich der WarenkorbHandler die Methode getGesamtpreis der WarenkorbFassade benutzt um den Gesamtpreis des Warenkorbin halts zu erfahren m sste er ohne die Fassade direkt mit dem Objekt O4 kommunizieren Damit w re die Trennung zwischen Model und Controller aufgeweicht denn der WarenkorbHandler m sste eine Referenz auf die Warenkorb Klasse besitzen und k nnte nicht ohne diese Referenz funktionieren Entscheidet man sich nun bei der Entwurfsvariante mit Fassade f r eine andere Art der Implementie rung wie zum Beispiel das Ableiten der Klasse Warenkorb von einer anderen Container Klasse hat das keinerlei Auswirkungen auf den Control Teil der Architektur Auch die innere Organisation des Warenkorbs kann ge ndert werden solange die oben erw hnte Bedingung erhalten bleibt lterator Das Iterator Muster dient wie bereits erw hnt zum Traversieren von Listenstrukturen ohne die in ternen Strukturen der zu traversierenden Objekte offen zu legen Da im vorliegenden Modell relativ viele Listen vorkommen ist es w nschenswert das Iterator Muster so oft wie m glich einzusetzen Dadurch wird sichergestellt dass das Traversieren von Listen oder anderen Containern immer auf die gleiche Weise erfolgt Eine genaue B
34. aktuellen Preis bestimmen kann Der aktuelle Preis soll nat rlich ebenfalls im Katalog angezeigt werden Jedem Kunden soll w hrend einer Einkaufssitzung ein Warenkorb zugeordnet wer den in dem er B cher platzieren kann die er sp ter zu bestellen gedenkt Wenn der Kunde seine Auswahl getroffen hat soll er die Bestellung aufgeben k nnen Dies ist ohnehin empfehlenswert um ein m glichst vollst ndiges Bild des Problembereichs zu erhalten 28 4 2 Auffinden des Informationsmodells VAEN x mj srs Cr x wm LI ses x x O rc x J m N Tabelle 4 1 Mit der OMT gefundene Klassen 29 4 Informationsmodell Der Warenkorb enth lt Positionen die wiederum B cher enthalten Kunden bestellen B cher Bestellungen bestehen aus Positionen Positionen enthalten B cher Die Bezahlung soll entweder per Kreditkarte oder per Rechnung erfolgen K nnen Eine Bestellung ist eine Rechnungs oder Kreditkartenbestellung Der Shop erstellt Abrechnungen f r die Bestellungen Eine Abrechnung ist eine Rechnung oder eine Kreditkartenabrechnung Eine Abrechnung ist f r einen Kunden bestimmt und bezieht sich auf eine Bestellung Kunden sollen den Status von Bestellungen online verfolgen k nnen Auch sollen bereits gelieferte Bestellungen noch nachtr glich nachvollziehbar sein Der Shop f hrt Bestelllisten Die Bestelllisten enthalten die Bestellungen Eine Bestellliste ist einem Kunden zugeordnet
35. anderes als Methoden aufrufe Um die direkte Zuordnung der Anwendungsfalltexte zu den Abl ufen im Diagramm zu gew hrleisten tr gt man den Text des Anwendungsfalls auf der linken Seite der Diagramme ein und die Designin formationen auf der rechten Seite Optional ist es an dieser Stelle auch noch m glich erg nzende Spezifikationen in Kollaborationsdia grammen f r die Schl sseltransaktionen oder Zustandsdiagrammen f r die Darstellung des Echt zeitverhaltens niederzulegen Wie im Folgenden erl utert wird wird abschlie end in dieser Phase das in den Klassendiagrammen enthaltene statische Modell fertig gestellt Klassendiagramme Die Klassendiagramme entstehen aus dem urspr nglichen Informationsmo dell und dienen als Schablone f r den Code Man gewinnt sie aus dem Informationsmodell indem man dieses im Laufe des Entwurfs nach und nach erg nzt und verfeinert bzw berichtigt Dies ge schieht im Verlauf der Stabilit tsanalyse und der Interaktionsmodellierung In der Stabilit tsanalyse erg nzt man das Modell mit den dort gefundenen Operationen und Attributen und w hrend der Inter aktionsmodellierung f gt man die Operationen hinzu Anschlie end werden noch die Kardinalit ten Sichtbarkeiten static und const Attribute ab strakte Klassen und so weiter eingetragen so dass die so gewonnenen Klassendiagramme nun wirk lich alle Details des Entwurfs zeigen und man diese Schablonen lediglich noch ausprogrammieren
36. aus aufgerufen hat stellt das System die Ansicht f r das ge speicherte Buch wieder her 142 B 4 Paket Buchkatalog Wenn der Kunde auf das Navigationselement klickt das den Anwendungsfall Rezension vorberei ten aufruft bergibt das System nach dem Speichern der Buchreferenz die Kontrolle an den Anwen dungsfall Rezension vorbereiten Wenn der Kunde auf das Navigationselement klickt das den Anwendungsfall Artikel in den Waren korb legen aufruft bergibt das System nach dem Speichern der Buchreferenz die Kontrolle an den Anwendungsfall Artikel in den Warenkorb legen 143 B Anwendungsf lle vor der Stabilit tsanalyse 144 C Eidesstattliche Erkl rung Ich erkl re hiermit dass ich die vorliegende Arbeit selbstst ndig unter Zuhilfenahme der angegebe nen Quellen erstellt habe W rtlich oder sinngem bernommene Abschnitte sind als solche gekenn zeichnet Die Vorlage dieser Arbeit zur Erlangung des akademischen Grades Diplom Informatiker FH bei der Pr fungsbeh rde der Fachhochschule Gie en Friedberg ist die erste Ver ffentlichung Gie en August 2002 145
37. bernommen und Sie gelangen hier auf diese Seite zur ck Sie haben hier auch die M glichkeit ung ltig gewordene Adressdaten zu l schen indem Sie die Adresse markieren und auf Ausgew hlte Adresse l schen klicken Anschlie end m ssen Sie noch die Versandart festlegen W hlen Sie eine der Optionen aus und klicken Sie danach auf Adresse und Versandart verwenden um zur n chsten Seite zu gelangen Zahlungsweise Katalog Bestellen Zahlungsweise Bestellen Bestellung abbrechen Zahlungsdaten ndern 1 Zahlungsweise ausw hlen Rechnung Zahlungsmodalit ten festlegen Vorname Nachname Adresse PLZ Stadt Land e mail Kreditkarte Kartentyp Kartennummer Vor und Nachname auf der Karte G ltigkeitsdauer Kontrollnummer Hans Mustermann Musterstra e 26 12345 Musterstadt Deutschland hans mustermann de Mastercard 1234 1223 1234 5678 Hans Mustermann 03 04 678 Ausgew hlte Zahlungsweise verwenden Abbildung A 12 Zahlungsmodalit ten Der zweite Schritt besteht im Angeben der Zahlungsmodalit ten Wenn Sie noch Neukunde sind haben Sie zun chst nur die M glichkeit per Kreditkarte zu bezah len Nach drei erfolgreichen Transaktionen k nnen Sie dann auch auf Rechnung bestellen W hlen Sie also aus ob Sie per Rechnung oder per Kreditkarte bestellen wollen und pr fen Sie die Rechnungs anschrift bzw die Kreditkartendaten Falls bestimmte Angabe
38. dazu identi sche Darstellungen der Produkt bersichten in allen betroffenen Bildschirmansichten zu haben Zudem soll es von jeder dieser Ansichten aus m glich sein durch einen Klick in der Kurzbeschreibung des Buches in die Detailansicht zu wechseln Daher wird dieser Teil aus den Anwendungsf llen herausgezogen und im neuen Anwendungsfall Kurzinfo anzeigen festgehalten Dem Anwendungsfall wird eine Liste der anzuzeigenden B cher bergeben deren Kurzinfo dann in die Ansicht die zum aufrufenden Anwendungsfall geh rt einge f gt wird An diesem Beispiel l sst sich gut zeigen wie man durch geschickte Modellierung ein include in ein extend oder umgekehrt verwandeln kann Es ist n mlich denkbar dass berhaupt keine B cher vor liegen die angezeigt werden k nnen die bergebene B cherliste somit leer ist In diesem Fall man merke dass es sich hier um eine Bedingung handelt gibt es auch keine Kurzinfo anzuzeigen Statt dessen wird ein angemessener Alternativtext angezeigt Nimmt man den Ablauf Alternativtext anzei gen in Kurzinfo anzeigen hinein muss im Fehlerfall Kurzinfo anzeigen aufgerufen werden und Kurzinfo anzeigen bearbeitet den Fehler selbst Damit wird der include Mechanismus angewendet da in jedem Fall Kurzinfo anzeigen aufgerufen wird Wird hingegen der Alternativtext im aufrufenden Anwendungsfall angezeigt so muss Kurzinfo an zeigen im Fehlerfall nicht aufgerufen werden Bei
39. den Ansichten und Auswahlen oft zwischen den verschiedenen Typen von Clients unterscheiden Wie bereits erw hnt ist das f r die Stabilit tsanalyse eingesetzte Muster Entity Boundary Control eng an MVC angelehnt wobei mehr oder weniger das Entity dem Model der Controller dem Control und das Boundary Objekt der View entspricht Allerdings ist die Verteilung der Verantwortlichkeiten etwas flexibler als es oben f r die MVC Architektur beschrieben wurde Dennoch wird hier eine Vor abentscheidung f r dieses Architekturmuster getroffen was vielleicht erkl rt warum das ICONIX Vorgehensmodell keine explizite Architekturfindungsphase enth lt Doch mehr dazu sp ter Vorgehensweise Die Stabilit tsanalyse wird sehr nah am Text der Anwendungsf lle durchgef hrt Man analysiert je weils den Text eines Anwendungsfalls und findet heraus was f r Objekte man ben tigt um den Anwendungsfall abzuarbeiten Die gefundenen Objekte unterteilt man in Boundary Objekte Entity Objekte und Control Objekte Die Boundaries sind diejenigen Objekte mit denen der Benutzer inter agiert also typischerweise Seiten oder Elemente der Benutzeroberfl che Die Entity Objekte sind nor malerweise Objekte aus dem Informationsmodell H ufig m ssen diese auch persistiert werden und haben unter Umst nden quivalente im Datenbankmodell der Anwendung Die Controller schlie lich sind die Objekte welche die Boundaries mit den Entities verbinden Sie beschreiben also
40. denn dieser Zustand muss ber die gesamte Dauer der Einkaufssitzung gespeichert bleiben damit der Kunde beim n chsten Ansehen der Seite wieder die gleiche Ansicht pr sentiert bekommt Zum Erzeu gen des Auswahlzustands wird einfach ein Konstruktor ben tigt Dieser sollte die gew hlte Kategorie und einen Vector von Kategorien als Parameter haben die den Pfad von der Wurzel zu dieser Ka tegorie bezeichnen Der Auswahlzustand muss der Session zuzuordnen sein diese ben tigt also get und set Methoden f r den Auswahlzustand Zum Suchen ben tigt die KatalogFassade eine Methode pruefeAuswahlzustand boolean anhand deren Ergebnis sie das weitere Vorgehen bestimmen kann Au erdem ben tigt sie eine Methode getAuswahlzustand um dem KatalogHandler das Auszulesen zu erm glichen ohne dass dieser direkt auf die Session zugreifen muss Top Level Kategorien suchen Dieser Controller verwandelt sich in die Methode getTopLevel Kategorien TmpKategorieListe der Klasse Kategorieliste Sie durchst bert die Liste nach den jenigen Kategorien deren Attribut istTopLevel auf true steht Nat rlich ben tigt auch hier die KatalogFassade eine entsprechende Methode Diese liefert einen Iterator auf die Kategorien zur ck die das Ergebnis der Anfrage darstellen Temp Kategorieliste erzeugen updaten Zum Speichern der tempor ren Kategorielisten die das System zum Aufbau der Katalogansicht ben tigt dient die Klasse TmpKategorieListe
41. der Anforderungsbeschreibung enthal ten waren sind im folgenden Text fett kursiv dargestellt die impliziten also erg nzten Beziehungen sind kursiv dargestellt Bei dem zu entwerfenden System handelt es sich um eine Internet Buchhandlung die f r bis zu 1 000 000 verschiedener Kunden ausgelegt sein soll Jeder Kunde soll einen Account besitzen den er ben tigt um bestimmte Aktionen wie etwa das Bestellen von B chern auszuf hren F r andere Aktionen ist kein Account notwendig Zur sicheren Zuordnung der Kunden zu ihren Accounts sollen diese mit Passw rtern gesch tzt sein Der Shop f hrt hat eine Kundenliste Die Kundenliste enth lt die Kunden Daten Die Hauptfunktionen der Buchhandlung sind es Kunden den Buchkatalog zu pr sentie ren sowie ihnen die Bestellung und Bezahlung von B chern direkt ber das Internet zu erm glichen Der Buchkatalog enth lt B cher Um sich die verf gbaren Artikel anzusehen sollen die Kunden entweder den Buchkata log durchst bern k nnen oder dort gezielt nach B chern suchen k nnen Dabei soll eine Suche nach Autor Titel ISBN Nummer und Schl sselw rtern m glich sein Der Shop pr sentiert das Suchergebnis Das Suchergebnis enth lt B cher W hrend der Kunde den Katalog durchsieht soll er online Informationen ber die Ver f gbarkeit von B chern erhalten k nnen Jedem Buch soll au erdem ein bestimmter Preisrahmen zugeordnet sein aus dem der Buchshop je nach Marktlage den
42. der Software Im Allgemeinen wird auf dieses Kriterium besonderer Wert gelegt weil Software in aller Regel gewartet und weiterentwickelt werden muss meist ber mehrere Jahre hinweg 2Vorsicht Hier wird die implizite Annahme getroffen dass eine nderung der St ckzahl zur Neuberechnung der Preise f hrt Dies kann bei sp terer nderung des Verhaltens zu Problemen f hren wenn sich andere Teile des Systems darauf verlassen Hier K nnte der Einsatz des Observer Musters helfen diese Abh ngigkeit zu eliminieren Der ICONIX Prozess legt gro en Wert auf die Zuordenbarkeit der Abl ufe zu den entsprechenden Stellen in den Se quenzdiagrammen Das erschwert allerdings die Darstellung da man die Alternativabl ufe nicht an der Stelle der Fall unterscheidungen darstellen kann Daher werden f r die Alternativabl ufe nur die wichtigsten Elemente eingezeichnet 90 8 2 Verwendung von Entwurfsmustern Rosenberg nennt in RoSc99 ebenfalls einige klassische Qualit tskriterien auf die beim Softwa reentwurf geachtet werden sollte Kopplung Geschlossenheit Hinl nglichkeit Vollst ndigkeit und Einfachheit Im Folgenden wird beschrieben welche Auswirkungen die Anwendung der Entwurfsmuster Fas sade und Iterator auf den Softwareentwurf haben Dabei f hrt der Einsatz des Fassaden Musters zu einer Reduzierung der Kopplung zwischen den Objekten und der Einsatz des Iterator Musters erm glicht das Traversieren der verschiedenen im M
43. des Shops zu Dritten wie etwa das Beschaffen der B cher von Verlagen und Gro h ndlern oder die Zahlungsabwicklung ber Banken und Kreditkartenfirmen e Die Arbeit legt dar wie man mit den im ICONIX Prozess geschilderten Methoden arbeitet Es ist nicht das Ziel ein implementierbares System zu entwerfen sondern nachvollziehbar dar zustellen wie man mit den beschriebenen Methoden und ein wenig dar ber hinaus zu be stimmten Entwurfsentscheidungen gelangt Die Arbeit enth lt eine vollst ndige Analyse der Anwendungsf lle und eine Teilarchitektur Auch werden bestimmte Sequenzdiagramme vorge stellt Ein vollst ndiges programmierbares System entwickeln zu wollen w rde aber selbst mit der genannten inhaltlichen Abgrenzung den Rahmen dieser Arbeit komplett sprengen Vorbemerkung Bevor der geneigte Leser in die Lekt re dieses Werkes einsteigt seien noch zwei Hinweise erlaubt In dieser Arbeit kommen an mehreren Stellen w rtliche Zitate vor F r manche der zitierten B cher gibt es keine deutschen bersetzungen Dies gilt vor allem f r die beiden Werke von Rosenberg und Scott und f r das Buch von Singh u a Designing Enterprise Applications with the J2EE Platform F r die Bequemlichkeit des Lesers hat sich der Autor dieser Arbeit erlaubt die entsprechenden Pas sagen selbst ins Deutsche zu bersetzen Au erdem enth lt diese Arbeit f r jede Prozessphase einen Vergleich mit der L sung von Rosenberg und Scott Die Beis
44. die Kommunikationsbeziehungen zwischen dem Kunden und den Anwendungsf llen stark reduziert haben Dies liegt daran dass die meisten Anwendungsf lle nicht direkt vom Hauptmen aus erreichbar sind sondern nur aufgerufen werden k nnen wenn der Kunde vorher einen anderen Anwendungsfall ausf hrt In dieser Situation geht man davon aus dass die Kommunikation durch die Kommunikationsbeziehung zwischen Kunde und anf nglich aufgeru fenem Anwendungsfall impliziert wird siehe auch HiKa99 Seite 109 44 5 4 Beziehungen zwischen den Anwendungsf llen Warenkorb editieren _Ssextend gt gt __ Artikel in den Warenkorb legen Produktinformationen ansehen rt lt extend gt gt Kontaktinformationen ansehen wh sA ol ol g g al l 3 3 H v v v Buchbestellung durchf hren VA Buchrezension durchf hren ssinclude _ Buch bewerten Kunde x A A ZS 2 I n s Bestellung stornieren Ki A i z Buchkatalog durchsuchen y bi xtend l lt lt extend gt gt l Bestellung ansehen Y N d z Ki GI F Fl TS S V A 3 v 21 Fo Y Ka 8 3 D lt Kurznfo anzeigen e lt lt extend gt gt ssextend gt k A z Neuheiten und Empfehlungen ansehen Buchkatalog ansehen Abbildung 5 5 bersicht ber die Anwendungsf lle 45 5 Anwendungsf lle 5 5 Zuordnen der tunktionalen Anforderungen Nachdem man die Anwendungsf
45. im oben dargestellten Anwendungsfall Warenkorb editieren das System die Seite Warenkorb an Der Kunde ndert im Warenkorb die St ckzahl einer Position und klickt auf Aktualisieren Nun wird der Client einen HTTP POST Request abschicken der die Daten des ent sprechenden Formularbereichs enth lt sowie eine Action die ebenfalls zu diesem Request geh rt Das System muss die Daten aus dem Protokoll extrahieren die Benutzeraktion identifizieren wahr scheinlich durch die Action dann die entsprechende Gesch ftslogik ausf hren Aktualisieren der St ckzahl im Positions Objekt Neu berechnen des Preises der Position und des Warenkorbs und dem Client die Seite mit neuem Inhalt wieder anzeigen Das beschriebene Auswerten der Protokolle ist eine allgemeine Aufgabe die von einem daf r spe zialisierten Objekt bernommen werden sollte Auch der Kontrollfluss kann in einem Controller zen tralisiert werden der abh ngig vom jeweiligen Zustand des Systems und der Aktion des Kunden die passenden Seiten nacheinander aufruft Dies w rde eher f r die Verwendung der Strategie use case controller sprechen Dieser Controller kann zum Beispiel den in Abbildung 5 4 dargestellten Automaten implementieren Ein solches spezialisiertes Objekt w re Bestandteil der Architektur des Servers denn jeder Request wird auf genau die gleiche Weise verarbeitet In der unten beschriebenen Architektur handelt es sich dabei um dem ViewHelper
46. ja im hier ent wickelten Modell betrachtet so stellt man fest dass diese alle auch im hier vorgestellten Modell vorhanden sind Das ist nicht weiter verwunderlich denn um einigerma en vergleichbare Ergebnisse zu gewinnen sah sich der Autor dieser Arbeit gen tigt die Benutzerschnittstelle soweit wie m glich nach den Rosenberg schen Anwendungsf llen zu modellieren Rosenberg deckt allerdings mit seinen Anwendungsf llen nicht alle funktionalen Anforderungen aus der Problemstellung ab Insbesondere fehlt die Umsetzung folgender Anforderungen e Kundenrezensionen von B chern 58 5 8 Vergleich mit dem Rosenberg Modell e Kundenbewertungen von B chern e Anzeigen von Verf gbarkeitsinformationen Link zur Lagerverwaltung e Anzeigen des Lieferstatus Link zur Versandabteilung Hier und da fehlen au erdem Anwendungsf lle auf die andere Anwendungsf lle Bezug nehmen Zum Beispiel ist im Anwendungsfall Browse List Of Books die Rede von einem Anwendungsfall Dis play Book Details Dieser ist jedoch nicht modelliert worden Im Anwendungsfall Open Account ist die Rede von einer Startseite zu der der Benutzer zur ck geleitet wird Die Funktion der Startseite ist aber in keinem Anwendungsfall beschrieben Schlie lich ist noch festzustellen dass die meisten Anwendungsf lle im Rosenberg Modell nur sehr oberfl chlich gestaltet sind Sie lassen eine ganze Menge Details vermissen und haben eher den Cha rakter von Analy
47. llen geh ren e Man schlie t die Verteilung der Operationen auf die Klassen ab Grunds tzlich orientieren sich die Sequenzdiagramme sehr stark an den Stabilit tsdiagrammen In den Stabilit tsdiagrammen wird allerdings nur ein vorl ufiger Entwurf gemacht wobei hier der Ent wurf detailliert stattfinden sollte Es k nnen daher Entscheidungen die im vorigen Kapitel getroffen wurden ge ndert werden Dies f hrt aber nicht zwangsl ufig dazu dass die Stabilit tsdiagramme berarbeitet werden m ssen Sie haben ihren Zweck erf llt n mlich dem Designer eine Vorstellung davon zu gegen wie die Dinge funktionieren sollen und werden nicht weiter gewartet Der Ablauf nach dem ein Sequenzdiagramm entsteht ist folgender e Kopieren des Anwendungsfalltextes ins Diagramm e bernehmen der im Stabilit tsdiagramm gefundenen Entity Objekte ins Diagramm e bernehmen der im Stabilit tsdiagramm gefundenen Boundary Objekte ins Diagramm e Umsetzen jedes Controllers im Stabilit tsdiagramm in ggf mehrere Operationen und Verteilen der Operationen auf die richtigen Objekte Au erdem sollte in dieser Phase Wert auf einen guten Softwareentwurf gelegt werden denn hier fallen Entscheidungen die sich drastisch auf die Qualit t der Software auswirken Hilfreich f r die Realisierung eines guten Entwurfs ist dabei der Einsatz von Entwurfsmustern Schlie lich soll in dieser Phase noch die Infrastruktur hinzugef gt werden die sich vom re
48. lt control gt gt WarenkorbHandler WarenkorbHandler erzeugeWarenkorb void fuehreAus void onPositionGeloeschtvoid onWarenkorbAnzeigen void onWarenkorbGeaendertvoid Abbildung 9 2 Klassendiagramm Warenkorb 104 9 3 Vergleich mit der L sung von Rosenberg und Scott men dass das Attribut Autor auch einen Herausgeber beschreiben kann wobei ein Autor beliebig viele B cher geschrieben haben kann Zugriff auf den Warenkorb Durch die Verwendung des Iterator Musters wird der Zugriff auf den Warenkorb sehr elegant gel st Die WarenkorbFassade besitzt einen Vector von WkPositionen die durch Komposition mit der WarenkorbFassade assoziiert sind Wenn ein Klient wie etwa der Wa renkorbHandler auf den Inhalt des Warenkorbs zugreifen will fordert er bei der WarenkorbFassade einen Iterator auf WkPositionen an Die Fassade instantiiert den Iterator und der Klient kann ihn be nutzen um damit auf Objekte vom Typ WkPosition zuzugreifen Eine WkPosition bezieht sich auf genau eine Position des Warenkorbs und das dazugeh rige Buch Sie kommuniziert mit diesen Klas sen um ber die entsprechenden Zugriffsmethoden deren Attribute auszulesen und ggf zu speichern Dadurch sind keine weiteren Beziehungen zwischen dem Klienten und den tieferen Strukturen des Warenkorbs n tig was das Diagramm sehr bersichtlich macht Dies ist auch ein Zeichen f r ein gu tes Design denn der Grad der Kopplung zwischen den
49. m ssen alle Attribute des Warenkorbs auch in der Bestellung vorkommen Dar ber hinaus hat aber die Bestellung ein Attribut mehr n mlich die eindeutige Bestellnummer Es bietet sich daher an beide Klassen von einer gemeinsamen abstrakten Oberklasse abzuleiten Diese k nnte zum Beispiel BaseBestellung hei en um anzudeuten dass es sich um eine technische Klasse handelt von der die Bestellung abgeleitet ist 6 4 Lieferdaten bestimmen Analyse Dieser Anwendungsfall ist korrekt geschrieben Hier sind keine nderungen n tig Abbildung 6 4 stellt die beschriebenen Abl ufe grafisch dar Auswirkungen auf das Klassenmodell e Das Kunden Objekt muss ein Attribut Lieferadressen bekommen um die m glichen Adres sen zu speichern an die Bestellungen dieses Kunden versendet werden k nnen Dazu muss auch eine neue Klasse Adresse definiert werden von deren Typ die Objekte sind die in der Liste gespeichert werden e Um die Liste der m glichen Versandarten darzustellen ben tigt das System eine weitere Liste die die Versandarten vorh lt Die Versandarten k nnen vom Basistyp String sein 6 5 Vergleich mit der L sung von Rosenberg und Scott Ein Vergleich mit der L sung von Rosenberg und Scott f llt immer schwerer je weiter der Entwick lungsprozess voranschreitet Zwar haben Rosenberg und Scott in RoSc01 eine Stabilit tsanalyse durchgef hrt jedoch finden sich auch im Full Workbook Example kaum mehr
50. modellierten Anwendungs f llen hervorgegangen sind Diese besitzen die Methoden die die Benutzeraktionen verarbeiten In der vorliegenden Arbeit sind die entsprechenden Methoden in den CommandHandlern untergebracht Dieser Unterschied r hrt daher dass Rosenberg und Scott bei der Umwandlung der Controller in Me thoden die control in the screen Strategie verfolgen w hrend der Autor dieser Arbeit die use case controller Strategie verwendet wobei die CommandHandler als Use Case Controller operieren Die wichtigen Abstraktionen wie Book und Order enthalten bei Rosenberg und Scott jetzt einen vollst ndigen Satz von Attributen Dies ist auch in dieser Arbeit f r die Buch Klasse der Fall Die Klasse Bestellung wird in diesem Kapitel nicht beschrieben da f r die Buchbestellung keine Se quenzdiagramme erstellt wurden Auch sind die notwendigsten Methoden in den Klassen von Rosen berg enthalten allerdings mit Ausnahme der get und set Methoden Rosenberg und Scott empfehlen 105 Uberarbeitetes Klassendiagramm 9 JUNNPIENPEIO poygayy Buiddius Ospejsganauje OpoyrapyGuiddiysanauyay isnyeygaiueys AayggMuojuaaujubiasoy poygapy undd ys snjejs 2 Jaquinybun Je wua d aau paddiysajep paoe yajepfa al JapIO lt lt pua gt gt s lejag 4ap O lt lt Ayquas gt QsuapiQquasayaaanya age 18P410 lt lt pua gt gt a eg Sigi Jop lt lt Aepunoq gt gt Qabessayy
51. nicht weiter dass sich die M ngel die bereits in der Stabilit tsanalyse festgestellt wur den hier fortsetzen Nach wie vor bleibt der Fall unber cksichtigt dass zu Beginn des Anwendungs falls m glicherweise kein Warenkorb existiert das Auslesen des Warenkorbs aus der Session fehlt und nach dem ndern der St ckzahl wird der aktuelle Zustand nicht erneut angezeigt Auch das Fehlen von berlegungen architektonischer Art setzt sich im Sequenzdiagramm fort Das Sequenzdiagramm h lt sich strikt an den Verlauf des Anwendungsfalls und geht zum Beispiel nicht darauf ein wie das System die Kontrolle an den Check Out Anwendungsfall bergeben kann Den noch ist es den Autoren ohne Weiteres m glich ein Sequenzdiagramm zu zeichnen das den Ablauf 97 8 Interaktionsmodellierung 98 Alternativabl ufe Wenn das System einen gespeicherten Auswahlzustand findet versetzt es die Seite Katalog in diesen Zustand zur ck Dazu liestes die Kategorie und den Pfad zur Kategorie aus findet die Subkategorien oder B cher der Kategorie und zeigt alles auf der Seite Katalog an Wenn das System in einer Sub Kategorie keine B cher finden kann zeigt es eine entsprechende Fehlermeldung an und fordert den Kunden auf eine andere Kategorie zu wahlen Abbildung 8 5 Sequenzdiagramm Buchkatalog ansehen Teil 3 vh ViewHelper SeiteKatajog neu anzeigen onKategorieG Seitekatklog mit Hinweis anzeigen KatalogH
52. t gelegt Manches Projekt ist schon gescheitert weil der zugrunde liegende Prozess zu restriktiv und bevor mundend war und ein bestimmtes Vorgehen an Stellen nicht erlaubte an denen es opportun gewesen w re Der ICONIX Prozess baut auf der Arbeit von Jacobson Rumbaugh und Booch ab 1990 auf den Er findern der UML Rosenberg und Scott haben dabei eine minimale aber hinreichende Untermenge der UML und der Modellierung im Allgemeinen identifiziert die notwendig ist um ein Softwareprojekt erfolgreich durchzuf hren Bei Bedarf k nnen jedoch auch andere Elemente der UML hinzugenom men werden Es handelt sich also um einen minimalistischen zielgerichteten Ansatz der das Gebiet zwischen Anwendungsfallen und Code behandelt Wie kommt man von der anfanglichen Problem beschreibung zu einem guten Design Bei der Beantwortung dieser Frage bedient man sich dreier Perspektiven die parallel benutzt werden nach RoSc01 S 12 e outside in Man arbeitet sich von den Anforderungen der Benutzer Sicht von au en auf das System zur inneren Funktionsweise und zum technischen Aufbau des Systems vor e inside out Man arbeitet sich von den Hauptabstraktionen des Problembereichs nach au en zu den tech nisch motivierten Klassen und Details vor e top down Man beginnt mit einer groben Vorstellung vom System in Form der ungef hren Anforderungen und gelangt am Ende zu einem detaillierten Design Die hier geschilderte Beschreibung des Prozesse
53. ufen bestehen Diese werden im Folgenden dargelegt e Das ffnen des Warenkorbs ist keine relevante Aktion Was wirklich gemeint ist ist das Ausle sen der Werte aus dem Warenkorb Der Text muss entsprechend korrigiert werden e Das L schen einer Position des Warenkorbs oder das Setzen einer St ckzahl auf 0 f hren zur gleichen Reaktion des Systems Die Alternativabl ufe k nnen also zusammengelegt werden Die Information wie die Auswahllisten der Bildschirmseiten zu f llen sind ber hrt die Pr sentationsaspekte des zu bauenden Systems Die Entscheidung wo diese Information zu speichern ist ggf im f r die Pr sentation zust ndigen Controller ist aber architektonischer Natur Sie kann nicht endg ltig getroffen werden solange man noch nicht wei welche Technologie f r die Pr sentationsaspekte des Systems eingesetzt werden soll Durch die Technologie ergeben sich unter Umst nden auch bereits Vorgaben f r eine Architektur 67 6 Stabilit tsanalyse e Im Anwendungsfall Artikel in den Warenkorb legen wird das Warenkorb Objekt erzeugt und in der Session des Kunden abgespeichert Es ist allerdings denkbar dass ein Kunde im hier er rterten Anwendungsfall den Warenkorb zu ndern versucht ohne dass dieser vorhanden ist Der Warenkorb wird ja erst erzeugt wenn der Kunde versucht Artikel hineinzulegen Daher muss das System pr fen ob der Warenkorb vorliegt wenn der Kunde ihn zu benutzen versucht und ihn ggf erzeugen Hi
54. verletzt er teilweise die von ihm selbst aufgestellten Regeln indem er nicht sicher stellt dass alle notwendigen Alternativabl ufe ber cksichtigt sind berpr fung der Vollst ndigkeit und Korrektheit und nicht darauf achtet s mtliche Objekte einzuzeichnen die f r die Durchf hrung des Anwendungsfalls notwendig sind Au erdem w rde man an dieser Stelle erste berlegungen zur Softwarearchitektur erwarten Abschnitt 6 3 zeigt exemplarisch wodurch solche berlegungen aus gel st werden k nnen Eine Er rterung grundlegender architektonischer Entscheidungen und deren m glicher Auswirkungen auf den Entwurf bleibt Rosenberg in seinem Beispiel aber schuldig Tats chlich muss die Stabilit tsanalyse als Teil der Architekturfindung gesehen werden Die Autoren deuten diesen Sachverhalt aber bestenfalls an und geben keinerlei Werkzeuge an die Hand die bei der Architekturfindung helfen k nnen In der Tat ersch pft sich die Diskussion architektonischer Fragen in dem oben erw hnten Zitat 76 7 berlegungen zur Softwarearchitektur 7 1 Allgemeine berlegungen Im Verlauf von Kapitel 6 wurden bereits die Entwurfsstrategien control in the screen und use case controller erw hnt die Rosenberg und Scott in RoSc99 als m gliche Strategien pr sentieren um die Controller aus der Stabilit tsanalyse in Methoden umzuwandeln Bei genauerem Hinsehen reicht es aber nicht aus sich f r die eine oder andere Strategie zu entscheiden
55. wiederherstellen indem es die zugeh rigen Subkategorien ermittelt und anzeigt oder falls es sich um eine Kategorie unterster Stufe handelt die B cher die zu dieser Subkategorie geh ren Es wird davon ausgegangen dass nur die Kategorien unterster Stufe B cher enthalten Je nach Implementierung der Kategorie Hierarchie einfach oder doppelt verkettete Liste und der Art wie die Hierarchie angeordnet ist z B Baum oder Netz kann es aber zu Problemen kommen wenn das System versucht den vollst ndigen Weg von der Wurzel Pseudo Kategorie B cher zur gespeicherten Kategorie selbstst ndig zu finden Zum Beispiel ist es denkbar dass der Weg zu einer bestimmten Kategorie nicht eindeutig ist Also muss im Auswahlzustand die Kategoriehistorie mit gespeichert werden Das System muss den Zustand in einem neuen Objekt Auswahlzustand speichern Konkret handelt es sich dabei um die aktuell ausgew hlte Kategorie und eine nach Reihenfolge geordnete Liste der Kategorien die der Kunde nacheinander ausw hlen musste um zur aktuellen Kategorie zu gelangen Die genannten berlegungen f hren zu dem in Abbildung 6 1 dargestellten Stabilit tsdiagramm Der genaue Ablauf ist im berarbeiteten Anwendungsfall nachzulesen der im folgenden Abschnitt be schrieben wird berarbeiteter Text des Anwendungsfalls Standardablauf Das System ffnet die Seite Katalog Es stellt sicher dass noch kein Aus wahlzustand gespeichert ist durchsucht die L
56. 0 000 Kunden verwalten k nnen 3 Kunden sollen Accounts besitzen die durch Passw rter gesch tzt sein sollen 4 Kunden sollen B cher online bestellen k nnen 5 Kunden sollen B cher in einem Warenkorb zur Bestellung vormerken k nnen 6 Kunden sollen Informationen ber die Verf gbarkeit von B chern erhalten k nnen 7 Der Shop soll eine sichere M glichkeit bieten per Kreditkarte zu bezahlen 8 Der Shop soll eine sichere M glichkeit bieten per Rechnung zu bezahlen 9 Kunden sollen den Buchkatalog durchsuchen k nnen Dabei soll eine Suche nach Autor Titel ISBN Nummer und Schl sselw rtern m glich sein 10 Kunden sollen den Status von Bestellungen online verfolgen k nnen Auch bereits gelieferte Bestellungen sollen nachvollziehbar sein 11 Es soll jedem Kunden m glich sein Rezensionen f r B cher zu schreiben die dann im Buch shop eingesehen werden k nnen 12 Kunden sollen B cher bewerten d rfen in der Art von Punkten oder hnlichem Die Bewer tungen sollen von anderen Kunden eingesehen werden k nnen Alle in diesem Text vorkommenden Substantive sind Kandidaten f r Objekte jedoch reicht die Tat sache in einem Text ein Substantiv zu finden noch nicht aus um daraus eine Klasse zu machen Um herauszufinden welche Kandidaten als Klassen geeignet sind und welche nicht stellt man sich am besten die Frage welchen Sinn ein Kandidat f r den Problembereich hat Man eliminiert dann 2Das Informationsm
57. Bestellung ansehen Buchkatalog ansehen Neuheiten und Empfehlungen ansehen Abbildung 5 3 Anwendungsf lle vor der Zerlegung lt Buchkatalog durchsuchen gt aufgerufen werden k nnen und durch welche Navigationselemente dieses erfolgt Wenn man au er dem wei welche Bildschirmansichten zu welchen Anwendungsf llen geh ren ergeben sich daraus direkt die Abh ngigkeiten zwischen den Anwendungsf llen Als Beispiel sei hier die Anmeldepro zedur genannt Hier gibt es zwei alternative Wege Der Kunde kann entweder auf der Startseite auf Anmelden klicken oder er versucht einen Anwendungsfall auszuf hren der erfordert dass die Ken nung des Kunden bekannt ist In diesem Fall erzwingt das System eine Anmeldung falls der Kunde noch nicht angemeldet ist Die Startseite geh rt zum Anwendungsfall Neuheiten und Empfehlungen ansehen w hrend die Seite Anmeldung zum Anwendungsfall Anmelden geh rt Da eine Transition von der Startseite zur Systemanmeldung existiert gibt es zwischen den zugeh rigen Anwendungsf llen ebenfalls eine Beziehung Der Kunde kann die Transition feuern indem er den Link Anmelden klickt Er muss dies aber nicht tun Daher handelt es sich um ein optionales Aufrufen also eine extend Beziehung von Anmelden nach Neuheiten und Empfehlungen ansehen Der alternative Weg kann von drei Seiten aus beschritten werden e vom Warenkorb wenn der Kunde auf Bestellen kl
58. Dies ist vielmehr eine Aufgabe des Shop Betreibers w hrend der internen Abwicklung von Bestellungen Auch die Versandmethode ndert sich nicht mehr nachdem die Bestellung aufgegeben ist 35 4 Informationsmodell Unklarheiten im Rosenberg Modell Dar ber hinaus weist das Rosenberg Modell auch einige Ungereimtheiten auf die ihre Ursachen unter anderem in der fehlenden Erkl rung der Begrifflich keiten haben Zum Beispiel ist nicht einsichtig was eine Candidate Order von einem Shopping Cart unterscheidet Wenn der Kunde etwas in seinen Warenkorb hineinlegt so handelt es sich doch dabei um die Vormerkung einer Bestellung Hier besteht kein Unterschied was die Klasse Candida te Order berfl ssig macht Auch der Begriff der Order Details ist berhaupt nicht einleuchtend Diese Klasse entf llt zugunsten von Item Position Auch ist der Begriff der Purchase Order die aus Items und Line Items besteht unklar Hier handelt es sich wohl um eine besondere Eigenheit von Rosenberg s Modell die aber ohne weitere Erkl rung nicht verst ndlich ist Umso wichtiger ist es an dieser Stelle ein Glossar zu f hren Dies haben die Autoren ja selbst propagiert unterlassen es jedoch in ihrem Beispiel Bestellen von B chern Eine weitere Abweichung zwischen beiden Modellen besteht in der Art wie Bestellungen abgewickelt werden W hrend n mlich in RoSc01 der Warenkorb der Bestellung zugeordnet wird und nur be
59. Diplomarbeit Modellierung und Architektur mit der UML Ein Musterbeispiel zur Erlangung des akademischen Grades Diplom Informatiker FH vorgelegt dem Fachbereich Mathematik Naturwissenschaften und Informatik der Fachhochschule Gie en Friedberg von R diger Anlauf Gie en August 2002 Referent Prof Dr Burkhardt Renz Korreferent Prof Dr Manfred Scheer Inhaltsverzeichnis I Einleitung und Grundlagen 1 ber diese Arbeit 2 berblick ber den ICONIX Prozess 2 1 Grundgedanken 2 2 Phasen und Elemente des ICONIX Prozesses 2 2 1 2 22 2 2 3 2 2 4 Anforderungsanalyse Analyse und vorl ufiges Design Design Implementierung 2 3 Meilensteine ll Ein Anwendungsbeispiel 3 Aufgabenstellung 4 Informationsmodell 4 1 Allgemeines 4 2 Auffinden des Informationsmodells 4 2 1 4 2 2 4 2 3 4 2 4 4 2 5 4 2 6 Allgemeines zum Informationsmodell Identifizieren der Klassen 2 2 2 oo oo nn Identifizieren der Beziehungen Identifizieren weiterer Klassen Erstellen eines Glossars 2 2 2 2 oo on Anmerkungen zum Informationsmodell 4 3 Vergleich mit dem Original e 5 Anwendungsf lle 5 1 Erste Anwendungsf lle 5 1 1 Katalog ansehen 13 13 14 14 17 17 18 18 21 23 25 25 25 25 27 28 30 31 31 34 37
60. Fassade Dabei kommt ein Vorteil zum Tragen den die Wahl der Program miersprache Java bietet Die umfangreiche Klassenbibliothek von Java bietet den Vector Typ schon fertig an Gl cklicherweise bietet Vector auch die M glichkeit des Zugriffs ber verschiedene bereits implementierte Iteratoren da Vector verschiedene Interfaces implementiert Dazu geh rt auch das Listlterator Interface Wie in Abbildung 8 2 gezeigt kann man also ber die Methode listlterator einen Iterator auf die Elemente des WkPositionen Vectors erhalten Diesen Iterator Kann der Waren korbHandler verwenden um mit der Methode next so lange nacheinander die Elemente des Vectors auszulesen bis hasNext false zur ck liefert 8 3 Buchkatalog ansehen 8 3 1 Entwicklung des Detailentwurfs aus dem Stabilitatsdiagramm In der in Abschnitt 6 1 durchgef hrten Stabilit tsanalyse wurden die folgenden 9 Controller gefunden 1 Auswahlzustand suchen 2 Auswahlzustand auslesen 3 Auswahlzustand erzeugen 93 8 Interaktionsmodellierung 4 Auswahlzustand speichern 5 Top Level Kategorien suchen 6 Temp Kategorieliste erzeugen updaten 7 Subkategorien suchen 8 B cher suchen 9 Anzeigen Diese m ssen wie folgt auf die verschiedenen Objekte verteilt werden Auswahlzustand Der Auswahlzustand ist genau genommen ein Objekt das nur f r die Wieder herstellung der Bildschirmansicht verwendet wird Dennoch muss es an die Session gebunden werden
61. I I I onWarenkorkAnzeigend boid I l I suchewarenkorb0 boolgan o FSI getWarenkorb0 Warehkorb I I I I I T I I I I T I I I I I l I I SeiteWarenkorb neu anzeigen Ber _ _ Details siehe Diagramm l l Las T Inhalt des Warenkorbs auslesen l l l I I T I I I T I I I I I I I I I I I 1 I I I I I I p I I I I I onWarenkorbGeaendert void I I I result aktualisiereWarehkorb Event int I I os I I pat I I I I erzeugeWarenkorb vent void I I I I I I vergleicheWarenkonb0 void setStueckzahikind voit i T T a ner l l l berechnePreis0void 1 l l l getPreis0 floall I I I pel I I getPreisO float I T I I per I berechnePreis0 foatl l I Se getPreisQfloat T l T pel I I I I abkataloganzeigend void l T aes T I I Du I T I I I I 1 I I I I I I I I l l I I T T wen OF l l l Warenkorb l l l setWarenkorb O7 void I PE l 1 I T I T l I I l getGroesse int l l I l l I 1 Hinweis in SeiteWarenkorb 1 Bel l l l 1 I einf gen l l l l a i i i i i I I I I 1 I I I I I I I l I I I I E I I l I I l l i l pel I l onPositionGeloescht0 vdid I I H I I getGroesseQ int I I I Seite Warenkorb neu anzeigen I l ay I l I I 1 I I I l I I I l I I I l I l l I I l I I I Abbildung 8 1 Sequenzdia
62. JMOYUBIEMA im O LJ ABLA 110MU 1PAA I8S Q Tester DIOAQUI TUN ABE Has uaroliae usjeg apapugag u q Biaqn uajeg CH QuOyUalesy O POA QuapuaeagooyualepAuo AB PUBHCIOHUGIENA JajpueHpuUeWWMO Q A8 lt 10 3n4Su03 gt Main quaaayuan l juaag a O ploa asuodsayjajuasdy aada HAABA Jayjoqyuoogry yA 29 O O 7 berlegungen zur Softwarearchitektur Der CommandHandler bildet die Schnittstelle zwischen dem Model Tier und Control Tier Er ist das einzige Objekt im Control Tier das Zugriff auf die SessionFassade hat Au erdem kapselt er durch die Verwendung des Command Musters die Gesch ftsprozesse in sich Abbildung 7 3 zeigt wie das System einen HTTP Request verarbeitet Der dargestellte Vorgang be zieht sich auf den Anwendungsfall Warenkorb editieren ist aber auch auf andere Anwendungsf lle bertragbar Zu Beginn stellt das System die Seite Warenkorb dar Der Benutzer ndert die St ckzahl einer Posi tion und klickt auf Aktualisieren Daraufhin schickt der Client einen HTTP Request ab Der Front Controller analysiert den Request und erzeugt ein entsprechendes Event Objekt das der EJBCon troller in einen spezialisierten CommandHandler vom Typ WarenkorbHandler bersetzt Der Handler wei nun was er zu tun hat Er bergibt die Daten des Events an die WarenkorbFassade die darauf hin d
63. Kategorien und zeigt diese an Der Kunde klickt nun im Buchkatalog auf eine Kategorie Das System speichert daraufhin die ge w hlte Kategorie ab und zeigt alle m glichen Subkategorien f r diese Kategorie an Dies wiederholt sich bis keine weiteren Subkategorien mehr vorhanden sind so dass das System eine der untersten Subkategorien anzeigt Dann durchsucht das System den Buchkatalog nach den B chern die in dieser Kategorie vorhanden sind und ruft f r jedes gefundene Buch den Anwendungsfall Kurzinfo anzei gen auf Alternativabl ufe Wenn das System von einem anderen Anwendungsfall zu diesem zur ckkehrt w hlt das System die abgespeicherte Kategorie aus und zeigt die darin enthaltenen B cher an Es stellt den Zustand wieder her den der Kunde vor dem Verlassen der Seite gesehen hat Wenn das System in einer Sub Kategorie keine B cher finden kann zeigt es eine entsprechende Fehlermeldung an und fordert den Kunden auf eine andere Kategorie zu w hlen B 4 2 Buchkatalog durchsuchen Standardablauf Der Kunde klickt im Hauptmen auf Suche Daraufhin ffnet das System die Seite Suche Der Kunde w hlt ein Suchkriterium aus der Liste aus und gibt den oder die Suchbegrif fe ein Dann klickt er auf Suche starten Das System durchsucht nun den Buchkatalog nach B chern die den gew hlten Kriterien entsprechen Daraufhin ffnet das System die Seite Suchergebnis und ruft f r alle gefundenen B cher den Anwe
64. Klasse Buch e Zum Speichern aller Buchkategorien die im Shop vorkommen und zum Erstellen der tempor ren Kategorieliste mit den ausw hlbaren Subkategorien ben tigt man eine neue Klasse Kate gorieliste sowie eine Klasse Kategorie Diese beiden Klassen bilden einen Baum wobei die Kategorieliste alle Kategorien enth lt und jede Kategorie ihre Unterkategorien kennt und wei ob sie eine Top Level Kategorie ist e Zum Speichern der aktuell ausgew hlten Kategorie und des Pfades von der Wurzel der Katego rien zu dieser Kategorie ben tigt man eine neue Klasse Auswahlzustand die der Session des Kunden zugeordnet sein muss Der Auswahlzustand muss die aktuell gew hlte Kategorie ent halten und eine geordnete Liste der Kategorien die nacheinander ausgew hlt werden m ssen um zur ausgew hlten Kategorie zu gelangen e Damit die Auswahlliste f r die Kategorien mit Daten gef llt werden kann m ssen die m g lichen Subkategorien der aktuell gew hlten Kategorie in einem Objekt TmpKategorieListe gespeichert werden das eine geordnete Liste von Kategorien darstellt Dieses wird ebenfalls der Session des Kunden zugeordnet 6 2 Warenkorb editieren Analyse Dieser Anwendungsfall beschreibt wie der Kunde den Inhalt des Warenkorbs ver ndern kann Im Gro en und Ganzen ist der Anwendungsfall korrekt geschildert er enth lt lediglich einige kleine Fehler die in unklaren Formulierungen und fehlenden Alternativabl
65. Preis void name String 1 7 0 2 bestand int 1 0 getAutor String at getAuswahlzustand Auswahlzustand vorname String gt lt bewertung int y getBestand int 8 getTmpKategorieListe TmpKategorieListe erscheinungdatum int getBuch Buch berechnePreis float getvVarenkorb Warenkorb getName String isbn String getEinzelPreis float getPosition Position setAuswahlzustand void getVorname String kategorie Kategorie getPreis float getPreis float setTmpKategorieListe void preis float getStueckzahl int zaehlePositionen void setWarenkorb void titel int getTitel String getEinzelPreis float getPositionsPreis float getStueckzahl int getTitel String ssinstantiate gt gt L ssaccess gt gt Listiterator Se ll Wkiterator CommandHandler lt control gt KatalogHandler lt lt control gt gt ViewHelper lt lt use gt gt getKurzinfos Vector onKatalogAnzeigen void onKategorie ewaehlt void lt lt use gt gt ee s gt e a A erzeugeview View A A 2 E s w lt V Y View lt lt houndary gt gt SeiteWarenkorb SessionFassade lt lt control gt gt WarenkorbFassade aktualisiereWarenkorb void bildeAb Listlterator erzeugeWarenkorb void getGesamtPreis float getGroesse int listiterator Listiterator setStueckzahl void sucheWarenkorb boolean vergleicheWarenkorb void s lt use gt gt CommandHandler lt
66. Shopping button The system returns control to the use case from which it i received control Alternate Courses deleteltem quantity of the Item to O the dest n system deletes that Item from estroy the Shopping Cart deleteltern ir If the Customer presses the Delete button instead of the onDelete Ifthe Customer changes the l deletes that Item from the deleteltem Shopping Cart Update button the system Ifthe Customer presses the d Check Out button instead of the onCheckOut Pass control D Continue Shopping button the to Check Out system passes control to the I use case Check Out use case Abbildung 8 6 Sequenzdiagramm Warenkorb editieren von Rosenberg und Scott Das weitgehende Fehlen architektonischer berlegungen wird beim direkten Vergleich der Diagram me ebenfalls deutlich Das Rosenberg Diagramm enth lt n mlich abgesehen von der Shopping Cart Page keinerlei Objekte aus dem L sungsbereich sondern nur solche aus dem Problembereich Das was Rosenberg und Scott mit Adding Infrastructure bezeichnen fehlt Wenn man sich ber die in 99 8 Interaktionsmodellierung Kapitel 7 beschriebenen Gegebenheiten wie Infrastruktur Programmiersprache und Framework aber wirklich Gedanken macht kann man es kaum vermeiden in den Sequenzdiagrammen Objekte einzu zeichnen die rein technischer Natur sind au er man verzichtet bewusst darauf weil m
67. an die zur Verf gung stehenden textlichen Beschreibungen des Problembereichs nach der von Rumbaugh eingef hrten Object Modeling Technique und bernimmt die wichtigsten der dabei gefundenen Substantive als Objekte Domain Objects in das Informati onsmodell Au erdem sucht man die strukturellen Beziehungen zwischen den Objekten mit einem besonderen Schwerpunkt auf Generalisierungen und Aggregationen Im Hinblick auf die Wiederverwendbarkeit des Informationsmodells in sp teren Projekten wird zu n chst ausschlie lich der Problembereich als ein Abbild der realen Welt modelliert Das ist auch deshalb wichtig weil sich das wirkliche Leben nicht so schnell ndert wie die Anforderungen des Kunden Deshalb ist ein Informationsmodell in aller Regel ein recht stabiles Modell Das konkret zu bauende System wird an dieser Stelle des Prozesses noch nicht ber cksichtigt Da es sich nur um eine erste Ann herung an das Problem handelt werden auch die meisten in Klas sendiagrammen enthaltenen Details weggelassen insbesondere die Attribute und Operationen Auch andere Entscheidungen wie etwa ob es sich bei Beziehungen um Aggregationen oder Kompositio nen handelt werden an dieser Stelle bewusst nicht getroffen da man f r die meisten Entscheidungen 15 2 berblick ber den ICONIX Prozess noch nicht gen gend Informationen hat und man in erster Linie das Ziel verfolgt schnell zu einer ersten Visualisierung zu kommen Man will sich also nic
68. an ohnehin vorhat nur ein konzeptionelles Modell zu entwerfen Rosenberg und Scott schreiben in RoSc99 dass es wichtig sei in den Sequenzdiagrammen Ent wurfsmuster einzusetzen um so die Qualit t des Entwurfes zu erh hen Auch sollen sp testens im Klassenmodell die technischen Klassen wie EJBs enthalten sein was nahe legt sie auch in den Se quenzdiagrammen dort einzuzeichnen wo es sinnvoll erscheint Beides wird der geneigte Leser in den Beispielen jedoch vergeblich suchen Zusammenfassend kann gesagt werden dass ein Designer der das von Rosenberg und Scott prokla mierte Ziel der Interaktionsmodellierung ernst nimmt n mlich ein Modell zu entwerfen dass man mehr oder weniger unmittelbar nachprogrammieren kann mit den Beispielen aus RoSc01 nicht be sonders gl cklich sein wird denn die wichtigen Aspekte der Interaktionsmodellierung werden dort nicht wirklich behandelt 100 9 berarbeitetes Klassendiagramm W hrend der Stabilit tsanalyse und der Interaktionsmodellierung finden sich neue Objekte Attribute und Methoden Diese bernimmt man nach und nach in das Informationsmodell so dass dieses zu einem vollst ndigen Klassenmodell heranw chst das man als Schablone zur Programmierung des Systems nutzen kann Im Verlaufe dieses Kapitels wird dargelegt welche Auswirkungen die in den vorigen Kapiteln gemachten Entwurfsentscheidungen auf das statische Modell des Systems haben Aufgrund des Detailreichtums des Klassenmodel
69. anden somit kommt hier null zur ck und die KatalogFassade meldet false Mit getTopLevelKategorien fordert O1 dann bei O2 die Kategorien h chster Ebene an um sie dem 95 8 Interaktionsmodellierung ViewHelper zur Darstellung zu bergeben Dann startet O2 die Methode getTopLevelKategorien in der Kategorieliste Diese ermittelt die Top Level Kategorien erzeugt ein Objekt vom Typ TmpKa tegorieListe und f gt die gefundenen Kategorien mit add ein Dann speichert es dieses Objekt mit setI mpKategorieListe zur sp teren Verwendung f r diesen Kunden in der Session fordert mit listI terator einen Iterator auf den Inhalt bei O4 an und gibt diesen an das Objekt O2 zur ck das es an Ol weiterreicht Dann startet Ol den ViewHelper zum Anzeigen der Seite O RINNEN 80 0 ueajoon yanq ppe D ayang auapuna oy Iogeunmg 10 O O PUEISNZIUJEMSNY 90 O AA 1oyax auobaley 1ojongsuos gt Lla pion patatapis puas uoissag 50 0 uea go0 auobajex ppe aisrraubfijeydlul auofaey ajsnanohajeydu 110 0 ubuo ajexans aedo suugabuayang auo ayey uaypang eb Joreuay s 7 auohan I a s pUEISNZIJEMSNMaS EEN ajsiauoaey 0 O 8008013 u JEDEN oeaa s auobateyu GOEN E ER D HEH 20 O hayaang E yaya gp al Lag DENIS 40 O JadjaHial IW O
70. andler O O 01 02 KatalogFassade getAuswahizustahdd Auswahtzustand H Wasser E ZE 2 06 Auswahlzustand er i eWaehito vold 8 4 Vergleich mit der L sung von Rosenberg und Scott des Anwendungsfalls darstellt Dies enth lt aber wenige Details und ist eher konzeptioneller Art Die Autoren bezeichnen es in RoSc01 als einen der h ufigsten Fehler der Interaktionsmodellierung nicht die Details zu zeigen sondern die Diagramme auf einem hohen Abstraktionsniveau zu halten Im Diagramm 8 6 soll der Unterschied zwischen der guten und der schlechten L sung in RoSc01 unter anderem durch das Fehlen der destroy Methoden am schlechten Beispiel gezeigt werden Die ses Beispiel wirkt jedoch k nstlich Die wesentlichen Details sind berhaupt nicht erw hnt Dazu geh rt wie die Preise neu berechnet werden wenn die St ckzahl in einer Position ge ndert wird und wie ein Anwendungsfall die Kontrolle an einen anderen Anwendungsfall bergibt siehe dazu auch Kapitel 8 1 Customer Basic Course onUpdate On the Shopping Cart Page getltem the Customer modifies the i quantity of an Item in the Shopping Cart and then H the Update button i Deere ee ga E d updateQuantityAndCost The system stores the new quantity and then computes and displays the new cost for that Item displayCost onContinueShopping The Customer presses the D Continue
71. ansicht bearbeitet werden Trennt man diese Anwendungsf lle wieder muss man aber den einleitenden Teil Pr fung der Anmel dung Suchen eines Rezensions Objektes verdoppeln Darum bietet es sich an diesen Teil in einen dritten Anwendungsfall Rezension vorbereiten auszulagern der den beiden anderen vorangestellt ist und der je nachdem was die Suche nach einer vorhandenen Rezension f r ein Ergebnis liefert den einen oder anderen Anwendungsfall automatisch aufruft Im Ergebnis f hrt diese Aufgliederung zu einer extend Beziehung von den nachgelagerten Anwen dungsf llen zum vorbereitenden Anwendungsfall sowie zu include Beziehungen von den nachgela gerten Anwendungsf llen zu Buch bewerten Mit letzterer stellt das System sicher dass die Ge sch ftslogik eine Rezension erg nzt immer nur eine Bewertung stets eingehalten wird x Buch bewerten SCENE z Kunde lt lt 8 pn 3ul gt gt L lt lt extend gt gt i nn Buch rezensieren y Rezension vorbereiten lt lt pn 3ul gt gt lt lt puapia gt gt i CR N Rezension berarbeiten A Abbildung 5 7 Buchrezension Abbildung 5 7 zeigt die Verfeinerung des Anwendungsfalls Buchrezension durchf hren aus Abbil dung 5 5 in die neuen Anwendungsf lle Rezension vorbereiten Buch rezensieren und Rezensi on berarbeiten Zur Verdeutlichung der genauen Zusammenh nge sind auch die Anwendungsf lle Anm
72. apigoyAejdsip aaueuajuepyjunogay uo OXejdsip Oxanoyurquo siapigquesayAe dsip abeg buqoel Japo lt lt Adepunog gt gt Quajyab Quajyejajap yes Buiddoys lt lt ppua gt gt abeg awoy isogpuyAuenpajepdn A j aays gnd dlunoas p PIOysaAy ys uajdau pueyugfnwenb Quiayjeb Aoqsap I l I jeuquunyy ayeqpaysignd 1509 Ayquenb sud way lt lt Ayquas gt lt lt pyua gt gt Di It UC y ueas bojeleo ETA IER 1J8piO aseyungd JueoBuiddouSo1ppvu O Keds Quayajajap Oimox2ayouo ajajaguo O unddoysanumuoyuo Q1so9Aejdsip Qajepdg uo aheg synsay yaeas lt lt lepunog gt gt a eg weg fuiddoys lt lt 1epunog gt gt yoo pares 18ui0 sno nae o N quenb Aypour uj 507 youo lt lt fuepunog gt gt AO ANO JUNO II lt lt tua gt gt ui5o7 yoyo pue ejep sous aBeq luno32w MAN Opioajdapuluuaquo lt lt Mepunoq gt gt yuno92 map yuo ezaay saJualajalg as dwogpuya 0113 ejdsip Os Quiboquo lt lt 041u03 gt gt O amp e dsip aBeq ube lt lt epunoq gt gt 106 9 3 Vergleich mit der L sung von Rosenberg und Scott diese Methoden nach M glichkeit nicht mit darzustellen da sie von den zu modellierenden Gesch fts abl ufen des Systems ablenken Der Autor dieser Arbeit ist jedoch der Ansicht dass sie unter gewissen Umst nden unbedingt auch einzuzeichnen sind n mlich dann wenn diese Methoden einen wi
73. as Ver halten eines Anwendungsfalls komplett in einem CommandHandler unterbringen zu k nnen gibt es nicht f r jede m gliche Benutzeraktion einen CommandHandler sondern diese sind nach Anwen dungsf llen unterteilt Jeder Handler hat einen Satz von Methoden die die einzelnen Teilabl ufe der Anwendungsf lle in sich tragen Die Methode fuehreAus entscheidet anhand des Events aus dem der Handler gebildet wurde welche Methode jeweils aufgerufen werden muss Das HTTP Protokoll sieht vor dass ein HTTP Request immer durch eine HTTP Response beantwor tet wird Dies f hrt in der Regel zum Aufbau einer Bildschirmseite im Client Zum Erzeugen der Struktur dieser Bildschirmdarstellung wird der ViewHelper ben tigt Er baut aus den Gesch ftsda ten die der CommandHandler von der SessionFassade abfragen kann und einer Beschreibungsdatei f r die Struktur der Seite ein View Objekt zusammen das der FrontController dann in eine HTTP Response bersetzt und dem Client zuschickt Bei der Best ckung des ViewDaten Objekts mit den Gesch ftsdaten aus dem Model Tier kann der CommandHandler unter anderem die Struktur der Da ten ndern so dass deren Implementierungsdetails vor dem ViewHelper verborgen wird Auch kann die Datenstruktur auf diese Weise in eine Form gebracht werden die f r den ViewHelper geeigneter ist um daraus eine Bildschirmseite aufzubauen 82 Architekturfragment des Internet Shops 7 4 u lunisn yIHojsyeyssag O D Spesse
74. assen werden entfallen die betreffenden Objekte im Informationsmodell Sie werden sp ter zu Attributen von Kunde Rechnungsadresse Kreditkartendaten Abbildung 4 3 Kunde mit Aggregationen Rezension als Assoziationsklasse Bei der Rezension handelt es sich um eine Paarung von Buch und Kunde Der Kunde hat dabei die Rolle des Autors der Rezension wahrend das Buch rezen siert wird Keines der beiden Objekte kann fehlen sonst k me keine Rezension zustande Au erdem 33 4 Informationsmodell hat die Rezension aber noch eigene Eigenschaften wie den Text und zum Beispiel eine sich anschlie Bende Punktbewertung oder das Datum der Entstehung was die Modellierung als Beziehungsklasse angebracht erscheinen l sst In diesem Sinne k nnte man auch die Abrechnung als Beziehungsklasse modellieren die den Kunden mit der Bestellung paart denn ohne eine Bestellung kann es keine Abrechnung geben und man muss wissen auf welchen Kunden sich die Abrechnung bezieht Jedoch verf gt auch die Bestellung schon ber dieses Wissen denn sie ist ber die stammt von Assoziation bereits mit dem Kunden verbun den Daher ist hier keine unmittelbare Notwendigkeit gegeben eine Beziehungsklasse zu modellieren denn wenn man wissen will an wen eine Abrechnung zu schicken ist kann man ber den Umweg der Bestellung zum betreffenden Kunden navigieren Dass es trotzdem eine ist bestimmt f r Assozia tion zwischen Abrechnung und Kunde gibt
75. beitetes Klassendiagramm 108 Teil Ill Schluss 109 10 Diskussion der Ergebnisse Rosenberg und Scott beschreiben ihren Prozess als schlank iterativ und inkrementell mit einem hohen Ma an R ckverfolgbarkeit zu den anfangs formulierten Anforderungen Auch sagen Rosenberg und Scott dass nur der Teil der UML benutzt wird der f r das Entwickeln eines Softwareprojekts am N tzlichsten ist Diese Aussagen haben im Gro en und Ganzen auch Bestand Verglichen etwa mit dem Rational Uni fied Process der mit Artefakten sehr berladen ist ist der ICONIX Prozess in der Tat schlank und zielgerichtet Die Anzahl der verschiedenen Artefakte ist berschaubar und die eingesetzten Dia grammtypen sind gut dazu geeignet die gefundenen Ergebnisse zu dokumentieren Im Informati onsmodell und im abschlie enden Klassenmodell werden Klassendiagramme benutzt in der Anwen dungsfallanalyse Anwendungsfalldiagramme und in der Interaktionsmodellierung Sequenzdiagram me Optional k nnen auch noch Kollaborationsdiagramme und Zustandsdiagramme dazu kommen sowie Verteilungs und Komponentendiagramme f r die Implementierung die aber in dieser Arbeit nicht behandelt wird Die Autoren vergleichen ihren Prozess gerne mit dem Vorgehensmodell Extreme Programming XP mit dem Unterschied dass im ICONIX Prozess das Design nicht vernachl ssigt wird Auch dies ist richtig In der Tat besch ftigen sich drei der vier Phasen des Prozesses mit der Analyse der P
76. bestellung aus und klickt auf Ausgew hlte Zahlungsweise verwenden Das System stellt nun sicher dass der Kunde wirklich eine Auswahl getroffen hat und f gt der Bestellung die gew hlten Zahlungsdaten hinzu Dann gibt es die Kontrolle an den aufrufenden Anwendungsfall zur ck Alternativabl ufe Wenn das System keine Rechnungsanschrift finden kann und der Kunde be reits mindestens dreimal erfolgreich per Kreditkarte bezahlt hat weist das System den Kunden auf der Seite Zahlungsweise darauf hin dass er auch per Rechnung bestellen darf und dass er daf r jetzt per Zahlungsdaten ndern Rechnungsdaten anlegen kann Wenn der Kunde auf Zahlungsdaten ndern klickt ffnet das System die Seite Zahlungsdaten anle gen Das System zeigt nun die Kreditkartendaten des Kunden im entsprechenden Abschnitt an Wenn bereits eine Rechnungsanschrift vorliegt zeigt das System diese ebenfalls im vorgesehenen Abschnitt an Der Kunde ndert nun die gew nschten Daten und klickt anschlie end auf Daten abschicken Das System pr ft dann die Kreditkartendaten und die Rechnungsanschrift soweit wie m glich auf Konsistenz aktualisiert die entsprechenden Attribute des Kunden Objekts und speichert sie ab An schlie end wechselt es wieder auf die Seite Zahlungsweise Wenn das System die Seite Zahlungsdaten ndern anzeigt und der Kunde noch nicht dreimal erfolg reich per Kreditkarte bezahlt hat bietet das System keine M
77. bildung 8 2 zeigt wie das Iterator Muster in der WarenkorbFassade eingesetzt werden kann um noch weiter von der internen Organisation des Warenkorbs zu abstrahieren Ein Warenkorb ist aufgebaut wie ein Baum Er besteht aus 0 bis n Positionen mit je einem Buch Jedes Buch hat dabei mindestens einen Autor Dies ist allerdings f r die Darstellung eines Buches im Warenkorb v llig unerheblich Hier hat man eine Informationszeile die den Bestand die Autoren und den Titel des Buches die Anzahl der zu bestellenden B cher den Preis pro Exemplar und pro Position enth lt Au erdem gibt der Warenkorb Aufschluss ber den Gesamtwert der Bestellung Hier kann das Iterator Muster weiterhelfen indem man die genannten Attribute die zu einer solchen Zeile geh ren auf ein neues Objekt abbildet das eine Zeile darstellt Dieses Objekt ist in dem Beispiel vom Typ WkPosition Klienten k nnen nun bei der WarenkorbFassade einen Iterator auf WkPosi tionen anfordern mit dem sie durch den Warenkorb iterieren k nnen Die WkPositionen kennen die Objekte die tats chlich die Daten enthalten und leiten die Anfragen nach den Werten der Attribute dorthin weiter Der Klient greift also weder auf die Klassen des Models die die tats chlichen Daten enthalten direkt zu noch kennt er die Struktur ber die oben genannte Vereinbarung hinaus Implementiert w rde die Liste der Warenkorb Positionen als Vector von Objekten des Typs WkPo sition in der Warenkorb
78. brechen wenn Sie sich entscheiden sollten doch nicht zu bestellen Sind jedoch alle Daten korrekt dann klicken Sie auf Bestellung ausf hren um die Bestellung in Auftrag zu geben 131 A Prototyp und Benutzerhandbuch 12 Bestellungen einsehen Historie Fe Bestellungen der letzten 30 Tage y Anzeigen Offene Bestellungen fe Bestell Nr 0000001 05 2002 Artikel een Scott Use Case Driven Object Modeling with Auftraggeber Hans Mustermann N Hans Mustermann Lieferadresse Musterstra e 26 12345 Musterstadt Bestelldatum 26 05 2002 Lieferstatus in Vorbereitung Gesamtpreis EUR 46 33 Ausgew hlte Bestellungen stomieren Ausgelieferte Bestellungen keine vorhanden Abbildung A 14 Historie der Bestellungen 132 A 6 Historie A 6 Historie Auf dieser Seite finden Sie eine komplette Zusammenstellung aller Bestellungen die Sie bei uns get tigt haben Direkt unter der berschrift Bestellungen einsehen befindet sich eine Auswahlliste mit verschiedenen Filterm glichkeiten von offenen Bestellungen ber die Bestellungen der letzten 3 Monate bis hin zu allen Bestellungen die Sie jemals bei uns aufgegeben haben Suchen Sie einfach den passenden Filter heraus und klicken Sie auf Anzeigen Die Liste der Bestellungen erscheint dann unmittelbar unter diesen Eingabeelementen Falls eine Bestellung noch offen ist also unser Lager noch nicht verlassen hat k nnen Sie sie auch noch stornieren Stornie
79. ch sind Anschlie end fordert es den Kunden zur Neueingabe der Daten auf und weist ihn darauf hin dass er vielleicht noch keinen Account hat Gibt der Kunde das Passwort f r eine existierende Benutzerkennung dreimal hintereinander falsch ein sperrt das System diesen Account und fordert den Kunden auf sich beim Kundendienst zu melden Wenn der Account des Kunden gesperrt ist meldet das System die Daten der fehlgeschlagenen Logins die zur Sperrung f hrten und fordert den Kunden auf sich beim Kundendienst zu melden B 3 2 Kontaktinformationen ansehen Standardablauf Der Kunde klickt im Hauptmen auf Kontakt Das System ffnet daraufhin die Seite Kontakt Der Kunde liest nun die ben tigten Kontaktinformationen B 3 3 Neuen Account er ffnen Standardablauf Der Kunde klickt auf der Seite Anmelden auf Neuen Account er ffnen Das System zeigt dann die Seite Account anlegen an Der Kunde gibt hier eine frei gew hlte Benutzer kennung und eine g ltige e mail Adresse an und w hlt ein Passwort aus das er zweimal eingibt Op tional kann er auch einen Passworthinweis eingeben der helfen kann wenn der Kunde sein Passwort vergessen hat Der Kunde dr ckt anschlie end die Schaltfl che Neuen Account anlegen Das Sy stem stellt darauf hin sicher dass die angegebene e mail Adresse g ltig ist und dass nicht bereits ein 140 B 4 Paket Buchkatalog Account mit der gleichen Benutzerkennung vorhanden is
80. chshnittl a Kundenbewertung Air mot sE Cat Preis 43 75 e Verf gbarkeit u Rezensionen Combining some of today s best ideas about customer driven object oriented design Use Case Driven Object Modeling with UML A Practical Approach shows you how to use Unified Modeling Language UML in the real world keeping with the author s proprietary software design process The book begins with the genesis of the author s CON Unified Object Modeling Approach borrowing ideas and strategies from the three amigas who invented UML Grady Booch James Rumbaugh and Ivar Jacobson Throughout this text the ICONIX method is used to model a stock trading system with all the relevant UML diagrams beginning with class definition and use cases Abbildung A 5 Produktdetails Detailansicht In der Detailansicht in Abbildung A 5 sehen Sie alle relevanten Informationen zum ausgew hlten Buch Dazu geh ren unter anderem Angaben zu Titel Autor Preis und Verf gbarkeit des Artikels Au erdem sehen Sie hier eventuell existierende Rezensionen anderer Kunden zu diesem Buch Sie k nnen nun das Buch ber den Link oben links in den Warenkorb legen wenn Sie es kaufen wollen Wenn Sie selbst das Buch bewerten und oder rezensieren wollen klicken Sie auf den Link in der rechten oberen Ecke Um zur ck zur zuletzt angezeigten Katalogseite zu gelangen klicken Sie auf den Link zur ck zum Katalog links unter der Rezension hier nicht sic
81. chtigen Bestandteil der Gesch ftsabl ufe darstellen Andernfalls gelangt man zu Sequenzdiagrammen die vergleichsweise nichts sagend sind Weiterhin fehlen in Rosenberg s Modell noch die Hilfsklassen und die Klassen die durch den Einsatz von Entwurfsmustern durch die Wahl des Frameworks oder durch die Funktionsweise des Systems im Sinne seiner Gesamtarchitektur entstehen Zwar betont er in RoSc01 RoSc99 die Wichtigkeit solcher Klassen und ermahnt den Leser sie unbedingt mit einzuzeichnen in seinem Beispielmodell wird man sie aber vergeblich suchen Auch enth lt das Klassenmodell aus Abbildung 9 3 nicht sehr viele Details ber die reine Nennung der Methodennamen und teilweise auch der Attribute hinaus Es fehlen vor allem die Kardinalit ten und die Sichtbarkeiten Au erdem sind keine Kompositionen eingezeichnet die R ckgabetypen der Methoden fehlen und an den Assoziationen stehen keine Texte was das Modell schwerer verst ndlich macht Von einem Detailentwurf ist dies alles aber zu erwarten Ein genauerer Blick in TFWM zeigt dass die Ausgabe der besagten Details nicht einfach bei der Erstellung der Diagramme unterdr ckt wurde sondern dass sie tats chlich nicht modelliert wurden Das Klassenmodell erweckt also nur den An schein eines vollst ndigen Modells In Wirklichkeit kann man es in dieser Form hnlich wie bereits bei den Sequenzdiagrammen gesehen noch nicht zur Programmierung des Systems verwenden 107 9 Uberar
82. dar durch welche berlegungen man in der Stabilit tsanalyse zur Architekturfindung motiviert werden kann e Kapitel 7 beschreibt aufgrund welcher berlegungen man zu einer problemgerechten Softwa rearchitektur gelangt und stellt einen Teil dieser Architektur vor e Kapitel 8 beschreibt wie man die in Kapitel 6 gefundenen Control Objekte in Operationen berf hrt die man auf die verschiedenen Objekte verteilt und wie man Entwurfsmuster einset zen kann um zu einem besseren Entwurf zu gelangen e Kapitel 9 zeigt wie sich das Informationsmodell durch die vorangehenden Kapitel zu einem vollst ndigen Klassenmodell entwickelt e Der Schlussteil schlie lich enth lt eine abschlie ende Bewertung des ICONIX Prozesses hin sichtlich seiner Praxistauglichkeit fasst noch einmal die St rken und Schw chen des Prozesses zusammen und beinhaltet eine Er rterung der hier gefundenen Ergebnisse Abgrenzung Um den Umfang der Arbeit von vornherein beherrschbar zu halten ist es wichtig die Aufgabenstellung so abzugrenzen dass der Rahmen einer Diplomarbeit zeitlich und inhaltlich eingehalten wird Daher werden bei dieser Arbeit folgende Rahmenbedingungen gesetzt e Es wird nur der Teil des Systems modelliert der die direkte Beziehung des Kunden mit dem Buchshop beschreibt Die internen Vorg nge im Shop wie etwa die Rechnungsstellung oder die Abwicklung der Lieferungen und die Lagerhaltung bleiben unber cksichtigt genauso wie die Beziehungen
83. das Verhalten der Anwendung Um sicherzustellen dass die Pr sentation auch wirklich von der Anwendungslogik getrennt ist gilt es bei der Stabilit tsanalyse folgende Kommunikationsregeln einzuhalten nach RoSc99 S 69 1 Akteure sprechen nur mit Boundaries 2 Boundaries k nnen mit Controllern und Akteuren sprechen 3 Entity Objekte k nnen nur mit Controllern sprechen 4 Controller k nnen sowohl mit Boundary Objekten als auch mit Controllern sprechen aber nicht mit Akteuren In der Essenz bedeuten die Kommunikationsregeln folgendes e Der Benutzer kann die Anwendung nur ber die Oberfl che bedienen engl View Der Begriff View kommt auch in dieser Bedeutung in der unten entwickelten Architektur als Klasse vor 62 e Die Gesch ftslogik befindet sich in den Controllern hinter der Oberfl che e Die Oberfl che hat keinen direkten Zugriff auf die Daten der Anwendung Die Einhaltung der Kommunikationsregeln hilft Modellierungsfehler zu vermeiden Wenn der Desi gner feststellt dass Kommunikationsregeln verletzt wurden ist es sicher dass die Anwendung nicht funktionieren kann oder dass wichtige Entwurfsregeln verletzt wurden Daher ist bei der Stabilit ts analyse auf die Einhaltung dieser Regeln besondere Sorgfalt zu verwenden Funktion der Stabilit tsanalyse Die Stabilit tsanalyse erf llt folgende grundlegende Funktio nen 1 Pr fung der Anwendungsf lle auf Durchf hrbarkeit und Vollst ndigkeit 2
84. den Dabei kann die MVC Architektur eingesetzt werden die die Anwendung in drei logische Bereiche unterteilt Ein Bereich befasst sich mit den Pr sentationsaspekten View w hrend sich ein zweiter um die Gesch ftsregeln und daten der Anwendung k mmert Model Der dritte Bereich befasst sich schlie lich mit der Verarbeitung und Interpretation von Benutzeranfragen und kontrolliert die Gesch ftsobjekte die diese Anfragen bearbeiten Controller Abbildung 7 1 zeigt wie die verschiedenen Funktionen der Anwendung sich auf die drei Bereiche verteilen View Browser Client Controller HTTP Request Filter Request ee Format Page to Display i Extract Data Determine Page BT Map Request to Command Invoke Command ito Handle Request Model Organize Work for Request Retrieve Data peat n Abbildung 7 1 Architektur eines J2EE basierten Internetshops aus SiStJa S 366 engl Tier 80 7 4 Architekturfragment des Internet Shops Eingesetzte J2EE Entwurfsmuster Oben wurde bereits erw hnt dass die Verwendung bestimmter Frameworks architektonische Rah menbedingungen setzt die sich zum Beispiel in der unter Umst nden obligatorischen Verwendung von Entwurfsmustern niederschl gt Singh Stearns und Johnson erl utern in SiStJa S 350f einige wichtige Entwurfsmuster die typisch f r J2EE Anwendungen sind Einige dieser Muster die insbe sondere im Controller Teil der Anwendung eine Rolle spielen werden nun vorge
85. den die gleichen Abl ufe wie in Teil 2 des Sequenzdiagramms durchgef hrt wobei allerdings sichergestellt werden muss dass der Kunde nicht gerade eine Kategorie gew hlt hat Die Kategorie wird dann aus dem Auswahlzustand ausgelesen Der obere Teil von Abbildung 8 5 stellt diesen Sachverhalt dar Die Abl ufe sind wie gesagt mit denen in Teil 2 identisch Dieser Teil wird hier nicht dupliziert sondern lediglich mit onKategorieGewaehlt angedeutet Tats chlich sind die Abl ufe nicht komplett identisch sondern erst ab getSubKategorien Man betrachte also den Methodenaufruf als Platzhalter f r die erw hnte Funktionalit t Man k nnte dies sinnvoll implementieren indem man den Inhalt von onKategorieGe waehlt auf zwei weitere Methoden verteilt die von onKategorieGewaehlt aufgerufen werden Die eine Methode kann dann auch f r den Alternativablauf genutzt werden Der zweite Alternativablauf tritt ein wenn das System f r eine Kategorie keine B cher finden kann Die Bildschirmansicht muss dann auf eine Weise pr sentiert werden die den Hinweistext enth lt Dies geschieht durch Setzen des zweiten Parameters von setPage wie bereits im vorigen Abschnitt geschildert wurde 8 4 Vergleich mit der L sung von Rosenberg und Scott Abbildung 8 6 zeigt das Sequenzdiagramm das Rosenberg und Scott f r den Anwendungsfall Wa renkorb editieren erstellt haben Vergleicht man die L sung der Autoren mit der hier vorgestellten verwundert es
86. der von der Detailansicht des Buches mit dem Link Buch bewerten oder das System pr sentiert Ihnen die Seite automatisch wenn Sie eine Rezension eintragen Sol Geben Sie einfach eine Bewertung ein indem Sie den Radiobutton anklicken der S Rosenberg und Scott nennen in RoSc99 S 68 eine Anzahl von Controls von durchschnittlich 5 bis 10 f r einen An wendungsfall beherrschbarer Gr e 51 5 Anwendungsf lle Ihrer Meinung nach die Qualit t des Buches am ehesten beschreibt Null ist am Schlech testen f nf am Besten Dann best tigen Sie Ihre Auswahl durch Dr cken der Schaltfl che Absenden Das System berechnet nun einen neuen Durchschnitt aus allen Kundenbe wertungen und zeigt Ihnen die aktualisierten Informationen in der Detailansicht an Dort wird der Durchschnitt aller Kundenbewertungen in Sternen ausgedr ckt ebenfalls von Obis 5 Text der Anwendungsf lle Buchrezension durchf hren Standardablauf Der Kunde klickt auf der Seite Produktdetails auf Rezension schreiben Das System stellt sicher dass der Kunde angemeldet ist Dann durchsucht es die Liste der Rezensionen zum betreffenden Buch und stellt sicher dass es noch keine Rezension gibt die den Kunden als Autor hat Der Kunde gibt im vorgesehenen Feld f r den Rezensionstext einen Text ein Dann klickt er auf Rezension abschicken Damit der Kunde das Buch auf jeden Fall auch bewertet ruft das System den Anwendungsfall Buch bewerten
87. die als Vector implementiert ist und somit alle ben tigten Funktionen bereits besitzt Dazu geh ren die Methoden add zum Hinzuf gen von Elementen removeAllElements zum Zur cksetzen der Liste f r den n chsten Anzeigezyklus und listlterator die einen Iterator auf die Elemente liefert Subkategorien suchen Zum Suchen der Subkategorien ben tigt der KatalogHandler ebenfalls eine Methode in der KatalogFassade n mlich getSubKategorien Listlterator Sie liefert einen Itera tor auf Kategorien zur ck die der KatalogHandler dann dem ViewHelper bergeben kann Zus tzlich ben tigt nat rlich die Kategorieliste solch eine Funktion da die Fassade an dieser Stelle die Anfrage nur weiterleitet 94 8 3 Buchkatalog ansehen B cher suchen F r die B chersuche ist die Situation hnlich gelagert Der Buchkatalog bekommt eine Methode getBuecher Kategorie mit deren Hilfe er einen Vector von B chern erzeugen kann die alle zur entsprechenden Kategorie geh ren Diese wird er allerdings in ein Suchergebnis berf hren so dass die KatalogFassade eine Methode getBuecher Kategorie Suchergebnis erh lt Dies ist im Anwendungsfall so vorgesehen damit die Liste der gefundenen B cher gesammelt an die Methode getKurzinfos bergeben werden kann die den Anwendungsfall Kurzinfos anzeigen abhandelt Anzeigen Der Anzeigemechanismus wurde bereits in Kapitel 8 1 1 dargelegt und unterscheidet sich hier nicht 8 3 2 Ablauf des Anwendungsfal
88. die nicht funktionalen Anforderungen die man auf andere dem Prozess nicht inneliegende Wei se einbringen muss Dennoch kann man mit der vorgestellten Methode Systeme entwickeln Es sollten jedoch interaktive Systeme sein die eine grafische Schnittstelle haben Die MVC Architektur die dem Prozess durch die Einteilung der Objekte in Entity Boundary und Control immanent ist ist n mlich f r solche Systeme besonders gut geeignet Das Fehlen von Handhaben zur Entwicklung eines richtigen Architekturmo dells f r die Zielanwendung erh ht jedoch die Gefahr dass man statische Systeme baut die nicht besonders wartungsfreundlich sind und je nach der Entwurfsstrategie die man verwendet eine hohe Kopplung zwischen den Seiten aufweisen Hier muss der Entwickler viel durch Erfahrung und K nnen wettmachen Hat man jedoch vor nur ein konzeptionelles Modell zu entwickeln das nicht wirklich programmiert werden soll kann man das mit diesem Prozess ohne Weiteres tun Man kann wie Rosenberg in seinem Beispiel zeigt mit dem ICONIX Prozess ein Modell entwickeln das auf den ersten Blick programmierbar wirkt und das die Gesch ftsabl ufe des Systems komplett darstellt Praxistauglich ist ein solches System aber nicht 115 11 Bewertung des ICONIX Prozesses 116 Abbildungsverzeichnis 2 1 4 1 4 2 4 3 4 4 5 1 5 2 5 3 5 4 32 5 6 5 7 5 8 3 9 5 10 5 11 5 12 6 1 6 2 6 3 6 4 6 5 7 1 7 2 7 3 8
89. dig Zur sicheren Zuordnung der Kunden zu ihren Accounts sollen diese mit Passw rtern gesch tzt sein Die Hauptfunktionen der Buchhandlung sind es Kunden den Buchkatalog zu pr sentieren sowie ihnen die Bestellung und Bezahlung von B chern direkt ber das Internet zu erm glichen Um sich die verf gbaren Artikel anzusehen sollen die Kunden entweder den Buchkatalog durch st bern k nnen oder dort gezielt nach B chern suchen k nnen Dabei soll eine Suche nach Autor Titel ISBN Nummer und Schl sselw rtern m glich sein W hrend der Kunde den Katalog durch sieht soll er online Informationen ber die Verf gbarkeit von B chern erhalten k nnen Jedem Buch soll au erdem ein bestimmter Preisrahmen zugeordnet sein aus dem der Buchshop je nach Marktlage den aktuellen Preis bestimmen kann Der aktuelle Preis soll nat rlich ebenfalls im Katalog angezeigt werden Jedem Kunden soll w hrend einer Einkaufssitzung ein Warenkorb zugeordnet werden in dem er B cher platzieren kann die er sp ter zu bestellen gedenkt Wenn der Kunde seine Auswahl getroffen hat soll er die Bestellung aufgeben k nnen Die Bezahlung soll entweder per Kreditkarte oder per Rechnung erfolgen k nnen Kunden sollen den Status von Bestellungen online verfolgen k nnen Auch sollen bereits gelieferte Bestellungen noch nachtr glich nachvollziehbar sein Au erdem soll es jedem Kunden m glich sein Rezensionen f r B cher zu schreiben die dann im Buchshop einges
90. ehen werden k nnen Bestandteil einer Rezension kann auch eine Punktbewertung sein Diese kann aber auch allein abgegeben werden Andere auch potentielle Kunden sollen die Rezensionen und Bewertungen einsehen k nnen Grundlage f r diesen Text ist die stichpunktartige Anforderungsbeschreibung auf Seite 16 des Buches von Rosenberg und Scott RoSc01 23 3 Aufgabenstellung 24 4 Informationsmodell 4 1 Allgemeines Die Grundlage f r das statische Modell bildet im ICONIX Prozess das Informationsmodell Dabei handelt es sich um ein sehr grob gehaltenes Klassendiagramm das die Objekte des Problembereichs enth lt Die Grundidee dabei ist ein m glichst wahrheitsgetreues Modell des Problembereichs zu erhalten Mit diesem Ansatz erreicht man eine relativ hohe Stabilit t des resultierenden Klassenmo dells da sich die Gegebenheiten der realen Welt normalerweise wesentlich langsamer ndern als die Anforderungen des Kunden Au erdem erreicht man ein hohes Ma an Wiederverwendbarkeit des Informationsmodells insbesondere wenn man plant noch weitere Software f r dieses Problemfeld zu schreiben Hier kann man dann seine weiteren Analyse und Entwurfsschritte auf dem gleichen Informationsmodell aufbauen Das Informationsmodell ist jedoch nur der Startpunkt f r das weite re Vorgehen Im Laufe des fortschreitenden Modellierungsprozesses wird es den sich verdichtenden Erkenntnissen immer weiter angepasst so dass man am Ende zu ein sehr detai
91. ein Insbesondere sind einige Aggregationen enthalten die nach Meinung des Autors Asso ziationen sein sollten und einige Klassen sind eigentlich Attribute Ein Customer Review Rezension kann keinesfalls Bestandteil eines Buches sein sondern ist die sem zugeordnet Das Editorial Review Waschzettel ist tats chlich ein Bestandteil des Buches jedoch ist nicht einzusehen dass ein Customer Review und ein Editorial Review beide Spezia lisierungen von Review sind da beide Klassen v llig verschiedene Merkmale haben Das eine wird n mlich von Kunden nachtr glich angefertigt und hat den Charakter einer Bewertung w hrend das andere eine Beschreibung des Buches ist die von Anfang an unver nderlich dazugeh rt Auch ein Price Schedule Preisrahmen kann kein Bestandteil des Buches sein Der aktuelle Preis ist wohl ein Attribut des Buches denn er tr gt einen Teil der Zustandsinformation der Preisrahmen jedoch ist dem Buch nur zugeordnet Der Lagerbestand wird hier als Attribut modelliert weil er vom Kunden nur in Form von Verf gbarkeitsinformationen eingesehen wird f r die Sicht des Kunden auf den Shop aber weiter keine Bedeutung hat User und Account Diskussionsw rdig ist sicherlich auch der obere rechte Teil des Rosenberg Modells der sich um User und Account rankt Nach Meinung des Autors ist der Account in diesem Stadium des Modells nur ein Synonym f r User Beide Klassen unterscheiden sich nur durch ihre P
92. eispiel eine Rechnungs und Lieferanschrift besitzen Falls er mit Kreditkarte bezahlt m ssen die Kreditkartendaten gespeichert werden Auf den ersten Blick f hrt das zu einem Teil des Informationsmodells wie in Abbildung 4 3 dargestellt Es w re auch m g lich die Attribute der Adress und Kreditkartendaten Klassen in das Kunden Objekt zu berf hren so dass die Adressen und Kreditkartendaten aus dem Informationsmodell verschwinden Hier greifen die berlegungen aus Abschnitt 4 2 1 ber die Bedeutsamkeit der betreffenden Objekte Die Verwen dungen die man sich f r Adressen und Kreditkartendaten vorstellen K nnte sind ausnahmslos nur f r den Shop bedeutsam nicht jedoch f r die Sicht des Kunden auf den Buchshop Es handelt sich zum Beispiel um Operationen wie e das Gruppieren von Bestellungen nach der Postleitzahl der Lieferanschrift um Bestellungen gemeinsam versenden zu k nnen 31 4 Informationsmodell Klassen Name Beschreibung Eine Abrechnung dient dazu den Kunden zur Zahlung des f l Abrechnung ligen Betrages f r eine Bestellung zu bewegen Es handelt sich entweder um eine Rechnung oder um eine Kreditkartenabrech nung je nach dem Typ der Bestellung Diese Liste enth lt alle Bestellungen die ein Kunde jemals beim Shop in Auftrag gegeben hat Dies schlie t auch die Bestellun Bestellliste ae gen ein die zwar schon beauftragt aber noch nicht ausgeliefert Bestellun Eine Bestellung ist ein Auftrag ber die
93. eit Die zweite nicht funktionale Anforderung liegt in der Forderung dass der Shop mit bis zu 1 000 000 Kunden umgehen k nnen soll Man wird nicht davon ausgehen dass sich alle diese Kunden gleichzei tig im Shop befinden werden Allerdings gilt Je mehr desto besser denn man will ja so viele B cher wie m glich verkaufen Am Anfang wird es vielleicht noch nicht so viele Kunden geben sp ter wird das Aufkommen hoffentlich erheblich steigen Daraus resultieren Anforderungen an die Skalierbar keit des Systems Es soll praktisch mit jeder Anzahl von Kunden bis zu der besagten Million gleich gut zurechtkommen und das System soll mit der Anzahl an Kunden wachsen K nnen Konsequenzen Die genannten berlegungen f hren zur Auswahl einer bestimmten Technologie die wiederum Aus wirkungen auf die Softwarearchitektur hat Eine Technologie die speziell auf die genannten Bed rf nisse der Internetwelt zugeschnitten ist ist das Java 2 Enterprise Edition Framework J2EE Hier wird man insbesondere den Einsatz von Enterprise Java Beans EJBs anstreben EJBs sind von Natur aus verteilt und leben in Application Servern Es gibt eine ganze Reihe verschiedener Application Server in verschiedenen Preiskategorien Die leistungsf higsten Application Server machen es dem Benutzer einfach das System zu skalieren Die Beans k nnen n mlich auf verschiedene Rechner ver teilt werden Solche Server haben eine eingebaute Lastverteilung und bie
94. eitsbuch das es dem Leser erm glichen soll das Vorgehensmodell ICONIX Process am praktischen Beispiel eines Internet Buchshops nachzuvoll ziehen Dabei wird in jedem Kapitel eine Phase des Prozesses kurz und pr gnant vorgestellt und an schlie end werden die zehn h ufigsten Fehler beschrieben die von Lernenden in der jeweiligen Phase gerne gemacht werden Diese Fehler demonstrieren die Autoren in den verschiedenen Entwicklungs phasen jeweils an Beispielen aus der Entwicklung des Buchshops und der Leser kann basierend auf der fehlerhaften L sung dar ber nachdenken wie er es besser gemacht h tte Anschlie end geben die Autoren einen eigenen L sungsvorschlag Eine erster Versuch die Beispiele des Buches in einer Lehrveranstaltung zu verwenden hat gezeigt dass die in das Buch gesetzten Erwartungen nur zum Teil erf llt werden Es scheint einige Schw chen aufzuweisen die den Einsatz des pr sentierten Beispiels in Lehrveranstaltungen sehr schwierig ma chen Insbesondere beschreiben die Autoren zwar f r jeden Analyseschritt die am h ufigsten gemach ten Fehler begr nden jedoch nicht aufgrund welcher Erw gungen man zu den von ihnen dargelegten Teilen des Modells gelangt An dieser Stelle setzt diese Arbeit an Zielsetzung Das Thema dieser Arbeit ist es am von Rosenberg und Scott verwendeten Beispiel den ICONIX Prozess durchzuf hren und zu einem nachvollziehbaren Teilmodell zu gelangen Dabei wird in jedem Kapitel geschildert
95. elden und Buch bewerten aus Abbildung 5 5 noch einmal mit aufgef hrt 53 5 Anwendungsf lle 5 6 3 Produkt bersichten Im Prototyp kommen Produkt bersichten an drei Stellen vor n mlich im Produktkatalog im An wendungsfall Buchkatalog ansehen bei der Pr sentation von Suchergebnissen im Anwendungsfall Buchkatalog durchsuchen und auf der Startseite im Anwendungsfall Neuheiten und Empfehlungen ansehen Die Entwicklung und Zerlegung eines Anwendungsfalls soll hier exemplarisch am Beispiel der Startseite demonstriert werden Auch hier sei auf die Anh nge A und B f r eine vollst ndige Re ferenz der Abschnitte aus dem Benutzerhandbuch und der zugeh rigen Anwendungsf lle verwiesen Text des Benutzerhandbuchs siehe Anhang A 1 Startseite Azamon Wenn Sie den Shop betreten sehen Sie als erstes diese Seite Hier k nnen Sie auf einen Blick unsere Neuheiten und Empfehlungen sehen Falls Sie noch nicht wissen was Sie kaufen sollen k nnen Sie sich hier einige Anregungen holen Klicken Sie auf Details unter jeder Buchbeschreibung um in die Detailansicht des Katalogs zu wechseln und mehr ber diesen Artikel zu erfahren ber den Link Anmelden in der Titelzeile der Seite k nnen Sie sich am System anmel den Dadurch vermeiden Sie dass Sie sich sp ter zwischendurch anmelden m ssen wenn Sie eine Bestellung durchf hren oder ein Buch rezensieren wollen Text des Anwendungsfalls Neuhei
96. em Default konstruktor einen neuen Warenkorb und ordnet ihn mit einem Aufruf von setWarenkorb im Objekt O3 dem Kunden zu Der zweite Alternativablauf tritt ein wenn der Warenkorb leer ist Der WarenkorbHandler bemerkt diese Tatsache wenn er einen Wklterator anfordert der aber keine Ergebnisse liefert siehe Abbil dung 8 2 Der Handler bricht dann die Verarbeitung ab und ruft die Methode setPage des View Helpers auf wobei auch der zweite Parameter der Methode gesetzt wird Der Wert dieses Parameters signalisiert dem ViewHelper die entsprechende Fehlermeldung auf der Seite anzuzeigen Der dritte Alternativablauf kann zwei verschiedene Ausl ser haben Entweder klickt der Kunde in einer Position auf L schen woraufhin ein Event erzeugt wird der die gel schte Position mit enth lt oder die WarenkorbFassade merkt beim Vergleichen des aus den Event Daten erzeugten Warenkorbs mit dem aktuell gespeicherten dass eine St ckzahl auf 0 gesetzt wurde In beiden F llen ist der weitere Ablauf nahezu mit dem im Standardablauf identisch Die WarenkorbFassade l scht die betreffende Position aus dem Warenkorb und setzt die bereits oben beschriebene Berechnungskaskade f r die Preise in Gang 8 2 Verwendung von Entwurfsmustern Ein guter Softwareentwurf zeichnet sich unter anderem dadurch aus dass auf bestimmte Qualit tskri terien Wert gelegt wird Zu diesen Qualit tskriterien geh rt zum Beispiel auch die Wiederverwend barkeit von Teilen
97. em stellt dar aufhin sicher dass wirklich eine Bewertung ausgew hlt wurde Anschlie end errechnet es aus den bisher abgegebenen Bewertungen f r das Buch und der soeben eingegebenen einen neuen Bewer tungsdurchschnitt und aktualisiert das Attribut Bewertung im betreffenden Buch Objekt Danach kehrt das System zum aufrufenden Anwendungsfall zur ck Alternativablauf Wenn der Kunde keine Bewertung aus der Liste ausw hlt bevor er auf Absen den klickt fordert das System ihn auf eine Bewertung abzugeben 52 5 6 Beschreibung der Anwendungsf lle Verfeinerung von Buchrezension durchf hren Betrachtet man den Anwendungsfall Buchrezension durchf hren so stellt man fest dass sich der Standardablauf und der Alternativablauf sehr stark hneln In beiden pr ft das System ob der Kunde angemeldet ist der Kunde gibt einen Rezensionstext ein oder ndert ihn und bewertet anschlie end das Buch Der wichtige Unterschied liegt allerdings im Verhalten des Systems Dieses durchsucht n mlich die Rezensionsliste zum entsprechenden Buch nach einer vorhandenen Rezension des Kun den und entscheidet dann ob eine neue Rezension angelegt wird oder ob eine vorhandene Rezension berarbeitet wird Es handelt sich also eigentlich um zwei verschiedene Anwendungsf lle n mlich Rezension erstel len und Rezension berarbeiten die nur deshalb im gleichen Anwendungsfall untergekommen sind weil sie mit derselben Bildschirm
98. en Sie haben auch die M glichkeit ber den Link l schen eine Position Komplett aus dem Warenkorb zu entfernen Das gleiche erreichen Sie wenn Sie die Anzahl der Artikel in der Position auf 0 setzen und anschlie end auf aktualisieren klicken Au erdem ist es m glich ber den Link Einkauf fort setzen zur ck zum Katalog zu kommen und zwar zu der Seite die Sie zuletzt besucht haben oder ber den Link Bestellen aus dem Inhalt des Warenkorbs eine echte Bestellung zu machen wie im n chsten Abschnitt beschrieben wird A 5 Bestellen Das Bestellen von B chern kann entweder vom Hauptmen aus oder von der Seite Warenkorb aus erfolgen Klicken Sie auf den Link oder die Schaltfl che Bestellen und die Bestellung kann begin nen Voraussetzung um eine Bestellung auszuf hren ist allerdings dass der Warenkorb berhaupt B cher enth lt Der Bestellvorgang erfolgt in drei Schritten 127 A Prototyp und Benutzerhandbuch Suchergebnis Suchkriterium Autor gt Rosenberg Anne Use Case Den uer IL Taschenbuch 224 Seiten Addison Wesley wu Preis EUR 43 66 e Verf gbarkeit Ml Details m P Case DRIVEN Onet MODELING Taschenbuch 192 Seiten Addison Wesley ike Preis EUR 42 90 SC ESA e Verf gbarkeit 1 Details HB Neue Suche durchf hren Abbildung A 9 Suchergebnis 1 Vorgemerkte Artikel Bestand Artikel Menge Artikelpreis Artikelsumme
99. en und Anwendungsf llen im Auge beh lt Die Details der Pr sentation und weitgehend auch die Details der einzugebenden Daten werden im Prototypen dargestellt Die Art und Weise wie der Benutzer mit dem System arbeitet wird hingegen von den Anwendungsf llen beschrieben Um schlie lich die Anwendungsf lle zu finden geht man bei Internet basierten Systemen am Besten so vor dass man sich die Prototypen Seite f r Seite ansieht und daraufhin beleuchtet wo der Benutzer auf Links oder Schaltfl chen klickt und was er dadurch erreichen will Diese Benutzeraktionen ordnet man dann Anwendungsf llen zu Manchmal wird durch das Klicken unmittelbar ein Anwendungs fall aufgerufen In anderen F llen handelt es sich um Aktionen die lediglich dabei helfen einen Anwendungsfall abzuarbeiten oder die zu Alternativabl ufen geh ren 5 1 Erste Anwendungsfalle In der Problembeschreibung in Kapitel 3 lassen sich f nf herausragende Gesch ftsvorf lle finden auf denen man den Prototypen aufbauen kann 1 Buchkatalog 2 B chersuche 3 Warenkorb 4 Buchbestellung 5 Bestellungshistorie Die initialen Anwendungsf lle dazu lesen sich wie folgt Katalog ansehen Warenkorb verwalten SEE as we w w oer we Der Bestellung verfolgen Buch bestellen Abbildung 5 1 Erste Anwendungsf lle 38 5 2 GUI Prototyp und Benutzerhandbuch 5 1 1 Katalog ansehen Standardablauf Der Kunde ffnet den Buchkatalog Das System ze
100. enso unspektakul r Er f hrt nur zu einem Konstruktor von Warenkorb der einen leeren Warenkorb erzeugt und einer Metho de setWarenkorb in der Session Das Erzeugen eines Warenkorbs sollte an dieser Stelle normaler 87 8 Interaktionsmodellierung weise gar nicht n tig sein Es handelt sich lediglich um eine Sicherheitspr fung denn normalerweise sollte der Warenkorb im Anwendungsfall Artikel in den Warenkorb legen erzeugt und mit Inhalt gef llt werden 8 1 2 Ablauf des Anwendungsfalls Mit den soeben entwickelten Methoden ergibt sich der in Abbildung 8 1 dargestellte Ablauf des An wendungsfalls Standardablauf Der Anwendungsfall wird aufgerufen wenn der Kunde auf der Seite Produktde tails auf Artikel in den Warenkorb legen klickt Das System ruft dann zun chst den Anwendungs fall Artikel in den Warenkorb legen auf und direkt anschlie end den Anwendungsfall Warenkorb editieren siehe Anwendungsfall B 1 1 Entsprechend der im vorigen Kapitel erl uterten Architek tur erzeugt das System dann ein CommandHandler Objekt das als Use Case Controller agiert Es verwendet Methoden der WarenkorbFassade um auf den Datenbestand zuzugreifen Im Diagramm ist gut zu erkennen dass das Objekt Ol vom Typ WarenkorbHandler die ganze Zeit ber die Abl ufe steuert was dem use case controller Paradigma entspricht Da der CommandHandler aus einem Event erzeugt wird wei er welche Aktion der Benu
101. entiert Man verliert leicht den Blick f r das Ganze Obwohl der ICONIX Prozess vorgibt ein Top Down Ansatz zu sein hat diese Fokussierung auf die Anwendungsf lle doch eher den Charakter eines Bottom Up Ansatzes Nach Meinung des Autors sollten die Entscheidungen ber die Architektur das Framework die In frastruktur und die Gewichtung der Qualit tskriterien gefallen sein bevor man sich an das Design eines beliebigen Softwaresystems begibt Kapitel 7 zeigt wie man durch die Einbeziehung dieser berlegungen zu einem geeigneten und flexiblen Architekturmodell kommt Die dort beschriebene Architektur erzeugt abh ngig von den Eingaben des Benutzers Events und bildet diese unter Einsatz des Command Musters auf CommandHandler Objekte ab Da dabei die Logik eines jeden Anwen dungsfalls in einem Objekt gekapselt ist ist sowohl das Verhalten des Systems als auch die Darstellung der Daten leicht nderbar womit vor allem der Wartbarkeit Rechnung getragen wird Der Grund daf r dass die Architekturfindungsphase zu kurz kommt ist sicherlich darin zu suchen dass der ICONIX Prozess anwendungsfallgesteuert ist Anwendungsf lle beschreiben die funktiona len Anforderungen an das zu entwickelnde System Ein anwendungsfallorientiertes Vorgehen konzen triert somit die Sicht des Entwicklers auf die funktionalen Anforderungen Das engt aber den Blick des Entwicklers stark ein Es fehlt die Einbeziehung der nicht funktionalen Anforderungen Dazu ge
102. enutzerhandbuch zu schrei ben und dieses in Anwendungsf lle zu bertragen Auch diese Vorgehensweise hat sich in Kapitel 5 als sehr praktikabel erwiesen Ist das Benutzerhandbuch erst einmal geschrieben so sind die An wendungsf lle daraus leicht entwickelt Problematisch war an dieser Stelle aber dass Rosenberg und Scott keine konkreten Wege und Hilfestellungen aufzeigen um solch einen Prototypen zu entwickeln 111 10 Diskussion der Ergebnisse Hier zeigt diese Arbeit einen Weg auf mit dem man wieder durch grammatikalische Analyse der Problemstellung zum Ziel gelangen kann indem man erste Analyse Anwendungsf lle schreibt die man aus der Problemstellung gewinnt und daraus den Prototypen entwickelt Einer der wichtigsten aber leider auch am schlechtesten erkl rten Schritte ist die Stabilit tsanalyse Kapitel 6 dieser Arbeit Sie bildet die Br cke zwischen Analyse und Entwurf und hat zwei Funktio nen Durchf hren eines abschlie enden Review der Anwendungsf lle und Entwickeln eines vorl ufi gen Designs Dieser Schritt ist prinzipiell sinnvoll denn er hilft den Blick von den zu l senden Problemen selbst auf die Art zu lenken wie diese Probleme zu l sen sind Der Anwendungsfalltext bleibt dabei wie auch beim sp teren Design der zentrale Aspekt Dies f hrt dazu dass man stets im Bilde ist welche funktionalen Anforderungen umgesetzt sind und welche nicht Dies ist bei anderen Prozessen oft ein Problem da die Anwendun
103. er Form der Anwen dungsf lle Diese sind sogar noch Teil der Sequenzdiagramme bei der Interaktionsmodellierung 2 2 Phasen und Elemente des ICONIX Prozesses Wie jedes Vorgehensmodell ist der ICONIX Prozess in Phasen eingeteilt die nacheinander durchlau fen werden und aus denen schlie lich das komplette ausf hrbare System hervorgeht Konkret unter scheidet man vier verschiedene Prozessphasen 1 Anforderungsanalyse 2 Analyse und vorl ufiges Design 3 Design und 4 Implementierung In jeder Phase werden bestimmte Anstrengungen unternommen die man als die Elemente des Prozes ses bezeichnen kann Die Elemente lassen sich nach bestimmten inhaltlichen Zusammenh ngen und Abl ufen ordnen doch sind sie nicht immer deckungsgleich mit den Phasen des Prozesses Nimmt man zum Beispiel die Anwendungsfallanalyse so besteht diese aus einer Reihe von T tigkeiten die zusammenh ngend durchgef hrt werden bis hin zum Schreiben der Anwendungsfalltexte W hrend die anf nglichen T tigkeiten wie Finden von Anwendungsf llen Kategorisieren und Zuordnen der funktionalen Anforderungen zu den Anwendungsf llen aber zur Phase Anforderungsanalyse ge h ren geh rt das Schreiben der Texte zur Phase Analyse und vorl ufiges Design In den folgenden Abschnitten werden die wichtigsten Aspekte der verschiedenen Prozesselemente kurz dargestellt 2 2 1 Anforderungsanalyse Der Prozess beginnt mit der Anforderungsanalyse Im Wesentlic
104. er Seite Katalog an Wenn das System in einer Sub Kategorie keine B cher finden kann zeigt es eine entsprechende Fehlermeldung an und fordert den Kunden auf eine andere Kategorie zu w hlen 65 6 Stabilit tsanalyse AH Hirweis Keine B cher in Kategorie Der Auswahlzustand und die TmpKategorieListe m ssen der Session des Kunden fe zugeordnet werden Aus Gr nden der Ubersichtlickeit ist 1 dies nicht eingezeichnet d Auswahlzustand suchen de Seite Katalog Top Level Om Kategorieliste suchen Auswahlzustand auslesen x Auswahlzustand 2 Temp Kategorieliste TmpKategorieliste A erzeugen updaten erzeugen Kurzinfo anzeigen Kategorie a Auswahlzustand Auswahlzustand speichern Subkategorien vorhanden Subkategorien suchen keine Subkategorien vorhanden EY B cher suchen Suchergebnis kehe B cher in der Kategorie Abbildung 6 1 Stabilit tsdiagramm Buchkatalog ansehen 66 6 2 Warenkorb editieren Auswirkungen auf das Klassenmodell e Zum Speichern von Kontextinformationen die der Kunde ben tigt um sich im Shop zu be wegen muss ein neues Objekt Session eingef hrt werden in dem diese Informationen dem Kunden eindeutig zugeordnet werden k nnen Dies schlie t Verwechslungen beim Mehrbenut zerbetrieb aus e Damit man ein Buch berhaupt einer Kategorie zuordnen kann ben tigt man ein Attribut Ka tegorie in der
105. erf r muss ein Alternativablauf formuliert werden e Ebenso ist es denkbar dass der Kunde einen leeren Warenkorb zu editieren versucht Dies kann zum Beispiel passieren wenn er bereits alle Positionen im Warenkorb gel scht hat Auch f r diesen Fall muss noch ein Alternativablauf hinzugef gt werden in dem das System den Kunden darauf hinweist dass der Warenkorb leer ist Die genannten berlegungen f hren zu den im n chsten Abschnitt geschilderten berarbeitungen des Anwendungsfalltextes Die nderungen sind wieder rekursiv markiert Abbildung 6 2 zeigt das Stabilit tsdiagramm zu diesem Anwendungsfall berarbeiteter Text des Anwendungsfalls Standardablauf Das System zeigt die Seite Warenkorb an Es stellt zun chst sicher dass in der Session des Kunden ein Warenkorb Objekt existiert Dann liest es aus dem Warenkorb Objekt f r diesen Kunden alle Positionen aus und zeigt sie u a mit St ckzahl Preis Buchtitel und Bestandsinfor mation an siehe dazu GUI Prototyp Der Kunde ndert die St ckzahl einer Position im Warenkorb und klickt auf Aktualisieren Das System speichert die neue St ckzahl der betreffenden Position berechnet die Kosten f r diese Position und den Gesamtpreis ber alle Positionen im Warenkorb neu und zeigt die aktuellen Werte an Der Kunde klickt dann auf Einkauf fortsetzen woraufhin das System die Kontrolle wieder an den Anwendungsfall Buchkatalog ansehen bergibt Alternativabl ufe
106. eschreibt am Beispiel des Kontrollflusses bei der Buchbestellung welche berlegungen w hrend einer gr ndlich durchgef hrten Stabilit tsanalyse dazu f hren k n nen eine Architektur zu entwickeln Dennoch kann man die Stabilit tsanalyse durchf hren ohne sich Gedanken ber die Softwarearchitektur zu machen und kann wie Rosenberg zeigt diese Verfah rensweise auch bei der Interaktionsmodellierung beibehalten indem man sich streng an den Abl ufen der Anwendungsf lle orientiert Was dabei herauskommt ist ein Modell das nur gut f r ein System geeignet ist das nur einmal entwickelt wird und danach nicht weiter gewartet oder weiterentwickelt wird Es zeichnet sich dadurch aus dass es e sehr statisch ist und eine starke Kopplung zwischen den Bildschirmseiten aufweist e sich streng an den funktionalen Anforderungen orientiert und e kaum Wert auf Qualit tskriterien wie etwa Wiederverwendbarkeit legt Letzteres kann man durch den Einsatz von Entwurfsmustern w hrend der Interaktionsmodellierung zum Teil wieder gutmachen aber an dieser Stelle verweist Rosenberg auf die Literatur anderer Auto ren und sagt nur dass der Designer darauf achten sollte beim Entwurf bestimmte Qualit tskriterien einzuhalten und dass es eine Sache von Erfahrung und K nnen sei einen Entwurf gut zu machen 112 An dieser Stelle wird deutlich wo die Schw che eines so zielgerichteten Ansatzes liegt der sich streng an den funktionalen Anforderungen ori
107. eschreibung der verwendeten Entwurfsmuster fi ndet sich in Gam96 91 8 Interaktionsmodellierung O O o 02 WarenkorbHandler WarenkorbFassade onWarenkorbAnzeiden0 void sucheWarenkorbO poolean li listlterator Listiterator getWarenkorb0 Warenkorb O 03 Session getGesamtrreiso mbat m getPreis0 float bildeAb0 Listlterator li Wiklterator wkp WkPosition getStueckzahl ht getBuchO Buch 2 o4 Warenkorb getTitel String O 05 Position while li hasNextO E wkp next0 java ibng Object getStueckzahlO in getAutor String gi 7 Abbildung 8 2 Sequenzdiagramm Inhalt des Warenkorbs auslesen 92 Buch 8 3 Buchkatalog ansehen Rosenberg schreibt dazu in RoSc99 S 104 Ich habe zwei Strategien vorgestellt nach denen Controller in Stabilit tsdiagram men umgewandelt werden k nnen control in the screen und use case controller Wenn Sie sich in die eine oder andere Richtung bewegen w hrend Sie Ihre Sequenzdiagramme zeichnen handelt es sich dabei um die Anwendung von Mustern Die Idee dabei ist dass die Teammitglieder die f r die verschiedenen Diagramme zust n dig sind bereits fr h in dieser Phase Entwurfsstandards vereinbaren sollten die in allen Diagrammen angewandt werden k nnen Der konsequente Einsatz des Iterator Musters etabliert einen solchen Standard Ab
108. estellung mit der gew nschten Adresse und Versandart Dann zeigt es wieder die Seite Zahlungsweise an Es liest aus dem Kunden Objekt die Kreditkartendaten und die Rechnungsanschrift aus und zeigt sie auf der Seite Zahlungsweise an Der Kunde w hlt nun die gew nschte Zahlungsweise aus und dr ckt die Schaltfl che Ausgew hlte Zahlungsweise verwenden Das System f gt daraufhin der Bestellung die gew hlte Zahlungsweise hinzu Dann wechselt es zur Seite Best tigung wo es noch einmal eine bersicht aller Bestelldaten anzeigt 48 5 6 Beschreibung der Anwendungsf lle Der Kunde versichert sich noch einmal der Richtigkeit der Daten und klickt auf Bestellung ausf h ren Das System f gt nun die Bestellung in die Bestellliste des Kunden ein und leert den Warenkorb Dann ruft es den Anwendungsfall Buchkatalog ansehen auf Alternativabl ufe Wenn der Kunde noch nicht am System angemeldet ist ruft das System am Anfang dieses Anwendungsfalls den Anwendungsfall Anmelden auf Wenn der Inhalt des Warenkorbs leer ist zeigt das System eine entsprechende Meldung an bricht die sen Anwendungsfall ab und bergibt die Kontrolle an den Anwendungsfall Buchkatalog ansehen Wenn das System keine Lieferadresse finden kann oder der Kunde auf der Seite Bestellen auf Neue Adresse anlegen klickt ffnet das System die Seite Adressdaten Der Kunde gibt dort neue Adressdaten an und best tigt d
109. ethode erzeugeWarenkorb Event einen zwei ten Warenkorb aus dem Event erzeugt Dann vergleicht er diesen neuen Warenkorb mit dem aktuell gespeicherten und findet heraus dass sich in diesem Beispiel eine St ckzahl ge ndert hat Daraufhin aktualisiert die WarenkorbFassade die St ckzahl in der ge nderten Position ber die Methode setStu eckzahl Die Position selbst berechnet nun ihren Preis mit berechnePreis neu weil eine ge nderte St ckzahl zu einem ge nderten Positionspreis f hren muss Dazu liest sie aus dem Buch Objekt O6 den Preis f r das betreffende Buch mit getPreis aus und multipliziert ihn mit der neuen St ckzahl Die Neuberechnung des Preises k nnte nat rlich auch vom Objekt O2 angesto en werden Es ist aber sinnvoller das Setzen der St ckzahl und die Neuberechnung in der gleichen Methode der Klas se Position zusammen zu halten damit keine Konsistenzprobleme zwischen St ckzahl und Preis entstehen Diese Strategie verhindert jedoch dass O2 von der Neuberechnung des Preises erf hrt O2 88 Standardablauf Das System zeigt die Seite Warenkorb an Es stellt zun chst sicher dass in der Session des Kunden ein Warenkorb Objekt existiert Dann liest es aus dem Warenkorb Objekt f r diesen Kunden alle Positionen aus und zeigt sie u a mit St ckzahl Preis Buchtitel und Bestandsinformation an Der Kunde ndert die St ckzahl einer Position im Warenkorb und dr ckt die Schaltfl che Aktualisie
110. f des Systems W hrend man in der Stabilit tsanalyse eine erste Idee von der Art entwickelt hat wie die Objekte miteinander inter agieren um die Anwendungsf lle zu realisieren berdenkt und detailliert man diese Ideen jetzt und setzt sie in ein Interaktionsmodell um Interaktionsmodellierung Mittel zur Darstellung der Ergebnisse sind bei diesem Entwurfsschritt die Sequenzdiagramme Sie zeigen ein detailliertes Modell der Laufzeitaspekte des Systems Insbe sondere zeigen sie wie zur Laufzeit vorhandene Instanzen von Klassen durch Nachrichten miteinan der kommunizieren Daher sind sie gut geeignet um die Verantwortlichkeiten auf die verschiedenen Klassen zu verteilen Um die R ckverfolgbarkeit von Sequenzdiagrammen zu den Anwendungsf l len die sie darstellen zu gew hrleisten zeichnet man ein Diagramm pro Anwendungsfall den man implementieren will Rosenberg und Scott sprechen hier von Robustness Analysis Gemeint ist dass die Anwendungsf lle auf ihre Stabilit t oder Robustheit gegen sp tere nderungen gepr ft werden Insbesondere sollen die Anwendungsf lle in der Designpha se nicht mehr ge ndert werden m ssen 17 2 berblick ber den ICONIX Prozess Beim Entwerfen von Sequenzdiagrammen identifiziert man sowohl die Nachrichten die zwischen den Objekten ausgetauscht werden m ssen als auch die Objekte selbst und die Methoden die aufgerufen werden m ssen Die Nachrichten in den Sequenzdiagrammen sind ja nichts
111. ge N herung an die Gesch ftsdaten Das Model benachrichtigt die Views wenn es sich ver ndert und stellt den Views die M glichkeit zur Verf gung das Model nach seinem Zustand zu befragen Au erdem bietet es dem Controller die M glichkeit auf Applikationsfunktionalit ten zuzugreifen die im Model gekapselt sind Ein View stellt den Inhalt eines Models dar Es greift auf die Daten des Models zu und spezifiziert wie die Daten dargestellt werden sollen Es aktualisiert die Datenpr senta tion wenn das Model sich ndert Au erdem leitet es die Eingaben an den Controller weiter 61 6 Stabilit tsanalyse Ein Controller definiert das Verhalten der Anwendung Er verarbeitet Benutzeranfragen und w hlt die richtigen Views f r die Pr sentation aus Er interpretiert die Benutzerein gaben und bersetzt sie in Aktionen die vom Model ausgef hrt werden m ssen In ei nem autark arbeitenden GUI Client sind dies zum Beispiel Klicks auf Schaltfl chen oder Auswahlen in einem Men In einer Internetanwendung handelt es sich dabei um HTTP GET Anfragen und HTTP POST Anfragen an den Web Tier Anhand der Benutzeraktio nen und der Ergebnisse der Model Operationen w hlt ein Controller die n chste Ansicht aus die angezeigt werden soll Eine Applikation hat blicherweise einen Controller f r einen Satz verwandter Funktionen Einige Anwendungen benutzen auch separate Con troller f r verschiedene Typen von Clients weil sich die Interaktionen mit
112. gew hlt wurde Anschlie end errech net es aus den bisher abgegebenen Bewertungen f r das Buch und der soeben eingegebenen einen neu en Bewertungsdurchschnitt und aktualisiert das Attribut Bewertung im betreffenden Buch Objekt Danach kehrt das System zum aufrufenden Anwendungsfall zur ck Alternativabl ufe Wenn der Kunde keine Bewertung aus der Liste ausw hlt bevor er auf Be wertung Rezension abschicken klickt fordert das System ihn auf eine Bewertung abzugeben B 2 2 Buch rezensieren Standardablauf Auf der Seite Rezension gibt der Kunde im vorgesehenen Feld f r den Rezen sionstext einen Text ein Um sicherzustellen dass der Kunde das Buch au erdem auch bewertet ruft das System den Anwendungsfall Buch bewerten auf Das System f gt nun der Liste der Rezensionen f r dieses Buch ein neues Rezensions Objekt mit dem soeben eingegebenen Text und der Kennung des Kunden als Autor hinzu Anschlie end kehrt es auf die Seite Produktdetails zur ck wobei es die Rezension des Kunden als erste Rezension anzeigt Au erdem erzeugt das System auf dieser Seite einen Link mit dem der Kunde den Anwendungsfall Rezension berarbeiten aufrufen kann B 2 3 Rezension vorbereiten Standardablauf Der Kunde klickt auf der Seite Produktdetails auf Rezension schreiben Das System stellt sicher dass der Kunde angemeldet ist Dann durchsucht es die Liste der Rezensionen zum betreffenden Buch und stell
113. glichkeit zur Eingabe der Rechnungsda ten Wenn das System die Seite Zahlungsdaten ndern anzeigt und keine Rechnungsdaten gespeichert sind der Kunde aber schon mindestens dreimal erfolgreich per Kreditkarte bezahlt hat stellt das System die Felder f r die Rechnungsbestellung leer dar so dass der Kunde Daten eintragen kann Wenn das System im Kunden Objekt keine Kreditkartendaten finden kann ffnet es die Seite Zah lungsdaten anlegen Es zeigt dort im Abschnitt f r die Kreditkartendaten leere Felder an in denen der Kunde die Daten seiner Kreditkarte eintr gt Der Kunde klickt dann auf Daten abschicken Das System pr ft dann die Kreditkartendaten auf Konsistenz aktualisiert die entsprechenden Attribute des Kunden Objekts und speichert sie ab Anschlie end wechselt es wieder auf die Seite Zahlungswei se Stellt das System bei der Datenvalidierung Fehler fest so ruft es den Anwendungsfall Fehlerhafte Dateneingabe behandeln auf Wenn das System feststellt dass der Kunde keine Zahlungsweise ausgew hlt hat fordert es den Kun den auf eine Auswahl zu treffen 138 B 2 Paket Buchrezension B 2 Paket Buchrezension B 2 1 Buch bewerten Standardablauf Das System ffnet die Dialogbox Buch bewerten Dort w hlt der Kunde aus der Liste m glicher Buchbewertungen eine Option aus und klickt auf Bewertung abschicken Das System stellt daraufhin sicher dass wirklich eine Bewertung aus
114. gramm Warenkorb editieren 89 8 Interaktionsmodellierung wei jedoch dass es die St ckzahl ge ndert hat und fordert daher den Preis mit getPreis neu an2 Anschlie end muss auch im Warenkorb der Gesamtpreis neu berechnet werden weil sich der Preis mindestens einer Position ge ndert hat Da hier aber die Neuberechnung vom Objekt O2 aus initiiert wird kann der neue Preis sofort ber den R ckgabewert mitgeteilt werden Jedoch muss auch O4 vor der Neuberechnung des Gesamtpreises bei allen beteiligten Positionen hier nur O5 die Preise abfragen An dieser Stelle angekommen hat O2 daf r gesorgt dass alle anzuzeigenden Informationen wie der aktuell sind und k nnte diese nun durch den ViewHelper darstellen lassen Der Anwendungsfall sieht aber vor dass das System jetzt auf die Katalogseite wechselt Daher ruft der WarenkorbHandler die Methode onKatalogAnzeigen des KatalogHandlers auf wodurch die Kontrolle auf den Anwen dungsfall Katalog ansehen bergeht Wenn der Kunde schlie lich auf Einkauf fortsetzen klickt f hrt dies von vornherein zum Erzeugen eines anderen CommandHandlers vom Typ KatalogHandler Damit wird die Kontrolle von vornherein an einen anderen Use Case Controller bergeben und der Standardablauf ist beendet Alternativabl ufe Der erste Alternativablauf tritt ein wenn der WarenkorbHandler bei der an f nglichen Suche des Warenkorbs false zur ckbekommt In diesem Fall erzeugt er mit d
115. gsf lle nicht 1 1 auf das Design abgebildet werden k nnen Daher halten Rosenberg und Scott es auch f r so wichtig ein Stabilit tsdiagramm und sp ter ein Sequenzdiagramm aus jedem Anwendungsfall zu machen Der Autor dieser Arbeit h lt diesen Aspekt ebenfalls f r sinn voll denn er erh ht die R ckverfolgbarkeit zu den Anforderungen und sch tzt davor beim Entwurf des Systems Benutzungsszenarien zu vergessen In ihrer Bedeutung f r die Analyse im Sinne eines zus tzlichen Reviews der Anwendungsf lle ist die Stabilit tsanalyse durchaus hilfreich W hrend dieser T tigkeit wurden in der Tat bei den hier durchgef hrten Beispielen noch einige Schwachstellen in den Anwendungsf llen aufgedeckt So hilfreich die Stabilit tsanalyse allerdings in ihrer Rolle bei der Anforderungsanalyse ist so proble matisch ist sie in ihrer Rolle beim Entwurf des Systems Stabilit tsanalyse und Design Die gr te Schw che im ICONIX Prozess ist das Fehlen einer Architekturfindungsphase Rosenberg deutet an dass erste architektonische Entscheidungen in der Stabilit tsanalyse fallen sollten Er gibt jedoch keine Handhaben zur Architekturfindung und in seinem Beispiel sind architektonische Entscheidungen schlicht nicht zu sehen Wie die Ergebnisse von Kapitel 6 zeigen f hrt die nach der von Rosenberg und Scott dargelegten Me thodik durchf hrte Stabilit tsanalyse zu Diagrammen nach denen man nicht unbedingt ein System programmieren Kann Kapitel 6 b
116. gsfall Adressdaten validieren lediglich genau definieren welche Art der Pr fung vorgenom men werden soll und was zu geschehen hat wenn die Validierung fehlschl gt Dieser Anwendungsfall w re aber zu klein Er h tte wohl im zugeh rigen Stabilit tsdiagramm eine Anzahl von Controls die deutlich unter f nf liegen w rde Au erdem sind die Anwendungsf lle nur teilweise identisch da in Zahlungsdaten bestimmen auch die Kreditkartendaten verifiziert werden m ssen Interessanter ist es das Systemverhalten bei Fehleingaben auszugliedern Anwendungsfall Fehler hafte Dateneingabe behandeln Dieser Anwendungsfall wird von den beiden eben beschriebenen aufgerufen wenn die Validierung der Adressdaten fehlschl gt Er zeigt dem Benutzer einen Hinweis auf fehlerhafte Eingaben und fordert ihn zur Neueingabe der Daten auf Da der Anwendungsfall ein Verhalten beschreibt was mehreren anderen Anwendungsf llen gemein ist ist es legitim ihn auszu gliedern Au erdem k nnte er im Hinblick auf eine sp tere Erweiterung des Modells noch an Wich tigkeit gewinnen Im Moment sind nicht viele Stellen im System enthalten an denen der Benutzer gr ere Eingaben vornimmt Dies liegt haupts chlich daran dass der interne Teil des Buchshops nicht modelliert wird Wenn man diese Teile des Modells sp ter hinzuf gt wird man diesen Anwendungs fall wieder verwenden wollen Abbildung 5 6 zeigt die Zerlegung des Anwendungsfalls Buchbestellung du
117. h ren auch die oben beschriebenen Einflussfaktoren auf das System Rosenberg und Scott erw hnen in ihrer Problembeschreibung zwei nicht funktionale Anforderungen Das System soll im Internet funktionieren und es soll 1 000 000 Kunden verwalten Beide Anforderungen bleiben bis zuletzt un ber cksichtigt Vielleicht hilft ein Blick auf das von Karl J Lieberherr formulierte Inventor s Paradox weiter um sich von der blo en Erf llung der funktionalen Anforderungen ein wenig zu l sen Nach diesem Muster vereinfacht man indem man ein generelleres Problem l st bzw ein allgemeineres Programm schreibt Dabei soll auf unn tiges Verteilen oder Duplizieren von Informationen im Code verzichtet werden und besonders beachtet werden welche Programmteile f r andere bedeutsam sind Die leidvolle Erfahrung vieler Systemarchitekten zeigt dass es oft unter dem Strich einfacher und auch billiger sein kann wenn man eine allgemeinere L sung f r ein spezielles Problem entwickelt Im vorliegenden Fall ist damit zum Beispiel die Eventerzeugungsmaschine in der hier entwickelten Architektur gemeint Durch die bersetzung der Benutzeraktionen in Events und deren Abbildung auf die in den CommandHandlern gekapselten Abl ufe kann man jeden der beschriebenen Anwen dungsf lle l sen und noch viele andere mehr Der Autor wei aus eigener Erfahrung in einem kommerziellen Projekt wie teuer es werden kann wenn man sich beim Entwurf einer Software zu sehr auf be
118. he M glichkeiten Client und Ser ver miteinander kommunizieren zu lassen Eine M glichkeit besteht in der Realisierung als verteiltes System bei dem der Client mit dem Server ber irgendeine Art von Middelware kommuniziert Dies w rde aber bedeuten dass bei jedem Kunden der das System benutzen will ein solcher Client instal liert sein m sste Dies ist sicher f r einen Internet Shop nicht angemessen denn dieser soll von einem Maximum an Kunden mit dem geringstm glichen Einsatz an technischen Mitteln nutzbar sein Client seitig wird man also auf eine weit verbreitete Technologie setzen die f r praktisch jede Zielplattform verf gbar ist also einen Internet Browser Die Entscheidung f r den Einsatz dieser Technologie erzwingt aber auch dass man sich auf die Ver wendung des HTTP Protokolls einl sst Das hat wiederum Auswirkungen auf die Funktionsweise des Servers Bei einem System dass ber das HTTP Protokoll kommuniziert l uft die Kommunikation zwischen Client und Server in Request Response Zyklen ab Das System kann deshalb nicht zu jedem beliebi gen Zeitpunkt Bildschirmansichten pr sentieren sondern immer nur als Antwort auf Client Anfragen Der Client stellt eine Anfrage an den Server woraufhin der Server die Informationen die als Antwort darauf anzuzeigen sind an den Client zur ck sendet In aller Regel f hrt die Antwort des Servers zu einem unmittelbaren Neuaufbau der Bildschirmansicht im Browser Beispielsweise zeigt
119. hen werden hier drei T tigkeiten ausgef hrt e Es wird ein Informationsmodell erstellt e es wird ein GUI Prototyp erstellt e es werden Anwendungsf lle identifiziert und kategorisiert 14 2 2 Phasen und Elemente des ICONIX Prozesses Dynamic O I I I I 1 cn pra 1 Fo gt ID Y Z mag TO e D ak L A Gei yet l I I I I I I I GUI Prototype Use Case O ES X Model Wei AA IS gt Robustness Diagram EN Static EEE RE Fu ER ES Domain Model Abbildung 2 1 Die Phasen des ICONIX Prozesses aus RoSc99 S 1 Erstellen des Informationsmodells Das Informationsmodell wird als sehr grobk rniges Klas sendiagramm dargestellt Es beschreibt die Kernabstraktionen Klassen des Problembereichs und dient als Startpunkt f r die detaillierten Klassendiagramme die am Ende der Entwurfsphase stehen Gleichzeitig dient es als Glossar f r diese Kernabstraktionen das allen an der Anforderungsanalyse beteiligten Parteien als Referenz zur Begriffserkl rung zur Verf gung steht Das Informationsmodell ist die Ausgangsbasis f r die gesamte Entwicklung denn man modelliert die Anwendungsf lle im Kontext des Informationsmodells und man entwickelt es w hrend der Stabili t tsanalyse und der Interaktionsmodellierung zu detaillierten Klassendiagrammen weiter Zun chst benutzt man das Informationsmodell allerdings im Sinne einer ersten Ann herung an den Problembereich Dabei analysiert m
120. hlungsdaten bestimmen o 000000004 138 B 2 Paket BuchreZzensiony 2 5 2 2 eat ee a Wish of a gare ee Aa a s 139 B21 Buch bewerten gt 2 u ee ly end hb Bad ek ee 139 RE Buch rezensieren n a 2 war aces a anal ae ae kg 139 B 2 3 Rezension vorbereiten 139 B 2 4 Rezension berarbeiten e 139 B 3 Paket Systemanmeldung und Kontaktinformationen 140 B 3 1 gt Anmelden 20 2 2 A Be en en ann 140 B 3 2 Kontaktinformationen ansehen e 140 B 3 3 Neuen Account er ffnen 140 Bi4 Paket Buchkatalog y u s y s se lan a Res oe Gk aa 141 Inhaltsverzeichnis B 4 1 Buchkatalog ansehen 141 B 4 2 Buchkatalog durchsuchen o o rr r rs eee e s 141 B 4 3 Kurzinfo anzeigen u say ans en s a EL 142 B 4 4 Neuheiten und Empfehlungen ansehen o o 142 B 4 5 Produktinformationen ansehen 142 C Eidesstattliche Erkl rung 145 Teill Einleitung und Grundlagen 1 ber diese Arbeit Vorgeschichte Diese Arbeit basiert auf dem Buch von Doug Rosenberg und Kendall Scott Ap plying Use Case Driven Object Modeling With UML Dieses Buch wurde in der Fachpresse Dr Dobbs Journal als ein Werk gelobt das Entwurfsentscheidungen transparent macht und an dem man gut nachvollziehen kann wie ein Softwaresystem nach und nach zustande kommt Als solches soll das Buch in der Literatur keine Entsprechung finden Die Autoren selbst verstehen das Buch als ein Arb
121. ht unn tig durch Diskussionen ber Details aufhalten lassen Erstellen von GUI Prototypen Bevor man mit der Entwicklung des dynamischen Modells be ginnt muss sichergestellt sein dass hinreichende Informationen f r erste Anwendungsf lle oder Be nutzungsszenarios vorhanden sind Auch sollte eine einigerma en klare Idee bez glich der Benutzer schnittstelle vorhanden sein weil diese eine wichtige Hilfe f r die Diskussion mit dem Kunden ber das gew nschte Systemverhalten darstellt Daf r kann man sehr gut GUI Prototypen einsetzten Ein erster Schritt sollte also sein ohne gro en Aufwand einige Prototypen zu erstellen die notfalls auch gezeichnet werden k nnen Man ist jedoch nicht immer in der Situation ein v llig neues System ent wickeln zu wollen Oft wird ein altes System abgel st weil sich die technische Infrastruktur ge ndert hat oder weil neue zus tzliche Funktionen gew nscht sind Das bedeutet aber nicht unbedingt dass das alte System schlecht war In so einem Fall kann man auch so viele Informationen wie m glich ber das alte System in Erfahrung bringen und seine Analyse darauf aufbauen Anwendungsfallanalyse Anders als andere Prozesse wird im ICONIX Prozess gro er Wert dar auf gelegt keine Artefakte zu erzeugen die sp ter nicht mehr von Nutzen sind Insbesondere benutzen manche anderen Prozesse die Anwendungsfallanalyse als ein mehr oder weniger abstraktes Mittel um die Anforderungen an das System klar zu ziehen
122. htbar Mit dem Link weitere Rezensionen ansehen rechts unter der Rezension k nnen Sie falls verf gbar weitere Rezensionen anderer Kunden zu diesem Artikel einsehen Rezensionen schreiben Wenn Sie in der Detailansicht auf den Link Rezension schreiben klicken gelangen Sie auf die Seite Rezension Im oberen Teil des Hauptanzeigebereichs wird zur Erinnerung noch einmal der Titel des Buches angezeigt das Sie rezensieren wollen Im unteren 124 A 2 Katalog Katalog Produktdetails Use Case Driven Object Modeling with UML von Doug Rosenberg Kendall Scott Geben Sie bitte hier den Text der Rezension ein Rezension abschicken Abbildung A 6 Rezensionen verfassen 125 A Prototyp und Benutzerhandbuch Teil k nnen Sie den Text Ihrer Rezension eingeben Wenn Sie fertig sind klicken Sie einfach auf Rezension abschicken Bitte beachten Sie dass es nicht m glich ist ein Buch zu rezensieren oh ne es auch zu bewerten Daher ffnet das System nun die Seite Bewertung auf der Sie das Buch bewerten k nnen siehe unten Nachdem Sie die Bewertung durchgef hrt haben zeigt das System wieder die Detailansicht des Buches an das Sie rezensiert haben Dort wird unterhalb der Detailin formationen ber das Buch die Rezension angezeigt die Sie soeben verfasst haben Wenn Ihnen beim Lesen auff llt dass Sie noch etwas korrigieren m chten klicken Sie einfach auf den Link Zur ck zur Rezension
123. ichzeitig eine Gliederung vor bei der man die verschiedenen Ansichten des Prototypen nach den Aufgabengebieten gruppiert die man beim Entwickeln schon im Auge hatte Die wichtigsten Ansichten des Prototyps werden hier in Anhang A in Form eines Kurzhandbuchs erl utert 5 3 Identifizieren der Anwendungsfalle Vom Benutzerhandbuch aus zu einem vollst ndigen Katalog der Anwendungsf lle zu gelangen ist nicht weiter schwierig denn die Identifizierung der Anwendungsf lle ergibt sich direkt aus der Be schreibung der Benutzerschnittstelle Im Wesentlichen beschreibt dabei ein Abschnitt des Benutzer handbuchs einen Anwendungsfall Abweichungen entstehen lediglich durch die Zerlegung von An wendungsf llen und die naturgem eingeschr nkte Sicht des Benutzers auf das System Dies ist zum Beispiel der Fall bei der Rezension von B chern wo das Erstellen und das berarbeiten in verschiedenen Anwendungsf llen unterkommen obwohl sie im gleichen Abschnitt des Handbuchs beschrieben sind Man kann n mlich auf der gleichen Seite eine Rezension verfassen oder berarbei ten Der Unterschied liegt einfach nur im angezeigten Inhalt der Seite Der Anwendungsfall Artikel in den Warenkorb legen hingegen ist aus dem Abschnitt Detailansicht der Katalogbeschreibung extrahiert worden denn aus Benutzersicht besteht der Aufruf des Anwendungsfalls nur aus einem einzigen Klick Im Gro en und Ganzen jedoch entspricht eine Seite der Benutzerschnittstelle
124. ickt e von der Seite Produktdetails wenn der Kunde eine Rezension schreiben will e vom Hauptmen wenn der Kunde die Seite Historie aufruft Wenn der Kunde also z B die Schaltfl che Historie im Hauptmen klickt ohne angemeldet zu sein leitet das System ihn zur Anmeldung weiter Nach erfolgreicher Validierung der Benutzerdaten zeigt Shop betritt Sie ist au erdem vom Hilfsmen oberhalb des Hauptanzeigebereichs immer erreichbar Die anderen Seiten sind vom Hauptmen aus zug nglich 42 5 4 Beziehungen zwischen den Anwendungsf llen Zum Katalog Einkauf fortsetzen Gees Zur ck zum Katalog Details N Suche starten Neue Suche durchf hren In den Warenkorb legen Details Produktdetails Suchergebnis Ez 3 Zur ckzum Suchergebnis Zur ck zu Empfehlungen Details Rezension schreiben nicht angemeldet Buch bewerten Rezension schreiben angemeldet Ibn abschicken Bestellen nicht angemeldet Anmelden gew hlt Buch rezensieren gew hlt Anmelden Rezension abschicken J Bestellen angemeldet Bestellen gew hlt Bestellung abbrechen Bestellung best tigen Das System merkt sich den Event der Systemanmeldun y 9 J zu diesem Zustand f hrte und geht zum ll entsprechenden Folgezustand weiter Abbildung 5 4 Navigationskonzept 43 5 Anwendungsf lle das System dann die Seite Historie an Diese Seite geh rt zum An
125. ie Daten durch einen Klick auf Daten abschicken Das System pr ft daraufhin so weit wie m glich die Korrektheit der Adressdaten und f gt die Lieferadresse in die Liste der Lieferadressen des Kunden ein Dann kehrt es zur Seite Bestellen zur ck Falls der Kunde keine Adressdaten angegeben hat kehrt das System zur Seite Bestellen zur ck ohne Daten zu speichern Wenn der Kunde eine Lieferadresse ausw hlt und anschlie end auf Ausgew hlte Adresse ndern klickt ffnet das System die Seite Adressdaten Dort zeigt es die Daten des Adressobjekts das der Kunde ausgew hlt hat noch einmal im Editiermodus an Der Kunde ndert die betreffenden Daten und klickt auf Daten abschicken Das System pr ft daraufhin so weit wie m glich die Korrektheit der Adressdaten Dann aktualisiert es das Adress Objekt mit den ge nderten Daten und kehrt zur Seite Bestellen zur ck Wenn der Kunde eine Adresse markiert und auf die Schaltfl che Ausgew hlte Adresse l schen klickt l scht das System die ausgew hlte Lieferadresse im Kunden Objekt Dann zeigt es erneut die Seite Bestellen mit den aktuellen Lieferadressen an Wenn das System keine Rechnungsanschrift finden kann und der Kunde bereits mindestens dreimal erfolgreich per Kreditkarte bezahlt hat weist das System den Kunden auf der Seite Zahlungswei se darauf hin dass er auch per Rechnung bestellen darf und dass er daf r jetzt per Zahlungsdaten
126. ie Gesch ftslogik f r die Daten nderung ausf hrt n mlich die Neuberechnung der Preise siehe dazu auch Kapitel 8 Anschlie end liest er die Daten des Warenkorbs wieder aus und bertr gt sie in ein ViewDaten Objekt Dieses bergibt er dem ViewHelper der daraus und aus der nicht eingezeich neten Layout Beschreibungsdatei den Inhalt der Seite erzeugt und in einem View Objekt speichert Sobald der EJBController wieder die Kontrolle hat fragt er im CommandHandler nach dem erzeugten View Objekt das er dann dem FrontController zur ck gibt Der FrontController verpackt den im View Objekt enthaltenen Seiteninhalt in eine HTTP Response und bermittelt sie dem Client 84 8 Interaktionsmodellierung In dieser Phase des Entwurfsprozesses werden die Softwarefunktionen die in der Stabilit tsanalyse identifiziert werden auf die Klassen des Klassenmodells verteilt Das Mittel zur Darstellung sind dabei Sequenzdiagramme Als Grundlage f r die Interaktionsmodellierung dienen die Diagramme die bei der Stabilit tsanalyse entwickelt wurden Diese Diagramme werden erneut durchdacht und dabei versucht man ein genaues Bild der Abl ufe zu erlangen die dort dargestellt sind Dabei werden folgende T tigkeiten ausgef hrt e Man eruiert welche Boundary Entity und Control Objekte welches Verhalten haben m ssen e Man stellt dar wie die genauen Interaktionen aussehen die zwischen den Objekten auftreten die zu den verschiedenen Anwendungsf
127. ifiziert und beschrieben die das System implemen tieren soll e Das Team hat sorgf ltig ber wiederverwendbare Abstraktionen nachgedacht Klassen die in verschiedenen Szenarios vorkommen e Das Team hat den Problembereich beschrieben und die Abstraktionen die in diesem vorkom men Wiederverwendbarkeit ber dieses System hinaus e Das Team hat im Design alle funktionalen Anforderungen des Systems bedacht e Das Team hat sorgf ltig erwogen wie das geforderte Systemverhalten auf die Klassen verteilt wird Dabei sind die Prinzipien guten Softwaredesigns ber cksichtigt worden nach RoSc01 19 2 berblick ber den ICONIX Prozess 20 Teil Il Ein Anwendungsbeispiel 3 Aufgabenstellung In 1 werden die Anforderungen an eine Internet Buchhandlung beschrieben Diese Arbeit folgt die sem Beispiel und beschreibt den Weg auf dem man in Zusammenarbeit mit dem Kunden zu einem fertig modellierten System gelangen kann Als Startpunkt auf diesem Weg soll die folgende grobe textliche Beschreibung einer solchen Internet Buchhandlung dienen die hier die Funktion der Pro blembeschreibung des Kunden innehat Bei dem zu entwerfenden System handelt es sich um eine Internet Buchhandlung die f r bis zu 1 000 000 verschiedener Kunden ausgelegt sein soll Jeder Kunde soll einen Account besitzen den er ben tigt um bestimmte Aktionen wie etwa das Bestellen von B chern auszuf hren F r andere Aktionen ist kein Account notwen
128. igt eine hierarchische Ansicht der verf gbaren Buch Kategorien an durch die der Kunde navigieren kann Wenn eine Kategorie B cher enth lt zeigt das System auch eine Kurzinformation zu diesen B chern an Der Kunde hat dann die M glichkeit f r dieses Buch Produktdetails anzusehen es in den Warenkorb zu legen Rezensio nen anzusehen und zu schreiben und Informationen ber die Verf gbarkeit des Buches zu erhalten 5 1 2 Buch suchen Standardablauf Das System pr sentiert eine Ansicht zur B chersuche Der Kunde w hlt dort ein Suchkriterium aus etwa ISBN Autor Titelstichwort oder hnliches und gibt einen Suchbegriff ein Das System durchsucht dann den Katalog und zeigt die Kurzinformationen aller gefundenen B cher an 5 1 3 Warenkorb verwalten Standardablauf Der Kunde klickt auf Artikel in den Warenkorb legen Das System f gt dem Warenkorb das Buch hinzu berechnet den Gesamtpreis aller Positionen im Warenkorb neu und zeigt die aktuellen Informationen erneut an Sp ter hat der Kunde die M glichkeit Artikel wieder aus dem Warenkorb zu l schen oder die St ckzahl zu ndern 5 1 4 Buch bestellen Standardablauf Der Kunde entschlie t sich die B cher im Warenkorb zu bestellen Das System ffnet daraufhin die Seite f r die Buchbestellung Der Kunde gibt alle notwendigen Daten f r eine Buchbestellung ein wie Rechnungsanschrift Kreditkartendaten Lieferadressen Versandart und be st tigt die Bestellung Das System
129. ine geschickte Verwendung des Fassaden und Iteratormusters kann man diese Daten bermitteln ohne die Struktur und die Implementierung des Warenkorbs offen legen zu m ssen N heres dazu findet sich in Abschnitt 8 2 Vorgreifend kann aber schon verraten werden dass man mit einem Iterator arbeitet der relativ abstrakte Warenkorb Positionen zur ck liefert ber die man auf die wirklichen Positions und Buch Objekte zugreift Diese neue Klasse WkPosition bekommt get Methoden f r alle gew nschten Attribute von Position und Buch Das Anzeigen des Warenkorbinhalts funktioniert ber einen eigenen Controller n mlich den View Helper Er baut aus einer Beschreibung des Seitenlayouts und den Daten die er vom WarenkorbHand ler im ViewDaten Objekt bermittelt bekommt eine entsprechende Ansicht zusammen Der Waren korbHandler muss dazu allerdings das Attribut page mit der Methode setPage int int setzen damit der ViewHelper wei welche Seite anzuzeigen ist Das erste Argument beschreibt dabei die an zuzeigende Seite w hrend das zweite Argument einen optionalen Anzeigemodus bezeichnet Damit kann der ViewHelper erfahren ob zum Beispiel Fehlermeldungen in die Seite einzubauen sind oder Ahnliches St ckzahl aktualisieren und Preis neu berechnen Wenn der Kunde eine neue St ckzahl eingegeben hat muss das System diese St ckzahl in die passende Position des Warenkorbs berneh men Das System wei aber nicht welche
130. inen Informationsmodell abhebt wie zum Beispiel Hilfsklassen Der wichtige Gesichtspunkt dabei ist dass sich nach Rosenberg an dieser Stelle die Perspektive vom Problembereich zum L sungsbereich verschiebt siehe auch RoSc99 S 103 Tats chlich f hrt diese Vorgehensweise ohne dass man vorher ein Bild von der Gesamtarchitektur des Systems ent wickelt zu erheblichen Schwierigkeiten Mehr dazu fi ndet sich in den folgenden Abschnitten und in Kapitel 7 85 8 Interaktionsmodellierung 8 1 Warenkorb editieren Oben wurde bereits erw hnt dass die Wahl der Architektur bestimmt nach welcher Strategie die Control Objekte in Operationen von Klassen umgewandelt werden Unterstellt man hier die Archi tektur die in Abschnitt 7 4 vorgestellt wurde so spricht dies f r die Verwendung der Strategie use case controller Die gesamte auszuf hrende Logik eines Anwendungsfalls befindet sich n mlich bei dieser Architekturvariante in einem einzigen CommandHandler Objekt 8 1 1 Entwicklung des Detailentwurfs aus dem Stabilitatsdiagramm Abbildung 6 2 im vorigen Kapitel zeigt das vorl ufige Design des Anwendungsfalls Warenkorb edi tieren In diesem Diagramm befinden sich 7 Controller Im Standardablauf befinden sich die Controller 1 Warenkorb suchen 2 Positionen auslesen und Inhalt anzeigen 3 Preis neu berechnen 4 Anzeigen und 5 St ckzahl aktualisieren und in den Alternativabl ufen 1 Position l schen und
131. ist zun chst einmal redundant es erscheint aber durchaus sinnvoll dass die Abrechnung dem Kunden direkt zugeordnet wird 4 3 Vergleich mit dem Original Login Manager u Master Account Table we 2 1 F Billing Info Purchase Order Candidate Order d Search Results Catalog item a Er S ae Shipping Method a 4 Order Details Pa TR Editorial Review Customer Review PriceSchedule Abbildung 4 4 Informationsmodell von Rosenberg und Scott Assoziationen Aggregationen und Attribute Das in dieser Arbeit entwickelte Informations modell und das in RoSc01 vorgestellte sind in den wesentlichen Abstraktionen identisch Das ist auch nicht weiter verwunderlich da es wohl unstrittig ist dass man Klassen wie Kunde Buch und 4 33 Vergleich mit dem Original Bestellung ben tigt und dass sich daran entsprechende andere Klassen ankn pfen m ssen Der Unter schied liegt hier eher im Detail n mlich welche der ankn pfenden Klassen man ben tigt und wie die Assoziationen zwischen den Klassen aussehen Bei der Betrachtung des Informationsmodells von Rosenberg und Scott f llt zun chst einmal die ver gleichsweise gro e Menge an Aggregationen auf Zwar sind im ICONIX Prozess die Aggregationen von besonderer Bedeutung denn auf diese und auf die Generalisierungen wird besonders geachtet wenn man das Informationsmodell erstellt doch scheint hier ein wenig zu viel des Guten getan wor den zu s
132. iste der Buchkategorien nach Top Level Kategorien und erzeugt ein neues TmpKategorieListe Objekt Dies ordnet es der Session des Kunden zu Dann spei chert das System die Top Level Kategorien im TmpKategorieListe Objekt ab und zeigt sie auf der Seite Katalog als Auswahl an Der Kunde klickt nun im Buchkatalog auf eine Kategorie Das System erzeugt ein neues Auswahlzustand Objekt und speichert den derzeitigen Auswahlzustand gew hlte Kategorie und Pfad von der Wurzel zu dieser Kategorie darin ab Dann durchsucht es die Kategorieliste nach den zugeh rigen Subka tegorien Danach aktualisiert das System die tempor re Kategorieliste mit den neuen Subkategorien und zeigt diese in der Kategorieauswahl an Dies wiederholt sich bis keine weiteren Subkategorien mehr vorhanden sind so dass das System eine der untersten Kategorien anzeigt Dann durchsucht das System den Buchkatalog nach den B chern die in dieser Kategorie vorhanden sind Es erzeugt ein Suchergebnis Objekt das die Liste der B cher dieser Kategorie enth lt und ruft f r jedes gefundene Buch den Anwendungsfall Kurzinfo anzeigen auf Die Kurzinfos der B cher zeigt das System auf der Seite Katalog an Alternativabl ufe Wenn das System einen gespeicherten Auswahlzustand findet versetzt es die Seite Katalog in diesen Zustand zur ck Dazu liest es die Kategorie und den Pfad zur Kategorie aus findet die Subkategorien oder B cher der Kategorie und zeigt alles auf d
133. iteren Subkategorien verf gbar sind bleibt dieser Bereich wie in der Abbildung leer Am oberen Rand des Anzeigebe reichs k nnen Sie zu den Oberkategorien zur ckkehren die Sie vorher ausgew hlt hatten Wenn f r eine Kategorie keine B cher vorhanden sind etwa weil es sich um eine Oberkategorie handelt die noch weiter aufgegliedert werden kann erscheint im rechten Teil des Anzeigebereichs eine entsprechende Meldung Andernfalls sehen Sie dort die Kurzinfos zu den B chern in dieser 122 A 2 Katalog Accountinformationen Benutzerkennung Ll u Paswot tS Passwort wiederholen Passworthinweis optional 4 Neuen Account anlegen Abbildung A 3 Account anlegen Kategorie B cher gt Belletristik Die T uschung 1 otte Link e Taschenbuch 477 Seiten Goldmann M nchen Preis EUR 10 00 Verf gbarkeit W Details Abbildung A 4 Produkt bersicht 123 A Prototyp und Benutzerhandbuch Kategorie Wenn Sie auf den Link Details unter einer solchen Kurzinfo klicken gelangen Sie zur Detailansicht f r das entsprechende Buch Produktdetails Produktdetails 3 Use Case Driven Object Modeling with UML von Doug Rosenberg Kendall Scott In den Warekorb legen Rezension schreiben Buch bewerten Taschenbuch 224 Seiten Addison Wesley Ma e 20 x 25 cm rhea ie Erscheinungsdatum 12 Juli da rn Quan lugu 2001 gt ISBN 0201730391 L Dur
134. katalog ansehen ist die Klasse Ka tegorieliste die wichtigste Klasse Sie hat zwei Beziehungen zur Klasse Kategorie Bei der ersten Beziehung nimmt die Kategorie die Rolle der Wurzel ein Die Kardinalit t ist 1 1 Das liegt dar an dass es im ganzen System nur eine einzige Kategorieliste gibt man w rde sie gegebenenfalls als Singleton implementieren und nur eine einzige Kategorie die Wurzel sein Kann Unterhalb der Wurzel liegen die Top Level Kategorien die als erste im Buchkatalog angezeigt werden Bei diesen Kategorien ist zus tzlich zu der Tatsache dass sie Subkategorien der Wurzel sind noch das Attribut istIopLevel auf true gesetzt Dadurch bieten sich zwei alternative Wege zur Suche nach Top Level Kategorien Die zweite Beziehung zur Klasse Kategorie ist eine Komposition mit der Kardinalit t 1 n Die Kategorien existieren n mlich nur innerhalb der Kategorieliste Wird diese gel scht werden alle Ka tegorien ebenfalls gel scht 101 berarbeitetes Klassendiagramm kommuniziert mit lt lt entily gt ij Auswahlzustand Vector a 1 lt lt entity gt gt Kategorieliste SessionFassade A hizustand lt control gt gt 1 kommuniziert mit e GE S HS ets Gas KatalogFassade 7g er SC y to Y 1 gariad verior getSubKategorien TmpKategorieListe ge
135. kt hinaus noch von Bedeutung sind die also die strukturellen Beziehungen zwischen den Objekten ausmachen Hier einige Beispiele f r S tze die Aktionen beschreiben e Ein Kunde bezahlt ein Buch e Kunden durchst bern den Buchkatalog e Der Kunde verfolgt den Status der Bestellung 26 4 2 Auffinden des Informationsmodells Diese S tze enthalten keinerlei Informationen ber die statischen Beziehungen zwischen den betrof fenen Objekten Wenn ein Kunde z B den Buchkatalog durchst bert bleibt dies zun chst v llig ohne Folgen Weder der Buchkatalog noch der Kunde erf hrt dadurch eine Zustands nderung Das Gleiche gilt f r die Verfolgung des Bestellstatus Anders ist dies etwa beim Bestellen eines Buches Hier ist es auch nach der Bestellung noch wichtig zu wissen wer die Bestellung aufgegeben hat um hinterher die Rechnung richtig adressieren zu k nnen die Bestellung in die richtige Liste einzuordnen und so weiter Daraus folgt eine stammt von Beziehung zwischen Bestellung und Kunde 4 2 2 Identifizieren der Klassen Im vorliegenden Fall steht als Quelle zun chst lediglich die Anforderungsdefinition des Kunden zur Verf gung siehe Kapitel 3 Diese wird im Folgenden noch einmal stichpunktartig wiederholt Dabei werden die Substantive fett dargestellt und die Verben kursiv um die grammatikalische Analyse zu vereinfachen 1 Der Buchshop soll Bestellungen aus dem Internet entgegennehmen k nnen 2 Er soll bis zu 1 00
136. l st wird Auch sollte man beachten dass die Stabilit tsdiagramme Wegwerf diagramme sind Hat man erst einmal einen ersten Eindruck gewonnen wie das Design aussehen k nnte haben diese Diagramme ihren Dienst getan Sie werden im weiteren Verlauf des Entwurfs nicht weiter gewartet Rosenberg und Scott schreiben dazu in RoSc99 S 76 L Die Stabilit tsanalyse ist ein gutes Werkzeug das hilft Objekte zu finden Attribute zuzuweisen und Anwendungsfalltexte auf Richtigkeit und Vollst ndigkeit zu berpr fen Wenn aber diese Aufgabe einmal erf llt ist macht es keinen Sinn mehr das Produkt der Arbeit weiter zu warten Es ist ein Weg zum Ziel kein Ziel in sich Die folgenden Abschnitte in diesem Kapitel stellen die Stabilit tsanalyse exemplarisch anhand einiger Anwendungsf lle dar die der Kunde durchlaufen muss um ein Buch zu bestellen Die Stabilit tsana lyse gliedert sich in vier Schritte 63 6 Stabilitatsanalyse 1 Analyse des Anwendungsfalls auf Vollst ndigkeit und Durchf hrbarkeit 2 Darstellung des Stabilit tsdiagramms 3 berarbeiten des Anwendungsfalltextes 4 Diskussion der Auswirkungen auf das Klassenmodell neue Objekte und Attribute 6 1 Buchkatalog ansehen Analyse Navigation durch den Produktkatalog Dieser Anwendungsfall beschreibt wie ein Kunde im Buchkatalog navigieren kann siehe auch Abschnitt B 4 1 Dabei zeigt das System immer die pas senden Unterkategorien der jeweils gew hl
137. lden Das System validiert die Anmeldeinformationen gegen die in der Datenbank gespeicherten Benutzerdaten und stellt dabei sicher dass der betreffende Account nicht gesperrt ist Nach der erfolgreichen Validierung meldet es den Kunden an indem es das Account Objekt in den Zustand angemeldet versetzt Danach leitet das System den Kunden zur ck zur Startseite Alternativabl ufe Wenn der Kunde diesen Anwendungsfall nicht von der Startseite aus aufge rufen hat sondern das System ihn aufrief weil der Benutzer eine autorisierte Aktion durchf hren wollte ohne angemeldet zu sein leitet das System den Benutzer nach erfolgreicher Abwicklung des Anmeldeprozesses zu dem Anwendungsfall weiter den der Benutzer eigentlich aufgerufen hatte Wenn der Kunde auf der Anmeldeseite auf die Schaltfl che Neuen Account anlegen klickt startet das System den Anwendungsfall Neuen Account er ffnen Wenn der Kunde auf der Anmeldeseite auf die Schaltfl che Passworthinweis klickt zeigt das Sy stem den f r den Kunden gespeicherten Passworthinweis in einem separaten Dialogfenster an Wenn der Kunde in diesem Fenster auf OK klickt wird es wieder geschlossen und er befindet sich wieder auf der Anmeldeseite Wenn das System die Benutzerdaten nicht erfolgreich validieren kann der Kunde gibt eine falsche Benutzerkennung oder ein falsches Passwort an gibt das System eine Meldung aus die besagt dass die Kennung oder das Passwort fals
138. ldmann M nchen Preis EUR 10 00 e Verf gbarkeit MM Die T uschung Details Empfehlungen Applying Use Case Driven Object Modeling with UML von Doug Rosenberg Kendall Scott Amis tie ce Drives Onjecr Taschenbuch 224 Seiten Mone LANG wm UML Addison Wesley Preis EUR 43 66 Verf gbarkeit EU Details Abbildung A 1 Startseite Wenn Sie den Shop betreten sehen Sie als erstes diese Seite Hier k nnen Sie auf einen Blick unsere Angebote und Neuheiten sehen Falls Sie noch nicht wissen was Sie kaufen sollen k nnen Sie sich hier einige Anregungen holen Klicken Sie auf Details unter jeder Buchbeschreibung um in die Detailansicht des Katalogs zu wechseln und mehr ber diesen Artikel zu erfahren ber den Link Anmelden in der Titelzeile der Seite k nnen Sie sich am System anmelden Dadurch vermeiden Sie dass Sie sich sp ter zwischendurch anmelden m ssen wenn Sie eine Bestellung durchf hren oder ein Buch rezensieren wollen Systemanmeldung Wenn Sie auf den Link Anmelden geklickt haben ffnet das System den Ameldedialog Wenn Sie schon ein Kundenkonto Account besitzen so geben Sie hier einfach Ih 121 A Prototyp und Benutzerhandbuch Anmeldung Anmeldung Passworthinweis 1 Anmeldeinformationen Benutzerkennung C Passwort gt Anmelden Neuen Account anlegen Abbildung A 2 Systemanmeldung re Benutzerkennung u
139. lliertes Klassenmodell erh lt das als Schablone f r die Codierung ohne weiteres geeignet ist 4 2 Auffinden des Informationsmodells Wie kommt man nun zu einem Informationsmodell Die grundlegende Methodik findet sich in der Object Modeling Technique siehe dazu auch Rum94 Dabei handelt es sich im Prinzip um eine grammatikalische Analyse der zur Verf gung stehenden Texte Dies sind in erster Linie die grobe Problembeschreibung des Kunden und weitere detailliertere Anforderungsdefinitionen Dar ber hin aus kann auch weiterf hrende Fachliteratur und Expertenwissen zur Analyse herangezogen werden In diesen Quellen wird nun nach Substantiven und Verben gesucht Die aufgefundenen Substantive sind Kandidaten f r Objekte und Attribute Besitzanzeigende Satzteile deuten in diesem Kontext dar auf hin dass die betreffenden Substantive eher Attribute denn Objekte sind Verben hingegen sind Kandidaten f r Assoziationen und Operationen 4 2 1 Allgemeines zum Informationsmodell Attribute oder Objekte Beim Versuch im Informationsmodell Objekte zu finden stellt sich im mer wieder die Frage ob bestimmte Dinge im Problembereich als Objekte modelliert werden m s sen oder ob es sich um Attribute handelt die somit nicht dargestellt werden Grunds tzlich ist es m glich etwa mehrteilige Attribute als eigene Objekte mit eigenen Operationen zu modellieren zu mindest was die Zugriffsmethoden angeht und als Teil Ganzes Beziehung mi
140. llt es die betreffende Seite erneut dar wobei es darauf hinweist dass es Fehler bei der Dateneingabe gab Das System m sste auch noch die Ausf hrung der Bestellung in Auftrag geben Die internen Abl ufe des Shops bleiben in dieser Arbeit aber unber cksichtigt 49 5 Anwendungsf lle Es markiert die Felder auf der Seite die die fehlerhaften Daten enthalten und fordert den Kunden zur Neueingabe der Daten auf Wenn das System feststellt dass der Kunde keine Lieferadresse und Versandart ausgew hlt hat fordert es den Kunden auf eine entsprechende Auswahl zu treffen Wenn das System feststellt dass der Kunde keine Zahlungsweise ausgew hlt hat fordert es den Kun den auf eine Auswahl zu treffen Wenn der Kunde zu irgendeiner Zeit die Schaltfl che Bestellung abbrechen dr ckt verwirft das System das Objekt Bestellung und kehrt zum aufrufenden Anwendungsfall zur ck Zerlegung des Anwendungsfalls Kunde lt sineludes gt _ V Lieferdaten bestimmen lt lt pu x gt lt lt puapas gt Fehlerhafte Dateneingabe behandeln Abbildung 5 6 Buchbestellung Der dargelegte Anwendungsfall beschreibt den vollst ndigen Ablauf einer Bestellung mit den not wendigen Alternativabl ufen zum Anlegen von Adress und Zahlungsdaten Allerdings erstreckt er sich mit allen Alternativabl ufen etwa ber eineinhalb Seiten Ein so umfangreicher Anwendungsfall ist in den nachfolgenden Modellierungsschritten nicht
141. ls G Q vh o 92 03 05 ViewHel l l ieli i Standardablauf lewHelper KatalogHandler KatalogFassade Kategorieliste Session l Das System ffnet die Seite Tt Katalog Es stellt sicher dass onkatalogAnzeiyend void noch kein Auswahlzustand pruefeAuswahlgustand boolean gespeichert ist durchsucht die Ll em getAuswahlzustand Auswahlzustand Liste der Buchkategorien nach Top Level Kategorien und erzeugt ein neues LJ TmpKategorieliste Objekt getTopLevelKatpgorien Listiterator Dies ordnet es der Session p I des Kunden zu Dann speichert gefTopLevelkatehorieng TmpkategorieListe das System die gt Top Level Kategorien im TmpKategorieliste Objekt ab OF und zeiat sie auf der Seite TmpKategorieListe Katalog als Auswahl an O for alle Top Level Kgtegorien add kategorie boplean AA setTmpKategorigListe O4 void en Gg listiteratord java util Listlterator SeileKatalog anzeigen aI T Abbildung 8 3 Sequenzdiagramm Buchkatalog ansehen Teil 1 Standardablauf Der Anwendungsfall startet durch den Aufruf der Methode onKatalogAnzeigen des KatalogHandlers O1 Dieser fragt ber die Methode pruefeAuswahlzustand bei der Katalog Fassade O2 an ob bereits ein Auswahlzustand gespeichert ist Die Fassade versucht dann aus der Session O5 mit getAuswahlzustand den Auswahlzustand auszulesen Im Standardablauf ist kein Auswahlzustand vorh
142. ls wird das Gesamtmodell sehr umfangreich Die dargestellten Klassensymbole werden sehr gro und es sind viele Assoziationen vorhanden Um der besseren bersicht und Darstellbarkeit willen wird das Diagramm daher auf zwei kleinere Diagramme verteilt die in etwa den Anwendungsfallpaketen zugeordnet werden k nnen 9 1 Kategorieliste und Buchkatalog Abbildung 9 1 zeigt haupts chlich den Teil des statischen Modells der durch den Anwendungsfall Buchkatalog ansehen beeinflusst wird Dieser Teil enth lt nach wie vor die betreffenden Klassen des Informationsmodells Jetzt sind aber die Attribute und Operationen mit ihren Sichtbarkeiten in den Klassen enthalten Der Anwendungsfall rankt sich um die Navigation durch den Produktkatalog die ma geblich durch die Kategorieliste und deren Organisation bestimmt wird Die Kategorieliste war allerdings im Informationsmodell noch nicht enthalten Sie ist eine Klasse von der im Infor mationsmodell noch nicht klar war dass sie f r die Navigation im Buchkatalog wichtig sein w rde Andere neue Klassen die in der Stabilit tsanalyse entdeckt wurden sind die Entities Auswahlzu stand TmpKategorieListe und Session Au erdem geh ren sowohl die Boundary Klasse Sei teKatalog als auch die w hrend der Architekturfindung entdeckten Controller KatalogHandler KatalogFassade und ViewHelper zu den neuen Klassen Struktur der Kategorieliste F r den Anwendungsfall Buch
143. m Kunden direkt bezahlt wird Eine Rechnungsbestellung ist eine Bestellung die der Kunde per Reconune specie tune Rechnung bezahlen darf erat Wenn ein Kunde den Buchkatalog durchsucht sind die B cher die den Suchkriterien entsprechen im Suchergebnis enthalten Eine Rezension ist eine Beschreibung eines Buches durch einen ocacion Kunden Sie sollte den Inhalt des Buches beschreiben und eine Aussage ber dessen Qualit t und N tzlichkeit machen Im Prin zip ist aber jeder Kunde frei zu schreiben was er m chte Wenn ein Kunde nach B chern sucht kann er B cher im Waren Warenkorb korb platzieren die er zu kaufen gedenkt Wenn er sich sp ter wirklich entschlie t die B cher zu kaufen wird daraus eine Be stellung 32 Tabelle 4 2 Glossar der Klassen im Informationsmodell 4 2 Auffinden des Informationsmodells Kundenliste ica Rechnung Rechnungsbestellung Kreditkartenbestellung i e A ist bestimmt f r lt eege TERANA bezieht sich aut ist zugeordnet lt Gg stammt von geh rt zus V Bestellung Q Bestellliste Rezension T ist zugeordnet gt Abbildung 4 2 Informationsmodell Y Suchergebnis Q oder e das Sortieren von Kunden nach ihrer Kreditkartenfirma um Kreditkartenbestellungen im Batch Betrieb abzurechnen Da die Interna des Buchshops jedoch in diesem Modell au er Acht gel
144. m ohne Beziehungen zu zeichnen Dieses Klassendiagramm zeigt Abbildung 4 1 In einem weiteren Arbeitsschritt werden auch die Beziehungen eingetragen was dann zum kompletten Informationsmodell in Abbildung 4 2 f hrt 30 4 2 Auffinden des Informationsmodells Abrechnung Bestellung Kreditkartenabrechnung Kreditkartenbestellung Bestellliste Suchergebnis Rechnungsbestellung Abbildung 4 1 Erste Klassen 4 2 5 Erstellen eines Glossars Das Informationsmodell soll nicht nur der Startpunkt f r den Entwurf des Softwaresystems sein son der soll dar ber hinaus auch als Kommunikationsmittel zwischen dem Auftraggeber und dem Ent wicklerteam dienen Um diese Kommunikation zu erleichtern ist es hilfreich ein Glossar der Klassen anzufertigen Dieses beschreibt alle im Modell vorkommenden Abstraktionen eindeutig und in Text form so dass alle am Projekt beteiligten Parteien stets wissen was unter den jeweiligen Begriffen zu verstehen ist Das Glossar f r das Informationsmodell zeigt Tabelle 4 2 4 2 6 Anmerkungen zum Informationsmodell Nach dem Auffinden aller Objekte und Assoziationen ergibt sich das in Abbildung 4 2 dargestellte Informationsmodell Hier noch einige abschlie ende Anmerkungen dazu Varianten von Kunde Betrachtet man die Klasse Kunde genauer so erkennt man verschiedene bedeutsame Eigenschaften Damit eine Abrechnung erstellt werden kann und Bestellungen ausgelie fert werden k nnen muss der Kunde zum B
145. mehr gut handhabbar Daher muss an dieser Stelle ber eine sinnvolle Zerlegung nachgedacht werden Die geeignete Schnitt stelle f r eine Zerlegung sind hier die Orte an denen das System neue Seiten anzeigt n mlich das An legen von Lieferadressen und Zahlungsdaten Es werden also zwei neue Anwendungsf lle eingef hrt Lieferdaten bestimmen und Zahlungsdaten bestimmen Im Anwendungsfall Buchbestellung durchf hren sind diese beiden Anwendungsf lle als Alternati vabl ufe enthalten Sie werden z B aufgerufen wenn das System keine Lieferadressen finden kann oder der Benutzer die Zahlungsdaten ndern will F r sich gesehen sind beide Anwendungsf lle aber so umfangreich dass eine Abspaltung ohne weiteres zu rechtfertigen ist Da es sich urspr nglich um Alternativabl ufe handelte werden die neuen Anwendungsf lle nicht in jedem Fall aufgerufen Der anzuwendende Mechanismus ist also extend und zwar erweitern die neuen Anwendungsf lle den urspr nglichen siehe Abbildung 5 6 In beiden kommt au erdem die Pr fung von Adressdaten vor Auch diese k nnte man ausgliedern weil ja beide Anwendungsf lle Lieferdaten bestimmen und Zahlungsdaten bestimmen an die 50 5 6 Beschreibung der Anwendungsf lle ser Stelle ein gemeinsames Verhalten aufweisen Eine weitere Aufgliederung an dieser Stelle w rde jedoch das Modell weiter zerfasern und keinen wirklichen Vorteil bringen Man k nnte in einem An wendun
146. mit Servlets oder Java Server Pages JSPs zum Einsatz kommen Aus Gr nden die in Kapi tel 7 er rtert werden wird jedoch in Kapitel 8 die Strategie use case controller verwendet werden und nicht control in the screen Analyse des Anwendungsfalls Der erste Abschnitt des Anwendungsfalltextes erweckt den Eindruck als ob der Anwendungsfall ohne Boundary Objekte auskommen w rde Dann kann er aber mit dem Kunden nicht interagieren Es sollte also der Ausl ser mit in den Text aufgenommen werden um deutlich zu machen wie der Kontrollfluss zwischen den Anwendungsf llen verl uft Damit man eine Bestellung eindeutig identifizieren kann muss eine eindeutige Bestellnummer verge ben werden Der Anwendungsfall sollte dieses Detail nicht verschweigen Am Anfang des Anwendungsfalls berpr ft das System die Existenz des Warenkorbs F r den Fall dass kein Warenkorb existiert ist aber kein Alternativablauf vorhanden Dieser muss erg nzt werden Anders als in den Anwendungsf llen die den Warenkorb betreffen macht es keinen Sinn an dieser Stelle ein Warenkorb Objekt zu erzeugen Vielmehr kann die Bestellung ohne weiteres abgebrochen werden wenn kein Warenkorb existiert Am Ende des Anwendungsfalls wird die Kontrolle an den aufrufenden Anwendungsfall zur ckge geben Dies ist nicht ganz richtig Vielmehr soll der Kunde nach der Buchbestellung zum Katalog zur ck gelangen Auch hier muss der Text korrigiert werden Im folgenden
147. mm Inhalt des Warenkorbs auslesen 22222200 92 Sequenzdiagramm Buchkatalog ansehen Teill 95 117 Abbildungsverzeichnis 118 8 4 Sequenzdiagramm Buchkatalog ansehen Teil 2 22 nen 96 8 5 Sequenzdiagramm Buchkatalog ansehen Teil3 98 8 6 Sequenzdiagramm Warenkorb editieren von Rosenberg und Scott 99 9 1 Klassendiagramm Buchkatalog 2 2 2 Co nun ren 102 9 2 Klassendiagramm Warenkorb 2 222 2 Cannon 104 9 3 Vollst ndiges Klassenmodell von Rosenberg und Scott 106 A Startseite nn ansehe en saw Kerkeling ae oh a 121 AZ Systemanmeldung vc sob ve 2232 erer ET ee ae ke BA aS 122 A 3 Acco nt nlegen u u he e ee 123 AA Produkt bersicht oie Sen e nn ni 123 ALS Produktdetails 4 4 2 ml aa ak Er MIR Ble a le aes 124 Ap Rezensionen verfassen ea ew a Bananen 125 A 7 Buchbewertung abgeben 2 2 Comm n ee 126 A 8 B chersuche eo fn Ged Sua ek Sua O Made eds Pa 127 AH Suchergebnis E 2 wr sin PE eo ea 128 A JO Warenkeorbi 6 8 s EEN aE a Sau Be a a le 128 AT Lieferd ten gt usss Z Dos A e e 129 A 12 Zahlungsmodalit ten 130 A 13 Bestellung best tigen 2 nn ee 131 A 14 Historie der Bestellungen 132 Literaturverzeichnis RoSc01 RoSc99 TFWM BoRuJa99 HiKa99 Jac00 Rum94 Gam96 SiStJa Doug Rosenberg Kendall Scott A
148. n RoSc01 S 81 zum Thema Architektur wie folgt Stellung Der Begriff technische Architektur bezieht sich auf grundlegende Entscheidun gen bez glich der Technologien die man bei der Implementierung des Systems zu ver wenden beabsichtigt Diese Entscheidungen schlie en sowohl solche Dinge ein wie die Programmiersprache zum Beispiel Java oder Visual Basic als auch die Frage wie man die Komponenten der Software bauen und verteilen will Wird man eher Enterprise Java Beans EJB und Java Server Pages JSPs oder die Microsoft Technologien Distributed Component Object Model DCOM und Active Server Pages ASPs einsetzen Die Entscheidungen die man bez glich der technischen Architektur trifft m ssen sich zu einem gewissen Grad in den Stabilit tsdiagrammen widerspiegeln 70 6 3 Buch bestellen Wenn man zum Beispiel mit einer technischen Architektur arbeiten will die EJBs und JSPs einschlie t werden die Stabilit tsdiagramme eher in Richtung control in the screen tendieren als wenn man reine HTML Seiten erzeugen wollte Einen der modernsten Ans tze f r die Entwicklung von Internet Systemen definiert die Java 2 Enter prise Edition J2EE Zwar soll es nicht Ziel dieser Arbeit sein die Vor und Nachteile verschiedener Technologien gegeneinander abzuw gen doch kann als Arbeitshypothese davon ausgegangen wer den dass man das System in Java programmieren wird Dabei sollen Enterprise Java Beans EJBs gepaart
149. n Paket mit nur einem Anwendungsfall zu haben Der Paketname wird entsprechend erweitert 57 5 Anwendungsf lle 5 8 Vergleich mit dem Rosenberg Modell c Edit Contents of Shopping Cart S d Shipping Clerk 3 Log In S Cc gt gt a PEA FS arth by Author a Shipping Station 3 Sa e Pe Browse List of Books EN gt de A Track Recent Orders Ship Ord eg N Cancel Order EA Im Open Account Check Out e E N Kee N Process Received Shipment PA d Receiving Clerk Inventory Clerk FR Receiving Station Abbildung 5 12 Anwendungsfalle von Rosenberg und Scott Betrachtet man das Anwendungsfallmodell von Rosenberg und Scott so f llt zun chst auf dass die Anwendungsf lle auf einer imagin ren Benutzerschnittstelle basieren Aufgrund der besonderen Vor gehensweise des ICONIX Prozesses die auf der Benutzerschnittstelle aufbaut kann man das Modell schlicht nicht verstehen wenn man nicht wei wie die zugeh rige Benutzerschnittstelle aussieht Dies verschweigen die Autoren jedoch was den geneigten Leser zum Raten n tigt Weiterhin betonen die Autoren dass es bei der Anwendungsfallanalyse wichtig sei Gemeinsamkeiten im Verhalten von Anwendungsf llen aufzudecken und mit entsprechenden Mechanismen zu modellie ren Im Rosenberg Modell ist jedoch keine einzige Beziehung zwischen Anwendungsf llen enthalten Betrachtet man die Anwendungsf lle die den Kunden betreffen nur diese werden
150. n der Problembeschreibung Hier ist bereits das gew nschte Systemverhalten zumindest ansatzweise beschrieben Man kann dort also die wichtig sten Gesch ftsvorf lle extrahieren und daf r erste grobe Anwendungsf lle schreiben Diese benutzt man dazu die GUI Prototypen zu entwerfen mit denen man die Abl ufe die das System imple mentieren soll genauer analysieren und wie Rosenberg beschreibt mit den Fachleuten besprechen kann So findet man dann nach und nach alle Anwendungsf lle die das Systemverhalten vollst n dig beschreiben unter Ber cksichtigung der in der Problembeschreibung enthaltenen Anforderungen Das GUI Prototyping ist also Teil der Anwendungsfallanalyse Prototyping und das Niederlegen von Anwendungsf llen gehen Hand in Hand und erg nzen sich gegenseitig Durch ein paralleles und ite ratives Vorgehen an dieser Stelle gewinnt man nach und nach ein komplettes Bild vom gew nschten und erforderlichen Systemverhalten Der ICONIX Prozess legt Wert darauf dass die Anwendungsf lle nicht zu grob gestaltet sind Es ist vielmehr darauf zu achten dass sie klar und unzweideutig beschreiben wie der Benutzer und das 37 5 Anwendungsf lle System interagieren Au erdem soll ein Augenmerk auf ihre Wiederverwendbarkeit gelegt werden also die Fragestellung beleuchtet werden welche Anwendungsf lle von welchen anderen aufgerufen werden k nnen Dar ber hinaus gilt es zu beachten dass man eine Aufgabenteilung zwischen Pro totyp
151. n durch falsche Lieferungen und Betrug durch falsche Zahlungsdaten zu ersparen Im dem Zusammenhang muss festgelegt werden wie sich das Sy stem verh lt wenn es Fehler bei der Dateneingabe erkennt Dar ber hinaus ist es erkl rtes Ziel die Anwendungsf lle im Kontext des Informationsmodells zu beschreiben denn die Anwendungsf lle sollen als Eingabe f r das Detaildesign dienen Andererseits hat der sehr pers nliche Stil in dem das Benutzerhandbuch gehalten ist in einem Anwendungsfall keinen Platz Hier ist eine objektive Beschreibung der Abl ufe angebracht Der Text des folgenden Anwendungsfalls wird die aufgeworfenen Fragen kl ren und die L cken schlie en Buchbestellung durchf hren Standardablauf Das System stellt zun chst sicher dass der Kunde angemeldet ist und dass der Warenkorb f r diese Einkaufssitzung mindestens eine Position enth lt Dann erzeugt es ein Bestellungs Objekt und kopiert den Inhalt des Warenkorbs hinein Anschlie end ermittelt das System die Liefer adressen die f r diesen Account gespeichert sind und zeigt diese Adressen auf der Seite Bestellen an Au erdem ermittelt das System die zur Verf gung stehenden Lieferarten und stellt sie ebenfalls auf dieser Seite dar Der Kunde w hlt eine Adresse und eine Versandart aus und klickt anschlie end auf Adresse und Versandart verwenden Das System stellt nun sicher dass wirklich eine Adresse und Versandart aus gew hlt ist und versieht dann die B
152. n in Form von Anwendungsf llen und dem detaillierten Design in Form von Sequenzdiagrammen zu f l len Rosenberg und Scott zufolge ist es erfahrungsgem sehr schwierig diesen Schritt zu vollziehen wenn man die Stabilit tsanalyse nicht vornimmt Anwendungsf lle beschreiben n mlich eine anforde rungsorientierte Sicht der Dinge w hrend Sequenzdiagramme eine spezielle designorientierte Sicht schildern ICONIX versucht hier die L cke zwischen dem Was und dem Wie zu f llen Bei der Stabilit tsanalyse f hrt man ein nochmaliges Review der Anwendungsfalltexte durch und macht sich erstmalig Gedanken ber die Art wie man die Anwendungsf lle umsetzen k nnte Da bei versucht man Objekte zu entdecken die im Informationsmodell vergessen wurden und man f gt den Objekten Attribute hinzu w hrend man den Datenfluss analysiert Auch tr gt man in die Stabi lit tsdiagramme die Boundary Objekte des Systems z b die verschiedenen Bildschirme ein Deren Namen sollten zumeist auch schon in den Anwendungsf llen vorkommen Die neu gefundenen Ob jekte und Attribute tr gt man ins Klassendiagramm ein Au erdem verfeinert man die Texte der Anwendungsf lle Sie sollen sich stabilisieren und konkreti sieren bevor mit Hilfe der Sequenzdiagramme das Detaildesign gemacht wird Diese Phase schlie t mit dem Meilenstein Vorl ufiges Designreview ab 2 2 3 Design Die vorletzte Phase des Prozesses befasst sich mit dem Detailentwur
153. n nicht korrekt sind klicken Sie auf 130 A 6 Historie Zahlungsdaten ndern Sie gelangen dann zur Seite Zahlungsdaten anlegen wo Sie die betreffen den Korrekturen durchf hren k nnen Wenn Sie auf dieser Seite dann auf Daten ndern geklickt haben gelangen Sie zur ck zur Seite Zahlungsweise Nachdem Sie eine Zahlungsweise markiert haben klicken Sie auf Ausgew hlte Zahlungsweise verwenden um zur n chsten Seite zu gelangen Best tigung Bestellen Best tigung Bestellen 1 Bestellung best tigen 0000001 05 2002 Versenden an Hans Mustermann Musterstra e 23 12345 Musterstadt Deutschland Tel 0123 45678 Versandart Deutsche Post Express Zahlungsweise Kreditkarte Kartennummer 1234 1223 1234 5678 Karteninhaber Hans Mustermann g ltig bis 03 04 Bestellung 1 St Applying Use Case Driven Object Modeling with UML Doug Rosenberg Kendall Scott EUR 46 33 Verf gbarkeit im Zulauf Bestellung ausf hren Abbildung A 13 Bestellung best tigen Daten best tigen Als letzten Schritt m ssen Sie noch einmal alle Angaben auf ihre Richtigkeit berpr fen Falls Sie noch einen Fehler entdecken k nnen Sie mit den Back und Next Symbolen am oberen Rand des Hauptanzeigebereichs durch den gesamten Bestellprozess vor und zur ck navi gieren und die betreffenden nderungen durchf hren Sie k nnen den Bestellprozess auch an jeder Stelle ab
154. n und fordert den Kunden zur Neueingabe der Daten auf 136 BI Paket Buchbestellung B 1 6 Lieferdaten bestimmen Standardablauf Das System sucht im Kunden Objekt nach den Lieferadressen die f r diesen Kunden gespeichert sind und zeigt diese Adressen auf der Seite Bestellen an Au erdem ermittelt das System die zur Verf gung stehenden Versandarten und stellt sie ebenfalls auf dieser Seite dar Der Kunde w hlt eine Adresse und eine Versandart aus und klickt anschlie end auf Adresse und Versand art verwenden Das System stellt nun sicher dass wirklich eine Adresse und Versandart ausgew hlt ist und versieht dann die Bestellung mit der gew nschten Adresse und Versandart Anschlie end ber gibt es die Kontrolle wieder an den aufrufenden Anwendungsfall Alternativablaufe Wenn das System keine Lieferadressen finden kann oder der Kunde auf Neue Adresse anlegen klickt wechselt das System auf die Seite Adressdaten Der Kunde gibt dort eine g ltige Lieferadresse an und klickt auf Daten abschicken Das System stellt daraufhin die Vollst n digkeit und soweit m glich die Korrektheit der Adressdaten sicher und f gt die Angaben der Liste der Lieferadressen f r diesen Kunden hinzu Dann stellt es wieder die Seite Bestellen mit den aktua lisierten Informationen dar Falls der Kunde keine Daten eingegeben hat kehrt das System zur Seite Bestellen zur ck ohne Daten zu speichern Wenn der Kunde auf
155. nbank bernommen und Sie gelangen hier auf diese Seite zur ck Sie haben hier auch die M glichkeit ung ltig gewordene Adressdaten zu l schen indem Sie die Adresse markieren und auf Ausge w hlte Adresse l schen klicken Anschlie end m ssen Sie noch die Versandart festlegen W hlen Sie eine der Optionen aus und klicken Sie danach auf Adresse und Versandart verwenden um zur n chsten Seite zu gelangen Zahlungsmodalit ten festlegen Der zweite Schritt besteht im Angeben der Zahlungsmodalit ten Wenn Sie noch Neu kunde sind haben Sie zun chst nur die M glichkeit per Kreditkarte zu bezahlen Nach drei erfolgreichen Transaktionen k nnen Sie dann auch auf Rechnung bestellen W h len Sie also aus ob Sie per Rechnung oder per Kreditkarte bestellen wollen und pr fen Sie die Rechnungsanschrift bzw die Kreditkartendaten Falls bestimmte Angaben nicht korrekt sind klicken Sie auf Zahlungsdaten ndern Sie gelangen dann zur Seite Zah lungsdaten anlegen wo Sie die betreffenden Korrekturen durchf hren k nnen Wenn Sie auf dieser Seite dann auf Daten ndern geklickt haben gelangen Sie zur ck zur Sei te Zahlungsweise Nachdem Sie eine Zahlungsweise markiert haben klicken Sie auf Ausgew hlte Zahlungsweise verwenden um zur n chsten Seite zu gelangen Daten best tigen Als letzten Schritt m ssen Sie noch einmal alle Angaben auf ihre Richtigkeit berpr fen Falls Sie noch einen Fehle
156. nd Ihr Passwort ein und klicken Sie auf Anmelden Falls Sie Ihr Passwort vergessen haben und bei der Registrierung Ihres Accounts einen Passworthinweis angegeben haben k nnen Sie ber die Schaltfl che Passworthinweis den Hinweis abrufen Dann ffnet sich ein neues Fenster mit Ihrem Passworthinweis Neuen Account anlegen Wenn Sie noch keinen Account bei Azamon haben klicken Sie auf die Schaltfl che Neuen Account anlegen Es ffnet sich dann die Seite Account anlegen Abbildung A 3 W hlen Sie hier eine Benutzerkennung und ein Passwort aus das Sie sp ter zur Systemanmel dung verwenden wollen Damit Ihnen keine Schreibfehler unterlaufen m ssen Sie das Passwort zwei mal eingeben Anschlie end k nnen Sie wenn Sie wollen noch den bereits erw hnten Passwort hinweis angeben den das System Ihnen pr sentiert wenn Sie Ihr Passwort vergessen haben A 2 Katalog bersicht Abbildung A 4 zeigt die Produkt bersicht im Buchkatalog Der Katalog ist der Dreh und Angelpunkt des Shops Hier k nnen Sie nach Herzenslust unser B chersortiment durchst bern wobei die B cher nach Kategorien geordnet sind Im linken oder oberen Teil des Hauptanzeigebe reichs finden Sie die Kategorien f r die der Buchshop Artikel f hrt Wenn Sie auf der linken Seite eine Kategorie hier nicht zu sehen angeklickt haben f r die es Subkategorien gibt werden nach dem Klick auf die Kategorie die Subkategorien hier angezeigt Wenn keine we
157. nd reduziert es den Bestand im betreffenden Buch Objekt um 1 und ruft den Anwendungsfall Warenkorb editieren auf Alternativablaufe Wenn das Buch nicht mehr verf gbar ist also das Attribut Bestand des Buch Objekts den Wert 0 hat zeigt das System dem Benutzer eine entsprechende Hinweismeldung in einem eigenen Dialog an Der Kunde klickt auf OK und das System kehrt zur Seite Produktdetails zur ck Wenn f r dieses Buch bereits eine Position im Warenkorb existiert erh ht das System die St ckzahl der Position im Warenkorb um 1 Anschlie end reduziert es das Bestand Attribut des Buch Objekts um den Wert 1 B 1 2 Buch bestellen Standardablauf Das System stellt zun chst sicher dass der Kunde angemeldet ist und dass der Warenkorb f r diese Einkaufssitzung mindestens eine Position enth lt Dann erzeugt es ein neues Bestellungs Objekt f r diesen Kunden und kopiert den Inhalt des Warenkorbs hinein Anschlie end ruft das System nacheinander die Anwendungsf lle Lieferdaten bestimmen und Zahlungsdaten bestimmen auf Dann stellt das System sicher dass der Kunde in keinem der aufgerufenen Anwen dungsf lle die Bestellung abgebrochen hat Anschlie end zeigt das System die Seite Best tigung an Auf dieser Seite stellt es noch einmal alle Daten der Bestellung dar Der Kunde berpr ft die Richtigkeit der Daten und klickt auf Bestellung abschicken Das System f gt dann der Bestellliste die Bestellu
158. nden zugeordnet werden muss Au erdem vernachl ssigt der Anwendungsfall die Tatsache dass unter Umst nden kein Warenkorb vorhanden ist Der Alternativablauf f r den leeren oder nicht vorhandenen Warenkorb fehlt daher Auch ist nicht ber cksichtigt dass nach ndern des Warenkorbs der Preis neu berechnet und die Bildschirmansicht 75 6 Stabilitatsanalyse aktualisiert werden sollte Weiterhin fehlt ein Controller der die Werte die in der Bildschirmansicht gezeigt werden sollen aus den betroffenen Objekten auslie t Dies ist von gro er Bedeutung denn nur wenn man ber cksichtigt welche Entities die Daten enthalten mit denen man arbeiten muss kann man den vollst ndigen Satz von Objekten finden die man ben tigt um den Anwendungsfall durchzuf hren Im vorliegenden Fall ben tigt der Controller folgende Daten e den Gesamtpreis aller Positionen aus dem Warenkorb e die St ckzahlen und Gesamtpreise der einzelnen Positionen aus den Positions Objekten und e den Buchtitel und die Verf gbarkeitsinformationen aus den Buch Objekten Den Gesamtpreis der Artikel im Warenkorb muss man nicht unbedingt im Warenkorb Objekt spei chern Man kann ihn auch jedes Mal aus den Preisen der Positionen neu berechnen daher ist an dieser Stelle eine Kommunikation nicht zwingend Das Buch Objekt sollte aber im Diagramm nicht fehlen Dieses Beispiel zeigt dass Rosenberg die Stabilit tsanalyse in seinem Beispiel nicht genau genug durchf hrt Dabei
159. ndungsfall Kurzinfo anzeigen auf 141 B Anwendungsf lle vor der Stabilit tsanalyse Alternativabl ufe Wenn der Kunde keinen Suchbegriff eingibt ffnet das System einen Dialog miteinem Warnhinweis der den Benutzer zur Eingabe eines Suchbegriffs auffordert Der Kunde klickt in diesem Dialog auf OK und gelangt auf die Seite Suche zur ck Wenn das System kein Buch finden kann das den ausgew hlten Kriterien gen gt zeigt es auf der Seite Suchergebnis eine entsprechende Meldung an Wenn der Kunde auf der Seite Suchergebnis auf Neue Suche durchf hren klickt f hrt es diesen Anwendungsfall erneut aus B 4 3 Kurzinfo anzeigen Standardablauf Das System liest aus allen bergebenen Buch Objekten die wichtigsten Infor mationen ber das Buch sowie dessen Verf gbarkeit aus und zeigt sie zusammen mit einem Bild des Buches an Au erdem erzeugt das System f r jedes Buch ein Navigationselement Details mit dem der Kunde den Anwendungsfall Produktinformationen ansehen aufrufen kann Anschlie end bergibt das System die Kontrolle wieder an den aufrufenden Anwendungsfall Alternativablaufe Wenn der Kunde auf Details klickt bergibt das System die Kontrolle an den Anwendungsfall Produktinformationen ansehen B 4 4 Neuheiten und Empfehlungen ansehen Standardablauf Wenn der Kunde den Shop betritt zeigt das System die Startseite an Es sucht nun aus der Liste der Neuheiten
160. ng uauplonz pun uafina Za MoyUMeE AA Uayans QOYULMA QUOqUale AA ayas apuna D U pUEYIOA GUONUBIEAA Way G x ui UPS uay BZ IESO EYU uoIssag ual l 1s q yang uayasue Bojejeyyang Stabilit tsdiagramm Warenkorb editieren Abbildung 6 2 69 6 Stabilitatsanalyse e Die Klasse Position muss au er der St ckzahl noch eine Referenz auf das Buch enthalten das durch diese Position beschrieben wird sowie den Gesamtpreis der Position Damit man den Preis der Position berhaupt ermitteln kann ben tigt auch das Buch ein Attribut Preis Der Warenkorb bekommt dieses Attribut ebenfalls denn er kann als einziges Objekt den Gesamt preis der Bestellung kennen 6 3 Buch bestellen berlegungen zur Architektur Dieser Anwendungsfall beschreibt den Kernprozess des Buchshops die Buchbestellung In Abschnitt 5 6 1 wurde bereits dargelegt wie und warum der urspr ngliche Anwendungsfall Buchbestellung durch f hren zerlegt wird Naturgem spiegelt sich diese Zerlegung auch im Stabilit tsdiagramm in Ab bildung 6 3 wieder Da sich der Bestellprozess ber drei Bildschirmseiten erstreckt wurde der An wendungsfall Buchbestellung durchf hren in drei Anwendungsf lle zerlegt Der hier diskutierte Anwendungsfall Buch bestellen kontrolliert dabei die beiden anderen n mlich Lieferdaten be stimmen und Zahlungsdaten bestimmen Diese Anwendungsf lle werden vom hier dargestellten Anwendu
161. ng hinzu und bergibt die Kontrolle an den Anwendungsfall der vorher die Kontrolle hatte Alternativabl ufe Wenn der Kunde nicht am System angemeldet ist ruft das System zun chst den Anwendungsfall Anmelden auf 135 B Anwendungsf lle vor der Stabilit tsanalyse Wenn der Warenkorb f r diese Einkaufssitzung keine Positionen enth lt zeigt das System eine ent sprechende Meldung an bricht diesen Anwendungsfall ab und bergibt die Kontrolle an den Anwen dungsfall Buchkatalog ansehen Wenn der Kunde die Bestellung abbricht verwirft das System das Bestellungs Objekt und kehrt zum aufrufenden Anwendungsfall zur ck B 1 3 Bestellung ansehen Standardablauf Der Kunde klickt im Hauptmen auf Historie Das System stellt daraufhin si cher dass der Kunde angemeldet ist Dann ffnet es die Seite Historie Der Kunde w hlt nun ein Filterkriterium aus nach dem das System die Bestellungen dieses Kunden filtern soll Anschlie end klickt er auf Anzeigen Das System durchsucht nun die Bestellliste und zeigt alle dort gespeicherten Bestellungen des Kunden an die dem Filterkriterium entsprechen wobei es diese nach offenen und gelieferten Bestellungen gruppiert und absteigend chronologisch sortiert F r alle offenen Bestellun gen erzeugt das System eine M glichkeit zur Markierung Alternativabl ufe Wenn der Kunde nicht am System angemeldet ist ruft das System zun chst den Anwendungsfall Anmelden a
162. ngeben der Adressda ten und zum Ausw hlen der Versandart und der Zahlungsweise Eine Beschreibung der wichtigsten Bildschirmansichten finden sich im Benutzerhandbuch in Anhang A Neue Adresse anlegen Ausgew hlte Adresse ndern Daten abschicken Adressdaten Bestellen Adresse und Versandart Next verwenden Zahlungsdaten ndern Daten abschicken Zahlungsdaten anlegen weise Ausgew hlte Zahlungsweise Next verwenden Bestellung ausf hren Abbildung 5 2 Navigation durch den Bestellprozess Diese Art der Darstellung stammt von Meilir Page Jones und wird in dem Buch Practical OO with UML beschrieben 40 5 3 Identifi zieren der Anwendungsf lle Ein Beispiel f r den Aufruf eines Anwendungsfalls ohne Navigation ist das Platzieren eines Buches im Warenkorb das auf der Seite Produktdetails vorgenommen werden kann Das Klicken auf den Link In den Warenkorb legen ffnet dabei keine neue Seite sondern f gt lediglich dem Warenkorb den aktuellen Artikel hinzu Bei diesem Anwendungsfall muss der Benutzer keine weiteren Eingaben vornehmen sondern er l uft automatisch im Hintergrund ab 5 2 2 Benutzerhandbuch Der n chste Schritt zum Anwendungsfallkatalog ist das Verfassen des Benutzerhandbuchs Dazu wer den die Ansichten und Abl ufe die man im Prototypen niedergelegt hat ganz einfach aus der Sicht des Benutzers dokumentiert Bei dieser Aktivit t nimmt man gle
163. ngsfall aus aufgerufen Problematisch ist dabei dass der Kunde auch in den beiden aufge rufenen Anwendungsf llen die Bestellung abbrechen kann Es muss also ein Controller eingetragen werden der den Abbruch pr ft Interessant ist nun zu er rtern wie die Kommunikation zwischen den Anwendungsf llen zustande kommen kann und wie der Kontrollfluss der Anwendung abl uft Rosenberg und Scott erw hnen in RoSc99 zwei Entwurfsstrategien zur Implementierung des Kon trollflusses Dabei handelt es sich um die Strategien Control in the Screen und Use Case Con troller Bei der ersten Entwurfsstrategie werden verschiedene Aspekte der Kontrolllogik auf die Boundary Objekte verteilt Bei der zweiten Strategie hingegen befindet sich der gr te Teil der Logik in einem Kontrollobjekt Tats chlich handelt es sich bei dieser Entscheidung um eine Architekturentscheidung die das Design des Systems grundlegend bestimmt Um eine solche Entscheidung qualifiziert treffen zu k nnen sind aber verschiedene Faktoren zu ber cksichtigen Dazu geh ren nicht funktionale Anforderungen wie die Infrastruktur mit der das zu implementierende System arbeiten soll die Frage ob ein Framework eingesetzt wird und die Programmiersprache die man verwenden will Weiterhin spielen berlegun gen zu Qualit tskriterien wie etwa der Performanz und der Wartbarkeit des Systems eine Rolle In Kapitel 7 werden diese Fragestellungen n her er rtert Die Autoren nehmen i
164. ngsfalltexte befindet sich in Anhang B Diese Aktivit t wird eigentlich im Rahmen des Anforderungsreviews durchgef hrt Im Rahmen dieser Arbeit machen Reviews allerdings wenig Sinn so dass wir es bei diesem Arbeitsschritt bewenden lassen 46 5 6 Beschreibung der Anwendungsf lle 5 6 1 Buchbestellung Hier zun chst der Text des Benutzerhandbuchs aus dem Anhang A S Bestellen Das Bestellen von B chern kann entweder vom Hauptmen aus oder von der Seite Wa renkorb aus erfolgen Klicken Sie auf den Link oder die Schaltfl che Bestellen und die Bestellung kann beginnen Voraussetzung um eine Bestellung auszuf hren ist aller dings dass der Warenkorb berhaupt B cher enth lt Der Bestellvorgang erfolgt in drei Schritten Lieferdaten angeben Im oberen Teil des Hauptanzeigebereichs finden Sie eine Liste der Adressen die Sie als m gliche Lieferadressen angegeben haben W hlen Sie hier eine Adresse aus indem Sie den entsprechenden Radiobutton markieren Falls Sie noch keine Lieferadresse hinter legt haben klicken Sie auf Neue Adresse anlegen um die Daten f r eine neue Adresse einzugeben Sie k nnen auch falsch eingegebene Adressdaten korrigieren wenn Sie die Adresse markieren und auf Ausgew hlte Adresse ndern klicken In beiden F llen ff net sich dann die Seite Adressdaten ndern Machen Sie dort ihre Eingaben und klicken Sie auf Daten abschicken Die Daten werden dann in die Date
165. niuez uays eg Dn u uawwysaq u lepiaJ r1 Wad aid 0441 aul y qu oyuaJe AA PUN uayn d QUOAU EAA UBUONISOd Jap YeZUY uaujns qoyuaie uaissag UONUSIEM tut UBUONISOS Sue UBPUEYIOA POHUBIEA uiay uayasue Boyeyexyong uayaso ur SEN aa CHE Bun6nelsa8 alas Bunjejsog 109 QUO NUDE M 180 QONUSIEM uiay uahlazuy uapjawuy siamuyuena Hoel Y uayn d Bunpjawuy quoyussenA ayas apuny apuny Buch bestellen jagramm Stabilit tsdi Abbildung 6 3 72 6 4 Lieferdaten bestimmen Alternativabl ufe Wenn der Kunde nicht am System angemeldet ist ruft das System zun chst den Anwendungsfall Anmelden auf Wenn der Warenkorb f r diese Einkaufssitzung nicht existiert oder keine Positionen enth lt zeigt das System eine entsprechende Meldung an bricht diesen Anwendungsfall ab und bergibt die Kontrolle an den Anwendungsfall Buchkatalog ansehen Wenn der Kunde die Bestellung abbricht verwirft das System das Bestellungs Objekt und bergibt die Kontrolle an den Anwendungsfall Buchkatalog ansehen Auswirkungen auf das Klassenmodell Die Auswirkungen dieser Stabilit tsanalyse auf das Klassenmodell sind sehr moderat da der Anwen dungsfall haupts chlich die Best tigung der Bestellung enth lt Die Erfassung der Bestelldaten wird in den beiden aufgerufenen Anwendungsf llen durchgef hrt e Da der Inhalt des Warenkorbs komplett in das Bestellungs Objekt bernommen wird
166. nn aber mehrere Sessions parallel benutzen Auswahlzustand Wenn der Kunde eine Kategorie ausgew hlt hat speichert die KatalogFassade den Auswahlzustand in der Session ab Dazu ben tigt die Session Klasse eine Aggregationsbeziehung zum Auswahlzustand Die Kardinalit t der Beziehung ist 1 1 denn eine Session speichert genau einen Auswahlzustand beide sind dem gleichen Kunden zugeordnet und wenn der Kunde die Auswahl n dert ndert auch das Objekt seinen Zustand und ein Objekt vom Typ Auswahlzustand kann immer nur in einer Session gleichzeitig vorkommen Die KatalogFassade kommuniziert mit dem Auswahl zustand indem sie ihn instantiiert oder die Kategorie oder den Pfad ausliest Der Auswahlzustand besteht aus einer Liste von Referenzen auf Kategorien die den Pfad von der Wurzelkategorie zur ausgew hlten Kategorie bezeichnen und aus einer Referenz auf die aktuell gew hlte Kategorie Buchkatalog Das Suchen von B chern nach Kategorien funktioniert hnlich wie bei der Suche von Kategorien Die Hilfsklasse ist hier das Suchergebnis die vom Buchkatalog instantiiert und be nutzt wird Die Fassade erh lt hier ber den Iterator auf die B cher den das Suchergebnis zur ck gibt Zugriff auf die Objekte der Buch Klasse 9 2 Warenkorb Struktur des Warenkorbs Dieser Teil des statischen Modells bezieht sich im Wesentlichen auf die Aspekte die durch den Anwendungsfall Warenkorb editieren beeinflusst werden Die Kernab straktion f
167. nt man sich stereotypierter Klassendiagramme die Stabilit tsdiagramme genannt werden Diese Diagramme folgen dem Paradigma dass Pr sentation und Logik einer Anwendung stets zu trennen sind Die Grundlage dieser Stereotypen bildet das in Gam96 kurz erl uterte und sehr weit verbreitete MVC Architekturmuster Die MVC Architektur Eine umfassendere Erl uterung zum MVC Muster die auch Web Applikationen mit ber cksichtigt findet sich in SiStJa S 348ff Die Model View Controller Architektur ist ein weit verbreiteter architektonischer An satz f r interaktive Applikationen Er verteilt Funktionalit t zwischen den Objekten die mit der Pr sentation und Verarbeitung von Daten zu tun haben um den Grad der Kopp lung zwischen den Objekten zu minimieren Die Architektur bersetzt die klassischen Aufgaben Eingabe Verarbeitung und Output auf das Modell grafischer Interaktion mit dem Benutzer Au erdem f gt sie sich gut in den Bereich von internetbasierten Multi Tier Enterprise Applikationen ein Die MVC Architektur unterteilt Applikationen in die drei Schichten Model View und Controller und entkoppelt deren jeweilige Verantwortlichkeiten Jede Schicht handhabt bestimmte Aufgaben und hat bestimmte Verantwortlichkeiten bez glich der anderen Be reiche Ein Model repr sentiert die Gesch ftsdaten und die Gesch ftslogik oder Operationen die Zugriff und Ver nderung der Gesch ftsdaten bestimmen Oft dient das Model als softwarem i
168. odell ist ein Klassendiagramm kein Objektdiagramm Bevor man jedoch Klassen abstrahieren kann m ssen zun chst die Objekte gefunden werden aus denen sich diese Klassen herleiten Nach der OMT ist alles das ein Objekt was f r die betreffende Anwendung einen Sinn ergibt Rum94 27 4 Informationsmodell schwammige Begriffe Attribute Synonyme Irrelevantes und Implementierungsdetails bzw techni sche Begriffe brig bleiben die geeigneten Klassen mit denen man das statische Modell darstellen kann Die mit dieser Methode gefundenen Klassen sind in Tabelle 4 1 dargestellt 4 2 3 Identifizieren der Beziehungen Um von diesem Klassendiagramm zum Informationsmodell zu gelangen fehlen aber noch die Asso ziationen Auch diese lassen sich durch die grammatikalische Analyse der zugrunde liegenden Texte finden Dabei ist allerdings zu beachten dass das Informationsmodell nur die statischen Zusammen h nge zwischen den Objekten des Problembereichs darstellt siehe auch Abschnitt 4 2 1 Die obige Problembeschreibung des Kunden bietet hier nicht gen gend Informationen um daraus die Beziehungen zwischen den Objekten herleiten zu k nnen da sie berwiegend Aktionen beschreibt die im Informationsmodell ja eben nicht zum Tragen kommen Es ist daher n tig diejenigen Sachver halte zu erg nzen die implizit in den Angaben enthalten sind oder die so selbstverst ndlich sind dass sie gar nicht genannt werden Die Beziehungen die bereits in
169. odell vorkommenden Listen ohne dass deren innere Struktur nach au en hin offen gelegt werden muss Fassade In Gam96 wird die Fassade als ein Muster beschrieben das verwendet werden kann um einem komplexen Subsystem eine einfachere Schnittstelle zu geben Anfragen von Klienten an das Subsy stem finden blicherweise ber die besagte Fassadenklasse statt die von der internen Verteilung der Verantwortlichkeiten ber die Klassen innerhalb des Subsystems Kenntnis hat Diese Fassadenklas se reicht dann die Anfragen des Klienten an die richtigen Klassen weiter und gibt dem Klienten die Ergebnisse zur ck Auf diese Weise muss ein Klient normalerweise die Klassen die sich hinter der Fassade befinden nicht kennen was die Kopplung zwischen den Objekten stark reduziert Dieses Muster findet auch bei der WarenkorbFassade Anwendung Dabei dient die WarenkorbFassade dem WarenkorbHandler als zentraler Zugriffspunkt auf den Warenkorb seine aggregierten Positio nen und deren aggregierte B cher Der CommandHandler wei nichts von der Implementierung der Warenkorb Struktur und davon wie die Objekte zusammenarbeiten Er kennt nur folgende Vereinba rung Ein Warenkorb besteht aus einer Reihe logischer Einheiten die eine feste Reihenfolge haben und die Attribute wie Autor Titel Einzel und St ckpreis etc haben Der Warenkorb liefert einen Iterator zur ck mit dem man durch diese Einheiten iterieren kann Abbildung 8 2 stellt das Auslesen des
170. piele dieser Autoren entstammen TFWM Es handelt sich dabei um eine elektro nische Form als Rational Rose Modell der Beispiele aus RoSc01 die auf der Website der Firma 10 ICONIX zum Download erh ltlich ist Die Verwendung dieser elektronischen Vorlage anstelle von eingescannten Grafiken aus dem Buch erh ht die optische Qualit t der Darstellung Das Layout kann aber geringf gig von dem der Beispiele im Buch abweichen Inhaltliche Unterschiede sind jedoch au er in Kapitel 9 nicht vorhanden Dort wurde zur besseren Vergleichbarkeit beider Modelle der Teil des Rosenberg Modells entfernt der sich mit den Shop Interna befasst Darauf wird aber an der entsprechenden Stelle noch einmal verwiesen 11 1 ber diese Arbeit 12 2 berblick ber den ICONIX Prozess 2 1 Grundgedanken Der ICONIX Prozess positioniert sich irgendwo zwischen dem sehr umfangreichen Rational Uni fied Process RUP und dem sehr schlanken Extreme Programming XP hnlich wie bei XP wird auf einen schlanken Ansatz Wert gelegt bei dem der Benutzer des Prozesses sich vorwiegend auf seine eigentlichen Aufgaben konzentrieren kann anstatt seine Energien in die Erzeugung von Arte fakten zu investieren deren Nutzen fragw rdig erscheinen mag Jedoch wird anders als bei XP Wert auf ein gutes Design gelegt bevor man in die Implementierungsphase einsteigt Auch erzwingt der ICONIX Prozess keine Reihenfolge der Abarbeitung Vielmehr wird Wert auf Flexibilit
171. pplying Use Case Driven Object Modeling with UML Addison Wesley Boston San Francisco New York u a Juni 2001 Doug Rosenberg Kendall Scott Use Case Driven Object Modeling With UML Addison Wesley Boston San Francisco New York u a 6 Auflage August 2001 The Full Workbook Model http www iconixsw com WorkbookExample zip Grady Booch Jim Rumbaugh Ivar Jacobson Das UML Benutzerhandbuch Addison Wesley Bonn Reading Massachusetts Menlo Park California u a 1 Auflage 1999 Martin Hitz Gerti Kappel UML Work dpunkt verlag Heidelberg 1 Auflage 1999 Ivar Jacobson The Road to the Unified Software Development Process Cambridge University Press Cambridge New York Melbourne Madrid 1 Auflage 2000 J Rumbaugh M Blaha W Premerlani F Eddy W Lorensen Objektorientiertes Modellieren und Entwerfen Hanser Verlag M nchen November 1994 E Gamma R Helm R Johnson J Vlissides Entwurfsmuster Elemente wiederverwendbarer objektorientierter Software Addison Wesley M nchen Boston San Francisco u a I Singh B Stearns M Johnson and the Enterprise Team Designing Enterprise Applications with the J2EE Platform Second Edition Addison Wesley Boston San Francisco New York u a 1 Auflage M rz 2002 119 Literaturverzeichnis 120 A Prototyp und Benutzerhandbuch A 1 Startseite Azamon Neuheiten Die T uschung von Charlotte Link Taschenbuch 477 Seiten Go
172. pr sentiert noch einmal eine bersicht der Daten die auch den Inhalt des Warenkorbs enth lt Der Kunde best tigt die Bestellung und das System speichert sie ab 5 1 5 Bestellung verfolgen Standardablauf Das System bietet auf dieser Seite eine Filterm glichkeit nach offenen und bereits gelieferten Bestellungen ber verschiedene Zeitr ume Der Kunde w hlt ein Filterkriterium aus und das System zeigt alle entsprechenden Bestellungen des Kunden an Der Kunde kann auf dieser Seite auch Bestellungen stornieren die noch offen sind 5 2 GUI Prototyp und Benutzerhandbuch 5 2 1 Prototyp Nachdem man sich nun im Groben ber das erforderliche Systemverhalten im Klaren ist gilt es dies in einem Prototypen zu verifizieren und zu verfeinern Dabei wird man sich automatisch ber die notwendigen Abl ufe klar werden In mehreren Iterationen wird man versuchen die Schnittstelle so zu gestalten dass sie dem Benutzer optimal bei der Ausf hrung seiner Aufgaben hilft 39 5 Anwendungsf lle Startpunkt zur Entwicklung des Prototypen ist das Hauptmen Zun chst werden den genannten f nf Anwendungsf llen dort eigene Positionen zugewiesen Das Hauptmen sollte au erdem noch durch zwei weitere Positionen erg nzt werden die obwohl in der Problembeschreibung nicht erw hnt bei einer Internetpr senz nicht fehlen d rfen Die Startseite und die Seite mit den Kontaktinformationen Erstere ist hier nicht im Hauptmen enthalten sondern in dem
173. r die Bestellliste und den Account herausgefunden werden kann welcher Kunde sie ausgef hrt hat wird hier der Ansatz verfolgt die Bestellung und den Warenkorb dem Kunden direkt zuzuordnen Einem Kunden sind also eine Bestellliste und ein Warenkorb zugeordnet aber auch die Bestellung selbst verf gt ber das Wissen wer der Auftraggeber ist Es scheint nur nat rlich dass eine Bestellung zu einem bestimmten Kunden geh ren muss Abrechnungen Als letzter Punkt ist noch ein f r den Shopbetreiber sehr bedauerlicher Sachver halt zu nennen Das Originalmodell enth lt keine Klasse Abrechnung W hrend zwar prinzipiell die M glichkeit gegeben ist ber Billing Info eine Rechnung zu erstellen ist doch kein Abrechnungs objekt vorgesehen so dass es schwer fallen d rfte das Geld vom Kunden einzuziehen 36 5 Anwendungsf lle Im ICONIX Prozess dienen die Anwendungsf lle nicht nur als Werkzeug zur Anforderungsanalyse sondern sie dienen auch dazu den Entwicklungsprozess voran zu treiben Als Vorstufe zur Archi tekturfindung ist es das Ziel alles zu beschreiben was ein Benutzer mit dem System tun kann Die Anwendungsf lle beschreiben somit die volle Systemfunktionalit t aus Sicht des Benutzers und zwar im Kontext des Informationsmodells Es gilt das Systemverhalten so zu beschreiben dass man m g lichst nahtlos in die Architekturfindung eintreten kann Die elementare Frage ist nun wie man die Anwendungsf lle eigentlich findet
174. r diesen Anwendungsfall ist nat rlich der Warenkorb Er besteht aus Positionen wobei die Klasse Position durch Aggregation mit dem Warenkorb in Beziehung steht Man w rde vielleicht an dieser Stelle eine Komposition erwarten da die Positionen ein fester Bestandteil des Warenkorbs sind Wenn der Warenkorb dann zerst rt w rde w rden auch die Positionen verworfen Dies ist aber nicht unbedingt gew nscht denn der Warenkorb kann in eine Bestellung bergehen Anwendungsfall Buch bestellen Dann w re es sinnvoll die Positionen dort weiter zu verwenden auch wenn der Warenkorb nicht mehr existiert Eine Position des Warenkorbs bezieht sich auf genau ein Buch Ein Buch kann aber in mehreren Posi tionen in verschiedenen Warenk rben vorkommen Daher lautet die Kardinalit t zwischen Buch und Position 1 n Schlie lich kann ein Buch noch einen oder mehrere Autoren haben es wird angenom 103 9 Uberarbeitetes Klassendiagramm getAutoren Listlterator getBestand int getPreis float getTitel String setPreis void bezieht sich auf WkPosi WkPosition getAutor String getBestand int lt lt entity gt setStueckzahl void lt lt access gt gt lt entity gt gt lt entity gt gt Buch Position i abmessungen int preisloat Vector lt lt entity gt gt artint stueckzahl int lt lt entity gt gt Autor autoren Vector Warenkorb beschreibung String berechne
175. r entdecken k nnen Sie mit den Back und Next Symbolen am oberen Rand des Hauptanzeigebereichs durch den gesamten Bestellprozess vor und zur ck navigieren und die betreffenden nderungen durchf hren Sie k nnen den Be stellprozess auch an jeder Stelle abbrechen wenn Sie sich entscheiden sollten doch nicht zu bestellen Sind jedoch alle Daten korrekt dann klicken Sie auf Bestellung durchf h ren um die Bestellung in Auftrag zu geben 47 5 Anwendungsf lle Der Text des Benutzerhandbuchs mag ausreichen um dem Kunden kurz und b ndig den Bestellpro zess zu beschreiben doch fehlt hier noch einiges an Details e Das System muss die Kundendaten kennen um die Bestellung dem richtigen Kunden zuzuord nen Daher muss es sicherstellen dass der Kunde angemeldet ist und notfalls eine Anmeldung erzwingen e Das Systemverhalten bei fehlender Lieferadresse muss gekl rt werden Der Kunde kann ja gar keine Lieferadresse ausw hlen wenn er noch keine Adressen angelegt hat e Es muss die Frage gekl rt werden wie sich das System vor und nach den drei erfolgreichen Transaktionen verhalten soll Es wird dem Kunden anfangs nicht erlaubt sein Rechnungsdaten einzugeben oder zumindest darf er die Rechnungsbestellung nicht ausw hlen Sp ter muss er dann eine Rechnungsbestellung durchf hren d rfen e Das System sollte die Richtigkeit von Lieferadresse Rechnungs und Kreditkartendaten ve rifiziert um dem Shop unn tige Koste
176. rchf hren aus Abbil dung 5 5 in die soeben diskutierten neuen Anwendungsf lle 5 6 2 Buchrezension und Bewertung Text des Benutzerhandbuchs siehe Anhang A 2 Rezensionen schreiben Wenn Sie in der Detailansicht auf den Link Rezension schreiben klicken gelangen Sie auf die Seite Rezension Im oberen Teil des Hauptanzeigebereichs wird zur Erinne rung noch einmal der Titel des Buches angezeigt das Sie rezensieren wollen Im unteren Teil k nnen Sie den Text Ihrer Rezension eingeben Wenn Sie fertig sind klicken Sie ein fach auf Rezension abschicken Bitte beachten Sie dass es nicht m glich ist ein Buch zu rezensieren ohne es auch zu bewerten Daher ffnet das System nun die Seite Bewer tung auf der Sie das Buch bewerten k nnen siehe unten Nachdem Sie die Bewertung durchgef hrt haben zeigt das System wieder die Detailansicht des Buches an das Sie rezensiert haben Dort wird unterhalb der Detailinformationen ber das Buch die Rezen sion angezeigt die Sie soeben verfasst haben Wenn Ihnen beim Lesen auff llt dass Sie noch etwas korrigieren m chten klicken Sie einfach auf den Link Zur ck zur Rezen sion unten links unter dem Rezensionstext und Sie gelangen auf die Seite Rezension zur ck wo Sie ihren Text noch einmal berarbeiten und neu bewerten k nnen B cher bewerten Zum Bewerten von B chern steht Ihnen die Seite Bewertung zur Verf gung Diese ff nen Sie entwe
177. rechen und zeigt sie auf der Seite Suchergebnis an Suchergebnis Auf der Seite Suchergebnis werden die gefundenen B cher mit einer kurzen Pro duktbeschreibung untereinander aufgelistet Neben jedem gefundenen Buch finden Sie einen Link der Sie zur Detailansicht f r dieses Buch bringt wenn Sie mehr dar ber wissen wollen Wie im Abschnitt Katalog beschrieben k nnen Sie von dort aus den Artikel auch in den Warenkorb legen In der Detailansicht finden Sie unten links unter der Artikelbeschreibung oder falls vorhanden der Rezen sion f r dieses Buch einen Link der Sie wieder zur ck zum Suchergebnis bringt so dass sie die Detailansicht des n chsten gefundenen Buches ansehen k nnen 126 A 4 Warenkorb B chersuche Suchkriterium w hlen Autor OTitel O ISBN Schl sselw rter Suchbegriff e eingeben Rosenberg Suche starten Abbildung A 8 B chersuche Um eine neue Suche ggf mit ge nderten Suchkriterien durchzuf hren klicken Sie im Suchergebnis einfach auf Neue Suche durchf hren A 4 Warenkorb Im Warenkorb befinden sich stets die von Ihnen zum Kauf vorgemerkten Artikel ber die entspre chende Eingabezeile k nnen Sie hier die Anzahl der Artikel in den einzelnen Positionen ndern Nach einer solchen nderung aktualisiert sich der Gesamtpreis der Artikel im Warenkorb nicht automa tisch Um eine Neuberechnung anzusto en klicken Sie bitte auf die Schaltfl che Aktualisier
178. ren Das System aktualisiert die St ckzahl der betreffenden Position berechnet die Kosten f r diese Position und den Gesamtpreis der Positionen im Warenkorb neu und zeigt die aktuellen Werte an Der Kunde dr ckt die Schaltfl che Einkauf fortsetzen woraufhin das System die Kontrolle wieder an den Anwendungsfall Buchkatalog ansehen bergibt Alternativabl ufe Wenn das System f r diesen Kunden keinen Warenkorb finden kann erzeugt es ein neues Warenkorb Objekt und speichert es in der Session des Kunden Wenn der Inhalt des Warenkorbs leer ist zeigt das System eine entsprechende Meldung auf der Seite Warenkorb an Wenn der Kunde die Anzahl eines Artikels auf 0 setzt oder in einer Position auf L schen klickt l scht das System die zugeh rige Position aus dem Warenkorb und aktualisiert den Gesamtpreis ber alle Positionen im Warenkorb Dann zeigt es die aktuellen Werte an O O O Q 8 1 Q Q Q Warenkorb editieren o8 99 91 92 93 95 06 ViewHelper KatalogHandler WarenkorbHandler WarenkorbFassade Session Warenkorb Position Buch i I I I pa I I
179. ren von Bestellungen Um eine oder mehrere Bestellungen zu stornieren die noch nicht ausgeliefert wurden markieren Sie einfach die entsprechende n Bestellung en indem Sie die Check box neben der Bestellnummer aktivieren und klicken anschlie end am unteren Ende der Liste offener Bestellungen auf Ausgew hlte Bestellungen stornieren Die Bestellungen verschwinden dann aus der Liste und werden nicht ausgeliefert Sie m ssen sie nat rlich auch nicht bezahlen da die Rech nungsstellung immer erst erfolgt wenn die Ware unseren Shop auch wirklich verlassen hat A 7 Kontakt Falls Sie einmal technische Schwierigkeiten mit unserem Shop haben oder Fragen zu einer Lieferung auftreten finden Sie auf dieser Seite die e mail Adressen und die Telefonnummern unserer Vertriebs abteilung und der technischen Hotline Wir sind stets bem ht Sie bei auftretenden Problemen nach besten Kr ften zu unterst tzen 133 A Prototyp und Benutzerhandbuch 134 B Anwendungsf lle vor der Stabilitatsanalyse B 1 Paket Buchbestellung B 1 1 Artikel in den Warenkorb legen Standardablauf Der Benutzer klickt auf der Seite Produktdetails auf In den Warenkorb le gen Das System stellt daraufhin sicher dass der Artikel noch verf gbar ist also das Attribut Bestand des Buch Objekts mindestens den Wert 1 hat und f gt daraufhin dem Warenkorb Objekt eine neue Position hinzu die dieses Buch enth lt und die St ckzahl 1 aufweist Anschlie e
180. ri vilegierungsstufe Bestimmte Aktionen d rfen User n mlich nur ausf hren wenn sie einen Account haben andere eben nicht Weiterhin sind in diesem Teil des Modells Klassen zu finden die keine fachliche Bedeutung haben sondern eher technischer Natur sind und deshalb nicht dargestellt werden sollten Dies sind vor allem die Master Account Table die aber eine fachliche Entsprechung in der Kundenliste findet und der Login Manager die eindeutig technische Begriffe sind sowie die User Preferences Die Klasse Billing Info spaltet sich im hier vorgeschlagenen Modell wie in Abschnitt 4 2 6 diskutiert in Kreditkartendaten und Rechnungsanschrift auf Beides sind Attribute von Kunde Sicherlich kann es an dieser Stelle auch sinnvoll sein die Beziehung zwischen Kunde und Rechnungsanschrift als Assoziation zu modellieren da eine Adresse ja von mehreren Personen benutzt werden kann F r eine Kreditkarte gilt dies aber im Allgemeinen nicht so dass hier eine Aufspaltung in mehrere Klassen durchaus angebracht erscheint Order Die Klasse Order aggregiert bei Rosenberg und Scott Shipping Method Status und Order Details Die beiden ersten sind im hier vorgestellten Modell Attribute von Bestellung da sie f r die Sicht des Kunden auf den Shop keine Bedeutung haben Zwar hat die Bestellung einen Status den der Kunde auch einsehen k nnen soll aber er f hrt keinerlei Operationen auf dem Bestellsta tus aus
181. roblem stellung und der Prozess enth lt eine eigene Designphase Analyse der Problemstellung Die von Rosenberg in der ersten Phase Informationsmodell des ICONIX Prozesses verwendete Methode der grammatikalischen Analyse hat sich in dieser Arbeit Kapitel 4 als ein sehr n tzliches Werkzeug erwiesen um aus der Problembeschreibung des Kunden das Informationsmodell zu gewinnen Die im Informationsmodell gefundenen Objekte helfen sehr dabei Anwendungsfalltexte zu formulieren die konkret genug sind um aus ihnen sp ter den Entwurf der Software zu gewinnen Das Informationsmodell ist auch deshalb sehr hilfreich weil es daf r sorgt dass kein System entwickelt wird in dem die Objekte des Problembereichs keine nennenswerte Rolle spielen Ein solches System ginge potentiell am Problem vorbei Parallel dazu wird in der in Kapitel 5 durchgef hrten Anwendungsfallanalyse ein dynamisches Mo dell angefertigt Hier schlagen Rosenberg und Scott vor einen GUI Prototypen zu benutzen um sich mit dem Kunden ber das gew nschte Systemverhalten zu einigen Zwar konnte dies in Ermangelung eines realen Kunden in dieser Arbeit nicht ausprobiert werden doch ist es leicht vorstellbar und der Autor hat diese Erfahrung auch schon in eigener T tigkeit gemacht dass es viel produktiver ist wenn man das gew nschte Systemverhalten an einem Prototypen diskutieren kann Ein interessanter Weg den der ICONIX Prozess dabei aufzeigt ist der f r den Prototypen ein B
182. s ist in weiten Teilen eine sinngem e Wiedergabe des ersten Kapitels von RoSc99 Der Begriff Artefakt stammt aus dem Sprachgebrauch des Rational Unifi ed Process Man versteht darunter die Ergeb nisse von Arbeitsschritten die in greifbarer Form vorliegen wie etwa Modelle Teile von Modellen Dokumente oder die Software selbst Zeng streamlined 13 2 berblick ber den ICONIX Prozess Au erdem ist der Prozess anwendungsfallgetrieben Dabei wird nach den von Jacobson begr nde ten Konzepten auf konkrete leicht verst ndliche Anwendungsf lle Wert gelegt die man gut f r die Entwicklung des Systems nutzen kann Darin unterscheidet sich der ICONIX Prozess von anderen Prozessen bei denen die Anwendungsf lle eher als mehr oder minder abstraktes Mittel betrachtet werden die Anforderungen des Kunden zu eruieren Einer der Grundgedanken des Begriffs anwen dungsfallgetrieben ist es in der schnellstm glichen Zeit von den Anwendungsf llen zum Code zu gelangen Ein weiteres Merkmal des ICONIX Prozesses ist dass er iterativ und inkrementell vorgeht Dies be zieht sich einerseits auf die Anwendungsf lle und andererseits auf das Klassenmodell des zu bauenden Systems Beide werden im Verlauf des Prozesses mehrfach berarbeitet und vervollst ndigt Schlie lich bietet der Prozess ein hohes Ma an R ckverfolgbarkeit ber alle Phasen des Prozesses werden die anf nglich definierten Anforderungen im Auge behalten meist in d
183. se Anwendungsf llen als von Design Anwendungsf llen Man hat hier wohl ganz einfach nicht weit genug gedacht und die Analyse mittendrin abgebrochen Dadurch ist auch zu er kl ren dass im hier entwickelten Modell die Zahl der Anwendungsf lle mehr als doppelt so gro ist wie im Rosenberg Modell Aus den oben genannten Gr nden Reverse Engineering der Benutzerschnittstelle unterscheiden sich die acht Anwendungsf lle die in beiden Modellen vorkommen inhaltlich nicht sehr Die Anwen dungsf lle in diesem Modell sind jedoch genauer ausformuliert und auch soweit m glich und sinn voll zerlegt worden und es sind mehr Alternativabl ufe bedacht worden insbesondere in den Be reichen Buchbestellung Rezension und Produktdetails wie im vorigen Abschnitt ja diskutiert wurde Dar ber hinaus wurde mehr Wert darauf gelegt die Anwendungsf lle im Kontext des Infor mationsmodells zu betrachten so wie Rosenberg und Scott dies in ihren Werken auch empfehlen 59 5 Anwendungsf lle 60 6 Stabilitatsanalyse Grundsatzliches Einer der wichtigsten Teile des ICONIX Prozesses ist die Stabilit tsanalyse W hrend sich die vor angehenden Schritte damit befassen herauszufinden welche Probleme zu l sen sind und das nach folgende Detaildesign sich damit befasst herauszufinden wie die Probleme zu l sen sind bildet die Stabilit tsanalyse die Br cke zwischen beiden Welten Zur Durchf hrung der Stabilit tsanalyse be die
184. ser Anwendungsfall in der Anwendungsfallanalyse in RoSc01 nicht besprochen so dass es nicht m glich ist herauszufinden welche Abschnitte des An wendungsfalls sich in dieser Entwurfsphase gegen ber fr heren Phasen ge ndert haben Da hier also erneut nicht nachvollziehbar ist wie die Ergebnisse zustande kommen muss es bei einem Vergleich der Diagramme bleiben Check Out modify quantity ES press Update a E E Customer Shopping Cart Page Delete Item Shopping Cart Display Update Quantity and Item Cost Abbildung 6 5 Stabilit tsdiagramm Warenkorb editieren von Rosenberg und Scott Bereits auf den ersten Blick f llt auf dass das Diagramm von Rosenberg und Scott Abbildung 6 5 viel weniger Objekte beinhaltet als das in dieser Arbeit entwickelte Zun chst ruft der Anwendungsfall von Rosenberg nicht den Anwendungsfall Buch bestellen auf Dies liegt vermutlich an einer ande ren Benutzerf hrung so dass in dem unbekannten GUI Prototypen den die Autoren f r ihre Anwen dungsf lle benutzen keine Navigationsm glichkeit von Warenkorb editieren zu Buch bestellen vorhanden ist Au erdem enth lt Abbildung 6 2 ein Entity Objekt mehr n mlich das Session Objekt Rosenberg macht sich n mlich in seiner Analyse keinerlei Gedanken ber den reinen Wortlaut des Anwendungsfalls hinaus Es wird nicht ber cksichtigt dass ein Internet Shop im Mehrbenutzerbe trieb funktioniert und dass ein Warenkorb dem richtigen Ku
185. so einem optionalen Aufruf kommt der extend Mechanismus zur Anwendung 5 7 Anwendungsfallpakete Als letzten Schritt dieser Analysephase sieht der ICONIX Prozess die Gruppierung von Anwendungs f llen vor Diese werden in Pakete aufgeteilt und in Package Diagrammen dargestellt Im hier ent wickelten Modell lassen sich vier Anwendungsfallpakete unterscheiden e Buchbestellung e Buchkatalog e Buchrezension e Systemanmeldung und Kontaktinformationen In das Paket Buchbestellung Abbildung 5 8 kommen alle Anwendungsf lle die im weitesten Sinne mit der Buchbestellung zu tun haben Zun chst sind dies nat rlich die oben hergeleiteten Anwen dungsf lle die den Bestellvorgang beschreiben Au erdem ist dort das Ansehen und Stornieren von Bestellungen enthalten sowie die Anwendungsf lle die mit dem Warenkorb zu tun haben Das F llen und Editieren des Warenkorbs bereitet n mlich eine Bestellung vor In das Paket Buchkatalog Abbildung 5 9 geh ren alle Anwendungsf lle die sich um die verschie denen unter Umst nden gefilterten Sichten auf den Buchkatalog ranken Dies sind die drei Anwen dungsf lle Buchkatalog ansehen Buchkatalog durchsuchen und Neuheiten und Empfehlungen ansehen Au erdem geh ren die Darstellung der Produkt bersicht und der Produktdetails dazu 55 5 Anwendungsf lle Buchbestellung Bestellung stomieren Bestellung ansehen Warenkorb editieren Artikel in den Warenkorb legen Jessen
186. stellt Front Controller Dieses Muster erm glicht einen zentralisierten Controller der Requests verarbeitet Ein Front Controller empf ngt alle eingehenden Client Requests leitet jeden Request an den richtigen Request Handler weiter und pr sentiert dem Client eine entsprechende Ant wort Sessionfassade Dieses Muster koordiniert Operationen zwischen kooperierenden Gesch ftsobjekten wobei die Funktionen der Anwendung in einer einzigen vereinfachten Schnittstelle ver einigt und dem aufrufenden Code pr sentiert werden Es kapselt und verbirgt die Kom plexit t der Klassen die in spezieller vermutlich komplexer Weise interagieren m ssen und schirmt die Klienten von nderungen in der Implementierung der Gesch ftsobjekte ab Eine Sessionfassade wird blicherweise als Session Bean implementiert und verbirgt die Interaktionen zwischen darunter liegenden Entity Beans View Helper Bin View Helper kapselt die Pr sentation und den Datenzugriff logischer Bereiche einer Ansicht wodurch er die Ansicht verfeinert und vereinfacht Die Pr sentationslogik be trifft das Formatieren der Daten f r die Anzeige auf einer Seite w hrend sich der Daten zugriff um das Beschaffen der Daten dreht View Helper sind oft JSP Tags zum Rendern oder Darstellen von Daten und Java Beans zum Beschaffen der Daten 7 4 Architekturfragment des Internet Shops Im Abschnitt 6 3 wurde bereits auf das Problem des Kontrollflusses eingegangen
187. stimmte funktionale Anforderungen be schr nkt Wenn sich sp ter die Anforderungen ndern und das tun sie immer dann sollte man ein System gebaut haben das sich nicht zu sehr gegen diese nderungen str ubt Konkret handelte es sich um ein System zur internetbasierten Dokumentation medizinischer Studien bei dem die Kontrolllogik mit den Datenbeschreibungen vermengt war Dies f hrte dazu dass es sp ter kaum mehr m glich war das Verhalten des Systems zu ndern da es keine richtige Ablaufsteuerung gab Letztlich wurde dieses Projekt eingestellt Mehr zu diesem System und seinen Problemen fi ndet sich in der Diplomarbeit von Christoph Sch nfeld Analyse und Architekturbaseline f r ein System zur Online Dokumentation bei klinischen Studien vom April 2002 113 10 Diskussion der Ergebnisse 114 11 Bewertung des ICONIX Prozesses Der ICONIX Prozess ist in der Tat ein schlanker und zielgerichteter Prozess Er erzeugt keine Artefak te die ungeeignet sind den Entwicklungsprozess unmittelbar voranzutreiben Sowohl das anf nglich entwickelte Informationsmodell als auch die Anwendungsf lle ziehen sich als treibende Kr fte durch den gesamten Prozess bis zum Detailentwurf Seine St rken hat der Prozess jedoch eher in der Ana lyse Die daf r eingesetzten Methoden grammatikalische Analyse und GUI Prototyping sind gut geeignet um die funktionalen Anforderungen zu erheben Was dabei aber v llig unbeachtet bleibt sind
188. t bergeordneten Ob jekten darzustellen Alternativ dazu kann man aber die Attribute der aggregierten Objekte auch in das Diese Vorgehensweise ist auch als die Methode von Abbot bekannt 25 4 Informationsmodell bergeordnete Objekt aufnehmen In diesem Fall w rden sie im Informationsmodell nicht dargestellt da in diesem Teil des Prozesses Attribute noch keine Rolle spielen In BoRuJa99 S 206f wird der Objektbegriff folgenderma en definiert Bine Abstraktion besitzt in ihrem Objekt eine konkrete Auspr gung auf die man eine Menge von Operationen anwenden kann und die einen Zustand besitzen kann in dem die Auswirkungen der Operationen gespeichert sind Instanz und Objekt sind weitgehend synonym und weiterhin Generell ist ein Objekt etwas das in der wirklichen oder konzeptionellen Welt Raum einnimmt und mit dem man etwas machen kann So ist z B das Objekt eines Knotens blicherweise ein Computer der sich physisch in einem Raum befindet ein Objekt einer Komponente nimmt Raum in einem Dateisystem ein und das Objekt eines Kundendaten satzes verbraucht etwas vom physischen Speicherplatz Auch die Instanz einer Einflug schneise f r ein Flugzeug ist etwas das man mathematisch manipulieren kann In diesem Sinne sind zun chst alle m glichen Dinge Objekte Das gilt auch f r einfache Variablen wie Zahlen denn sie haben einen Zustand ihren Wert und es lassen sich Operationen auf ihnen ausf h ren n
189. t und f gt anschlie end einen neuen Ac count mit diesen Daten in die Accounttabelle ein Dann meldet es den Kunden am System an indem es das Account Objekt in den Zustand angemeldet versetzt Abschlie end bergibt es die Kontrolle wieder an den aufrufenden Anwendungsfall Alternativabl ufe Wenn der Kunde keine Benutzerkennung angibt zeigt das System eine ent sprechende Fehlermeldung an und fordert den Kunden auf eine Kennung einzugeben Wenn der Kunde eine e mail Adresse angibt die nicht der korrekten Syntax entspricht oder die e mail Adresse fehlt zeigt das System eine entsprechende Fehlermeldung an und fordert den Kunden zur Eingabe einer g ltigen e mail Adresse auf Wenn der Kunde ein zu kurzes Passwort angegeben hat zeigt das System eine entsprechende Fehler meldung an und fordert den Kunden zur Eingabe eines l ngeren Passworts auf Wenn der Kunde das Passwort nicht wiederholt hat oder die zweite Eingabe nicht der ersten ent spricht zeigt das System eine entsprechende Fehlermeldung an und fordert den Kunden auf die Ein gabe zu wiederholen Wenn bereits ein Account in der Accounttabelle existiert der die gleiche Kennung aufweist zeigt das System eine entsprechende Fehlermeldung an und fordert den Kunden auf eine andere Kennung auszuw hlen B 4 Paket Buchkatalog B 4 1 Buchkatalog ansehen Standardablauf Das System ffnet die Seite Katalog Es durchsucht die Liste der Buchkatego rien nach Top Level
190. t sicher dass es noch keine Rezension gibt die den Kunden als Autor hat Anschlie end ruft es den Anwendungsfall Buch rezensieren auf Alternativabl ufe Wenn der Kunde nicht angemeldet ist ruft das System zun chst den Anwen dungsfall Anmelden auf Wenn das System zu diesem Buch ein Rezensions Objekt findet das den Kunden als Autor hat ruft es den Anwendungsfall Rezension berarbeiten anstelle von Buch rezensieren auf B 2 4 Rezension berarbeiten Standardablauf Das System w hlt aus der Liste der Rezensionen f r dieses Buch die vom Kun den geschriebene aus und zeigt auf der Seite Rezension den Text im Feld f r den Rezensionstext an Der Kunde ndert den Text der Rezension und klickt auf Rezension abschicken Das System aktualisiert nun den Rezensionstext im entsprechenden Rezensions Objekt Danach kehrt das System zur Seite Produktdetails zur ck wo es diese Rezension als erste Rezension anzeigt Au erdem zeigt es ein Navigationselement an mit dem der Kunde den Anwendungsfall Rezension berarbeiten erneut aufrufen kann 139 B Anwendungsf lle vor der Stabilit tsanalyse B 3 Paket Systemanmeldung und Kontaktinformationen B 3 1 Anmelden Standardablauf Der Kunde klickt auf der Startseite auf den Link Anmelden Das System ffnet die Seite Anmeldung Dort gibt der Kunde seine Benutzerkennung und sein Passwort ein und klickt dann auf die Schaltfl che Anme
191. tTopLevelKategorien TmpKategorieListe ST 5 getAuswahlzustand Auswahlzustand oF getBuecherListiterator I getSubKategorien Listlterator lt saccess gt gt D al getTopLeyelKategorien Listiterator 1 l al pruefeAuswahizustand boolean I z SZ setAuswahlzustand void y gt KS H 0 lt entity gt gt a a ES Kategorie en y I Vector akt Kategorie d int D D 8 x istTopLevel boolean E lt lt entity gt gt ist zugeordnet D name String TmpKategorieListe 0 zu r Subkhtegorie gt gt 3 s Y k kommuniziert mit ssentity gt gt ep Session S lt lt entily gt gt lt lt entily gt warenkorb Warenkorb E Buch Kunde Ss 2 1 0 getAuswahlzustand Auswahlzustand E B A E abmessungen int istzugeordnet getTmpKategorieListe TmpKategorieListe el E artint getWarenkorb Warenkorb l autorenVector gelLieferadressen Vector pruefeAuswahlzustand woid ze beschreibung String setAuswahlzustand void bestand int setTmpKategorieListe void bewertung int setWarenkorb void erscheinungdatum int Vector isbn int lt lt entily gt gt kategorie Kategorie Buchkatalog preis float titel int HS 1 getBuecher Suchergi getAutoren Listiterator o getBestand int getPreisfloat getTitel String H setPreis void E ol H I Vector 0 2 Suchergebnis CommandHandler lt scontrol gt gt KatalogHandler getKurinfos Vector onKatalogAnzeigen void onKategorieGewaehltvoid
192. tand und speichert es zur sp teren Verwendung in der Session O5 ab Nun ermittelt der KatalogHandler die Subkategorien die zu der gew hlten Kategorie geh ren Da zu ruft er die Methode getSubKategorien von O2 auf O2 leitet die Anfrage an die Kategorieliste O3 weiter O3 ermittelt dann die Subkategorien leert die TmpKategorieListe O4 mit removeAllEle ments und f gt die neuen Kategorien mit add ein Dann gibt es die Liste an O2 zur ck O2 fordert dann einen Iterator bei O4 an den es an Ol weitergibt Es ist allerdings auch m glich dass die Kategorie eine Kategorie unterster Stufe ist Dann enth lt sie keine weiteren Subkategorien daf r aber B cher Wenn O1 also feststellt dass der Iterator kein Ergebnis liefert versucht er f r die betreffende Kategorie die B cherliste abzufragen Dazu ruft der die Methode getBuecher von O2 auf O2 leitet die Anfrage an den Buchkatalog weiter der die Suche durchf hrt und ein Suchergebnis O8 erzeugt Dort f gt er die gefundenen B cher ein und gibt das Suchergebnis an O2 zur ck O2 fordert einen Iterator bei O8 an und gibt ihn als Ergebnis der Suche an Ol weiter Abschlie end fordert O1 f r alle B cher die der Iterator findet die Kurzinfos an und signalisiert dem ViewHelper dass die Katalogseite neu aufgebaut werden muss Alternativabl ufe Zu Beginn des Anwendungsfalls pr ft das System mit pruefeAuswahlzustand ob ein Auswahlzustand gespeichert ist Wenn das der Fall ist wer
193. ten Ausfallsicherheit indem sie die Beans auf einem anderen Rechner replizieren k nnen wenn der Rechner auf dem sie ur spr nglich vorhanden waren ausf llt Au erdem kann man die Anwendung mit Container Managed Persistency implementieren so dass man den ganzen Bereich der Datenpersistenz umsonst bekommt Au erdem kann man sich bei J2EE auch Technologien bedienen die die Kommunikation zwischen Browser und Server ber das HTTP Protokoll erm glichen Dazu geh ren Java Server Pages JSPs und Java Servlets Diese haben auch ein integriertes Session Management Somit w ren alle beschrie benen Probleme potenziell gel st 79 7 berlegungen zur Softwarearchitektur 7 3 J2EE und MVC In SiStJa wird eine Architektur vorgestellt mit der man einen Internet Shop unter Einsatz von J2EE Technologien realisieren kann Das dort beschriebene Beispiel zeigt wie das MVC Architekturmuster auch bei Internetanwendungen sinnvoll verwendet werden kann allerdings nicht in der Weise die das Beispiel von Rosenberg nahe legt Die Autoren Singh Stearns und Johnson folgen bei der Entwicklung dieser Architektur einem Top Down Ansatz bei dem die Anwendung in drei Stufen aufgeteilt wird und zwar in einen Client Tier den der Browser zur Verf gung stellt sowie einen Web und einen EJB Tier die vom Server implementiert werden Weiterhin wird die Anwendung in Objekte oder Komponenten unterteilt die dann den einzelnen Schichten zugeteilt wer
194. ten Kategorie an Unklar ist dabei aber noch die Frage wo das System eigentlich die Subkategorien her nimmt die es anzeigen soll Bevor das System Subkategorien anzeigen Kann muss es sie zuerst suchen Dazu wird ein neues Objekt Kategorieliste ben tigt das alle Buchkategorien enth lt die im Buchshop eine Rolle spielen Au erdem muss jede Kategorie Referenzen auf ihre zugeh rigen Unterkategorien haben sowie das Wissen ob sie eine Top Level Kategorie ist Die jeweils gerade g ltigen Unterkategorien der aktuell gew hlten Kategorie m ssen in einem Objekt ImpKategorieListe tempor r gespeichert werden damit die Kategorie Auswahlliste mit dem rich tigen Inhalt gef llt werden kann Das Objekt kann beim Verlassen der Seite wieder verworfen werden aber es muss sichergestellt sein dass beim Mehrbenutzerbetrieb der bei Internetsystemen die Regel ist die tempor re Kategorieliste dem richtigen Kunden zugeordnet ist Dies geschieht am besten ber ein Objekt das den Kunden w hrend seiner ganzen Einkaufssitzung begleitet und ihm eindeutig zu geordnet ist Ein solches Objekt das diese und andere Kontextinformationen speichert k nnte zum Beispiel Session genannt werden Speichern des aktuellen Auswahlzustands Wenn der Kunde den Anwendungsfall verl sst und sp ter wieder aufruft stellt das System den Zustand also die Bildschirmansicht wieder her den der Kunde vor dem Verlassen zuletzt gesehen hat Dieser Vorgang bedarf weiterer
195. ten und Empfehlungen ansehen Standardablauf Das System zeigt die Startseite an Es sucht aus der Liste der Neuheiten und aus der Liste der Empfehlungen alle eingetragenen Buch Objekte heraus und ruft f r jedes gefunde ne Buch die wichtigsten Informationen ber das Buch sowie dessen Verf gbarkeit aus und zeigt sie zusammen mit einem Bild des Buches an Au erdem erzeugt das System f r jedes Buch ein Navi gationselement Details mit dem der Kunde den Anwendungsfall Produktinformationen ansehen aufrufen kann Anschlie end bergibt das System die Kontrolle wieder an den aufrufenden Anwendungsfall Alternativabl ufe Wenn der Kunde auf Anmelden klickt ruft das System den Anwendungsfall Anmelden auf Wenn der Kunde auf Details klickt bergibt das System die Kontrolle an den Anwendungsfall Produktinformationen ansehen Wenn das System keine Neuheiten oder Empfehlungen finden kann unterdr ckt es die entsprechende Rubrik Wenn es in beiden Kategorien keine B cher finden kann zeigt es statt dessen einen Standard text an der f r den Buchshop wirbt Ausgliedern gemeinsamen Verhaltens Interessant an den drei Anwendungsf llen die die Produkt bersichten betreffen ist der Teil in dem die Kurzinformationen ber das Buch mit einem Link Details und einem Bild angezeigt werden 54 5 7 Anwendungsfallpakete Dieser Teil kommt n mlich in allen drei Anwendungsf llen vor Diese Gleichheit dient
196. tzer aus gef hrt hat und steuert die Abl ufe entsprechend Wir nehmen an dass der CommandHandler ver schiedene Methoden besitzt aus denen er abh ngig von dem Event aus dem er gebildet wurde eine Methode ausw hlt und deren Funktionalit t ausf hrt Hat der Kunde den Anwendungsfall neu gestartet wird der Handler zun chst die Methode onWarenkorbAnzeigen ausf hren Zuerst pr ft der WarenkorbHandler ob ein Warenkorb vorhanden ist Dazu benutzt er die Methode sucheWarenkorb der WarenkorbFassade O2 die ihrerseits die Session nach dem Warenkorb Objekt O4 des Kunden befragt Da hier zun chst nur der Standardablauf betrachtet wird kann man erwarten dass tats chlich ein Warenkorb gefunden wird und der R ckgabewert nicht null ist Daher kann der CommandHandler mit den im vorigen Kapitel er rterten Mechanismen die Seite Warenkorb erneut anzeigen Dazu erzeugt er ein ViewDaten Objekt gibt ihm einen Parameter mit der angibt welche Seite anzuzeigen ist und f llt es ber die Schnittstelle der WarenkorbFassade mit dem Inhalt des Warenkorbs Abbildung 8 2 zeigt die Details dieses Zugriffs Wenn der Kunde nun auf der Warenkorb Seite auf Aktualisieren klickt startet der CommandHand ler die Methode onDatenGeaendert Ein Klick auf L schen w rde zum Aufruf der Methode on PositionL schen f hren Der WarenkorbHandler ruft die Methode aktualisiereWarenkorb Event der WarenkorbFassade auf woraufhin diese mit der M
197. uchshop das f r den Buchshop zur Anwendung kommen k nnte Es handelt sich dabei haupts chlich um den Controller Teil der Architektur Deren Funktionsprinzipien sollen nun kurz erl utert werden Der Front Controller bearbeitet s mtliche HTTP Anfragen die vom Client kommen Er extrahiert die Daten aus dem HTTP Protokoll und identifiziert die Eingabe des Kunden Dann erzeugt er ein Event Objekt das die Daten der Anfrage enth lt und leitet es an den EJBController weiter Die ser erzeugt einen dazu passenden CommandHandler Der CommandHandler benutzt Methoden der verschiedenen Sessionfassaden um die Gesch ftsprozesse zu aktivieren die von der Client Anfrage angesto en wurden und anschlie end die Gesch ftsdaten auszulesen Somit ist seine Hauptbedeu tung die Benutzeranfragen auf die Gesch ftsprozesse abzubilden Die Sessionfassaden sind nach den Bereichen aufgeteilt die sie bearbeiten Zum Beispiel kann es Sessionfassaden f r den Warenkorb f r die Bestellungsabwicklung und den Katalog geben Eine sinnvolle Aufteilung kann hier nach den Anwendungsfallpaketen erfolgen Unter Umst nden kann es daher auch n tig sein dass ein CommandHandler auf mehrere Session fassaden zugreift etwa um Bestellungen auszuf hren Hier muss er eine WarenkorbFassade und eine BestellungsFassade bedienen um einen Warenkorb in eine Bestellung zu berf hren Normalerweise deklariert die Command Schnittstelle nur eine einzige Methode fuehreAus Um jedoch d
198. uf Wenn das System keine offenen oder gelieferten Bestellungen finden kann zeigt es in der entspre chenden Rubrik eine Meldung an Wenn der Kunde mindestens eine offene Bestellung markiert und auf Ausgew hlte Bestellungen stornieren klickt speichert das System die vom Kunden gew hlten Filterkriterien ab und bergibt die Kontrolle an den Anwendungsfall Bestellung stornieren Wenn dieser Anwendungsfall die Kontrolle vom Anwendungsfall Bestellung stornieren zur ck er halten hat und nicht vom Kunden direkt aufgerufen wurde l sst das System die Anmeldungspr fung aus Es durchsucht die Bestellliste erneut nach den vom Kunden eingegebenen Kriterien und aktualisiert die Rubrik Offene Bestellungen mit den jetzt gefundenen Bestelldaten Wenn der Kunde auf Zur ck zum Katalog klickt bergibt das System die Kontrolle an den Anwen dungsfall Buchkatalog ansehen B 1 4 Bestellung stornieren Standardablauf Das System l scht alle Bestellungen die der Kunde auf der Seite Historie markiert hat aus der Bestellliste und aktualisiert die Bestandszahlen der betreffenden Buch Objekte Dann bergibt es die Kontrolle wieder an den aufrufenden Anwendungsfall B 1 5 Fehlerhafte Dateneingabe behandeln Standardablauf Das System stellt die betreffende Seite erneut dar wobei es darauf hinweist dass es Fehler bei der Dateneingabe gab Es markiert die Felder auf der Seite die die fehlerhaften Daten enthalte
199. und aus der Liste der Empfehlungen alle eingetragenen Buch Objekte heraus und ruft f r alle gefundenen B cher den Anwendungsfall Kurzinfo anzeigen auf Alternativabl ufe Wenn das System keine Neuheiten oder Empfehlungen finden kann unter dr ckt es die entsprechende Rubrik Wenn es in beiden Kategorien keine B cher finden kann zeigt es statt dessen einen Standardtext an der f r den Buchshop wirbt B 4 5 Produktinformationen ansehen Standardablauf Der Kunde klickt in einer der Produkt bersichten auf Details Das System ff net nun die Seite Produktdetails Es liest aus dem Buch Objekt alle Informationen ber das betref fende Buch und dessen Verf gbarkeit sowie die zugeh rigen Rezensionen aus und zeigt sie zusammen mit einem Bild des Buches an Au erdem erzeugt das System Navigationselemente mit denen der Kunde die Anwendungsf lle Artikel in den Warenkorb legen und Rezension vorbereiten aufru fen kann sowie ein Navigationselement das den Kunden zu dem Anwendungsfall zur ckbringt von dem aus er die Detailansicht ge ffnet hat Dann speichert das System eine Referenz auf das angezeigte Buch Objekt ab Der Kunde klickt nun auf das Navigationselement f r den aufrufenden Anwendungs fall Daraufhin gibt das System die Kontrolle an den aufrufenden Anwendungsfall zur ck Alternativabl ufe Wenn der Kunde diesen Anwendungsfall von Rezension vorbereiten oder von Artikel in den Warenkorb legen
200. und sich bei der Frage nach dem Architekturmodell ansonsten darauf zur ckzuziehen dass die Entity Boundary Architektur vom MVC Muster abgeleitet ist Bei der Entwicklung nicht trivialer Softwaresysteme stellen sich noch eine ganze Reihe anderer Fragen die zum Teil nichtfunktionaler Art sind und die nur durch ein schl ssiges Architekturmodell beantwortet werden k nnen Eine dieser Fragen bezieht sich auf die technische Infrastruktur Realisiert man zum Beispiel ein ver teiltes System so kann die Bandbreite und Auslastung der Netzwerkverbindung die Performanz des Systems beschr nken wenn etwa auf Antworten der Gegenstelle gewartet werden muss Bei einem Standalone System besteht diese Limitierung nicht Wie oben bereits erw hnt wurde kann auch die Wahl der Programmiersprache von gro er Bedeu tung sein Sprachen wie Java oder C besitzen zum Beispiel umfangreiche Klassenbibliotheken die dem Programmierer viele Aufgaben abnehmen w hrend Sprachen wie C eher spartanisch ausge stattet sind Au erdem sind etwa Persistenzframeworks die den jeweiligen Anspr chen an Qualit t Leistungsf higkeit und Preis gen gen f r manche Programmiersprachen verf gbar f r andere nicht Auch k nnen gewisse architektonische Rahmenbedingungen bereits vorgegeben sein Erw gt man den Einsatz eines Frameworks ist man stark von dessen Funktionsprinzipien abh ngig Daraus folgt dass man bestimmte Entwurfsmuster einsetzen muss die dem jeweiligen Framework
201. unten links unter dem Rezensionstext und Sie gelangen auf die Seite Rezension zur ck wo Sie ihren Text noch einmal berarbeiten und neu bewerten k nnen W hlen Sie bitte hier die zutreffende Anzahl P W hlen Sie bitte hier die zutreffende Anzahl Punkte aus Anfrage senden Abbildung A 7 Buchbewertung abgeben B cher bewerten Zum Bewerten von B chern steht Ihnen die Seite Bewertung zur Verf gung Diese ffnen Sie entweder von der Detailansicht des Buches mit dem Link Buch bewerten oder das System pr sentiert Ihnen die Seite automatisch wenn Sie eine Rezension eintragen s o Geben Sie einfach eine Bewertung ein indem Sie den Radiobutton anklicken der Ihrer Meinung nach die Qualit t des Buches am ehesten beschreibt Null ist am Schlechtesten f nf am Besten Dann best ti gen Sie Ihre Auswahl durch Dr cken der Schaltfl che Absenden Das System berechnet nun einen neuen Durchschnitt aus allen Kundenbewertungen und zeigt Ihnen die aktualisierten Informationen in der Detailansicht an Dort wird der Durchschnitt aller Kundenbewertungen in Sternen ausgedr ckt ebenfalls von 0 bis 5 A 3 B chersuche Diese Seite dient dazu gezielt nach B chern zu suchen W hlen Sie ein Suchkriterium aus geben Sie den Suchbegriff im unteren Feld ein und dr cken Sie auf Suche starten Das System durchsucht jetzt den Produktkatalog nach B chern die dem gew hlten Suchkriterium entsp
202. wendungsfall Bestellung an sehen Da auch hier der Anwendungsfall Anmelden nur aufgerufen wird wenn der Kunde nicht schon angemeldet war also optional erweitert der Anwendungsfall Anmelden den Anwendungs fall Bestellung ansehen ber den extend Mechanismus Das Gleiche gilt auch f r den Anwendungsfall Buchbestellung durchf hren Hier klickt der Kunde auf der Seite Warenkorb auf Bestellen Das System pr ft ob der Kunde angemeldet ist Wenn nicht zeigt es zun chst die Seite Anmeldung an und nach erfolgreicher Validierung der Benut zerdaten die Seite Bestellen Anmelden erweitert also Buchbestellung durchf hren Au erdem erweitert Anmelden aus demselben Grund den Anwendungsfall Buchrezension durchf hren Eine vollst ndige Liste der Seiten des Prototypen und der zugeh rigen Anwendungsf lle zeigt Tabelle 5 1 Anwendungsfall Titel der Seite Neuheiten und Empfehlungen ansehen Anmelden Neuen Account anlegen Buchkatalog ansehen Produktinformationen ansehen Artikel in den Warenkorb legen Buchrezension durchf hren Buch bewerten Buchkatalog durchsuchen Warenkorb editieren Buchbestellung durchf hren Bestellung ansehen Bestellung stornieren Kontaktinformationen ansehen Tabelle 5 1 Benutzeraktionen und Anwendungsf lle Abbildung 5 5 zeigt das vollst ndige Anwendungsfalldiagramm mit den Beziehungen zwischen den Anwendungsf llen Man beachte dass sich
203. zu Eigen sind Schlie lich wird auch und vor Allem die Qualit t der Software wesentlich von der Architektur be stimmt Eine schwache Architektur ist durch nichts wieder gutzumachen und hat schon manches Soft wareprojekt zum Scheitern gebracht Ein gutes Softwaresystem zeichnet sich durch Performanz Si cherheit Verf gbarkeit Wartbarkeit Portierbarkeit Wiederverwendbarkeit Integrierbarkeit und Test barkeit aus Je nach dem Verwendungszweck und der Zielsetzung des Projektes wird man das eine oder andere Qualit tskriterium h her gewichten oder vernachl ssigen Erreicht man aber bei wichti gen Qualit tskriterien die Zielvorgaben nicht so kann das im weiteren Verlauf zu Problemen f hren die unter Umst nden nicht mehr l sbar sind 7 2 Spezielle berlegungen In der in Kapitel 3 geschilderten Problemstellung finden sich zwei nicht funktionale Anforderungen e das System soll internetbasiert sein und 77 7 berlegungen zur Softwarearchitektur e es soll Accounts f r bis zu 1 000 000 Kunden verwalten k nnen Auswirkungen der Infrastruktur auf die Architektur Die erste Anforderung bezieht sich direkt auf die technische Infrastruktur mit der das System arbeitet Es handelt sich dabei um ein Internet System Das bedeutet dass es f r jede Session zwei Gegenstel len geben muss n mlich Client und Server bei dem der Rechner des Kunden den Client stellt und der Rechner des H ndlers den Server Es gibt verschiedene technisc
Download Pdf Manuals
Related Search
Related Contents
Manual do usuário ARRI Wireless Zoom Extension Unit WZE - 3 User's Manual NaviPad v3 User Manual Documentation technique CRU RTX800-XJ Mode d`emploi des électrodes de mesure d`oxygène FAQ: • How to reach a perfect and rich milk froth? Use skimmed or Copyright © All rights reserved.
Failed to retrieve file