M U S I C B U D D I E S. L e g a l e r M u s i k t a u s c h u n t e r F r e u n d e n m i t e i n e m P 2 P - N e t z w e r k. F e i n e n t w u r f



Ähnliche Dokumente
Softwareentwicklungspraktikum Sommersemester Feinentwurf

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Powermanager Server- Client- Installation

OutlookExAttachments AddIn

Die Dateiablage Der Weg zur Dateiablage

KURZANLEITUNG CLOUD OBJECT STORAGE

Live Update (Auto Update)

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Step by Step Webserver unter Windows Server von Christian Bartl

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Anleitung zur Installation von SFirm 3.1 inklusive Datenübernahme

Whitepaper. Produkt: address manager David XL Tobit InfoCenter AddIn für den address manager Zuordnung

DB2 Kurzeinführung (Windows)

Kurzanleitung GigaMove

Materialupload. Verwalten von Unterrichtsmaterialien. über das STiNE-Webportal. Universität Hamburg Tor zur Welt der Wissenschaft

How to do? Projekte - Zeiterfassung

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

Installation und Inbetriebnahme von SolidWorks

Einfach noch mehr rausholen. Bedienungsanleitung Medien BETA

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Installation / Aktualisierung von Druckertreibern unter Windows 7

Internet online Update (Internet Explorer)

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

Collax Archive Howto

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Task: Nmap Skripte ausführen

Anleitung - Archivierung

Kostenstellen verwalten. Tipps & Tricks

Anleitung für den Euroweb-Newsletter

TRIC DB Release 6.0. Refresh mit der Wiederherstellung der Produkte Siemens, Landis&Gyr und DEOS. für. Lizenznehmer der TRIC DB Version 6.0.

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

KNX BAOS Gadget. Installations- und Bedienanleitung. WEINZIERL ENGINEERING GmbH. DE Burgkirchen Web:

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

FORUM HANDREICHUNG (STAND: AUGUST 2013)

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets

Fülle das erste Bild "Erforderliche Information für das Google-Konto" vollständig aus und auch das nachfolgende Bild.

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

EasyWk DAS Schwimmwettkampfprogramm

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Internet online Update (Mozilla Firefox)

Installationsanleitung CLX.PayMaker Home

Der Voxtron Konferenz-Server

Nutzung der Intranetfunktionalität

Dokumentation. Mindestanforderungen: Das Board

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Inhaltserzeichnis. Datenübernahme

Installationsanleitung trivum MusicServer Software Windows

Leitfaden zur Nutzung des Systems CryptShare /Sicheres Postfach

Outlook 2000 Thema - Archivierung

Handbuch oasebw Seite 1 von 10

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

eduroam mit SecureW2 unter Windows 7 Stand: 27. Januar 2015

Installation des edu- sharing Plug- Ins für Moodle

Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4

eduvote Ein Umfragesystem für Lehrveranstaltungen - PowerPoint Add-In -

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Grundfunktionen und Bedienung

IAWWeb PDFManager. - Kurzanleitung -

So richten Sie Ihr Postfach im Mail-Programm Apple Mail ein:

Einrichtung Konto Microsoft Outlook 2010

Die aktuelle Version des SPIEGEL-Bestseller-Widgets können Sie auf unserer Website unter Entwicklertools herunterladen.

ecaros2 - Accountmanager

Stammzertifikat Importieren

Office Integration. M. Friedrichs, DEVWARE GmbH

AnNoText. AnNoText Online-Update. Copyright Wolters Kluwer Deutschland GmbH

teamsync Kurzanleitung

Handbuch B4000+ Preset Manager

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Postfach aufräumen und archivieren

TREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel

INSTALLATION UND NUTZUNG DES DOWNLOAD-MANAGERS

Microsoft Access 2013 Navigationsformular (Musterlösung)

BusinessMail X.400 Webinterface Gruppenadministrator V2.6

Einspielanleitung für das Update DdD Cowis backoffice DdD Cowis pos

SEMINAR Modifikation für die Nutzung des Community Builders

Handbuch Offline-Abgleich

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

Use Cases. Use Cases

Installationsanleitung CLX.PayMaker Office

AIO CREATOR NEO. Vorgehensweise beim Import von SteckerPRO Konfigurationen

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Der große VideoClip- Wettbewerb von Media Markt.

Guide DynDNS und Portforwarding

