SlideShare a Scribd company logo
1 of 32
QGen: Simulink® static verification 
and code generation 
Presented by 
Matteo Bordin 
bordin@adacore.com
What is QGen? 
A qualifiable and customizable code generator from 
Simulink® and Stateflow® to SPARK and MISRA C 
A formal model verifier for runtime errors and functional properties 
An extendable framework to integrate heterogeneous models
Main features 1/2 
Support for a large subset of Simulink® 
Around 120 blocks, optional checks for MISRA Simulink® 
Stateflow® support expected in Spring 2015 
Code generation for SPARK and MISRA C 
Readable and traceable code, no performance penalty 
Ships with static model verifier 
Run-time errors (divisions by zero, overflows, …) 
Logical errors (dead execution paths) 
Functional properties (Simulink® assertions blocks)
Main features 2/2 
Off-the-shelf qualification material 
Including validation against Simulink® simulation 
DO-178C, EN 50128, ISO-26262 TCL3 
Highly tunable thanks to visible intermediate representation 
“Plug-and-play” transformations using Eclipse tools or XML manipulation 
Optimized code generation 
Generation of additional artifacts: Makefiles, docs, metrics, … 
Integrating with UML/SysML/AADL or in house DSLs
Product development history 1/2 
France and EU -funded collaborative R&D project 
From October 2011 to October 2015 
10M Euros total budget 
19 Partners 
Leader: Continental Automotive France
Product development history 2/2
How does QGen work? 1/2 
Simulink® model 
importer 
QGen intermediate representation (EMF metamodel) 
SPARK & MISRA C 
code generator 
model verifier
How does QGen work? 2/2 
Integrated in Matlab® (ideal for everyday use) 
From command line (does not require Matlab®, ideal for regression testing) 
qgenc MyModel.mdl [code-generation-options]
QGen and DO-178 
DO-330 (Tool Qualification Document) 
Precise identification of certification credit for code generator qualification 
Identification of credit w.r.t qualification strategy (TQL1 vs TQL5)
Using QGen - Verification 
Simulink® model 
QGen intermediate representation 
Verification 
Formalism 
importer 
model verifier 
Verification results 
round-trip 
Advanced 
+ 
traceability data 
*already qualified as part of a DO-178 Verification Tool / TQL5 
Verification 
Engine*
Using QGen - finding bugs 
No defensive modeling against division by zero
Using QGen - verifying functional properties 
ON OFF 
TRUE ERROR OK 
FALSE OK OK 
Brake OR 
Clutch 
Cruise Control 
The Cruise Control shall never be ON after 
the driver pushed the Brake or clutch pedal
Using QGen - verifying functional properties 
Formalization of safety property 
System implementation 
The Cruise Control shall never be ON after 
the driver pushed the Brake or clutch pedal
Using QGen - mixing proof & test 
Integration of legacy code via S-Function blocks 
How to prove the complete system (model + legacy code) is safe? 
How to extract model-relevant properties from legacy code? 
S-Functions written in C 
Difficult to automatically extract information 
Source code may not be available 
Rely on design-by-contact 
Wrap C code in automatically generated Ada stubs 
Decorate Ada stubs using pre/post conditions 
Rely on pre/post conditions for model verification 
Test C code against pre/post conditions
Using QGen - mixing proof & test 
S-Function written in C
Using QGen - mixing proof & test 
Availability of Static Analysis 
C S-Function Incomplete Model Static Analys 
C S-Function with Ada 2012 wrapper 
(design by contract) 
Static Analysis for Model 
Test for S-Function 
Ada S-Function 
Static Analysis on both Model 
and Source code 
Static Analysis holds for both 
C and Ada code generation!
Using QGen - Code Generation
Using QGen - Code Generation 
Standard code generation 
One file for every atomic subsystem 
Variables are global (in .adb/.c files) 
Full inlining, to increase performances 
A single file for the entire system 
All function calls are inlined 
Less memory consumption, less memory copy, more optimization 
Wrapping to reuse code with different I/O 
Corresponds to Simulink “generate reusable code” 
Pass persistent state and I/O as formal parameters 
Allows reusing the same code for multiple I/O data
QGen - an open and extensible framework 
Simulink Model 
Black Box 
Source Code 
Source Code 
Traditional Code Generators 
Simulink Model 
Access to intermediate representations 
Makefile 
generation 
Processor 
customization 
Modeling standard 
checking 
Additional 
verification 
Integration with UML 
Extract traceability 
data
Customizing QGen: use case 1 
A new processor is adopted, which provides intrinsic optimized functions 
Ex.: saturated sum 
How to reuse existing models? 
While benefitting from new processor functionalities? 
Relying on S-Functions requires changing them 
And potentially re-execute some verification activities! 
We rather change the code generator!
Customizing QGen: use case 1 
Exploit process-specific instructions 
… 
-- inlined code for saturated sum 
Int32 tmp := a + b; 
if tmp > Int16’Last then 
out := Int16’Last; 
elsif tmp < Int16’First then 
out := Int16’First; 
else 
out := tmp; 
end if; 
… 
… 
-- use processor-specific lib 
out := zaddwss (a, b); 
…
Customizing QGen: use case 1 
Intermediate 
representation 1 
Intermediate 
representation 2 
Intermediate 
representation 3 
Intermediate 
representation 4 
Intermediate 
representation 5 
Intermediate 
representation 6 
Source Code 
>> qgenc myModel.mdl —steps psgdxe 
>> python custom_saturate.py myModel_x.xmi 
>> qgenc myModel_x.xmi —language ada 
ECore-compliant XMI 
Python Script 
(150 SLOC)
Customizing QGen: use case 2 
Communication between control engineers and software architects 
Simulink models hide information relevant for software architecture 
Execution rates, data flow constraints, … 
How can this information be communicated to a software architect? 
Extraction of architectural concerns from Simulink model 
Extract AADL model out of Simulink 
Can be used to produce allocation models 
Can be used to execute real-time analysis
Customizing QGen: use case 2 
Intermediate 
representation 1 
ECore-compliant XMI 
Acceleo / ATL 
transformation 
>> qgen myModel.mdl —steps pe 
Extraction of real-time architectural constraints 
by generating an AADL model
QGen: roadmap 
2013 - 2014 
End of 2014 
February 2015 
Spring 2015 
Q4 2015 
evaluation by project P partners 
first selected customer pre-release 
QGen 1.0 available 
Stateflow® support 
full qualification material 
In the pipeline: static stack analysis, AUTOSAR, …
QGEN is the open, tunable and qualifiable 
model verifier and code generator 
for Simulink® and Stateflow® 
pre-release for selected customers: Q4 2014 
version 1.0: February 2015
QGen: Simulink® static verification 
and code generation 
Presented by 
Matteo Bordin 
bordin@adacore.com

