从组件设计中的规范到契约及相关工具与服务组合一致性研究
在组件设计领域,从规范过渡到契约是一个重要的研究方向,同时还有相关的工具辅助以及服务组合一致性的问题需要解决。
组件设计中契约的组合与特性
在组件设计里,我们可以对两个契约进行组合。例如,AServer期望用户在收到秘密消息后,无论如何都用验证码进行回复。然而,GUser可能因不知道验证码而无法提供。这就产生了不一致性。在构建新的(最弱)假设ASystem = (AServer/GUser) ∧(AUser/Gnf Server)时,通过应用商和合取操作,我们可以看到环境不再允许发出秘密消息。组合契约的结果保证GSystem经过了一些简化,省略了一些到通用状态的可能转换,但整体契约(ASystem, GSystem)在语义上明显等同于(ASystem, Gnf Server ⊗GUser)。理论表明,(ASystem, GSystem)是主导服务器和用户契约的最强契约。
相关工作对比
前人对模态契约进行了研究。Raclet和Goessler提出的实现语义与我们的略有不同。他们认为,当A ∧I有定义时,实现I满足契约(A, G)的条件是A ∧I ≤m G ,这实际上仅对实现(即必须和可能转换关系一致的模态规范)等同于我们对契约满足的定义,而我们的满足关系对任意模态规范都有效。Quinton和Graf定义的抽象契约框架由于集成了复杂的组合运算符,技术上显得繁琐。尽管他们的契约满足关系与我们的相同,但他们缺乏对主导性和契约组合通用属性的深入讨论。相比之下,我们的工作更注重语义,在定义契约和契约运算符时充分考虑了实现和环境语义。
超级会员免费看
订阅专栏 解锁全文
22

被折叠的 条评论
为什么被折叠?