Wissenswertes über LiveUpdate

Wählen Sie bitte START EINSTELLUNGEN SYSTEMSTEUERUNG VERWALTUNG und Sie erhalten unter Windows 2000 die folgende Darstellung:

Transkript:

M U S I C B U D D I E S L e g a l e r M u s i k t a u s c h u n t e r F r e u n d e n m i t e i n e m P 2 P - N e t z w e r k Softwareentwicklungspraktikum Sommersemester 2010 F e i n e n t w u r f Auftraggeber Technische Universität Braunschweig Institut für Informationssysteme Prof. Dr. Wolf-Tilo Balke Mühlenpfordstraße 23, 2. OG 38106 Braunschweig Betreuer: Dipl.-Inf. Christoph Lofi, M. Sc. Joachim Selke Name André Biel Michael Bier Jens Büttner Philipp Dermitzel Nils Dietzsch Julia George Claas Meyer Chandrabalan Vijayaratnam Auftragnehmer: E Mail andrebiel@web.de m.bier@tu-bs.de jens.buettner@tu-bs.de p.dermitzel@agentur38.de ndietzsch@gmx.de juliageorge@web.de claas.m@gmx.de chandru.vija@googlemail.com Braunschweig, 08. Juli 2010 1

Versionsübersicht Version Datum Autor Status Kommentar 0.1 27.05.2010 jgeorge Nicht Strukturanpassung an 2. Iterartion akzeptiert 0.2 07.06.2010 abiel, mbier, Nicht Bearbeitung Kapitel 2 und 3.1 ndietzsch, jgeorge akzeptiert 0.3 09.06.2010 jgeorge Nicht Bearbeitung Kapitel 3 akzeptiert 0.4 10.06.2010 pdermitzel, Nicht Bearbeitung Kapitel 4 jgeorge akzeptiert 1.0 10.06.2010 jgeorge akzeptiert Fertigstellung Feinentwurf 2. Iteration 1.1 21.06.2010 jgeorge Nicht Strukturanpassung an 3. Iteration akzeptiert 1.2 05.07.2010 jgeorge Nicht akzeptiert Einpflegen der Inspektionsergebnisse der 2. Iteration 1.3 06.07.2010 jgeorge Nicht Änderung der Kapitel 2.2, 3.1, 4.1 akzeptiert 1.4 08.07.2010 jgeorge Nicht Änderung der Kapitel 3.7.3, 4.2 und 5 akzeptiert 1.5 08.07.2010 Ndietzsch, Nicht Anpassung der Klassendiagramme jgeorge akzeptiert 2.0 08.07.2010 jgeorge akzeptiert Fertigstellung Feinentwurf 3. Iteration 2

I n h a l t s v e r z e i c h n i s 1 EINLEITUNG... 6 2 ERFÜLLUNG DER KRITERIEN... 7 2.1 MUSSKRITERIEN... 7 2.2 WUNSCHKRITERIEN... 8 2.3 ABGRENZUNGSKRITERIEN...10 2.4 CHANGE REQUESTS...10 2.4.1 CR10/ STANDORTPRÜFUNG DES USERS...10 2.4.2 CR11/ ANZEIGE EINES FIRST-START-DIALOGS MIT HINWEIS AUF RECHTLICHE RAHMENBEDINGUNGEN...11 2.4.3 CR20/ MANUELLE DOWNLOADFREIGABE...11 2.4.4 CR30/ BESCHRÄNKUNG DER FREUNDESLISTE AUF MAXIMAL 50 FREUNDE...11 2.4.5 CR40/ VERZICHT AUF PLAYLISTUNTERSTÜTZUNG DURCH MP3-PLAYER...12 3 IMPLEMENTIERUNGSENTWURF...13 3.1 GESAMTSYSTEM...13 3.2 IMPLEMENTIERUNG VON KOMPONENTE /K10/: SUPERPEER...15 3.2.1 KLASSENDIAGRAMM SUPERPEER...15 3.2.2 ERLÄUTERUNG...15 3.3 IMPLEMENTIERUNG VON KOMPONENTE /K20/: EDGEPEER...16 3.3.1 KLASSENDIAGRAMM EDGEPEER...16 3.3.2 ERLÄUTERUNG...16 3.4 IMPLEMENTIERUNG VON KOMPONENTE /K30/: SHARING...17 3.4.1 KLASSENDIAGRAMM SHARING...17 3.4.2 ERLÄUTERUNG...17 3.5 IMPLEMENTIERUNG VON KOMPONENTE /K40/: TITELSUCHE...18 3.5.1 KLASSENDIAGRAMM TITELSUCHE...18 3.5.2 ERLÄUTERUNG...18 3.6 IMPLEMENTIERUNG VON KOMPONENTE /K50/: DOWNLOAD...19 3.6.1 KLASSENDIAGRAMM DOWNLOAD...19 3.6.2 ERLÄUTERUNG...19 3.7 IMPLEMENTIERUNG DER GUI-KOMPONENTEN /K60/: MUSIKSAMMLUNG, /K70/: MP3- PLAYER, /K80/: ID3-TAGGING, /K90/: FREUNDESLISTE UND /K100/: E-MAIL-EINLADUNG...20 3

