Development:Anforderungen IDE

Aus StellSi-Hilfewiki
Zur Navigation springen Zur Suche springen

Grundüberlegungen

StellSi sollte eine gut bedienbare IDE enthalten, die das Entwickeln und Testen von Bauformen erleichtert. Dazu sollten folgende Anforderungen erfüllt werden:

  • Integration des Bibliothekseditors in den Simulator
  • Im laufenden Betrieb können Skripte neugeladen werden - automatisch oder manuell durch den Nutzer?
    • Variante A: Relaisgruppe wird neu initialisiert
    • Variante B: Inhalt der Membervariablen und anderer Relaisgruppenbezogenen Daten bleiben erhalten, sofern die Namen gleich bleiben. Kann schieflaufen, wenn Membervariablen o.ä. dazugekommen sind
  • Integration eines Quelltexteditors mit automatischen Vervollständigen (Ja, ich weiß, dass das komplex ist)
  • Einheitliche GUI in allen Teilen von StellSi
  • Undo/Redo (-> Einsatz Befehlsobjekte?)
  • Alle Änderungen wirken sich grundsätzlich sofort aus (-> keine Bestätigungsknöpfe). Ausnahmen ggf. bei Dialogen?

Testing

  • Integration eines Debuggers:
    • "Abhören" von Verbindungen zwischen Schnittstellen (u.a. Anzeige der Werte der Leitungen)
    • Setzen von Breakpoints in Skripten
    • Setzen von Breakpoints im SimpleScript
    • Setzen von Breakpoints bei Schnittstellenaktivitäten
    • "Unittest" von Relaisgruppen o.ä.: Einbau eines Schnittstellensimulators, mit dem die Schnittstellen einer Relaisgruppe, eines TischfeldElement o.ä. gezielt stimuliert werden können
    • Automatisierung von Tests?

-> Debugger muss sich in Zukunft auf das ganze Objekt (TischfeldElement, Relaisgruppe) beziehen, nicht nur auf den Angelscript-Anteil!


TODO-Liste

  • Entwicklung der GUI von StellSi:
    • Basis: GUI für die Spieler
    • Einschaltbar für Stellwerkserbauer (ein oder zwei Seitenleisten?):
      • Seitenleiste für neue Elemente (Tischfelder, Relaisgruppen o.ä.)
      • Seitenleiste für Property-Editierung (heutiger Parametereditor)
    • Einschaltbar für Entwickler:
      • Quelltexteditor
      • Entwicklertools
      • Testtools