More Related Content

What's hot

Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway DemoTech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway DemoAdaCore
 
LCA14: LCA14-209: ODP Project Update
LCA14: LCA14-209: ODP Project UpdateLCA14: LCA14-209: ODP Project Update
LCA14: LCA14-209: ODP Project UpdateLinaro
 
Tech Days 2015: Static Analysis CodePeer
Tech Days 2015: Static Analysis CodePeer Tech Days 2015: Static Analysis CodePeer
Tech Days 2015: Static Analysis CodePeer AdaCore
 
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking AheadAdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Aheadjamieayre
 
Tech Days 2015: CodePeer - Introduction and Examples of Use
Tech Days 2015: CodePeer - Introduction and Examples of Use Tech Days 2015: CodePeer - Introduction and Examples of Use
Tech Days 2015: CodePeer - Introduction and Examples of Use AdaCore
 
ScilabTEC 2015 - Evidence
ScilabTEC 2015 - EvidenceScilabTEC 2015 - Evidence
ScilabTEC 2015 - EvidenceScilab
 
Sci scada toolbox
Sci scada toolboxSci scada toolbox
Sci scada toolboxAwesomejk
 
Advanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applicationsAdvanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applicationsRogue Wave Software
 
IE WebGL and Babylon.js (Web3D 2014)
IE WebGL and Babylon.js (Web3D 2014)IE WebGL and Babylon.js (Web3D 2014)
IE WebGL and Babylon.js (Web3D 2014)David Catuhe
 
ScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis SolutionsScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis SolutionsScilab
 
ScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded SolutionsScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded SolutionsScilab
 
Composable infrastructure try valence
Composable infrastructure try valenceComposable infrastructure try valence
Composable infrastructure try valenceShuquan Huang
 
PhD SDN Projects
PhD SDN ProjectsPhD SDN Projects
PhD SDN ProjectsPhdtopiccom
 
Toward a Methodology to turn Smalltak code into FPGA
Toward a Methodology to turn Smalltak code into FPGAToward a Methodology to turn Smalltak code into FPGA
Toward a Methodology to turn Smalltak code into FPGAESUG
 

What's hot (20)

Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway DemoTech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
 
Project P Open Workshop
Project P Open WorkshopProject P Open Workshop
Project P Open Workshop
 
LCA14: LCA14-209: ODP Project Update
LCA14: LCA14-209: ODP Project UpdateLCA14: LCA14-209: ODP Project Update
LCA14: LCA14-209: ODP Project Update
 
Tech Days 2015: Static Analysis CodePeer
Tech Days 2015: Static Analysis CodePeer Tech Days 2015: Static Analysis CodePeer
Tech Days 2015: Static Analysis CodePeer
 
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking AheadAdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
 
ODP Presentation LinuxCon NA 2014
ODP Presentation LinuxCon NA 2014ODP Presentation LinuxCon NA 2014
ODP Presentation LinuxCon NA 2014
 
Tech Days 2015: CodePeer - Introduction and Examples of Use
Tech Days 2015: CodePeer - Introduction and Examples of Use Tech Days 2015: CodePeer - Introduction and Examples of Use
Tech Days 2015: CodePeer - Introduction and Examples of Use
 
H S
H SH S
H S
 
Værktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmerVærktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmer
 
ScilabTEC 2015 - Evidence
ScilabTEC 2015 - EvidenceScilabTEC 2015 - Evidence
ScilabTEC 2015 - Evidence
 
Sci scada toolbox
Sci scada toolboxSci scada toolbox
Sci scada toolbox
 
Advanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applicationsAdvanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applications
 
IE WebGL and Babylon.js (Web3D 2014)
IE WebGL and Babylon.js (Web3D 2014)IE WebGL and Babylon.js (Web3D 2014)
IE WebGL and Babylon.js (Web3D 2014)
 
ScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis SolutionsScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis Solutions
 
ScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded SolutionsScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded Solutions
 
Composable infrastructure try valence
Composable infrastructure try valenceComposable infrastructure try valence
Composable infrastructure try valence
 
PhD SDN Projects
PhD SDN ProjectsPhD SDN Projects
PhD SDN Projects
 
Strel streaming
Strel streamingStrel streaming
Strel streaming
 
Toward a Methodology to turn Smalltak code into FPGA
Toward a Methodology to turn Smalltak code into FPGAToward a Methodology to turn Smalltak code into FPGA
Toward a Methodology to turn Smalltak code into FPGA
 
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
 

Viewers also liked

GNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore UniversityGNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore UniversityAdaCore
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...AdaCore
 
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...AdaCore
 
GNAT Pro User Day: VISIUM™ and Ada
GNAT Pro User Day: VISIUM™  and AdaGNAT Pro User Day: VISIUM™  and Ada
GNAT Pro User Day: VISIUM™ and AdaAdaCore
 
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation GeneratorGNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation GeneratorAdaCore
 
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore TechnologyGNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore TechnologyAdaCore
 
Ada 2012
Ada 2012Ada 2012
Ada 2012AdaCore
 

Viewers also liked (7)

GNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore UniversityGNAT Pro User Day: AdaCore University
GNAT Pro User Day: AdaCore University
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
 
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
 
GNAT Pro User Day: VISIUM™ and Ada
GNAT Pro User Day: VISIUM™  and AdaGNAT Pro User Day: VISIUM™  and Ada
GNAT Pro User Day: VISIUM™ and Ada
 
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation GeneratorGNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
 
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore TechnologyGNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
 
Ada 2012
Ada 2012Ada 2012
Ada 2012
 

Similar to GNAT Pro User Day: QGen: Simulink® static verification and code generation

