本站小编为你精心准备了化学抽象机在软件体系结构中运用参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
摘要:软件体系结构在软件工程领域中至关重要,而软件体系结构描述语言ADL为软件体系结构的表示和分析提供了语言符号和支持工具。分析和研究了动态形式化描述语言化学抽象机CHAM及其在软件体系结构中的应用。
关键词:化学抽象机;软件体系结构信息科学
1概述软件体系结构是当前软件工程领域的一个研究热点,是大型软件开发中必须解决的核心技术。无数的写作论文软件工程实践证明:一个成功的软件系统往往都有一个好的软件体系结构。但是在软件设计、开发、测试、运行以及升级的各个阶段,体系结构都不可避免地会发生变化,如何把运行时适应性机制加到复杂的大规模软件系统中就成为一个重要的工程问题。然而要通过软件体系结构的研究实现这一目标,首先必须用某种方式描述动态体系结构。
目前已定义的ADL超过20种,具有代表性的ADL包括C2、Darwin、Rapide、Unicon、Wright、D-ADL和ACME等[1];国内包括XYZ/ADL、ABC/ADL、FRADL和A-ADL等。但这些语言大多注重软件系统结构静态特性的描述,而对其动态特性描述不足。PaolaInverardi和AlexxanderLWolf[2]首先将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|m∈MS∨MI},MS={mS1,…,mSn}为稳定状态分子集,处于稳定状态的分子不吸收或释放电子,MI={mi|mi∈{mS(.P)+,(P.)+mS(.P)+,(P.)+mS}∧mS∈MS}为离子状态分子集,处于离子状态的分子准备进行吸收或释放电子操作,其中P={i(e),o(e)}为分子上的操作集,i(e)为吸收电子,o(e)为释放电子,操作符“.”表示操作顺序。3.1.2电子集E={e1,…,ek},分子可根据自反应规则准备进行进行收或释放电子,当溶液中有两种互补电子,即一对释放-吸收电子时,可根据互反应规则进行反应。3.1.3规则集R=RS∪RM,RS={r|r∈{mS1=mI1,…,mSj=mIj}∪{mS1=mS1*,…,mSj=mSj*},mSj∈MS∧mIj∈MI,j=1,2,…}是分子自身从吸收电子到释放电子的过程或分子复制自身过程规则集,mSj*表示由mSj复制与mSj性质、状态完全相同的分子,RM={r|r∈{m11,m21,…=m11,m21,…},mij,mij∈MI,i,j=1,2,…}是电子在分子间流动过程的规则集,rp∈RM,rq∈RM,p≠q,若{mp1,…,mpj}∩{mq1,…,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_CONN
4展望目前基于构件的软件工程正逐渐成为软件开发的新趋势,但是也给基于构件的软件系统测试带来了新的问题,而CHAM不仅可用于描述动态软件体系结构,还可用于测试体系结构,因为CHAM这种对系统状态变化的描述特别适合于测试系统的行为和功能,Bertolino[5]等人提出从软件体系结构描述中导出实现层的测试用例,以指导构件系统的集成测试的思想,随着对CHAM的深入研究,必将有新的应用被提出。
参考文献
[1]MedvidovicN,TaylorRN,Aclassificationandcomparisonframeworkforsoftwarearchitecturedescriptionlanguages[J].IEEETrans.onSoftwareEngi.,2000,26(1):70-93.
[2]InverardiP,WolfAL.Formalspecificationandanalysisofsoftwarearchitecturesusingthechemicalabstractmachinemodel[J].IEEETrans.onSoftwareEngi.,1995,21(4):373-386.
[3]BerryG.,BoudolG.TheChemicalAbstractMa-chine[J].TheoreticalComputerScience,1992,(96):217-248.
[4]BerryG,BoudolG.,Thechemicalabstractma-chine[A].InconferencerecordoftheseventeenthannualACMsynmposiumonprinciplesofpro-gramminglanguage[C].1990.
[5]BertolinoA,CorradiniF,InverardiP,etal.DerivingTestPlansfromArchitecturalDescriptions[A].In:ACMProc.Int.Conf.onsoftwareEngineering