Evaluierung von Softwarearchitekturen
Am Beispiel einer Schach-Community
- Art: Diplomarbeit
- Autor: Andreas Junius
- Abgabedatum: Oktober 2006
- Umfang: 99 Seiten
- Dateigröße: 2,4 MB
- Note: 1,3
- Institution / Hochschule: Private FernFachhochschule Darmstadt Deutschland
- Bibliografie: ca. 44
- ISBN (eBook): 978-3-8324-9969-3
-
ISBN (Paperback) :
978-3-8324-9969-3 P - ISBN (CD) :978-3-8324-9969-3 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Junius, Andreas Oktober 2006: Evaluierung von Softwarearchitekturen, Hamburg: Diplomica Verlag
- Schlagworte: Softwaretechnik, Architekturmuster, Softwaredesign, Flash Media, Phasenmodell
In den Warenkorb
48,00 €
Diplomarbeit von Andreas Junius
Einleitung:
Diese Diplomarbeit entstand im Zusammenhang mit meiner Tätigkeit als freier Programmierer für ein reales Kundenprojekt. Mein Ein-Personen-Betrieb ist auf die Erstellung von Flash-Anwendungen spezialisiert, womit eine grundlegende Architekturentscheidung bereits vom Kunden noch vor der eigentlichen Anfrage getroffen wurde.
Unabhängig von dieser Entscheidung, die ja immer noch revidiert werden könnte, da es zu Flash ja auch Alternativen gibt (Director, Java-Applets usw.), die der Kunde vielleicht nicht kennt, stellen sich jedoch die allgemeinen Probleme der Softwareentwicklung, die gelöst werden müssen.
Problemstellung:
Die Arbeit zeigt am Beispiel einer Schach-Community, wie große Sotwareprojekte geplant und umgesetzt werden können. Dabei werden die verschiedenen Aspekte guter Softwarearchitektur beleuchtet und am praktischen Beispiel ausprobiert, bzw. umgesetzt.
Der Zusammenhang zwischen Softwarearchitektur und Vorgehensmodell wird entsprechend dargestellt. Das Projekt verwendet hauptsächlich objektorientierte Techniken und Methoden.
Verwendete Technologien sind Flash, der Flash Media Server, Java, Servlets, Tomcat und eine PostgreSQL-Datenbank. Die gewählte Modellierungssprache ist UML 2.0. Eine guten Überblick, auch als Einführung in das Thema, bieten die Folien und der Text für das Kolloquium, die als Flash-Dateien verfügbar sind.
Inhaltsverzeichnis:
| Vorwort | II | |
| Probleme der Softwareentwicklung | II | |
| Komplexität | II | |
| Warenzeichen | III | |
| Verzeichnis | IV | |
| Inhalt | IV | |
| Abbildungen | VII | |
| Tabellen | VIII | |
| Codebeispiele | IX | |
| Abkürzungen | X | |
| 1. | Einführung | 1 |
| 1.1 | Architekturbegriff | 1 |
| 1.2 | Problemstellung | 1 |
| 1.3 | Anforderungsbasierte Architektur | 2 |
| 1.4 | Der Softwarearchitekt | 2 |
| 1.5 | Leitfaden | 3 |
| 2. | Grundlagen und erste Ansätze | 4 |
| 2.1 | Software als System | 4 |
| 2.2 | Die Phasenmodelle | 4 |
| 2.2.1 | Wasserfallmodell | 4 |
| 2.2.2 | Spiralmodell | 5 |
| 2.2.3 | V-Modell | 5 |
| 2.2.4 | Diamant-Modell | 5 |
| 2.2.5 | Projekt-Modell | 6 |
| 2.3 | Architekturstrukturen | 6 |
| 2.3.1 | Client-Server-Modell | 6 |
| 2.3.2 | n-Tier-Architektur | 7 |
| 2.3.3 | Rich-Client / Thin-Client-Architektur | 8 |
| 2.3.4 | Middleware-Architektur | 9 |
| 2.3.5 | Service-Orientierte Architektur | 10 |
| 2.4 | Entwurfsmuster | 12 |
| 2.4.1 | Adapter-Muster | 13 |
| 2.4.2 | Observer-Muster | 14 |
| 2.4.3 | Strategy-Muster | 15 |
| 2.4.4 | Composite-Muster | 17 |
| 2.4.5 | MVC-Paradigma | 18 |
| 2.5 | Persistenz | 21 |
| 2.5.1 | Strukturbruch | 21 |
| 2.5.2 | Persistenzunabhängigkeit | 21 |
| 2.5.3 | Persistenzschicht | 22 |
| 2.5.4 | Modelltransformation | 22 |
| 2.5.5 | Persistenzframework | 22 |
| 2.6 | Flash Media Server | 25 |
| 2.6.1 | Funktionsweise | 25 |
| 2.6.2 | Entwicklung | 26 |
| 3. | Realisierung und Anwendung | 28 |
| 3.1 | Problematik der Planungstiefe | 28 |
| 3.2 | Projektbeschreibung | 28 |
| 3.3 | Erste Gedanken | 29 |
| 3.4 | Modellierung der Anwendungsfälle | 31 |
| 3.5 | Benutzeroberfläche | 34 |
| 3.6 | Architekturstruktur | 36 |
| 3.7 | Modellierung der Abläufe | 37 |
| 3.8 | Wahl des Phasenmodells | 39 |
| 3.9 | Klassenentwurf | 39 |
| 3.9.1 | Abbildung der Datenobjekte | 40 |
| 3.9.2 | Anwendungsschicht | 43 |
| 3.9.3 | Benutzeroberfläche | 45 |
| 3.9.4 | Persistenzmechanismus | 46 |
| 3.10 | Detaillösungen | 47 |
| 3.10.1 | Einbindung einer Zugkontrolle | 47 |
| 3.10.2 | Anbindung von Oberflächenelementen | 52 |
| 3.10.3 | Übertragung der Datenobjekte vom Client zum Server | 53 |
| 3.10.4 | Einsatz des Flash Media Server | 56 |
| 4. | Resumee und Ausblick | 60 |
| 4.1 | Resumee | 60 |
| 4.2 | Ausblick | 60 |
| Literaturverzeichnis | 62 | |
| Bücher | 62 | |
| Software | 63 | |
| Weiterführende Links | 64 | |
| Projekt | 64 | |
| Erklärung | 65 |
Inhaltsverzeichnis:
| Vorwort | II | |
| Probleme der Softwareentwicklung. | II | |
| Komplexität | II | |
| Warenzeichen. | III | |
| Verzeichnis | IV | |
| Inhalt | IV | |
| Abbildungen | VII | |
| Tabellen | VIII | |
| Codebeispiele | IX | |
| Abkürzungen | X | |
| 1. | Einführung | 1 |
| 1.1 | Architekturbegriff | 1 |
| 1.2 | Problemstellung | 1 |
| 1.3 | Anforderungsbasierte Architektur | 2 |
| 1.4 | Der Softwarearchitekt | 2 |
| 1.5 | Leitfaden | 3 |
| 2. | Grundlagen und erste Ansätze | 4 |
| 2.1 | Software als System | 4 |
| 2.2 | Die Phasenmodelle | 4 |
| 2.2.1 | Wasserfallmodell | 4 |
| 2.2.2 | Spiralmodell | 5 |
| 2.2.3 | V-Modell | 5 |
| 2.2.4 | Diamant-Modell | 5 |
| 2.2.5 | Projekt-Modell | 6 |
| 2.3 | Architekturstrukturen | 6 |
| 2.3.1 | Client-Server-Modell | 6 |
| 2.3.2 | n-Tier-Architektur | 7 |
| 2.3.3 | Rich-Client / Thin-Client-Architektur | 8 |
| 2.3.4 | Middleware-Architektur | 9 |
| 2.3.5 | Service-Orientierte Architektur | 10 |
| 2.4 | Entwurfsmuster | 12 |
| 2.4.1 | Adapter-Muster | 13 |
| 2.4.2 | Observer-Muster | 14 |
| 2.4.3 | Strategy-Muster | 15 |
| 2.4.4 | Composite-Muster | 17 |
| 2.4.5 | MVC-Paradigma | 18 |
| 2.5 | Persistenz | 21 |
| 2.5.1 | Strukturbruch | 21 |
| 2.5.2 | Persistenzunabhängigkeit | 21 |
| 2.5.3 | Persistenzschicht | 22 |
| 2.5.4 | Modelltransformation | 22 |
| 2.5.5 | Persistenzframework | 22 |
| 2.6 | Flash Media Server | 25 |
| 2.6.1 | Funktionsweise | 25 |
| 2.6.2 | Entwicklung | 26 |
| 3. | Realisierung und Anwendung | 28 |
| 3.1 | Problematik der Planungstiefe | 28 |
| 3.2 | Projektbeschreibung | 28 |
| 3.3 | Erste Gedanken | 29 |
| 3.4 | Modellierung der Anwendungsfälle | 31 |
| 3.5 | Benutzeroberfläche | 34 |
| 3.6 | Architekturstruktur | 36 |
| 3.7 | Modellierung der Abläufe | 37 |
| 3.8 | Wahl des Phasenmodells | 39 |
| 3.9 | Klassenentwurf | 39 |
| 3.9.1 | Abbildung der Datenobjekte | 40 |
| 3.9.2 | Anwendungsschicht | 43 |
| 3.9.3 | Benutzeroberfläche | 45 |
| 3.9.4 | Persistenzmechanismus | 46 |
| 3.10 | Detaillösungen | 47 |
| 3.10.1 | Einbindung einer Zugkontrolle | 47 |
| 3.10.2 | Anbindung von Oberflächenelementen | 52 |
| 3.10.3 | Übertragung der Datenobjekte vom Client zum Server | 53 |
| 3.10.4 | Einsatz des Flash Media Server | 56 |
| 4. | Resumee und Ausblick | 60 |
| 4.1 | Resumee | 60 |
| 4.2 | Ausblick | 60 |
| Literaturverzeichnis | 62 | |
| Bücher | 62 | |
| Software | 63 | |
| Weiterführende Links | 64 | |
| Projekt | 64 | |
| Erklärung | 65 |
Textprobe:
Kapitel 2.3.5, Service-Orientierte Architektur: Serviceorientierte Architektur (SOA) soll Middleware so nutzen, daß lose gekoppelte, verteilte Services möglich werden. Dabei steht die Geschäftlogik im Vordergrund, während die Kommunikation technologieneutral und standardisiert abläuft. Bei diesem Konzept werden fachliche Dienste und Funktionalitäten in Form von Services bereitgehalten. Der Service kann (teilweise auch anonym) über eine standardisierte Schnittstelle in Anspruch genommen werden.
Beispiele für den Einsatz von Services wären die Verbindung der IT-Infrastrukturen zweier Unternehmen (etwa bei Fusionen) oder die Verbindung unterschiedlicher Systeme mehrerer Abteilungen. Der Anfangsaufwand für die Umstellung existierender Unternehmenslösungen auf Services darf allerdings nicht unterschätzt werden. Für alle relevanten Schnittstellen müssen entsprechende Adapter gebaut werden.
Kostengründen oder aus anderen Gründen. Die wohl einfachste Weise, künftige Erweiterungen zu erkennen, ist die Einschränkungen auf ihre Plausibilität zu überprüfen. Auch ein Vergleich mit bereits existierender Software ist ein guter Ansatz, den üblichen Leistungsumfang des geforderten Softwaretyps zu ermitteln. So ist die Begrenzung der Zielgruppe auf Profispieler möglicherweise dann ein Problem, wenn diese Zielgruppe zu klein ist oder nur wenige Profispieler bereit sind sich zu registrieren, um die Plattform wirtschaftlich zu betreiben. Werden jedoch auch Freizeitspieler zugelassen, so wird eine Plausibilitätsüberprüfung der Züge notwendig. Der Algorithmus, der für die Überprüfung zuständig ist, kann jedoch auf einfache Weise vom System entkoppelt werden, wenn das Entwurfsmuster ‚Strategy’ angewendet wird. Da diese Funktion jedoch gar nicht vorgesehen ist, kann vorerst mit einem ‚leeren’ Algorithmus gearbeitet werden, der durch einen anderen ersetzt wird, sollte der Erweiterungswunsch auftauchen. Die Kosten für diese Lösung sind geringer, als das nachträgliche Schaffen passender Schnittstellen. Die fehlende Schnittstelle zu Fremdsystemen könnte schon eher ein Problem werden. Gerade Spieler im Profibereich werden wohl mehrere Programme nutzen. Hier muß also geprüft werden, ob ein Standard zum Datenaustausch zwischen Schachprogrammen überhaupt existiert und wenn ja, wie dieser definiert ist.8 Das geplante Software-System sollte also zumindest die für dieses Format erforderlichen Daten erfassen und bereithalten. Eine einfache Import- und Exportfunktion läßt sich so nachträglich relativ leicht erstellen. In der Projektbeschreibung ist der Aspekt der Administration des Systems überhaupt nicht berücksichtigt. Eine Community muß aber administriert werden, mindestens jedoch muß die Möglichkeit bestehen, Nutzer zu sperren, die ihren Beitrag nicht bezahlt oder die gekündigt haben. Der direkte Zugriff auf die dafür vorgesehenen Datenbankrelationen ist zwar möglich, erfordert aber doch einige Sachkenntnis und birgt die Gefahr der Fehlbedienung. Eine sicher notwendige Erweiterung wäre also eine Administrationsoberfläche. Der letzte Punkt, die nicht benötigte Schach-Engine, wird wohl nicht als Erweiterungswunsch auftauchen, da dadurch der Charakter des Programms (eine Community) stark verändert würde. Die Erweiterung wird deshalb nicht weiter eingeplant. Falls doch gewünscht, läßt sich eine Schach-Engine einfach als weiterer Benutzer in das System integrieren. Vorsichtshalber legt man daher einen Benutzer [...]
Spieler können live gegeneinander spielen. Livespiele können zeitlich begrenzt werden, d.h. spielen gegen die Stoppuhr. Bei Livespielen kann zugeschaut werden. Die Spieler können bei einem Livespiel Audio benutzen, um sich zu unterhalten. Die Spiele werden gespeichert. Gespeicherte Spiele können geladen und analysiert werden. Spiele sollen jedoch auch zeitversetzt möglich sein, das System sendet bei Änderungen des Spielstands eine e-Mail an den gegnerischen Spieler. Spiele können Wettkampf- oder Übungsspiele sein. Nach abgeschlossenen Wettkampfspielen wird der ELO7 der Spieler automatisch neu berechnet. Ein Spieler kann die Eröffnung des Gegners mit den in der Datenbank gespeicherten Spielen bis zu einer bestimmten Tiefe abgleichen, um so festzustellen, ob der Gegner möglicherweise einen Schachcomputer oder sonstige Hilfen verwendet. [...]
Ein häufig auftretendes Problem ist, daß aus Kosten- oder anderen Gründen von vornherein Einschränkungen im Leistungsumfang gemacht werden. Im späteren Betrieb der Software erweisen sich diese Einschränkungen dann als massive Störungen, die beseitigt werden müssen. Ein guter Ansatz ist daher, die Anwendungsfälle so umfassend wie möglich auszuarbeiten, so daß künftige Erweiterungswünsche erkannt werden können und entsprechende Schnittstellen und Datenstrukturen vorbereitet, bzw. Räume dafür geschaffen werden können. Je gründlicher diese Ausarbeitung ist, desto weniger Überraschungen ergeben sich während der Entwicklungsphase. Die Mehrkosten für eine gründlichere Analyse der Anforderungen und Planung der Anwendungsfälle amortisieren sich erfahrungsgemäß mit der ersten Erweiterung des Systems. Der Kunde erkennt neue Möglichkeiten, trotz seiner umfassenden Fachkenntnis, oft erst im Zuge der Entwicklung. Auch dies ist ein guter Grund, Anwendungsfälle umfassend zu planen. Ausufernde Kosten und ungeplant wuchernde Systeme lassen sich so vermeiden. 3.2 Projektbeschreibung [...]
In den Warenkorb
48,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832499693
Arbeit zitieren:
Junius, Andreas Oktober 2006: Evaluierung von Softwarearchitekturen, Hamburg: Diplomica Verlag
Schlagworte:
Softwaretechnik, Architekturmuster, Softwaredesign, Flash Media, Phasenmodell




