首页 > 最新文献

Formal Methods in Software Development最新文献

英文 中文
Experience with the Larch Prover 经验与落叶松证明
Pub Date : 1990-04-01 DOI: 10.1145/99569.99835
Jeannette M. Wing, C. Gong
Many people have argued the importance of mechanical theorem-proving for reasoning about programs. Proving the correctness of programs by hand is usually hard and errorprone. People often miss boundary cases or forget to state hidden assumptions. On the other hand, can current mechanical theorem provers deal with a wide scope of non-trivial problems? Here, the question of scale is in diversity of problems as well as in complexity of each problem. Some provers are more suitable for one class of problems than others and all provers have space and time bounds that set practical limits on the size of an individual problem that can be handled.
许多人争论力学定理证明对于程序推理的重要性。手工证明程序的正确性通常是困难且容易出错的。人们经常忽略边界情况,或者忘记说明隐藏的假设。另一方面,目前的力学定理证明能处理大范围的非平凡问题吗?在这里,规模问题在于问题的多样性以及每个问题的复杂性。有些证明器比其他证明器更适合于一类问题,并且所有证明器都有空间和时间限制,这些限制对可以处理的单个问题的大小设置了实际限制。
{"title":"Experience with the Larch Prover","authors":"Jeannette M. Wing, C. Gong","doi":"10.1145/99569.99835","DOIUrl":"https://doi.org/10.1145/99569.99835","url":null,"abstract":"Many people have argued the importance of mechanical theorem-proving for reasoning about programs. Proving the correctness of programs by hand is usually hard and errorprone. People often miss boundary cases or forget to state hidden assumptions. On the other hand, can current mechanical theorem provers deal with a wide scope of non-trivial problems? Here, the question of scale is in diversity of problems as well as in complexity of each problem. Some provers are more suitable for one class of problems than others and all provers have space and time bounds that set practical limits on the size of an individual problem that can be handled.","PeriodicalId":429108,"journal":{"name":"Formal Methods in Software Development","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125287086","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Toward special-purpose program verification 用于特殊目的的程序验证
Pub Date : 1990-04-01 DOI: 10.1145/99569.99807
P. Eggert
Program verification has seen little practical, automated use. How can its good ideas be revived in a practical setting? One way is to lower its sights: instead of checking that a program matches its specification, one can perform less ambitious but more feasible checking. Much recent work has lowered sights by checking only specifications and not programs. By characterizing software failures by their detection method, we have decided instead to try checking only programs and not specifications. Our goal is to integrate run-time checking into a compiler, so that programs never commit common run-time faults like following bad pointers or violating array boundaries. 1 Verification ignored Most work in applying formal methods to software development concentrates on formalizing software designs, because it is a challenging intellectual problem that brings forth fundamental issues in programming methods and notations. Thus program verification, which arose from axiomatic semantics [Ho691, was originally developed in an ambitious attempt to produce programs that “do what we want them to do.” [Lo751 After an burst of enthusiasm, however, researchers found that program verification consumed too many human resources to apply it to practical systems. Although serious work has continued in program verification to this day, many outsiders are skeptical of its utility. For example, of 25 papers in a recent conference on practical software development environments [He881, only two relatively speculative papers [Le88, Re88) even mentioned verification. Another measure of the distance between formal verification and practice is the Gypsy Programming Support Environment [Co88], named by practical workers who were evidently unaware of the Gypsy Verification Environment [Go861! Many workers who remain in the field concentrate on verifying only the most crucial properties of software, notably security in the U.S.A. [Ch81, Go86, vH88, Sc891, where sights axe often lowered by checking only specifications, not programs. This work is not likely to catch on in the broader software community. Worse, software engineering education, at least in the U.S.A., discourages students from formal methods [Gr90]. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for Proceedings of the ACM SIGSOFT International Workshop on Formal Methods in Software Developdirect commercial advantage, the ACM copyright notice and the ment. Napa, California, May 9-11, 1990. title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. @ 1990 ACM 089791-4155/90/0010-0025...$1.50
程序验证很少有实际的、自动化的使用。它的好思想如何在实际环境中复兴?一种方法是降低其目标:与其检查程序是否符合其规范,不如执行不那么雄心勃勃但更可行的检查。最近的许多工作只检查规格而不检查程序,降低了人们的眼界。通过检测软件故障的方法,我们决定只检查程序而不检查规格说明。我们的目标是将运行时检查集成到编译器中,这样程序就不会犯常见的运行时错误,比如跟随错误的指针或违反数组边界。将形式化方法应用于软件开发的大多数工作都集中在形式化软件设计上,因为这是一个具有挑战性的智力问题,它带来了编程方法和符号的基本问题。因此,起源于公理语义(Ho691)的程序验证,最初是在一个雄心勃勃的尝试中开发出来的,目的是让程序“做我们想让它们做的事情”。[00:751]然而,在一阵热情爆发之后,研究人员发现,程序验证耗费了太多的人力资源,无法将其应用于实际系统。尽管时至今日,在程序验证方面的严肃工作仍在继续,但许多外部人士对其实用性持怀疑态度。例如,在最近一次关于实际软件开发环境的会议[He881]上的25篇论文中,只有两篇相对推测性的论文[Le88, Re88]甚至提到了验证。正式验证与实践之间距离的另一个衡量标准是Gypsy编程支持环境[Co88],由显然不知道Gypsy验证环境的实践工作者命名[Go861!许多留在这一领域的工作人员只专注于验证软件最关键的特性,特别是美国的安全[Ch81, Go86, vH88, Sc891],在那里,只检查规格而不检查程序,往往降低了他们的目标。这项工作不太可能在更广泛的软件社区流行起来。更糟糕的是,软件工程教育,至少在美国,不鼓励学生采用正式的方法[Gr90]。允许免费复制全部或部分本材料,前提是这些副本不是为ACM SIGSOFT软件开发正式方法国际研讨会论文集、ACM版权声明和声明而制作或分发的。1990年5月9日至11日,加州纳帕。出版物的标题和出版日期,并注明复制是由计算机协会许可的。以其他方式复制或重新发布需要付费和/或特定许可。@ 1990 acm 089791-4155/90/0010-0025…$1.50
{"title":"Toward special-purpose program verification","authors":"P. Eggert","doi":"10.1145/99569.99807","DOIUrl":"https://doi.org/10.1145/99569.99807","url":null,"abstract":"Program verification has seen little practical, automated use. How can its good ideas be revived in a practical setting? One way is to lower its sights: instead of checking that a program matches its specification, one can perform less ambitious but more feasible checking. Much recent work has lowered sights by checking only specifications and not programs. By characterizing software failures by their detection method, we have decided instead to try checking only programs and not specifications. Our goal is to integrate run-time checking into a compiler, so that programs never commit common run-time faults like following bad pointers or violating array boundaries. 1 Verification ignored Most work in applying formal methods to software development concentrates on formalizing software designs, because it is a challenging intellectual problem that brings forth fundamental issues in programming methods and notations. Thus program verification, which arose from axiomatic semantics [Ho691, was originally developed in an ambitious attempt to produce programs that “do what we want them to do.” [Lo751 After an burst of enthusiasm, however, researchers found that program verification consumed too many human resources to apply it to practical systems. Although serious work has continued in program verification to this day, many outsiders are skeptical of its utility. For example, of 25 papers in a recent conference on practical software development environments [He881, only two relatively speculative papers [Le88, Re88) even mentioned verification. Another measure of the distance between formal verification and practice is the Gypsy Programming Support Environment [Co88], named by practical workers who were evidently unaware of the Gypsy Verification Environment [Go861! Many workers who remain in the field concentrate on verifying only the most crucial properties of software, notably security in the U.S.A. [Ch81, Go86, vH88, Sc891, where sights axe often lowered by checking only specifications, not programs. This work is not likely to catch on in the broader software community. Worse, software engineering education, at least in the U.S.A., discourages students from formal methods [Gr90]. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for Proceedings of the ACM SIGSOFT International Workshop on Formal Methods in Software Developdirect commercial advantage, the ACM copyright notice and the ment. Napa, California, May 9-11, 1990. title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. @ 1990 ACM 089791-4155/90/0010-0025...$1.50","PeriodicalId":429108,"journal":{"name":"Formal Methods in Software Development","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117337697","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Formal methods in transformational derivation of programs 程序转换派生中的形式化方法
Pub Date : 1990-04-01 DOI: 10.1145/99569.99828
U. Reddy
Transformational derivation is the formal derivation of programs using the paradigm of program transformation. We discuss how formal methods of reasoning are used in this methodology. It is argued that formal methods, including induction, are essential for achieving common transformational objectives. Our discussion is in the context of the Focus system, an automated assistant to support program derivation using this paradigm. We illustrate how Focus provides support for rule management, rewriting, inductive reasoning and other formal activities, leaving the programmer free to explore high level design aspects.
转换派生是利用程序转换范式对程序进行形式化的派生。我们将讨论在这种方法论中如何使用形式化的推理方法。有人认为,包括归纳法在内的正式方法对于实现共同的转型目标是必不可少的。我们的讨论是在Focus系统的上下文中进行的,Focus系统是使用该范例支持程序派生的自动化助手。我们将说明Focus如何为规则管理、重写、归纳推理和其他正式活动提供支持,从而使程序员可以自由地探索高级设计方面。
{"title":"Formal methods in transformational derivation of programs","authors":"U. Reddy","doi":"10.1145/99569.99828","DOIUrl":"https://doi.org/10.1145/99569.99828","url":null,"abstract":"Transformational derivation is the formal derivation of programs using the paradigm of program transformation. We discuss how formal methods of reasoning are used in this methodology. It is argued that formal methods, including induction, are essential for achieving common transformational objectives. Our discussion is in the context of the Focus system, an automated assistant to support program derivation using this paradigm. We illustrate how Focus provides support for rule management, rewriting, inductive reasoning and other formal activities, leaving the programmer free to explore high level design aspects.","PeriodicalId":429108,"journal":{"name":"Formal Methods in Software Development","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126261285","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
Application of formal methods to system and software specification 将形式化方法应用于系统和软件规格说明
Pub Date : 1990-04-01 DOI: 10.1145/99569.99837
W. Wood
This position paper describes our efforts to apply formal, methods to the specification of complex systems and the overlap of these efforts with the topics of the workshop. The introduction describes why we are interested in using formal methods, and it is followed by short descriptions of the individual tasks with which we are currently involved. The conclusion relates these tasks to the workshop topics.
这份立场文件描述了我们将正式方法应用于复杂系统规范的努力,以及这些努力与研讨会主题的重叠。引言描述了我们对使用形式化方法感兴趣的原因,随后是对我们目前所涉及的单个任务的简短描述。结论部分将这些任务与研讨会主题联系起来。
{"title":"Application of formal methods to system and software specification","authors":"W. Wood","doi":"10.1145/99569.99837","DOIUrl":"https://doi.org/10.1145/99569.99837","url":null,"abstract":"This position paper describes our efforts to apply formal, methods to the specification of complex systems and the overlap of these efforts with the topics of the workshop. The introduction describes why we are interested in using formal methods, and it is followed by short descriptions of the individual tasks with which we are currently involved. The conclusion relates these tasks to the workshop topics.","PeriodicalId":429108,"journal":{"name":"Formal Methods in Software Development","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126145598","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Formal methods in mathematics 数学中的形式方法
Pub Date : 1990-04-01 DOI: 10.1145/99569.99827
R. Platek
Formal methods in computer science seems to have begun with the observation of people like John McCarthy that programming languages usually lack a precise mathematical semantics and that the latter was necessary in order to even pose important questions like compiler correctness. The fact that people appear to perform meaningfully computations using these languages does not guarantee their well definedness. An episode from the history of mathematics provides a useful comparison. The first modern advance in European mathematics over the ancients and the work of Islamic scholars was the discovery of a formula for the solution of the general cubic (degree 3) and quartic (degree 4) algebraic equations in the sixteenth century. This appears to be the first new discovery in mathematics to be found in Europe in over a millenia! The general solution of the quadratic equation (degree 2) which we all learn in high school goes back to the Babylonians several thousands of
计算机科学中的形式化方法似乎是从John McCarthy等人的观察中开始的,他们发现编程语言通常缺乏精确的数学语义,而后者对于提出诸如编译器正确性之类的重要问题是必要的。人们似乎在使用这些语言执行有意义的计算,但这并不能保证它们的良好定义。数学史上的一段插曲提供了一个有用的比较。欧洲数学超越古人和伊斯兰学者的第一个现代进步,是在16世纪发现了一般三次(3次)和四次(4次)代数方程的解公式。这似乎是一千多年来在欧洲发现的第一个数学新发现!二次方程(2次)的通解我们都在高中学过可以追溯到几千年前的巴比伦人
{"title":"Formal methods in mathematics","authors":"R. Platek","doi":"10.1145/99569.99827","DOIUrl":"https://doi.org/10.1145/99569.99827","url":null,"abstract":"Formal methods in computer science seems to have begun with the observation of people like John McCarthy that programming languages usually lack a precise mathematical semantics and that the latter was necessary in order to even pose important questions like compiler correctness. The fact that people appear to perform meaningfully computations using these languages does not guarantee their well definedness. An episode from the history of mathematics provides a useful comparison. The first modern advance in European mathematics over the ancients and the work of Islamic scholars was the discovery of a formula for the solution of the general cubic (degree 3) and quartic (degree 4) algebraic equations in the sixteenth century. This appears to be the first new discovery in mathematics to be found in Europe in over a millenia! The general solution of the quadratic equation (degree 2) which we all learn in high school goes back to the Babylonians several thousands of","PeriodicalId":429108,"journal":{"name":"Formal Methods in Software Development","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128814080","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Formal manipulation of modular software systems 模块化软件系统的正式操作
Pub Date : 1990-04-01 DOI: 10.1145/99569.99825
R. Nord, Peter Lee, W. Scherlis
We present a formally based method for systematically integrating software components. This is accomplished through the adjustment and mediation of abstract systems interfaces and their underlying data representations. The method provides the software designer with the ability to delay or revise design decisions in cases when it is difficult to reach an a priori agreement on interfaces and/or data representations. A moderate-scale example, drawn from the development of a simple interactive text editor, is provided to demonstrate the application of these techniques. The text buffer in an editor must support a va.riety of operations. These fall into groups determined by the most natural and efficient data representations that support the individual operations. Ve demonstrate how such data representations can be combined using formal program manipulation methods to obtain an efhcient composite representation that supports all of the operations. This approach can provide meaningful support for later adaptation. Should a new editor operation be added at a later time, the initial representations can be reused to support another combination step that obta.ins a new composite represent&ion t1ia.t works for all of the operations including the new one. This research was supported in part by the OIlice of Naval Research under contract N00014-84-K-0415 and in part by the Defense Advanced Research Projects Agency (DOD), ARPA Order No. 5404, monitored by the Ofice of Naval Research under the same contract. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the oflicial policies, eitlvx expressed or implied, of DARPA or the U.S. Government. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. @ 1990 ACM 089791-415.5/90/0010-0090.,.$1.50
提出了一种基于形式化的软件组件系统集成方法。这是通过调整和中介抽象系统接口及其底层数据表示来实现的。当难以在接口和/或数据表示上达成先验协议时,该方法为软件设计者提供了延迟或修改设计决策的能力。从一个简单的交互式文本编辑器的开发中提取了一个中等规模的示例,以演示这些技术的应用。编辑器中的文本缓冲区必须支持各种操作。它们分为几组,这些组由支持单个操作的最自然、最有效的数据表示确定。我将演示如何使用正式的程序操作方法将这些数据表示组合起来,以获得支持所有操作的有效组合表示。这种方法可以为以后的适应提供有意义的支持。如果稍后添加新的编辑器操作,则可以重用初始表示来支持另一个需要执行的组合步骤。在一个新的复合表示中。T适用于包括新操作在内的所有操作。该研究部分由海军研究办公室根据合同N00014-84-K-0415提供支持,部分由国防高级研究计划局(DOD)根据ARPA第5404号订单提供支持,由海军研究办公室根据同一合同进行监督。本文件中包含的观点和结论是作者的观点和结论,不应被解释为代表DARPA或美国政府的官方政策,无论是明示的还是暗示的。允许免费复制本材料的全部或部分,前提是这些副本不是为了直接的商业利益而制作或分发的,必须出现ACM版权声明、出版物的标题和日期,并注明复制是由计算机协会许可的。以其他方式复制或重新发布需要付费和/或特定许可。@ 1990 acm 089791-415.5/90/0010-0090.,. 1.50美元
{"title":"Formal manipulation of modular software systems","authors":"R. Nord, Peter Lee, W. Scherlis","doi":"10.1145/99569.99825","DOIUrl":"https://doi.org/10.1145/99569.99825","url":null,"abstract":"We present a formally based method for systematically integrating software components. This is accomplished through the adjustment and mediation of abstract systems interfaces and their underlying data representations. The method provides the software designer with the ability to delay or revise design decisions in cases when it is difficult to reach an a priori agreement on interfaces and/or data representations. A moderate-scale example, drawn from the development of a simple interactive text editor, is provided to demonstrate the application of these techniques. The text buffer in an editor must support a va.riety of operations. These fall into groups determined by the most natural and efficient data representations that support the individual operations. Ve demonstrate how such data representations can be combined using formal program manipulation methods to obtain an efhcient composite representation that supports all of the operations. This approach can provide meaningful support for later adaptation. Should a new editor operation be added at a later time, the initial representations can be reused to support another combination step that obta.ins a new composite represent&ion t1ia.t works for all of the operations including the new one. This research was supported in part by the OIlice of Naval Research under contract N00014-84-K-0415 and in part by the Defense Advanced Research Projects Agency (DOD), ARPA Order No. 5404, monitored by the Ofice of Naval Research under the same contract. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the oflicial policies, eitlvx expressed or implied, of DARPA or the U.S. Government. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. @ 1990 ACM 089791-415.5/90/0010-0090.,.$1.50","PeriodicalId":429108,"journal":{"name":"Formal Methods in Software Development","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121619189","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
The algebraic specification language LOTOS: an industrial experience 代数规范语言LOTOS:一种工业经验
Pub Date : 1990-04-01 DOI: 10.1145/99569.99817
L. Logrippo, T. Melanchuk, Robert J. Du Wors
The IS0 specification language LOTOS is presented, together with the results of a project involving the evaluation of its usefulness in an industrial environment. LOTOS is a mixture of concepts taken from CC’S and CSP, along with an algebraic abstract data type formalism. The language was used by Gandalf to develop a formal specification of an existing protocol, part of a distributed data PBX. The effort concentrated on the specification of two aspects of the protocol: the top level system architecture, and the call management phase. It is shown how the unique features of LOTOS were found to be useful for expressing these aspects. The results of the project were positive, and further use of LOTOS is planned within Gandalf.
介绍了IS0规范语言LOTOS,以及一个项目的结果,该项目涉及评估其在工业环境中的有用性。LOTOS混合了CC’s和CSP的概念,以及代数抽象数据类型的形式化。该语言被Gandalf用于开发现有协议的正式规范,该协议是分布式数据PBX的一部分。工作集中在协议的两个方面的规范上:顶级系统架构和调用管理阶段。它展示了如何发现LOTOS的独特特性对表达这些方面很有用。项目的结果是积极的,并且计划在Gandalf中进一步使用LOTOS。
{"title":"The algebraic specification language LOTOS: an industrial experience","authors":"L. Logrippo, T. Melanchuk, Robert J. Du Wors","doi":"10.1145/99569.99817","DOIUrl":"https://doi.org/10.1145/99569.99817","url":null,"abstract":"The IS0 specification language LOTOS is presented, together with the results of a project involving the evaluation of its usefulness in an industrial environment. LOTOS is a mixture of concepts taken from CC’S and CSP, along with an algebraic abstract data type formalism. The language was used by Gandalf to develop a formal specification of an existing protocol, part of a distributed data PBX. The effort concentrated on the specification of two aspects of the protocol: the top level system architecture, and the call management phase. It is shown how the unique features of LOTOS were found to be useful for expressing these aspects. The results of the project were positive, and further use of LOTOS is planned within Gandalf.","PeriodicalId":429108,"journal":{"name":"Formal Methods in Software Development","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134485969","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
The role of formal reusable frameworks 正式可重用框架的角色
Pub Date : 1990-04-01 DOI: 10.1145/99569.99812
D. Garlan
We use our experience in applying formal methods to large-scale industrial problems to argue (a) the practical importance of developing formal reusable frameworks, and (b) th e need for further research into techniques for defining and instantiating these frameworks. 1 The Value of Formal Frameworks Success in introducing formal methods into industry depends on making those methods cost-effective in the overall context of industrial software engineering practice. In the past, efforts to do this have largely focused on the problem of refi,nemeni: given a formal specification of a system, how does one construct an implementation that is correct with respect to that specification [4, 3, 71. While the use of formal refinement leads to software with many desirable properties, this application of formal techniques has not found widespread industrial use in the United States except perhaps in the areas of securityand safety-critical systems, which naturally place a high premium on correctness. In this paper we argue the need for attention to the inverse problem of abstrachon: within a given domain how does one construct formal models that can serve as reusable frameworks for a wide variety of products. While abstraction and refinement are clearly two sides of the same coin, we have found that a focus on the former can lead to highly effective use of formal methods in practical industrial software development. First, when a single specification can serve a number of distinct products, the cost of developing the framework can be amortized over those products. Second, the development of different products from the Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. @ 1990 ACM 089791-4155/90/0010-0042...$1.50 same framework can lead to a desirable uniformity across those products. Third? in many cases the reusable framework can be implemented by corresponding reusable software components. Fourth, the requirement of producing a specification that acts as a framework for several products forces the developers of that specification to strive for particularly elegant abstractions. This in turn can lead to much cleaner definitions of the fundamental concepts behind an application. Fifth, since reusing an existing framework is considerably easier than specifying it in the first place, in many cases the job of constructing the framework can be allotted to a small team of highly skilled engineers. This addresses the very real problem in industry that currently all too few software engineers are capable of producing good specifictions. Finally, at a much grander level, we can hope that by concentrating on higher-lev
我们利用我们将形式化方法应用于大规模工业问题的经验来论证(a)开发形式化可重用框架的实际重要性,以及(b)需要进一步研究定义和实例化这些框架的技术。将形式化方法引入工业的成功取决于使这些方法在工业软件工程实践的整体环境中具有成本效益。在过去,这样做的努力主要集中在refi,nemeni问题上:给定系统的正式规范,如何构建一个相对于该规范是正确的实现[4,3,71]。虽然使用形式化细化导致软件具有许多理想的属性,但这种形式化技术的应用在美国并没有广泛的工业用途,除了安全和安全关键系统领域,这些领域自然对正确性给予了高度的重视。在本文中,我们认为有必要关注抽象的逆向问题:在给定的领域内,如何构建可以作为各种产品可重用框架的正式模型。虽然抽象和细化显然是同一枚硬币的两面,但我们已经发现,关注前者可以在实际的工业软件开发中高效地使用形式化方法。首先,当单个规范可以服务于许多不同的产品时,开发框架的成本可以分摊到这些产品上。第二,允许免费复制本材料的全部或部分,前提是这些复制不是为了直接的商业利益而制作或分发的,必须有ACM版权声明、出版物的标题和出版日期,并注明复制是由计算机协会许可的。以其他方式复制或重新发布需要付费和/或特定许可。相同的框架可以在这些产品之间实现理想的均匀性。第三个吗?在许多情况下,可重用框架可以通过相应的可重用软件组件来实现。第四,生成作为多个产品框架的规范的需求迫使该规范的开发人员努力实现特别优雅的抽象。这反过来又可以使应用程序背后的基本概念的定义更加清晰。第五,由于重用现有框架比首先指定它要容易得多,因此在许多情况下,构建框架的工作可以分配给一个由高技能工程师组成的小团队。这解决了行业中一个非常现实的问题,即目前很少有软件工程师能够生成好的规格说明。最后,在更大的层面上,我们希望通过关注更高级的框架,我们可能有一天拥有正式指定的软件架构库,这些架构库构成了每个软件工程师的基本设计曲目。为了说明其中一个框架,考虑定义一个简单的电子计数器/计时器(测量电子信号的频率或周期)的问题。在其最抽象的形式中,这样的仪器可以被视为一个数学函数,可以应用于一个信号来产生一个测量。为这类工具定义框架的问题是使这些功能在智力上(和实际上)可管理。我们的方法是开发一个框架,在这个框架中,仪器被定义为简单功能的组合,每个组件功能描述仪器整体功能的某些部分。考虑到用户配置仪器的能力,我们将这些组件视为高阶函数。高阶函数的使用捕获了ACM SIGSOFT软件开发形式化方法国际研讨会的两个会议记录。1990年5月9日至11日,加州纳帕。用户对配置仪器的直觉,以及当前实现的实际操作行为。用户通常设置输入参数,然后实时重复应用结果函数来产生一系列测量结果。图1说明了计数器/计时器的这种分解。更正式地说,我们可以使用Z规范语言[1]通过为每个组件定义一个高阶函数来对这个体系结构建模。例如,Couple函数定义如下:Coupling::= Direct 1 Filter Couple: Coupling + Signal -+ Signal Couple Direct s = s Couple Filter s = X t l s(t) h(s)用户提供的Coupling参数决定了信号是不加改变地通过还是将其直流偏置从信号中滤除。 给定该形参的值,Couple生成一个新函数,将一个Signal映射到另一个Signal。以类似的方式,我们可以定义仪器的其他功能部件。(该规范的完整描述见[5]。)例如,组件DeiectCrossings定义如下:Slope::= POS 1 NEG Level == Volts DetectCrossings: Level x Slope 4 Signal
{"title":"The role of formal reusable frameworks","authors":"D. Garlan","doi":"10.1145/99569.99812","DOIUrl":"https://doi.org/10.1145/99569.99812","url":null,"abstract":"We use our experience in applying formal methods to large-scale industrial problems to argue (a) the practical importance of developing formal reusable frameworks, and (b) th e need for further research into techniques for defining and instantiating these frameworks. 1 The Value of Formal Frameworks Success in introducing formal methods into industry depends on making those methods cost-effective in the overall context of industrial software engineering practice. In the past, efforts to do this have largely focused on the problem of refi,nemeni: given a formal specification of a system, how does one construct an implementation that is correct with respect to that specification [4, 3, 71. While the use of formal refinement leads to software with many desirable properties, this application of formal techniques has not found widespread industrial use in the United States except perhaps in the areas of securityand safety-critical systems, which naturally place a high premium on correctness. In this paper we argue the need for attention to the inverse problem of abstrachon: within a given domain how does one construct formal models that can serve as reusable frameworks for a wide variety of products. While abstraction and refinement are clearly two sides of the same coin, we have found that a focus on the former can lead to highly effective use of formal methods in practical industrial software development. First, when a single specification can serve a number of distinct products, the cost of developing the framework can be amortized over those products. Second, the development of different products from the Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. @ 1990 ACM 089791-4155/90/0010-0042...$1.50 same framework can lead to a desirable uniformity across those products. Third? in many cases the reusable framework can be implemented by corresponding reusable software components. Fourth, the requirement of producing a specification that acts as a framework for several products forces the developers of that specification to strive for particularly elegant abstractions. This in turn can lead to much cleaner definitions of the fundamental concepts behind an application. Fifth, since reusing an existing framework is considerably easier than specifying it in the first place, in many cases the job of constructing the framework can be allotted to a small team of highly skilled engineers. This addresses the very real problem in industry that currently all too few software engineers are capable of producing good specifictions. Finally, at a much grander level, we can hope that by concentrating on higher-lev","PeriodicalId":429108,"journal":{"name":"Formal Methods in Software Development","volume":"T163 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125669268","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 19
Structured analysis—formal design, using stream and object oriented formal specifications 结构化分析——正式设计,使用流和面向对象的正式规范
Pub Date : 1990-04-01 DOI: 10.1145/99569.99830
H. Toetenel, J. Katwijk, N. Plat
Keyphruses: (i) the role of rigorous software specification and design with the Vienna Development Method within the SA / SD traject of software development, (ii) extension of VDM-SL, (the VDM Specification Language) by means of a object otiozted structuring mechanism, together with stream oriented properties, to enable stream and object oriented specification. Relation to Workshop Topics of Interest: the research addresses a specific role for formal methods in large-scale software development and the (mechanized) support for this role for formal methods in particular.
关键词:(i)严格的软件规范和维也纳开发方法在软件开发SA / SD目标中的作用,(ii)通过对象结构化机制和面向流的属性扩展VDM- sl (VDM规范语言),以实现流和面向对象的规范。与研讨会感兴趣的主题的关系:该研究讨论了正式方法在大规模软件开发中的特定作用,以及对正式方法的这种作用的(机械化的)支持。
{"title":"Structured analysis—formal design, using stream and object oriented formal specifications","authors":"H. Toetenel, J. Katwijk, N. Plat","doi":"10.1145/99569.99830","DOIUrl":"https://doi.org/10.1145/99569.99830","url":null,"abstract":"Keyphruses: (i) the role of rigorous software specification and design with the Vienna Development Method within the SA / SD traject of software development, (ii) extension of VDM-SL, (the VDM Specification Language) by means of a object otiozted structuring mechanism, together with stream oriented properties, to enable stream and object oriented specification. Relation to Workshop Topics of Interest: the research addresses a specific role for formal methods in large-scale software development and the (mechanized) support for this role for formal methods in particular.","PeriodicalId":429108,"journal":{"name":"Formal Methods in Software Development","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1990-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126424737","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
期刊
Formal Methods in Software Development
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1