3.7.1 KLASSENDIAGRAMM GUI...20 3.7.2 ERLÄUTERUNG...20 3.7.3 NCSS-REPORT...21 3.8 ERLÄUTERUNG DER KLASSENSTRUKTUREN...22 4 DATENMODELL...23 4.1 DIAGRAMM...23 4.2 ERLÄUTERUNG...25 5 SERVERKONFIGURATION...25 4

A b b i l d u n g s v e r z e i c h n i s Abbildung 1: Komponentendiagramm Übersicht MusicBuddies...13 Abbildung 2: Klassendiagramm /K10/ SuperPeer...15 Abbildung 3: Klassendiagramm /K20/ EdgePeer...16 Abbildung 4: Klassendiagramm /K30/ Sharing...17 Abbildung 5: Klassendiagramm /K40/ Titelsuche...18 Abbildung 6: Klassendiagramm /K50/ Download...19 Abbildung 7: Klassendiagramm GUI-Komponenten...20 Abbildung 8: Auszug aus dem NCSS-Report...21 Abbildung 9: ERM der MusicBuddies-Datenbank...23 Abbildung 10: Klassendiagramm der MusicBuddies-Datenbank...24 5

1 Einleitung Der im Folgenden dargestellte Feinentwurf beschreibt Aufbau, Struktur und Umsetzung des Softwareprojektes MusicBuddies. Dabei werden im zweiten Kapitel die im Pflichtenheft definierten Muss- und Wunschkriterien auf ihre Erfüllung hin geprüft. Außerdem wird beschrieben wie diese Kriterien im Endprodukt umgesetzt sein sollen. Die Abgrenzung zu ähnlichen Projekten wird in Abschnitt 2.3 aufgeführt. Das dritte Kapitel befasst sich mit der Implementierung von MusicBuddies. Dazu wird zunächst ein Gesamtüberblick über das System gegeben. Die einzelnen Komponenten werden anhand von Klassendiagrammen und entsprechenden Erläuterungen genauer spezifiziert. Um der besonderen Programmstruktur von MusicBuddies gerecht zu werden, musste hierbei zugunsten der Übersichtlichkeit und der logischen Zusammenhänge des Öfteren von der vorgesehenen Dokumentenstruktur abgewichen werden. Entsprechende Stellen sind als solche im Text gekennzeichnet. Abschließend enthält der Feinentwurf eine Darstellung des für die Musiksammlungen verwendeten Datenmodells. Dazu werden verschiedene graphische sowie textuelle Erläuterungen angeführt, die das verwendete Datenmodell veranschaulichen. Der Feinentwurf dient somit als Grundlage für die Implementierung von MusicBuddies, wobei alle wichtigen Funktionen für die Implementierung aufgezeigt und erläutert werden. 6

2 Erfüllung der Kriterien Nachfolgend wird beschrieben, wie die einzelnen Kriterien des Pflichtenheftes erfüllt werden und worauf bei der Umsetzung der Kriterien geachtet wird. 2.1 Musskriterien Die folgenden Kriterien sind unabdingbar und müssen durch das Produkt erfüllt werden: /M010/ Entwurf eines dezentralen Peer-2-Peer Netzwerkes das Netzwerk soll ohne zentralen Server operieren können Mit Hilfe des JXTA-Frameworks wird ein P2P-Netzwerk erzeugt, welches plattform- und programmiersprachenunabhängig sowie unabhängig vom Transportprotokoll ist. /M020/ Bereitstellung und Download von Dateien über das P2P-Netzwerk Mit Hilfe des ContentManagementServices (CMS) werden die Bereitstellung und der Download von MP3-Dateien über das P2P- Netzwerk realisiert. /M030/ Verwaltung von Freundeslisten und Songlisten - Freunde und Musik finden und verwalten Durch rekursives Auslesen der angegebenen lokalen Ordner werden absolute Pfade erzeugt, die in einer Datenbank gespeichert werden. Sollten von den MP3-Dateien ID3-Tags existieren, werden diese ausgelesen und ebenfalls in der Datenbank gespeichert. 7

