共查询到20条相似文献,搜索用时 15 毫秒
1.
Refinement in a concurrent context, as typified by a process algebra, takes a number of different forms depending on what is considered observable, where observations record, for example, which events a system is prepared to accept or refuse. Examples of concurrent refinement relations include trace refinement, failures-divergences refinement and bisimulation.Refinement in a state-based language such as Z, on the other hand, is defined using a relational model in terms of input/output behaviour of abstract programs. These refinements are verified by using two simulation rules which help make the verification tractable.The purpose of this paper is to unify these two standpoints, and we do so by generalising the standard relational model to include additional observable aspects. The central result of the paper is then to develop simulation rules to verify relations such as failures-divergences refinement in a relational setting, and show how these might be applied in a specification language such as Z. 相似文献
2.
Algebras of imperative programming languages have been successful in reasoning about programs. In general an algebra of programs is an algebraic structure with programs as elements and with program compositions (sequential composition, choice, skip) as algebra operations. Various versions of these algebras were introduced to model partial correctness, total correctness, refinement, demonic choice, and other aspects. We introduce here an algebra which can be used to model total correctness, refinement, demonic and angelic choice. The basic model of our algebra are monotonic Boolean transformers (monotonic functions from a Boolean algebra to itself). 相似文献
3.
Brendan P. Mahony 《Formal Aspects of Computing》1999,11(1):75-105
A syntactic calculation of Morgan's least conjunctive refinement operator for predicate transformers is developed. The operator
is used to develop a general approach to lifting relational operators to predicate transformer operators. Predicate transformer
versions of the relational conjunction and disjunction operators are considered in detail. The Z-based technique of program
promotion is considered in a refinement calculus setting. A standard Z promotion example is recast in the refinement calculus.
Received August 1997 / Accepted in revised form January 1999 相似文献
4.
5.
In the development of critical systems, standards dictate that it is necessary to first design, construct and formally analyse abstract models of the system. Developers must then verify that the final implementation is consistent with these more abstract specifications.Z is an example of a state-based specification language. It has been shown to be effective in a variety of cases—indeed it was developed as part of a joint collaboration between Oxford University's PRG and IBM Hursley for the specification of the CICS system. However, Z's main weakness is that it does not have the necessary tool support: whilst there are associated type checkers, there is no tool for automatically verifying refinement in Z.The contribution of this paper is to show how data refinement in Z can be automatically verified using the Alloy Analyzer. The soundness and joint completeness of the simulation rules for Z have already been established: here we translate them to Alloy. We then show how data types expressed in Z can also be translated to Alloy, before presenting the assertions necessary for the Alloy Analyzer to identify the retrieve relation and hence verify refinement. We present a simple example in which the Alloy Analyzer successfully identifies the retrieve relation between two data types thereby verifying simulation and hence refinement. We conclude the paper with a discussion of the suitability of the Alloy Analyzer for such a task. 相似文献
6.
The refinement calculus for the development of programs from specifications is well suited to mechanised support. We review
the requirements for tool support of refinement as gleaned from our experience with existing refinement tools, and report
on the design and implementation of a new tool to support refinement based on these requirements.
The main features of the new tool are close integration of refinement and proof in a single tool (the same mechanism is used
for both), good management of the refinement context, an extensible theory base that allows the tool to be adapted to new
application domains, and a flexible user interface.
Received June 1997 / Accepted in revised form June 1998 相似文献
7.
K. Lano K. Androutsopolous D. Clark 《Electronic Notes in Theoretical Computer Science》2005,137(2):131
This paper describes strategies or 'patterns' for the refinement of UML specifications into executable implementations, using a semantically precise subset, UML-RSDS, of UML. 相似文献
8.
H. L. de Cougny 《Engineering with Computers》1998,14(3):214-222
This paper presents an adaptation scheme for surface meshes. Both refinement and coarsening tools are based upon local retriangulation. They can maintain the geometric features of the given surface mesh and its quality as well. A mesh gradation tool to smooth out large size differences between neighboring (in space) mesh faces and a procedure to detect and resolve self-intersections in the mesh are also presented. Both are driven by an octree structure and make use of the presented refinement tool. 相似文献
9.
We show how a parallel composition of action systems can be refined by refining the components separately, and checking non-interference against invariants and guarantee conditions, which are abstract and stable. The guarantee condition can be thought of as a very abstract specification of how a system affects the global state, and it allows us to show that an action system refinement is valid in a given environment, even if we do not know any of the details of that environment. The paper extends the traditional notion of action systems slightly, and it makes use of a generalisation of the attribute model for program variables. 相似文献
10.
Richard F. Paige Dimitrios S. Kolovos Fiona A.C. Polack 《Electronic Notes in Theoretical Computer Science》2005,137(2):151
Refinement is a key practice in the Model-Driven Architecture initiative of the Object Modelling Group. However, the practice is loosely defined, overloaded, and open to misinterpretation. In this paper, we outline ongoing work on providing a precise definition for refinement via consistency checking, not only in the context of MDA, but more generally for model-driven development in a variety of domains. 相似文献
11.
12.
This paper defines a new denotational semantics for the language of Communicating Sequential Processes (CSP). The semantics
lies between the existing traces and failures models of CSP, providing a treatment of non-determinism in terms of singleton failures. Although the semantics does not represent a congruence upon the full language, it is adequate for sequential tests of non-deterministic
processes. This semantics corresponds exactly to a commonly used notion of data refinement in Z and Object-Z: an abstract
data type is refined when the corresponding process is refined in terms of singleton failures. The semantics is used to explore
the relationship between data refinement and process refinement, and to derive a rule for data refinement that is both sound
and complete.
Received October 2001
Revised September 2002, February 2003, June 2004 and October 2005
Accepted November 2005 by I. J. Hayes 相似文献
13.
一种从Z到精化演算的软件开发方法 总被引:3,自引:0,他引:3
一、引言形式化方法的研究和应用已有二十多年的历史,源于Dijkstra和Hoare的程序验证以及Scott、stratchey等人的程序语义研究,指为保证复杂系统的可靠性,以数学为基础对其进行精确描述和验证的语言、技术和工具。形式化方法的关键在于形式规约语言。通过语法和语义有严格数学定义的形式规约语言对系统及其各方面性能的描述,产生系统的形式规约,可以帮助开发者获得对所描述系统的深刻理解,并通 相似文献
14.
We show how a theory of specification refinement and program development can be constructed as a conservative extension of our existing logic for Z. The resulting system can be set up as a development method for a Z-like specification language, or as a generalisation of a refinement calculus (with a novel semantics). In addition to the technical development we illustrate how the theory can be used in practice. 相似文献
15.
Michael Huth 《Formal Aspects of Computing》2005,17(2):113-137
Modal transition systems specify sets of implementations, their refining labelled transition systems, through Larsen & Thomsen’s co-inductive notion of refinement. We demonstrate that refinement precisely captures the identification of a modal transition system with its set of implementations: refinement is reverse containment of sets of implementations. This result extends to models that combine state and event observables and is drawn from a SFP-domain whose elements are equivalence classes of modal transition systems under refinement [HJS04], and abstraction-based finite-model properties proved in this paper. As a corollary, validity checking is model checking for Hennessy-Milner formulas that characterize modal transition systems with bounded computation paths. We finally sketch how techniques developed in this paper can be used to detect inconsistencies between multiple modal transition systems and, if consistent, to verify properties of all common implementations.Received January 2004Revised August 2004Accepted December 2004 by M. Leuschel and D. J. Cooke 相似文献
16.
形式化方法把程序看成规范,形式化开发方法包括形式规范和规范(程序)的精化。精化演算方法能够通过演算的方式,把规范逐步精化为程序。然而,演化的过程依赖于开发人员的经验,整个过程全部都是手动的。形式化方法的最高目标是软件自动化,使得能从规范自动开发出正确的程序。因而用Petri网来描述程序精化中的循环不变式,希望以此作为软件自动化的一个探索。 相似文献
17.
Refinement of logical theories plays an important role in various application domains, notably in software engineering. This note introduces and studies refinement notions for nonmonotonic knowledge bases in default logic. The paper motivates and proposes refinement concepts, discusses their relationship, and establishes sufficient conditions for refinement. Received 27 July 1999 / Revised 3 November 1999 / Accepted 24 May 2000 相似文献
18.
Proofs about system specifications are difficult to conduct, particularly for large specifications. Using abstraction and refinement, we propose a proof technique that simplifies these proofs. We apply the technique to Circus (a combination of Z and CSP) specifications of different complexities. Interestingly, all the proofs are conducted in Z, even those concerning reactive behaviour. 相似文献
19.
Model driven architecture (MDA) views application development as a continuous transformation of models of the target system.
We propose a methodology which extends this view to non-functional properties. In previous publications we have shown how
we can use so-called context models to make the specification of non-functional measurements independent of their application
in concrete system specifications. We have also shown how this allows us to distinguish two roles in the development process:
the measurement designer and the application designer.
In this paper we use the notion of context models to allow the measurement designer to provide measurement definitions at
different levels of abstraction. A measurement in our terminology is a non-functional dimension that can be constrained to
describe a non-functional property. Requiring the measurement designer to define transformations between context models, and
applying them to measurement definitions, enables us to provide tool support for refinement of non-functional constraints
to the application designer. The paper presents the concepts for such tool support as well as a prototype implementation. 相似文献
20.
J. Dingel 《Formal Aspects of Computing》2002,14(2):123-197
Parallel computers have not yet had the expected impact on mainstream computing. Parallelism adds a level of complexity to
the programming task that makes it very error-prone. Moreover, a large variety of very different parallel architectures exists.
Porting an implementation from one machine to another may require substantial changes. This paper addresses some of these
problems by developing a formal basis for the design of parallel programs in the form of a refinement calculus. The calculus
allows the stepwise formal derivation of an abstract, low-level implementation from a trusted, high-level specification. The
calculus thus helps structuring and documenting the development process. Portability is increased, because the introduction
of a machine-dependent feature can be located in the refinement tree. Development efforts above this point in the tree are
independent of that feature and are thus reusable. Moreover, the discovery of new, possibly more efficient solutions is facilitated.
Last but not least, programs are correct by construction, which obviates the need for difficult debugging. Our programming/specification
notation supports fair parallelism, shared-variable and message-passing concurrency, local variables and channels. The calculus
rests on a compositional trace semantics that treats shared-variable and message-passing concurrency uniformly. The refinement
relation combines a context-sensitive notion of trace inclusion and assumption-commitment reasoning to achieve compositionality.
The calculus straddles both concurrency paradigms, that is, a shared-variable program can be refined into a distributed, message-passing
program and vice versa.
Received July 2001 / Accepted in revised form May 2002 相似文献