资源描述
化学抽象机在软件体系结构中的应用 3500字 摘要:软件体系结构在软件项目领域中至关重要,而软件体系结构描述语言ADL为软件体系结构的表示和分析提供了语言符号和支持工具。分析和研究了动态形式化描述语言化学抽象机CHAM及其在软件体系结构中的应用。关键词:化学抽象机;软件体系结构信息科学1概述软件体系结构是当前软件项目领域的一个研究热点,是大型软件开发中必须解决的核心技术。无数的软件项目实践证明:一个成功的软件系统往往都有一个好的软件体系结构。但是在软件设计、开发、测试、运行以及升级的各个阶段,体系结构都不可防止地会发生变化,如何把运行时适应性机制加到复杂的大规模软件系统中就成为一个重要的项目问题。然而要通过软件体系结构的研究实现这一目标,首先必须用某种方式描述动态体系结构。目前已定义的ADL超过20种,具有代表性的ADL包括C2、Darwin、Rapide、Unicon、Wright、D-ADL和ACME等1;国内包括XYZ/ADL、ABC/ADL、FRADL和A-ADL等。但这些语言大多注重软件系统结构静态特性的描述,而对其动态特性描述缺乏。PaolaInverardi和AlexxanderLWolf2首先将CHAM应用于描述和分析软件体系结构。他们充沛利用CHAM擅长描述系统动态性和并行性的优点,用CHAM形式化办法描述和分析了软件体系结构动态操作性语义,在软件体系结构动态特性描述方面进行了有效的扩展,主张用CHAM模型描述软件体系结构,并例举描述了编译器的体系结构,包括顺序多阶段编译器和并行、共享存贮库的多阶段编译器。基于CHAM的体系结构描述,运用重写技术和结构归纳证明办法,能够对体系结构的局部行为属性进行形式化或半形式化的证明。2化学抽象机化学抽象机CHAM主要用于异步并行计算模型的建模3,通过将化学反馈和抽象机概念有机结合描述系统状态变化,它将一个系统的状态看成化学溶液,溶液由分子组成,分子根据一定的反馈规那么相互反馈又引起新的系统状态变化。溶液中不同分子可按反馈规那么平行地进行反馈,只要各自反馈的分子集不重叠。因CHAM在描述系统动态性、并行性方面的优良特性,所以可较好描述异步并行计算模型,尤其擅长描述如计算和CCS进程计算模型4。一个化学抽象机由一组分子m0,m1,m2、溶液s0,s1,s2和变换规那么组成,分子是CHAM的根本元素,由一个常数集和操作符集派生而成的句法代数定义;溶液是由有限多个分子的汇合,它反映了系统的某种状态,溶液中的分子根据变换规那么进行反馈。变换规那么从应用范围可分为:通用规那么,即在整个CHAM中通用的规那么;专用规那么,适用于某些特定分子的规那么。从反馈作用可分为:加热规那么,把大分子分解成小分子的规那么;冷却规那么,小分子合成大分子的规那么。从反馈波及的分子可分为:自反馈规那么,只有单一分子的状态变化;互反馈规那么,反馈过程中至少有两个分子加入反馈。本质上,CHAM可看成一种有限状态机,因此它具有一般状态机特征,与其他以状态机为转换模型的技术相比,CHAM利用化学反馈这一隐喻,因此在刻画系统的动态性特征方面比拟自然。CHAM规格表明是一个基于操作的系统框架,这种框架不会把所描述的系统曲解为某种特定的计算模型。CHAM描述不仅可以描述系统静态特征,还能从系统操作动态性方面进行描述,通过对各单元的描述、引入的转换规那么及项重写描述和分析体系结构的动态行为,因而可使软件开发人员很快地了解系统功能和行为,适用于多种层次的用户。在CHAM中,膜是一种封装结构,任何溶液可以被看作一个关于其它溶液的单一分子,膜内的溶液可以独立进化。膜具有半可渗透性,允许某些分子进入和离开,通过膜上的气孔,可以有选择地从膜中抽取分子,同时,气孔的可逆性允许分子被重新吸收到原始溶液中,膜表示了复合构件,实际上提供了一种刻画系统模块化的途径。3在SA中的应用3.1描述SA。用于描述SA的CHAM可表示成一个三元组CHAM=(M,E,R),其中:3.1.1分子集M=m|mMSMI,MS=mS1,mSn为稳定状态分子集,处于稳定状态的分子不吸收或释放电子,MI=mi|mimS(.P)+,(P.)+mS(.P)+,(P.)+mSmSMS为离子状态分子集,处于离子状态的分子准备进行吸收或释放电子操作,其中P=i(e),o(e)为分子上的操作集,i(e)为吸收电子,o(e)为释放电子,操作符“.表示操作顺序。3.1.2电子集E=e1,ek,分子可根据自反馈规那么准备进行进行收或释放电子,当溶液中有两种互补电子,即一对释放-吸收电子时,可根据互反馈规那么进行反馈。3.1.3规那么集R=RSRM,RS=r|rmS1=mI1,mSj=mIjmS1=mS1*,mSj=mSj*,mSjMSmIjMI,j=1,2,是分子自身从吸收电子到释放电子的过程或分子复制自身过程规那么集,mSj*表示由mSj复制与mSj性质、状态完全相同的分子,RM=r|rm11,m21,=m11,m21,mij,mijMI,i,j=1,2,是电子在分子间流动过程的规那么集,rpRM,rqRM,pq,假设mp1,mpjmq1,mqj=,那么rp,rq可并行反馈。3.2描述构件、连接件。用CHAM描述软件连接件或构件,可表示成一个四元组(MC,ECI,ECO,RC):3.2.1连接件或构件的分子集MC;3.2.2连接件或构件的前置条件,即输入电子集ECI;3.2.3连接件或构件的后置断言,即输出电子集ECO;3.2.4连接件或构件分子集的反馈规那么集Rc。连接件或构件的分子集反映了连接件或构件的角色集及在角色上进行的输入输出操作,相对来说是静态的,是一种实现上的结构,属于语法层。输入电子集是使用该连接器或构件前必须具备的条件,输出电子集后映的是使用该连接件或构件后的状态。反馈规那么集表明了连接件或构件如何运用反馈规那么从而发生状态的演变,实质上是连接件或构件的动态行为,是相对动态的,属于语义层。如管道-过滤器体系结构格调的CHAM描述如下:定义过滤器:MC:PIPE_FILTERECI:readerECO:writerRC1:PIPE_FILTER=PIPE_FILTER.i(reader)RC2:PIPE_FILTER.i(reader)=i(reader).PIPE_FILTER,PIPE_FILTER.o(writer)RC3:PIPE_FILTER.o(writer)=o(writer).PIPE_FILTER定义管道:MC:PIPE_CONNECI:readerECO:writerRC1:PIPE_CONN=PIPE_CONN.i(reader)RC2:PIPE_CONN.i(reader)=i(reader).PIPE_CONN,PIPE_CONN.o(writer)RC3:PIPE_CONN.o(writer)=o(writer).PIPE_CONN由过滤器和管道构造一个系统:SYS_M:PIPE_FILTER,PIPE_CONNSYS_E:reader,writerSYS_R1:PIPE_FILTER.o(writer),PIPE_CONN.i(reader)=o(writ-er).PIPE_FILTER,i(reader).PIPE_CONN4展望目前基于构件的软件项目正逐渐成为软件开发的新趋势,但是也给基于构件的软件系统测试带来了新的问题,而CHAM不仅可用于描述动态软件体系结构,还可用于测试体系结构,因为CHAM这种对系统状态变化的描述特别适合于测试系统的行为和功能,Bertolino5等人提出从软件体系结构描述中导出实现层的测试用例,以指导构件系统的集成测试的思想,随着对CHAM的深入研究,必将有新的应用被提出。
展开阅读全文