Get training from some of the foremost experts on the SPARK programming language and SPARK Pro technology. Experience has shown that SPARK is simple to learn, owing to its inherent simplicity and unambiguous semantics. SPARK training covers a much wider range of topics than just the language and toolsuite, since SPARK impacts software design, review, verification and your approach to certification or evaluation. We have found that understanding of these issues is vital, particularly in the early days of a SPARK project.
Training sessions can be given on-site or at our offices in Bath (UK), Paris or New York. For information regarding scheduling, pricing or custom training sessions, please contact sales@adacore.com
A 2-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.
A 4-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 Toolsuite in systematic program development. The course also covers fundamental SPARK design issues, such as appropriate use of packages such as abstract machines and data types, as well as the use of SPARK refinement, system interfaces, library mechanisms, etc. Some of the more advanced facilities of the SPARK Examiner, for run-time error checking for example, are presented.
This course includes extensive hands-on sessions using the SPARK Pro Toolsuite.
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.
For further information or registration forms, or to arrange for any of these courses to be delivered on site at your facility, please contact sales@adacore.com
The SPARK Pro team periodically conducts public courses on the SPARK language and the SPARK Pro toolset. All courses combine lectures with hands-on workshops using the latest version of the SPARK Pro toolset.
Information about dates and locations »
The SPARK programming language is not sponsored by or affiliated with SPARC International Inc and is not based on the SPARC(tm) architecture.