Grant: Discovery Grants Program - Individual
Brock University
$23,000.00
Verified object-oriented programs
EF 2008-09
Résumé
Every user of computer systems is familiar with errors and/or misbehavior of software products. This is an annoying situation but for most applications not serious. On the other hand, especially in the area of ebusiness correct programs become more and more important. For example, every user of such a program wants to be sure that secret data (credit card number, pin, etc.) are not accessible to unauthorized persons. Another example might be software controlling a nuclear plant. It is desirable that such a program does not fail. One method for developing reliable software products is program verification, i.e. providing a mathematical proof of correctness versus a given specification. For the reasons mentioned above a certification of a software product following the European ITSEC (Information Technology Security Evaluation Criteria) at level E4-E6 - the three highest certification/assurance levels of that standard - requires the application of formal methods including correctness proofs of at least parts of the system.
The existing tools and methods are very limited in providing mechanisms to transfer properties, their proofs and proof methods from one construction to another. One is forced to start on a very basic level, which generates a huge amount of proof obligations. In real world examples proving all obligations is often not feasible or at least too expensive. A system and its underlying methodology, which allows less expensive development of verified programs would be of great benefit for software developers and finally for all users. My objective is to establish such a system and methodology, and, thus, to transfer theoretical results to real world applications.
The overwhelming success of object-oriented programming languages is based on reuse of software components. I will apply the same idea to the corresponding proof system. Properties of programs and their proof will be integrated into the class hierarchy such that a suitable inheritance mechanism transfers operations as well as the related properties and proofs to subclasses.
Programme
Discovery Grants Program - Individual
Bénéficiaire
Emplacement
Ontario, Canada
Type de bénéficiaire
Academia
Type
Grant
Source
NSERC's Awards Data
Tel que publié
Application id
283267-2007
Name nom
Winter, HorstMichael
Department département
Computer Science
Organization id
22
Institution établissement
Brock University
Province en
Ontario
Province fr
Ontario
Country en
CANADA
Country fr
CANADA
Fiscal year exercice financier
2008
Competition year année de concours
2007
Award amount
23000
Program id
RGPIN
Program nane en
Discovery Grants Program - Individual
Program name fr
Programme de subventions à la découverte - individuelles
Group en
Discovery grants programs
Group fr
Programmes de subventions à la découverte
Committee code
330
Committee name en
Computing and Information Sciences - A
Committee name fr
Informatique - A
Area of application code
801
Area of application group en
Information and communication services
Area of application group fr
Services d'information et de télécommunications
Area of application en
Computer software
Area of application fr
Logiciel
Research subject code
2714
Research subject group en
Information technology
Research subject group fr
Technologie de l'information
Research subject en
Mathematics of computing
Research subject fr
Mathématiques de l'informatique
Partie
2
Nb partie
5
Application title
Verified object-oriented programs
Keyword
NA
Application summary
Every user of computer systems is familiar with errors and/or misbehavior of software products. This is an annoying situation but for most applications not serious. On the other hand, especially in the area of ebusiness correct programs become more and more important. For example, every user of such a program wants to be sure that secret data (credit card number, pin, etc.) are not accessible to unauthorized persons. Another example might be software controlling a nuclear plant. It is desirable that such a program does not fail. One method for developing reliable software products is program verification, i.e. providing a mathematical proof of correctness versus a given specification. For the reasons mentioned above a certification of a software product following the European ITSEC (Information Technology Security Evaluation Criteria) at level E4-E6 - the three highest certification/assurance levels of that standard - requires the application of formal methods including correctness proofs of at least parts of the system.
The existing tools and methods are very limited in providing mechanisms to transfer properties, their proofs and proof methods from one construction to another. One is forced to start on a very basic level, which generates a huge amount of proof obligations. In real world examples proving all obligations is often not feasible or at least too expensive. A system and its underlying methodology, which allows less expensive development of verified programs would be of great benefit for software developers and finally for all users. My objective is to establish such a system and methodology, and, thus, to transfer theoretical results to real world applications.
The overwhelming success of object-oriented programming languages is based on reuse of software components. I will apply the same idea to the corresponding proof system. Properties of programs and their proof will be integrated into the class hierarchy such that a suitable inheritance mechanism transfers operations as well as the related properties and proofs to subclasses.