SlideShare une entreprise Scribd logo
1  sur  24
A MODEL-DRIVEN DEVELOPMENT
AND
VERIFICATION APPROACH
FOR MEDICAL DEVICES
Major Professor: John Hatcliff
Committee members: John Hatcliff, Robby, Eugene Vasserman
Jakub Jedryszek
www.jj09.net
Computing and Information Sciences Department
Kansas State University
Motivation
 Medical Devices Interoperability
 ICE (Integrated Clinical Environment)
 MDCF (Medical Device Coordination Framework)
 PCA Pump
 Software Verification
 Model-Driven Development
Patient-Controlled Analgesia (PCA) Pump
 Method of pain control that gives patients the
power to control their pain
 Operational modes:
 Stopped
 Basal Rate
 Bolus
 Clinician Bolus (Square bolus)
 Keep Vein Open (KVO)
Integrated Clinical Environment
Integrated Clinical Environment
Medical Device Coordination Framework
Goals
 Create PCA Pump Prototype:
 ICE PCA Infusion Pump System Requirements
 PCA Pump models
 Analysis of implementation details
 Propose AADL to SPARK Ada translation
 Verify aspects of PCA pump with SPARK tools
Technologies
 AADL (Architecture Analysis & Design Language)
 BLESS (Behavior Language for Embedded Systems with Software)
 SPARK Ada programming language
AADL (Architecture Analysis & Design Language)
 "UML for hardware and software”
 Used for:
 real-time sytems
 safety critical systems
 embedded systems
 Graphical and textual representation
package Thermometer
public
with Base_Types;
system patient_thermometer
end patient_thermometer;
system implementation patient_thermometer.impl
subcomponents
thermomether : device thermometer_device.impl;
opi : device operator_interface.impl;
connections
tdn : port thermomether.temp -> opi.display;
end patient_thermometer.impl;
device operator_interface
features
display : in data port Base_Types::Integer;
end operator_interface;
device implementation operator_interface.impl
end operator_interface.impl;
device thermometer_device
features
temp : out data port Base_Types::Integer;
end thermometer_device;
device implementation thermometer_device.impl
end thermometer_device.impl;
end Thermometer;
BLESS(Behavior Language for Embedded Systems with Software)
 AADL annex sublanguage defining behavior of components
 BLESS’s goal: auto-check correctness proofs of AADL
models of embedded electronic systems with software
 3 AADL Annex Sublanguages:
 Assertion
 subBLESS
 BLESS
thread Some_Thread
features
Some_Port : out event port
{BLESS::Assertion =>
”<<(Var1 < Var2 and COND2())>>”;};
end Some_Thread;
thread implementation Some_Thread.impl
annex BLESS
{**
invariant <<(Some_Var < Other_Var)>>
assert
<<COND2 : :(Var1 > 0)>>
**};
end Some_Thread.impl;
Ada
 Programming language:
 Object oriented
 Statically typed
 Designed for safety critical systems
 Railway systems
 Airplanes software (e.g. Boeing 777)
 Medical devices
 (*) Ada was named after Ada Lovelace (1815–1852), who is
credited as being the first computer programmer (women)
with Ada.Text_IO;
use Ada.Text_IO;
procedure Hello is
begin
Put_Line ("Hello, world!");
end Hello;
SPARK
 Subset of Ada for Software Verification
 Versions:
 SPARK 83 (based on Ada 83)
 SPARK 95 (based on Ada 95)
 SPARK 2005 (based on Ada 2005)
 SPARK 2014 (based on Ada 2012)
 SPARK 2005 = subset of Ada + code contracts (annotations)
 SPARK 2014 = subset of Ada (code contracts in Ada 2012)
SPARK 2005 (based on Ada 2005) SPARK 2014 (based on Ada 2012)
procedure Inc (X : in out Integer);
--# pre X < Integer’Last;
--# post X = X~ + 1;
procedure Inc (X : in out Integer)
with Pre => X < Integer’Last,
Post => X = X’Old + 1;
SPARK – Concurrency
 Ravenscar profile – subset of Ada tasking features designed
