共查询到20条相似文献,搜索用时 15 毫秒
1.
COOZ(complete object-oriented Z)的优势在于精确描述大型程序的规约.COOZ本身的结构 不支持精化演算,这限制了COOZ的应用能力,使COOZ难以作为完整的方法应用于软件的开发. 将精化演算引入COOZ,弥补了COOZ在设计和实现阶段的不足,同时也消除了规约与实现之间在 结构和表示方法上的完全分离,使程序开发在一个完整的框架下平滑进行.该文提出了基于CO OZ和精化演算的软件开发模型,通过实例讨论了数据精化和操作精化问题.在精化演算实现技 术方面构造了一种数据精化算子,提出一 相似文献
2.
3.
一种基于Z和精化演算的形式化开发方法 总被引:1,自引:0,他引:1
通过分析Z和精化演算各自的特点,本文提出了一种使两者无缝集成的形式化开发方法。该方法利用Z良好的描述特性和扩充的类机制,将系统规约直妆定义成精化演算中的抽象程序,然后用精化规则对抽象程序逐步精化,直到可执行程序。最后给出了一个简单例子。 相似文献
4.
5.
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 相似文献
6.
本文介绍了一种基于形式化规格说明语言COOZ的面向对象设计方法并给出实例。该方法用COOZ描述类的设计规格说明,实现了从形式化需求描述到形式化设计的平滑过渡。文中重点讨论了与设计方法有关的一些面向对象概念:对象类型和类的分开、子类型和继承的分开、灵活的消息传递和参数转换机制、主动对象和被动对象、根类的定义等。 相似文献
7.
形式描述语言COOZ的集成支撑环境COOZ—Tools 总被引:1,自引:0,他引:1
介绍支持面向对象的形式描述语言COOZ的集成支撑环境COOZ-Tools的设计原则、系统结构、功能、特点和关键的实现技术。COOZ是Z语言的面向对象扩充,从而将形式化语言和面向对象机制有机结合起来。COOZ-Tools支持基于COOZ的软件开发,它主要由如下工具组成:规格说明编辑、浏览工具、语法语义检查工具、联机帮助工具、项目管理工具。 相似文献
8.
利用精化演算的方法开发软件,其过程由巨大数量的小步骤构成,由手工完成极其烦琐,也极容易出错。因此,利用机器辅助工具的支持是必要的。在分析现有的精化工具的基础上,我们提出了一个用于软件形式化开发的精化工具RT(RefinementTool),对精化工具进行了需求分析和功能分析。在精化工具的设计中,分析了精化工具的设计目标、总体结构、精化与证明的表示方法、用户界面和工具的扩充性等问题,通过对精化和证明的表示方法的分析,提出了一种精化与证明的表示相结合的方法。 相似文献
9.
The refinement calculus is a well-established theory for formal development of imperative program code and is supported by a number of automated tools. Via a detailed case study, this article shows how refinement theory and tool support can be extended for a program with real-time constraints. The approach adapts a timed variant of the refinement calculus and makes corresponding enhancements to a theorem-prover based refinement tool. 相似文献
10.
The fact that Z is a specification language only, with no associated program development method, is a widely recognised problem.
As an answer to that, we present ZRC, a refinement calculus based on Morgan's work that incorporates the Z notation and follows
its style and conventions. This work builds upon existing refinement techniques for Z, but distinguishes itself mainly in
that ZRC is completely formalised. In this paper, we explain how programs can be derived from Z specifications using ZRC.
We present ZRC-L, the language of our calculus, and its conversion laws, which are concerned with the transformation of Z
schemas into programs of this language. Moreover, we present the weakest precondition semantics of ZRC-L, which is the basis
for the derivation of the laws of ZRC. More than a refinement calculus, ZRC is a theory of refinement for Z.
Received July 1997 / Accepted in revised form October 1998 相似文献
11.
并行程序设计是并行计算的难点之一。提出了一种将设计模式用于程序精化演算的并行程序设计方法。它通过在Z语言的Schema演算体系中扩充并行的概念和表示,使用设计模式,将问题求解和并行开发的知识进行形式化的定义与描述,通过扩充的Schema演算将其与模型规范进行复合,逐步精化得到抽象并行程序。通过实例对这一方法进行了详细的描述。 相似文献
12.
David Scholefield 《Formal Aspects of Computing》1996,8(4):408-427
A refinement calculus for the development of real-time systems is presented. The calculus is based upon a wide-spectrum language called TAM (the Temporal Agent Model), within which both functional and timing properties can be expressed in either abstract or concrete terms. A specification oriented semantics is given for the language. Program development is considered as a refinement process i.e. thecalculation of a structured program from an unstructured specification. An example program is developed. 相似文献
13.
Business Process Execution Language for Web Services (WS-BPEL) is the emerging standard for designing Web Services compositions. In this context, formal methods can contribute to increased reliability and consistency in the BPEL design process. In this paper we propose an approach based on the HAL Toolkit that allows verification of the correctness of the behavior of a π-based specification of interacting Web Services, and generates the BPEL processes that have the same behavior. This correlation based on two-way mapping between the π-based orchestration calculus and BPEL. This approach facilitates the verification and refinement process and may be applied to any BPEL implementation. 相似文献
14.
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 相似文献
15.
16.
Although many programming languages contain exception handling mechanisms, their formal treatment — necessary for rigorous development — can be complex. Nevertheless, this paper presents a simple incorporation ofexit commands and exception blocks into a rigorous program development method. The refinement calculus, chosen for the exercise, is a method of developing imperative programs. It is based on weakest preconditions, although they are not used explicitly during program construction; they merely justify the general method. In the style of the refinement calculus, program development laws are given that introduce and allow the manipulation ofexits. The soundness of the new laws is shown using weakest preconditions (as for the existing refinement calculus laws). The extension of weakest preconditions needed to handleexits is a variation on earlier work of Cristian; the variation is necessary to handle nondeterminism. 相似文献
17.
Andreas Griesmayer Zhiming Liu Charles Morisset Shuling Wang 《Innovations in Systems and Software Engineering》2013,9(1):3-16
The refinement calculus provides a methodology for transforming an abstract specification into a concrete implementation, by following a succession of refinement rules. These rules have been mechanized in theorem provers, thus providing a formal and rigorous way to prove that a given program refines another one. In a previous work, we have extended this mechanization for object-oriented programs, where the memory is represented as a graph, and we have integrated our approach within the rCOS tool, a model-driven software development tool providing a refinement language. Hence, for any refinement step, the tool automatically generates the corresponding proof obligations and the user can manually discharge them, using a provided library of refinement lemmas. In this work, we propose an approach to automate the search of possible refinement rules from a program to another, using the rewriting tool Maude. Each refinement rule in Maude is associated with the corresponding lemma in Isabelle, thus allowing the tool to automatically generate the Isabelle proof when a refinement rule can be automatically found. The user can add a new refinement rule by providing the corresponding Maude rule and Isabelle lemma. 相似文献
18.
Z的面向对象扩充COOZ的设计 总被引:11,自引:0,他引:11
为了使Z规格说明与面向对象开发方法相结合,本文在Z中扩充了对象类型和模块描述机制,使之成为面向对象的形式化规格说明语言COOZ(completeobject-orientedZ).内容包括COOZ的设计思想、语法定义及说明、形式化语义、实例以及与相关研究工作的比较. 相似文献
19.
Constraints provide a flexible and uniform way to represent diverse data capturing spatio-temporal behavior, complex modeling requirements, partial and incomplete information etc, and have been used in a wide variety of application domains. Constraint databases have recently emerged to deeply integrate data captured by constraints in databases. This paper reports on the development of the first constraint object-oriented database system, CCUBE, and describes its specification, design and implementation. The CCUBE system is designed to be used for the implementation and optimization of high-level constraint object-oriented query languages as well as for directly building software systems requiring extensible use of constraint database features. The CCUBE data manipulation language, Constraint Comprehension Calculus, is an integration of a constraint calculus for extensible constraint domains within monoid comprehensions, which serve as an optimization-level language for object-oriented queries. The data model for the constraint calculus is based on constraint spatio-temporal (CST) objects that may hold spatial, temporal or constraint data, conceptually represented by constraints. New CST objects are constructed, manipulated and queried by means of the constraint calculus. The model for the monoid comprehensions, in turn, is based on the notion of monoids, which is a generalization of collection and aggregation types. The focal point of our work is achieving the right balance between the expressiveness, complexity and representation usefulness, without which the practical use of the system would not be possible. To that end, CCUBE constraint calculus guarantees polynomial time data complexity, and, furthermore, is tightly integrated with the monoid comprehensions to allow deeply interleaved global optimization. 相似文献
20.
形式化方法把程序看成规范,形式化开发方法包括形式规范和规范(程序)的精化。精化演算方法能够通过演算的方式,把规范逐步精化为程序。然而,演化的过程依赖于开发人员的经验,整个过程全部都是手动的。形式化方法的最高目标是软件自动化,使得能从规范自动开发出正确的程序。因而用Petri网来描述程序精化中的循环不变式,希望以此作为软件自动化的一个探索。 相似文献