Tech Days 2015: Model Based Development with QGen
Tech Days 2015: Model Based Development with QGenTech Days 2015: Model Based Development with QGen
Tech Days 2015: Model Based Development with QGenAdaCore
 
Automated Requirements-Based Testing for Medical Device Software
Automated Requirements-Based Testing for Medical Device SoftwareAutomated Requirements-Based Testing for Medical Device Software
Automated Requirements-Based Testing for Medical Device SoftwareQA Systems
 
Automated requirements based testing for ISO 26262
Automated requirements based testing for ISO 26262 Automated requirements based testing for ISO 26262
Automated requirements based testing for ISO 26262 QA Systems
 
“A Practical Guide to Getting the DNN Accuracy You Need and the Performance Y...
“A Practical Guide to Getting the DNN Accuracy You Need and the Performance Y...“A Practical Guide to Getting the DNN Accuracy You Need and the Performance Y...
“A Practical Guide to Getting the DNN Accuracy You Need and the Performance Y...Edge AI and Vision Alliance
 
Automated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178CAutomated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178CQA Systems
 
Automated Requirements-Based Testing for Medical Device Software.ppsx
Automated Requirements-Based Testing for Medical Device Software.ppsxAutomated Requirements-Based Testing for Medical Device Software.ppsx
Automated Requirements-Based Testing for Medical Device Software.ppsxQA Systems
 
PyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfPyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfJim Dowling
 
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery LabsIncquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery LabsIncQuery Labs
 
Controller Software Verification Using AVM Meta and HybridSAL
Controller Software Verification Using AVM Meta and HybridSALController Software Verification Using AVM Meta and HybridSAL
Controller Software Verification Using AVM Meta and HybridSALJoseph Porter
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Updatejamieayre
 
Presentation Verification & Validation
Presentation Verification & ValidationPresentation Verification & Validation
Presentation Verification & ValidationElmar Selbach
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Ukraine
 
Code Generation with MDA and xUML
Code Generation with MDA and xUMLCode Generation with MDA and xUML
Code Generation with MDA and xUMLChris Raistrick
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentAdaCore
 
Tools for Test-Driven Product Modeling
Tools for Test-Driven Product ModelingTools for Test-Driven Product Modeling
Tools for Test-Driven Product ModelingTim Geisler
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsÁkos Horváth
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody SoftwareBill Duncan
 
Maximizing Efficiency Using Simulation
Maximizing Efficiency Using SimulationMaximizing Efficiency Using Simulation
Maximizing Efficiency Using Simulationjason_cov
 
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...Docker, Inc.
 

Similar to GNAT Pro User Day: QGen: Simulink® static verification and code generation (20)

Tech Days 2015: Model Based Development with QGen
Tech Days 2015: Model Based Development with QGenTech Days 2015: Model Based Development with QGen
Tech Days 2015: Model Based Development with QGen
 
Automated Requirements-Based Testing for Medical Device Software
Automated Requirements-Based Testing for Medical Device SoftwareAutomated Requirements-Based Testing for Medical Device Software
Automated Requirements-Based Testing for Medical Device Software
 
Automated requirements based testing for ISO 26262
Automated requirements based testing for ISO 26262 Automated requirements based testing for ISO 26262
Automated requirements based testing for ISO 26262
 
“A Practical Guide to Getting the DNN Accuracy You Need and the Performance Y...
“A Practical Guide to Getting the DNN Accuracy You Need and the Performance Y...“A Practical Guide to Getting the DNN Accuracy You Need and the Performance Y...
“A Practical Guide to Getting the DNN Accuracy You Need and the Performance Y...
 
Automated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178CAutomated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178C
 
Automated Requirements-Based Testing for Medical Device Software.ppsx
Automated Requirements-Based Testing for Medical Device Software.ppsxAutomated Requirements-Based Testing for Medical Device Software.ppsx
Automated Requirements-Based Testing for Medical Device Software.ppsx
 
PyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfPyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdf
 
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery LabsIncquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
 
Controller Software Verification Using AVM Meta and HybridSAL
Controller Software Verification Using AVM Meta and HybridSALController Software Verification Using AVM Meta and HybridSAL
Controller Software Verification Using AVM Meta and HybridSAL
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
 