for safety-critical hard real-time computing
 RavenSPARK – subset of Ravenscar profile, which allows to
verify concurrent programs with SPARK verification tools
 Used features:
 tasks
 protected types
 Ada.Real_Time library
SPARK – Verification
 SPARK 2005
 Examiner
 Simplifier
 ZombieScope
 ViCToR
 POGS
 Bakar Kiasan
 AUnit tests
 SPARK 2014
 GNATprove
 Bakar Kiasan v2
 Verification Conditions (VC)
 array index out of range
 type range violation
 division by zero
 numerical overflow
 Dead Path Conjectures (DPC)
Platform for PCA Pump Prototype
 BeagleBoard-xM
 Single-board computer produced by Texas
Instrument
 Specification:
 1GHz ARM Processor
 512 MB RAM
 4 USB 2.0 ports
 HDMI port
 Ethernet
 GPIO ports (PWM)
 Linux OS (Angstrom)
http://beagleboard.org/Products/BeagleBoard-xM
SPARK Ada on BeagleBoard-xM?
 No native GNAT compiler for ARM-based devices
 No official GNAT cross compiler for ARM-based
devices
 Cross compiler – compiler capable of creating
executable code for a platform other thatn the
on on which the compiler is running
Research plan
 Compile SPARK Ada program for BeagleBoard-xM
 SPARK 2005 (single and multithreaded)
 SPARK 2014
 Start PCA Pump Prototype implementation
 Create AADL/BLESS to SPARK Ada translations
 Based on Ocarina
 Verification:
 Implemented PCA Pump Prototype
 Translated AADL models to SPARK Ada
 Small separated module
SPARK Ada on BeagleBoard-xM
 AdaCore cross compiler for ARM-based device
(tested on Android)
 Cooperation with AdaCore to run CrossCompiler
 GNAT cross compiler for ARM-based devices
 Supported platforms: Linux x86
AADL/BLESS to SPARK Ada
 Translation schemas based on “Programming Language Annex Document”
 Data types (scalars, enums, records, arrays)
 Ports (event, data, in/out)
 Threads to tasks
 Subprograms
 Feature groups
 Packages
 Property sets
 BLESS to SPARK translations based on consultation with Brian Larson
 Port-based communication
PCA Pump Prototype implementation
 Implemented prototype in SPARK 2005
 Data types
 Operational module
 PCA Pump actuator module (PCA Engine)
 Simplified PCA Pump translated from AADL models
PCA Pump Verification
 Implemented PCA Pump verification with SPARK toolset
 Verification of module for maximum dose monitoring
 SPARK 2005
 SPARK Tools (Examiner, SPARKSimp, POGS)
 Bakar Kiasan
 SPARK 2014
 GNATprove
Contributions
 Developed approach for running SPARK/Ada programs on
BeagleBoard-xM platform
 Created PCA Prototype in SPARK 2005 (Ravenscar profile)
running on BeagleBoard-xM
 Designed AADL/BLESS to SPARK Ada translation schemas
 Translated simplified AADL models of PCA Pump to SPARK Ada
 Demonstrated example verification of PCA pump:
 SPARK 2005 tools
 Bakar Kiasan
 GNATprove
Problems
 SPARK limitations
 Lack of industry experience in SPARK Ada
 No consultation with domain experts
 Technologies and tools are under development:
 SPARK 2014
 BLESS
 Small community and limitation of resources:
 728 Ada related questions on StackOverflow
 3 SPARK Ada related questions on StackOverflow
 673,721 C# questions and 682,308 Java questions on StackOverflow
Future work
 Consultation with industry expert (in safety critical systems development)
 Automatic translator
 Translation extension:
 AADL properties
 Try apply generics for data translation
 Try child/nested packages for feature group mapping
 Decomposition
 Extend BLESS mapping (states and transitions)
 Translations for SPARK 2014
 Review port communication
 Extend PCA Prototype functionalities

