Please use this identifier to cite or link to this item:
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorMaharaj, Savi-
dc.contributor.advisorClark, Robert G. (Robert George)-
dc.contributor.authorWilson, Thomas-
dc.description.abstractThis thesis describes the Omnibus language and its supporting framework of tools. Omnibus is an object-oriented language which is superficially similar to the Java programming language but uses value semantics for objects and incorporates a behavioural interface specification language. Specifications are defined in terms of a subset of the query functions of the classes for which a frame-condition logic is provided. The language is well suited to the specification of modelling types and can also be used to write implementations. An overview of the language is presented and then specific aspects such as subtleties in the frame-condition logic, the implementation of value semantics and the role of equality are discussed. The challenges of reference semantics are also discussed. The Omnibus language is supported by an integrated verification tool which provides support for three assertion-based verification approaches: run-time assertion checking, extended static checking and full formal verification. The different approaches provide different balances between rigour and ease of use. The Omnibus tool allows these approaches to be used together in different parts of the same project. Guidelines are presented in order to help users avoid conflicts when using the approaches together. The use of the integrated verification approach to meet two key requirements of safe software component reuse, to have clear descriptions and some form of certification, are discussed along with the specialised facilities provided by the Omnibus tool to manage the distribution of components. The principles of the implementation of the tool are described, focussing on the integrated static verifier module that supports both extended static checking and full formal verification through the use of an intermediate logic. The different verification approaches are used to detect and correct a range of errors in a case study carried out using the Omnibus language. The case study is of a library system where copies of books, CDs and DVDs are loaned out to members. The implementation consists of 2278 lines of Omnibus code spread over 15 classes. To allow direct comparison of the different assertion-based verification approaches considered, run-time assertion checking, extended static checking and then full formal verification are applied to the application in its entirety. This directly illustrates the different balances between error coverage and ease-of-use which the approaches offer. Finally, the verification policy system is used to allow the approaches to be used together to verify different parts of the application.en
dc.publisherUniversity of Stirlingen
dc.subjectassertion-based verificationen
dc.subjectrun-time assertion checkingen
dc.subjectextended static checkingen
dc.subjectfull formal verificationen
dc.subjectverification policiesen
dc.subject.lcshOmnibus (Computer program language)en
dc.subject.lcshComputer programs Verificationen
dc.titleThe Omnibus language and integrated verification approachen
dc.typeThesis or Dissertationen
dc.type.qualificationnameDoctor of Philosophyen
dc.contributor.affiliationSchool of Natural Sciences-
dc.contributor.affiliationComputing Science and Mathematics-
Appears in Collections:Computing Science and Mathematics eTheses

Files in This Item:
File Description SizeFormat 
tw-thesis.pdf2.14 MBAdobe PDFView/Open

This item is protected by original copyright

Items in the Repository are protected by copyright, with all rights reserved, unless otherwise indicated.

If you believe that any material held in STORRE infringes copyright, please contact providing details and we will remove the Work from public display in STORRE and investigate your claim.