30631018
Segregation with Communication
We have developed a general definition of segregation in the context of Z system specifications. This definition is general enough to allow multi-way communications between otherwise segregated parties along defined channels. We have an abstract definition of segregation in terms of the traces allowed by systems, a concrete style of specification to ensure segregation (a generalisation of promotion called multi-promotion) and a proof that unconstrained multi-promotion is a sufficient condition to ensure segregation.
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.
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...
20544062
The Use of Z
During 1990 and 1991 we carried out a survey of Z users in the UK; in this paper we present the results. Z is being used by a wide variety of companies for many different applications. Many institutions use Z because they choose to, rather than because it is mandated by a defence or security related client. Half of the participants in the survey were first- time users of Z; with a little training and some expert guidance they were soon able to produce Z specifications. Nearly all the institutions who have used Z intend to do so again; those who don’t plan to use a formal method more appropriate to their needs. We did not uncover many really large projects using Z, but most of those which we did survey are of a reasonable size. Over half the projects surveyed are using tools, with the majority of them employing type checking support. Tools use grows with the size of the project, although several large specifications have been produced without the use of tools. Not many people are proving their specifications, nor stating desirable theorems or proof obligations. However, many people expressed an interest in this with the unavailability of appropriate tool support being given as a reason for not attempting proof.
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.
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.
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.
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.
36913632
E-Publishing Portal: A New Approach to Faculty Outreach
The recent journal price increases and state-wide budget cuts have forced librarians at the University of Maryland (UMD) to make outright cancellations to journals. The implementation of an in-house system for preserving scholarly work of faculty was necessary not only because of budgetary stringency. The ongoing “scholarly communication crisis”, the recognition that the library system needs to be changed, the need for archiving e-journal content has prompted the construction of an institutional repository. This poster aims to identify issues encountered during the design process of a digital repository and suggests possible solutions. New roles of the users of this newly implemented system are described. The main elements of the service are outlined, outreach methodologies are discussed, and faculty concerns are addressed.
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