Contenu connexe

Tendances

Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACTDVClub
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllThomas Wuerthinger
 
ScilabTEC 2015 - Evidence
ScilabTEC 2015 - EvidenceScilabTEC 2015 - Evidence
ScilabTEC 2015 - EvidenceScilab
 
Fpga Verification Methodology and case studies - Semisrael Expo2014
Fpga Verification Methodology and case studies - Semisrael Expo2014Fpga Verification Methodology and case studies - Semisrael Expo2014
Fpga Verification Methodology and case studies - Semisrael Expo2014Avi Caspi
 
Open switches story mohamed hassan v4
Open switches story   mohamed hassan v4Open switches story   mohamed hassan v4
Open switches story mohamed hassan v4Mohamed Hassan
 
GNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore InsightsGNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore InsightsAdaCore
 
Migration Spring Boot PetClinic REST to Quarkus 1.2.0
Migration Spring Boot PetClinic REST to Quarkus 1.2.0Migration Spring Boot PetClinic REST to Quarkus 1.2.0
Migration Spring Boot PetClinic REST to Quarkus 1.2.0Jonathan Vila
 
Graal Tutorial at CGO 2015 by Christian Wimmer
Graal Tutorial at CGO 2015 by Christian WimmerGraal Tutorial at CGO 2015 by Christian Wimmer
Graal Tutorial at CGO 2015 by Christian WimmerThomas Wuerthinger
 
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...Thomas Wuerthinger
 
Graal VM: Multi-Language Execution Platform
Graal VM: Multi-Language Execution PlatformGraal VM: Multi-Language Execution Platform
Graal VM: Multi-Language Execution PlatformThomas Wuerthinger
 
Modeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice SimulationModeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice SimulationEMA Design Automation
 
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis  Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis Apache Apex
 

Tendances (18)

H S
H SH S
H S
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACT
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them All
 
ScilabTEC 2015 - Evidence
ScilabTEC 2015 - EvidenceScilabTEC 2015 - Evidence
ScilabTEC 2015 - Evidence
 
Fpga Verification Methodology and case studies - Semisrael Expo2014
Fpga Verification Methodology and case studies - Semisrael Expo2014Fpga Verification Methodology and case studies - Semisrael Expo2014
Fpga Verification Methodology and case studies - Semisrael Expo2014
 
Open switches story mohamed hassan v4
Open switches story   mohamed hassan v4Open switches story   mohamed hassan v4
Open switches story mohamed hassan v4
 
GNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore InsightsGNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore Insights
 
2016ManojResume
2016ManojResume2016ManojResume
2016ManojResume
 
SWEET - A Tool for WCET Flow Analysis - Björn Lisper
SWEET - A Tool for WCET Flow Analysis - Björn LisperSWEET - A Tool for WCET Flow Analysis - Björn Lisper
SWEET - A Tool for WCET Flow Analysis - Björn Lisper
 
Migration Spring Boot PetClinic REST to Quarkus 1.2.0
Migration Spring Boot PetClinic REST to Quarkus 1.2.0Migration Spring Boot PetClinic REST to Quarkus 1.2.0
Migration Spring Boot PetClinic REST to Quarkus 1.2.0
 
JVM++: The Graal VM
JVM++: The Graal VMJVM++: The Graal VM
JVM++: The Graal VM
 
Graal Tutorial at CGO 2015 by Christian Wimmer
Graal Tutorial at CGO 2015 by Christian WimmerGraal Tutorial at CGO 2015 by Christian Wimmer
Graal Tutorial at CGO 2015 by Christian Wimmer
 
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
 
Graal VM: Multi-Language Execution Platform
Graal VM: Multi-Language Execution PlatformGraal VM: Multi-Language Execution Platform
Graal VM: Multi-Language Execution Platform
 