/M040/ Einhaltung der gesetzlichen Rahmenbedingungen - Verhinderung der Ausbreitung durch Watermarks in den Dateien Dieses Kriterium soll in der dritten Iteration umgesetzt werden. Hierfür sind Watermarks in den Headern der MP3-Dateien sowie ein Kopienzähler zur Einhaltung der vorgegebenen maximalen Anzahl von Kopien geplant. 2.2 Wunschkriterien Die Erfüllung folgender Kriterien für das abzugebende Produkt wird angestrebt: /W010/ Ergänzung der verwendeten Musikdaten um Metadaten von MusicBrainz und sinnvolle Einbindung der Metadaten in die GUI von MusicBuddies Dieses Kriterium wurde bisher noch nicht in MusicBuddies implementiert, wird aber bis zum TDSE enthalten sein. /W020/ komfortable Benutzeroberfläche mit einer intuitiv zu bedienenden Suchfunktion Die graphische Benutzeroberfläche wurde mit Swing realisiert. Die Bedienbarkeit der Oberfläche wird fortlaufend überprüft und verbessert. /W030/ integrierter MP3-Player zum Abspielen der heruntergeladenen Musikdateien Der integrierte MP3-Player ist in der Lage einzelne MP3-Dateien abzuspielen. 8

/W040/ Hilfefunktionalität, die die grundsätzliche Funktionsweise von MusicBuddies erklärt sowie Hilfestellungen zu einzelnen Optionen und Funktionen gibt Eine Hilfefunktionalität ist zurzeit noch nicht in der Benutzeroberfläche realisiert. /W050/ spürbare Wartezeiten sollen optisch angezeigt werden (in Form von Fortschrittsbalken o.ä.) Alle Funktionen, die eine spürbare Wartezeit nach sich ziehen könnten, wurden mit Statusanzeigen ausgestattet, die dem User anzeigen, dass die aufgerufenen Aktionen bearbeitet werden. /W060/ Der User soll über die rechtlichen Rahmenbedingungen bei der Nutzung von MusicBuddies aufgeklärt werden (s. u. Change Request /CR11/) Beim Starten des Programms wird ein Dialogfenster angezeigt, der den User darauf hinweist, dass die Nutzung von MusicBuddies nur in Deutschland legal ist. /W070/ Der User soll eine Möglichkeit haben, die vorgegebene, eingeschränkte Anzahl an Kopien seiner Musikdateien an bestimmte Freunde ausgeben zu können (s.u. Change Request /CR20/). Es wurde ein Menüpunkt Download erstellt, unter dem der User die Funktion Bei Download um Erlaubnis fragen auswählen kann, wenn er von seinen Freunden um Erlaubnis gebeten werden möchte, wenn diese eine Datei herunterladen. 9

/W080/ Es sollen maximal 50 Freunde in die Freundesliste aufgenommen werden können (s.u. Change Request /CR30/). Beim Hinzufügen eines neuen Freundes wird der entsprechende Eintrag in der Datenbank geprüft. Bei Überschreiten der maximalen Anzahl von 50 Freunden wird eine Fehlermeldung ausgegeben und der neue Freund kann nicht mehr in die Freundesliste aufgenommen werden. 2.3 Abgrenzungskriterien Die folgenden Funktionalitäten sind nicht zur Umsetzung durch MusicBuddies vorgesehen. Die Anwendung MusicBuddies kann technisch bedingt nicht garantieren, dass die Musikdateien, die in das Netzwerk eingespielt werden, auf legalem Wege erworben wurden. Es handelt sich um kein frei verwendbares FileSharing-Netzwerk, in dem Musikdateien beliebig hoch- und heruntergeladen werden können, sondern um ein Listenbasiertes Friendto-Friend-Netzwerk (F2F), in dem gezielt der Austausch von Musik in legalem Rahmen vorgesehen ist. Dies bedeutet, dass eine Kopienzahl von sieben MP3-Kopien nicht überschritten werden darf und dass der Austausch von Musikdateien nur im Freundeskreis, dargestellt in Form der Freundesliste, stattfinden soll. 2.4 Change Requests In diesem Abschnitt werden vom Kunden angebrachte Änderungswünsche beschrieben, die unter der Kennzeichnung CR bereits in den Wunschkriterien aufgeführt wurden. 2.4.1 /CR10/ Standortprüfung des Users Um eine Nutzung von MusicBuddies außerhalb Deutschlands auszuschließen, soll die IP- Adresse des Users überprüft werden. Auf diese Weise sollen User, die sich außerhalb 10

