PP-SS20-01/Initiale Anforderungen

Aus Verteilte Systeme - Wiki
Zur Navigation springen Zur Suche springen


Initiale Anforderung

Exposé für das Portfolio

Rollen (Stakeholder)

  • (R01) Endanwender (Nutzer des Sequenzers)
  • (R02) Entwickler von Erweiterungen (neue Funktionen, ändern der Tastenbelegung)

Ziele

  • (Z01) BLE Verbindung herstellen und als Midi Gerät erkennen
  • (Z02) Übertragen einer Sequenz als MIDI-Ausgabe
  • (Z03) Einstellen einer Sequenz
  • (Z04) Einstellen eines Steps
  • (Z05) Anzeigen von Informationen auf dem Display
  • (Z06) Rotary Encoder Eingabe
  • (Z07) Keyboardmatrix Eingabe
  • (Z08) Speichern der Daten auf dem Flash

Anwendungsfälle

(UC01) Bedienung des Sequenzers

SequenzerAllgemein.png


(UC01a) BPM einstellen

Der Anwender kann mithilfe der Drehimpulsgeber die Beats per Minute erhöhen oder verringern

BpmEinstellen.png
(UC01b) Sequenz einstellen

Der Anweder kann mit der Eingabe über eine Buttonmatrix eine Sequenz auswählen und diese mit dem Drehimpulsgeber einstellen

SequenzEinstellen.png
(UC01c) Step einstellen

Der Anweder kann mit der Eingabe über eine Buttonmatrix einen Step auswählen und diesen mit dem Drehimpulsgeber einstellen

StepEinstellen.png
(UC01d) andere Eingaben

Der Anweder kann über andere Eingaben weitere Funktionen aufrufen

RestBedienung.png

Aktivitätsdiagramme für Anwendungsfälle

BPM einstellen.png Sequenz einstellen.png Step einstellen.png Anderer Stuff.png

Detaillierte Anforderungen mit zugeordneten Zielen und ggf. Anwendungsfällen

nf = nicht-funktional, f = funktional


  • (A01, nf) Nutzung von ZephyrOS als Entwicklungsbasis (ZX)
  • (A02, f) Anzeigen von Informationen auf dem Display (Z05)
  • (A02a, nf) Menüführung (Z05)
  • (A03, f) Senden über BLE (Z01, Z02)
  • (A03a, nf) Verschlüsselte Kommunikation (Z01, Z02)
  • (A03b, nf) (Pairing über einen Code) (Z01, Z02)
  • (A04, f) Durchlaufen einer Sequenz (Z02)
  • (A05, f) Verarbeiten von Eingaben (Z06, Z07)
  • (A05a, f) Einstellen der Step Einstellungen (Z04, Z07, Z08)
  • (A05b, f) Einstellen der Sequenz Einstellungen (Z03, Z07, Z08)
  • (A05c, nf) Freie Belegung der Tastenfunktion (Z06, Z07)
  • (A06, f) Speichern des Status (Z08)
  • (A06a, nf) SysEx Dump des Status (Z08)

Tests und Simulation

  • Inbetriebnahme der Hardware
    • Testen von allen Tastern
    • Testen der Drehimpulsgeber
    • Testen der Displayausgabe
  • Inbetriebnahme der Software
    • Programm auf dem nRF5240 MDK flashen, per minicom print ausgaben lesen
      • Verbindung per BLE mit dem iPad herstellen
      • Nach dem herstellen der Verbindung ist der GATT Service mit der in der von Midi spezifizierten UUID im iPad sichtbar
        • Überprüfen ob MIDI Daten ankommen
  • Test Implementierung "Abspielen"
    • Stimmen die Zeiten für einzelne Notenlängen
    • Wird jeder Step wiedergegeben
    • Werden Steps die nicht aktiv sind übersprungen
    • Werden Steps die über mehrere Steps gehen richtig verarbeitet
  • Test Implementierung "Eingabeverarbeitung"
    • Wird jede Taste erkannt
      • Lässt sich das Abspielen starten
      • Lässt sich das Abspielen stoppen
      • Lässt sich das Speichern triggern
      • Ist es möglich in die Sequenz Einstellungen zu gelangen
        • Lassen sich alle Einstellungen einer Sequenz anpassen
      • Ist es möglich in die Step Einstellungen zu gelangen
        • Lassen sich alle Einstellungen eines Steps anpassen
    • Werden die Drehimpulse der Drehimpulsgeber erkannt
      • Lassen sich alle Einstellungen eines Steps anpassen
      • Lassen sich alle Einstellungen einer Sequenz anpassen