PowerDRC/LVS 2.0 Overview
PowerDRC/LVS 2.0 OverviewPowerDRC/LVS 2.0 Overview
PowerDRC/LVS 2.0 Overview
 
Modeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice SimulationModeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice Simulation
 
Tools and Methods for Continuously Expanding Software Applications
Tools and Methods for Continuously Expanding Software ApplicationsTools and Methods for Continuously Expanding Software Applications
Tools and Methods for Continuously Expanding Software Applications
 
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis  Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis
 

Similaire à A Model Driven Development and Verification Approach for Medical Devices (Jakub Jedryszek)

Day 1 - 01 - Welcome
Day 1 - 01 - WelcomeDay 1 - 01 - Welcome
Day 1 - 01 - Welcomewebhostingguy
 
Punit_Shah_resume
Punit_Shah_resumePunit_Shah_resume
Punit_Shah_resumePunit Shah
 
Punit_Shah_resume
Punit_Shah_resumePunit_Shah_resume
Punit_Shah_resumePunit Shah
 
Punit_Shah_resume
Punit_Shah_resumePunit_Shah_resume
Punit_Shah_resumePunit Shah
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVGhodhbane Mohamed Amine
 
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...Provectus
 
Witsml data processing with kafka and spark streaming
Witsml data processing with kafka and spark streamingWitsml data processing with kafka and spark streaming
Witsml data processing with kafka and spark streamingMark Kerzner
 
Exploration of Radars and Software Defined Radios using VisualSim
Exploration of  Radars and Software Defined Radios using VisualSimExploration of  Radars and Software Defined Radios using VisualSim
Exploration of Radars and Software Defined Radios using VisualSimDeepak Shankar
 
Virtual Platforms
Virtual PlatformsVirtual Platforms
Virtual Platformsclkalyan
 
5 pipeline arch_rationale
5 pipeline arch_rationale5 pipeline arch_rationale
5 pipeline arch_rationalevideos
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsSpace Codesign
 
IGUANA: A Generic Framework for Benchmarking the Read-Write Performance of Tr...
IGUANA: A Generic Framework for Benchmarking the Read-Write Performance of Tr...IGUANA: A Generic Framework for Benchmarking the Read-Write Performance of Tr...
IGUANA: A Generic Framework for Benchmarking the Read-Write Performance of Tr...Lixi Conrads
 
Snug2007 Presentation
Snug2007 PresentationSnug2007 Presentation
Snug2007 Presentationclkalyan
 
Central Process Utility Plant controls upgrade required 100% uptime
Central Process Utility Plant controls upgrade required 100% uptimeCentral Process Utility Plant controls upgrade required 100% uptime
Central Process Utility Plant controls upgrade required 100% uptimeBrian Thomas
 
Michael Ledford Fall 2014 Resume
Michael Ledford Fall 2014 ResumeMichael Ledford Fall 2014 Resume
Michael Ledford Fall 2014 ResumeMichael Ledford
 
WS-VLAM
WS-VLAMWS-VLAM
WS-VLAMaszbel
 

Similaire à A Model Driven Development and Verification Approach for Medical Devices (Jakub Jedryszek) (20)

Day 1 - 01 - Welcome
Day 1 - 01 - WelcomeDay 1 - 01 - Welcome
Day 1 - 01 - Welcome
 
Choosing the right processor
Choosing the right processorChoosing the right processor
Choosing the right processor
 
Punit_Shah_resume
Punit_Shah_resumePunit_Shah_resume
Punit_Shah_resume
 
Punit_Shah_resume
Punit_Shah_resumePunit_Shah_resume
Punit_Shah_resume
 
Punit_Shah_resume
Punit_Shah_resumePunit_Shah_resume
Punit_Shah_resume
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFV
 
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
 
Witsml data processing with kafka and spark streaming
Witsml data processing with kafka and spark streamingWitsml data processing with kafka and spark streaming
Witsml data processing with kafka and spark streaming
 
