Altran Praxis English language selection button
Altran Praxis French language selection button
Altran Praxis English language label
Altran Praxis Logo
Altran Praxis Training image

SPARK Training

A variety of SPARK training courses are available, ranging from those aimed at new users to highly experienced engineers using the tool's most advanced features.

SPARK Two Day Overview

Audience

Programme managers and high-level engineers who wish to understand the rationale and use of SPARK and how it fits within a high assurance software process.

Prerequisites

Basic software programming. Knowledge of Ada is not essential.

Training method

A two-day course combining presentations and exercises.

Training goals

A two-day "extended tutorial" for managers and engineers that presents the principles and practice of high assurance software engineering with SPARK. The course explains the rationale of SPARK, outlines the language and the principles of static code analysis and presents the role of the SPARK Pro Toolset in systematic program development.

The course also covers the design of the SPARK language and the various types of analysis and verification that can be performed. The second day of the course concentrates on practical issues, such as how SPARK matches contemporary standards for high assurance software and software processes such as CMM and PSP/TSP. Finally, the issues (and problems) of adopting SPARK will be considered, followed by case studies of SPARK usage in the aerospace, rail and security domains.

This course includes some pencil-and-paper exercises, but does not involve computer-based practical sessions, SPARK programming or extensive use of the SPARK Pro toolsuite. Students requiring a thorough understanding of the practical use of the SPARK Pro Toolsuite are referred to the longer "Software Engineering with SPARK" course.

You will learn

  • Rationale of SPARK
  • Design building blocks
  • SPARK language
  • Verification
    • Subset and static semantics
    • Information flow analysis
    • Formal verification
    • Security topics
  • SPARK and Standards
  • SPARK and Software Process
  • ROI and Adoption
  • SPARK Projects

Course Programme

Two-day course held either at your premises or at Altran Praxis offices.
For more information about this Altran Praxis training course or to book:
Email the Training Coordinator or
Telephone: +44 (0)1225 466991

Software Engineering with SPARK

Audience

Aimed at engineers, managers and regulators (assessors) involved with the development of high integrity software.

Prerequisites

Basic software programming. Knowledge of Ada not essential.

Training method

A four-day course combining presentations, exercises and practical work.

Training goals

A four-day course for managers, regulators and engineers, which presents the principles of the development of high assurance software, and the related certification requirements. It then explains the rationale of SPARK, outlines the language and the principles of static code analysis, and presents the role of the SPARK Pro Toolset in systematic program development. The course also covers fundamental SPARK design issues, such as appropriate use of packages including abstract machines and data types, as well as the use of SPARK refinement, system interfaces and library mechanisms. Some of the more advanced facilities of the SPARK Examiner, including for run-time error checking, are presented.

This course includes extensive hands-on sessions using the SPARK Pro Toolset.

You will learn

  • Rationale of SPARK.
  • Design building blocks - ADTs and ASMs.
  • The SPARK language - types, expressions, statements,subprograms, packages.
  • Information-flow analysis.
  • Setting up a SPARK project.
  • INFORMED Design approach for SPARK.
  • Abstraction and State Refinement.
  • Interfacing to other languages.
  • Introduction to proof and the SPARK Simplifier.

Course Programme

Four-day course held either at your premises or at Altran Praxis offices.
For more information about this Altran Praxis training course or to book:
Email the Training Coordinator or
Telephone: +44 (0)1225 466991

Advanced SPARK Program Design and Verification

Audience

Experienced SPARK users who wish to learn how to exploit the SPARK proof system and advanced tools.

Prerequisites

Software Engineering with SPARK course and/or fluency with the SPARK language and the Examiner.

Training method

A three-day course combining presentations, exercises and practical work

Training goals

This course covers the advanced use of SPARK, particularly in the context of proof of exception freedom and code correctness. Attendees are taught to understand the relationship between SPARK source code and the verification conditions generated for proof, leading to an understanding of the impact of good SPARK design principles on code verification. Advanced facilities of the SPARK Examiner are presented, and tuition in planning, conducting and managing the verification activities is supplemented by the use of the SPARK proof tools, particularly the Simplifier.

The course has a strongly practical flavour, interweaving guidance and lecture material with topical tutorial sessions which reinforce the lecture material via relevant examples. Each tutorial session commences with a step-by-step example which provides detailed guidance, followed by additional exercises which can be tried in the tutorial sessions or used after the course to gain additional practical experience.

This course includes extensive hands-on sessions using the SPARK Pro Toolsuite. Note that this course does not cover the RavenSPARK language profile or the use of the Proof Checker tool.

You will learn

  • Designing with proof in mind.
  • The FDL proof language and logic.
  • Representation of SPARK in FDL.
  • Understanding VCs.
  • Arrays, Quantifiers and Loops.
  • Management of Proof Complexity.
  • The Proof Cycle.
  • Validation of input data.
  • Real numbers, private types, and refinement.

Course Programme

Three-day course held either at your premises or at Altran Praxis offices.
For more information about this Altran Praxis training course or to book:
Email the Training Coordinator or
Telephone: +44 (0)1225 466991

Concurrent Software Design with RavenSPARK

Audience

Experienced SPARK users who wish to learn how to exploit the RavenSPARK profile in the design of concurrent software.

Prerequisites

Software Engineering with SPARK course and/or fluency with the SPARK language and the Examiner.

Training method

One day (can follow Software Engineering with SPARK directly)

Training goals

