Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
1,08 MB
Nội dung
5 – Projektpraxis 330 walten kann. Ein Depot besteht dabei aus Beständen von verschiedenen Aktien, die der Kunde zuvor gekauft hat. Der Anleger als Kunde der Bank soll neben den aktuellen Kursen jederzeit eine Über- sicht seiner Gewinne bzw. Verluste erhalten können. Zusätzlich dazu soll ein einfacher Vergleich der Zinsen aus den Aktiengewinnen mit Zinssätzen von Festgeld- und Spar- einlagen möglich sein. Im Gegensatz zu anderen Depotverwaltungsprogrammen sollen auch Gewinne aus Dividenden berücksichtigt werden können, die Aktiengesellschaften üblicherweise jährlich an die Aktionäre im Anschluss an die Hauptversammlungen aus- schütten. Die zu erstellende PHP-Anwendung soll sich aber (zunächst) nicht direkt mit einem Aktiendepot des Anlegers verbinden. Stattdessen soll jeder Anleger seinen Aktienbe- stand und jede Transaktion zunächst manuell eingeben. Dadurch soll ein Kunde der Bank sich auch ein Musterdepot anlegen können, um in den Aktienhandel „hineinzu- schnuppern“. Die Bank erhofft sich dadurch die Gewinnung von Neukunden. Eine Transaktion ist neben dem Kauf auch ein Verkauf eines Aktienbestands. Ebenso wird der Erhalt einer Dividende als zusätzliche Zahlung an den Anleger als Transaktion bezeichnet und vom System durch manuelle Eingabe erfasst. Die aktuellen Kurse sollen aber nicht vom Anleger manuell eingegeben werden. Statt- dessen sollen diese Kurse aktuell von einer existierenden Homepage eingelesen werden können. Solche Homepages existieren nach den Aussagen des Auftraggebers für jede Aktie, die man kaufen kann. 5.1.2 Die objektorientierte Analyse Nach dem ersten Gespräch mit unserem Auftraggeber werden nun die gewünschten Funktionen erstmals definiert und genauer beleuchtet. Dies geschieht unter Verwen- dung einzelner grafischer Anwendungsfalldiagramme, von denen einzelne Funktionen in einer textuellen Schablone genauer beschrieben werden. Typische Abläufe, die sich unser Auftraggeber im System vorstellt, werden im Anschluss daran mit Aktivitätsdiagrammen festgehalten. Diese Abläufe beschreiben Interaktionen des zukünftigen Benutzers mit der zu erstellenden Anwendung. Gewünschte Funktionen mit Anwendungsfalldiagrammen Im ersten Schritt der Analyse wird der Auftraggeber der RAUB-Bank darum gebeten, darzustellen, welche Hauptfunktionen er in der zu erstellenden Anwendung sieht. Wel- che Funktionen ständen groß auf der Verpackung, wenn man das Produkt in einer Schachtel kaufen könnte? Seine Antworten werden in Abbildung 5.1 als erster grafischer Anwendungsfall zusam- mengefasst. Der Auftraggeber will Aktienbestände verwalten Aktienbestände archivieren die aktuellen Kurse automatisch ermitteln Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Das Fallbeispiel der Depotverwaltung PHP–Endlich objektorientiert 331 Damit jeder Benutzer dies kann, muss er sich zunächst am System anmelden. In den ers- ten Phasen der Umsetzung soll das Anmeldesystem mit der Benutzerverwaltung jedoch nicht im Vordergrund stehen. Abbildung 5.1: Grafischer Anwendungsfall auf Drachenebene Im nächsten Schritt werden die Funktionen genauer hinterfragt. Konzentrieren Sie sich als Systemanalytiker dabei vor allem auf weich formulierte Oberbegriffe. Dies sind in unserem Fall „verwalten“ und „archivieren“. Was ist damit genau gemeint? Als Antwort auf diese Frage müssen Sie Ihren Auftraggeber dazu bringen, die Funktio- nen detaillierter zu beschreiben. Oft ist es auch hilfreich, einen (zukünftigen) Benutzer der Anwendung zu befragen, was er sich unter dem Dienst vorstellt und erhofft. Dadurch gelangt man von der Wolken- bzw. Drachenebene hin zu der Ebene des Meeres- spiegels, die einzelne Funktionen beschreibt, die man später als Menüeinträge in der Anwendung wiederfinden sollte. In unserem Fall bedeutet das Archivieren das Laden und Speichern der aktuellen Akti- enbestände in einer Datenbank. Diese Datenbank soll nachträglich austauschbar sein; die Anwendung darf sich also nicht auf einen Datenbankhersteller so fokussieren, dass ein Wechsel der Datenbank nur mit hohem Aufwand verbunden wäre. Unser Auftraggeber sieht die Verwaltung der Aktienbestände als Kernfunktion der Anwendung. Der Benutzer soll einen neuen Aktienbestand anlegen, indem er Informati- onen zur Aktie und zum ersten Kauf (Anzahl der gekauften Aktien, Kaufdatum und Kurs der Aktie) in die Anwendung eingibt. Zusätzlich soll der Benutzer zu einem späteren Zeitpunkt Aktien desselben Typs zu einem bestehenden Bestand nachkaufen können. Die Daten des n-ten Kaufs werden dann in den Bestand integriert. Ebenso sollen meist jährlich gezahlte Dividendenzahlungen der Aktiengesellschaften in den Bestand aufgenommen werden können. Die Dividenden werden aufaddiert und erhöhen den Ertrag der Aktie. Wenn eine Dividende gezahlt wurde, kann sie dem Anle- Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. 5 – Projektpraxis 332 ger nicht mehr weggenommen werden, während der Kurs der Aktie ja sinken kann. Eine Dividende ist demnach ein garantierter Gewinn. Jeder Aktienbestand kann auch verkauft werden. In den ersten Prototypen genügt es, wenn man nur den gesamten Aktienbestand verkaufen kann. Dabei werden das Datum des Verkaufs und der Aktienkurs erfasst, zu dem der Bestand verkauft wurde. Zusätz- lich fallen Verkaufsgebühren an. Dies bringt die Diskussion auf das Gebührenmodell. Unser Auftraggeber betont, dass nur bei jedem Kauf und Verkauf bei seiner Bank Gebühren fällig sind. Das Depot verur- sacht also keine laufenden Kosten, die beispielsweise jährlich abgerechnet werden. Für zukünftige Gebührenmodelle sollte die Anwendung jedoch in diese Richtung erweiter- bar sein. Als letzte Funktion nennt der Auftraggeber die Übersicht über den gesamten Aktienbe- stand. Hier soll der Benutzer seine Bestände sowie die statistischen Informationen sehen können. Diese werden zunächst nur textuell präsentiert. Abbildung 5.2 zeigt detaillierter die gewünschte Funktionalität der Anwendung als Anwendungsfall auf der Ebene des Meeresspiegels. Da die Anzahl der Funktionen noch überschaubar ist, werden die Verwaltung und Archivierung in einem einzigen Dia- gramm dargestellt. Abbildung 5.2: Grafischer Anwendungsfall auf Ebene des Meeresspiegels (Benutzersicht) Bei einer größeren Anzahl von Funktionen versuchen Sie bitte, diese weiter zu gruppie- ren und die Gruppierung auf der Drachenebene darzustellen. Die jetzige Drachenebene würde dann als reine Managementsicht auf die Wolkenebene befördert. Der Meeresspie- Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Das Fallbeispiel der Depotverwaltung PHP–Endlich objektorientiert 333 gel würde dann aus einer Vielzahl von Anwendungsfalldiagrammen bestehen, die jew- eils eine Gruppe von Funktionen realisieren. Die in Abbildung 5.2 dargestellten Funktionen werden nun weiter hinterfragt und spezi- fiziert. Wie stellt sich der Auftraggeber das Anlegen eines neuen Aktienbestands vor? Was ist dazu alles an Daten notwendig? Wie soll das Anlegen aus Sicht des Benutzers ablaufen? Zu jedem Anwendungsfall sollte man als nächsten Schritt eine textuelle Anwendungsfallschablone (Abb. 3.33) und/oder ein Aktivitätsdiagramm erstellen. Die Inhalte der textuellen Anwendungsfallschablone und des Aktivitätsdiagramms überlappen sich leicht, sodass Sie überlegen können, auf eines der beiden Verfahren zu verzichten. Zur Übung werden im Folgenden beide Verfahren durchgegangen. Dabei wird in Abbildung 5.3 zunächst die Anwendungsfallschablone für den Use-Case nachkaufen erstellt. Abbildung 5.3: Textueller Anwendungsfall zum „Nachkaufen“ von Aktien Achten Sie dabei insbesondere auf eine saubere Definition der Vorbedingung. Was muss erfüllt sein, damit der Anwendungsfall ausgeführt werden kann? Wodurch wird der Anwendungsfall ausgelöst? Die zweite Antwort ergibt das auslösende Ereignis. Die Definition der Fehlschläge aus fachlicher (nicht aus technischer!) Sicht und die Reak- tion darauf sind von ebenso großer Bedeutung wie die Beschreibung (Wie kommt man auf dem kürzesten Weg zu einer erfolgreichen Ausführung?) und die Erweiterungen bzw. Alternativen. Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. 5 – Projektpraxis 334 Während die Beschreibung den Primärfluss darstellt, der in frühen Prototypen zu reali- sieren ist, sind die Erweiterungen Hinweise auf mögliche optionale oder „Nice to have“- Funktionen. Alternativen beschreiben hingegen eher leichte Verzweigungen in der Beschreibung und damit alternative Wege, um zum Erfolg zu gelangen. Gewünschte Abläufe mit Aktivitätsdiagrammen Ähnlich wie die Beschreibung, die Erweiterungen und Alternativen der textuellen Anwendungsfälle stellen die Aktivitätsdiagramme Abläufe im Geschäftsprozess dar, die man auch als Workflows bezeichnet. Die im Folgenden dargestellten Diagramme befin- den sich vorwiegend auf der Wasserspiegelebene und reichen leicht in die Fischebene herunter, die aber noch von einem Benutzer nachvollzogen werden kann. In Abbildung 5.4 wird das Vorgehen eines Benutzers beschrieben, der einen neuen Akti- enbestand anlegen will. Der Benutzer kommuniziert dabei mit dem zu erstellenden Pro- gramm zur Depotverwaltung. Nachdem der Benutzer den Dienst neuen Bestand anlegen ausgewählt hat, möchte unser Auftraggeber dem Benutzer eine Eingabemaske zur Verfügung stellen. Dort sind Anga- ben zur Aktie sowie die Daten des ersten Kaufs einzugeben. Zu den Angaben zur Aktie gehören insbesondere der Name der Aktie die ISIN (International Securities Identification Number), eine zwölfstellige Buchsta- ben-Zahlen-Kombination nach ISO 6166, die eine weltweit eindeutige Identifikation für ein Wertpapier darstellt; man kann diese Nummer also als Primärschlüssel betrachten Die wichtigsten Daten zum ersten Kauf, die den vorhandenen Aktienbestand ausma- chen, sind das Datum des Kaufs die Anzahl der gekauften Aktien deren Kurs, zu dem die Aktien gekauft wurden Gebühren, die bei dem Kauf angefallen sind Meinung Sie erkennen, dass die erste Phase sehr textlastig ist. Es gilt hier vor allem, Begriffe, Aufgaben und Funktionen zu definieren und eine gemeinsame Sprache mit dem Auftraggeber zu finden, der meist aus einem anderen Fachgebiet stammt. Sie als Analytiker müssen dabei in den Gesprächen und Workshops die „richtigen“ Fragen stellen. Eine kreative Atmosphäre mit verschiedenen Personen, also verschiedenen Sichtweisen, ist dabei hilfreich. Versuchen Sie auch herauszufinden, welche Funktio- nen nicht zwingend in den ersten Schritten des Projekts notwendig sind. Ein Ausfül- len der Schablonen im stillen Kämmerlein und insbesondere ein Copy-Paste-Ausfül- len erzeugt zwar Papier, aber nur einen geringen Mehrwert! Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Das Fallbeispiel der Depotverwaltung PHP–Endlich objektorientiert 335 Die notwendigen Daten erzeugen ein neues Aktienbestandsobjekt, nachdem die einge- gebenen Daten auf Gültigkeit geprüft worden sind. Dieses Objekt wird dann in der Depotverwaltung festgehalten, worüber der Benutzer abschließend informiert wird. Abbildung 5.4: Aktivitätsdiagramm „neuer Aktienbestand anlegen“ Wenn mehrere Bestände angelegt worden sind, soll der Benutzer einen Bestand zur wei- teren Verarbeitung auswählen können. Dieser Vorgang ist in Abbildung 5.5 dargestellt. Nach der Aufforderung des Benutzers zur Auswahl eines Bestands wird zunächst eine Liste des Gesamtbestands angezeigt. Zusätzlich soll an dieser Stelle zu jedem Bestand seine aktuelle Bilanz erscheinen. Profitipp Definieren Sie stets zunächst das Primärszenario, das der Beschreibung der textuel- len Schablone entspricht. Ihnen mag dies zunächst zu trivial erscheinen, aber bei der Besprechung mit dem Auftraggeber und den Benutzern ergeben sich dadurch viele neue Erkenntnisse. Bedenken Sie: Die Diagramme dienen in erster Linie nicht dem Selbstzweck, sondern als Diskussionsgrundlage! Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. 5 – Projektpraxis 336 Mit dem Begriff der Bilanz ist in diesem Fall keine Bilanz im betriebswirtschaftlichen Sinne gemeint. Unser Auftraggeber möchte dem Kunden an dieser Stelle die Statistik mit allen Gewinnen und Verlusten der Bestände sowohl in Euro, als auch in Prozent präsen- tieren. Wenn ein Aktienbestand noch nicht verkauft wurde, also noch im Besitz des Anle- gers ist, sollen die aktuellen Kurse der Börse als Referenzdaten verwendet werden. Wie Sie dies realisieren, überlässt der Auftraggeber Ihnen als Entwickler. Aus der Liste der Bestände kann der Benutzer nun einen Bestand auswählen, der noch nicht verkauft wurde. Den gewählten Bestand merkt sich das Verwaltungsprogramm. Somit kann der Benutzer den gewählten Bestand verkaufen, neue Aktien nachkaufen oder eine Dividende hinzufügen. Abbildung 5.5: Aktivitätsdiagramm „Aktienbestand auswählen“ Abbildung 5.6 zeigt das Aktivitätsdiagramm, um eine Dividendenzahlung in Euro zu einem bereits gewählten Aktienbestand hinzuzufügen. Dies geschieht wiederum über eine Eingabemaske der Depotverwaltung. Die Eingabe des Benutzers wird geprüft und die Daten des Bestands werden aktualisiert. Wie üblich, endet das Szenario mit einer Erfolgsmeldung an den Benutzer. Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Das Fallbeispiel der Depotverwaltung PHP–Endlich objektorientiert 337 Abbildung 5.6: Aktivitätsdiagramm „Dividende eingeben“ Als letztes Szenario wird in Abbildung 5.7 beschrieben, wie zu einem ausgewählten Aktienbestand neue Aktien hinzugekauft werden sollen. In der Sprache der Aktionäre wird dies übrigens als erfolgreiche Kauforder, ein Verkauf von Aktien als durchgeführte Verkauforder bezeichnet. Um mehr Aktien desselben Typs in den Bestand aufzunehmen, müssen die Daten des neuen Kaufvorgangs über eine Eingabemaske erfasst werden. Dabei handelt es sich wie bereits beim Anlegen des Bestands um das Datum des Kaufs die Anzahl der gekauften Aktien deren Kurs, zu dem die Aktien gekauft wurden Gebühren, die bei dem Kauf angefallen sind Nach der Prüfung wird der aktuelle Bestand dann wieder in der Depotverwaltung gespeichert. Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. 5 – Projektpraxis 338 Abbildung 5.7: Aktivitätsdiagramm „Aktien zu vorhandenem Bestand nachkaufen“ In diesem Zusammenhang stellt sich die Frage, wie das Aktualisieren des Bestands aus- sieht. Sollen alle einzelnen Kaufvorgänge im Bestand unabhängig voneinander festge- halten werden? Dies entspricht in der Implementierung eine Liste von Kaufvorgängen im Bestand. Überraschenderweise verneint unser Auftraggeber die Antwort und skiz- ziert folgendes Beispiel: Nehmen Sie an, Sie haben zum Zeitpunkt D1 = 01.01.2010 Anz1 = 200 Aktien vom Typ A für Kurs1 = 1.00 €/Stück gekauft. Dann kauften Sie zum Zeitpunkt D2 = 01.03.2010 noch- mals Anz2 = 100 Aktien á Kurs2 = 2.00 €/Stück. Nun ist der Zeitpunkt D3 = 01.06.2010 und Sie wollen wissen, wie viel Euro bzw. wie viel Prozent Zinsen Sie bis heute erwirtschaftet haben. Der Kurs der Aktie liegt jetzt bei Kurs3 = 3.8 €/Stück. Gebühren sollen nicht berücksichtigt werden. Zum Zeitpunkt D1 haben Sie 2 von 3 Anteilen an Ihrem heutigen Bestand gekauft und zum Zeitpunkt D2 einen weiteren Anteil. Sie haben also 2/3 Ihres heutigen Bestandes zu je 1.00 €/Stück und 1/3 zu je 2.00 €/Stück. Grafisch würden Sie dabei vorgehen wie in Abbildung 5.8 dargestellt. Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Das Fallbeispiel der Depotverwaltung PHP–Endlich objektorientiert 339 Abbildung 5.8: Berechnung eines virtuellen Aktienkaufs Sie bilden den Mittelwert zwischen den beiden Datumswerten und auch zwischen den beiden Kursen unter Berücksichtigung der gekauften Anzahl an Aktien. Dies wird in der Mathematik als gewichteter arithmetischer Mittelwert bezeichnet. Der Mittelwert für das Datum Dx kann somit berechnet werden, indem man von D1 aus den beim zweiten Kaufvorgang gekauften Anteil am jetzigen Bestand, also das Gewicht g, addiert. Das zu addierende Gewicht können Sie ermitteln mit der Formel $g = $Anz2 / ($Anz1 + $Anz2). Zwischen D1 und D2 sind 59 Tage vergangen. Diese Anzahl der vergangenen Tage zwi- schen zwei Datumswerten können Sie übrigens mit der PHP-Funktion strtotime ermit- teln, die als Parameter ein Datum als Zeichenkette erhält und einen UNIX-Zeitstempel zurückliefert. Über die Formel $anzTage = (strtotime($D2)-strtotime($D1))/86400 können Sie dann die Anzahl der vergangenen Tage ermitteln. Um eine Anzahl an Tagen zum Datum D1 zu addieren, können Sie bei der Implementierung die PHP-Funktion date_add verwenden. Diese benötigt ein Datumsobjekt als Eingabe, sodass Sie D1 zunächst in ein Datumsobjekt umwandeln müssen. Als zweiten Parameter erwartet die Funktion eine speziell formatierte Zeichenkette, die die Anzahl der zu addierenden Tage enthält. Die Berechnung zur Ermittlung des neuen Datums Dx lautet also $Dx = date_add(new Date- Time($D1), new DateInterval('P'.round($g*$anzTage,0).'D')). Die entsprechende Berechnung für die Kurse gestaltet sich etwas einfacher, da Sie dort ja direkt mit Zahlenwerten arbeiten. Der gewichtete Mittelwert für den Kurs einer einzel- nen Aktie Kx lautet Kx = $K1 + $K1 * $g. Selbstverständlich gehört noch kein PHP-Code in die frühe Phase der objektorientierten Analyse. Sie können stattdessen auch eine mathematische Schreibweise zur Definition der Formeln verwenden. Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. [...]... Kaufdatum und den Kaufkurs ausgegeben < ?php require_once("classloader.inc .php" ); ?> < ?php $metro=new Aktie("METRO AG Stammaktien o.N.","DE0007257503", "http://www.boerse- ISIN=DE0007257503"); $kauforder=new Kauforder($metro,200,"01.01.2010",1.00,9.90); Listing 5.7: Test des Aktienbestands sowie Hinzufügen einer Dividende und zweiten Kauforder PHP–Endlich objektorientiert Please purchase... gesetzt, da sie nach der Erzeugung des Aktienobjekts nur noch ausgelesen und nicht geändert werden sollen < ?php class Aktie{ private $name; // Name der Aktie Listing 5.2: Die Klasse der Aktie PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 347 5 – Projektpraxis private $isin; // ISIN-Nummer der Aktie private $url; // URL zur Aktie, zum Abrufen des... Einfluss auf die Fachlogik, die mit PHP 5.3 unter Anwendung der Objektorientierung umgesetzt wird Diese Fachlogik hat wiederum Zugriff auf ein Datenzugriffsobjekt zum Laden und Speichern der Aktienbestände Abbildung 5.15: Beispiel eines vertikalen Prototyps PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 345 5 – Projektpraxis Reihenfolge und Inhalte... Get-Methoden ausgelesen < ?php require_once("classloader.inc .php" ); ?> < ?php $metro=new Aktie("METRO AG Stammaktien o.N.","DE0007257503", "http://www.boerse- ISIN=DE0007257503"); echo 'Name: '.$metro->getName().''; echo 'ISIN: '.$metro->getISIN().''; echo 'URL: '.$metro->getURL().''; ?> Listing 5.1: Die erste Testklasse der Fachlogik – die Aktie Bevor Sie nun... aus der Klasse des Aktienbestands stammen Dabei handelt es sich um eine zentrale Verwaltungsklasse, die ihre Dienste für den Benutzer bereitstellt PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 343 5 – Projektpraxis Abbildung 5.14: Das Klassendiagramm für die Depotverwaltung auf Muschelebene Die benötigten Funktionen des Ladens und Speicherns... sein soll < ?php abstract class Order{ private $aktie; private $anzahl=0; private $datum; private $einzelpreis; private $gebühr; public function construct( $aktie,$anzahl,$datum,$einzelpreis,$gebühr){ $this->setAktie($aktie); $this->setAnzahl($anzahl); $this->setDatum($datum); $this->setEinzelpreis($einzelpreis); $this->setGebühr($gebühr); Listing 5.4: Implementierung der Klasse „Order“ PHP–Endlich objektorientiert... bisherigen Analyse eine zentrale Klasse der zu erstellenden Anwendung dar Abbildung 5.11: Erstes Klassendiagramm der Analyse für die Depotverwaltung PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 341 5 – Projektpraxis Der Zustand eines Aktienbestands Bevor man sich dem Design der Anwendung widmet, kann es sinnvoll sein, von den Hauptklassen ein... getAktie(){ return $this->aktie; } private function setAktie($value){ Listing 5.8: Implementierung des Aktienbestands ohne Verkauf und ohne Bilanz PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 353 5 – Projektpraxis $this->aktie=$value; } public function getVerkaufGebühren(){ return $this->verkaufGebühren; } private function setVerkaufGebühren($value){... ggf angefallene Verkaufsgebühren Die Bilanz wird in diesem Fall aus den Verkaufsdaten ermittelt und kann im Nachhinein nicht mehr verändert werden PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 355 5 – Projektpraxis In Listing 5.9 werden zwei Aktienbestände testweise verwaltet Zunächst wird eine Commerzbank-Aktie angelegt mit ihrem Namen, der... existierende Klasse des Aktienbestands wird dabei um zwei Methoden erweitert Einerseits muss die Verkaufsorder in den Bestand mit aufgenommen werden Dies PHP–Endlich objektorientiert Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 357 5 – Projektpraxis geschieht über die Methode addVerkauforder($value), die eine Verkaufsorder als Eingabeparameter übergeben bekommt Dabei erfolgt . www.verypdf.com to remove this watermark. Das Fallbeispiel der Depotverwaltung PHP – Endlich objektorientiert 331 Damit jeder Benutzer dies kann, muss er sich. www.verypdf.com to remove this watermark. Das Fallbeispiel der Depotverwaltung PHP – Endlich objektorientiert 333 gel würde dann aus einer Vielzahl von Anwendungsfalldiagrammen