Basavanthrao_resume_vlsi
Basavanthrao_resume_vlsiBasavanthrao_resume_vlsi
Basavanthrao_resume_vlsi
 
Exploration of Radars and Software Defined Radios using VisualSim
Exploration of  Radars and Software Defined Radios using VisualSimExploration of  Radars and Software Defined Radios using VisualSim
Exploration of Radars and Software Defined Radios using VisualSim
 
JedaOverview
JedaOverviewJedaOverview
JedaOverview
 
Modeling Abstraction
Modeling AbstractionModeling Abstraction
Modeling Abstraction
 
Virtual Platforms
Virtual PlatformsVirtual Platforms
Virtual Platforms
 
5 pipeline arch_rationale
5 pipeline arch_rationale5 pipeline arch_rationale
5 pipeline arch_rationale
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL Models
 
IGUANA: A Generic Framework for Benchmarking the Read-Write Performance of Tr...
IGUANA: A Generic Framework for Benchmarking the Read-Write Performance of Tr...IGUANA: A Generic Framework for Benchmarking the Read-Write Performance of Tr...
IGUANA: A Generic Framework for Benchmarking the Read-Write Performance of Tr...
 
Snug2007 Presentation
Snug2007 PresentationSnug2007 Presentation
Snug2007 Presentation
 
Central Process Utility Plant controls upgrade required 100% uptime
Central Process Utility Plant controls upgrade required 100% uptimeCentral Process Utility Plant controls upgrade required 100% uptime
Central Process Utility Plant controls upgrade required 100% uptime
 
Michael Ledford Fall 2014 Resume
Michael Ledford Fall 2014 ResumeMichael Ledford Fall 2014 Resume
Michael Ledford Fall 2014 Resume
 
WS-VLAM
WS-VLAMWS-VLAM
WS-VLAM
 

Dernier

❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.Nitya salvi
 
GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)Areesha Ahmad
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bSérgio Sacani
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPirithiRaju
 
Botany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdfBotany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdfSumit Kumar yadav
 
9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Service9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Servicenishacall1
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksSérgio Sacani
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfrohankumarsinghrore1
 
Seismic Method Estimate velocity from seismic data.pptx
Seismic Method Estimate velocity from seismic  data.pptxSeismic Method Estimate velocity from seismic  data.pptx
Seismic Method Estimate velocity from seismic data.pptxAlMamun560346
 
GBSN - Microbiology (Unit 3)
GBSN - Microbiology (Unit 3)GBSN - Microbiology (Unit 3)
GBSN - Microbiology (Unit 3)Areesha Ahmad
 
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxSCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxRizalinePalanog2
 
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verifiedConnaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPirithiRaju
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000Sapana Sha
 
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxCOST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxFarihaAbdulRasheed
 
module for grade 9 for distance learning
module for grade 9 for distance learningmodule for grade 9 for distance learning
module for grade 9 for distance learninglevieagacer
 
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Monika Rani
 
American Type Culture Collection (ATCC).pptx
American Type Culture Collection (ATCC).pptxAmerican Type Culture Collection (ATCC).pptx
American Type Culture Collection (ATCC).pptxabhishekdhamu51
 

Dernier (20)

❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
 
GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
 
CELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdfCELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdf
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
 
Botany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdfBotany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdf
 
9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Service9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Service
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdf
 
Seismic Method Estimate velocity from seismic data.pptx
Seismic Method Estimate velocity from seismic  data.pptxSeismic Method Estimate velocity from seismic  data.pptx
Seismic Method Estimate velocity from seismic data.pptx
 
GBSN - Microbiology (Unit 3)
GBSN - Microbiology (Unit 3)GBSN - Microbiology (Unit 3)
GBSN - Microbiology (Unit 3)
 
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxSCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
 
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verifiedConnaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
 
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
 
Site Acceptance Test .
Site Acceptance Test                    .Site Acceptance Test                    .
Site Acceptance Test .
 
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxCOST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
 