Presentation Verification & Validation
Presentation Verification & ValidationPresentation Verification & Validation
Presentation Verification & Validation
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
 
Code Generation with MDA and xUML
Code Generation with MDA and xUMLCode Generation with MDA and xUML
Code Generation with MDA and xUML
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise Environment
 
Tools for Test-Driven Product Modeling
Tools for Test-Driven Product ModelingTools for Test-Driven Product Modeling
Tools for Test-Driven Product Modeling
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical Systems
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
 
Maximizing Efficiency Using Simulation
Maximizing Efficiency Using SimulationMaximizing Efficiency Using Simulation
Maximizing Efficiency Using Simulation
 
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
 

More from AdaCore

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsAdaCore
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?AdaCore
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesAdaCore
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic libraryAdaCore
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsAdaCore
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verificationAdaCore
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofAdaCore
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsAdaCore
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationAdaCore
 
Securing the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded SoftwareSecuring the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded SoftwareAdaCore
 
Spark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware DevelopmentSpark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware DevelopmentAdaCore
 
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...AdaCore
 
The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!AdaCore
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaCore
 
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...AdaCore
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologyAdaCore
 
MISRA C in an ISO 26262 context
MISRA C in an ISO 26262 contextMISRA C in an ISO 26262 context
MISRA C in an ISO 26262 contextAdaCore
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareAdaCore
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareAdaCore
 
Multi-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical SystemsMulti-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical SystemsAdaCore
 

More from AdaCore (20)

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languages
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic library
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing Solutions
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verification
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program Proof
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configuration
 
Securing the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded SoftwareSecuring the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded Software
 
Spark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware DevelopmentSpark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware Development
 
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
 
The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR Architecture
 
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar Technology
 
MISRA C in an ISO 26262 context
MISRA C in an ISO 26262 contextMISRA C in an ISO 26262 context
MISRA C in an ISO 26262 context
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle software
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling Software
 
Multi-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical SystemsMulti-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical Systems
 

Recently uploaded

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Recently uploaded (20)

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

