SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
High Assurance Software Symposium




Future Directions of the
SPARK Technology

                                    Stuart Matthews
SPARK – A Distinguished
Track Record
• The origins of SPARK are in research started over 25
  years ago …
SPARK’s Success
• SPARK has achieved success across industry
  domains …




• and in high-profile mission-critical systems …
SPARK Evolution
• The SPARK language has evolved over the years:
  SPARK‘83, ’95, 2005 – and RavenSPARK


• In 2009 the release of SPARK Pro provided an
  updated interface to the tool environment:
  •GNAT Tracker
  •GPS & GNATbench IDEs
Current Context &
Influences
• Our desire to innovate and extend SPARK’s
  capabilities continues today
• Strong links with academic and research
  communities:
  •Collaborative research
  •SPARK community projects
• Opportunities and challenges in the high-assurance
  software domain …
Challenges & Opportunities
• Requirement for more efficient assurance tools &
  techniques for high-grade secure software
• Increasing demand for security in safety & mission-
  critical software
• Ada 2012 – contract-based programming
• Success of Hi-Lite project – combination of unit
  testing and formal proof
The Next Generation
SPARK Technology
• Now under development …
• A new framework for high assurance software
  development, comprising:
  •Updated SPARK Language
  •Powerful Verification Toolset
  •Software Engineering Method
  •Training for software engineers
Next Generation SPARK
       Language
        • Convergence with Ada 2012 syntax …
package Ex05                                     package Ex14
--# own Counter;                                    with Abstract_State => Counter,
--# initializes Counter;                                 Initializes    => Counter
is                                               is

   procedure Exchange (X, Y : in out Integer);      procedure Exchange (X, Y : in out Integer)
   --# global in out Counter;                          with Global => (In_Out => Counter),
   --# derives X from Y &                                   Depends => (X => Y,
   --#         Y from X &                                               Y => X,
   --#         Counter from Counter;                                    Counter => Counter),
   --# pre X /= Y;                                          Pre     => X /= Y,
   --# post X = Y~ and Y = X~;                              Post    => X = Y'Old and Y = X'Old;

end Ex05;                                        end Ex14;




        • Support for executable and mathematical/provable
          contracts
Next Generation SPARK
• Bigger Language Subset …


                        Next Gen.
                         SPARK
   Profiles
                         •Discriminant
                            records
               •Early subprogram
                     returns

                        •More OO support
New Toolset Features:
• Replacement of unit and robustness testing by
  automated proof
  • A Formal Analysis compatible with D0-333


• Formal container library


•…
Advanced Information Flow
Analysis
• Designed to support secure systems assurance


• Visualisation of information flows


• Increased refinement of information flow contracts
Generative Mode
• A generative mode for data and information flow
  analysis


     procedure Q (X, Y, Z in : Integer;
                  A, B, C, D, E : out Integer);
                                      Integer)
        with Depends => ((A, B) => (X, Y),
                        C => (X, Z),
                        D => Y,
                        E => null);
Powerful Verification Tools
  • Higher levels of automation for proof of functional
      properties
  • Improved diagnostics for unproved VCs
      • Interactive path display
      • Counter example
           generation
*** Found a counter-example to
function_example_1_1, conclusion C2:
    (For path(s) from start to run-time check
         associated with statement of line 30:)

This conclusion is false if:
   x = -2147483648
Next Generation SPARK
Will Be …
• Released in Q1 of 2014
• Available alongside the current SPARK and SPARK
  Pro toolsets
• Developed in collaboration with research partners
  and an industrial advisory panel
• Previewed in a β-Release for SPARK Pro customers in
  2013
Further Information
• Questions
• SPARK Team members are available today!
• For further detailed information, please contact
  •Michaël Friess michael.friess@adacore.com
    or
  •Stuart Matthews stuart.matthews@altran-
   praxis.com
Altran Praxis Limited
         22 St Lawrence Street

         Bath BA1 1AN

         United Kingdom

Telephone +44 (0) 1225 466991

Facsimile +44 (0) 1225 469006

 Website altran-praxis.com

   Email stuart.matthews@altran-praxis.com

Weitere ähnliche Inhalte

Ähnlich wie SPARK 2014 - Future directions

Code Analysis-run time error prediction
Code Analysis-run time error predictionCode Analysis-run time error prediction
Code Analysis-run time error predictionNIKHIL NAWATHE
 
Deep learning with Keras
Deep learning with KerasDeep learning with Keras
Deep learning with KerasQuantUniversity
 