Deutschlands befinden, von MusicBuddies ausgeschlossen werden, da die rechtliche Grundlage der Anwendung im Ausland nicht gültig ist. Dieser Change Request wurde vorgetragen, technisch evaluiert und aufgrund der aufwendigen Umsetzung abgelehnt bzw. in abgeschwächter Form in /CR11/ umgesetzt. 2.4.2 /CR11/ Anzeige eines First-Start-Dialogs mit Hinweis auf rechtliche Rahmenbedingungen Um den User über rechtliche Rahmenbedingungen zur Nutzung von MusicBuddies zu informieren, wird beim ersten Start ein Dialog angezeigt, der neben der Nennung aller Mitwirkenden den folgenden Text enthält (siehe auch: Kapitel 7.2 Aktuelle Benutzeroberfläche): MusicBuddies ist ein P2P-MP3-Filesharing-Programm, welches die in Deutschland geltenden Urheberrechtsgesetze nicht verletzt. Diese besagen, dass innerhalb eines Freundeskreises bis zu 7 Kopien eines legal erworbenen Musikstückes erstellt werden Dürfen. Zu näheren Informationen über die rechtlichen Rahmenbedingungen wird weiterhin auf die Webesite http://ciiju.de/index.php?target=faq verwiesen. 2.4.3 /CR20/ Manuelle Downloadfreigabe Da die maximale Anzahl der Kopien von Musikdateien auf 7 beschränkt ist, soll der User die Möglichkeit haben sein, sich die Freunde auszusuchen, denen er eine Musikdatei zukommen lassen möchte. Zu diesem Zweck soll ein Menüpunkt entstehen, in dem die Downloadfreigabe ausgewählt werden kann. Hier kann der User auswählen, ob er vor dem Start eines Downloads durch einen seiner Freunde, um Erlaubnis zum Download gebeten werden möchte. 2.4.4 /CR30/ Beschränkung der Freundesliste auf maximal 50 Freunde Da die Verteilung Kopien nur im engeren Freundeskreis als legal betrachtet wird, muss eine Möglichkeit gegeben sein, die Anzahl der Freunde zu begrenzen, um die Verbreitung von Musikdateien an flüchtige Bekannte zu vermeiden. Als maximale Freundeszahl wird 50 angesetzt. 11

2.4.5 /CR40/ Verzicht auf Playlistunterstützung durch MP3-Player Die Anforderung zur Unterstützung von Playlists durch den in MusicBuddies integrierten MP3-Player wurde nach Wunsch des Kunden aus der Anforderungsliste entfernt. Es kann davon ausgegangen werden, dass jeder User bevorzugt seinen gewohnten MP3-Player zum Abspielen von Playlists nutzt. 12

3 Implementierungsentwurf Die Erläuterungen zu den einzelnen Komponenten dieses Kapitels sind bewusst knapp gehalten. Im Quellcode von MusicBuddies sind ausführliche Javadoc-Kommentare beschrieben, sodass der hieraus resultierenden Projektdokumentation alle weiteren Details zu entnehmen sind. 3.1 Gesamtsystem Abbildung 1: Komponentendiagramm Übersicht MusicBuddies 13

Erläuterungen zum Komponentendiagramm: Die MusicBuddies-Software besteht zum Ende der dritten Iteration aus zwei zentralen Komponenten: Dies ist zum einen die GUI-Komponente, welche dem User eine graphische Schnittstelle zur Bedienung der Software bietet und zum anderen die Netzwerkkomponente. Diese beiden Oberkomponenten können als leerer Rahmen angesehen werden, die lediglich die Teilkomponenten enthalten. Die Funktionsweise und das Zusammenspiel der Teilkomponenten innerhalb der Software können den folgenden Kapiteln entnommen werden. Dort sind die Teilkomponenten durch Klassendiagramme im Detail beschrieben. Die neu aufgenommene Funktion Watermarking wird im Komponentendiagramm der Komponente Download zugeordnet, da sie zwar selbstständig existiert, aber in direktem Zusammenhang mit dem Download ausgeführt wird. 14

