没有合适的资源?快使用搜索试试~ 我知道了~
基于代理的系统架构规范化-组件和树状层次结构的优化设计
理论计算机科学电子笔记160(2006)335-348www.elsevier.com/locate/entcs基于代理的系统的体系结构规范化连文1软件质量研究所内森,布里斯班,昆士兰州,4111,澳大利亚地理信息系统Dromey2软件质量研究所内森,布里斯班,昆士兰州,4111,澳大利亚摘要能够系统地将基于组件的系统的原始架构改变为期望的目标架构而不改变系统的功能需求集是一种有用的能力。它开启了使任何系统的架构符合特定形式或形状的可能性我们的选择。行为树表示法可以通过插入动作-惰性桥接组件-状态来实现此功能。例如,我们可以将典型的网络组件架构转换为具有显著优势的规范化树状架构。我们还可以使用这种“架构更改”能力,在功能需求发生更改时保持系统架构的稳定。本文中的结果建立在早期的工作,正式的过程中,建立一个系统的需求和正式的影响,需求变化的系统设计关键词:组件,软件体系结构,形式化方法,行为树,遗传软件工程。1介绍软件体系结构是软件工程中的关键问题之一。在本文中,我们将使用组件交互网络(CIN)[1,2]的概念作为我们选择的架构构造。CIN是一个图形,它显示了软件系统通常,低耦合系统更便携且更易于维护。在本文中,我们提出了一个树状层次结构作为优化的组件1电子邮件:l. gu.edu.au2电子邮件:g. griffith.edu.au1571-0661 © 2006 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2006.05.032336L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335因为树的可伸缩性和简单性,树是具有最小耦合量的连通图。许多体系结构风格,如我们把具有树形CIN的软件系统称为规范化系统;把非规范化系统转换为规范化系统的过程称为架构规范化。通常认为,软件体系结构是由系统的功能需求决定的,或者至少在很大程度上受到系统功能需求的影响。一个复杂的系统可能不可避免地产生一个复杂的架构。然而,我们的研究表明,CIN的拓扑结构可以独立于系统满足的功能要求。为了证明这一点,我们使用遗传软件工程(GSE)设计过程[1]。GSE为设计基于构件的软件系统提供了一种形式化的方法。GSE的基本过程包括三个步骤。 首先,将每个单独的功能需求(手动)转换为相应的树结构图,称为需求行为树(RBT);然后将这些树集成为一棵大树,称为设计行为树(DBT);最后从DBT中检索其他设计图,包括组件架构(CIN)。在GSE中,由于最后两个步骤的过程是明确定义的,一旦RBT集被固定,相应的CIN也被固定。因此,这个问题的焦点是我们如何可以有不同的集合的RBT相同的集合的功能要求。 要做到这一点,第一个方法是调整顺序 如果RBT中的节点的顺序没有由功能需求指定,则可以使用RBT中的节点;第二种方法是插入桥接组件状态,这类似于CSP中的隐藏事件[8]。 第二种方法是更系统的,可以转移将CIN转换为任何预定义的形式,而不排除功能要求。换句话说,组件架构可以独立于功能需求。GSE不仅为基于构件的软件设计提供了一种系统的方法,而且为基于构件的软件设计提供了一种形式化的方法,进行变更影响分析[2]。 当一个软件系统已经调整,由于功能需求的变化,一个可追溯性模型已被提出来显示组件架构以及其他设计文档上的变化的影响。有时候,系统功能需求的变化会影响体系结构。系统的重复改变最终可能会破坏系统的架构。然而,基于本文的结果,它是可能的设计师,以保持架构或最小化的变化影响时,功能需求已经改变。 如果组件架构一个大型系统在其整个生命周期内都能保持稳定第二部分简要介绍了政府支持企业的概念。第三部分介绍了体系结构转换理论。在第四节中,我们提出了软件规范化的概念,并对微波炉进行了案例研究L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335337已经提出来说明架构转换理论和规范化系统的简单性。最后,对全文进行了简要的总结。2基因软件工程2.1行为树行为树表示法,已经给出了一个正式的语义[1],捕捉在一个简单的树状形式的组成组件的状态。它在自然语言表示中所表达的内容与其形式规范之间提供了一种直接且清晰的可追溯关系。例如,句子组件状态表示法的主要约定是与组件、[State]、??事件??还是a?决定?究竟什么可以是一个事件,一个决定,一个国家,是建立在表达式3的形式基础。为了帮助跟踪原始需求,遵循一个简单的约定标签(例如:R1和R2等,见下文)用于引用正在翻译的文档中的原始要求。系统状态用于对高级(抽象)行为进行建模。它们由带有双线边框的矩形表示。 有关最新GSE符号的详细信息,请浏览SQI论文网站[3]。2.2GSE设计流程使用GSE设计过程构建基于组件的体系结构有三个主要步骤。第一步是将每个功能需求转换为一个或多个相应的需求行为树(RBT)。第二步是将所有的RBT集成到一个单一的设计行为树(DBT)中,第三步是投影组件交互网络(CIN)和许多其他设计文档。GSE程序的进一步细节在别处给出[1,3]。为了最大限度地沟通,我们的目的是以相对非正式的方式介绍设计方法的主要思想。 整个设计过程 在第一个例子中,最好通过观察它对一个简单例子的应用来理解。稍后,将对同一示例进行规范化,以解释所提出的方法如何操纵DBT,以便将相应的组件架构转换为树结构。我们使用一个微波炉的设计实例,该实例已在文献[1,2]和[4]中发表。七[3]对于一般性的讨论,我们可以把一切抽象为一种状态,而不管它是一个“事件”还是一个“决定”。338L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335表1给出了微波炉问题的功能要求。表1微波炉功能要求• R1 有一个单一的控制按钮可供用户的烤箱。 如果烤箱是闲置的门是关闭的,你按下按钮,烤箱将开始烹饪(即,通电电源管一分钟)。• R2. 如果在烤箱烹饪时按下按钮, 多煮一分钟• R3. 当门打开时按下按钮没有效果(因为它被禁用)。• R4 当烤箱在烹饪或烤箱门打开时,烤箱里的灯会继续。• R5. 打开门就可以停止烹饪。• R6. 关上门就把灯关掉了。这是正常的空闲状态,在烹饪之前,当用户已经将食物放置在烤箱中时。• R7 如果烤箱超时,灯和电源管都关闭,蜂鸣器发出声音表示烹饪完成。要求7(R7)的翻译如图1所示。从图1, 我们可以看到,最初,烤箱处于“烹饪”状态。当烤箱超时时,LIGHT关闭,POWER-TUBE关闭,BEEPER发出声音等。根状态“OVEN [烹饪]”中的为完整的需求集翻译的行为树可以在[1]中找到当需求转换完成后,每个单独的功能需求被转换为一个或多个相应的需求行为树(RBT)。然后,我们可以系统地和增量地构建一个设计行为树(DBT),将满足其所有要求。集成两个行为树的过程由前提和交互公理指导[1]。如果RBT的根节点存在于另一个RBT中,则RBT可以在该点处被集成到第二棵树中。 例如,对于图2所示的R3和R6的行为树,发现R3的根节点DOOR[Closed]存在于树R6中,因此R3的RBTR3可以与树集成,为R6创建一个新的树,如图所示3 .第三章。使用相同的行为树嫁接过程,通过成对集成RBT和/或DBT,逐步构建(它会进化)完整的设计,直到我们剩下一个最终的DBT,如图4所示(R8是原始功能需求中缺失的需求,但可以通过微波炉的公共领域知识轻松识别)。当所有需求都是一致的、完整的、可组合的并且不包含冗余时,这是可实现的设计构造的理想。一旦设计行为树(DBT)已经构建,下一个任务是检索组件交互网络(CIN)和其他设计图。L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335339图1.一、需求R7的行为树图二、需求R3和R6的行为树图3.第三章。R6和R3的积分结果(第二部分)在DBT表示中,给定的组件可以出现在不同的部分中树的不同状态(例如,OVEN组件可以在树的一部分中以打开状态出现,而在树的另一部分中以烹饪状态出现)。以不同的方式解释我们前面所说的,我们需要将设计行为树转换为基于组件的设计,其中每个不同的组件仅表示一次。非正式地,该过程从设计树的根开始,并系统地沿着树向下移动到叶节点,包括每个组件和每个组件交互(例如,箭头),这不是已经340L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335图四、整合所有功能需求图五、组件交互网络(CIN)L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335341礼物当系统地完成这一点时,树就被转换为基于组件的设计,其中每个不同的组件只表示一次。我们称之为组件交互网络(CIN),它显示了组件之间的交互关系,并提出了组件的体系结构。从微波炉设计行为树导出的CIN如图5所示。投影其他类型的设计图的算法与本文的主题无关,因此在此不再赘述3架构转换理论3.1定义在CIN的原始定义中,链路是定向的。如果有两个链环La和Lb在不同方向上连接一对分量Ci至Cj,则La和Lb被视为两个分离的链环。在本节中,为了简化讨论,我们将La和Lb合并为一个单一的链路,无需解释,任何链路都应该是双向的,并且单向链路只是双向链路的特殊情况(如果我们将CIN抽象为双向图,则这种差异是不可观察定义3.1网络是一个包含链接和组件的图,每个组件在网络中只出现一次,并且在两个不同的组件之间,最多存在一个链接。链路由两个分量标识,例如(C i,Cj),其中C i和C j是网络中的两个分量。定义3.2在网络N中,如果两个组件之间存在链接,我们说这两个组件是直接连接的。 假设C1,C2,..., C m是N中的m个不同分量,如果对所有1 ≤ i ≤(m − 1),C i和C i+1直接连通,我们称C1,C2,., m形成一条路径,这条路径的长度为m-1。定义3.3一个网络称为连通网络,如果对于属于这个网络的所有元件对C i,Cj,在这个网络中存在一条从C i开始到C j结束的路径。定义3.4从一个DBTT,我们可以通过GSE中定义的算法投影一个CINN命题3.5CIN是一个连通的网络。证据设T是DBT,N是关联的CIN,我们有N=M(T),并且Ci,Cj是属于N的两个分量。假设Cr是与T中的根节点相关联的分量。 根据从T投影N的算法,很容易证明N中Ci和Cr之间存在一条路径。类似地,在C j和Cr之间存在路径。将两条路径合并在一起,我们有一条连接Ci和Cj的路径,因此N是一个连通网络。CIN必须是连通网络这一事实对于证明论文的主要定理很重要342L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335图六、一个简单的DBT的4个组件和4个状态见图7。 图中所示的T的CINN。6图8.第八条。所需的CINN通过在关联的DBT中插入节点,将其转换成任何优选的形式。在我们证明这个定理之前,在下一小节中,我们将用一个简单的例子来说明基本思想。3.2一个简单的例子图6示出了简单的DBTT,并且T的相关联的CINN在图7中示出。为了简化讨论,我们去掉了N中的箭头现在我们假设CINN是在图中显示的。 8是最理想的。 问题是我们如何在T中插入桥接组件状态,以使新树的关联CIN成为简单的N个。N的链路集为 LN={( C1 , C2 ),( C1 , C3 ),( C3 , C4 )},N的链路集为LN={(C1,C4),(C1,C3),(C3,C2)},由于(C1,C4)和(C3,C2)的链路都在LN中,而不在LN中,所以我们可以在T中添加两个节点,从而生成一棵如图所示的新树TJ. 9 .第九条。L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335343图9.第九条。在树T中添加两个桥接组件状态以创建树TJ图10个。插入两个以上的桥接组件状态以消除不需要的直接连接设NJ是TJ的关联CIN,则显然NJ的链路集为:LN J={(C1,C2),(C1,C3),(C3,C4),(C1,C4),(C3,C2)}。LN与LN Jit的比较发现LNj中存在(C1,C2),(C3,C4)链,而LNj 中不存在(C3,C4)链. 为了删除多余的链接,我们需要在不需要的链接之间插入桥接组件状态直接联系。在图9中,存在从C1[Foo1]到C2[Foo2]的直接连接。因为C1和C2不应该直接连接,所以我们需要在这两个节点之间插入桥接状态。通过分析N,我们发现连接C1和C2的路径是C1,C3,C2,因此我们应该在C1[Foo 1]和C2[Foo 2]之间插入一个C3的桥接组件状态;通过类似的分析,我们知道应该在C3[Foo 3]和C4[Foo 4]之间插入一个C1图10中示出了所得到的新树。检查这棵树,我们发现如果我们删除C4[Brg1]和C2[Brg2],相关的CIN将不会被删除。因此,我们去掉这两个节点,得到图中所示的最终T十一岁很容易证明N_∞=M(T_∞). 如果我们忽略T的桥互补态,则T的最优解与T的最优解完全相同。 这个简单的例子清楚地说明了我们如何通过在DBT中插入桥接组件状态来将组件体系结构转换为新的形式。3.3行为不变性定理定义3.6桥组件状态,也称为 桥状态简而言之,是行为树中的一个特殊状态。当从解决方案域观察树时,它是可见的,但当我们在问题域中观察树时,它就变得不可见了。它类似于CSP中隐藏事件的概念[8]。当我们观察344L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335图 十一岁删除不必要的桥接组件状态,并获取最终值一个系统从更高的层次,一些低层次的细节变得不可观察通常,设计行为树(DBT)是连接系统的两个域(问题域和解决域)的桥梁。在问题域中,DBT应该捕获所有功能需求,而在解决方案域中,许多设计决策是直接从DBT中出现的属性命题3.7当我们在DBT中插入桥接状态时,桥接状态不会改变行为树所捕获的功能需求定理3.8设T是DBT,N是它的关联CIN,其中N = M(T)。补充剩余的部分,总共是部分C1,C2,., N和N中的C s是一个任意连通的网络,它包括且仅包括那些s个分量。然后通过在T上加上扩展节点,就可以产生一个新的DBTT,它具有N个CIN,其中N个CIN=M(T_IN)。与相关联的是的。 我们比较N和N′ ,因为它们有相同的连通集,如果它们不同,它们一定有不同的连通集。如果存在仅存在于N树中的链接(C i,C j),则我们可以简单地将Cj的节点添加到树T中的Ci的节点下,以使相关联的CIN具有链接(C i,Cj)。因此,问题是我们如何通过在T中插入n个节点来从N中删除不在N中的链路。如果一个链接(Cl,Ck)只属于N,那么在树T,必须有Cl的节点直接连接到Ck的n odes。由于网络是一个连接的网络,因此必须存在一个N中的C1和Ck之间的路径。 排除Cl和Ck,假设路径的剩余部分是Cn1,Cn2,.,C nt,则在T中Cl的节点和C k的节点之间的直接连接的每次出现处,我们添加一系列节点C n1,C n2,.,C nt。那么修改后的行为树的关联CIN将不具有(Cl,C k)的直接链接。因为插入的节点是根据N中的现有路径来排序的,所以新状态的插入将不会引入不在N中的额外链路。定理3.9设T是DBT,N是它的相关CIN。N有s个分量C1,C2,...,C和N是一个任意的连接网络,它只包括那些件. 然后,我们可以创建一个新的DBT T,它捕获与T相同的函数条件集,并且具有N=M(T)。L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335345−−- -这个定理是定理3.8和命题3.7的直接结果。它指出组件架构可以独立于功能需求。因此,我们有可能研究通用的优化软件架构,而不管特定系统的功能需求。在下一节中,由于树的一些独特的功能,我们提出了一个树结构的体系结构作为一个可能的通用优化形式的软件体系结构4软件规范化4.1树和标准化DBT树有许多等价的定义和许多数学性质暗示了这种等价性[9]。由于大多数性质是显而易见的,我们将不再重复一些证明。命题4.1连通图是树当且仅当图中的每对节点之间只有一条唯一路径。[9].连通图是树当且仅当没有循环路径。命题4.2一个有n个节点的连通图至少有(n 1)条链路。它是一棵树,当且仅当有(n 1)个链接时。换句话说,树是一个连接图,具有最少可能的链接数[10]。定义4.3如果关联的CIN是一棵树,则DBT称为归一化DBT具有规范化DBT的软件系统称为具有规范化体系结构的规范化软件系统。定理4.4任何DBT都可以被标准化(转换为标准化的DBT)而不改变功能要求。(定理3.9的直接结果)。命题4.5对于有n个分量的CIN N,链路数必须大于或等于(n 1)。 链接数等于(n 1),如果且 只要系统正常化。如果我们使用组件之间的链接数量作为软件系统架构复杂性的度量,命题4.5表明规范化的软件系统具有最简单的架构。命题4.6设T是一个DBT,N是它的关联CIN。当且仅当对于N中的所有分量对Ci和Cj,在N中的两个分量之间仅存在一条路径时,T被归一化,前提是DBT中的节点没有两次被包括在路径中。这个命题是命题4.1和规范化系统4的定义的直接结果。它是规范化软件系统的一个重要特征对于大型软件系统,我们经常面临在不同组件之间传递引用、消息或属性的问题。因为我们不能4对于一对组件,它们之间可能会交换多种类型的信息,例如数据流或控件。然而,在本文中,我们假设我们可以应用一种类型的抽象连接,可以传递所有不同类型的信息。346L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335要使每一对组件直接相连,我们必须使用一些组件作为桥梁来传递消息或引用。如果两个组件之间有多个路径,我们可能不知道哪些路径被使用,哪些没有,这将使变更影响分析更加困难。命题4.7如果在两个树结构的CIN中不存在相互分量,则当两个CIN通过链路连接时,新的CIN也是树结构的。命题4.8考虑两个树形结构的CINsN1,N2。如果两个CIN中只有一个共同分量C,则可以通过共同分量C将两个CIN合并;则合并的CIN也是树结构的。定理4.9如果一个归一化的DBTT通过切断一条链路被分成两个DBTT1和T2,则T1和T2也是归一化的DBT。证据如果T1未被归一化,则设N1为T1的相关CIN.N1不是树结构的.根据命题4.6,N1中至少存在一对由一条以上路径连接的分量Ci,Cj,当T1和T2合并到原T中时,由于T1中没有链路在T中丢失,因此T的关联CIN具有N1中的所有链路 因此,连接C1和C2的多条路径也在T因此,我们知道T1是标准化的,同样地,T2也必须标准化.命题4.7、命题4.8和定理4.9规定了树的一个重要特征。也就是说,如果一棵树被分成两部分,每一部分仍然是一棵树;如果两棵树被整合成一个图,如果整合是基于某些特定的规则,那么这个图也是一棵树。这个特性对于构建大规模系统很重要,因为归一化特性可以在不同的级别上保持4.2为例在第二部分中,我们以微波炉为例,阐述了广义搜索引擎的基本概念。在这里,我们将对其进行规范化,以演示如何通过规范化来简化组件架构。图12示出了归一化的DBT。规范化过程是插入桥接状态和调整某些状态的顺序的混合。桥组件状态用灰色填充。DBT的相关CIN如图所示13岁将归一化DBT与图4中的原始DBT进行比较,我们发现两个行为树之间的差异是微不足道的,并且两个DBT都捕获了表1中的所有功能需求。然而,这两种CIN之间的差异是显著的。 图13所示的CIN比原来的CIN简单得多。图5中的CIN。尽管微波炉案例研究是一个只有7个组件的小系统,但架构规范化极大地简化了组件架构。如果相同的过程应用于大型系统,我们预计简化对组件架构的影响将更加显著。图中所示的树5只有两个层次。这并不意味着正常化过程只能产生两个水平的CIN理论上,我们可以让L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)335347图12个。微波炉案例研究的规范化DBT图13岁与图1中的DBT相关联的树结构CIN12CIN作为任何优选形式,但由于篇幅所限,本文不能给出进一步的348L. 温,G.R.Dromey/Electronic Notes in Theoretical Computer Science 160(2006)3355结论本文讨论了两个问题:系统的功能需求与构件体系结构之间的关系,以及对系统体系结构变化的控制。这项工作的结果显示了使用树状架构作为优化形式的优点,由于其简单性和可扩展性。系统的组件体系结构必须支持所有组件的实现。一个系统的综合行为。后者又由系统的一套功能要求所暗示。当前的软件工程实践表明,对于给定的问题,存在许多不同的设计方法问题的解决方案[11],其中每一个都可能导致具有不同组件架构的系统。我们所要做的是建立一组功能需求和系统组件架构之间的关系,然后展示如何实现架构的系统更改而不考虑系统满足的功能需求集一旦我们有办法系统地改变组件架构我们可以同样有效地使用这种力量来抵抗系统架构变化的后果。众所周知,软件工程实践中,对软件系统功能需求的重复更改往往会逐渐降低原始组件体系结构并增加维护成本。本文的研究结果表明,当系统发生变化时,我们通常可以保持组件体系结构的稳定。这对降低软件维护成本具有重要意义引用[1] 杰奥河G.,从需求到设计:形成关键步骤,(特邀主题演讲),SEFM2-11,布里斯班,2003年9月[2] 温湖,加-地德罗梅河G.,从需求变更到设计变更:正式路径,SEFM 2004,pp。104-113,2004年。[3] SQI Paper,http://www.sqi.gu.edu.au/gse/papers.[4] Shlaer,S.,Mellor,S.J.,“实时系统的结构化开发”,Vols。1-3,Yourdon Press,1985.[5] 巴斯湖Clements,P.和Kazman,R., 1998年[6] Sta Escherichord,J. A.,Wolf,A. L.,“软件体系结构”,基于构件的软件工程,把 第20章,2001年[7] 佩里,D.,Wolf,A.,软件架构研究的基础,SIGSOFT软件工程笔记,卷。号1710月4日一九九二年[8] 霍尔,C.A.R., “Communicating Sequential Processes”, Prentice-Hall,[9] Knuth,D.E、Addison Wesley Longman,1992年[10] 塞奇威克河,[11] 格拉斯河,巴西-地L.,[12] Medvidovic,N.,“中间件在基于架构的软件开发中的作用”,SEKE,02,2002.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功