Greg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the CloudsGreg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the CloudsFlink Forward
 
Big Data Day LA 2015 - Scalable and High-Performance Analytics with Distribut...
Big Data Day LA 2015 - Scalable and High-Performance Analytics with Distribut...Big Data Day LA 2015 - Scalable and High-Performance Analytics with Distribut...
Big Data Day LA 2015 - Scalable and High-Performance Analytics with Distribut...Data Con LA
 
Spark Summit EU talk by Tim Hunter
Spark Summit EU talk by Tim HunterSpark Summit EU talk by Tim Hunter
Spark Summit EU talk by Tim HunterSpark Summit
 
Intro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and TransformIntro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and TransformApache Apex
 
JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020Joseph Kuo
 
Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019XavierDevroey
 
Standard Provenance Reporting and Scientific Software Management in Virtual L...
Standard Provenance Reporting and Scientific Software Management in Virtual L...Standard Provenance Reporting and Scientific Software Management in Virtual L...
Standard Provenance Reporting and Scientific Software Management in Virtual L...njcar
 
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)Neotys_Partner
 
ott_calfee_resume
ott_calfee_resumeott_calfee_resume
ott_calfee_resumeOtt Calfee
 
Building Your Application Security Data Hub - OWASP AppSecUSA
Building Your Application Security Data Hub - OWASP AppSecUSABuilding Your Application Security Data Hub - OWASP AppSecUSA
Building Your Application Security Data Hub - OWASP AppSecUSADenim Group
 
IBM Strategy for Spark
IBM Strategy for SparkIBM Strategy for Spark
IBM Strategy for SparkMark Kerzner
 
Track A-2 基於 Spark 的數據分析
Track A-2 基於 Spark 的數據分析Track A-2 基於 Spark 的數據分析
Track A-2 基於 Spark 的數據分析Etu Solution
 
Getting started with RISC-V verification what's next after compliance testing
Getting started with RISC-V verification what's next after compliance testingGetting started with RISC-V verification what's next after compliance testing
Getting started with RISC-V verification what's next after compliance testingRISC-V International
 
ETL to ML: Use Apache Spark as an end to end tool for Advanced Analytics
ETL to ML: Use Apache Spark as an end to end tool for Advanced AnalyticsETL to ML: Use Apache Spark as an end to end tool for Advanced Analytics
ETL to ML: Use Apache Spark as an end to end tool for Advanced AnalyticsMiklos Christine
 

Ähnlich wie SPARK 2014 - Future directions (20)

Code Analysis-run time error prediction
Code Analysis-run time error predictionCode Analysis-run time error prediction
Code Analysis-run time error prediction
 
Deep learning with Keras
Deep learning with KerasDeep learning with Keras
Deep learning with Keras
 
Greg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the CloudsGreg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
 
Big Data Day LA 2015 - Scalable and High-Performance Analytics with Distribut...
Big Data Day LA 2015 - Scalable and High-Performance Analytics with Distribut...Big Data Day LA 2015 - Scalable and High-Performance Analytics with Distribut...
Big Data Day LA 2015 - Scalable and High-Performance Analytics with Distribut...
 
Spark Summit EU talk by Tim Hunter
Spark Summit EU talk by Tim HunterSpark Summit EU talk by Tim Hunter
Spark Summit EU talk by Tim Hunter
 
NetWResumeNEW
NetWResumeNEWNetWResumeNEW
NetWResumeNEW
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Intro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and TransformIntro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and Transform
 
JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020
 
So you think you can stream.pptx
So you think you can stream.pptxSo you think you can stream.pptx
So you think you can stream.pptx
 
Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019
 
Standard Provenance Reporting and Scientific Software Management in Virtual L...
Standard Provenance Reporting and Scientific Software Management in Virtual L...Standard Provenance Reporting and Scientific Software Management in Virtual L...
Standard Provenance Reporting and Scientific Software Management in Virtual L...
 
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
 
ott_calfee_resume
ott_calfee_resumeott_calfee_resume
ott_calfee_resume
 
Building Your Application Security Data Hub - OWASP AppSecUSA
Building Your Application Security Data Hub - OWASP AppSecUSABuilding Your Application Security Data Hub - OWASP AppSecUSA
Building Your Application Security Data Hub - OWASP AppSecUSA
 
rakesh_resume
rakesh_resumerakesh_resume
rakesh_resume
 
IBM Strategy for Spark
IBM Strategy for SparkIBM Strategy for Spark
IBM Strategy for Spark
 
