首页 > 最新文献

International Workshop on Software Specification and Design最新文献

英文 中文
Data-flow design as a visual programming language 数据流设计作为一种可视化的编程语言
Pub Date : 1989-04-01 DOI: 10.1145/75199.75242
S. Eisenbach, Lee McLoughlin, C. Sadler
Data-flow design techniques and the functional programming style both decompose problems in a data-driven fashion. We propose a method based on data-flow diagrams which yields designs which can be mechanically translated into code written in a functional programming language. Users who specify or design systems with data-flow techniques can effectively execute their specifications or designs with a minimum of additional &sign decisions and without recourse to a programming language. Data-flow diagram elements behave as programming constructs in a “visual pmgramming” language. The paper solves a single problem to illustrate the methodology and show the kind of code produced. 1. A Functional Design Methodology The potential which a functional programming language has for producing programs capable of running on parallel hardware is beginning to be exploited by hardware designers looking to produce experimental parallel machines[l]. Ultimately these promise to turn into extremely fast, widely available computing engines on which many of the substantial processing tasks of the future will be performed. However most programmers would agree that a language like Hopc[2] imposes a “functional programming style” which may not very closely match the types of problems which they are trying to solve. The software crisis is happening in the commercial and industrial arcnas[3], not in research laboratories, and academics and rescarchcrs must be careful not to provide solutions to problems which pcople don’t actually have. What we thought was needed was a functional design methodology which decomposed typical problems in such a way that the functional programming style would suggest itself at the implementation stage. WC were attracted to the family of data driven design methodologies because there appear to be some similarities between the data driven design philosophy and the functional programming philosophy. A data driven design tcchniquc dccomposcs a problem into a network of processes linked by durujbws, this arrangement being represented pictorially as a “data-flow diagram”“, or more usually, a hierarchy of data-flow diagrams. In constructing these designs, no consideration is given to the flow of “control”. Likewise, functional programming languages are characterizcd by an absence of control-flow constructs dictated by the requirement for rcfcrcntial transparcncy[4]. Instead functions are invoked by the existence of their argumznfs (incoming flows) rather than by programmer initiation, and the evaluation model envisages the functional components of a program executing in parallel on a network of processors. A data-flow diagram can be thought of therefore as a circuit diagram for a configuration of processors built to execute the corresponding (functional) program. The problem is that a set of data-flow diagrams is an informal represenmtion of one particular aspect of a program’s design while the ultimate pmgram is formal at least in the sense that there
数据流设计技术和函数式编程风格都以数据驱动的方式分解问题。我们提出了一种基于数据流图的方法,该方法产生的设计可以机械地翻译成用函数式编程语言编写的代码。使用数据流技术指定或设计系统的用户可以有效地执行他们的规格或设计,而不需要使用编程语言。数据流图元素表现为“可视化编程”语言中的编程结构。本文解决了一个单独的问题来说明该方法并展示了生成的代码类型。1. 函数式编程语言在生成能够在并行硬件上运行的程序方面的潜力,正开始被硬件设计师用来开发实验性并行机器[1]。最终,它们有望变成速度极快、广泛可用的计算引擎,未来许多实质性的处理任务将在这些引擎上执行。然而,大多数程序员都同意,像Hopc[2]这样的语言强加了一种“函数式编程风格”,这可能与他们试图解决的问题类型不太匹配。软件危机发生在商业和工业领域[3],而不是在研究实验室,学者和研究人员必须小心,不要为人们实际上没有的问题提供解决方案。我们认为需要的是一种功能设计方法,这种方法可以分解典型的问题,从而使函数式编程风格在实现阶段脱颖而出。WC被数据驱动设计方法家族所吸引,因为数据驱动设计哲学和函数式编程哲学之间似乎有一些相似之处。数据驱动的设计技术将一个问题分解成一个由durujbws连接的过程网络,这种排列以图形方式表示为“数据流图”,或者更常见的是数据流图的层次结构。在构建这些设计时,没有考虑到“控制”的流程。同样地,函数式编程语言的特点是缺乏控制流结构,这是对精确透明性的要求[4]。相反,函数是通过它们的参数znfs(传入流)的存在而不是程序员初始化来调用的,并且评估模型设想了程序的功能组件在处理器网络上并行执行。因此,数据流图可以看作是为执行相应(功能性)程序而构建的处理器配置的电路图。问题是,一组数据流图是程序设计的一个特定方面的非正式表示,而最终的程序是正式的,至少在某种意义上,无论用什么语言编写,源代码中都不会有语义歧义。传统方法通过引入越来越精细的其他设计决策的表示来解决这个问题,例如,实体-关系。允许免费复制本文件的全部或部分内容,前提是这些副本不是为了直接商业利益而制作或分发的,必须出现ACM版权声明、出版物的标题和日期,并注明复制是由计算机协会授权进行的。以其他方式复制或重新发布,需要付费和/或特别许可。数据流设计作为一种可视化程序设计语言,北伦敦理工学院计算数学与统计系,伦敦霍洛威路。[78db]英国图或结构图[S]。最终,如果提供了足够的细节,就有可能将设计机械地转化为程序[6][7]。然而,必须为此付出的努力,以及引入错误的可能性,使得遵循这种方法实际上与实际编程难以区分,许多程序员更喜欢遵循自己的喜好,直接投入到代码中。如果目标语言是低级的,那么所需的细节就相应更多。相比之下。一种非常高级的语言应该满足设计者的要求,并且在设计过程中可以更早地过渡到代码。我们开始寻找过程编码可以在多早的时候开始。我们发现,一旦数据流图阶段完成,就必须指定它所标识的功能,并且必须定义流和存储中的数据结构。前者在伪代码中实现,后者在数据字典中实现。这些组合在一起提供了足够的信息来机械地生成代码,而无需任何进一步的设计和修改。为了获得自动代码生成的好处,必须放弃一些非正式性。 例如,我们发现有必要从设计的数据流部分消除对输入/输出操作的所有考虑。我们需要做进一步的理论工作,将数据流语义与编程结构更正式地联系起来,然后再判断非正式性的丧失有多重要。在本文中,我们省略了对我们的数据存储方法的讨论,该方法目前相当临时,等待Hope中实际数据的设施的发展。最后,在完善原型工具之前,我们还没有将我们的方法应用到广泛的问题中。2. 这里给出了一个有效的例子来说明设计技术的应用,并展示了如何机械地推导出Hope代码。问题是要以dd/mm/yyyy的形式读取(1800-2000)中的任何日期,并计算该日期发生(或将发生)的星期几。有一个简洁的算法可以解决这个问题@]。在指定范围内的任何年份中,1月1日的日期可由公式(4+Y+(Y+3)/4-(Y- 17ol /lOO+(Y-1601)/400+3)) MOD 7计算,其中Y为年份,星期日对应于0。1月1日之后的任何日期的天数都是通过蛮力计算的,将中间月份的天数和当前月份的日期相加。这不是一个复杂的问题,但它足够丰富,可以演示设计的不同方面,底层算法可以很好地说明函数式编程风格2.1。数据流设计设计从数据流图开始,数据流图显示程序在其中运行的外部输入和输出。整个程序被表示为单个进程(图1中的圆圈),输入数据从源(键盘)流入,输出数据流向接收(屏幕)。分解包括细化功能(过程),这些功能(过程)在图的层次结构中将输入转换为输出。所有流和流程都被命名。图表是在设计编辑器的帮助下构建的。在构造图时,应用简单的一致性检查来确保图集的完整性。281 - 1989 acm 0 -89791 -305-1/89/0500/0281$00.75
{"title":"Data-flow design as a visual programming language","authors":"S. Eisenbach, Lee McLoughlin, C. Sadler","doi":"10.1145/75199.75242","DOIUrl":"https://doi.org/10.1145/75199.75242","url":null,"abstract":"Data-flow design techniques and the functional programming style both decompose problems in a data-driven fashion. We propose a method based on data-flow diagrams which yields designs which can be mechanically translated into code written in a functional programming language. Users who specify or design systems with data-flow techniques can effectively execute their specifications or designs with a minimum of additional &sign decisions and without recourse to a programming language. Data-flow diagram elements behave as programming constructs in a “visual pmgramming” language. The paper solves a single problem to illustrate the methodology and show the kind of code produced. 1. A Functional Design Methodology The potential which a functional programming language has for producing programs capable of running on parallel hardware is beginning to be exploited by hardware designers looking to produce experimental parallel machines[l]. Ultimately these promise to turn into extremely fast, widely available computing engines on which many of the substantial processing tasks of the future will be performed. However most programmers would agree that a language like Hopc[2] imposes a “functional programming style” which may not very closely match the types of problems which they are trying to solve. The software crisis is happening in the commercial and industrial arcnas[3], not in research laboratories, and academics and rescarchcrs must be careful not to provide solutions to problems which pcople don’t actually have. What we thought was needed was a functional design methodology which decomposed typical problems in such a way that the functional programming style would suggest itself at the implementation stage. WC were attracted to the family of data driven design methodologies because there appear to be some similarities between the data driven design philosophy and the functional programming philosophy. A data driven design tcchniquc dccomposcs a problem into a network of processes linked by durujbws, this arrangement being represented pictorially as a “data-flow diagram”“, or more usually, a hierarchy of data-flow diagrams. In constructing these designs, no consideration is given to the flow of “control”. Likewise, functional programming languages are characterizcd by an absence of control-flow constructs dictated by the requirement for rcfcrcntial transparcncy[4]. Instead functions are invoked by the existence of their argumznfs (incoming flows) rather than by programmer initiation, and the evaluation model envisages the functional components of a program executing in parallel on a network of processors. A data-flow diagram can be thought of therefore as a circuit diagram for a configuration of processors built to execute the corresponding (functional) program. The problem is that a set of data-flow diagrams is an informal represenmtion of one particular aspect of a program’s design while the ultimate pmgram is formal at least in the sense that there","PeriodicalId":435917,"journal":{"name":"International Workshop on Software Specification and Design","volume":"68 5","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1989-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133237848","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
An operational semantics of real time design language RT-CDL 实时设计语言RT-CDL的操作语义
Pub Date : 1989-04-01 DOI: 10.1145/75199.75212
L. Y. Liu, R. Shyamasundar
Any methodology for the design of a complex system needs a basis for specification and verification. This is particularly so for realtime systems since safety and reliability ate extremely important for these systems. As a first step, we provide au operational semantics for the language RT-CDL (Real Time Common Design Language) employing Plotkin’s labeled transition systems using the maximal paraheliim model of Salwicki and Miildner. The language is based on the event-action model and is capable of (i) expressing various timing constraints, (ii) responding to various teal-time exceptions, and (iii) specifying, reasoning, verifying about programs in a compositional manner. We show how to model the behavior of non-buffered broadcasts, durational events, priority, interrupts, and preemptive commands through the semantics. Our approach is compositional and thus provides a firm basis for compositional specification and verification of pmgrams. 1. Motivation and Related Work One of the primary objectives of Ada has been the programmability of real-time embedded systems. However, the definition of Ada [3] allows a high-priority task to wait for a low-priority task for an unpredictable delay. Furthetmore. Ada lacks the power of hamessing the parallelism inherent in mal-time systems. For instance, in Ada, we caunot even interleave some of the operations that am possible in the monitor-based languages--which is a disadvantage at many times. The rendezvous mechanism places a lot of restriction with reference to realizing multiform clocks and harnessing parallelism. Another notable point is that even though the traditional description tools of industrial process control systems arc intrinsically parallel, it is paradoxical that the computerization of these systems results in the progressive replacement of these parallel tools by programming languages involving a great amount of sequential&y. There has been quite a substantial effort in looking for specification/programming languages for real-time distributed systems. However, if we look at requirements for real-time languages [41, we can come to the conclusion that most of these Permission to CODV without fee ah or Dart of this material is eranted provided that the &pies are not made or &stributed for direct com;hercial advantaee. the ACM couvricht notice and the title of the Dubhcation and its date>ppear, and no&% given that copying is by p&uission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/oi specific permi&on. 01989 ACM 0-89791~305-1/89/0500/0075$00.75 languages fall short of expectations. For example, many languages do not provide any explicit means of correctly specifying timing constraints, or are limited to either delay or timeout statement [lo]. This limitation not only reduces the expressive power of languages (and hence cannot be used in certain applications such as switching and digital systems) but also makes it difficult to reason about the
任何设计复杂系统的方法都需要一个规范和验证的基础。对于实时系统尤其如此,因为安全性和可靠性对这些系统极其重要。作为第一步,我们为RT-CDL(实时通用设计语言)语言提供了非操作语义,使用Plotkin的标记转换系统,使用Salwicki和mildner的最大para - helim模型。该语言基于事件-动作模型,能够(i)表达各种时间约束,(ii)响应各种实时异常,以及(iii)以组合方式指定,推理和验证程序。我们将展示如何通过语义对非缓冲广播、持续事件、优先级、中断和抢占命令的行为建模。我们的方法是组合的,因此为组合规范和程序验证提供了坚实的基础。1. Ada的主要目标之一是实时嵌入式系统的可编程性。然而,Ada的定义[3]允许高优先级的任务等待低优先级的任务,以获得不可预测的延迟。Furthetmore。Ada缺乏干扰非正常时间系统固有的并行性的能力。例如,在Ada中,我们甚至不能交叉执行一些在基于监视器的语言中可能执行的操作——这在很多时候是一个缺点。集合机制在实现多形式时钟和利用并行性方面存在很多限制。另一个值得注意的一点是,尽管工业过程控制系统的传统描述工具本质上是并行的,但这些系统的计算机化导致这些并行工具被涉及大量顺序的编程语言逐步取代,这是矛盾的。在为实时分布式系统寻找规范/编程语言方面已经付出了相当大的努力。然而,如果我们看一下对实时语言的要求[41],我们可以得出这样的结论:只要不是为了直接的商业利益而制作或分发这些材料,大多数免费的CODV许可都是允许的。美国计算机协会的版权通知、出版的标题和出版的日期都出现了,而且没有&%,因为复制是由美国计算机协会授权的。以其他方式复制或重新发布,需要付费和/或特定许可。01989 ACM 0-89791~305-1/89/0500/0075$00.75语言达不到预期。例如,许多语言没有提供任何正确指定时间约束的显式方法,或者仅限于延迟或超时语句[lo]。这种限制不仅降低了语言的表达能力(因此不能在某些应用程序中使用,例如开关和数字系统),而且还使对给定程序文本的时间约束进行推理变得困难。RT-Euclid[8]本质上是一种基于监视器的语言,具有表达有界循环的特征;然而,即使在非实时语言WI中,通过互斥来实现数据完整性也是不可取的。让我们看一下为实时系统提供理想的规范/编程语言所做的一些主要努力。对于缺乏合适的规范/编程语言的原因的第一次系统研究始于语言Esterel[2]。Esterel设计用于编程响应性系统,假设非同步假设(即,事件的控制转移和传输是瞬时的),因此克服了几个缺陷。在埃斯特尔,没有内在的时间概念;其论点是,本地时钟可以通过外部时钟信号进行模拟。虽然这样的假设导致了高效和良好的结构,但从现实的角度来看,这个假设是值得怀疑的,并且可能导致因果关系问题(类似于短路,参见[11])。响应式系统的一个重要特征是,它们主要是基于事件的,而不是基于转换的(基于状态的)。从这个角度来看,Hatcl、Pnueli等人开始寻找实用的形式主义(可能是混合规范和ptxgramming),这将有助于设计响应式系统。他们的研究产生了被称为Statecharts的形式([5,6])。这种形式基于状态图(从而提供图形设计辅助),克服了状态图的一些缺点,如平面性、顺序性等。Statechatts通过广播通信机制满足分层规范和多级并发性。虽然语言具有很强的表达能力,但一些特征的语义,如微步,并不是很好地理解[7]。此外,Statecharts缺乏当前形式的数据抽象。 此外,尽管当前的技术寻找的系统不一定是基于文本的(也许可以将图形对象视为原始对象),但我们认为基于图形的系统在大型系统的开发中可能只提供了一个辅助而不是一个完整的基础。
{"title":"An operational semantics of real time design language RT-CDL","authors":"L. Y. Liu, R. Shyamasundar","doi":"10.1145/75199.75212","DOIUrl":"https://doi.org/10.1145/75199.75212","url":null,"abstract":"Any methodology for the design of a complex system needs a basis for specification and verification. This is particularly so for realtime systems since safety and reliability ate extremely important for these systems. As a first step, we provide au operational semantics for the language RT-CDL (Real Time Common Design Language) employing Plotkin’s labeled transition systems using the maximal paraheliim model of Salwicki and Miildner. The language is based on the event-action model and is capable of (i) expressing various timing constraints, (ii) responding to various teal-time exceptions, and (iii) specifying, reasoning, verifying about programs in a compositional manner. We show how to model the behavior of non-buffered broadcasts, durational events, priority, interrupts, and preemptive commands through the semantics. Our approach is compositional and thus provides a firm basis for compositional specification and verification of pmgrams. 1. Motivation and Related Work One of the primary objectives of Ada has been the programmability of real-time embedded systems. However, the definition of Ada [3] allows a high-priority task to wait for a low-priority task for an unpredictable delay. Furthetmore. Ada lacks the power of hamessing the parallelism inherent in mal-time systems. For instance, in Ada, we caunot even interleave some of the operations that am possible in the monitor-based languages--which is a disadvantage at many times. The rendezvous mechanism places a lot of restriction with reference to realizing multiform clocks and harnessing parallelism. Another notable point is that even though the traditional description tools of industrial process control systems arc intrinsically parallel, it is paradoxical that the computerization of these systems results in the progressive replacement of these parallel tools by programming languages involving a great amount of sequential&y. There has been quite a substantial effort in looking for specification/programming languages for real-time distributed systems. However, if we look at requirements for real-time languages [41, we can come to the conclusion that most of these Permission to CODV without fee ah or Dart of this material is eranted provided that the &pies are not made or &stributed for direct com;hercial advantaee. the ACM couvricht notice and the title of the Dubhcation and its date>ppear, and no&% given that copying is by p&uission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/oi specific permi&on. 01989 ACM 0-89791~305-1/89/0500/0075$00.75 languages fall short of expectations. For example, many languages do not provide any explicit means of correctly specifying timing constraints, or are limited to either delay or timeout statement [lo]. This limitation not only reduces the expressive power of languages (and hence cannot be used in certain applications such as switching and digital systems) but also makes it difficult to reason about the","PeriodicalId":435917,"journal":{"name":"International Workshop on Software Specification and Design","volume":"46 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1989-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115990195","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
Software design issues: a very large information systems perspective 软件设计问题:一个非常大的信息系统视角
Pub Date : 1989-04-01 DOI: 10.1145/75199.75235
Gerald B. Williams, Chunka Mui, Vairam Alagappan, Bruce B. Johnson
Research in software engineering is concerned with the enhancement and automation of the processes of building computer application systems. While there is a broad consensus on the problems associated with software development, a specific understanding of the software engineering problem and the appropriate solutions are inevitably driven by the target application domain. Much of the current software engineering research is driven by the development of large scale embedded software systems. Our understanding of the problems is based on a different domain: that of very large information systems (VLIS). In this paper, we identify some significant software engineering problems from the context of developing very large information systems.
软件工程的研究涉及计算机应用系统构建过程的增强和自动化。虽然对与软件开发相关的问题有广泛的共识,但是对软件工程问题的具体理解和适当的解决方案不可避免地受到目标应用程序领域的驱动。当前许多软件工程研究都是由大规模嵌入式软件系统的开发驱动的。我们对这些问题的理解是基于一个不同的领域:超大型信息系统(VLIS)。在本文中,我们从开发非常大的信息系统的背景下确定了一些重要的软件工程问题。
{"title":"Software design issues: a very large information systems perspective","authors":"Gerald B. Williams, Chunka Mui, Vairam Alagappan, Bruce B. Johnson","doi":"10.1145/75199.75235","DOIUrl":"https://doi.org/10.1145/75199.75235","url":null,"abstract":"Research in software engineering is concerned with the enhancement and automation of the processes of building computer application systems. While there is a broad consensus on the problems associated with software development, a specific understanding of the software engineering problem and the appropriate solutions are inevitably driven by the target application domain. Much of the current software engineering research is driven by the development of large scale embedded software systems. Our understanding of the problems is based on a different domain: that of very large information systems (VLIS). In this paper, we identify some significant software engineering problems from the context of developing very large information systems.","PeriodicalId":435917,"journal":{"name":"International Workshop on Software Specification and Design","volume":"70 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1989-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132038827","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}
引用次数: 7
Detecting interference when merging specification evolutions 在合并规范演进时检测干扰
Pub Date : 1989-04-01 DOI: 10.1145/75199.75226
M. Feather
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 fro
我们一直在研究一个软件规范设计模型,它从一个非常简单的规范开始,在许多平行的设计“线”中逐步详细阐述它,并合并从这些不同的线产生的规范,以实现完全详细的规范。我们使用“进化的”转换,也就是说,转换的真正目的是改变意义,以执行设计线中的细化,然后通过按顺序重放转换来实现合并。合并并不总是顺利进行的:有时不同的设计线会以某种方式相互干扰,从而抑制了它们进化转换的连续重放。我们表明,通过比较转换如何改变规范属性(这里我们考虑术语和用法的属性),可以检测到某些类型的干扰,并在某些情况下建议处理它的方法。虽然传统的软件设计过程是从一个规范开始的,并朝着实现努力,但我们已经开始相信,开始规范的构建也是一个重要而复杂的设计过程。我们已经研究了一个过程,在这个过程中,规范的构建是增量的,规范是通过一系列的进化步骤从一个非常简单的起点逐渐进化而来的。我们已经建立了通过“进化转换”来执行这些的机制,类似于传统程序转换工作的转换,除了它们有意地改变了它们所应用的规范的含义。相比之下,传统的转换通常在提高效率的同时保持规范的含义不变(所谓的“保持正确性”)(有时它们“缩小”含义,即,当初始规范允许替代实现时,转换可能是01969 ACM 0-69791~305-1/69/0500/0169$00.75,允许从中选择,但在任何情况下,它们都不会引入新的可能性)。在修改类型格和数据库方案方面也进行了类似的研究:第21章对类型格可能发生的变化进行了分类,并据此提出调整现有数据和对该数据进行相应操作的方法。在[lo]中也考虑了类似的变化,其重点是构建方法来处理在不同版本的类型格下创建的对象和程序之间的冲突。最近在(61)中,有人认为几种机器学习技术可以帮助完成对数据库进行相同类型修改的任务。我们发现不同的进化步骤通常是独立的,或者几乎是独立的。这促使我们并行应用这些步骤,从而产生几种不同的设计路线。从每条设计线路产生的规范必须随后合并。由于不同的规范是通过应用一系列演化转换获得的,因此我们通过应用一系列相同的转换来获得这些规范的合并。在[4]中可以找到对整个方法更完整的描述。这里感兴趣的方面是希望独立地追求单独的设计线,然后合并它们的结果。这样做的能力将有几个有益的特征:关注点分离:一个演进引入的细节可以在进行另一个演进时被忽略;l分布式开发:几个人可能以不同的方式独立地演进相同的初始规范,然后将他们的版本合并,以及l显式的组合;当不同的设计线不是完全独立时,这将在合并时被识别并明确地处理。12 .其他有关盐碱的工作;L- _以前的合并工作已经解决了用简化语言表达的程序的合并,并且集中了
{"title":"Detecting interference when merging specification evolutions","authors":"M. Feather","doi":"10.1145/75199.75226","DOIUrl":"https://doi.org/10.1145/75199.75226","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 fro","PeriodicalId":435917,"journal":{"name":"International Workshop on Software Specification and Design","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1989-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133715702","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}
引用次数: 37
Interface specification with temporal logic 具有时序逻辑的接口规范
Pub Date : 1989-04-01 DOI: 10.1145/75199.75216
M. Kooij
This paper describes developments and experience in the ESPRIT project 1283: “VDM for Interfaces of the PCTE”. It shows the way temporal logic is used in combination with the relational VDM method in order to write interface specifications for large reactive systems. It is shown tlhat in this way a specification can be written both usable for implementors and users of an interface. The ability to dlistinguish within the logic between an internal and an external action appears to be very important.
本文描述了ESPRIT项目1283的发展和经验:“PCTE接口的VDM”。它展示了时序逻辑与关系VDM方法结合使用的方式,以便为大型反应系统编写接口规范。这表明,通过这种方式编写的规范既可用于接口的实现者,也可用于接口的用户。在逻辑上区分内部和外部行为的能力似乎非常重要。
{"title":"Interface specification with temporal logic","authors":"M. Kooij","doi":"10.1145/75199.75216","DOIUrl":"https://doi.org/10.1145/75199.75216","url":null,"abstract":"This paper describes developments and experience in the ESPRIT project 1283: “VDM for Interfaces of the PCTE”. It shows the way temporal logic is used in combination with the relational VDM method in order to write interface specifications for large reactive systems. It is shown tlhat in this way a specification can be written both usable for implementors and users of an interface. The ability to dlistinguish within the logic between an internal and an external action appears to be very important.","PeriodicalId":435917,"journal":{"name":"International Workshop on Software Specification and Design","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1989-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124874171","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}
引用次数: 6
Specifying reusable components using Z: realistic sets and dictionaries 使用Z:现实集和字典指定可重用组件
Pub Date : 1989-04-01 DOI: 10.1145/75199.75218
R. L. London, K. Milsted
We use the Z specification language to specify the designs of two reusable components and their interfaces. The components are based on set:3 and dictionaries from Smalltalk, each of which can provide surprises to users. We prove a significant property of desired behavior of the specifications under the precondition expected by the implementations. Specification and proof played an important role in our understanding of the components.
我们使用Z规范语言来指定两个可重用组件及其接口的设计。这些组件基于set:3和Smalltalk的字典,每个组件都能给用户带来惊喜。在实现所期望的前提条件下,证明了规范期望行为的一个重要性质。规格说明和证明在我们对组件的理解中扮演了重要的角色。
{"title":"Specifying reusable components using Z: realistic sets and dictionaries","authors":"R. L. London, K. Milsted","doi":"10.1145/75199.75218","DOIUrl":"https://doi.org/10.1145/75199.75218","url":null,"abstract":"We use the Z specification language to specify the designs of two reusable components and their interfaces. The components are based on set:3 and dictionaries from Smalltalk, each of which can provide surprises to users. We prove a significant property of desired behavior of the specifications under the precondition expected by the implementations. Specification and proof played an important role in our understanding of the components.","PeriodicalId":435917,"journal":{"name":"International Workshop on Software Specification and Design","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1989-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131058041","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}
引用次数: 16
Software development using models 使用模型的软件开发
Pub Date : 1989-04-01 DOI: 10.1145/75199.75221
R. D'Ippolito, C. Plinta
{"title":"Software development using models","authors":"R. D'Ippolito, C. Plinta","doi":"10.1145/75199.75221","DOIUrl":"https://doi.org/10.1145/75199.75221","url":null,"abstract":"","PeriodicalId":435917,"journal":{"name":"International Workshop on Software Specification and Design","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1989-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128566244","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}
引用次数: 17
The requirements apprentice: an initial scenario 需求学徒:一个初始场景
Pub Date : 1989-04-01 DOI: 10.1145/75199.75231
H. Reubenstein, R. Waters
The implementation of the Requirements Apprentice has reached the point where it is possible to exhibit a concrete scenario showing the intended basic capabilities of the system. The Requirements Apprentice accepts ambiguous, incomplete, and inconsistent input from a requirements analyst and assists the analyst in creating and validating a coherent requirements description. This processing is supported by a general-purpose reasoning system and a library of requirements cliches that contains reusable descriptions of standard concepts used in requirements. 1 The Requirements Apprentice The philosophy underlying the Requirements Apprentice (RA) is laid out in detail in [14]. In the interest of brevity, this discussion will not be repeated here. However, it is important to keep in mind the position occupied by the RA in the requirements acquisition process. As illustrated by Figure 1, the RA is intended to assist a requirements analyst. The analyst begins the requirements acquisition process by means of a “skull session” that illicits an informal idea of what. is wanted. A good example of the result of such a skull session is the library database requirement sketch [l] that was used as a benchmark by previous Workshops on Software Specification and Design. Starting from such an informal requirements sketch, the RA aLsist.s an analyst (and through the analyst, the end user) t.o arrive at a more complete and more formal requirement. In I his, the RA continues in the tradition of the SAFE project ]2] and differs from most current work on software requirements tools (e.g., [4, 7, 111) that focuses instead on the validation of a requirement that is already stated in a formal way. Viewed from an artificial intelligence perspective, the problem faced by the RA is essentially one of knowledge acqrhitim. Related systems in this area include KLATJS[.lO] and ROGET[5], which provide automated assistance for arquiring new rules for expert systems. These tools support Pernksion to copy without fee all or pert of this material is granted provided that the copies arc 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 othc&se, or to republish, requires a fee and/or specific permission. l D Analyst + Requirements Knowledge Base
需求学徒的实现已经达到了可以展示一个具体的场景来显示系统预期的基本功能的程度。需求学徒接受来自需求分析师的模糊、不完整和不一致的输入,并协助分析师创建和验证一致的需求描述。该处理由通用推理系统和包含需求中使用的标准概念的可重用描述的需求陈词滥调库支持。需求学徒(RA)背后的理念在[14]中有详细阐述。为简洁起见,这里不再重复这个讨论。然而,记住RA在需求获取过程中所占据的位置是很重要的。如图1所示,RA旨在帮助需求分析人员。分析人员通过一个“头脑会议”的方式开始需求获取过程,这个“头脑会议”否定了一个非正式的想法。是想要的。这种讨论结果的一个很好的例子是库数据库需求草图[1],它被以前的软件规范和设计研讨会用作基准。从这样一个非正式的需求草图开始,RA清单。让分析人员(并通过分析人员,最终用户)得出更完整、更正式的需求。在本文中,RA延续了SAFE项目的传统[2],并且不同于当前大多数关于软件需求工具的工作(例如,[4,7,111]),后者侧重于已经以正式方式陈述的需求的验证。从人工智能的角度来看,RA所面临的问题本质上是一个知识的获取问题。该领域的相关系统包括KLATJS[。[lO]和ROGET[5],它们为专家系统获取新规则提供自动辅助。这些工具支持perksion免费复制本材料的全部或部分,前提是这些复制不是为了直接的商业利益而制作或分发,ACM版权声明和出版物标题及其日期出现,并通知复制是由计算机械协会许可的。复制或重新发布需要付费和/或特定许可。D分析师+需求知识库
{"title":"The requirements apprentice: an initial scenario","authors":"H. Reubenstein, R. Waters","doi":"10.1145/75199.75231","DOIUrl":"https://doi.org/10.1145/75199.75231","url":null,"abstract":"The implementation of the Requirements Apprentice has reached the point where it is possible to exhibit a concrete scenario showing the intended basic capabilities of the system. The Requirements Apprentice accepts ambiguous, incomplete, and inconsistent input from a requirements analyst and assists the analyst in creating and validating a coherent requirements description. This processing is supported by a general-purpose reasoning system and a library of requirements cliches that contains reusable descriptions of standard concepts used in requirements. 1 The Requirements Apprentice The philosophy underlying the Requirements Apprentice (RA) is laid out in detail in [14]. In the interest of brevity, this discussion will not be repeated here. However, it is important to keep in mind the position occupied by the RA in the requirements acquisition process. As illustrated by Figure 1, the RA is intended to assist a requirements analyst. The analyst begins the requirements acquisition process by means of a “skull session” that illicits an informal idea of what. is wanted. A good example of the result of such a skull session is the library database requirement sketch [l] that was used as a benchmark by previous Workshops on Software Specification and Design. Starting from such an informal requirements sketch, the RA aLsist.s an analyst (and through the analyst, the end user) t.o arrive at a more complete and more formal requirement. In I his, the RA continues in the tradition of the SAFE project ]2] and differs from most current work on software requirements tools (e.g., [4, 7, 111) that focuses instead on the validation of a requirement that is already stated in a formal way. Viewed from an artificial intelligence perspective, the problem faced by the RA is essentially one of knowledge acqrhitim. Related systems in this area include KLATJS[.lO] and ROGET[5], which provide automated assistance for arquiring new rules for expert systems. These tools support Pernksion to copy without fee all or pert of this material is granted provided that the copies arc 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 othc&se, or to republish, requires a fee and/or specific permission. l D Analyst + Requirements Knowledge Base","PeriodicalId":435917,"journal":{"name":"International Workshop on Software Specification and Design","volume":"75 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1989-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114556766","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}
引用次数: 41
Functional programming: executable specifications and program transformations 函数式编程:可执行规范和程序转换
Pub Date : 1989-04-01 DOI: 10.1145/75199.75244
S. Thompson
In this paper we give an example of the use of functional programming language in the specification and development of a program to solve a non-trivial problem. In particular, we show how we can give a direct implementation of a constructive specification (an execuiable specification, in other words) and then show how program transformation can be used to turn this specification into an efficient version of the program, using techniques from a standard library of transformations. We introduce the paper with a short review of functional programming. 1 Functional Programming In this section we introduce the major ideas of functional programming, as exemplified by Miranda ‘[4], (pure) ML [5] and various other languages ([3]). The language which we use here is Miranda, in fact. The process underlying functional programming is one which we learn in elementary school, before we are exposed to micros, BASIC e2 al.. This is the process of calculation. Given an expression like (2 + 3)/(7 2) we learn that we first have to evaluate the sub-expressions (2+3) and (7-2), and then apply the operator ‘1’. This is exactly what we do when we run a functional program we calculate the value of an expression, which may involve operators or functions which are defined by the user. Consider an example. To work out the sum of squares of the first hundred positive integers, we calculate the value of sum-of -squares loowhere sum-of-squares n = n*n t sum-of-squares (n-1) , 01 = 1 , otherwise 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. This operator describes what the sum is, in a natural way if n is greater than one, we square it and add it to the sum up to n-l, if not, the answer is immediate one. Observe that we can read the above not only as a definition, but also a property of the function sum-of-squares. Function definitions are their own descriptions. This is not true of imperative languages, in which a program description has to be written in a logic separate from the language itself. Take an example of evaluation, in which we abbreviate sum-of-squares by SOS: SOS 3 = 3*3 + (SOS 2)
在本文中,我们给出了一个使用函数式编程语言来说明和开发一个程序来解决一个非平凡问题的例子。特别地,我们展示了如何给出一个建设性规范(换句话说,一个可执行的规范)的直接实现,然后展示了如何使用程序转换,使用转换标准库中的技术,将该规范转换为程序的有效版本。我们通过对函数式编程的简要回顾来介绍本文。在本节中,我们将介绍函数式编程的主要思想,例如Miranda的[4]、(纯)ML[5]和各种其他语言([3])。事实上,我们在这里使用的语言是米兰达。函数式编程的基本过程是我们在小学学习的,在我们接触到micros, BASIC等之前。这就是计算的过程。给定一个像(2+3)/(7 2)这样的表达式,我们知道我们首先必须计算子表达式(2+3)和(7-2),然后应用运算符“1”。这正是我们在运行函数式程序时所做的:计算表达式的值,其中可能包含用户定义的操作符或函数。考虑一个例子。为了计算出前100个正整数的平方和,我们计算平方和的值,其中平方和n = n*n t平方和(n-1), 01 = 1,否则,允许免费复制全部或部分本材料,前提是复制不是为了直接商业利益而制作或分发,ACM版权声明以及出版物的标题和日期出现。并注明复制是由计算机协会许可的。以其他方式复制或重新发布需要付费和/或特定许可。这个算子描述了和是什么,用一种自然的方式如果n大于1,我们对它平方,然后加到和上,等于n- 1,如果不是,答案就是1。注意,我们不仅可以把上面的定义看作是平方和函数的性质,而且可以看作是平方和函数的性质。函数定义是它们自己的描述。命令式语言不是这样的,在命令式语言中,程序描述必须用与语言本身分离的逻辑编写。以求值为例,我们将平方和缩写为SOS: SOS 3 = 3*3 + (SOS 2)
{"title":"Functional programming: executable specifications and program transformations","authors":"S. Thompson","doi":"10.1145/75199.75244","DOIUrl":"https://doi.org/10.1145/75199.75244","url":null,"abstract":"In this paper we give an example of the use of functional programming language in the specification and development of a program to solve a non-trivial problem. In particular, we show how we can give a direct implementation of a constructive specification (an execuiable specification, in other words) and then show how program transformation can be used to turn this specification into an efficient version of the program, using techniques from a standard library of transformations. We introduce the paper with a short review of functional programming. 1 Functional Programming In this section we introduce the major ideas of functional programming, as exemplified by Miranda ‘[4], (pure) ML [5] and various other languages ([3]). The language which we use here is Miranda, in fact. The process underlying functional programming is one which we learn in elementary school, before we are exposed to micros, BASIC e2 al.. This is the process of calculation. Given an expression like (2 + 3)/(7 2) we learn that we first have to evaluate the sub-expressions (2+3) and (7-2), and then apply the operator ‘1’. This is exactly what we do when we run a functional program we calculate the value of an expression, which may involve operators or functions which are defined by the user. Consider an example. To work out the sum of squares of the first hundred positive integers, we calculate the value of sum-of -squares loowhere sum-of-squares n = n*n t sum-of-squares (n-1) , 01 = 1 , otherwise 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. This operator describes what the sum is, in a natural way if n is greater than one, we square it and add it to the sum up to n-l, if not, the answer is immediate one. Observe that we can read the above not only as a definition, but also a property of the function sum-of-squares. Function definitions are their own descriptions. This is not true of imperative languages, in which a program description has to be written in a logic separate from the language itself. Take an example of evaluation, in which we abbreviate sum-of-squares by SOS: SOS 3 = 3*3 + (SOS 2)","PeriodicalId":435917,"journal":{"name":"International Workshop on Software Specification and Design","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1989-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114623133","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
Configuration support for system description, construction and evolution 对系统描述、构造和演化的配置支持
Pub Date : 1989-04-01 DOI: 10.1145/75199.75204
J. Kramer, J. Magee, M. Sloman
Software systems can be conveniently described, constructed and managed in terms of their configuration, where configuration is the system structure defined as the set of constituent software components together with their interconnections. A specification of the system configuration can be used both to describe the required system structure and to generate the actual system itself. The performance of these tasks at the configuration level is termed configuration programming, and is best supported by the use of a declarative configuration language and associated support tools. This paper discusses the main principles of this approach and illustrates its practice by describing the support which has been provided in the Conic environment for distributed systems. These concepts are illustrated by using a simple example: a patient monitoring system (PMS).
软件系统可以根据其配置方便地描述、构造和管理,其中配置是定义为组成软件组件及其相互连接的集合的系统结构。系统配置的规范既可以用来描述所需的系统结构,也可以用来生成实际的系统本身。这些任务在配置级别的性能被称为配置编程,并且最好通过使用声明性配置语言和相关的支持工具来支持。本文讨论了该方法的主要原理,并通过描述在Conic环境中为分布式系统提供的支持来说明其实践。通过一个简单的例子来说明这些概念:患者监测系统(PMS)。
{"title":"Configuration support for system description, construction and evolution","authors":"J. Kramer, J. Magee, M. Sloman","doi":"10.1145/75199.75204","DOIUrl":"https://doi.org/10.1145/75199.75204","url":null,"abstract":"Software systems can be conveniently described, constructed and managed in terms of their configuration, where configuration is the system structure defined as the set of constituent software components together with their interconnections. A specification of the system configuration can be used both to describe the required system structure and to generate the actual system itself. The performance of these tasks at the configuration level is termed configuration programming, and is best supported by the use of a declarative configuration language and associated support tools. This paper discusses the main principles of this approach and illustrates its practice by describing the support which has been provided in the Conic environment for distributed systems. These concepts are illustrated by using a simple example: a patient monitoring system (PMS).","PeriodicalId":435917,"journal":{"name":"International Workshop on Software Specification and Design","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1989-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124992470","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}
引用次数: 14
期刊
International Workshop on Software Specification and Design
全部 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