下面给出基于动态路由层次消息总线的软件体系结构描述中的智能虚拟控件替换算法。在软件体系结构中,智能虚拟控件可表示成
Arch_Component=attributes+operations+constraints/sequencing/interactions其中,attributes是用来描述智能虚拟控件外部特征的与接口相关的因素;operations是描述智能虚拟控件的动态行为,代表智能虚拟控件提供的服务或功能特性;constraints/sequencing/in-teractions分别描述智能虚拟控件的组装结构约束、行为执行次序约束及交互约束。
根据以上分析,软件体系结构级的智能虚拟控件替换着重检查下面几个方面:
1)检查智能虚拟控件的类型是否一致。智能虚拟控件的类型必须满足软件体系结构模式的要求。
CF(Ctype,C′type)=(Ctype=C′type)
2)检查智能虚拟控件的接口port是否一致。其中包括port的操作名、参数个数、参数类型、返回值类型等是否一致。
CF(Cport,C′port)=(Coperator=C′operator)∧(Cparanum=C′paranum)∧(Cparatype=C′paratype)∧(Creturntype=C′returntype)
3)检查智能虚拟控件的行为约束。其中包括前置条件和后置条件的一致性检查。行为的完全匹配函数定义为(https://www.xing528.com)
CF(Cspec,C′spec)=(Cpre⇔C′pre)∧(C′post⇔Cpost)
可插入匹配替换函数为
CF(Cspec,Cspec)=(Cpre⇒C′pre)∧(C′post⇒Cpost)
4)最后还要再检查智能虚拟控件替换后是否符合软件体系结构的约束。其中包括与其他智能虚拟控件间的交互、拓扑结构约束等。用SSA_Check表示系统关于软件体系结构的约束。
缩合上面四个方面所述,智能虚拟控件在软件体系结构级的替换函数可定义为
Substitute:Component,Component→Bool
Substitute(C,C′)=CF(Ctype,C′type)∧∑[(CF(Cport,C′port)∧CF(Cspec,Cspec)]∧SSA_Check
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