Track A-2 基於 Spark 的數據分析
Track A-2 基於 Spark 的數據分析Track A-2 基於 Spark 的數據分析
Track A-2 基於 Spark 的數據分析
 
Getting started with RISC-V verification what's next after compliance testing
Getting started with RISC-V verification what's next after compliance testingGetting started with RISC-V verification what's next after compliance testing
Getting started with RISC-V verification what's next after compliance testing
 
ETL to ML: Use Apache Spark as an end to end tool for Advanced Analytics
ETL to ML: Use Apache Spark as an end to end tool for Advanced AnalyticsETL to ML: Use Apache Spark as an end to end tool for Advanced Analytics
ETL to ML: Use Apache Spark as an end to end tool for Advanced Analytics
 

Mehr von 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
 
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
 

Mehr von 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
 
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
 

SPARK 2014 - Future directions

  • 1. High Assurance Software Symposium Future Directions of the SPARK Technology Stuart Matthews
  • 2. SPARK – A Distinguished Track Record • The origins of SPARK are in research started over 25 years ago …
  • 3. SPARK’s Success • SPARK has achieved success across industry domains … • and in high-profile mission-critical systems …
  • 4. SPARK Evolution • The SPARK language has evolved over the years: SPARK‘83, ’95, 2005 – and RavenSPARK • In 2009 the release of SPARK Pro provided an updated interface to the tool environment: •GNAT Tracker •GPS & GNATbench IDEs
  • 5. Current Context & Influences • Our desire to innovate and extend SPARK’s capabilities continues today • Strong links with academic and research communities: •Collaborative research •SPARK community projects • Opportunities and challenges in the high-assurance software domain …
  • 6. Challenges & Opportunities • Requirement for more efficient assurance tools & techniques for high-grade secure software • Increasing demand for security in safety & mission- critical software • Ada 2012 – contract-based programming • Success of Hi-Lite project – combination of unit testing and formal proof
  • 7. The Next Generation SPARK Technology • Now under development … • A new framework for high assurance software development, comprising: •Updated SPARK Language •Powerful Verification Toolset •Software Engineering Method •Training for software engineers
  • 8. Next Generation SPARK Language • Convergence with Ada 2012 syntax … package Ex05 package Ex14 --# own Counter; with Abstract_State => Counter, --# initializes Counter; Initializes => Counter is is procedure Exchange (X, Y : in out Integer); procedure Exchange (X, Y : in out Integer) --# global in out Counter; with Global => (In_Out => Counter), --# derives X from Y & Depends => (X => Y, --# Y from X & Y => X, --# Counter from Counter; Counter => Counter), --# pre X /= Y; Pre => X /= Y, --# post X = Y~ and Y = X~; Post => X = Y'Old and Y = X'Old; end Ex05; end Ex14; • Support for executable and mathematical/provable contracts
  • 9. Next Generation SPARK • Bigger Language Subset … Next Gen. SPARK Profiles •Discriminant records •Early subprogram returns •More OO support
  • 10. New Toolset Features: • Replacement of unit and robustness testing by automated proof • A Formal Analysis compatible with D0-333 • Formal container library •…
  • 11. Advanced Information Flow Analysis • Designed to support secure systems assurance • Visualisation of information flows • Increased refinement of information flow contracts
  • 12. Generative Mode • A generative mode for data and information flow analysis procedure Q (X, Y, Z in : Integer; A, B, C, D, E : out Integer); Integer) with Depends => ((A, B) => (X, Y), C => (X, Z), D => Y, E => null);
  • 13. Powerful Verification Tools • Higher levels of automation for proof of functional properties • Improved diagnostics for unproved VCs • Interactive path display • Counter example generation *** Found a counter-example to function_example_1_1, conclusion C2: (For path(s) from start to run-time check associated with statement of line 30:) This conclusion is false if: x = -2147483648
  • 14. Next Generation SPARK Will Be … • Released in Q1 of 2014 • Available alongside the current SPARK and SPARK Pro toolsets • Developed in collaboration with research partners and an industrial advisory panel • Previewed in a β-Release for SPARK Pro customers in 2013
  • 15. Further Information • Questions • SPARK Team members are available today! • For further detailed information, please contact •Michaël Friess michael.friess@adacore.com or •Stuart Matthews stuart.matthews@altran- praxis.com
  • 16. Altran Praxis Limited 22 St Lawrence Street Bath BA1 1AN United Kingdom Telephone +44 (0) 1225 466991 Facsimile +44 (0) 1225 469006 Website altran-praxis.com Email stuart.matthews@altran-praxis.com