没有合适的资源?快使用搜索试试~ 我知道了~
16网址:http://www.elsevier.nl/locate/entcs/volume66.html20页ARIFS:一个不完整规范和形式化规范重用的环境?Alfrea P. Díaz Redondo,José J. Pazos Arias,Ana Fernández Vilas和Belén Barragáns MartínezDepartamento de Enxeñería Telematica.维戈大学。维哥36200西班牙{rebeca,jose,avilas,belen}@det.uvigo.es摘要选择合适的构件来满足给定的需求是软件复用中的一个关键问题。虽然这一问题在同一领域或应用领域内的软件复用(即垂直复用)中较为突出,但在不同应用领域的软件元素复用(即水平复用)中更为突出。本文描述了ARIFS工具(ApproximateRetrieval ofIncomplete and Fnormal Sspecifications)是如何提供一个合适的重用环境来分类、检索和修改不完整和不完整的需求规格说明的。分类和检索任务都是基于功能相似性,根据结构紧密性,这为水平重用提供了合适的为此,我们定义了四个可重用组件之间的偏序关系和不同的措施来量化它们之间的功能差异通过使用这些措施,我们能够提供一个近似的和有效的检索,没有正式的证明,并预测适应努力,以满足所需的功能规范。1介绍可重用性被广泛认为是提高软件开发效率和质量的关键,但与其他工程领域不同的是,软件工程尚未发展成为一门完全嵌入软件重用的成熟学科。事实上,尽管软件复用从编程诞生(基本上是代码)起就已经被非正式地实践了,但是只有系统地和正式地进行复用,才能从复用中获得实质性的质量和生产力回报[14]。除此之外,在开发过程的早期阶段(如在需求规格说明阶段)进行重用被社区中的许多人认为是一个理想的目标,因为可能? 由PGIDT01PX 132203PR项目(Xunta de Galicia)部分支持c 2002年由Elsevier Science B出版。V.CC BY-NC-ND许可下的开放访问。17提高再利用效益[10]。然而,很少有证据表明,在需求规格说明阶段的软件重用被广泛实践。我们的建议[5,4]处理了这个问题,提供了一种方法来重用高抽象级别的组件:不完整的规范-从迭代和增量需求规范过程的瞬态阶段以及它们的验证结果-从模型检查算法获得。在本文中,我们重点描述了面向垂直和水平重用的AR-IFS工具的形式化基础和方法,并在[6]中详细介绍了在相同上下文中重用形式化验证信息的建议。本文的组织如下:下一节总结了现有的工作管理可重用组件;第3节概述了软件开发过程中,软件重用将被包括在内;的方法和目标的ARIFS工具的解释在第4节;第5节描述了可重用组件之间的功能关系;检索过程的解释在第6节和第7节;一个应用程序的例子是详细的第8节;在第9节的选择和适应的可重用组件的解释;最后,一个简短的总结和未来的工作在第10节中暴露。2相关工作组织大量的可重用组件是软件重用的主要不足之一,因为提供有效的机制来分类和检索来自存储库的软件元素并不是一个容易的问题。检索机制通常依赖于相同的思想:建立一个配置文件或一组组件当该概要文件基于形式化规范时,避免了自然语言的问题,并且该形式化描述用于建立规范匹配。典型的过程通过使用逻辑公式开始表达两个组件之间然后,一个定理证明器检查它的有效性,只有证明器成功,该组件才被认为是合适的。大量的证明任务使得实际实现非常困难,因此在下面的许多工作中,这个数字通常会通过应用其他技术来减少。在[16]中,代码组件的检索过程基于Larch/ML规范语言进行组件描述,并使用相关的交互式Larch证明器进行检索。形式证明被限制在存储库的一个小的子集,这是以前通过使用先决条件和后置条件选择。REBOUND(REuseBased On UNDerstanding)工具[13]也基于落叶松语言,尽管规范匹配基于HOL证明器,几乎是自动化的。为了减少形式证明,不同的算法,基于规范的语义,被应用。在第一步中,需要动态排序,这降低了检索方案的效率。在[3]中,提出了一种基于OSPL的正式规范的两层存储库层次结构。较低层次是基于一般性关系;182通过聚类算法评估的相似性关系上的较高的一个。首先选择最合适的簇,然后使用定理证明器完成搜索;除此之外,为了考虑组件的体系结构特性,使用LOTOS [2]作为功能描述的补充NORA/NAMR工具[15]基本上是一个过滤器管道,试图确保插件兼容性。有使用的签名匹配过滤器,拒绝过滤器(基于模型检查技术),最后,确认过滤器(基于Setheo的- orem证明)。它的一个主要问题是Setheo不支持递归规范由于在检索过程中应用定理证明非常难以自动化,Fisher提出[7]图书馆浏览-使用特殊的导航器-作为图书馆检索的替代方案。3上下文在本节中,我们简要描述了软件开发过程,SCTL-MUS方法[12],其中将包括重用环境。这种方法加入了:一方面,过程的完全形式化,结合不同的FDT(面向模型和面向属性);另一方面,增量和迭代的观点。在图1(a)中,显示了该方法的第一阶段(初始目标),其中从用户的规格中获得系统的完整和一致的功能规格在这个阶段的每一次迭代中,用户识别并指定一组功能需求,这些需求导致系统功能的增长这些需求在当前模型或原型中进行验证,以检查:模型是否已经满足需求;是否在当前迭代中或未来迭代中无法提供这些功能需求(不一致性);或者,系统是否不满足需求,但它能够做到这一点(不完整性)。功能需求的形式化描述是通过使用多值逻辑SCTL [12](Simple Causal Temporal Logic)-在图1(a)中标记为SCTL的框SCTL中的一般因果要求遵循以下模式:)结果,它建立了一个原因条件(前提);一个时间操作符,确定原因的适用性();和一个条件,这是结果(结果)。除了因果关系,SCTL 是一个六值逻辑,即使它只能指定三个不同的值:可能或真(1),不可能或假(0)和未指定(1)。 这种未规范化的概念对于处理需求捕获获得的不完整和不一致的信息特别有用,因为尽管事件在最后阶段是真或假,但在规范过程的中间阶段,用户可能还没有足够的信息,因此这些事件在这些阶段是未指定的。 SCTL要求R 2 R SCTL的定义如下:19hRSCTL i::= R^R jR_RjR)R j:R ja 2 j2h)i::=) j)j)其中h)i是时间算子的集合; 2::=ftruejfalsej ;gare命题常数;和一个2是字母表的事件在一个原型。临时算子f);)J;)g-称为同时,下一个-用于推理给定的过渡继承者和前任通过确定前提被公式化的状态和结果范围中的状态之间的顺序模式来确定状态初始目标e0级aaunspeE1 E2:dCE3G1(a) (b)MUS图Fig. 1. SCTL-MUS方法利用MUS(Model ofUnspecifiedStates)模型对SCTL需求进行综合,得到系统模型。这种状态转换形式主义允许原型和反馈,用户输入框在图1(a)中标记为MUS;并通过使用模型检查算法支持一致性检查,输入框在图1(a)中标记为验证SCTL-MUS。MUS图是基于典型的标记变迁图的,但包括另一个功能:未指定其元素。在图1(b)中示出了MUS图的示例 当一个事件或一个可观察到的动作从= f a; b; c; d; eg发生时,这个系统从一个状态演化到另一个状态。在初始状态E0中,事件a被指定为可能事件,即当事件a发生时,系统g1从该状态演化到状态E1. 系统g1通过一个尚未确定的事件(用unsp表示)从E0演化到状态E2。在随后的迭代中,用户可以用可能的事件(事件a除外)来指定此转换,因为MUS图是确定性的。在状态E2中,事件d是不可能的事件,其表示为:d,最后,状态E3是一个完全未指定的状态,因为在这个状态中没有指定每个事件,也没有指定为可能事件,也不是不可能事件1。1状态的未指定事件不表示,仅表示E0的unsp,因为它意味着演化初始目标要求新目标问题否用户验证性能是的经确认的要求建筑设计改进和维护获得初始架构验证SCTL−MUS原型MUSSCTL20开发过程的第二阶段,或称细化阶段,从上一阶段获得的系统需求的完整和一致的规范开始,或称初始目标,其主要目标是设计系统架构。这种架构是由一个建设性的FDT(LOTOS [8]),它允许描述系统组件,它们的相互作用和接口。最后,将维护阶段转化为以当前系统的MUS模型为起点的开发阶段4ARIFS:方法和目标一般来说,ARIFS工具在SCTL-MUS方法的需求规格说明阶段为可重用组件的分类、检索和适配这些可重用组件收集其功能规范和接口或配置文件信息,功能规范由SCTL需求集表示并由时间演化MUS图建模,接口或配置文件信息从其功能特征中自动获得,以从存储库中对其进行分类和除此之外,每个可重用组件都存储验证信息,即已经在MUS图上验证的属性集及其验证结果[6]。主要目标是重用已经开发的MUS原型,这些原型在功能上接近于用户所需的功能,以便一方面减少合成任务以获得当前原型,另一方面减少未来的验证任务,因为验证结果与每个可重用组件相关联。由于包含复用环境的软件过程是完全形式化的,因此我们选择了复用组件的形式化规范。虽然在许多以前的方法中,这些形式化的表示只被用作模式来恢复低抽象级别的组件(如代码),在我们的方法中,这些形式化的规范只是组件的内容,所以我们有一个面向内容的检索。也就是说,每个组件,同时是索引和检索的内容,我们可以重用高抽象级别的组件。由于我们的建议正是从软件开发过程中最大限度地减少验证任务的必要性开始的,因此我们在检索过程中不应用正式验证,这需要精确检索。相反,我们提出了一个近似的组件检索,它允许选择,在一个有效的方式,合适的组件在功能上接近查询。这种近似检索是基于不完备系统所固有的未规范概念这些是从迭代和增量开发过程的过渡阶段获得的,也就是说,不是所有的都是真或假,可能还没有指定。因此,尽管恢复的组件不符合查询的所有要求,但在进行一些更改后,可以匹配它们。在分析每种情况下所需的适配任务后,决定重用恢复的组件的方便性模型的21O我们还定义了一个两步检索过程:首先是一个粗略的搜索阶段,在一个小的一组合适的组件被检索;其次,一个更精致的,这些组件的顺序取决于每个人的适应努力,以满足查询所需的功能。支持分层检索过程的主要原因基本上是效率。将检索过程分为两个阶段,我们合并了管理可重用组件的两个最重要的趋势:静态和动态排序。静态管理的主要缺点是分类格的刚性和以有效方式重用组件所需的大量信息另一方面,使用动态管理意味着每当提出新的查询时,根据查询指定的功能对存储库进行整体重组尽管它的高精度,检索任务是慢得多,在这种情况下,比在一个静态排序。有了两层检索过程,我们能够避免动态排序的主要问题-在每个查询中存储库中所有组件的整体排序-而不会失去这种机制提供的高准确性5可重用组件建立组件之间的功能关系,使定义组件层次结构或格分类和检索他们在一个适当的方式。在本节中,定义了我们已经确定的组件之间的四种功能关系。每一个都用一个函数O来表征,该函数O与每个MUS图g相关联,一个集合O(g)构成以下的可观察行为:G. 对于每一个这样的O,等式关系=O2GG由g=Og给出,0O(g)=O(g0),且前序v2GGbygvg0,O(g)vO(g0),O是,vO提供了等价类或O-观测不可区分的图集之间的偏序,所以(G;vO)是偏序集或偏序集.一子集G1 称2G为链,如果G1中的每两个图都是O-相关的. TWO2非O-相关但处于两个不同链中且至少共享一个图的图称为潜在O-相关图。我们定义了四个函数,它们提供了MUS图g的四个可观察行为。图的语义视点有两种类型:完全迹(TC(g))和完全非有限迹(TC1(g))。虽然它们都是基于传统的完整轨迹语义[1],但它们也考虑了真事件和假事件,以区分假事件和未指定的事件。在表1中,示出了将这两个函数应用于MUS图g的结果。如该示例所示,MUS图g具有五种不同的演化方式,即,它可以通过事件b从初始状态演化到最终状态,事件b之后是事件d不可能的状态;通过事件a和c从初始状态演化到最终状态;通过事件a、e和c从初始状态演化到最终状态;通过事件a、事件e的数目不确定,从初始状态演化到最终状态,2 两个图g和g0是O-相关的当且仅当gvOg0或g0vOg0.22一BCTCNETCNETCNETCNEedG表1MUS图最后,事件c;以及从初始状态到事件a和无限数量的事件e. 这些可能事件和不可能事件的序列存储在TC1(g)和TC(g)中。 我们必须注意到,虽然跟踪aec包含在a(e)+c跟踪中,但由于整理任务的效率原因,它们都显式地包含在TC 1(g)和TC(g)中。 这两个观测准则的主要区别在于对图的非有限演化途径的处理,在TC1(g)中,非有限迹被包括--贡献a(e)+c和a(e)+-,而在TC(g)中,它们被认为是有限迹--贡献aec和ae。另外两个确定的函数,演化数,表示为NE(g),和非有限演化数,表示为NE1(g),提供了图的结构观点 在表1中,还示出了将这两个函数应用于MUS图g的结果。NE(g)和NE 1(g)得到系统在每一种演化方式下演化时必须进行的跃迁次数例如,当系统通过事件a和c从初始状态演化到最终状态时,它意味着系统必须进行两次转换,这是到NE(g)和NE 1(g)的第一次转换,并且,当系统通过事件a、事件e的未确定数量以及最后事件c从初始状态演化到最终状态时,它意味着系统必须进行至少三次转换,但是它们可能更多,因为事件e的重复,这在NE 1(g)中由(3)+表示。它们之间的主要区别是对图的非有限演化方式的处理,在NE 1(g)中包含了非有限迹--(3)+froma(e)+c迹和(2)+froma(e)+迹--但在NE(g)中它们被认为是有限的--分别是贡献3和2。这四个结果T C1(g)、T C(g)、NE 1(g)和NE(g)是从MUS图中自动获得的,它们构成了可重用组件的特征属性的简档或集合。从这四个函数T C1、T C、NE 1和NE 中的每一个中,命令(v1 ,v ,v1 ,v)和等式关系(=1 ,=,=1 ,=)定义了MUS图之间的关系。可重用组件之间的这些关系允许将存储库组织在四个不同的格子中,每个格子对应一个偏序。因此,每个可重用组件(C)在每个网格中找到正确的位置后,在存储库中进行分类。也就是说,有必要寻找那些与O相关的3到C4的组件,例如C是O,包括在它们上面,并且那些3 其中O2fTC1; TC; NE1; NEg.4 两个分量C和C0是O相关的(CvC0或C0vC)当且仅当它们的MUS图g和g0OOT C(g)=(b:d;ac;ae;aec;aec)T C1(g)=(b:d;ac;a(e)+;aec;a(e) +c)NE( g)=(1;2;2;3;3)NE1(g)=(1;2;(2)+;3;(3)23vC与C相关的组件O-,例如它们是包含在C上的O-。为了消除多余的可重用组件连接,应用了O的反对称性质5图2(a)中示出了这种网格的一个示例,其中根据NE标准对若干可重用组件进行排序。(a) ARIFS工具查询模式选择与适应二阶段组件组件语义搜索(Semantic结构性搜索(Structural结构相似语义相似组件存储库组件粗探测搜索搜索模式一期获取搜索模式MUS原型(b) 检索过程图二. ARIFS工具应用图之间的四种定义的关系,我们能够区分语义相似性和结构相似性,语义相似性反映了两个可重用组件是否具有相似的功能特征(考虑事件序列),即它们是否行为相似;结构相似性反映了两个可重用组件是否具有其MUS图的相似表示,而不考虑链接到每个转换的事件(仅图的骨架),即它们是否看起来相似。语义贴近度为垂直复用提供了一个合适的框架,垂直复用是指同一领域或应用领域内的规范的复用。这些应用程序的组件可以部分地共享图形的事件字母表,即使也可能需要适配任务。另一方面,结构紧密性为水平重用提供了合适的框架,即在不同的应用中重用规范与管理代码的可重用组件的复杂工作[9]不同,在我们的情况下,结构信息非常接近语义信息。在这个抽象层次上,支持它们之间的直接关系,因为MUS原型是从SCTL需求集自动获得的,因此,不可能从相同的功能需求中获得与O有关。51O2 C2vOC3,意味着C1vOC 3。C24CC6检索过程:粗略检索为了重用已经开发的MUS原型,这些原型在功能上接近查询指定的功能,我们建议将图1(a)中标记为MUS的框替换为图2(b)中所示的任务序列每当用户通过一组SCTL需求表达所需的功能时,检索过程就开始从这组SCTL需求中自动获得一组搜索模式,用于从存储库中检索最合适的组件。这些搜索模式反映了查询所表达的功能特征,是应用T C1、T C、NE 1的结果 和NE函数到SCTL要求的集合[4]。在检索过程的第一阶段,我们利用存储库的静态分类方案,以快速的方式恢复一组功能上接近查询的组件。这种粗略搜索的基本思想是,两个可重用组件在存储库中的分类越接近,它们在功能上的相似性就越大在这个阶段中使用了四个分类距离,一个用于第5节中定义的每个偏序标准。定义6.1设g和g0是两个可能O-相关的MUS图.然后,g和g0之间 的分 类距 离,由d(g;g0)表示,是从第一个到第二个在链上跳过所需的转变的数量。定义两个非潜在O-相关MUS图之间的分类距离为d(g;g0)=1.定义6.2设C是一个可重用的组件,它已经根据O标准在格中分类。 C的前驱组件的集合,表示为P(C)=fCgn 的集合为CvC,且d(C;C)=1;ii=1i O ciC的分量,记为S(C)=fCgm如CvC和d(C; C)= 1;ii=1O ici最后,y是C的等价分量的集合,记为E(C)=fCgl,是suchc hasC=OCi。ii=1根据结构和语义相似性评估这种功能接近性结构相似性在NE和NE1标准中占主导地位,但同时,第一个标准没有考虑行为环,相反,第二个标准考虑了行为环。因此,应用一个标准或另一个标准仅取决于查询是否反过来指定行为循环:– 如果查询指定行为循环,则结构检索基于NE1标准,因为该标准使我们能够恢复与给定功能具有高度结构相似性的可重用组件NE关系,在这种情况下,不提供更准确的结果,以这种方式,我们能够提高检索效率,而不会惩罚最终结果。– 如果查询没有指定任何行为循环,则结构检索基于NE标准。在这种情况下,NE1并不比NE提供更好的关于可重用组件的信息,并且根据NE1 更复杂的X,我们正在节省资源,而不会影响结果的质量。25语义特征在T C和T C1准则中占主导地位,但前者不考虑行为环,后者考虑了行为环。因此,正如我们前面所描述的,应用一个或另一个标准将取决于查询的特征 如果查询指定的函数e表示为viour循环,则T C 1 是选择的标准,在其他情况下,TC是更合适的标准。这些原因是从上述原因直接推断出来的在两种情况下,结构和语义接近度,ARIFS返回那些可重用组件的后继者,前趋者或等价物的查询,根据选择的标准(NE或NE 1,和TC或TC1)。7检索过程:准确检索在第二阶段,我们从两组不同的可重用组件开始根据NE或NE 1,那些在结构上接近查询的标准;以及根据TC或TC 1标准,语义上接近查询的那些。假设在第一阶段中恢复的组件在结构上和语义上比存储库中的其余组件更接近查询,但是用于从存储库中恢复它们的标准只允许我们维护优先关系。因此,我们可能已经恢复了可重用的组件,这些组件具有显着的结构和语义差异,尽管保持相同的部分关系的查询。第二阶段的主要目标是改进搜索,并评估这些组件与查询之间的差异,也就是说,预测满足查询功能的适应工作;因此,决定它们中的哪一个将成为最合适的可重用组件。每个集合都有一个不同的选择过程-结构细化过程在第7.1节中详细介绍,语义细化过程在第7.2节中详细介绍-尽管它们都是一个共同想法的结果:最小化对查询的7.1结构细化过程结构细化过程试图找到检索到的可重用组件中哪一个具有与查询所给出的骨架最接近的骨架为了能够量化组件之间的结构差异,我们定义了两种不同的度量:基于NE准则的演化数距离和基于NE1准则的非有限演化数距离应用一个或另一个的决定仅取决于查询的特性,如果查询具有行为循环,则使用进化距离的数量,在其他情况下,使用非有限进化距离的数量定义7.1设g和g0 如果是两个MUS图,则演化分布的数目为它们之间的距离,用dNE(g;g)表示,是两个之间的欧几里得距离。0分别包含在NE(g)和NE1(g)中的向量,它们没有任何共同的元素,它们具有相同数量的元素(在其他情况下,最小向量由零完成),并且它们的元素根据以下进行排序:26F我增加秩序。DDg3g4(a) NE排序(b)NE1排序图3.第三章。NE和NE1 排序在图3(a)中,示出了根据NE准则的晶格的示例在这种情况下,我们可以看到,g3和g6分别是图g7的前趋图和后继图,因此满足dc(g3;g7)=dc(g6;g7)=1,但g3和g6明显不同。为了知道哪一个最接近 g7,根据NE准则,我们使用进化距离的数量首先,将NE函数应用于这三个图:NE(g3)=(2;2;1;2;2)NE(g7)=(2;2;2;3;3) NE(g6)=(2;2;2;2;3;3)然后,我们得到g3和g7之间以及g6和g7之间的进化距离的数量:dNE(g3;g7)=dNE((2;2;1;2;2);(2;2;2;3;3))=k(1;2)(3;3)k=p5dNE(g6;g7)=dNE((2;2;2;2;3;3);(2;2;2;3;3))=k(2)(0)k=2因此,作为dNE(g6;g7)dNE(g3;g7),根据NE ,g6比g3更接近g7,的搜索.循环的可能性在演化距离的数量中没有考虑(定义7.1),因此为了考虑MUS图中指定的功能循环,需要另一种结构差异的度量 非有限进化数距离是基于NE1准则的,因此它考虑了这一特性. NE1(g)可以作为两个不同向量的合成来研究:第一个向量NE1(g)是应用NE1(g)的结果第二个标准,NE 1(g),是应用NE 1(g)的结果 标准,每一个单一的evo-aBa BeD一BeCDG5eCG1F一G6B CG2vNEaB一CvNEBeCDFvNEG4一G7cvNEBDeFGaBeDG51一BvNEaBeCDeC1GF1vNEG61一vNEaBBCeCD1G2vNEG7一Cv1NE1vBNE DeG一FCBG3F27NEee1e2FG7356SP7图中指定的表示某些功能循环的解决方案路径;因此,NE 1(g)=(NE 1(g); NE 1(g))。fi定义7.2设g和g0 是两个MUS图,给出了NE1(g)和NE1(g0)分别对g和g0应用NE1函数的结果. 结构差异-由dfe(g;g)表示的有效向量如下获得0– df 由NE1(g)的每个分量和NE1(g0)的每个分量组成,e1f f在消除了在两个矢量中相同的那些分量必须对dfe1的组件进行排序,以增加或减少。– df 由NE1(g)的每个分量和NE1(g0)的每个分量组成,e2i i在消除了在两个矢量中相同的那些分量dfe2的组成部分必须按照增加或减少的顺序进行排序。当redf(g;g0)=(df;df )的。定义7.3设g和g0是两个MUS图,它们之间的非有限演化距离的个数记为d1(g;g0),是向量的范数dfe1 =(dfe1;dfe2 ),其中r edf如在定义7.2中获得,并且df为0 0e2从fe2中获得,在用r_r_sivit_y()+消除每个元素并将结果减去一个单位之后。在图3(b)中,根据NE1的晶格的示例 标准是明。在这种情况下,我们可以看到,g5,g3和G6是图G7 的前趋图和后继图,因此满足dc(G5;G7)=dc(G3;G7)=dc(G6;G7)=1,但它们明显不同。为了知道哪一个最接近g根据NE1准则,利用非有限解的个数距离.首先,将NE1函数应用于这四个图:NE1(g)=(2;2;3;2+;3+)NE1(g)=(2;2;1;2;2)NE1(g)=(2;2+)NE1(g)=(2;2;3;2+;2+;3+)第二,得到了结构差矢量;第三,得到了 (g7)及g7之间 (g7)和g7;并且,最后,根据NE 1准则获得结构dfe(g5;g7)=(2;3;3+)dfe1(g5;g7)=(2;3;2)dfe(g6;g7)=(2+)dfe1(g6;g7)=(1)dfe(g3;g7)=(1;2;2;3;2+;3+)dfe1(g3;g7)=(1;2;2;3;1;2)作为d1 (g; g)=p15,d1 (g; g)=1且d1 (g; g)=p23,因此,g是东北 部5 7东北 6 7东北部3 7 6最接近g7的图,即根据下式的g6到g7的结构适应性NE1准则是最西方的准则.7.2语义精化过程语义细化过程试图找到检索到的可重用组件中哪些组件具有与查询所给出的功能特征最接近的功能特征。成品e128TC我根据与查询的语义接近度的检索考虑了能够实现原型转换的事件,因为该信息提供了组件的语义,即其含义。为了量化可重用组件之间的相似性和差异性,我们定义了两个基本函数:功能满足和功能差异。定义7.4给定两个MUS文法g和g0,它们之间的泛函交记为gug0,它是TC(g)和TC(g0)或TC1(g)和TC1(g0)之间的交. 如果g或g0指定某个函数循环,则gug0=T C1(g)uT C1(g0),在其他情况下,gug0=T C(g)uT C(g0)。Gug0可以被解释为两个图共享的功能规范(事件序列),并且它构成了评估两个可重用组件之间的功能相似性的良好起点。定义7.5给定两个MUSg和g0,其中至少有一个指定为定义了某个函数循环,并且满足gv1g0,函数差为-它们之间的一个分支g0g由TC1(g0)中不包含在TC1(g)中的那些分量组成。给定两个MUSg语言g和g0,因为它们中没有一个指定一些函数,循环并满足gvTC g,它们之间的函数差0g0g由TC(g0)中不包含在TC(g)中的那些分量组成。的g0g可以被解释为必须被添加到使g的功能规格与的功能规格相同g0.这两个函数(定义7.4和7.5)是定义五个语义细化函数(表2)的基础,这些语义细化函数允许我们量化和预测图之间以及可重用组件之间的功能差异和相似性定 义 7.6设 C 和 C0 是两 个可重 用组件, 它 们 之 间 的功 能 一 致 性 , 用(C;C0)表示,定义为(C;C0)=gug0,其中g是连接到C的MUSgraph,g0是连接到C0的MUS graph。As(Q;C)可以被解释为当前查询Q和组件C之间的公共功能,我们使用该功能度量来获得使(Q;Ci)最大化的组件C i。给定两个可重用组件C1和C2,第一个组件比第二个组件更接近Q,这符合函数共识,表示为(Q;C2)(Q;C1),i f f(Q;C2)vO(Q;C).62定义7.7设C和C0是两个可重用组件,C0对C的功能缺陷,记为g(C;C0),定义为g(C;C0)=g(C;C0)=g(gug0),其中g是连接到C的MUSgraph,g0是连接到C0的MUSgraph. ε(Q;C)e表示由Q所表示的6关系O将分别是TC1或TC,这取决于查询是否具有功能循环29我我我查询y,其中,Ci不指定,即那些缺乏Ci的函数关系的查询y。给定两个可重用组件C1 和C2时,第一个更接近于根据功能缺陷标准的Q,表示为<$(Q;C1)<$(Q;C2),当每次(Q; C1)vO(Q; C2).定 义 7.8 设 C 和 C0 是 两 个 可 重 用 组 件 , C0 对 C 的 功 能 过 剩 , 记 为“(C;C0),定义为“(C;C0)=g0(C;C0)=g0(gug0),其中g是连接到C的MUS graph,g0是连接到C的MUSgraph到C0。“(Q;C)eexpressthefunctionalcharacteristicsspecifiedbyCthatarenotr由查询Q所等价,即,那些ext r是C i的功能规范。给定两个可重用组件C1 和C2时,第一个更接近于Q,根据功能性过剩准则,记为“(Q;C1)“(Q;C2),当每一个都“(Q;C1)vO“(Q;C2)。定义7.9设C和C0是两个可重用组件,它们之间的功能适配(C;C0)定义为(C;C0)=g(C;C0)[“(C;C0),其中g是连接到C的MUSgraph,g0是连接到C0的 MUS graph. (Q;C)e表示查询Q所指定的而C i没有指定的功能 特性,反之亦然,即必须在Ci中添加或删除以使Ci的功能与C相同的那些功能。给定两个可重用组件C1 和C2,第一个更接近于Q,根据功能自适应,表示为(Q;C1)(Q;C2),当每次(Q; C1)vO(Q; C2).我们感兴趣的是检索组件C,其最大化关于当前查询Q的功能共识,并最小化其功能适应:定义7.10函数调整向量,记为(Q; C),考虑了两个特征:(Q; C)=((Q; C);(Q; C))。给定两个可重用组件C1和C2,C1使其功能特性等于当前查询Q的自适应效率小于C2的自适应努力,表示为(Q;C1)(Q;C2),当:((Q;C1)( Q;C2))_( Q;C1)=O( Q;C2))^(( Q;C2)( Q;C1)7.2.1根据查询给定任何精化关系 (在表2中定义),可以重新排序- 一组可重用组件C=fCgm,用于当前查询Q,即,ii=1对结果f(Q;C)gm进行排序根据偏序关系之一ii=1定义见7.6、7.7、7.8、7.9或7.10。偏序关系的图形表示可以简化如下:由于关系被理解为自反的,我们可以省略从点回到自身的箭头;由于关系被理解为传递的,我们可以省略由箭头序列连接的点之间的箭头;并且当30表示是这样定向的,所有的箭头都指向一个方向,我们可以省略箭头。偏序关系的图形表示,其中所有箭头都被理解为向上指向,也称为关系的哈斯图[11]。C1;C6C5C3C2 C4颈7表2语义精化函数因此,这些新的偏序关系可以用Hasse图来表示,例如,在图abovee中,其中(Q;C1)和(Q;C6)是由定义的偏序关系中的上值,而(Q;C7)是下值。正如在前面的小节中所解释的,这些偏序关系可以被简化为由T C1定义的偏序关系。函数,当每个查询Q都有一些函数循环时,或者TC函数,在其他情况下。 由于这些偏序关系,我们可以发现在检索过程的第一阶段检索到的组件之间没有任何关系的情况,因此在这种情况下,我们必须在它们之间应用全序关系,以便能够在潜在的合适组件之间进行决定:定义7.11给定表格2的语义细化关系,并且给定两个可重用组件C1和C2,例如(Q;C1)和(Q;C2)不是TC或TC1相关的(根据Q的特性),第一个组件比第二个组件更接近查询Q,符合标准,如果[f]((Q;C1))]((Q;C2)). Car dentalfunction]((Q;Ci))获得(Q; C i)。8应用实例在本节中,我们通过一个小例子展示了ARIFS工具建立的检索过程中涉及语义和结构搜索的所有步骤。从一组SCTL的要求,构成一个查询Q,我们试图检索一个可重用的组件从一个给定的存储库,最大限度地减少适应的努力,以避免合成任务和未来的正式验证。在本例中,这组SCTL要求如下:名称符号式Func. 共识(C;C0)gu g0Func. 赤字(C;C0)g( gu g0)Func. 过量“(C;C0)g0(gu g0)Func. 适应(C;C0)[“(C;C0)31a BCDG1一Bee1vTCCFD一BG6eD年q1vTCG51vTC一BC(a)R1))(b)d)QR1(c)(e)R1))检索过程的第一步开始获取查询的搜索模式由于Q具有函数环,因此搜索模式用TC 1函数表示:TC 1(Q)=(a( e)+;ac;aec;a( e)+c;bd)表示语义检索,而用NE 1表示语义检索。一个是NE 1(Q)=((2)+;2;3;(3)+;2)。G2g4g3g4(a) T C1 排序(b)NE1 订购见图4。存储库的不同排序假设存储库由6个可重用组件组成,其MUS图如图4(a)所示,根据TC 1标准,粗略搜索的结果是前驱可重用组件的集合P(Q)=fg1;g5 g和后继可重用组件的集合S(Q)=fg6 g。因此,集合C=P(Q)[S(Q)构成检索过程的第二阶段,即语义精细检索的起点。当我们试图恢复的组件,最大限度地减少适应工作的查询,细化的标准必须是功能调整向量。首先,我们得到了T C1 函数应用于C中的每个可重用组件:T C1(g1)=(ac;bd)T C1(g5)=(a(e)+;bd)T C1(g6)=(ac;aec;a(e)+;a(e) +c;e(f)+;bd)其次,必须为C的这些可重用组件中的每一个获得向量(Q;gi)。下表存储了计算这些向量的中间步骤和最终结果。1一CvTCBF一CBDeFG一BeDG51a BvNECD1G1vNE一BeeC FD一Q1G6BCvNE11G2vNEvNE一v1NECBDeG一FCBG3F32G6f8 2 CgSf g C P[ SPfgGi(Q;gi)“(Q;gi)(Q;gi)G1(ac; bd);(a( e)+; aec; a( e)+ c)G6 (ac; aec; a( e)+; a( e)+ c; bd)(e( f)+);G5(a( e)+; bd);(ac; aec; a( e)+c)Gi(Q;gi)(Q;gi)G1(a( e)+; aec; a( e)+ c)((ac; bd);( a( e)+; aec; a( e)+ c))G6(e( f)+)((ac; aec; a( e)+; a( e)+ c;bd);( e( f)+))G5(ac; aec; a( e)+c)((a( e)+; bd);( ac; aec; a( e)+ c))在获得向量(Q;gi)之后,gi,我们应用7.10中定义的偏序关系,其结果如图5(a)所示。由于这种部分排序,我们无法得出结论,哪些可重用组件需要较少的修改来适应当前查询,根据定义7.11,可以获得它们之间的总顺序(图5(b))。因此,g6是一个可重用的组件,它对Q的适应工作较少.g1;g5g1g6g5(a) 部分排序(b)全排序图五.用函数调整向量关系粗略结构搜索的结果,根据NE1 标准,如图4(b)所示,其中前代可重用组件的集合(Q)= g5; g3,后继组件的集合 (Q)=G6 . 因此,=(Q)(Q)构成了检索过程第二阶段的起点:结构化精细检索。在第二阶段,我们得到了非有限演化的数目C中的每个组件与查询Q之间的距离:dfe(g5;Q)=(2;3;3+)dfe1( g5;Q)=(2;3;2)dfe(g6;Q)=(2+)dfe1( g6;Q)=(1)dfe(g3;Q)=(1;2;2;3;2+;3+)dfe1( g3;Q)=(1;2;2;3;1;2)作为d1 (g;Q)=p15,d1 (g;Q)=1且d1 (g;Q)=p2 3,因此,g为NE5NE6东北部3 6也是根据NE1标准的最接近查询Q的可重用组件33这个小例子表明,有一个两层的检索过程,我们能够减少根据当前查询的动态排序而不是重新排序34ae bCF一BC根据查询所指定的功能来分析存储库中的每一个可重用组件,我们能够减少这项任务,只分析在检索过程的第一步中检索到的小子集。9选择与适应一旦检索过程完成,用户必须在两个可重用组件之间进行选择:从结构的角度来看,最接近当前查询的可重用组件这一决定必须根据ARIFS在两种情况下提供和预测的适应努力来完成-结构距离或语义差异。只要所选的可重用组件在语义上与查询最相似,就需要执行语义适配任务首先,需要增加由检索到的组件g指定的功能,以便满足由查询Q指定的功能。ARIFS从预测这种增加的努力的α(Q;g)开始设置这种适应任务其次,需要消除由检索到的组件g指定的、查询Q没有指定的功能。这个约简任务由ARIFS用来调整g的“(Q; g)”预测。最后,修改
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功