{"title":"Extending a Tool Integration Language","authors":"Mark A. Gisi, Gail E. Kaiser","doi":"10.1109/ICSP.1991.664351","DOIUrl":null,"url":null,"abstract":"TheMarvel environment supports rule based modeling of software processes Marvel invokes external tools to carry out steps in a software process One of the major objectives of this research is to invoke existing external tools without needing to modify them This is achieved by encapsulating tools in envelopes designed to abstract the details of a tool from the Marvel kernel thereby providing a black box interface Initially we used the Unix shell language to write envelopes Due to several limitations of the shell language however the black box abstraction could not be fully supported We describe these limitations and discuss how we extended the shell language to obtain a new envelope language that fully supports the black box abstraction c Mark A Gisi and Gail E Kaiser This version appears in the First International Conference on the Software Process October Gisi is supported in part by National Science Foundation grant CCR Kaiser is supported by National Science Foundation grants CCR CDA and CCR by grants from AT T BNR DEC IBM SRA and Xerox by the New York State Center for Advanced Technology on Computer and Information Systems and by the NSF Engineering Research Center for Telecommunications Research Introduction Marvel is a rule based environment that assists users with the software development process and stores software components their attributes and relations in an objectbase Unlike most other process modeling systems Marvel employs existing external tools to carry out the steps of a software process Since tools are expensive to develop in terms of both time and cost a major objective is to employ existing tools without modifying them We achieve this by encapsulation of external tool interactions within envelopes The envelope concept was introduced in the ISTAR environment Each step of a process is represented in the process model by an activity An activity may involve building an executable running a test suite or simply invoking an editor An activity s execution often involves the invocation of one or more commercial o the shelf COTS tools To support the integration of COTS tools without modi cation or even access to their source code the Marvel kernel views each activity as a black box it only knows the activity s input and output re quirements In addition an activity should know nothing about the Marvel kernel For example suppose we want to execute an activity that compiles a C le The activity needs the C source le a set of header include les and the object code le location The activity invokes cc the C compiler with these parameters When the activity completes it returns a status code to the Marvel kernel indicating the status of cc s execution e g success failure An envelope represents an activity s implementation It abstracts the details of the interface of a tool Envelopes were initially written in the Unix shell language which has several advantages it already exists many reusable Unix utilities are available and it provides a means of connecting existing tools together into di erent useful con gurations However the shell language has at least two limitations in supporting the black box abstraction It does not support the declaration of an activity s interface i e input output There is no way to declare the types of incoming and outgoing data in a clean controlled manner It does not support the return of an arbitrary number of data values a shell script can only return an integer status code via the exit command Sometimes it is desirable for an activity to return more information We discuss how we extended the shell language to eliminate these limitations Marvel Rules and Tools Each activity is encapsulated in a rule composed of three parts a condition the activity and one or more e ects Before an activity can execute its condition a logical expression must be satis ed After the activity executes it returns a status code that is used to select the proper e ect which asserts some changes in the state of the objectbase Figure provides an example of a rule that compiles a C le Variable f denotes a variable is assigned an object with attribute compile status The class hierarchy of the objectbase is de ned by a data model gure shows a small segment In lines of gure we search the","PeriodicalId":309190,"journal":{"name":"Proceedings. First International Conference on the Software Process,","volume":"14 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1991-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"73","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings. First International Conference on the Software Process,","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSP.1991.664351","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 73
Abstract
TheMarvel environment supports rule based modeling of software processes Marvel invokes external tools to carry out steps in a software process One of the major objectives of this research is to invoke existing external tools without needing to modify them This is achieved by encapsulating tools in envelopes designed to abstract the details of a tool from the Marvel kernel thereby providing a black box interface Initially we used the Unix shell language to write envelopes Due to several limitations of the shell language however the black box abstraction could not be fully supported We describe these limitations and discuss how we extended the shell language to obtain a new envelope language that fully supports the black box abstraction c Mark A Gisi and Gail E Kaiser This version appears in the First International Conference on the Software Process October Gisi is supported in part by National Science Foundation grant CCR Kaiser is supported by National Science Foundation grants CCR CDA and CCR by grants from AT T BNR DEC IBM SRA and Xerox by the New York State Center for Advanced Technology on Computer and Information Systems and by the NSF Engineering Research Center for Telecommunications Research Introduction Marvel is a rule based environment that assists users with the software development process and stores software components their attributes and relations in an objectbase Unlike most other process modeling systems Marvel employs existing external tools to carry out the steps of a software process Since tools are expensive to develop in terms of both time and cost a major objective is to employ existing tools without modifying them We achieve this by encapsulation of external tool interactions within envelopes The envelope concept was introduced in the ISTAR environment Each step of a process is represented in the process model by an activity An activity may involve building an executable running a test suite or simply invoking an editor An activity s execution often involves the invocation of one or more commercial o the shelf COTS tools To support the integration of COTS tools without modi cation or even access to their source code the Marvel kernel views each activity as a black box it only knows the activity s input and output re quirements In addition an activity should know nothing about the Marvel kernel For example suppose we want to execute an activity that compiles a C le The activity needs the C source le a set of header include les and the object code le location The activity invokes cc the C compiler with these parameters When the activity completes it returns a status code to the Marvel kernel indicating the status of cc s execution e g success failure An envelope represents an activity s implementation It abstracts the details of the interface of a tool Envelopes were initially written in the Unix shell language which has several advantages it already exists many reusable Unix utilities are available and it provides a means of connecting existing tools together into di erent useful con gurations However the shell language has at least two limitations in supporting the black box abstraction It does not support the declaration of an activity s interface i e input output There is no way to declare the types of incoming and outgoing data in a clean controlled manner It does not support the return of an arbitrary number of data values a shell script can only return an integer status code via the exit command Sometimes it is desirable for an activity to return more information We discuss how we extended the shell language to eliminate these limitations Marvel Rules and Tools Each activity is encapsulated in a rule composed of three parts a condition the activity and one or more e ects Before an activity can execute its condition a logical expression must be satis ed After the activity executes it returns a status code that is used to select the proper e ect which asserts some changes in the state of the objectbase Figure provides an example of a rule that compiles a C le Variable f denotes a variable is assigned an object with attribute compile status The class hierarchy of the objectbase is de ned by a data model gure shows a small segment In lines of gure we search the
Marvel环境支持基于规则的软件过程建模,Marvel调用外部工具来执行软件过程中的步骤,本研究的主要目标之一是调用现有的外部工具而无需修改它们,这是通过将工具封装在信封中来实现的,这些信封旨在从Marvel内核中抽象出工具的细节,从而提供一个黑盒接口我们描述了这些限制,并讨论了我们如何扩展shell语言以获得一个完全支持黑盒抽象的新信封语言。这个版本出现在10月的第一届软件过程国际会议上,Gisi得到了美国国家科学基金会的部分支持CCR CDA和CCR由AT T BNR DEC IBM SRA和Xerox由纽约州计算机和信息系统高级技术中心和NSF电信研究工程研究中心授予介绍Marvel是一个基于规则的环境,它帮助用户进行软件开发过程,并将软件组件的属性和关系存储在对象库中。与大多数其他过程建模系统不同,Marvel使用现有的外部工具实施以来的一个软件过程的步骤方面的工具是昂贵的开发时间和成本的主要目标是利用现有工具无需修改我们实现这一外部工具的封装交互信封内信封ISTAR环境的概念被引入流程的每一步都是在流程模型的代表一个活动活动可能涉及构建一个可执行的运行一个测试套件或只是调用一个编辑器活动年代执行通常需要调用一个或多个商业o架子上COTS工具支持COTS的集成工具没有莫迪阳离子甚至访问他们的源代码奇迹内核将每个活动视为一个黑盒,只知道输入和输出活动年代再保险quirements另外一个活动应该一无所知奇迹内核例如假设我们想执行一个活动,le活动需要编译C C源勒一套头le位置活动包括莱斯和对象代码调用cc与这些参数C编译器活动完成时,它返回一个状态码奇迹内核的状态指示cc s执行e g成功失败信封是一个活动年代实现抽象的接口工具的细节信封最初用Unix shell语言编写的,有几个优点它已经存在许多可重用的Unix实用工具,它是可用的提供了一种方法将现有工具联系在一起的不同有用con gurations然而shell语言至少有两个限制在支持黑盒抽象它不支持活动的声明接口我e输入输出没有办法声明类型的传入和传出的数据在一个干净的控制方式它不支持任意数量的数据值的回归一个shell脚本只能返回一个整数通过退出状态码命令有时是需要返回一个活动的更多信息,我们讨论如何扩展shell语言消除这些限制奇迹规则和工具每个活动都封装在一个规则由三个部分组成的一个条件的活动以及一个或多个e格式前一个活动可以执行其条件逻辑表达式必须满意ed活动执行后返回一个状态码,用于选择合适的e等断言的一些变化图中提供了一个编译C文件的规则示例。变量f表示一个变量被赋予一个具有编译状态属性的对象。objectbase的类层次结构是由数据模型设计的。图中显示了一小段我们搜索的代码行