Projekt onlineShop

Werbung
Projekt onlineShop
1/51 4. Informatiktag NRW 14.3.05
Projekt online­Shop
4. Informatiktag NRW – 14.3.05
Barbara Leipholz­Schumacher
Euregio­Kolleg, Würselen
Projekt onlineShop
2/51 4. Informatiktag NRW 14.3.05
Die Firma „Sprachen Lernen“ möchte ihr Angebot auf online­Bestellungen ausweiten. Sprache
Art
Englisch
Anfänger, Fortgeschritten
Englisch
Anfänger + Fortgeschritten Netzwerk (5 Lizenzen)
Französisch
Anfänger, Fortgeschritten
Französisch
Anfänger + Fortgeschritten Netzwerk (5 Lizenzen)
Spanisch
Anfänger, Fortgeschritten
Spanisch
Anfänger + Fortgeschritten Netzwerk (5 Lizenzen)
Chinesisch
Anfänger
Preis
44,95 €
199,95 €
44,95 €
199,95 €
44,95 €
199,95 €
79,95 €
Neue Kunden können sich online eintragen. Bereits registrierte Kunden melden sich mittels Benutzername und
Kennwort an und können online Rechnungs­ und Lieferadresse und Bankverbindung bzw. Kreditkartendaten
aktualisieren.
Der Kunde kann von den angezeigten Artikeln einzelne Artikel zur Bestellung auswählen. Um die endgültige
Bestellung durchzuführen, muss er sich authentisieren. Danach werden die zur Bestellung vorgemerkten Artikel, ihre
Preise sowie der Rechnungsbetrag angezeigt. Wird die Bestellung abgeschickt, erhält der Kunde eine E­Mail mit der
Bestätigung der Bestellung und der Rechnung.
Das System soll Kundendaten verwalten, insbesondere Name, Vorname, e­Mail­Adresse, Rechnung­ und
Lieferadresse,
Bankverbindung, Benutzername und Passwort des Kunden, sowie seine Bestellungen.
Zusätzlich hat der Anbieter die Möglichkeit die einzelnen Artikel zu verwalten, d.h. Artikel aus dem Angebot
streichen, Artikel ergänzen und Preise ändern.
Projekt onlineShop
3/51 Phasen der Softwareentwicklung
•
Analyse
•
Entwurf
•
Implementierung
•
Test
•
Systemeinführung
•
Wartung
4. Informatiktag NRW 14.3.05
Projekt onlineShop
4/51 Objektorientierte Analyse
Relevante Abläufe der Realität auf ein Modell übertragen. ➔
Erforschen des Anwendungsbereichs
➔
Anwendungsfälle herausfinden
➔
Objekte aus den Anwendungsfällen herausarbeiten
➔
Klassen von den Objekten ableiten
➔
den Klassen Aufgaben zuordnen
➔
Zusammenarbeit von Klassen festlegen
Quelle: http://www.die.informatik.uni­siegen.de/iml/im/ooa/ooa.htm#anfang
4. Informatiktag NRW 14.3.05
Projekt onlineShop
Anforderung
5/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
6/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
Anforderung
7/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
8/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
9/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
10/51 4. Informatiktag NRW 14.3.05
Klassen ermitteln
Analyse ­> Textanalyse –> Substantive unterstreichen
Das Angebot:
Sprache
Art
Englisch
Anfänger, Fortgeschritten
Englisch
Anfänger + Fortgeschritten Netzwerk (5 Lizenzen)
Französisch
Anfänger, Fortgeschritten
Französisch
Anfänger + Fortgeschritten Netzwerk (5 Lizenzen)
Spanisch
Anfänger, Fortgeschritten
Spanisch
Anfänger + Fortgeschritten Netzwerk (5 Lizenzen)
Chinesisch
Anfänger
Preis
44,95 €
199,95 €
44,95 €
199,95 €
44,95 €
199,95 €
79,95 €
Neue Kunden können sich online eintragen. Bereits registrierte Kunden melden sich mittels Benutzername und
Kennwort an und können online Rechnungs­ und Lieferadresse und Bankverbindung aktualisieren.
Der Kunde kann von den angezeigten Artikeln einzelne Artikel zur Bestellung auswählen. Um die endgültige
Bestellung durchzuführen, muss er sich authentisieren. Danach werden die zur Bestellung vorgemerkten Artikel, ihre
Preise sowie der Rechnungsbetrag angezeigt. Wird die Bestellung abgeschickt, erhält der Kunde eine E­Mail mit der
Bestätigung der Bestellung und der Rechnung. Das System soll Kundendaten verwalten, insbesondere Name, Vorname, e­Mail­Adresse, Rechnung­ und
Lieferadresse, Bankverbindung, Benutzername und Passwort des Kunden, sowie seine Bestellungen.
Zusätzlich hat der Anbieter die Möglichkeit die einzelnen Artikel zu verwalten, d.h. Artikel aus dem Angebot
streichen, Artikel ergänzen und Preise ändern.
Projekt onlineShop
11/51 Klassen ermitteln
Analyse ­> Textanalyse –> Substantive ­> Wertetest ­> Frage
Kann ein Substantiv einen konkreten Wert annehmen?
•
•
•
•
•
•
•
•
•
•
•
•
Angebot
Sprache
Art
Preis
Rechnungsadresse
Lieferadresse
Kunde
• Name
• Vorname
• Adresse
• Bankverbindung
• ....
• Benutzername
• Passwort
Artikel
Bestellung
Rechnung
E­Mail
Bestätigung
NEIN
JA
JA
JA
NEIN
NEIN
NEIN
JA
JA
NEIN
NEIN
JA
JA
NEIN
NEIN
NEIN
JA
NEIN
4. Informatiktag NRW 14.3.05
Projekt onlineShop
12/51 4. Informatiktag NRW 14.3.05
Klassen ermitteln
Analyse ­> Textanalyse –> Substantive ­> Wertetest ­> Weitere Fragen
1. Ist „Substantiv“ eindeutig identifizierbar, bzw. ist es wichtig 2 verschiedene
Exemplare zu unterscheiden?
2. Hat „Substantiv“ außer dem indentifizierenden Attribut noch ein weiteres?
3. Gibt es von „Substantiv“ eine Mehrzahl?
Substantiv
Frage 1
Frage 2
Frage 3
Kunde
JA
JA
JA
Adresse
JA
JA
JA
Bank
JA
JA
JA
Kreditkarte
JA
JA
JA
Artikel
JA
JA
JA
Bestellung
JA
JA
JA
Rechnung
JA
JA
JA
Projekt onlineShop
13/51 4. Informatiktag NRW 14.3.05
Operationen ermitteln
Analyse ­> Textanalyse –> Substantive ­> Wertetest ­> Weitere Fragen
Tut Substantiv etwas oder wird mit Substantiv etwas getan?
Substantiv
Frage 4
Kunde
wählt Artikel, geht zur Kasse,...
Adresse
ändern
Bank
ändern; Kontonummer, Bank, Bankleitzahl
angeben
Kreditkarte
ändern; Kartennummer, Art, Verfallsdatum ...
angeben
Artikel
Artikelnummer, Sprache, Art, Preis angeben
Bestellung
Bestellung angeben
Rechnung
Rechnung angeben
Projekt onlineShop
14/51 4. Informatiktag NRW 14.3.05
Operationen und Assoziationen ermitteln
Analyse ­> Textanalyse
Assoziation
Lehrbuch Grundlagen der Informatik, Helmut Balzert, S. 175
Eine Assoziation modelliert Verbindungen zwischen Objekten einer oder mehrer Klassen. Eine Assoziation
modelliert stets Beziehungen zwischen Objekten, nicht zwischen Klassen. Es ist jedoch üblich, von einer Assoziation
zwischen Klassen zu sprechen, obwohl streng genommen die Objekte dieser Klasse gemeint sind.
Projekt onlineShop
15/51 4. Informatiktag NRW 14.3.05
Operationen und Assoziationen ermitteln
Analyse ­> Textanalyse –> Verben unterstreichen
Angebot:
Sprache
Art
Englisch
Anfänger, Fortgeschritten
Englisch
Anfänger + Fortgeschritten Netzwerk (5 Lizenzen)
Französisch
Anfänger, Fortgeschritten
Französisch
Anfänger + Fortgeschritten Netzwerk (5 Lizenzen)
Spanisch
Anfänger, Fortgeschritten
Spanisch
Anfänger + Fortgeschritten Netzwerk (5 Lizenzen)
Chinesisch
Anfänger
Preis
44,95 €
199,95 €
44,95 €
199,95 €
44,95 €
199,95 €
79,95 €
Neue Kunden können sich online eintragen. Bereits registrierte Kunden melden sich mittels Benutzername und
Kennwort an und können online Rechnungs­ und Lieferadresse und Bankverbindung bzw. Kreditkartendaten
aktualisieren.
Der Kunde kann von den angezeigten Artikeln einzelne Artikel zur Bestellung auswählen. Um die endgültige
Bestellung durchzuführen, muss er sich authentisieren. Danach werden die zur Bestellung vorgemerkten Artikel, ihre
Preise sowie der Rechnungsbetrag angezeigt. Wird die Bestellung abgeschickt, erhält der Kunde eine E­Mail mit der
Bestätigung der Bestellung und der Rechnung. Das System soll Kundendaten verwalten, insbesondere Name, Vorname, e­Mail­Adresse, Rechnung­ und
Lieferadresse, Bankverbindung, Benutzername und Passwort des Kunden, sowie seine Bestellungen.
Zusätzlich hat der Anbieter die Möglichkeit die einzelnen Artikel zu verwalten, d.h. Artikel aus dem Angebot
streichen, Artikel ergänzen und Preise ändern.
Projekt onlineShop
16/51 4. Informatiktag NRW 14.3.05
Operationen und Assoziationen ermitteln
Analyse ­> Textanalyse ­> Verben
•
•
Ein Verb, das im Zusammenhang mit einem Substantiv erwähnt wird, das bereits als Klasse erkannt wurde, wird
es als Operation zu dieser modelliert. Ein Verb, das im Zusammenhang mit mehreren Substantiven steht, bei denen es sich mit hoher
Wahrscheinlichkeit um Klassen handelt, wird voraussichtlich als Assoziation zwischen den beiden Klassen
modelliert.
Ausdrücke wie "Bestellung ausführen", statt "bestellen", werden wie Verben betrachtet. Kunde – auswählen – Artikel
Assoziation zwischen Kunde und Artikel
Kunde – bestellen – Artikel
Assoziation zwischen Kunde und Artikel
Kundendaten eintragen – Server
Assoziation zwischen Kunde und Server
Kunde anmelden ­ Server
Operation von Server
Kunde authentisieren – Server
Operation von Server
Kunde – aktualisieren – Bankverbindung, .. , Adressen
Assoziation
Kunde, Bestellung, Artikel – verwalten – Server
Assoziation
Artikel – streichen, hinzufügen
Operation von Artikelverwaltung
Artikel – Preis ändern
Operation
Kundenverwaltung – verwaltet ­ Kunden
Assoziation zwischen Kundenverwaltung und Kunde
Artikelverwaltung – verwaltet – Artikel
Assoziation zwischen Artikelverwaltung und Artikel
Projekt onlineShop
17/51 4. Informatiktag NRW 14.3.05
Assoziationen ermitteln, Kardinalitäten und Rollen ergänzen
Analyse ­> Textanalyse ­> Verben
Kardinalität
Lehrbuch der Objektmodellierung, Heide Balzert, S. 57
Die Kardinalität bezeichnet die Wertigkeit einer Assoziation, d.h. sie spezifiziert die Anzahl der an der Assoziation
beteiligten Objekte.
Definition Rolle
Lehrbuch Grundlagen der Informatik, Helmut Balzert, S. 175
Die Rolle gibt an, welche Funktion ein Objekt in einer Assoziation hat.
Projekt onlineShop
18/51 4. Informatiktag NRW 14.3.05
Operationen und Assoziationen ermitteln
Kundenverwaltung
Server
verwaltet
kommuniziert mit
1..*
Adresse
Kunde
0..*
1..*
Artikel
wählt aus/ bestellt
hat
1..2
Konto
1..*
hat
hat
0..1
Geldkarte
0..1
verwaltet
Artikelverwaltung
Projekt onlineShop
19/51 4. Informatiktag NRW 14.3.05
CRC­Karten Analyse
CRC = Class ­ Responsibilities ­ Collaborators (Klasse ­ Zuständigkeiten ­ Partnerklassen)
Szenario
Objektorientierte Programmierung mit Java, David Barnes, Michael Kölling, S. 394
Ein Szenario ist ein Beispiel für eine Aktivität, die das System ausführen oder unterstützen muss. Szenarios werden
häufig auch als Geschäftsfälle (engl. use cases) bezeichnet.
Projekt onlineShop
20/51 4. Informatiktag NRW 14.3.05
CRC­Karten Analyse –> CRC­Karten
Kunde
Klassenname
Attribute
Operation
Beteiligte
Attribute
kundennummer
nachname
vorname
email
benutzername
passwort
Operation
gibKundennummer
gibNachname
...
aendereAdresse
aendereBankverbindung
aendereEmail
aenderePasswort
...
Beteiligte
Adresse
Konto
Geldkarte
Artikel
Bestellung
Warenkorb
Projekt onlineShop
21/51 4. Informatiktag NRW 14.3.05
CRC­Karten Analyse –> CRC­Karten
Warenkorb
Artikel
Attribute
artikelnummer
sprache
art
preis
Operation
gibArtikelnummer
gibSprache
...
aenderePreis
Beteiligte
Attribute
einkaufsliste
Operation
hinzufuegen
entfernen
ändereAnzahl
erhöheAnzahl
zuString
Beteiligte
ArtikelUndAnzahl
Projekt onlineShop
22/51 4. Informatiktag NRW 14.3.05
CRC­Karten Analyse ­> CRC­Karten
ArtikelUndAnzahl
Attribute
zahl
artikel
Operation
ändereAnzahl
erhöheAnzahl
gibAnzahl
gibArtikel
gibNummer
gibSprache
gibPreis
gibArtikel
Bestellung
Beteiligte
Artikel
Attribute
datum
kunde
bestelliste
Operation
toString
gibRechnung
Beteiligte
Datum
Kunde
ArtikelUndAnzahl
Projekt onlineShop
CRC­Karten
Analyse –> CRC­Karten
Karten so anordnen, dass •
•
Assoziationen und Kardinalitäten eingetragen werden können.
23/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
24/51 4. Informatiktag NRW 14.3.05
CRC­Karten
Analyse –> CRC­Karten
Kunde
Beteiligte
Adresse
Konto
Geldkarte
Artikel
Bestellung
Warenkorb
ArtikelUndAnzahl
Beteiligte
Artikel
1..*
1
1
macht
1..*
enthält
hat
1
1
enthält
Warenkorb
0..*
1
Bestellung
Beteiligte
ArtikelUndAnzahl
Beteiligte
Datum
Kunde
ArtikelUndAnzahl
Projekt onlineShop
25/51 Checkliste Klassen
Analyse ­> Checklisten
1. Liegt ein aussagefähiger Klassenname vor? 2. Ist das gewählte Abstraktionsniveau richtig? 3. Wann liegt keine Klasse vor?
4. Relevanz der Objekte einer Klasse für das System?
Quelle: http://www.die.informatik.uni­siegen.de/iml/im/ooa/check.htm#anfang
4. Informatiktag NRW 14.3.05
Projekt onlineShop
26/51 Checkliste Operationen
Analyse ­> Checklisten
1. Welche Aufgaben müssen realisiert werden?
2. Auf welche Ereignisse muss das System reagieren?
3. Welche Art von Operation liegt vor?
4. Zu welcher Klasse gehört die Operation?
5. Besitzt die Operation einen geeigneten Namen? Quelle: http://www.die.informatik.uni­siegen.de/iml/im/ooa/check.htm#anfang
4. Informatiktag NRW 14.3.05
Projekt onlineShop
Anwendungsfallanalyse
Analyse ­> Anwendungsfallanalyse
bilder/UseCaseKunde.gif
27/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
28/51 Szenarios
Analyse ­> Szenarios
•
Artikel zum Warenkorb hinzufügen
•
zur Kasse gehen
•
•
•
Authentisierung Server
Authentisierung Benutzer
Bestellung bestätigen
4. Informatiktag NRW 14.3.05
Projekt onlineShop
Prototyping
Analyse ­> Prototyping
29/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
30/51 Szenarios
Analyse ­> Szenario
1. Sequenzdiagramm „ Artikel zum Warenkorb hinzufügen“
bilder/SequenzInWarenkorb.jpg
2. Aktivitätsdiagramm „ Server­Authentisierung“
bilder/authentisierung.gif
3. Sequenzdiagramm „ zur Kasse“
bilder/SequenceBestellung.jpg
4. Informatiktag NRW 14.3.05
Projekt onlineShop
Objektorientierter Entwurf
Entwurf ­> Architektur
Drei­Schichten­Architektur 1. Benutzungsoberfläche
2. Fachkonzept
3. Datenhaltung
31/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
32/51 Objektorientierter Entwurf
Entwurf ­> Klassendiagramm
Klassendiagramm ergänzen
•
•
•
Container­Klassen
Attribute
• Sichtbarkeit
• Datentyp
Operationen
• Sichtbarkeit
• Signatur
• Konstruktoren
•
Uni­ und bidirektionale Assoziationen
•
Assoziation, Aggregation, Komposition
4. Informatiktag NRW 14.3.05
Projekt onlineShop
33/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
bilder/kunde2.jpg
34/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
bilder/sitzung.jpg
35/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
bilder/bestellung.jpg
36/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
bilder/kundenVerwaltung.jpg
37/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
bilder/artikelVerwaltung.jpg
38/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
bilder/server.jpg
39/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
bilder/serverKrypto.jpg
40/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
41/51 4. Informatiktag NRW 14.3.05
RMI ­ Remote Method Invocation
ShopClient
ShopClient
Server
Stub
Skeleton
Projekt onlineShop
42/51 Client
Stub
Stellvertreterobjekt des Servers mit gleicher
Schnittstelle
leitet Methodenaufrufe an den Server weiter
4. Informatiktag NRW 14.3.05
Server
Skeleton
nimmt Aufrufe des Stubs entgegen bereitet sie auf und übermittelt sie an das Serverobjekt erwartet das Ergebnis und sendet es zurück an den Stub
1. RMI­Referenzschicht Finden des Kommunikationspartners, Namensdienst (Registry)
2. RMI­Transportschicht Verwaltung der Kommunikationsverbindung und Abwicklung der Kommunikation
3. Transportschicht
stellt Host­zu­Host­Datendienste zur Verfügung
4. Internetschicht definiert den Aufbau von Datagrammen und routet Daten durchs Netz
5. Netzzugangsschicht enthält Routinen für den Zugriff auf physikalische Netze
Projekt onlineShop
43/51 4. Informatiktag NRW 14.3.05
rmiregistry
Naming.lookup
ShopClient
Server.anmelden()
Naming.rebind
Server
Projekt onlineShop
44/51 4. Informatiktag NRW 14.3.05
Interface IServer
import java.rmi.*;
import java.util.Vector;
public interface IServer extends Remote
{
•
public Vector authentisiereServer(String geheimzahl, String testChiffre) throws RemoteException;
•
public boolean authentisieren(String sitzungsID, String benutzername, String passwort) throws RemoteException;
•
public void inWarenkorb(String sitzungsID, String nummer) throws RemoteException;
•
public Vector gibWarenkorb(String sitzungsID) throws RemoteException;
•
public Vector gibBestellung(String sitzungsID) throws RemoteException;
•
public String gibAnzahl(String sitzungsID, String nummer) throws RemoteException;
•
public String gibGesamt(String sitzungsID, String nummer) throws RemoteException;
•
public void aendereAnzahl(String sitzungsID, String nummer, String anzahlNeu) throws RemoteException;
•
public void bestaetigen(String sitzungsID) throws RemoteException;
•
public void beenden(String sitzungsID) throws RemoteException;
}
Projekt onlineShop
45/51 Ergänzungen Server
import java.rmi.*;
import java.rmi.server.*;
public class Server extends java.rmi.server.UnicastRemoteObject implements IServer
//Konstruktor
public Server() throws RemoteException
{
super();
...
}
4. Informatiktag NRW 14.3.05
Projekt onlineShop
46/51 Ergänzungen Server
public static void main(String[] args) throws RemoteException
{
if (System.getSecurityManager() == null) System.setSecurityManager(new RMISecurityManager());
try {
Server server = new Server();
Naming.rebind("//IPAdresse/onlineShop",server);
} catch (Exception e) {
e.printStackTrace();
}
}
4. Informatiktag NRW 14.3.05
Projekt onlineShop
47/51 Ergänzungen Client
1. import java.rmi.*;
2. public static void main(String[] args) {
try {
System.setSecurityManager(new RMISecurityManager());
IServer server = (IServer) Naming.lookup("rmi://IPAdresse/onlineShop");
new ShopClient(server);
} catch (Exception e) {
e.printStackTrace();
}
}
4. Informatiktag NRW 14.3.05
Projekt onlineShop
48/51 Ergänzungen Client
3. Die Methoden:
try {
....
}
catch ( RemoteException fehler)
{
e.printStackTrace();
}
oder: public void methodenname(...) throws RemoteExeception
4. Informatiktag NRW 14.3.05
Projekt onlineShop
bilder/iserver.gif
49/51 4. Informatiktag NRW 14.3.05
Projekt onlineShop
50/51 1. Server und ShopClient kompilieren
2. Stub­ und Skeleton erzeugen
rmic Server ­> Server_Stub.class, Server_Skel.class
3. Namensdienst starten
rmiregistry
4. Server starten
java Server
java ­Djava.security.policy=/pfad/java.policy Server
5. Dateien auf Client­Rechner kopieren
ShopClient.class, Server_Stub.class
6. ShopClient starten
java ShopClient
java ­Djava.security.policy=/pfad/java.policy ShopClient
4. Informatiktag NRW 14.3.05
Projekt onlineShop
51/51 Security
Java_Home/jre/lib/security/java.policy
grant {
permission java.security.AllPermission;
};
oder
permission java.net.SocketPermission „localhost:1099“, „connect, accept,, listen“
4. Informatiktag NRW 14.3.05
Herunterladen