3.2 Implementierung von Komponente /K10/: SuperPeer 3.2.1 Klassendiagramm SuperPeer Abbildung 2: Klassendiagramm /K10/ SuperPeer 3.2.2 Erläuterung Die Klasse SuperPeer wird von der abstrakten Klasse Peer abgeleitet. In der Klasse Peer sind alle Methoden und Attribute definiert, die sowohl der EdgePeer als auch der SuperPeer gemeinsam haben. Der SuperPeer wird mit der launchjxta()-methode gestartet und kann als ein Serverprozess verstanden werden. Er läuft auf einem Rechner mit fester IP-Adresse und kann somit von allen normalen MusicBuddies-Peers (EdgePeers) erreicht werden. Beim Klassendiagramm dieser und der folgenden Komponente wurde auf eine Darstellung der Imports verzichtet. Dies verbessert die Übersichtlichkeit der Darstellung sehr, da ohnehin jede Klasse dieser Komponente sehr viele Klassen aus dem Paket net.jxta importiert. 15

3.3 Implementierung von Komponente /K20/: EdgePeer 3.3.1 Klassendiagramm EdgePeer Abbildung 3: Klassendiagramm /K20/ EdgePeer 3.3.2 Erläuterung Die Klasse EdgePeer wird ebenfalls von der abstrakten Klasse Peer abgeleitet. Der EdgePeer versteht sich als Hintergrunddienst der MusicBuddies-Software. Er stellt eine Verbindung zu einem SuperPeer her, tritt somit dem Netzwerk bei und ist, ebenso wie der SuperPeer, Mitglied der PeerGroup MusicBuddies. Der EdgePeer definiert zusätzlich die isconnected()-methode, welche als Schnittstelle zur GUI-Komponente zum Anzeigen des Netzwerkstatus verstanden werden kann. 16

3.4 Implementierung von Komponente /K30/: Sharing 3.4.1 Klassendiagramm Sharing Abbildung 4: Klassendiagramm /K30/ Sharing 3.4.2 Erläuterung Der EdgePeer nutzt die Klassen ContentServer und ServiceSucheBereitstellen um anderen Peers im Netzwerk die Möglichkeit zu geben Inhalte zu finden und herunterzuladen. Die Klasse ServiceSucheBereitstellen nutzt den DBManager um auszulesen welche Inhalte momentan in der Datenbank für andere Peers bereitstehen. Die Klasse ContentServer nutzt den DBManager um den Pfad der Datei, die von einem anderen Peer angefordert wurde, zu finden. 17

3.5 Implementierung von Komponente /K40/: Titelsuche 3.5.1 Klassendiagramm Titelsuche Abbildung 5: Klassendiagramm /K40/ Titelsuche 3.5.2 Erläuterung Der EdgePeer nutzt die Klasse Suchestarten um bei anderen Peers nach Inhalten zu suchen. Suchestarten nutzt den DBManager um die Liste aller Freunde zu erhalten bei denen nach Inhalten gesucht wird. Die Suche verbindet sich mit dem SuchService der Freunde und veranlasst eine lokale Suche in den Datenbanken der Freunde. 18

3.6 Implementierung von Komponente /K50/: Download 3.6.1 Klassendiagramm Download Abbildung 6: Klassendiagramm /K50/ Download 3.6.2 Erläuterung Der EdgePeer nutzt den ContentClient um ein gefunden Inhalt herunterzuladen. Der ContentClient verbindet sich mit dem ContentServer des Freundes und startet den Austausch der Daten. 19

