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.