10533628
Formal Methods for Industrial Products
We have recently completed the specification and security proof of a large, industrial scale application. The application is security critical, and the modelling and proof were done to increase the client's assurance that the implemented system had no design flaws with security implications. Here we describe the application, specification structure, and proof approach. 
 
One of the security properties of our system is of the kind not preserved in general by refinement. We had to perform a proof that this property, expressed over traces, holds in our state-and-operations style model.
9257101
More Powerful Z Data Refinement: Pushing the State of the Art in Industrial Refinement
We have recently completed the specification and full refinement proof of a large, industrial scale application. The application was security critical, and the modelling and proof was done to increase the client’s assurance that the implemented system had no design flaws with security implications. Here we describe the application, and then discuss an essential lesson to learn concerning large proof contracts: that one must forge a path between mathematical formality on the one hand and practical achievement of results on the other. We present a number of examples of such decision points, explaining the considerations that must be made in each case.
6606025
The certification of the Mondex electronic purse to ITSEC Level E6
Abstract.Ten years ago the Mondex electronic purse was certified to ITSEC Level E6, the highest level of assurance for secure systems. This involved building formal models in the Z notation, linking them with refinement, and proving that they correctly implement the required security properties. The work has been revived recently as a pilot project for the international Grand Challenge in Verified Software. This paper records the history of the original project and gives an overview of the formal models and proofs used.
28202446
A demonstrably correct compiler
As critical applications grow in size and complexity, high level languages, rather than better-trusted assembly languages, will be used in their development. This adds potential for extra errors to creep in, especially in the now necessary compiler. To avoid these new errors, it is necessary to have a formal specification of the high level language, and a formal development of its compiler. We outline what we believe is a practical route for achieving a demonstrably correct compiler, and describe a prototype compiler we have built by this route for a small, but non-trivial, language.
2090341
Z in practice
Using Z. Structure, Process, Fluency. The Established Strategy. Security Properties. Other Approaches to Z Specification. Validation. Putting Together Your Method. House Style. A Word Counting Utility. Roles in Space. Structuring a Video Shop. Promoting Snakes and Ladders. Refining the Tower of Hanoi. Be Abstract. Sets or Functions?. Sets, Quantifiers, or Toolkit?. Sequences are Functions are Relations are Sets. Error Handling Styles. Promotion. Using Free Types. Using Bags. A Function Calculator. Making Schemas Work for you. Exploiting the Power of the Language. A Real Number Toolkit. and Finally...
24201818
Compression of Wiswesser Line Notations Using Variety Generation
6134873
Recognizing and Responding to Student Affect
This paper describes the use of wireless sensors to recognize student emotion and the use of pedagogical agents to respond to students with these emotions. Minimally invasive sensor technology has reached such a maturity level that students engaged in classroom work can us sensors while using a computer-based tutor. The sensors, located on each of 25 student's chair, mouse, monitor, and wrist, provide data about posture, movement, grip tension, facially expressed mental states and arousal. This data has demonstrated that intelligent tutoring systems can provide adaptive feedback based on an individual student's affective state. We also describe the evaluation of emotional embodied animated pedagogical agents and their impact on student motivation and achievement. Empirical studies show that students using the agents increased their math value, self-concept and mastery orientation.
60884961
The benefit of information technology in managing outcomes focused curriculum development across related degree programs
This paper describes an interactive, web-based tool that provides access to an Outcomes Database for managing an Outcomes Focused curriculum plan. The approach provides a rapid way to involve subject specialists, course controllers, curriculum designers and educational consultants in the curriculum design and review process. The Outcomes Database is used to capture the relationships between units (i.e. subjects), Unit Learning Outcomes, Course Learning Outcomes, Generic Graduate Attributes and assessments. This is undertaken across courses (i.e. undergraduate degree programs) sharing common units in Information Technology, Computer Science, and Software Engineering. Automatically generated database reports that show how units contribute to the development of the generic graduate attributes are compared to those derived manually on a unit-by-unit basis. Preliminary experience with this IT-based approach demonstrates that automatically generated database reports effectively highlight areas requiring further attention during subsequent curriculum development iterations. The tools and approach described here show how the Outcomes Database can assist in making the transition from an existing program to one using an Outcomes Focused approach.
46025440
The use of binary search trees in external distribution sorting
Abstract A new method of external distribution sorting called tree partitioning is suggested. It involves the use of a binary tree to split an incoming file into successively smaller partitions until these are small enough to be sorted internally. The tree is generated from a sample of data of the same type as those to be sorted using that tree. The method is therefore suitable in cases where some regularity in the data is to be expected, as is the case, for example, with words from a textual or bibliographic database. The number of disc accesses during a tree partitioning sort were calculated in a simulation using files of up to 900,000 text words extracted from British National Bibliography catalogue files. These were compared with the actual numbers of disc accesses used by a standard sort-merge utility. Although the differences were in general not large, the comparison was favourable to tree partitioning in the majority of cases.
583415
Using dependence graphs to assist manual and automated object oriented software inspections
Many researchers have demonstrated the value of software inspections in finding and fixing defects early in the development process. However, manual inspection can be a labour-intensive process. We present a tool that applies dependence graphs to aid object oriented software inspection. Our tool, Coffee Grinder, uses control and data dependence graphs both to immediately visualise a Java system and to facilitate the development of scripts to find defects or locate areas of potential inspection interest. These scripts can output results textually or graphically. We present the design of Coffee Grinder and several example scripts. Coffee Grinder illustrates the case for extensible tool support in the software inspection process