没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记166(2007)27-46www.elsevier.com/locate/entcs开发演化过程中构件选择的一种方法论途径巴特·乔治1法国南布列塔尼瓦纳大学R'egisFleurquin2法国南布列塔尼瓦纳大学Salah Sadou3法国南布列塔尼瓦纳大学摘要软件工程的主要目标之一是以简单的方式构建复杂的应用程序。为此,软件组件必须通过它们的功能和非功能属性来描述。 那么,问题是在软件开发或演化过程中,了解哪个组件满足特定组合上下文中的特定需求。我们声称,这是一个问题的替代品,我们提出了一个需要知道的替代模型,考虑到功能和非功能特性。保留字: 软件构件,非功能属性,替代,理想构件,差异。1介绍面向对象的编程应该允许我们构建或维护一个像拼图一样的软件,它的各个部分都是“由第三方组合”的单元1电子邮件地址:bart.george univ-ubs.fr @2电子邮件:regis. univ-ubs.fr3电邮地址:salah. univ-ubs.fr1571-0661 © 2006 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2006.06.01428B. George等人/理论计算机科学电子笔记166(2007)27[19 ]第10段。这样的单元的示例是COTS(成品货架),其是来自多个制造商和来源的商业产品当一个人开发和维护基于组件的软件时,会出现一些问题,我们注意到两个主要问题:在开发这样的软件时,如何选择最合适的组件来满足确定的需求?在维护过程中我们认为这两个问题都与一个替代问题有关。事实上,当一个人构思或维护一个应用程序时,需求就出现了。为了描述它们,设计师或维护人员可以想象理想的组件。这些虚拟组件代表了满足这些特定需求的最佳组件。然后,问题是找到最接近理想的具体组成部分。换句话说,尝试组合或维护组件意味着尝试用具体的组件替换理想的组件。然而,组成不仅仅涉及功能特性。大多数组件是“黑盒”,不仅必须描述功能,而且还必须描述非功能属性。由于每个软件都需要一定的质量,所以人们不能考虑组成非功能属性未知的组件,同时希望无论如何都能满足其质量要求。特别是在嵌入式系统中,非功能属性与功能属性一样重要[6]。这就是为什么替代必须考虑功能和非功能特性。如何替代?有些人可能会说我们只需要使用子类型,因为一些面向对象语言将其作为一种通用的替代方式。然而,一个理想的组件让我们来解释一下什么是“context”。如果我们用一个理想的组成部分来模拟一种需要,我们将试图找到一个具体的组成部分来代替它。我们可能需要检查是否有另一个比第一个更好。然而,我们不会试图用一个新的候选人来取代旧的候选人,因为关键的概念不是候选人,而是它应该满足的需求。此外,如果这种需要发生变化,以前的候选人可能不再适合。所以用具体组件替换理想组件仅在由理想组件建模的应用程序及其需求的上下文中执行这就是为什么一个候选组件可以替换另一个组件,而它们之间没有任何子类型关系,因为每个候选组件都只与理想组件进行比较本文的其余部分将组织如下:在下一节中,我们将讨论在发展和进化过程中的替代。在第3节中,我们描述了我们所有定义中使用的通用组件和质量模型。然后,我们定义了一个面向组件的替代模型,包括模型中每个功能和非功能元素的可替代性规则(第4节)。在第5节中,我们通过一个简短的应用示例来说明这种模型的可能性在结束之前,我们描述相关的工作(第6节)。B. George等人/理论计算机科学电子笔记166(2007)27292发展和演变过程中的替代2.1组件生命周期基于组件的方法与非基于组件的方法的不同之处在于,基于组件的系统是从预先存在的组件构建的。因此,我们必须区分两个开发过程:在第一个过程中,我们将专注于设计“可重用”的组件,而在第二个过程中,我们将专注于设计“可重用”的系统(通过找到合适的,已经构建的组件并验证它们)。第一个过程应该在第二个过程开始时完成。对于第二个过程,Ivica Crnkovic等人考虑了著名的V开发过程,并将其适用于基于组件的开发[7]。这个过程的不同阶段是:需求分析和规范,系统和软件设计,组件选择和测试(取代非基于组件的方法中的实现和单元测试),系统集成,系统验证和确认,以及操作支持和维护。然而,在非基于组件的方法中,实现需要大量的排序,而在基于组件的方法中,排序不是在实现中,而是在组件的选择中。这似乎更简单,但正如[6]所述,出现了两个问题:首先,我们必须有一个寻找和评估组件的过程;其次,如果所选组件不完全符合我们的整体设计,我们必须能够在将它们集成到系统中之前对其进行调整和测试实际上,这两个问题构成了我们的替代方法的问题:哪一个组成部分最适合需求,如果这个最好的组成部分不能完全替代理想的组成部分,那么它离理想的组成部分有多远2.2替代法正如我们在前面的小节中所看到的,我们需要一种方法来根据理想组件的功能和非功能规范,从许多组件中我们必须用定量和定性的方法对具体的部件进行分级。但是,为了计算这种此外,在几个属性之间,我们需要选择最重要的属性。因此,理想组件的定义不仅涉及其功能和非功能特性,而且还涉及一个比较框架,该这种两级结构是由系统架构师建立的,他知道系统架构中组件的哪些属性最有价值。这就是为什么我们的方法针对为了组织替换,我们执行并行替换还是顺序替换?更确切地说,我们是同时用具体的成分代替所有的理想成分,还是一个接一个地代替理想成分?事实上,当我们使用理想组件的概念时,你必须30B. George等人/理论计算机科学电子笔记166(2007)27系统中的组件。让我们考虑这样的情况,其中A是理想组件X的需求的最佳候选,并且组件B是理想组件Y的需求的最佳匹配,但是A和B不太适合一起工作(例如,它们的交互引起死锁)。所以,A有足够好的可靠性,B也是,但当A和B一起工作时就不一样了。为了解决这类问题,替代过程应该是顺序的。我们认为系统的架构是逐步建立的。如前所述,我们的理想组件概念描述了应用程序在该应用程序上下文中的需求。这意味着每个理想的组成部分都是根据我们对其应用的“具体”部分的了解而具体化的。更准确地说,每当一个具体的组件取代一个理想的组件时,具体的架构就会被修改,因此下一个理想的组件就会根据这个新的具体架构进行修改和指定。3组件和质量模型本文中给出的定义被放置在以下框架中:一个组件模型,包含一个类型系统,如Java for EJB,以及一个质量模型,如ISO 9126标准[14]。在这个框架中,我们假设存在度量非功能属性的指标(例如[21]中定义的那些),因此我们的贡献将仅集中在替代模型定义上。我们也只考虑3.1类属模型我们的目标不是给出什么是组件或什么是非功能性属性的另一种定义。它定义了一种面向组件的替代,我们可以将其应用于许多现有的组件和质量模型。这就是为什么我们更喜欢给出通用模型,我们可以在其上应用我们的替代概念。Fig. 1. 通用模型通用组件模型包括组件构件,表示B. George等人/理论计算机科学电子笔记166(2007)2731组件如图1所示,我们选择保留三种组件工件:组件本身、接口和操作。组件包含提供的和必需的接口,接口包含操作。在论文的其余部分,我们提到了一位候选人,第一个是替代品,第二个是替代品,第三个是替代品。tute第二个。它们的元素分别称为候选元素和可替换元素。当我们找到替代的最佳候选者时,我们说可替代的组分或元素可以被该候选者替代。除了组件模型,我们定义了一个通用的质量模型。它的要素是质量特性(如ISO9126 [14])和度量。 我们使用现有的指标来评估和比较非功能属性(参见[11]的调查)。为什么是metrics?在文献中,已经存在几种定义和评估非功能属性的方法(参见[1]的调查)。但是这些方法通常只关注一个特定的属性或属性族,例如服务质量,它只是整个软件质量的一部分。可应用于许多属性族,并允许进行比较。这就是为什么我们认为在我们的例子中,度量代表了比较不同非功能属性的最佳方法。组件的质量属性基于我们的通用质量模型。在介绍质量模型与组件模型的元素之间的联系3.2质量模式这个质量模型由两个元素组成:代表非功能属性的质量特性,以及度量这些特性的指标(参见图1的左侧部分)。对于本文的其余部分,我们认为一个度量可以测量多个质量特性(如IEEE标准1061-1998 [13]中所提出的),但每个特性仅由一个度量测量。质量模型的要素定义如下:3.2.1质量特性:一个质量特性,或者简单的特性,代表一个给定的质量属性,最好是一个细粒度的属性(如延迟),因为我们声称只有一个度量可以测量这样的特性。3.2.2衡量标准:度量包含一组它所测量的质量特性。它还包含一组工件类型(可以在其上计算)(例如:{component,interface})、结果的类型及其单位。度量的方差解释了度量结果与所评估的质量特性之间的关系。例如,如果度量计算执行时间,则方差规定值越低越好。32B. George等人/理论计算机科学电子笔记166(2007)27两个度量值只有在度量相同时才具有可比性。因此,有两个有两个可比较的度量值M1和M0,我们可以根据方差检查M1是否优于M0。例如,如果度量类型是一个整数,表示以毫秒为单位的执行时间,那么它的方差是递减的。在这种情况下,如果根据整数比较,M1大于M0,则根据M的方差,M1实际上劣于M03.3非功能属性组件工件使用非功能属性(标注为NFP)与质量元素相关联。 伪影可与若干质量元素相关,因此若干不同NFP可属于同一伪影。NFP描述了质量特性的度量,并使用应用于后者的度量相同组件人工制品的若干NFP可共享相同度量,但不共享相同特性。在图1中,NFP的resultValue属性由工件上的度量给出。在理想组件的情况下,此属性值由应用程序的设计者给出只有当两个NFP所属的工件是相同类型且具有可比性时,才可以尝试比较它们(参见下一小节的比较定义)。如果两个国家联络点涉及相同的特征,则它们具有可比性。如果两个NFP具有可比性并且它们的resultValue属性相等,则它们相等。3.4伪影我们的通用组件模型的主要元素是工件。所有工件,无论其种类如何,都有一个质量场,即一组NFP。如果对于一个质量场的每个NFP,在另一个质量场中有一个可比较的NFP,则两个工件的质量场是可比较的。两个质量场相等,如果对于一个质量场的至少一个NFP,另一个质量场中存在相等的NFP,反之亦然。现在让我们描述不同种类的工件:3.4.1运营接口操作 ,αn)4及其结果 β型。注意到(α1,…,αn)−→β。如果两个操作的签名是可比较的,则它们是可比较的。两个操作签名T和U是可比较的,如果它们相等或者如果存在类型替换V使得V。T等于U,或者T等于V。联合4为了简单起见,在我们模型的当前版本中,我们没有考虑参数的顺序。B. George等人/理论计算机科学电子笔记166(2007)2733例如,如果我们考虑Java它对应于Zaremski和Wing如果两个操作的签名对类型名称的重命名取模后相等,并且它们的质量字段相等,则它们是3.4.2接口。组件如果对于PI0的每个操作,在PI1中存在可比较的操作,则候选提供的接口PI1与可替代提供的接口PI0可比较。如果对于RI1的每个操作,在RI0中存在可比较的操作,则候选所需接口RI1与可替代所需接口RI0可比较。两个接口(提供的或必需的)是相等的,如果它们的质量场相等,并且对于一个接口的每个操作,另一个接口中存在相等的操作,反之亦然。3.4.3件.软件组件由一组提供的接口和一组必需的接口定义如果对于C0的每个提供接口,存在C1的可比较的提供接口,并且对于C1的每个需要接口,存在C0的可比较的需要接口,则候选组件C1与可替换组件C0可比较。如果C1不能与C0相比,它就不能代替C0.4替代模型我们的模型的目标是衡量一个候选组件与理想组件的区别我们选择的实现这一目标的方法是比较NFP4.1权重、惩罚和差异对于每个NFP,我们附加一个权重(或比较权重),标记为比较P,并附加一个惩罚,标记为惩罚P(P是NFP)。这两个值定义了NFP这两个值越高,这个NFP就越重要如果可替代工件拥有NFP,并且候选工件拥有具有更优值的可比较工件,则候选工件的机会与比较权重成比例地增加。否则,惩罚将被用来制裁这种缺乏。候选组件还可以带来可替换组件不具有的他自己的新NFP。这些新元素将由理想的组件设计师进行评估。替代差异或差异是使用这些权重、惩罚和NFP的结果值来定义的这种差异将告知替代品-34B. George等人/理论计算机科学电子笔记166(2007)27NFP或人工制品的性质。 替代的最佳候选是具有最低差异的候选。如果差异是负的,则根据当前上下文,候选元素可以被认为 如果差异是正的,那么候选人更差。如果差异等于0,则两个被比较的元素是对于每个理想的组件,有一个最大的替代差异,由其设计师固定。让我们考虑一个组件C1,一个候选人的subjugation,另一个组件C0。如果C1和C0之间的替换差异大于与C0相关联的最大差异,则C1将被拒绝。4.2NFP结果值的标准化比较对于每个NFPP,resultValue属性由P 问题是进入同一件艺术品对于理想分量,NFPPX可测量(例如)其度量为以百万像素为单位的屏幕分辨率特性,而NFPPY可具有其值在0与1之间的比率度量让我们假设我们找到了一个属于候选组件的可比较工件,并且拥有分别适合PX和PY的两个NFPPA和PB。 问题是:我们如何将结果可以是(例如)数百万像素或数十万像素分辨率的比较和结果在0和1之间的比率的比较放在同一差异算法中?我们可能只会根据不同的结果值“粗略”地调整权重和惩罚,此外,尽管我们的方法针对专业用户,但我们的目标是帮助他们正确地指定他们的需求。这就是为什么我们需要将NFP的结果值规范化我们考虑规范化的两个步骤:绝对(句法)和语义。4.2.1绝对正规化让我们考虑一个可替换的人工制品A,它的NFP之一P,一个候选人工制品A1的一个与A0相当的NFP,以及A1让我们也考虑P0和P 1的resultV值属性之间的差异指示符:结果V值P0 −Variance 结果V值P1.这是一个减法,resultV值P0和resultV值P1取决于其度量的方差。例如,如果其类型是整数或整数,并且方差正在增加,则测量值将等于:resultV值P0-resultV值P1。如果方差是递减的,它将等于:resultV值P1-resultV值P0.我们将把这个差异转化为一个百分比值,称为绝对差异。它 的目标是合理化B. George等人/理论计算机科学电子笔记166(2007)2735将候选NFP与可替代NFP分开。P1和P0之间的绝对差异(表示为AD)定义如下:AD(P1,P0)=(结果V值P0−变异结果V值P1)/结果V值P0举例来说,如果属于理想组件且测量屏幕分辨率的一个可替代NFPP0预期2百万像素结果值,且如果一个候选NFPP1具有1.5百万像素值,那么此意味着P1与P0之间的绝对差异等于25%或+0.25。可以有一个负的绝对偏差。例如,如果P0-0.25.4.2.2语义规范化理想组件的设计者必须通过选择适当的满意度级别来理解句法差异。因此,她/他必须给出一个满意值或语义差异,这是一个函数f,以绝对差异为参数,其结果是1(最差可能结果)和-1(最佳可能结果)之间的数值,而0表示这正是预期绝对差异可以被语义差异放大、限制或不变,这取决于设计师的选择。1和-1之间的有界区间允许设计师在一个共同的平衡上协调几个不同的度量让我们回到解决方案的例子:如果设计师认为0.25是一个过高的绝对差异,语义差异可以使其保持不变,等于0.25,根据设计师的满意度量表,这是不好的。然而,如果设计者认为这是一个可接受的低差异,并且它或多或少是预期的,则语义差异可以等于0,这更好。P1和P0之间的语义差异(表示为SD)定义如下:SD(P1,P0)=f(AD(P1,P0)).f是将P1和P0之间的句法差异投影到包括在1和-1之间的值f取决于设计师4.2.3国家联络点之间的替代差异P1和P0之间的替代差异(表示为ND)定义如下:ND(P1,P0)=比较P0 *标准差 (P1,P0)4.3伪影之间的替代差异既然我们成功地规范化了NFP之间的差异,那么工件之间的全局差异就可以务实地进行全局求和。因此,在这里,我们将定义一个微积分,它将给出在给定上下文中将候选成分(表示为该部分的剩余部分的C1)与可替换成分(表示为该部分的剩余部分的C0这一背景是--36B. George等人/理论计算机科学电子笔记166(2007)27由分配给C0因此,在讨论工件之间的差异之前,让我们先介绍一下它们的质量场之间的差异。我们假设存在一个关系MINx∈Ef(x),它从一个元素集合E中选择一个元素x,使得函数f(x)具有最小值。4.3.1工件质量字段之间的差异让我们考虑一个可替代的工件A0,一个可比较的候选工件A1,以及它们的质量场(表示为QA1和QA0)。这些质量场之间的替代差异(表示为QD)定义如下:QD( QA1,QA0)=使用:ΣP0∈QA0ΣQDProp(QA1,P0)- P1∈QA1 QDBonus(P1,QA0)QDProp(QA1,P0)=-ND(P1,P0),若φP1∈QA1 与P0相当;否则,P0.以及:QDBonus(P1,QA0)=0,如果QDBonus(P1,QA0)∈QA0与P1相当;否则,由C0为了测量质量场之间的差异,我们试图为每个P0在A1中找到一个可比较的NFPP1(只能有一个,因为同一工件的NFP不能共享相同的特征)。没有任何可比P1的可替换NFP通过其惩罚值PenaltyP0来考虑。没有任何可比P0的候选NFP通过由C0给出的值来考虑设计师4.3.2不可比工件之间的差异。如果两个工件不可比,则它们之间将不存在任何替代差异度量。换句话说,仅对可比元素测量替代差异。4.3.3可比业务之间的差异。让我们考虑一个可替换的操作O0和一个可比较的候选操作O1。它们之间的替代差异(表示为OpD)定义如下:OpD(O1,O0)=QD(QO1,QO0)只要O1和O0具有可比性,它们之间的差异实际上就是它们的质量场之间的差异。4.3.4提供的接口之间存在差异。让我们考虑一个可替换的提供接口I0,一个可比较的候选提供接口I1,以及它们的操作OpsI1和OpsI0的集合。I1和I0之间的替代差异(表示为PID)定义如下:B. George等人/理论计算机科学电子笔记166(2007)2737PID( I1,I0)=ΣO0∈OpsI0MINO1∈OpsI1OpD(O1,O0)-ΣO1∈ OpsI1POBonus(O1,I0)+QD(QI1,QI0)使用:POBonus(O1,I0)=0,如果O0∈OpsI0与O1相当;否则,由C0为了测量接口之间的差异,我们只考虑每个O0的最低发现差异。没有任何可比O0的候选操作通过C0的设计者给出的值来考虑4.3.5可比较的所需接口之间的差异。让我们考虑一个可替换的所需接口I0,一个可比较的候选所需接口I1,以及它们的操作OpsI1和OpsI0的集合。I1和I0之间的替换差异(表示为RID)定义如下:RID(I1,I0)=-ΣO0∈OpsI0MINO1∈OpsI1OpD(O1,O0) -ΣO0∈ OpsI0ROBonus(I1,O0)-QD(QI1,QI0)使用:ROBonus(I1,O0)=0,如果O1∈OpsI1与O0相当;否则,由C0所需接口之间的差异原则与所提供接口之间的差异原则是对称的。对于提供的接口,最好是I1提供比I0更好的质量,而对于必需的接口,最好是I1要求比I0更少的质量。4.3.6可比组件之间的差异。让我们考虑一个可替换的组件C0,一个可比较的候选组件C1,它们提供的接口PIntC1和PIntC0的集合,以及它们需要的接口RIntC1和RIntC0的集合。C1和C0之间的取代差异(表示为CD)定义如下:CD( C1,C0)=ΣP I0∈P IntCMIN PI1∈PIntC1 PID(P I1,PI0)+ΣRI1∈ RIntC0Σ Σ1MIN RI0∈RIntC0 RID(RI1,RI0)-P I1∈P IntC1 PIBonus(P I1,C0)-RI0∈RIntC0RIBonus(C1,RI0)+QD(QC1,QC0)使用:PIBonus(PI1,C0)=0,如果PIBonus(PI1,C0)∈PIntC0,与PI1相当;否则,由C0以及:RIBonus(C1,RI0)=0,如果RIBonusRI1∈RIntC1,与RI0相当;否则,由C0为了测量组件之间的差异,我们只考虑每个PI0和每个RI1的最低发现差异。候选人提供38B. George等人/理论计算机科学电子笔记166(2007)27(分别)可替代的要求)接口,没有任何可比的P I0(分别RI1)通过C05例如现在让我们以需要数字视频(“DV”)摄像机组件的应用为例,该组件具有用于视频流的接口和用于摄像机控制的另一接口。它还必须符合DV标准。软件组件的摄像机示例已在[3]和[1]中进行了处理。5.1建立理想组件的图二. 质量模型的例子。上述要求可以用一个理想的组件videoCamera来表达。后者包含所提供的接口videoStream(具有operationoutputV ideoF low)、所提供的接口cameraControl(具有诸如on、record和eject5的基本操作)和所需的接口DV Format(具有参数为DV磁带的操作inputDV Flow这些需求不仅涉及功能部分,还涉及非功能属性及其各自的重要性。例如,我们假设记录和弹出操作需要高水平的可靠性(以便摄像机在记录时不会崩溃,也不会拒绝弹出录像带)。我们还假设videoStream接口需要高图像质量,例如1百万像素(1 MPixels)的屏幕分辨率根据图2的质量模型,我们使用以下特征:可靠性和图像 质 量 。 它 们 各 自 的 指 标 是 : MeanT imeToFailure ( MTTF ) 和screenResolution。然后,我们在- tach的理想组件几个NFP。对于cameraControl接 口 的 每 个 操 作 , 我 们 使 用 可 靠 性 特 性 ( onReliability 用 于 on 操 作 ,recordReliability用于记录操作,和ejectReliability用于弹出操作)附加NFP。5出于简单和简洁的原因,我们将提供的接口限制为只有三个操作。B. George等人/理论计算机科学电子笔记166(2007)2739eration)。在videoStream接口中,我们附加了NFPcameraResolution,使用了特征imageQuality。图三. 理想组件示例:videoCamera。最后,设计者为每个NFP固定预期的resultV值、权重和惩罚,并为理想组件videoCamera固定最大差异。在图3中,我们看到videoResolution的预期值为100万像 素 , 使 用 可 靠 性 特 性 的 NFP 的 预 期 值 因 操 作 而 异 。 recordReliability 和ejectReliability所需的值高于onReliability所需的值。附加到videoResolution、recordReliability和ejectReliability的惩罚非常高,以便强制候选组件包含这些NFP。videoResolution具有较低的比较权重,这意味着图像质量上的大差异不是很重要。然而,记录可靠性和弹出可靠性具有较高的权重,这意味着记录和弹出的可靠性度量差异很大。最大差异被固定在一个低水平,因此候选成分中缺少这三个NFP中的一个将很难被接受。5.2组件生命周期和替代案例既然我们的理想构件已经建模,我们就可以寻找最佳的混凝土候选构件来替代它。以下是不同的替代案例:5.2.1第一篇作文。试图将组件插入应用程序(为了满足给定的需求)意味着试图使这个具体的组件替代理想的组件(与此需求相对应)。让我们以摄像机为例。既然我们模拟了40B. George等人/理论计算机科学电子笔记166(2007)27见图4。 被拒绝的候选人的例子:V HSCamera。一个理想的相机组件,我们必须检查哪一个具体的相机是最好的候选人,以取代它。首先,根据我们的替代模型,候选者必须满足所有的功能需求,即它必须具有所有理想组件提供的服务(接口和操作),并且不能带来更多的需求。 否则,即使它具有更高的质量,也会被拒绝。 例如,让我们考虑一个V HSCamera组件(图4)满足所有功能要求,但有一个除外(它需要VHS磁带而不是DV磁带)。不管它的质量如何,我们需要一个只需要DV磁带的相机,而这个候选人增加了一个必需的接口,所以它被拒绝了。然后,候选组件(如图5中的fluidCamera组件)可能会添加理想组件设计者无法预料的新NFP。例如,视频流的每秒帧数。这对应于度量FPS(每秒帧数),它度量flowPerformance和flowQuality特性(所有这些特性都显示在图2中)。可能令人感兴趣的是具有在outputV_ideoF_low操作上使用flowQuality特性的新NFP,但候选者(fluidCamera)错过重要NFP。处罚太重,被拒绝了。我们也可以让候选人同时提供一些比理想组件更低的质量和其他更高的质量。在这种情况下,候选组件宁愿在最重要的NFP中具有良好的“分数”。例如,让我们采用候选goodImageCamera(图6),其具有出色的图像质量(200万像素而不是100万像素)和平均可靠性(2.5天而不是操作记录和弹出的3天),而图7中所示的候选reliableCamera具有平均图像质量和出色的可靠性。我们并不直接比较它们,以找出哪一个比另一个更好。我们正在分别将它们中的每一个与理想组件进行比较,以确定它是否是一个可接受的候选者。在goodImageCamera的情况下,它的语法索引是-1,或-100%,因此设计者可以非常满意并给出语义B. George等人/理论计算机科学电子笔记166(2007)2741图五. 被拒绝的候选示例:fluidCamera。index等于-1。然而,候选人的可靠性值有点低,所以设计者可以决定通过0.5的语义指数来制裁他们。 在reliableCamera的情况下,情况正好相反:设计师可能对分辨率非常不满意,但可靠性更为重要,而这一候选方案比预期的要好得多。因此,如果我们考虑这个理想的组件,以及每个候选者获得的差异,我们可以说两者都是可以接受的,但reliableCamera是最好的。5.2.2维护与不断的需求。应用程序现在有了它的相机组件,但它可以有一个“更好”的组件。需求是相同的,背景是相同的,所以理想的组件是完全相同的,但我们可以有新的候选人。所以我们必须将它们中的每一个我们回到第一个合成方案。让我们采取我们显示的最后一个候选人,reliableCamera,让我们假设它首先被选中。如果我们看到一个新的候选人(让我们称之为goodAndReliableCamera),它提出了与reliableCamera相同的可靠性,但具有1 Mpixels的分辨率。同样,我们不直接比较两个具体组件 但设计师可以更满意这个新的候选人,它带来了预期的分辨率,以及比预期更好的可靠性。所以goodAndReliableCamera更可能42B. George等人/理论计算机科学电子笔记166(2007)27见图6。 已接受的示例:goodImageCamera。以具有更好的“分数”并且更好地对应于所描述的理想组件。5.2.3不断变化的需求。该应用程序仍然有其相机组件,但现在的需求已经发生了变化。因此,我们必须提出以下问题:当前选择的组件仍然是替代新的理想组件的最佳候选者吗?毕竟,它仍然是一个可接受的组成部分吗?事实上,首先,它可能是对新功能服务的需求,比如新工件。例如,理想的摄像机组件可能不再需要读取DV磁带,而只需要读取VHS磁带这意味着删除DV格式所需的接口,并在理想组件中替换为V HS格式所需的接口。在这种情况下,我们拥有的功能上对应于这个新的理想组件的唯一候选者是之前被拒绝的VHSC相机(图4)。但它的接受程度将取决于它的质量。它也可以是对新的非功能性特性的需要,例如新的NFP中的理想成分。例如,理想的相机组件现在可能需要评估每秒的帧数。这意味着我们需要一个新的NFP,它使用FPS指标并测量flowPerformance或flowQuality特性(参见图2)。在这种情况下,先前被拒绝的fluidCamera(图5)在某些条件下可能符合新的非功能性要求。为B. George等人/理论计算机科学电子笔记166(2007)2743见图7。 接受的示例:reliableCamera。例如,新NFP的低resultV值和高比较权重,以及flowQuality作为测量特性(否则,NFP不可比)。最后,它可能是重新评估质量的需要。理想的相机组件可以具有修改的NFP值和/或修改的权重和惩罚。例如,在分辨率的情况下,我们可以有一个更好的期望值(如1.5 Mpixels)或更轻的权重(20而不是5),并且在可靠性的情况下,我们可以为测量它的NFP具有更轻的权重(例如,5而不是20)。有了这些重新调整的值,候选goodImageCamera(图6)和reliableCamera(图7)将再次被接受。但这一次,goodImageCamera比reliableCamera更有可能被接受。6相关工作在引言中,我们说过可替换性是面向对象语言中的一个众所周知的问题,包括类型[5]和子类型[15]。这也是一个内在的问题,如[20]中所提到的,他询问如何确保组件上的更改不会影响组件的现有应用程序,并试图通过基于子类型设置规则来回答这个问题。为了替换组件,我们也很容易将工作建立在子类型的基础上[18]。但我们考虑了对类型[17]和子类型[19]的批评。特别是那些说它们对于组件来说太死板、太受限制,不能处理上下文的人。这就是为什么我们更愿意尝试一种更灵活的方法。44B. George等人/理论计算机科学电子笔记166(2007)27Premysl Brada探索了部署上下文和上下文可替换性的概念[4]。组件的部署上下文是一个子组件,包含其服务的使用部分(绑定到其他组件的所提供和所需服务因此,Brada的语境替代性在于将候选成分与该子成分进行比较,而不是与整个成分进行比较。虽然这些概念似乎接近我们,但我们的工作水平不同。Brada的方法在于找到一种“架构感知”的可替代性形式,他的上下文涉及一个具体的组件,并取决于它在全球架构中的部署。我们的方法是“需求感知”的如前所述,我们的替换模型受到Zaremski和Wing的库组件规范和签名匹配的启发它们的匹配考虑了子类型化不包括的一些替换方案我们已经接近这种方法了,但是我们更进一步,考虑了上下文和非功能属性,并将我们的替换规则应用于通用组件模型。除了Zaremski例如,我们的权重概念可以与Scott Henninger的工具进行比较这些工具解析源代码,从几个关键字中提取“组件”,然后将它们放入一个库中,在库中创建单词和组件之间的有价值网络。 因此,当我们在这个库中搜索一个词或一个组件时,将使用节点的值为每个组件计算权重,并且所选择的候选项是具有最大权重的候选项。我们的方法是在一个不同的水平,因为我们搜索和选择候选日期,而不是从关键字,但从组件的结构。它可以用于这样的检索机制,以细化组件搜索,并创建更可信的库。对于我们的质量通用模型,我们受到ISO- 9126 [14]等质量标准和IEEE-1061 [13]等度量标准的启发。可以与我们的模型一起使用的现有指标的示例可以在[11,21]中找到。 但质量方面我们的模型也可以与服务质量契约语言(基于AntoineBeugnard的第四层组件契约[ 2 ])一起使用特别是,我们对替换非功能属性的关注可以与Jan Aagedal的CQ ML语言[ 1 ]进行比较然而,与大多数QoS语言一样,不考虑功能方面的CQML相反,我们的模型结合了功能和非功能方面。在Aagedal将原始成分的可替换性和复合成分的可替换性分开的同时,我们研究了两个成分的上下文可替换性,而不管它们的内部结构如何。7结论和今后的工作我们提出了一个替代模型,包括几个元素:i)一个通用的质量模型,能够使用现有的质量度量和QoS语言。ii)通用组件模型,能够使用现有的研究和工业方法。iii)aB. George等人/理论计算机科学电子笔记166(2007)2745替代差异,能够测量候选成分的可替代性。我们还引入了理想组件的概念,它对功能和非功能的概念需求进行建模,并将组合上下文考虑在内。在我们当前的框架中,我们选择考虑使用来自一个质量模型的现有质量特性和度量的一个组件模型。造成这种限制的原因是,在实际的研究和工业方案中,组合主要涉及来自相同组件模型的组件现在,我们有一个工具[10],允许我们根据我们的替代差异测量来检查一个组件是否可以替代另一个组件。该工具旨在帮助设计师找到最适合他们需求的候选人引用[1] Aagedal,J. O.,“分布式系统开发中的服务质量支持”,博士。挪威奥斯陆大学,2001年。[2] Beugnard,A.,陈文忠,张文忠,等.计算机科学与技术,2001(1),21 - 23.[3] 布莱尔,G., 和J。- B. 张文,[4] Brada,P., 论文,查尔斯大学,布拉格,捷克共和国,2003年[5] 卡尔代利湖,类型系统,在:“计算机科学与工程手册”,第一章。97,CRC Press,2004.[6] 茨尔恩科维奇岛,基于嵌入式系统的软件工程,国际软件工程会议(ICSE)会议录,2005年5月。[7] 茨尔恩科维奇岛,Stig Larsson和Michel Chaudron,基于代理的开发过程和组件开发,第27届国际信息技术接口会议(ITI)会议录,2005年6月。[8] Defour,O.,陈晓,陈晓 刚.[9] Frolund,S.和Jari Koistinen,[10] 乔治,B., 和Thomas Boggini,http://www-valoria.univ-ubs.fr/SE/Substitute/[11]Goulao , M. , 和 Fernando Brito e Abreu , Software Components Evaluation : an Overview ,Proceedingsofthe5thConferenciadaA ss ociaaportuguesad e Si s tema s d e Informaporcao ( CAPSI ) ,November2004。[12] Henninger,S.,一种构建有效软件重用库的演化方法,ACM软件工程与方法学报(TOSEM)6(2)(1997),111[13] IEEE Std. 1061-1998:IEEE软件质量标准和方法[14] “ISO/IEC 9126-1:2001 Software Engineering - Product Quality - Part I : Quality model”, ISOInternational Standards Organisation,[15] Liskov , B. , 和 Jeannette Wing , A Behavioral Notion of Subtyping , ACM Transactions OnProgramming Languages and Systems(TOPLAS)16(6)(1994),1811[16] Lucr'e di o , D. , A.F. D.PradondE.S. D.Alm ei da , ASurveyonSoftwareComponentsSearc handRetri
下载后可阅读完整内容,剩余1页未读,立即下载
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 构建智慧路灯大数据平台:物联网与节能解决方案
- 智慧开发区建设:探索创新解决方案
- SQL查询实践:员工、商品与销售数据分析
- 2022智慧酒店解决方案:提升服务效率与体验
- 2022年智慧景区信息化整体解决方案:打造数字化旅游新时代
- 2022智慧景区建设:大数据驱动的5A级管理与服务升级
- 2022智慧教育综合方案:迈向2.0时代的创新路径与实施策略
- 2022智慧教育:构建区域教育云,赋能学习新时代
- 2022智慧教室解决方案:融合技术提升教学新时代
- 构建智慧机场:2022年全面信息化解决方案
- 2022智慧机场建设:大数据与物联网引领的生态转型与客户体验升级
- 智慧机场2022安防解决方案:打造高效指挥与全面监控系统
- 2022智慧化工园区一体化管理与运营解决方案
- 2022智慧河长管理系统:科技助力水环境治理
- 伪随机相位编码雷达仿真及FFT增益分析
- 2022智慧管廊建设:工业化与智能化解决方案
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)