We present a methodology for the formal specification and development of software systems using Z and the refinement calculus. The methodology combines the data structuring capabilities and the codified discrete mathe...
详细信息
The purpose of this paper is to introduce a notation for expressing the requirements of time-critical systems and a calculus for reasoning about them. The Actions, Events and States of a system are represented by sets...
详细信息
An overview is given of D-I algebra, an algebra for the specification of the safety and progress properties of delay-insensitive circuits in terms of voltage-level transitions on wires. The algebraic laws make it poss...
详细信息
An overview is given of D-I algebra, an algebra for the specification of the safety and progress properties of delay-insensitive circuits in terms of voltage-level transitions on wires. The algebraic laws make it possible to specify circuits concisely and facilitate the verification of designs. Individual components can be composed into circuits in which signals along internal wires are hidden from the environment. A delay-insensitive approach has been successfully applied to several nontrivial designs, such as the design of a packet router and the design of a constant response-time stack, and D-I algebra has played an important role both in suggesting decompositions and in verifying them.< >
A compiler may be specified by a description of how each construct of the source language is translated into a sequence of object code instructions. It is possible to produce a compiler prototype almost directly from ...
详细信息
A compiler may be specified by a description of how each construct of the source language is translated into a sequence of object code instructions. It is possible to produce a compiler prototype almost directly from this specification in the form of a logic program. This defines a relation between allowed high-level and low-level program constructs. Normally a high-level program is supplied as input to a compiler and object code is returned. Because of the declarative nature of a logic program, it is possible for the object code to be supplied and the allowed high-level programs returned, resulting in a decompiler, provided enough information is available in the object code. This paper discusses the problems of adopting such an approach in practice. A simple compiler and decompiler are presented in full as an example in the logic programming language Prolog, together with some sample output. The possible benefits of using constraint logic programming are also considered. Potential applications include reverse-engineering in the software maintenance process, verification of safety-critical object code, quality assessment of code and program debugging tools.
Formal methods may be at the crossroads of acceptance by a wider industrial community. In order for the techniques to become widely used, the gap between theorists and practitioners must be bridged effectively. In par...
详细信息
Historically, the identification and correction of inadequacies in the process of software production called process feedback has been a difficult, time-consuming, manual exercise. Recently, a methodology for process ...
详细信息
Historically, the identification and correction of inadequacies in the process of software production called process feedback has been a difficult, time-consuming, manual exercise. Recently, a methodology for process feedback, called attribute focusing, has been developed. The authors compare post-process feedback with and without attribute focusing to determine how the methodology fares against current practice in post-process correction. Five project teams analyzed post-process defect data and made recommendations to improve the quality of a large operating systems product. That data was based on a multiple-choice questionnaire that was completed for every defect in a sample of defects that was chosen by each team. Subsequently, the same data was reanalyzed using attribute focusing. The comparison suggests attribute focusing can do at least as well or better than current practice in postprocess analysis, while reducing cost of analysis substantially.< >
Software recreates are necessitated due to inadequate diagnostic capability following a failure. They impact the service process and the perception of availability, but have never been adequately quantified. This pape...
详细信息
Software recreates are necessitated due to inadequate diagnostic capability following a failure. They impact the service process and the perception of availability, but have never been adequately quantified. This paper develops a technique to make the key measurements of: percent recreate, arrival rate and open time, from problem service data without requiring any additional instrumentation. The study is conducted over an 18 month period on two operating system products, that are among the best in the industry for diagnosis and service. The results provide the first insight into the problem and some accurate baselines.
We describe methods and software tools which aid in reverse-engineering COBOL application programs back to specifications (and in validating them against specifications). The aim is to create object-based abstractions...
详细信息
We describe methods and software tools which aid in reverse-engineering COBOL application programs back to specifications (and in validating them against specifications). The aim is to create object-based abstractions from the implementation to capture design and functionality. The central process which the tools support is ‘transformation from formalism to formalism’, first from COBOL to the intermediate language Uniform, then from Uniform to a functional description language, and then to the specification language Z. In the process, dataflow diagrams, entity-relationship diagrams and call-graphs, and other types of information, are extracted from the code.
暂无评论