3.7 Implementierung der GUI-Komponenten /K60/: Musiksammlung, /K70/: MP3-Player, /K80/: ID3-Tagging, /K90/: Freundesliste und /K100/: E-Mail-Einladung 3.7.1 Klassendiagramm GUI Abbildung 7: Klassendiagramm GUI-Komponenten 3.7.2 Erläuterung Die Klasse ReadID3Tags liest die ID3-Tags der einzelnen Musikdateien aus. Die Klasse SQLMusicLibrary erstellt eine Datenbank oder erweitert eine bereits Existierende. Hierbei werden ausgelesene ID3-Tags (Titel, Interpret, Album) in die Datenbank geschrieben, sodass die vorhandenen Titel beim nächsten Start nur aus der Datenbank ausgelesen werden müssen. Die Klasse MP3-Player bedient sich dieser Tags und stellt Artist und Titel sowie die abgespielte Länge und die Gesamtlänge beim Abspielen dar. Die Klasse Mailing sendet eine Mail an die E-Mail-Adresse eines eingeladenen Freundes. Bei Bestätigung soll dessen Online-Status später in der Freundesliste einsehbar sein. 20

3.7.3 NCSS-Report Wie man dem NCSS-Report, welcher in kompletter Form in der Testdokumentation zu finden ist, entnehmen kann, liegen für den geschriebenen Quellcode sehr ausführliche Javadoc- Kommentare vor. Abbildung 8: Auszug aus dem NCSS-Report Knapp 1/3 des Quellcodes (2711 von 9068 loc) bestehen aus Javadoc-Kommentaren. Das ebenfalls verwendete Checkstyle-Plugin achtet weiterhin darauf, dass die Javadoc- Kommentare alle Parameter, Rückgabewerte und Exceptions, die genutzt werden, korrekt beschreiben. Der hieraus resultierenden API-Dokumentation sind die in diesem Kapitel geforderten Informationen sehr leicht zu entnehmen. Außerdem befindet sich die Dokumentation auf diese Weise in einem Standardformat, mit dem jeder Softwareentwickler vertraut sein sollte. Damit wird dem Leser das Verstehen und Nachvollziehen der Funktionsweise von MusicBuddies zusätzlich erleichtert. Auf dem von uns verwendeten Hudson-Buildserver ist stets eine aktuelle Version der API- Dokumentation hinterlegt, was sicherstellt, dass niemand mit einer veralteten Version der Dokumentation arbeitet. Die vollständige API-Dokumentation ist zu finden unter: https://is51.idb.cs.tu-bs.de:8181/hudson/job/musicbuddies/site/apidocs/index.html. 21

3.8 Erläuterung der Klassenstrukturen Auf eine tabellarische Darstellung der Klassenstrukturen wird an dieser Stelle verzichtet, da sich die entsprechenden Informationen deutlich strukturierter und übersichtlicher der Javadoc-Datei entnehmen lassen, welche der Abgabe beigefügt ist. 22

4 Datenmodell 4.1 Diagramm Das folgende Entity-Relationship-Model illustriert die Struktur der verwendeten Datenbank. Auch wenn die Darstellung des Datenmodells in Form des ER-Diagramms keine UMLkonforme Notation darstellt, wurde eine entsprechende Darstellung im Feinentwurf seitens unserer Kunden explizit gewünscht. Die Darstellung der Klassenstruktur der Datenbank befindet sich weiterhin unterhalb des ERMs. Abbildung 9: ERM der MusicBuddies-Datenbank 23

Zur detailierten Darstellung wird im folgenden Klassendiagramm die Klassenstruktur der Datenbank dargestellt. Abbildung 10: Klassendiagramm der MusicBuddies-Datenbank Wie den beiden Darstellungen zu entnehmen ist, bilden die Klassen MusicBuddies.Folder, MusicBuddies.File, MusicBuddies.Album und MusicBuddies.Artist den Kern der eingesetzten Datenstruktur. Desweiteren existieren die Klassen MusicBuddies.Setting und MusicBuddies- Friend, welche jedoch nicht in direktem Zusammenhang mit den Kernkomponenten stehen. 24

4.2 Erläuterung Entität Name der Beziehung Beziehungen Kardinalität MusicBuddies.Folder /B10/ in or contains (0,*) MusicBuddies.File /B10/ in or contains 1 /B20/ is on or contains (0, *) /B30/ sung by or sings (1, *) MusicBuddies.Album /B20/ is on or contains (1, *) /B40/ from or produced by (1, *) MusicBuddies.Artists /B30/ sung by or sings (1, *) /B40/ from or produced by (0, *) MusicBuddies.Setting - - 5 Serverkonfiguration Da ein Server für die Nutzung von MusicBuddies nicht erforderlich ist, fällt eine entsprechende Beschreibung der Konfiguration hier nicht an. 25