在合并规范演进时检测干扰

M. Feather
{"title":"在合并规范演进时检测干扰","authors":"M. Feather","doi":"10.1145/75199.75226","DOIUrl":null,"url":null,"abstract":"We have been studying a model of software specification design which begins with a trivially simple specification, incrementally elaborates it in a number of parallel “lines” of design, and merges the specifications that result from each of those divergent lines to achieve the fully detailed specification. We employ “evolutionary” transformations that is, transformations whose very purpose is to change meaning to perform the elaborations in the design lines, and thereafter achieve merging by replaying the transformations in a serial order. Merging does not always proceed smoothly: on occasions the different lines of design interfere with one another in some manner, inhibiting the serial replay of their evolutionary transformations. We show that by comparing how the transformations change specification properties (herein we consider the properties of terminology and usage), certain kinds of interference can be detected, and in some cases means to deal with it suggested. L Specification evolution via transformation While traditionally the software design process has started with a specification and worked towards an implementation, we have come to believe that the construction of the starting specification is also an important and complex design process. We have studied a process in which specification construction is incremental the specification is gradualiy evolved from a trivially simple starting point by means of a series of evolutionary steps. We have built mechanisms for performing these via “evolutionary transformations”, akin to the transformations of conventional program transformation work, except they deliberately change the meaning of the specifications to which they are applied. In contrast, conventional transformations generally keep the meaning of the specification constant (so called “correctness-preserving”) while improving efficiency (sometimes they “shrink” the meaning, i.e., when the initial specification admits to alternative implementations, the transformations may be 01969 ACM 0-69791~305-1/69/0500/0169$00.75 allowed to select from among those, but in any event they never introduce new possibilities). Similar research has been done in the area of modifications to type lattices and database schemes: in (21 a classification of possible changes to a type lattice is given, and used to suggest means for adapting existing data and operations on that data accordingly. Similar changes are considered in [lo], where the focus is on constructing methods to handle clashes between objects and programs created under different versions of the type lattice. Recently in (61 it is argued that several machine learning techniques can help in the task of making these same kinds of modifications to databases. 1.1 Parallel lines of design We found that different evolution steps are often independent, or nearly so. This prompted us to apply those steps in parallel, giving rise to several different lines of design. The specifications that result from each line of design must thereafter be merged. Since the different specifications have been obtained by applying series of evolutionary transformations, we obtain the merge of those specifications by applying the same transformations in series. A more complete description of the overall approach may be found in [4]. The aspect that is of interest here is the desire to pursue separate lines of design independently, and thereafter merge their results. The ability to do this would have several beneficial characteristics: l separation of concerns: the details introduced by one evolution can be ignored while conducting another evolution, l distributed development: several people may independently evolve the same initial specification in different ways, and thereafter have their versions merged, and l explicit combination: when the different lines of design are not completely independent, this will be recognized and dealt with explicitly at the time of merging. 12 Other work on meraine; L--_ Previous work toward merging has addressed the merging of programs expressed in simplified languages, and concentrated","PeriodicalId":435917,"journal":{"name":"International Workshop on Software Specification and Design","volume":"38 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1989-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"37","resultStr":"{\"title\":\"Detecting interference when merging specification evolutions\",\"authors\":\"M. Feather\",\"doi\":\"10.1145/75199.75226\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We have been studying a model of software specification design which begins with a trivially simple specification, incrementally elaborates it in a number of parallel “lines” of design, and merges the specifications that result from each of those divergent lines to achieve the fully detailed specification. We employ “evolutionary” transformations that is, transformations whose very purpose is to change meaning to perform the elaborations in the design lines, and thereafter achieve merging by replaying the transformations in a serial order. Merging does not always proceed smoothly: on occasions the different lines of design interfere with one another in some manner, inhibiting the serial replay of their evolutionary transformations. We show that by comparing how the transformations change specification properties (herein we consider the properties of terminology and usage), certain kinds of interference can be detected, and in some cases means to deal with it suggested. L Specification evolution via transformation While traditionally the software design process has started with a specification and worked towards an implementation, we have come to believe that the construction of the starting specification is also an important and complex design process. We have studied a process in which specification construction is incremental the specification is gradualiy evolved from a trivially simple starting point by means of a series of evolutionary steps. We have built mechanisms for performing these via “evolutionary transformations”, akin to the transformations of conventional program transformation work, except they deliberately change the meaning of the specifications to which they are applied. In contrast, conventional transformations generally keep the meaning of the specification constant (so called “correctness-preserving”) while improving efficiency (sometimes they “shrink” the meaning, i.e., when the initial specification admits to alternative implementations, the transformations may be 01969 ACM 0-69791~305-1/69/0500/0169$00.75 allowed to select from among those, but in any event they never introduce new possibilities). Similar research has been done in the area of modifications to type lattices and database schemes: in (21 a classification of possible changes to a type lattice is given, and used to suggest means for adapting existing data and operations on that data accordingly. Similar changes are considered in [lo], where the focus is on constructing methods to handle clashes between objects and programs created under different versions of the type lattice. Recently in (61 it is argued that several machine learning techniques can help in the task of making these same kinds of modifications to databases. 1.1 Parallel lines of design We found that different evolution steps are often independent, or nearly so. This prompted us to apply those steps in parallel, giving rise to several different lines of design. The specifications that result from each line of design must thereafter be merged. Since the different specifications have been obtained by applying series of evolutionary transformations, we obtain the merge of those specifications by applying the same transformations in series. A more complete description of the overall approach may be found in [4]. The aspect that is of interest here is the desire to pursue separate lines of design independently, and thereafter merge their results. The ability to do this would have several beneficial characteristics: l separation of concerns: the details introduced by one evolution can be ignored while conducting another evolution, l distributed development: several people may independently evolve the same initial specification in different ways, and thereafter have their versions merged, and l explicit combination: when the different lines of design are not completely independent, this will be recognized and dealt with explicitly at the time of merging. 12 Other work on meraine; L--_ Previous work toward merging has addressed the merging of programs expressed in simplified languages, and concentrated\",\"PeriodicalId\":435917,\"journal\":{\"name\":\"International Workshop on Software Specification and Design\",\"volume\":\"38 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1989-04-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"37\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"International Workshop on Software Specification and Design\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/75199.75226\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Workshop on Software Specification and Design","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/75199.75226","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 37

摘要

我们一直在研究一个软件规范设计模型,它从一个非常简单的规范开始,在许多平行的设计“线”中逐步详细阐述它,并合并从这些不同的线产生的规范,以实现完全详细的规范。我们使用“进化的”转换,也就是说,转换的真正目的是改变意义,以执行设计线中的细化,然后通过按顺序重放转换来实现合并。合并并不总是顺利进行的:有时不同的设计线会以某种方式相互干扰,从而抑制了它们进化转换的连续重放。我们表明,通过比较转换如何改变规范属性(这里我们考虑术语和用法的属性),可以检测到某些类型的干扰,并在某些情况下建议处理它的方法。虽然传统的软件设计过程是从一个规范开始的,并朝着实现努力,但我们已经开始相信,开始规范的构建也是一个重要而复杂的设计过程。我们已经研究了一个过程,在这个过程中,规范的构建是增量的,规范是通过一系列的进化步骤从一个非常简单的起点逐渐进化而来的。我们已经建立了通过“进化转换”来执行这些的机制,类似于传统程序转换工作的转换,除了它们有意地改变了它们所应用的规范的含义。相比之下,传统的转换通常在提高效率的同时保持规范的含义不变(所谓的“保持正确性”)(有时它们“缩小”含义,即,当初始规范允许替代实现时,转换可能是01969 ACM 0-69791~305-1/69/0500/0169$00.75,允许从中选择,但在任何情况下,它们都不会引入新的可能性)。在修改类型格和数据库方案方面也进行了类似的研究:第21章对类型格可能发生的变化进行了分类,并据此提出调整现有数据和对该数据进行相应操作的方法。在[lo]中也考虑了类似的变化,其重点是构建方法来处理在不同版本的类型格下创建的对象和程序之间的冲突。最近在(61)中,有人认为几种机器学习技术可以帮助完成对数据库进行相同类型修改的任务。我们发现不同的进化步骤通常是独立的,或者几乎是独立的。这促使我们并行应用这些步骤,从而产生几种不同的设计路线。从每条设计线路产生的规范必须随后合并。由于不同的规范是通过应用一系列演化转换获得的,因此我们通过应用一系列相同的转换来获得这些规范的合并。在[4]中可以找到对整个方法更完整的描述。这里感兴趣的方面是希望独立地追求单独的设计线,然后合并它们的结果。这样做的能力将有几个有益的特征:关注点分离:一个演进引入的细节可以在进行另一个演进时被忽略;l分布式开发:几个人可能以不同的方式独立地演进相同的初始规范,然后将他们的版本合并,以及l显式的组合;当不同的设计线不是完全独立时,这将在合并时被识别并明确地处理。12 .其他有关盐碱的工作;L- _以前的合并工作已经解决了用简化语言表达的程序的合并,并且集中了
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Detecting interference when merging specification evolutions
We have been studying a model of software specification design which begins with a trivially simple specification, incrementally elaborates it in a number of parallel “lines” of design, and merges the specifications that result from each of those divergent lines to achieve the fully detailed specification. We employ “evolutionary” transformations that is, transformations whose very purpose is to change meaning to perform the elaborations in the design lines, and thereafter achieve merging by replaying the transformations in a serial order. Merging does not always proceed smoothly: on occasions the different lines of design interfere with one another in some manner, inhibiting the serial replay of their evolutionary transformations. We show that by comparing how the transformations change specification properties (herein we consider the properties of terminology and usage), certain kinds of interference can be detected, and in some cases means to deal with it suggested. L Specification evolution via transformation While traditionally the software design process has started with a specification and worked towards an implementation, we have come to believe that the construction of the starting specification is also an important and complex design process. We have studied a process in which specification construction is incremental the specification is gradualiy evolved from a trivially simple starting point by means of a series of evolutionary steps. We have built mechanisms for performing these via “evolutionary transformations”, akin to the transformations of conventional program transformation work, except they deliberately change the meaning of the specifications to which they are applied. In contrast, conventional transformations generally keep the meaning of the specification constant (so called “correctness-preserving”) while improving efficiency (sometimes they “shrink” the meaning, i.e., when the initial specification admits to alternative implementations, the transformations may be 01969 ACM 0-69791~305-1/69/0500/0169$00.75 allowed to select from among those, but in any event they never introduce new possibilities). Similar research has been done in the area of modifications to type lattices and database schemes: in (21 a classification of possible changes to a type lattice is given, and used to suggest means for adapting existing data and operations on that data accordingly. Similar changes are considered in [lo], where the focus is on constructing methods to handle clashes between objects and programs created under different versions of the type lattice. Recently in (61 it is argued that several machine learning techniques can help in the task of making these same kinds of modifications to databases. 1.1 Parallel lines of design We found that different evolution steps are often independent, or nearly so. This prompted us to apply those steps in parallel, giving rise to several different lines of design. The specifications that result from each line of design must thereafter be merged. Since the different specifications have been obtained by applying series of evolutionary transformations, we obtain the merge of those specifications by applying the same transformations in series. A more complete description of the overall approach may be found in [4]. The aspect that is of interest here is the desire to pursue separate lines of design independently, and thereafter merge their results. The ability to do this would have several beneficial characteristics: l separation of concerns: the details introduced by one evolution can be ignored while conducting another evolution, l distributed development: several people may independently evolve the same initial specification in different ways, and thereafter have their versions merged, and l explicit combination: when the different lines of design are not completely independent, this will be recognized and dealt with explicitly at the time of merging. 12 Other work on meraine; L--_ Previous work toward merging has addressed the merging of programs expressed in simplified languages, and concentrated
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Message from the Chairs TRMCS in TCOZ Feature Engineering Formalizing System Structure Concern-driven design for a specification language supporting component-based software engineerin
×
引用
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