Planung und Realisierung einer modularen Applikation zur Verwaltung von Steuer- und Messvorschriften für eine QNX-basierte Echtzeitumgebung Abschlussvortrag 17. Oktober 2011 Bachelorarbeit Bachelorand: Daniel Knobe Betreuer: Prof. Dr.-Ing. Olaf Spinczyk Dr. Stefan Siepmann Agenda Einführung Entwurf SMVEditor Evaluation Modellgetriebene Softwareentwicklung Implementierung Einordnung Anforderungen Performance Fazit Demo der Implementierung Einführung Einordnung Erstellung von Prüfungen für den Dauerversuch Dauerversuch: Entwicklung … Markteinführung … Elektrolabor Dauerversuch Waschlabor Prüfungen: Steuer- und Messvorschriften (SMV) Erstellung: Programmierung in PEARL90 PEARL90 Code PEARL90 Compiler SMV Einführung Anforderungen Grafische Modellierung von Prüfungen Abstraktion Hierarchie Parallelität Modular erweiterbar Applikation Benutzerfreundlich Lesbarer Code Lauffähige SMV Kompatibel zu Windows- und Linuxsystemen Grafische Sprache C Code C Compiler SMV Entwurf Modellgetriebene Softwareentwicklung • Grafische Modellierung der Prüfung DSL Metamodellinstanz Code • Instanz der modellierten Prüfung • Transformationen bis hin zum generierten Code Entwurf Metamodell SMV control structures Edge 1 1 Graph n EndNode ForkNode 2 StartNode JoinNode EndIfNode EndLoopNode IfNode LoopNode Node 1 0..* 1 GroupNode 1 1 1 1 * 1 CopiedGroupNode LinkedGroupNode ComponentNode * Parameter Verboten: Gruppenknoten dürfen nicht transitiv auf sich selbst verweisen Paare müssen einen vollständigen Graphen umschließen Entwurf Komponentenknoten Module Variablen Komponentenknoten Modul A Variablen: Variable A1 Variable A2 Komponentenknoten: Komponentenknoten Komponentenknoten A1 Parametrierbar Modul B Variablen: Komponentenknoten: Komponentenknoten B1 Komponentenknoten B2 Entwurf Domänenspezifische Sprache Startknoten Endknoten F Gabelknoten L Schleifenknoten J LE Wennknoten G Vereinigungsknoten Schleifenendeknoten Wennendeknoten Kopiegruppenknoten G Linkgruppenknoten Komponentenknoten Entwurf Beispiel F J L StartNode Edge CompNode Edge Parameter Edge ForkNode LE JoinNode Parameter LoopNode CompNode EndLoopNode Edge Edge Edge Edge Edge EndNode Implementierung SMVEditor Java-basierende Applikation Prozess: Implementierung SMVEditor Java-basierende Applikation Prozess: Implementierung SMVEditor Java-basierende Applikation Prozess: Implementierung Validierung Eindeutigkeit des Startknoten Validierung von Parametern Knotenbedingungen Kantenvalidierung lineare Abhängigkeit der Laufzeit zur Knotenzahl des Graphen StartNode Edge CompNode Parameter Edge ForkNode Edge JoinNode Parameter LoopNode CompNode EndLoopNode Edge Edge Edge Edge Edge EndNode Implementierung SMVEditor Java-basierende Applikation Prozess: Implementierung XVCL-Schichtarchitektur Implementierung SMVEditor Java-basierende Applikation Prozess: Implementierung SMVEditor Java-basierende Applikation Prozess: Evaluation Szenario System: Windows XP SP3 Pentium Dual-Core E2160 @ 1,8GHz 2GB DDR2 Ram SMV-Generator: L … LE Evaluation Performance Zeitverhalten der Generierung: Knoten XVCL-Gen. Code-Gen. Kompilierung G. Gesamt 2 2ms 206ms 53ms 261ms 50 5ms 189ms 62ms 256ms 100 11ms 232ms 70ms 313ms 150 14ms 233ms 78ms 325ms 200 19ms 239ms 77ms 335ms 250 26ms 259ms 87ms 372ms 300 33ms 287ms 97ms 417ms Evaluation Performance Zeitverhalten der Generierung: 450 400 350 Dauer in ms 300 250 XVCL-Gen. Code-Gen. 200 Kompilierung 150 G. Gesamt 100 50 0 2 50 100 150 Knoten 200 250 300 Evaluation Performance Zeitverhalten von Validierung und Generierung: Knoten Validierung Generierung Gesamt 2 13ms 261ms 274ms 50 785ms 256ms 1041ms 100 1503ms 313ms 1816ms 150 2459ms 325ms 2784ms 200 3311ms 335ms 3646ms 250 4465ms 372ms 4837ms 300 5615ms 417ms 6032ms Evaluation Performance Zeitverhalten von Validierung und Generierung: 7000 6000 Dauer in ms 5000 4000 Validierung Generierung 3000 Gesamt 2000 1000 0 2 50 100 150 Knoten 200 250 300 Evaluation Performance Zeitverhalten der Validierung: Knoten Ohne Parameter Mit Parameter Anteil 2 13ms 13ms - 50 58ms 785ms 93% 100 68ms 1503ms 95% 150 85ms 2459ms 97% 200 91ms 3311ms 97% 250 99ms 4465ms 98% 300 104ms 5615ms 98% Evaluation Performance Zeitverhalten der Validierung: 6000 5000 Dauer in ms 4000 Ohne Parameter 3000 Mit Parameter G. Gesamt 2000 1000 0 2 50 100 150 Knoten 200 250 300 Evaluation Performance Fazit: Lineare Laufzeit zur Knotenanzahl Die Gesamtdauer hängt maßgebend von der Validierungsdauer ab Die Validierungsdauer hängt maßgeblich von der Anzahl parametrierbarer Knoten ab Geschwindigkeit der Validierung und Generierung sind akzeptabel Fazit Grafische Modellierung von Prüfungen Abstraktion DSL Hierarchie Gruppenknoten Parallelität Threadknoten Modular erweiterbar Module Applikation Benutzerfreundlich SMVEditor Lesbarer Code Codegenerator Lauffähige SMV QCC Kompatibel zu Windows- und Linuxsystemen Java Demo der Implementierung