GNAT Pro User Day: QGen: Simulink® static verification and code generation

  • 1.
  • 2. QGen: Simulink® static verification and code generation Presented by Matteo Bordin bordin@adacore.com
  • 3. What is QGen? A qualifiable and customizable code generator from Simulink® and Stateflow® to SPARK and MISRA C A formal model verifier for runtime errors and functional properties An extendable framework to integrate heterogeneous models
  • 4. Main features 1/2 Support for a large subset of Simulink® Around 120 blocks, optional checks for MISRA Simulink® Stateflow® support expected in Spring 2015 Code generation for SPARK and MISRA C Readable and traceable code, no performance penalty Ships with static model verifier Run-time errors (divisions by zero, overflows, …) Logical errors (dead execution paths) Functional properties (Simulink® assertions blocks)
  • 5. Main features 2/2 Off-the-shelf qualification material Including validation against Simulink® simulation DO-178C, EN 50128, ISO-26262 TCL3 Highly tunable thanks to visible intermediate representation “Plug-and-play” transformations using Eclipse tools or XML manipulation Optimized code generation Generation of additional artifacts: Makefiles, docs, metrics, … Integrating with UML/SysML/AADL or in house DSLs
  • 6. Product development history 1/2 France and EU -funded collaborative R&D project From October 2011 to October 2015 10M Euros total budget 19 Partners Leader: Continental Automotive France
  • 8. How does QGen work? 1/2 Simulink® model importer QGen intermediate representation (EMF metamodel) SPARK & MISRA C code generator model verifier
  • 9. How does QGen work? 2/2 Integrated in Matlab® (ideal for everyday use) From command line (does not require Matlab®, ideal for regression testing) qgenc MyModel.mdl [code-generation-options]
  • 10. QGen and DO-178 DO-330 (Tool Qualification Document) Precise identification of certification credit for code generator qualification Identification of credit w.r.t qualification strategy (TQL1 vs TQL5)
  • 11. Using QGen - Verification Simulink® model QGen intermediate representation Verification Formalism importer model verifier Verification results round-trip Advanced + traceability data *already qualified as part of a DO-178 Verification Tool / TQL5 Verification Engine*
  • 12. Using QGen - finding bugs No defensive modeling against division by zero
  • 13.
  • 14. Using QGen - verifying functional properties ON OFF TRUE ERROR OK FALSE OK OK Brake OR Clutch Cruise Control The Cruise Control shall never be ON after the driver pushed the Brake or clutch pedal
  • 15. Using QGen - verifying functional properties Formalization of safety property System implementation The Cruise Control shall never be ON after the driver pushed the Brake or clutch pedal
  • 16.
  • 17. Using QGen - mixing proof & test Integration of legacy code via S-Function blocks How to prove the complete system (model + legacy code) is safe? How to extract model-relevant properties from legacy code? S-Functions written in C Difficult to automatically extract information Source code may not be available Rely on design-by-contact Wrap C code in automatically generated Ada stubs Decorate Ada stubs using pre/post conditions Rely on pre/post conditions for model verification Test C code against pre/post conditions
  • 18. Using QGen - mixing proof & test S-Function written in C
  • 19.
  • 20. Using QGen - mixing proof & test Availability of Static Analysis C S-Function Incomplete Model Static Analys C S-Function with Ada 2012 wrapper (design by contract) Static Analysis for Model Test for S-Function Ada S-Function Static Analysis on both Model and Source code Static Analysis holds for both C and Ada code generation!
  • 21. Using QGen - Code Generation
  • 22. Using QGen - Code Generation Standard code generation One file for every atomic subsystem Variables are global (in .adb/.c files) Full inlining, to increase performances A single file for the entire system All function calls are inlined Less memory consumption, less memory copy, more optimization Wrapping to reuse code with different I/O Corresponds to Simulink “generate reusable code” Pass persistent state and I/O as formal parameters Allows reusing the same code for multiple I/O data
  • 23.
  • 24. QGen - an open and extensible framework Simulink Model Black Box Source Code Source Code Traditional Code Generators Simulink Model Access to intermediate representations Makefile generation Processor customization Modeling standard checking Additional verification Integration with UML Extract traceability data
  • 25. Customizing QGen: use case 1 A new processor is adopted, which provides intrinsic optimized functions Ex.: saturated sum How to reuse existing models? While benefitting from new processor functionalities? Relying on S-Functions requires changing them And potentially re-execute some verification activities! We rather change the code generator!
  • 26. Customizing QGen: use case 1 Exploit process-specific instructions … -- inlined code for saturated sum Int32 tmp := a + b; if tmp > Int16’Last then out := Int16’Last; elsif tmp < Int16’First then out := Int16’First; else out := tmp; end if; … … -- use processor-specific lib out := zaddwss (a, b); …
  • 27. Customizing QGen: use case 1 Intermediate representation 1 Intermediate representation 2 Intermediate representation 3 Intermediate representation 4 Intermediate representation 5 Intermediate representation 6 Source Code >> qgenc myModel.mdl —steps psgdxe >> python custom_saturate.py myModel_x.xmi >> qgenc myModel_x.xmi —language ada ECore-compliant XMI Python Script (150 SLOC)
  • 28. Customizing QGen: use case 2 Communication between control engineers and software architects Simulink models hide information relevant for software architecture Execution rates, data flow constraints, … How can this information be communicated to a software architect? Extraction of architectural concerns from Simulink model Extract AADL model out of Simulink Can be used to produce allocation models Can be used to execute real-time analysis
  • 29. Customizing QGen: use case 2 Intermediate representation 1 ECore-compliant XMI Acceleo / ATL transformation >> qgen myModel.mdl —steps pe Extraction of real-time architectural constraints by generating an AADL model
  • 30. QGen: roadmap 2013 - 2014 End of 2014 February 2015 Spring 2015 Q4 2015 evaluation by project P partners first selected customer pre-release QGen 1.0 available Stateflow® support full qualification material In the pipeline: static stack analysis, AUTOSAR, …
  • 31. QGEN is the open, tunable and qualifiable model verifier and code generator for Simulink® and Stateflow® pre-release for selected customers: Q4 2014 version 1.0: February 2015
  • 32. QGen: Simulink® static verification and code generation Presented by Matteo Bordin bordin@adacore.com