module for grade 9 for distance learning
module for grade 9 for distance learningmodule for grade 9 for distance learning
module for grade 9 for distance learning
 
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
 
American Type Culture Collection (ATCC).pptx
American Type Culture Collection (ATCC).pptxAmerican Type Culture Collection (ATCC).pptx
American Type Culture Collection (ATCC).pptx
 

A Model Driven Development and Verification Approach for Medical Devices (Jakub Jedryszek)

  • 1. A MODEL-DRIVEN DEVELOPMENT AND VERIFICATION APPROACH FOR MEDICAL DEVICES Major Professor: John Hatcliff Committee members: John Hatcliff, Robby, Eugene Vasserman Jakub Jedryszek www.jj09.net Computing and Information Sciences Department Kansas State University
  • 2. Motivation  Medical Devices Interoperability  ICE (Integrated Clinical Environment)  MDCF (Medical Device Coordination Framework)  PCA Pump  Software Verification  Model-Driven Development
  • 3. Patient-Controlled Analgesia (PCA) Pump  Method of pain control that gives patients the power to control their pain  Operational modes:  Stopped  Basal Rate  Bolus  Clinician Bolus (Square bolus)  Keep Vein Open (KVO)
  • 7. Goals  Create PCA Pump Prototype:  ICE PCA Infusion Pump System Requirements  PCA Pump models  Analysis of implementation details  Propose AADL to SPARK Ada translation  Verify aspects of PCA pump with SPARK tools
  • 8. Technologies  AADL (Architecture Analysis & Design Language)  BLESS (Behavior Language for Embedded Systems with Software)  SPARK Ada programming language
  • 9. AADL (Architecture Analysis & Design Language)  "UML for hardware and software”  Used for:  real-time sytems  safety critical systems  embedded systems  Graphical and textual representation package Thermometer public with Base_Types; system patient_thermometer end patient_thermometer; system implementation patient_thermometer.impl subcomponents thermomether : device thermometer_device.impl; opi : device operator_interface.impl; connections tdn : port thermomether.temp -> opi.display; end patient_thermometer.impl; device operator_interface features display : in data port Base_Types::Integer; end operator_interface; device implementation operator_interface.impl end operator_interface.impl; device thermometer_device features temp : out data port Base_Types::Integer; end thermometer_device; device implementation thermometer_device.impl end thermometer_device.impl; end Thermometer;
  • 10. BLESS(Behavior Language for Embedded Systems with Software)  AADL annex sublanguage defining behavior of components  BLESS’s goal: auto-check correctness proofs of AADL models of embedded electronic systems with software  3 AADL Annex Sublanguages:  Assertion  subBLESS  BLESS thread Some_Thread features Some_Port : out event port {BLESS::Assertion => ”<<(Var1 < Var2 and COND2())>>”;}; end Some_Thread; thread implementation Some_Thread.impl annex BLESS {** invariant <<(Some_Var < Other_Var)>> assert <<COND2 : :(Var1 > 0)>> **}; end Some_Thread.impl;
  • 11. Ada  Programming language:  Object oriented  Statically typed  Designed for safety critical systems  Railway systems  Airplanes software (e.g. Boeing 777)  Medical devices  (*) Ada was named after Ada Lovelace (1815–1852), who is credited as being the first computer programmer (women) with Ada.Text_IO; use Ada.Text_IO; procedure Hello is begin Put_Line ("Hello, world!"); end Hello;
  • 12. SPARK  Subset of Ada for Software Verification  Versions:  SPARK 83 (based on Ada 83)  SPARK 95 (based on Ada 95)  SPARK 2005 (based on Ada 2005)  SPARK 2014 (based on Ada 2012)  SPARK 2005 = subset of Ada + code contracts (annotations)  SPARK 2014 = subset of Ada (code contracts in Ada 2012) SPARK 2005 (based on Ada 2005) SPARK 2014 (based on Ada 2012) procedure Inc (X : in out Integer); --# pre X < Integer’Last; --# post X = X~ + 1; procedure Inc (X : in out Integer) with Pre => X < Integer’Last, Post => X = X’Old + 1;
  • 13. SPARK – Concurrency  Ravenscar profile – subset of Ada tasking features designed for safety-critical hard real-time computing  RavenSPARK – subset of Ravenscar profile, which allows to verify concurrent programs with SPARK verification tools  Used features:  tasks  protected types  Ada.Real_Time library
  • 14. SPARK – Verification  SPARK 2005  Examiner  Simplifier  ZombieScope  ViCToR  POGS  Bakar Kiasan  AUnit tests  SPARK 2014  GNATprove  Bakar Kiasan v2  Verification Conditions (VC)  array index out of range  type range violation  division by zero  numerical overflow  Dead Path Conjectures (DPC)
  • 15. Platform for PCA Pump Prototype  BeagleBoard-xM  Single-board computer produced by Texas Instrument  Specification:  1GHz ARM Processor  512 MB RAM  4 USB 2.0 ports  HDMI port  Ethernet  GPIO ports (PWM)  Linux OS (Angstrom) http://beagleboard.org/Products/BeagleBoard-xM
  • 16. SPARK Ada on BeagleBoard-xM?  No native GNAT compiler for ARM-based devices  No official GNAT cross compiler for ARM-based devices  Cross compiler – compiler capable of creating executable code for a platform other thatn the on on which the compiler is running
  • 17. Research plan  Compile SPARK Ada program for BeagleBoard-xM  SPARK 2005 (single and multithreaded)  SPARK 2014  Start PCA Pump Prototype implementation  Create AADL/BLESS to SPARK Ada translations  Based on Ocarina  Verification:  Implemented PCA Pump Prototype  Translated AADL models to SPARK Ada  Small separated module
  • 18. SPARK Ada on BeagleBoard-xM  AdaCore cross compiler for ARM-based device (tested on Android)  Cooperation with AdaCore to run CrossCompiler  GNAT cross compiler for ARM-based devices  Supported platforms: Linux x86
  • 19. AADL/BLESS to SPARK Ada  Translation schemas based on “Programming Language Annex Document”  Data types (scalars, enums, records, arrays)  Ports (event, data, in/out)  Threads to tasks  Subprograms  Feature groups  Packages  Property sets  BLESS to SPARK translations based on consultation with Brian Larson  Port-based communication
  • 20. PCA Pump Prototype implementation  Implemented prototype in SPARK 2005  Data types  Operational module  PCA Pump actuator module (PCA Engine)  Simplified PCA Pump translated from AADL models
  • 21. PCA Pump Verification  Implemented PCA Pump verification with SPARK toolset  Verification of module for maximum dose monitoring  SPARK 2005  SPARK Tools (Examiner, SPARKSimp, POGS)  Bakar Kiasan  SPARK 2014  GNATprove
  • 22. Contributions  Developed approach for running SPARK/Ada programs on BeagleBoard-xM platform  Created PCA Prototype in SPARK 2005 (Ravenscar profile) running on BeagleBoard-xM  Designed AADL/BLESS to SPARK Ada translation schemas  Translated simplified AADL models of PCA Pump to SPARK Ada  Demonstrated example verification of PCA pump:  SPARK 2005 tools  Bakar Kiasan  GNATprove
  • 23. Problems  SPARK limitations  Lack of industry experience in SPARK Ada  No consultation with domain experts  Technologies and tools are under development:  SPARK 2014  BLESS  Small community and limitation of resources:  728 Ada related questions on StackOverflow  3 SPARK Ada related questions on StackOverflow  673,721 C# questions and 682,308 Java questions on StackOverflow
  • 24. Future work  Consultation with industry expert (in safety critical systems development)  Automatic translator  Translation extension:  AADL properties  Try apply generics for data translation  Try child/nested packages for feature group mapping  Decomposition  Extend BLESS mapping (states and transitions)  Translations for SPARK 2014  Review port communication  Extend PCA Prototype functionalities