基于组件的软件体系结构模型研究.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于组件的软件体系结构模型研究 1 软件体系结构描述 组件技术为软件产业带来了新的发展理念。组件技术主要解决两个问题。首先,软件的重复使用。第二,它们是一起工作的。目前最成熟的组件技术包括com/dcom(compon对象模型/环境中的java植被)、java植被(环境中的java植被)和corba-iiop(一般对象需求寻求服务、internet应用提供商)。从可靠性的角度来看,尽管组件在重复操作中多次被测试和纠正,但组件的可靠性优于传统程序模型,但必须确认由组件组成的软件的可靠性。 对上述问题的研究工具之一是软件体系结构描述语言(Architecture Description Language,简称ADL).ADLs在系统的逻辑设计与程序设计之间架起一个“桥梁”,使系统设计者可以在系统设计阶段测试、分析系统的可靠性、适应性.虽然ADL的研究历史不是很长,但种类较多.文献通过对多种ADLs分析和对比后提出了一个带有普遍意义的软件体系结构框架以及框架中属性和特征的含义,但未对框架中的组件、连接器和软件体系结构的属性和动态行为给出抽象化的描述,未对软件体系结构的可靠性设计进行讨论,而这些正是用ADL分析软件可靠性的基础. 本文从软件体系结构出发,用抽象代数理论对组件、连接器和软件体系结构的属性和动态行为进行讨论和抽象化描述,探讨不同连接形式下的软件体系结构,给出基于事件依赖的软件可靠性设计模型. 2 基于组件的软件体系结构 软件体系结构是问题解决方案的逻辑框架,它由组件和连接器构成.下面用抽象代数对组件、连接器和软件体系结构的属性和行为特征进行描述. 2.1 基本总结 2.1.1 eha、tablesi 不同人对组件的理解可能不同.本文把组件看成是数据单元或计算单元,定义如下. 定义2.1: 组件是一个数据单元或一个计算单元,它由组件接口和组件实现模块组成.组件接口是组件与外部接触点的集合,即:Port1,Port2,…,Portn,而每一个接触点Porti是一个八元组ID,Publi,Extei,Privi,Behai,Msgsi,Consi,Non-Funci.其中: ID是组件的标识; Publi是组件第i个接触点能提供给环境或其它组件的功能集合; Extei是组件第i个接触点运行所需环境或其它组件的功能集合; Privi是组件第i个接触点私有属性集合; Behai是组件第i个接触点行为语义描述; Msgsi是组件第i个接触点所产生消息的集合; Consi是对组件第i个接触点行为约束,它通常包括组件运行的初始条件、前置条件和后置条件,有时为了明确表示这三个条件可把它写成Cons(init, pre-cond, post-cond),init,、pre-cond和 post-cond分别表示初始条件、前置条件和后置条件的集合; Non-Funci是组件第i个接触点非功能说明,包括组件的安全性、可靠性说明等. 在定义2.1中组件接口给出了组件的形式化描述,它定义了一类组件的模式.为了方便一般用元组元素名(ID)表示 组件ID中的一类元素的集合.如Publ(C)表示组件C中各接口点Porti中Publ元素的集合. 定义2.1反映了组件的可重用性.除此之外,组件还应具有互操作性,下面我们把组件间典型的操作抽象为组件间的“运算”. 定义2.2: 设A、B是论域U中的两个组件,若?x∈Publ(B)∧?y∈Extn(A)使得(x?y)∧(pre-cons(B)),这时组件A通过发送一个消息“激发”(Invocation)组件B中的Publ(B)来实现功能需求,就称组件A,B进行了一次“激发”运算,记作:Inv(A,B) 或A?B. 例如CORBA中组件之间的连接为“激发”连接.在“激发”模式下组件A、B的是逻辑独立的(Independence). 下面定义组件间的“使用”运算. 定义2.3: 设A、B是论域U中的两个组件,若?x∈Publ(B)∧?y∈Extn(A)使得(x?y)∧(pre-cond(B)),这时组件A通过“使用”(Use)组件B中的Publ(B)来实现功能需求,就称组件A,B进行了一次“使用”运算,记作:Use(A,B) 或A?B. 定义中的“使用”是指复制B中的代码段到A中或传递B代码段的地址到A中.例如传统意义的过程调用和DLL均为软件的“使用”.与运算?不同,A、B在逻辑上是非独立的(dependence),组件A的代码与B的代码有关. 2.1.2 连接器和组件的运算 连接器(Connector)是软件体系结构的一个组成部分,它通过对组件间的交互规则的建模来实现组件间的连接.与组件不同,连接器不需编译.常见的连接器有客户/服务器协议(Client/Server Protocols)、管道(Pipe)、 过程

文档评论(0)

hzyacc + 关注
实名认证
文档贡献者

专业的文档设计与制作

1亿VIP精品文档

相关文档