1. Einführung

Dieses Entwurfsdokument beschreibt die grundlegenden Entwurfsentscheidungen und die Architektur für das Softwareprojekt SoundInvestments zur Sonifizierung von Börsendaten. Es enthält eine detaillierte Beschreibung des Softwaredesigns zur Umsetzung des Projekts. Das Ziel dieses Projekts ist es, einen eigenen Synthesizer zu entwickeln, der in der Lage ist, Kursdaten, als zusätzlichen Dateninput zum Graphen, in Audio umzuwandeln. Die Kursdaten werden über eine API bezogen und dienen als Grundlage für die Klangerzeugung. Über die UI sollen UserInnen in der Lage sein, spezifische Börsendaten zur Sonifizierung auszuwählen und die Kurse sowie im Kurs gefundene Trends selber auf Instrumente und Effekte zu mappen.

Das Entwurfsdokument richtet sich an alle Projektbeteiligten, sodass alle Beteiligten ein gemeinsames Verständnis des Softwaredesigns haben. Das Dokument bietet ebenfalls eine Referenz für zukünftige Änderungen und Erweiterungen des Systems.

1.1 Überblick

Dieses Entwurfsdokument umfasst die folgenden Abschnitte:

  1. Einführung: Das Kapitel dient dazu, einen Überblick über dieses Dokument sowie das Projekt SoundInvestments zu geben. Hier werden außerdem die Qualitätsziele definiert, nach denen sich der Rest des Entwurfs richtet.
  2. Entwurfsentscheidungen: Dieses Kapitel ermöglicht allen beteiligten Personen ein einheitliches Verständnis der der Architektur zugrunde liegenden Entscheidungen zu erhalten. Es fördert die Klarheit und vermeidet Missverständnisse oder Fehlinterpretationen.
  3. Systemkomponenten: Hier wird deutlich, wie das System aufgebaut und organisiert ist. Es wird verdeutlicht, wie die verschiedenen Teile des Systems zusammenarbeiten, welche Aufgaben sie erfüllen und wie sie miteinander kommunizieren. Dadurch entsteht ein klareres Verständnis davon, wie das gesamte System funktioniert und wie die einzelnen Komponenten zusammenwirken.
  4. Implementationsspezifikationen: Die Implementationsspezifikationen liefern klare Richtlinien und Anweisungen für die Umsetzung der Software. Sie enthalten Hinweise zu spezifischen Technologien und Entwurfsmustern die eingehalten werden sollen. Dadurch wird die Effektivität und Qualität der Entwicklung gesteigert. EntwicklerInnen haben klare Leitlinien, an die sie sich halten können, was zu einer reibungsloseren Umsetzung und einer besseren Codequalität führt.

1.2 Qualitätsziele

Zusätzlich zu den im Pflichtenheft spezifizierten funktionalen Anforderungen werden die folgenden Qualitätsziele an die Architektur von SoundInvestments gestellt:

Ziel Beschreibung Ansatz zur Erreichung
Stabilität Zuverlässigkeit und Fehlerfreiheit des Produktes; die erwarteten Funktionen werden fehlerfrei und konsistent ausgeführt 1. Umfassendes Testing
  1. Überwachung der API-Verfügbarkeit und Benachrichtigung bei Störungen
  2. Stichprobenprüfung | | Performance | Effizienz und Reaktionsfähigkeit der Software; umfasst Geschwindigkeit, Ressourcennutzung und Skalierbarkeit | 1. Optimierung von Algorithmen und Datenstrukturen
  3. Lasttests | | Operabilität | Die Software kann verhältnismäßig einfach eingerichtet und verwendet werden, sie benötigt lediglich eine gewöhnliche Systemumgebung und nur wenig Domänenwissen. | 1. Verwendung von cross-platform Technologien
  4. Möglichst geringe Abhängigkeit von externen Komponenten
  5. Fokus auf einfach verständliche UI | | Erweiterbarkeit | Die Software lässt sich problemlos um neue Funktionen erweitern | 1. Klar definierte Schnittstellen
  6. umfassende Dokumentation des Codes und der Funktionalitäten
  7. Einheitliche Codierungsstandards |

1.3 High-Level Überblick

Folgend soll ein grober Überblick über die Architektur der SoundInvestments-Anwendung gegeben werden. Die Komponenten der Anwendung und deren Abhängigkeiten werden im folgenden Diagramm dargestellt. Die Pfeile im Diagramm geben die Richtung der Interaktion an - z.B. benutzt der State Manager den Harmonizer aber der Harmonizer benutzt nicht den State Manager. Die einzelnen Komponenten und ihre Zusammenhänge sind in Kapitel 3 näher beschrieben.

High-Level Überblick der Komponenten von SoundInvestments

High-Level Überblick der Komponenten von SoundInvestments

2. Entwurfsentscheidungen

Es soll nun ein Überblick über einige wichtige Entscheidungen gegeben werden, die bei der Erstellung des Entwurfs getroffen wurden. Speziell soll dabei auf die Erstellung eines eigenen Synthesizers, die API-Anbindungen und die Nutzung von Chart Analysen eingegangen werden.

2.1 Audio-Generierung