med conf2011 modellgetriebene_ansätze_in_medizintechnikprojekten_moelle
TRANSCRIPT
© Zühlke 2011
Dr. Daniel Mölle
Modellgetriebene Ansätze in Medizintechnikprojekten
5. Oktober 2011
© Zühlke 2011
Das Spannungsfeld zwischenEntwicklung und Regulation
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Software-Technik Medizintechnik
innovationsbetont risikobewusst
© Zühlke 2011
Das Spannungsfeld zwischenEntwicklung und Regulation
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Software-Technik Medizintechnik
kreativ organisiert
© Zühlke 2011
Das Spannungsfeld zwischenEntwicklung und Regulation
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Software-Technik Medizintechnik
dynamisch prozessorientiert
© Zühlke 2011
Das Spannungsfeld zwischenEntwicklung und Regulation
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Software-Technik Medizintechnik
innovationsbetont
kreativ
dynamisch
risikobewusst
organisiert
prozessorientiert
© Zühlke 2011
Modellgetriebene AnsätzeDie Grundidee von MD∗
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Ausgewählte Entitäten…
Artefakte ableiten.
formal modellieren;
AnforderungenDomäneArchitekturDesign
State MachinesAlgorithmen
…
© Zühlke 2011
Modellgetriebene AnsätzeDie Grundidee von MD∗
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
menschen- und maschinenlesbar:UML, DSL, …
Ausgewählte Entitäten…
Artefakte ableiten.
formal modellieren;
© Zühlke 2011
Modellgetriebene AnsätzeDie Grundidee von MD∗
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
CodeTestfälle
Dokumentation…
Ausgewählte Entitäten…
Artefakte ableiten.
formal modellieren;
© Zühlke 2011
Modellgetriebene AnsätzeEin sehr, sehr einfaches Beispiel
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Stopped
Started
StartS
top
enum State_e { Stopped, Started };
enum Signal_e { Start, Stop };
State_e state = Stopped;
procedure Feed(Signal_e signal)
{
switch (state) {
case Stopped:
if (signal == Start)
then state := Started;
break;
case Started:
if (signal == Stop)
then state := Stopped;
break;
}
}
© Zühlke 2011
MD∗
Modellgetriebene AnsätzeEin Überblick
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Model-Driven
Engineering
(MDE)
Model-DrivenArchitecture
(MDA)
Model-Driven[Software]
Development(MD[S]D)
Model-DrivenAnalysis
Model-BasedTesting
Model-DrivenDebugging
Model-DrivenDeployment
© Zühlke 2011
Modellgetriebene AnsätzeMDSD – Typische Entitäten
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Komponenten
State Machines
Klassen
© Zühlke 2011
Modellgetriebene AnsätzeMDSD – Eine Variante
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
GeneratorenTextuelle Modelle Graphische Modelle
Generierter CodeRegulärer Code
Compiler + Linker
Ausführbare Software
© Zühlke 2011
Modellgetriebene AnsätzeMDSD – Eine andere Variante
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Compiler + Linker
Ausführbare Software
Eingehängter Code Eingehängter Code
GeneratorenTextuelle Modelle Graphische Modelle
Generierter Code
© Zühlke 2011
MDSD-Beispiel: Event-Driven SystemsAusgewählte Entitäten
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Modul
IF 1 IF 2
FSM
Modul
IF 1 IF 2
FSM
Modul
IF 2
FSM
IF 3 IF 3
© Zühlke 2011
MDSD-Beispiel: Event-Driven SystemsFormale Modelle (1)
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
interface Lifecycle
{
## Start the module
event Start
## Stop the module
event Stop
} interface Sound
{
## Play a sound of frequency
## f Hz for a duration of t ms
event Play(uint16 f, uint16 t)
}
module AudioController
{
has Lifecycle
has Sound
}
© Zühlke 2011
MDSD-Beispiel: Event-Driven SystemsFormale Modelle (2)
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
statemachine AudioController
{
initial state Stopped
{
on Lifecyle:Start enter Started
}
state Started
{
on Lifecycle:Stop enter Stopped
on Sound:Play
execute PlayAction
}
}
© Zühlke 2011
MDSD-Beispiel: Event-Driven SystemsAbgeleitete Artefakte (1)
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
<h2>Interfaces</h2>
<h3>Lifecycle</h3>
<table>
<tr><th>Event</th><th>Description</th></tr>
<tr><td>Start</td><td>Start the module</td></tr>
<tr><td>Stop</td><td>Stop the module</td></tr>
</table>
<h3>Sound</h3>
<table>
...
</table>
...
© Zühlke 2011
MDSD-Beispiel: Event-Driven SystemsAbgeleitete Artefakte (2)
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
procedure AudioController_HandleEvent(Event e)
{
switch (e.Interface)
{
case Lifecycle:
AudioController_HandleLifecycleEvent(e);
break;
case Sound:
AudioController_HandleSoundEvent(e);
break;
default:
FAIL(„Interface not supported.“);
}
}
© Zühlke 2011
Modellgetriebene AnsätzeMDA – Typische Entitäten
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Domäne
Architektur
Fließender Übergang zu MDSD
© Zühlke 2011
Modellgetriebene AnsätzeMDA – Das Standardmodell
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
TransformatorenPlatform-
IndependentModels(PIMs)
Platform-SpecificModels(PSMs)
PlatformDefinitionModels(PDMs)
© Zühlke 2011
Modellgetriebene AnsätzeModel-Based Testing – Typische Entitäten
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Algorithmen
State Machines
Klassen
© Zühlke 2011
Modellgetriebene AnsätzeModel-Based Testing – erste Variante
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
GeneratorenTextuelle Modelle Graphische Modelle
Testcode
© Zühlke 2011
Modellgetriebene AnsätzeModel-Based Testing – zweite Variante
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
GeneratorenTextuelle Modelle Graphische Modelle
Testcode
Testfälle Testfälle
© Zühlke 2011
MBT-Beispiel: State Machine CheckerModelle
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
statemachine AudioController
{
initial state Stopped
{
on Lifecyle:Start enter Started
}
state Started
{
on Lifecycle:Stop enter Stopped
on Sound:Play
execute PlayAction
}
}
checks AudioController
{
is Started always reachable?
}
© Zühlke 2011
MBT-Beispiel: State Machine CheckerGenerat
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
MODULE AudioController
VAR
state: { Stopped, Started };
ASSIGN
init(state) := Stopped;
next(state) := case
state = Stopped : { Started };
state = Started : { Stopped };
esac;
SPEC AG(EF(state = Started))
© Zühlke 2011
Eine kritische Würdigung von MD∗
Der Lückenschluss
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Hardware-Treiber
Technische Dienste
Fachliche Dienste
Benutzeroberfläche
Abstraktion
AnforderungenForm
alität
Architektur + Design
© Zühlke 2011
Eine kritische Würdigung von MD∗
Die Vorzüge
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Konsistenz von Modell und Generat
Erleichterung der Kommunikation
Analysierbarkeit
© Zühlke 2011
Eine kritische Würdigung von MD∗
Spezifische Schwachstellen
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
MDSD: Das Heilsversprechen
MBT: Quantität versus Qualität
MDA: Enorme Abstraktionslast
“Just state diagrams -yes of course!”[SineLaboreRT]
© Zühlke 2011
Eine kritische Würdigung von MD∗
Spezifische Schwachstellen
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
“[A]n MDA tool is a tool used to develop, interpret, compare, align, measure, verify, transform, etc.
models or metamodels.”[Wikipedia]
MDSD: Das Heilsversprechen
MBT: Quantität versus Qualität
MDA: Enorme Abstraktionslast
© Zühlke 2011
Eine kritische Würdigung von MD∗
Spezifische Schwachstellen
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
“[Testers] need to be familiar with the model and
its underlying […] mathematics and theories.”
[El-Far & Whittaker]
MDSD: Das Heilsversprechen
MBT: Quantität versus Qualität
MDA: Enorme Abstraktionslast
© Zühlke 2011
Eine kritische Würdigung von MD∗
Allgemeine Schwachstellen
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Abstraktionsfalle
SchwergewichtigeWerkzeuge
Vermischung von EbenenÜberabstraktion
überzogene Erwartungenunterschätzter Aufwand
…
© Zühlke 2011
Eine kritische Würdigung von MD∗
Allgemeine Schwachstellen
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Technische AbhängigkeitOrganisatorische Abh’keitValidierung unmöglich
…
Abstraktionsfalle
SchwergewichtigeWerkzeuge
© Zühlke 2011
Modellgetriebene MedizintechnikLösungswege
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
Pragmatischer Einsatz
Natürliche Modelle
Bewusste Motivation
Validierung der Generate
© Zühlke 2011
Es gibt einen Weg!
Für die Medizintechnik:
•MDSD ist die nützlichste Ausprägung
•Auch interessant: Test & Deployment
Gute Kriterien für den Einsatz:
•Boilerplate Code
•Konsistenz kritisch
• Strukturinformationen
5. Oktober 2011Modellgetriebene Ansätze in Medizintechnikprojekten | Dr. Daniel Mölle
iX 10/2011: „Medizinisch, praktisch, gut“