ascienta

Software Engineering

Behaviour Driven Development:

BDD ist ein Schlüssel für die qualitativ hochwertige Software-Entwicklung, die die Erwartungen der Auftraggeber erfüllt. ascienta unterstützt bei der Spezifikation von Features, und hilft durch BDD-Coaching und Qualitätssicherung.

Testautomatisierung:

Testautomatisierung dient der Steigerung von Qualität und Effizienz in IT-Projekten. Eine im Rahmen eines Projekts entwickelte und danach im Betrieb gepflegte Testautomatisierung verbessert die Qualitätssicherung und erleichtert spätere Upgrades im Betrieb.

Actor-Systems:

Actor-Systems (auch: Micro-Services) bilden die Grundlage für komplexe Systeme, die fehlertolerant arbeiten und gleichzeitig reaktiv sind. Das Akka-Framework stellt eine hervorragende Basis für Actor-Systems zur Verfügung. ascienta berät bei der Auswahl passender Architekturen und unterstützt bei Entwurf und Umsetzung.

Projektbeispiele:

Motivation

Bei der Planung des Betriebs der Treibstoffversorgung an einem Flughafen sollte überprüft werden, ob der Betankungsservice genügend Kapazitäten aufweist, um die Flugzeuge in der dafür zur Verfügung stehenden Zeit betanken zu können. Zur Kostenminimierung sollte dazu ausserdem die minimale Anzahl an Betankungsfahrzeugen für vorgegebene Betriebsszenarien ermittelt werden. Simulationsparameter sind unter anderem die Typen der Betankungsfahrzeuge (Kapazität und Durchflussleistung), Treibstoffbedarf der zu befüllenden Flugzeuge und deren Betankungscharakteristiken, und die Gegebenheiten am Flugplatz, wie z.B. durchschnittliche Fahrzeiten zwischen Depot und Flugzeugstellplätzen.

Ziel

Mit der Durchführung der Simulation ausgewählter Betriebsszenarien wird der Nachweis erbracht, dass das geplante Betankungssystem in der Lage ist, die geforderten Servicezeiten zu erfüllen. In einer bestehenden Betriebsumgebung kann überprüft werden, ob der Betankungsbetrieb durch eine Reduzierung der Anzahl der Tankfahrzeuge optimiert werden kann. Sowohl für einen Neubau als auch für die Veränderung eines Betankungsbetriebs wird die Simulation genutzt, um die Planung kostengünstig zu verifizieren und damit die Risiken des Vorhabens erheblich zu vermindern.

Ein technisches Ziel war der Nachweis, dass durch den Einsatz der Funktionalen Programmiersprache Scala und der Bibliothek Akka ein System zur ereignisorientierten Simulation (discrete event simulation) entwickelt werden kann.

Inhalte

Die Simulation wurde als Discrete Event Simulation (DES) umgesetzt. Jedes Flugzeug und jedes Fahrzeug wurde als Actor programmiert. Zentrale Agenten für die Verwaltung der Flugereignisse und der Fahrzeuge vervollständigen das Bild. Der Dispatchalgorithmus für die Fahrzeuge wurde als austauschbare Komponente entwickelt, sodass die Auswirkungen unterschiedlicher Dispatch-Verfahren simuliert werden können. Alle Zeiten (Dispatch, Fahrzeiten, Füllzeiten) sind normal verteilte Zufallszahlen.

Ergebnis

Das erstellte System erlaubt die Modellierung eines Betankungsbetriebs durch die Eingabe der Betriebsparameter (u.a. Fahrzeuge, Fahrzeiten) und der Betankungsanforderungen. Simulationsläufe können nachvollziehbar ausgeführt werden. Durch die Modifikation einzelner Parameter lassen sich die Auswirkungen der Parameter nachvollziehen. Damit kann effizient überprüft werden, ob eine bestimmte Systemauslegung die operativen Anforderungen erfüllen wird, bevor mit dem Bau oder der Veränderung eines Betankungssystems begonnen wird. Die auf Aktoren basierende Entwicklung der Simulation mit Akka in funktionaler Programmierung hat sich für derartige Aufgaben bestens bewährt. Das entwickelte System benötigt lediglich eine JVM als Laufzeitumgebung und kann damit auf jedem System, auf dem Java installiert ist, ablaufen.

BDD