Developing certified programs in the system Coq: the program tactic
TYPES '93 Proceedings of the international workshop on Types for proofs and programs
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Producing UML Models from Focal Specifications: An Application to Airport Security Regulations
TASE '08 Proceedings of the 2008 2nd IFIP/IEEE International Symposium on Theoretical Aspects of Software Engineering
Reasoning about Airport Security Regulations Using the Focal Environment
ISOLA '06 Proceedings of the Second International Symposium on Leveraging Applications of Formal Methods, Verification and Validation
Zenon: an extensible automated theorem prover producing checkable proofs
LPAR'07 Proceedings of the 14th international conference on Logic for programming, artificial intelligence and reasoning
Functional testing in the focal environment
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
Proof contexts with late binding
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Certifying airport security regulations using the Focal environment
FM'06 Proceedings of the 14th international conference on Formal Methods
Proceedings of the 7th Workshop on Programming Languages and Analysis for Security
Hi-index | 0.00 |
Before their installation, critical systems must be assessed by an independent authority, who ensures that software components are really compliant with a set of requirements described in standards. Such standards describe the framework and the rules to be strictly followed along the development process. Moreover high levels of safety highly recommand the use of formal methods. In this paper, we examine how the FoCaL development environment can help to fulfil these requirements and to ease assessment. This tool aims to help all stages of critical software development, at least when formal methods are required (step-by-step specification and implementation, properties expressed by first-order formulae, proofs helped by automatic tool). Upon our experience as either software safety assessor or researchers in software engineering and formal methods, we propose a development life cycle adapted to the FoCaL specificity and compliant with independent assessment requirements, through a complete example. We show how features such as inheritance, late binding, redefinition, parametrisation, encapsulation and declarations/definitions, properties/theorems, whole development checked by an independent proof assistant and partially automatic documentation can be used to improve the global safety and the re-use of software components.