欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    一种动态适应性软件体系结构模型理论研究.doc

    • 资源ID:1591972       资源大小:19.94KB        全文页数:13页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    一种动态适应性软件体系结构模型理论研究.doc

    一种动态适应性软件体系结构模型理论研究Theory research of dynamic adaptive software architecture model MAO Feiqiao,QI Deyu (Research Institute of Computer Systems, South China University of Technology, Guangzhou 510640, China) Abstract:Software evolution needs the supports of software architecture with flexibility and adaptability.This paper proposed a dynamic tree software architecture model (DTSAM) with inherent dynamic character.Abstracted software system evolution as a dynamic tree growing and reducing gradually under the definition of DTSAM, in which the growing algorithm and the redu?勃?cing algorithm separately defined the growing process and the reducing process of the dynamic tree, and the adjustment of the adaptable variable in the growing function made software architecture owning total adaptability and partial adaptability on the architectural level. Finally, the result produces during the application case with DTSAM proves that adaptability. Key words:software architecture; model; adaptability; dynamic? 0 引言 对软件体系结构组织结构本身的研究16长久以来一直停留在非正式或半正式形式下,缺乏高层次的理论抽象,使得对具体一种软件体系结构的理解难以把握,容易产生模糊理解,甚至不正确理解,从而产生了导致各种软件系统不可靠性的因素;同时也使得对具体一种软件体系结构功能特性和非功能特性的分析和评估难以进行,很难上升到定量的高度79。因此,另外一些研究者就不得不寻求用形式化的方法1017在一定程度上形式化各种类型的软件体系结构,期望能够使得对这此软件体系结构的理解变得精确一些,导致软件系统不可靠性的因素尽量少一些,对软件体系结构性能的分析和评估也能尽可能地向定量的高度靠近。这种非正式性或半正式性主要表现在对体系结构的研究和描述主要依赖于使用自然语言和框线图来刻画体系结构所包含的软件构件类型、构件间的组织结构和约束规定等元素。另外,对软件体系结构组织结构本身的研究主要集中在设计静态的软件体系结构,欠缺对动态性的支持。软件体系结构这种结构上的刻板特点,也使其“牵一发而动全身”,使其缺乏灵活性和适应性,使得软件系统一旦开发完成,其演化也很困难。 针对以上问题也有一些相关研究工作。如文献18用抽象代数理论建立了一个描述软件体系结构的数学模型,使得对软件体系结构的描述研究上升到一定的理论层次,但也只是限于用数学方法对软件体系结构的描述更正式、更精确,目的主要是为了解决软件体系结构描述语言在描述软件体系结构动态、可演化和可扩充特征方面的不足,对所描述的软件体系结构本身在支持动态性、适应性和可演化性等方面的不足却无能为力。再如文献19在软件体系结构的构件和连接器形式化描述中加入了可以描述构件位置及连接类型变化的信息,使得软件系统在执行的过程中可以进行构件的删除、修改或增加,在软件构件层次上使软件体系结构具有可适应性,而如何使软件体系结构在高层次,如组织结构层次上、支持业务逻辑变化层次上,具有适应性却没作探讨;另外其形式化的抽象程度不高,没有达到数学理论的高度,所以对其所提出的软件体系结构的分析和评估也很难定量进行。可见,这些相关的研究工作还存在诸多不足。本文针对以上问题提出一种动态的,在组织结构层次上具有适应性的、呈树型渐增或渐减进行演化的软件体系结构理论模型。 1 动态树型软件体系结构模型 11 模型定义 从满足需求的角度看,软件是由软件构件按照一定的组织结构构成,软件构件间如何组织和如何交互影响着非功能性需求的满足,而软件构件间如何合作实现特定的业务逻辑则影响着功能性需求的满足。用户对软件系统的功能性需求和非功能性需求经常会有一些变化,这就要求软件体系结构具有适应性,能够支持这些变化。一个软件体系结构能够支持这些变化,其本身在组织结构上应该是动态的,这样组织结构才具有灵活性;其构件在合作关系上也应该是可以变化的,这样才能随着业务逻辑的变化,合作关系也能随着变化。鉴于这样的考虑,动态树型软件体系结构模型的基本思想是:将软件构件抽象为一个个节点,软件构件间的直接交互关系抽象为一条条生长边;软件系统是由最初的一个节点(软件构件),再逐个加入新的节点(新的软件构件),而逐步演化而成。在演化的过程中,支持旧节点(旧的软件构件)的删除(即退出)。 在定义模型前,先给出模型假设:a)每个构件是可以独立部署、独立运行的;b)每个构件都有惟一的代表该构件的非零自然数序号ID值,该序号由模型生成;c)可以退出软件系统组织结构的构件是受条件限制的;d)当同一时刻既有构件加入系统,又有构件退出系统,假设先处理退出的构件,再处理加入的构件;e)一次只有一个构件加入系统,若有不只一个构件同时需要加入系统时,假设认为同时需要加入的构件经过了预处理,变成逐个按序加入。 定义1 动态树型软件体系结构模型(dynamic tree software architecture model,DTSAM)是由七元组构成,DTSAM=(N,E,NL,h,f,v,c)。 其中:N是动态树中所有节点的集合,是非空集合,至少包含元素1,每一个节点表示一个构件,N表示软件系统所有构件的集合。E代表动态树中所有生长边的集合,可以为空。生长边是用一个有序对表示,如动态树中连接1和2这两个节点的生长边表示为(1,2)。在表示生长边的有序对中,总是靠近根的节点在前,离根较远的那个节点在后,每一条生成边表示一对构件之间存在交互关系。在软件体系结构描述中,将交互关系抽象称为连接器,所以每一条边表示一个连接器,E表示软件系统所有连接器的集合。NL代表动态树中各层节点集的集合,是非空集合,至少包含元素1,表示软件系统体系结构中各层包含的构件。h代表动态树的高,表示软件系统体系结构的层次数。f是生长函数,其值代表当一个ID值为n的新构件进入系统后,约束指出应与该新构件相连接的那个构件的ID,并且 即求集合中所包含元素的个数;运算符号“”表示取整;LI(h)和WI(h)所表达的意思参见定义2和3。 v是节点值生成函数,其值代表即将加入系统成为软件系统组织结构一部分的那个构件,也代表该节点进入系统,连入动态树上生长边的顺序,其值越大表示该节点进入系统越晚;反之,则越早。当系统中有一构件退出,不再作为软件组织结构一部分时,v函数的值要进行减1修正,以前退出系统的构件。当再次进入系统时,认为是一个新的构件,并且 v(n)=v(n)-1,当有构件退出组织结构的修正操作(4) c是常量,代表渐减规则。这里规则定为:a)根节点的构件不能退出;b)叶子节点的构件可以直接退出;c)非叶子节点构件不能直接退出,要等到其子孙节点全部退出后才能退出;d)一次只能退出一个节点(构件),不允许两个或以上节点(构件)同时退出。 定义2 纵向增长集(lengthwise increasing)是由动态树最高层的构件构成的集合,LI(h)=NL(h)。其中LI(h)表示高为h的动态树的纵向增长集。 定义3 横向增长集(widthwise increasing)是由动态树非最高层所有构件构成的集合。当h1时,WI(h)=N-LI(h)=hi=1NL(i);当h=1时,WI(h)=NL(h)=N=1。其中WI(h)表示高为h的动态树的横向增长集。 定义4 纵向增长方式是指新加入系统的节点连接在动态树纵向增长集中的节点所长出的生长边的生长方式;横向增长方式是指新加入系统的节点连接在动态树横向增长集中的节点所长出的生长边的生成方式;混合增长方式指动态树在增长过程中纵向增长方式与横向增长方式混合进行。 定义5 当一个新的节点加入系统后,长出其所连接的生长边的那个节点称为该新加入节点的生长点。生长点也是动态树中节点值与用生长函数求得的值相等的那个节点。 这里对生长函数的导出进行说明。由图1中针对节点逐渐加入所进行的组织结构可能性变化推导可以看出,从图1(a)到(d),系统组织结构中由一个节点增加到四个节点,新节点的加入引起动态树的增长。 当一个新的节点准备加入时,动态树中的每一个节点都可能被选为生长点;当一个新节点加入后,动态树可能增高也可能增宽。当纵向增长集中的某个节点被选为生长点时,动态树增高;当横向增长集中的某个节点被选为生长点时,动态树增宽。纵向增长方式下,纵向增长集中每一个节点被选为生长点的概率是1/|LI(h)|;横向增长方式下,横向增长集中每一个节点被选为生长点的概率是1/|WI(h)|。对于树型结构,当一个新的节点加入时,树只有两种变化可能性:或长高、或长宽。如果再引入适应性因子(0,1),表示在期望的增长方式下,纵向增长方式所占的理想比率,那么在期望的增长方式下,横向增长方式所占的比率就是1-。在期望的增长方式下,动态树所有节点中,其中一个节点是期望生长点。那么这个期望生长点的值就可以由期望值函数f(n)=nNP(n)×n求出。因为节点值是自然数,最后加上一个取整运算。这个期望值函数也就是定义1中的生长函数。 性质1 当适应性因子=0时,动态树仅作横向增长,组织结构退化为辐射式,节点间分布呈传统的黑板式体系结构?卣鳌? 性质2 当适应性因子=1时,动态树仅作纵向增长,结构退化为直线式,节点间分布呈传统的层次式体系结构特征。 性质3 当适应性因子(0,1/2)时,动态树以横向增长为主。 性质4 当适应性因子(1/2,1)时,动态树以纵向增长为主。 12 渐增和渐减算法 由定义1知动态树是由根节点逐渐长大的,在初始状态下就有:v(1)=1,N=1,E=?迹?NL=1,h=1,LI(1)=WI(1)=1。当一个新的节点n加入后,动态树发生增长。这里给出动态树增长的渐增算法。 1)渐增算法 (1)计算v(n)=v(n)+1,生成新加入的这个节点的节点值v(n); (2)计算生长函数,求出生长点f(n),若生长点f(n)LI(h),则动态树增宽,转(7); (3)h=h+1;/修改树高 (4)WI(h)=WI(h)LI(h);/修改横向增长集 (5)LI(h)=v(n);/修改纵向增长集 (6)NL(h)=v(n) ,NL=NLNL(n),然后转(10);/*修改各层节点集的集合*/ (7)若生长点f(n)NL(h-1),则LI(h)=LI(h)v(n),NL(h)=NL(h)v(n),然后转(10);/*修改纵向增长集和各层节点集的集合*/ (8)WI(h)=WI(h)v(n);/修改横向增长集 (9)若生长点f(n)NL(i)(1ih-1),则NL(i+1)=NL(i+1)v(n);/修改各层节点集的集合 (10)N=Nv(n);/修改动态树所有节点集 (11)E=E(f(n),v(n);/修改动态树的生长边集 当动态树中一个节点值为i的节点退出系统组织结构后,动态树发生削减,根据定义1中的削减规则,这里给出渐减?惴? 2)渐减算法 (1)若iLI(h),则LI(h)=LI(h)-i,否则转(4);/*修改纵向增长集*/ (2)若LI(h)=?迹?则NL=NL-NL(h),h=h-1,然后转(5);/删去各层节点集的集合中最高一层的节点集,并修改树高 (3)任意jLI(h),若ji,则j=j-1,然后转(5);/*修改纵向增长集中节点值大于i的所有节点的节点值*/ (4)WI(h)=WI(h)-i;/修改横向增长集 (5)任意jWI(h),若ji,则j=j-1;/*修改横向增长集中节点值大于i的所有节点的节点值*/ (6)任意NL(k)(1kh),任意jNL(k),若j-i=0,则NL(k)=NL(k)-j,若j-i0,则j=j-1;/修改各层节点集 (7)E=E-(j,i)(其中1j|N|)且任意(m,n)E,若mi,则(m,n)=(m-1,n-1),若mi且ni,则(m,n)=(m,n-1);/修改生长边集 (8)N=N-i,且任意jN,若ji,则j=j-1;/*修改动态树所有节点集,以及节点值大于i的所有节点的节点值*/ 2 模型仿真分析 假设有个小系统由软件构件八次增减逐步演化而成,其间有一次出现:某个符合退出条件的软件构件退出,其他 七次均为加入软件构件。应用上述定义的模型及其上的增减算法,对该小系统软件的体系结构进行仿真,通过调节适应性因子,观察由该模型定义的体系结构组织结构上的变化。 在仿真过程中,当适应性因子=0时,模型上各个量的变化情况如表1所示,对应的系统体系结构组织结构如图2(a)所示;(a)显示的结构特征表明动态树组织结构呈放射式,从而也证实了性质1。当适应性因子=1时,模型上各个量的变化情况如表2所示,对应的系统体系结构组织结构如图2(b)所示;(b)显示的结构特征表明动态树组织结构呈直线式,从而也证实了性质2。当适应性因子=03时,模型上各个量的变化情况如表3所示,对应的系统体系结构组织结构如图2(c)所示;(c)所显示的结构特征表明动态树以横向增长为主,从而也证实了性质3。当适应性因子=0.7时,模型上各个量的变化情况如表4所示,对应的系统体系结构组织结构如图2(d)图所示;(d)图所显示的结构特征表明动态树以纵向增长为主,从而证实了性质4。 由上述仿真观察到的结果可以看出,通过调节DTSAM的适应性因子,可以使软件体系的组织结构发生不同程度的变化,从而使得软件体系结构在组织结构上具有一定程度的适应性。另外,这种动态树结构本身使得软件体系结构在组织结构上具有一种固有的动态性,从而使其在结构上具有灵活性,避免了“牵一发而动全身”。其实,在上述仿真过程中,适应性因子的调整是在动态树开始增减之前,一旦动态树开始增减变化,适应性因子不再发生变化,所以观察到的在组织结构上的变化是一种整体性的变化,表现出一种整体性的适应性;如果在动态树增减变化的过程中调节适应性因子也是允许的,并且这种调节可以使得软件体系结构在局部发生变化,表现出一种局部性的适应性。由于文章篇幅所限,这种局部性的适应性仿真情况这里不作详细描述。 3 结束语 本文提出的这种动态树型软件体系结构模型,将软件系统在组织结构上的演化抽象为一棵逐渐增减的动态树。模型的定义及其增减算法的设计建立在离散数学的集合论、概率论以及图论的基础上,为软件体系结构组织结构本身的理论研究提供了一种新的思路,为软件体系结构定量分析和评估奠定了理论基础。通过应用所定义的模型对一个小例子系统体系结构的组织结构进行仿真,也进一步证实了该模型所定义的软件体系结构在组织结构层次上具有适应性,而且该模型所定义的软件体系结构在组织结构上具有一种固有的动态性,这种固有的动态性使其具备与生俱来的灵活性。但是,目前该模型还存在不足之处,即缺乏对软件体系结构在业务逻辑层次上的适应性支持。而这也正是下一步的研究工作。接下来笔者将在DTSAM上定义任务合作运算,以及任务合作条件生成运算。这些运算支持任务合成的变化,从而使得DTSAM进一步在业务逻辑层次上也具有适应性。

    注意事项

    本文(一种动态适应性软件体系结构模型理论研究.doc)为本站会员(吴起龙)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开