Using SPARK to ensure System to Software Integrity
Tonu Naks, M. Anthony Aiello, S. Tucker Taft
10th European Congress on Embedded Real Time Software and Systems, 29-31/01/2020 Toulouse 1
Using SPARK to ensure System to Software Integrity Tonu Naks , M. - - PowerPoint PPT Presentation
Using SPARK to ensure System to Software Integrity Tonu Naks , M. Anthony Aiello, S. Tucker Taft 10th European Congress on Embedded Real Time Software and Systems, 29-31/01/2020 Toulouse 1 Agenda AdaCore System-to-Software Integrity (SSI)
Tonu Naks, M. Anthony Aiello, S. Tucker Taft
10th European Congress on Embedded Real Time Software and Systems, 29-31/01/2020 Toulouse 1
System-to-software integrity is a desired trait of high-assurance systems engineering.
tool support
translations
teams
System-level properties maintained through each development step until realized in software.
Hard to engage with systems engineers and project managers with technology focused here! SSI allows earlier engagement.
System-level properties maintained in software
application-specific properties
about software-level properties
property continuity
Hard to engage with systems engineers and project managers with technology focused here! SSI allows earlier engagement.
Property Identification Formal Requirements + Safety & Security Properties Architecture Properties + Component Contracts Software Properties + Software Contracts Formal Verification of Software Contracts
traceability translation translation proof
Property Identification Formal Requirements + Safety & Security Properties Architecture Properties + Component Contracts Software Properties + Software Contracts Formal Verification of Software Contracts
traceability translation translation proof
System-level properties maintained in software
from one “level” to the next
for requirements -> properties as contracts in a design.
decomposition may be required
traceability of properties across “levels”
models & code
links
properties are consistent across levels
decompositions satisfy higher-level properties
need logical induction to justify fully
evidence where deduction is not fully possible
certification
SysML Requirements Diagram Simulink Synchronous Observer SPARK Contracts SysML Internal Block Diagram Simulink Subsystem SPARK Code Manual Refinement Translation Translation QGen Verifier Translation Translation GNATProve
A sample workflow
behavior of a car cruise controller
control and car model
cockpit displays
control the board from PC
1. ModelUser: manipulates the system through physical controls on the demo box 2. PCUser: controls the system through PC application
1. PhysicalModel: implements
2. VirtualDasboard: allows access from PC
textually
to
high-level division into software components
types for further decomposition and formalization of the requirements
high-level architecture
component
requirements, design, and implementation
language for formalization
design by defining computation algorithms
simulation
constraints are inserted in Simulink as synchronous observers
that subsystem contents should be handled as a post-condition
the model as input
SysML
fails
constraints is to refer to previous computation steps
refer to this
we use the UnitDelay block
check function
subsystem
are replaced with ‘Old actuals
potentially with late binding
purpose (e.g. pre and postconditions bound to behaviors) => using a different language rather than loosening the constraints
extensible to support OCL or some
design
engineer than activity or parametric diagrams
Simulink to code already exists (QGen)
for code generation and simulation (using a s-function)
Simulink
refinement at simulation time
29