2 Use Case Realization Design

Werbung
Software Engineering Übung, LVNr:
Übungsleiter: Sabri Pllana
Designmodell v.1.0
Projekttitel: GlassyWindowShopping
Projekthomepage: http://code.google.com/a/eclipselabs.org/p/glossywindowshopping
Gruppenmitglieder:
MatNr:
0908049
1047034
0906803
0553288
Nachname:
Stallinger
Spataro
Domentean
Kretsu
Vorname:
Magdalena
Nico
Daniel
Marinel
e-mail:
[email protected]
[email protected]
[email protected]
[email protected]
Erstellen sie ein Designmodell gemäß Unified Process das zumindest folgende
Aspekte umfasst:

Klassendesign

Use-Case-Realization-Design

Architekturbeschreibungen
1
1 Klassendesign
1.1 Klassen
GlossyWindowShopping.java
Dies ist das zentrale Servlet das alle Anfragen annimmt und an die richtigen
JSP’s weiterleitet.
Artikel.java
In dieser Klasse wird folgendes gespeichert:
private String Name;
private int Aid;
private float Preis;
private String deadline;
private int Verkaeufer;
private String Kategorie;
public Gebote[] gebote;
private int Voting;
public boolean abgelaufen = false;
Den Wert der Variablen können mit der dazugehörigen getter-Methode
abgerufen werden.
Zusätzlich gibt es noch die Methoden:
public void doBit(Integer uid, Float bit) Um ein Gebot zu machen
private void initme(int aid) Die wird im Konstruktor aufgerufen wenn
eine aid mitliefert wird. Sie ist zuständig für das Suchen und Laden des
Artikels, mit all seinen Variablen.
Artikelliste.java
Hier gibt es nur 1 Methode und zwar:
public
Artikel[] suche (String search, int kat)
Diese Methode liefert einen Array von Artikel zurück. Diese kann
entweder gefiltert werden durch ein Suchwort oder eine Kategorie oder
keines, dann werden alle Artikel zurückgegeben.
Gebote.java
In der Gebote Klasse werden folgende Werte gespeichert:
private
private
private
private
private
int Gid;
float Preis;
int Uhrzeit;
Person Kaeufer;
int Art;
Zugreifen kann man über die Getter/Setter-Methoden.
Kategorie.java
In dieser Klasse befinden sich folgende Variablen:
private int kid;
private String Name;
Zugriff über die Getter/Setter-Methoden
MySQLConnection.java
Regelt den Zugriff auf die Datenbank.
Person.java
In der Person.java werden folgende Variablen gespeichert.
private String Name;
private String Passwort;
private int Pid;
2
private String Typ;
private double VotingVerkaeufer;
private double VotingKaeufer;
Der Zugriff wird wieder mittels Getter/Setter-Methoden gehandhabt.
Zusätzlich gibt es folgende Methoden:
public
public
public
public
Artikel[]
Artikel[]
Artikel[]
Artikel[]
verkaufteArtikel ()
angeboteneArtikel ()
beboteneArtikel ()
gekaufteArtikel ()
Diese Methoden geben wie die Funktion schon erklärt, die Artikel zurück, die
verkauft, angeboten, usw, worden sind.
1.2 Designentscheidung
Aufgabe war es, die Funktionalität von der Ausgabe zu trennen. Eine Realisierung in
Form von JSP-Seiten, welche mit Java-Objekten im Hintergrund arbeiten, erschien
uns sinnvoll, da hier die HTML-Ausgabe fast vollständig von der Funktionalität
getrennt werden konnte. Um die Struktur so einfach wie möglich zu halten
entschieden wir uns dafür, nur EIN Servlet einzusetzen, welches die Requests je
nach Bedarf umleitet, bzw. selbst kleinere funktionale Aufgaben übernimmt.
So nimmt die Klasse GlossyWindowShopping.java jeden Request entgegen und
entscheidet, ob es sich etwa um ein Datenupdate oder einen Login handelt (wird
direkt in der Klasse verarbeitet) oder ob der Request an eine der JSP-Seiten
weitergeleitet werden soll, weil nur Ausgabefunktionen genutzt werden. Die
Klassen Artikel.java, Kategorie,java, Person.java, Gebote.java liefern und halten die
in den JSPs verwendeten Objekte. Die Datenspeicherung übernimmt eine MySQLDatenbank, welche über die Klasse MySQLConnection.java angesprochen wird.
2 Use Case Realization Design
Analyse ist die Phase zwischen Use Case Modellierung (wo Funktionalität des
Systems festgelegt wird) und Design (Code). Als Hauptaufgaben dieses Punkt sind
Verfeinerung und Ergänzung von Anforderungen sowie Identifizierung von
Analyseklassen und Erstellung eines Analysemodells. Wir können sagen dass es
eine Brücke die das was System können muss, zudem wie das System konkret
gemacht wurde überführt.
Artikel suchen
Use Case
Der folgende Use Case stellt eine Verfeinerung/Spezifizierung des Use Case „Artikel
suchen“ dar. Diese Beispiel zeigt klar wer darf ein Artikel im System suchen und wie
sind die Artikel verteilt und wie können die aufgerufen werden.
3
Analysis Diagramm
Sequenzdiagramm
Im folgenden Sequenzdiagramm ist „Artikel suchen“ exemplarisch dargestellt.
4
5
Artikel Kaufen
Use Case
Analysis Diagramm
6
Artikel Verwalten
Use Case
In der Artikelverwaltung können alle relevanten Benutzeraktionen durchgeführt
werden. Hierzu zählen Artikeldaten ändern, ein Artikel lösen oder Artikel anlegen.
Analysis Diagramm
7
Sequenzdiagramm
Im folgenden Sequenzdiagramm ist der der Artikel Verwaltung exemplarisch dargestellt.
8
Artikel anlegen
Analysis Diagramm
Artikel Bewerten
Die Artikelbewertung wird vom Benutzer durchgeführt. Hierzu muss der Benutzer
registriert und angemeldet sein, um Bewertung durchzuführen. Zusätzlich zu der
Bewertung der Artikel hat der Benutzer die Möglichkeit die Bewertungen anderer
Benutzer zu sehen.
Analysis Diagramm
9
3 Übersichtsklassendiagramm
10
4 Architekturbeschreibung
Unser Komponentendiagramm zeigt zwei Seiten: Server und Client.
Serverseitig finden wir das Datastorage, was in unserer Realisierung eine MySQLDatenbank des ZID (Klasse MySQLConnection.java) ist. Mit dieser werden Daten
über die Komponenten Userverwaltung (Klasse Person.java, JSP PersonDetail.jsp
PersonNeu.jsp PersonChange.jsp PersonenDurchsuchen.jsp), Artikelverwaltung
(Klassen Artikel.java, Kategorie.java, Artikelliste.java, JSP ArtikelDetail.jsp
ArtikelDurchsuchen.jsp ArtikelNeu.jsp) und Gebotsverwaltung (Klasse Gebote.java)
ausgetauscht.
Ausgegeben werden die Daten über das Webinterface. Geplant war eine
Realisierung auf Port 80, aber die Servlet-Engine auf Almighty zwang uns einen
anderen Port zu benutzen.
Clientseitig nutzen wir das Session-Management des Browsers um die Verbindung
zum Webinterface zu halten.
Deployment-Modell:
In diesem Modell sind die Verteilung der von uns verwendeten Komponenten
sichtbar werden. Clients greifen mittels PC, Laptops oder andere Gerät und
beliebigen Webbrowsern auf diesen Server zu wobei verschiedene Artefakte erstellt
werden, die sowohl Userdaten als auch die vorhandenen Objekte beinhalten. Wie
11
uns die Abbildung zeigt, das physische Gerät Webserver benötigt als
Softwarekomponente Tomcat und Server benötigt Datastorage idealerweise in der
aktuellsten Version.
12
Herunterladen