Folien

Werbung
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
Herunterladen