Software Engineering Übung, LVNr: 050052/5 Übungsleiter: Sabri Pllana Designmodell v.2.0 Projekttitel: myauctioneer Projekthomepage: http://code.google.com/p/myauctioneer/ Gruppenmitglieder: MatNr: Nachname: Vorname: e-mail: 0425402 Bayasgalan Olzvoi olzvoi@gmail.com 0302789 Khutsishvili Khatuna khatulina@gmail.com 1008473 Kofler Simon simon.kofler@yahoo.com 8400667 Plank Andreas afmölank@gmail.com Erstellen sie ein Designmodell gemäß Unified Process das zumindest folgende Aspekte umfasst: Klassendesign Use-Case-Realization-Design Architekturbeschreibungen 1
1 Klassendesign 1.1 App Beschreibung: Applikation klasse, implementiert als static (singleton). Basis Aufgaben sind Bereitstellung von applikationspezifische Komponente, wie z.b. Konfiguration, Logging, Datenbank, Umgebungsfestlegung. Sollte möglichst unabhängig laufen können, z.b. in Kommandozeile, ohne Serverumgebung. In basedir/etc/config.properties sind standart konfigurationen festgelegt. In basedir/etc/local.properties sind lokale konfigurationen festgelegt. In basedir/var/log.txt sind alle App logging geschrieben. - init(): Initialisierung von der App-Umgebung. - getbasedir(): Stamm verzeichniss, wo die App läuft. - getbaseurl(): Basis url, wo die App läufen sollte. - getdb(): Bereits konfigurierte haupt Datenbankverbindung. - getlogger(): Das Logger Objekt. In var/log.txt sind alle App logging geschrieben. - getproperty(): Liefert eine spezifische App-Konfiguration. 1.2 DefaultServlet Beschreibung: - init(): Inizialisierungs methode. Hier wird auch App inizialisiert, falls nötig. - service(): Weiterleitet die Anfragen zu den zugehörigen Kontrollmethoden (Actions). - notfoundaction(): Wird aufgerufen, wenn keine Seite gefunden wird (404). - indexaction(): Wird aufgerufen, wenn die Hauptseite zugegriffen wird. 1.3 UserServlet Beschreibung: Diese Klasse dient als Controller für alle User-spezifischen Aktionen. - registeraction(): Wird aufgerufen, wenn der Benutzer auf den register -Button klickt. - loginaction(): Wird aufgerufen, wenn der Benutzer auf den login -Button klickt. - logoutaction(): Wird aufgerufen, wenn der Benutzer auf den logout -Button klickt. - profileaction(): Wird aufgerufen, wenn ein Benutzer das Benutzerprofil eines anderen Benutzers sehen will, indem er auf dessen Benutzername klickt. - showratingdetails(): Wird aufgerufen, wenn ein Benutzer das Benutzerprofil eines anderen begutachtet und dabei auf einen der drei verschiedenen Rating-Links klickt. Attribute: keine 1.4 AdminServlet Beschreibung: Diese Klasse dient als Controller für alle Administrator-spezifischen Aktionen. 2
- manageuseraction(): Wird aufgerufen, wenn der als Admin eingeloggte Benutzer auf den Link Manage Users klickt. - removeuseraction(): Wird aufgerufen, wenn der als Admin eingeloggte Benutzer auf den remove -Button eines bestimmten Benutzers klickt. Attribute: keine 1.5 ArticleServlet Beschreibung: Diese Klasse dient als Controller für alle Artikel-spezifischen Aktionen. - showsalesaction(): Wird aufgerufen, wenn ein eingeloggter Benutzer seine getätigten Verkäufe sehen will. - createarticleaction(): Wird aufgerufen, wenn ein eingeloggter Benutzer auf den create - showpurchasesaction(): - showstatisticsaction(): - showaction(): Attribute: keine 1.6 SalesServlet Beschreibung: Diese Klasse dient als Controller für alle Kauf- und Bewertungsaktionen. - scorebuyeraction(): Wird aufgerufen, wenn ein eingeloggter Benutzer auf den score buyer -Button eines bestimmten Verkaufes klickt. - scoreselleraction():wird aufgerufen, wenn ein eingeloggter Benutzer auf den score seller -Button eines bestimmten Kaufes klickt. - scorearticleaction():wird aufgerufen, wenn ein eingeloggter Benutzer auf den score article -Button eines bestimmten Kaufes klickt. - bidbuyaction() Wird aufgerufen, wenn ein eingeloggter Benutzer auf den bid - oder buy -Button klickt. Attribute: keine 1.7 UserService Beschreibung: Diese Klasse enthält die Business-Logik für alle Benutzer-spezifischen Aktionen. - authenticate(): Wird aufgerufen wenn die Methode loginaction() aufgerufen wird, und vergleicht die übergebenen Daten (Benutzername, Passwort) mit denen, die in der Datenbank gespeichert sind. Stimmen diese überein, so wird der Login-Prozess durchgeführt, andernfalls eben nicht. - getuserdetails(): Wird aufgerufen, wenn Benutzerdetails benötigt warden. Z.B. warden diese benötigt, wenn ein Benutzer die Informationen eines anderen Benutzers sehen möchte, indem er auf die Methode profileaction() ausgeführt wird. - register(): Wird aufgerufen, wenn die Methode registeraction() aufgerufen wird und speichert die übergebenen Daten in die Datenbank. - remove(): Wird aufgerufen, wenn die Methode removeuseraction() aufgerufen wird, und löscht den gewünschten Benutzer aus der Datenbank. Attribute: - udao: Beinhaltet ein Data Access Object für die Modelklasse User. 3
1.8 ArticleService Beschreibung: Diese Klasse enthält die Business-Logik für alle Artikel-spezifischen Aktionen. - createarticle(): Wird aufgerufen, wenn die Methode createarticleaction() aufgerufen wird und speichert die übergebenen Daten in die Datenbank. - query(): Wird aufgerufen, wenn die Root-Seite aufgerufen wird und gibt die aktuelen Artikel zurück. Attribute: - adao: Beinhaltet ein Data Access Object für die Modelklasse Article. 1.9 SalesService Beschreibung: Diese Klassen enthält die Business-Logik für alle Kauf- und Bewertungsspezifischen Aktionen. - placeratingdetail(): Wird von der Methode placerating() aufgerufen und speichert die übergebenen Bewertungsdetails in die Datenbank. - placerating():wird aufgerufen, wenn die Methode scorebuyeraction(), scoreselleraction() oder scorearticleaction() aufgerufen wurde. Erstellt ein Rating und speichert dieses in die Datenbank. Anschließend ruft sie die Methode placeratingdetail() auf. - loadratingdetailbylabelingnote: Attribute: - rddao: Beinhaltet ein Data Access Object für die Modelklasse RatingDetail. - rdao: Beinhaltet ein Data Access Object für die Modelklasse Rating. 2 Use Case Realization Design 2.1 Enter Site 4
2.2 Search Catalog 5
2.3 Show Article 2.4 Register User 6
2.5 Create Article 2.6 Bid 7
2.7 Score 2.8 Remove User 3 8
4 Übersichtsklassendiagramm Das Übersichtsklassendiagramm befindet sich aufgrund von Platzmangel auf der Projektstartseite, unter dem Menüpunkt Downloads als eigenständige Datei mit dem Namen Design II Übersichtsklassendiagramm.jpg. 5 Architekturbeschreibung 5.1 Deploymentdiagramm 9