XxAnimusxX
Unregistered
|
Beitrag #1
Modul 1: Bankwesen
In diesem Modul möchten wir das "Bankwesen" ausmodellieren, in dem wir (hoffentlich zusammen) mehrere UseCases erstellen, um eine gute Dokumentation und Iteration zu ermöglichen.
Hierzu die Anforderungen vom "Auftragsgeber":
[spoiler] Auftragsgeber schrieb:Wir möchten in unser Sytem ein Modul einbauen, welches unseren Mitgliedern ermöglicht, eine digitale Währung zu besitzen und diese zu benutzen, um bestimmte Gegenstände zu erwerben.
Damit das "Bankwesen" so realitätsnah wie möglich gestaltet werden soll, müssen einige Anforderungen eingehalten werden:
- Jede Bank hat einen eindeutigen und einzigartigen Namen
- Jede Bank besitzt eine eindeutige, einzigartige Bankleitzahl
- Jedes Bankkonto besitzt eine eindeutige, für jede Bank einzigartige Kontonummer
- Jede Bank muss sämtliche Transaktionen protokollieren
- Daraus einhergehend muss jede Bank über das eigene Kapitel und Anzahl der Kunden bescheid wissen
- Jede Bank hat Kontoerstellungs- und Führungsgebühren, die dem Kunden auferlegt werden
- Jede Bank bietet den Kunden einen individuell festgelegten Zinssatz an
- Jede Bank erlaubt einem Kunden immer nur ein Konto
- Jede Bank hat ein individuelles Aus- und Einzahlungsintervall (z.B. um die Rendite auszuzahlen und/oder die Kontogebühren abzubuchen)
- Jede Bank überprüft bei der Erstellung eines neuen Kundenkontos die Bonität des Kunden und gibt hierfür bestimmte Kriterien vor, die vom Kunden nicht eingesehen werden dürfen/sollen
- Jede Bank bietet dem Kunden an, ein beliebiges Konto einzufrieren: Transaktionen mit diesem Konto und anfallende Gebühren werden ausgesetzt.
- Jede Bank erhebt einen individuell festgelegten Prozentsatz das auf einem eingefrorenen Konto vorhandenen Kapitals als Bearbeitungsgebühr bei der Wiederherstellung eines eingefrorenen Kontos
- Sollte der Kunde nicht in der Lage sein, die Kontoführungsgebühren zu entrichten, wird das Konto des Kunden spätestens nach Ablauf eines weiteren Zahlungsintervalls aufgelöst.
- Jede Bank belohnt den Kunden für bestimmte Aktionen im System (z.B. Beiträge erstellen) mit einer individuell festgelegten Prämie
- Sollte ein Kunde sich nicht mehr im System befinden (z.B. gebannt/gelöscht), wird jede Bank alle Konten des Kunden auflösen
Weitere Änderungen/Ergänzungen zu einem späteren Zeitpunkt mit eingeschlossen.
Damit die Kunden entsprechend mit den Banken interagieren können, müssen auch diese möglichst realitätsnah integriert werden:
- Jeder Kunde kann sich ein Konto bei einer beliebigen Bank erstellen, sofern die Bonitätsprüfung positiv erfolgte
- Der Kunde kann ein Teil seines Vermögens an einen anderen Kunden einer beliebigen Bank - aber nie sich selbst - transferieren
- Der Kunde kann ein Teil seines Vermögens abheben, sofern eigenes Kapital zur Verfügung steht
- Der Kunde kann Barvermögen in ein eigenes Konto einer beliebigen Bank einzahlen
- Der Kunde kann ein beliebiges Konto auflösen - in diesem Fall wird das gesamte Vermögen im Konto ausgezahlt (s. Geld abheben)
- Der Kunde kann zu jeder Zeit sämtliche pers. Transaktionen und das pers. Vermögen eines Bankkontos einsehen
[/spoiler]
Unser "Auftraggeber" hat zudem mehrere Mitarbeiter dazu genötigt, detailliertere Anforderungen zu den einzelnen Punkten zu schreiben:
[spoiler] Kunde hebt Geld ab schrieb:Nachdem verifiziert wurde, dass der Kunde tatsächlich ein Kunde der jeweiligen Bank und der Kontoinhaber ist,
wird der gewünschte Betrag vom Konto abgebucht und dem Kunden ausgezahlt.
Falls der Kunde nicht der Kontobesitzer ist oder der gewünschte Betrag vom Konto nicht abgebucht werden kann,
wird eine Fehlermeldung angezeigt und der Buchungsvorgang wird abgebrochen.
Kunde zahlt geld ein schrieb:Nachdem verifiziert wurde, dass der Kunde tatsächlich ein Kunde der jeweiligen Bank und der Kontoinhaber ist,
wird der gewünschte Betrag in das Konto eingezahlt.
Falls der Kunde nicht der Kontobesitzer ist oder der gewünschte Betrag dem Konto nicht überwiesen werden kann,
wird eine Fehlermeldung angezeigt und der Buchungsvorgang wird abgebrochen.
Kunde überweist geld schrieb:Nachdem verifiziert wurde, dass der Kunde tatsächlich ein Kunde der jeweiligen Bank und der Kontoinhaber ist,
wird der gewünschte Betrag dem Konto eines anderen Kunden überwiesen.
Falls der Kunde nicht der Kontobesitzer ist,
der gewünschte Betrag vom Konto nicht abgebucht werden,
der Empfänger nicht identifiziert werden kann oder das Empfängerkonto eingefroren ist,
wird eine Fehlermeldung angezeigt und die Transaktion wird abgebrochen.
Kunde erstellt ein neuen Konto schrieb:Nachdem die Bonität des Kundes überprüft wurde, legt die Bank ein neues Konto an und zeigt dem Kunden die neuen Kontodaten.
Sollte die Bonitätsprüfung negativ ausgefallen sein oder kann der Kunde die Kontoerrichtungsgebühr nicht bezahlen,
wird eine Fehlermeldung angezeigt und der Erstellungsvorgang abgebrochen.
Kunde löst ein Konto auf schrieb:Nachdem verifiziert wurde, dass der Kunde tatsächlich ein Kunde der jeweiligen Bank und der Kontoinhaber ist,
wird das gewünschte Konto aufgelöst und der noch im Konto vorhandene Geldbetrag dem Kunden ausgezahlt.
Falls der Kunde nicht der Kontobesitzer ist,
wird eine Fehlermeldung angezeigt und die Auflösung abgebrochen.
Kunde friert Konto ein schrieb:Nachdem verifiziert wurde, dass der Kunde tatsächlich ein Kunde der jeweiligen Bank und der Kontoinhaber ist,
wird das jeweilige Konto eingefroren und der Kunde darüber informiert.
Falls der Kunde nicht der Kontobesitzer ist,
wird eine Fehlermeldung angezeigt und die Auflösung abgebrochen.
Kunde beauftragt die Wiederherstellung eines Kontos schrieb:Nachdem verifiziert wurde, dass der Kunde tatsächlich ein Kunde der jeweiligen Bank und der Kontoinhaber ist und das angegebene Konto eingefroren wurde,
wird nach der Entrichtung der Bearbeitungsgebühr das Konto wiederhergestellt.
Falls der Kunde nicht der Kontobesitzer ist,
das Konto nicht zuvor eingefroren wurde oder der Kunde nicht die Bearbeitungskosten entrichten kann,
wird eine Fehlermeldung ausgegeben und die Wiederherstellung abgebrochen.
[/spoiler]
Nun müssen wir die UseCases zu den Kunden-Interaktionen modellieren, die im 2. Spoiler vorhanden sind.
Wie man UseCases definiert und ein UseCase-Diagramm erstellt, hatte ich im letzten Teamtreff erklärt, jedoch werde ich euch noch den Skriptausschnitt hierzu posten.
UseCase-Erstellung
[Skriptausschnitt aus "Objektorientierte Analyse und Design"]
Bitte nicht weiterschicken, da sonst Copyrightverletzungen drohen :(
|
|
13.02.2011 17:37 |
|
XxAnimusxX
Unregistered
|
Beitrag #3
RE: Modul 1: Bankwesen
Ich werde wahrscheinlich auch ne Woche und paar Tage brauchen, bis ich voll bei der Sache bin, ich werde mein Ergebnis einfach hier rein posten wenn ich fertig bin, also schlage ich vor, dass wir alle so verfahren: Seid ihr damit fertig oder wollt ihr feedback, einfach in diesen Thread posten.
Wenn ich genug Input habe, schließe ich die Informationsaufnahme und mache mich an die Klassendiagramme. Wir werden dann bei den kommenden Teamtreffs entscheiden, ob ihr auch bei den Klassendiagramm mitreden wollt oder ob es dabei bleibt.
|
|
13.02.2011 17:55 |
|
melli
Philosoph
Beiträge: 702
Registriert seit: Jan 2010
Bewertung 70
Verwarnungslevel: 0%
|
Beitrag #5
RE: Modul 1: Bankwesen
nochmal ne aktuelle information:
montag schreib ich deutsch, donnerstag englisch, freitag religion und die woche drauf mittwoch ebf1 spiel & sprache. ne gruppenarbeit in uvl muss ich auch noch machen und dann beginnt auch schon die praktikumsphase, in der ich auch viele sachen planen und durchführen muss. da ich sowas auch zum ersten mal mache, wird mich das voll einspannen.
bis das so weit vorbei ist, ist anfang/mitte april.
ich hab da ehrlich gesagt auch keinen nerv, mir das dann hier noch anzueignen, zumal ich die zeitersparnis gar nicht sehe. abgesehen von dir, hakan, bin ich - so behaupte ich mal - die einzige, die davon zumindest schonmal gehört und daher ne vorstellung davon hat, wie das alles ungefähr ablaufen muss. und selbst für mich ist das haufenweise arbeit und geht nicht mal eben nebenbei. darum wird das für die anderen vier (armin, kevin, mäx und magnus) bestimmt mindestens genauso schwierig sein und viel zeit in anspruch nehmen.
gehen wir davon aus, dass wirklich alle einen entwurf vorstellen:
bis das gemacht ist, vergehen wochen und mit welchem ergebnis? du hast (garantiert) 6 komplett unterschiedliche ausarbeitungen, zu denen du deinen senf geben (was ja auch nochmal zeit kostet) und daraus dann eine "musterlösung" konstruieren musst. höchstwahrscheinlich wird das deine eigene dann sein, weil du, davon gehe ich einfach mal aus, sowieso schon genau im kopf hast, wie was laufen muss, was du drin haben willst und wie das ganze auszusehen hat.
nimms mir bitte nicht übel, ich finds auch echt gut, dass du uns miteinbeziehen willst, aber das hier wird eher ein schuss in den ofen.
I didn't fall, I attacked the floor.
|
|
17.02.2011 13:02 |
|
XxAnimusxX
Unregistered
|
RE: Modul 1: Bankwesen
Ihr führt euch ja auf als hätte ich euch alle gezwungen in einer Kohlemine schuften zu gehen xD
Das alles hier ist ein freiwilliges Projekt, das ich nicht nur wegen der Zeiteinsparung durch den Entwurf für alle eröffnet habe, sondern auch deswegen, weil so jeder seine Gedanken und Meinungen zu einem Projekt äußern kann - ich kann nicht während der Ausprogrammierung noch Änderungswünsche und andere Kleinigkeiten einberechnen, da es mich viel zu sehr aufhält, da ich selbst noch für Klausuren lernen und Tutorien für andere Studenten vorbereiten muss, es ist also nicht so, das ihr die einzigen seid, die genug anderes zu tun haben :b
Im Klartext heißt das: Wenn ihr Ideen oder andere Einflüsse mit in die einzelnen Module einbringen möchtet, so verlange ich ein gewisses Maß an Konformität mit meinen Arbeitsvorgängen, es ist nichts dabei kleinere Texte zu verfassen, wie ich es im meinem einleintenden Beitrag gemacht habe.
Also werde ich die einzelnen Module so gut wie möglich Dokumentieren und in einzelne UseCase-Diagramme aufteilen, wer dazu Änderungsvorschläge hat, kann diese gerne äußern und wir können den Entwurf so gemeinsam entscheiden - wollt ihr jedoch danach noch irgendetwas einbringen, werde ich das so handhaben wie bei den Teamtreffs: War man nicht da, hat man kein Mitspracherecht.
Doch da ich ungefähr abschätzen kann, wie der Output zu solchen Projektentwürfen aussehen wird, könnten wir eigentlich komplett auf die Dokumentation im Forum verzichten und ich programmiere das einfach durch.
Was haltet ihr davon? Ich sehe ein das es wohl etwas zu viel war euch so etwas reinzwängen zu wollen, mir würde es nichts ausmachen wenn ich einfach wieder "für mich" programmiere.
|
|
18.02.2011 00:55 |
|