Supporting Coordination and Cooperation in Software Processes

N. Minsky
{"title":"Supporting Coordination and Cooperation in Software Processes","authors":"N. Minsky","doi":"10.1109/ISPW.1990.659592","DOIUrl":null,"url":null,"abstract":"Last year in this fom I have argued that in any attempt to formalize and enact software processes it is important to distinguish between what I called methods and laws. A method is a voluntary technique for performing a certain task, while a law is a mandatory regulation about the behavior of the entire process. I have also argued that laws are more fundamental than methods, for software development. That is, because the formulation and enactment of methods invariably relies on certain assumptions about the structure of the system at hand, and about the behavior of the various agents participating in the software process. Such assumptions can only be ensured by means of enforced laws. Here I will focus on one type of applications for such laws, which is the support of the great deal of coordination and cooperation which must take place among the participants of any complex software process. Let me illustrate the problem at hand by means of a very simple example. Suppose that we would like to ensure mutual exclusion with respect to a certain operation 0, which may be carried out by any of the agents participating in a given process. Consider the following informally specified protocol: (1) only an agent that possesses a certain token T may perform the operation 0; (2) initially only one agent possesses a token T; and, (3) token T may be transferred from one agent to another, but no agent may make its own copy of T. It is easy to see that this simple protocol guarantees mutual exclusion with respect to operation 0 (ignoring issues of faimess) but how does one make sure that the protocol itself is actually obeyed by all the agents? In particular, how does one make sure that no agent ever makes an extra copy of the token, and that no agent ever performs 0 without possessing this token?","PeriodicalId":269394,"journal":{"name":"'Support for the Software Process'.,Proceedings of the 6th International Software Process Workshop","volume":"82 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1990-10-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"'Support for the Software Process'.,Proceedings of the 6th International Software Process Workshop","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISPW.1990.659592","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Last year in this fom I have argued that in any attempt to formalize and enact software processes it is important to distinguish between what I called methods and laws. A method is a voluntary technique for performing a certain task, while a law is a mandatory regulation about the behavior of the entire process. I have also argued that laws are more fundamental than methods, for software development. That is, because the formulation and enactment of methods invariably relies on certain assumptions about the structure of the system at hand, and about the behavior of the various agents participating in the software process. Such assumptions can only be ensured by means of enforced laws. Here I will focus on one type of applications for such laws, which is the support of the great deal of coordination and cooperation which must take place among the participants of any complex software process. Let me illustrate the problem at hand by means of a very simple example. Suppose that we would like to ensure mutual exclusion with respect to a certain operation 0, which may be carried out by any of the agents participating in a given process. Consider the following informally specified protocol: (1) only an agent that possesses a certain token T may perform the operation 0; (2) initially only one agent possesses a token T; and, (3) token T may be transferred from one agent to another, but no agent may make its own copy of T. It is easy to see that this simple protocol guarantees mutual exclusion with respect to operation 0 (ignoring issues of faimess) but how does one make sure that the protocol itself is actually obeyed by all the agents? In particular, how does one make sure that no agent ever makes an extra copy of the token, and that no agent ever performs 0 without possessing this token?
支持软件过程中的协调与合作
去年,在本专栏中,我论证了在任何形式化和制定软件过程的尝试中,区分我所说的方法和规律是很重要的。方法是执行某项任务的自愿技术,而法律是关于整个过程行为的强制性规定。我还认为,对于软件开发来说,法律比方法更重要。也就是说,因为方法的制定和制定总是依赖于关于手头系统结构的某些假设,以及关于参与软件过程的各种代理的行为。这种假设只有通过强制执行的法律才能得到保证。在这里,我将集中讨论这种规律的一种应用,即支持任何复杂软件过程的参与者之间必须进行的大量协调与合作。让我用一个非常简单的例子来说明眼前的问题。假设我们希望确保某一操作0的互斥性,该操作0可以由参与某一给定过程的任何代理执行。考虑以下非正式指定的协议:(1)只有拥有某种令牌T的代理才能执行操作0;(2)初始只有一个代理拥有令牌T;(3)令牌T可以从一个代理转移到另一个代理,但没有代理可以制作自己的T副本。很容易看出,这个简单的协议保证了操作0的互斥(忽略公平问题),但如何确保协议本身实际上被所有代理遵守?特别是,如何确保没有代理生成令牌的额外副本,以及没有代理在没有这个令牌的情况下执行0 ?
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信