The Ada95 Ravenscar profile defines a subset of the Ada95 tasking facilities that are appropriate for the construction of high-assurance software. This one-day course introduces the Ravenscar profile and how it has been included in the core SPARK language. The course covers the additional contracts in SPARK that are used to describe packages that contain tasks and protected objects and the additional analyses implemented by the Examiner to eliminate the potential for defects in Ravenscar programs.

You will learn

  • Ravenscar profile basics.
  • Tasks.
  • Protected state.
  • Atomic variables and suspension objects.
  • Interrupts.
  • Inter-task information-flow analysis.
  • Proof and run-time errors in RavenSPARK.

Course Programme

One-day course held either at your premises or at Altran Praxis offices.
For more information about this Altran Praxis training course or to book:
Email the Training Coordinator or
Telephone: +44 (0)1225 466991

Introduction to the Proof Checker

Audience

Engineers using SPARK on high assurance projects where fully rigorous analysis is a primary goal.

Prerequisites

Advanced SPARK Program Design and Verification course and/or experience with the proof of SPARK programs and the use of the Simplifier.

Training method

One-day course.

Training goals

This course introduces the SPARK Proof Checker, and how it can augment the abilities of the Examiner and Simplifier in the verification of SPARK programs. Attendees will cover the basics of using the Checker’s interactive proof engine to prove Verification Cases that remain after simplification. The course also covers the use of the Proof Checker to establish the validity of user-defined proof rules.

You will learn

  • Introducing the Proof Checker.
  • Basic proof strategies - inference and substitution.
  • Proof patterns and commands - proof by cases, contradiction, deduction and standardisation.
  • Proof rules - validity and properties.
  • Proof management - maintenance of rules and proof scripts.

Course Programme

One-day course held either at your premises or at Altran Praxis offices.
For more information about this Altran Praxis training course or to book:
Email the Training Coordinator or
Telephone: +44 (0)1225 466991

Refresh your SPARK: a one-day course

Audience

Engineers that have used SPARK previously, but need to be brought up to date with the latest developments in the SPARK language and toolset.

Prerequisites

Some prior knowledge of SPARK and the SPARK Examiner only. No prior experience with the Simplifier or proof-related activities is required, although these will be covered on the course.

Training method

A one-day course combining presentations with paper-and-pencil exercises.

Training goals

A one-day "refresher" course for engineers that have used SPARK in the past, using earlier versions of the language and toolset. It is assumed that students will have used the SPARK Examiner in the past, but not the Simplifier or other proof tools.

The course covers a reminder of the basics of SPARK: the language subset, use of the Examiner, information-flow analysis and the diagnosis and correction of common design errors. The course goes on to cover more recent development, such as the SPARK95, SPARK2005 and RavenSPARK language profiles, the INFORMED design style for SPARK, the basic use of the proof tools to establish the absence of runtime errors, and the impact of SPARK on other areas of the software process, such as reviewing and testing.

The course will also cover the new SPARK Pro package with the GPS IDE, case studies and an overview of new language and toolset features. This final section can be customized to suit the students' particular most-recent experience with SPARK.

The course does not involve hands-on use of the SPARK tools, but there are several "pencil and paper" exercises and demonstrations of the toolset in action.

You will learn

  • SPARK basics reminder - subset and contracts
  • Information and Data-Flow Analysis
  • Common Errors and their Diagnosis
  • INFORMED Design in SPARK
  • Runtime Error Proof - Just Try It!
  • Adjusting the Software Process for SPARK
  • Case Studies - Tokeneer and others
  • SPARK Pro and GPS
  • What's new in SPARK since version X?
  • Future development Roadmap

Course Programme

One-day course held either at your premises or at Altran Praxis offices in Bath UK, Sophia-Antipolis, or Bangalore. Courses can also be held at AdaCore offices in Paris or New York.
For more information about this Altran Praxis training course or to book:
Email the Training Coordinator or
Telephone: +44 (0)1225 466991

Training courses

Course calendar

View the full calendar of Praxis training courses. More...

SPARK

A comprehensive portfolio of courses supporting the SPARK language. Courses range from an introductory overview for engineers and managers new to SPARK through to advanced program design and verification training aimed at experienced SPARK practitioners.
View courses...

Yellow Book

Targeted at engineers and managers involved with rail safety and safety management these courses introduce the fundamentals of engineering safety and safety management. The curriculum includes a short overview course aimed at managers new to safety management along with longer courses for practitioners using the Yellow Book in their day-to-day activity.
View courses...

REVEAL®

REVEAL® training provides in-depth insight into the systematic and principled approach to systems engineering that is REVEAL™. The training enables practitioners to learn a structured method for systems requirements capture and management, thereby providing a firm foundation for successful systems development. The systems engineers course is supplemented by shorter overview courses for managers and workshops tailored for particular systems needs.
View courses...

Safety engineering

A range of short, specific safety engineering courses designed to meet specific client objectives in safety engineering and safety management. The courses cover safety engineering techniques, safety management principles and practice and the interpretation and application of domain specific safety standards and legislation.
View courses...

Software engineering

Taking advantage of Praxis’ pedigree in advanced software engineering techniques a range of customer focused training is available aimed at bringing client engineers and managers up to speed in their application. The courses can be tailored to meet precise client requirements and cover specification and the use of formal computing, code development, verification and validation and configuration and build management.
View courses...

For more information about Altran Praxis training courses or to book, please email the

Training Coordinator

or telephone:
+44 (0)1225 466991.
"The Black-Belt (Advanced) SPARK course is a ‘must’ for serious SPARK users. It gives a deep understanding of software verification with the SPARK language and toolset, and also made me a better software engineer when I have to use other languages.".
Senior Software Engineer, Syrén Software AB