首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

系统架构设计师:软件架构的演化和维护--复合片段演化

复合片段是对象交互关系的控制流描述,表示可能发生在不同场合的交互,与消息同属于连接件范畴。复合片段本身的信息包括类型、成立条件和内部执行序列,其中内部执行序列的演化等价于消息序列演化。通常,会产生分支的复合片段包括ref、loop、break、alt、opt、par,其余的复合片段类型并不会产生分支,因此主要考虑这些会产生分支的复合片段所产生的演化。复合片段的演化分为AddFragment(AF)、DeleteFragment(DF)、FragmentTypeChange(FTC)和FragmentConditionChange(FCC),如图10-3所示。实际上的复合片段的修改与相应的语义有关,会有非常多可能的控制流,这里仅仅列出了其中一些常见的示例。

FCC改变复合片段内部执行的条件,发生在改变当前控制流的执行条件时。自动机中与控制流执行条件相对应的转移包括两个,一个是符合条件时的转移,另一个是不符合条件时的转移,因此每次发生FFC演化时会同时修改这两个转移的触发事件。

AF在某几条消息上新增复合片段,发生在需要增添新的控制流时。复合片段所产生的分支是不同类型的,例如ref 会关联到另一个顺序图,par会产生并行消息,其余的则为分支过程。

DF删除某个现有的复合片段,发生在需要移除当前某段控制流时。DF与AF互为逆向演化过程,因此这里不再单独说明。

FTC改变复合片段的类型,发生在需要改变某段控制流时。类型演化意味着交互流程的改变,一般伴随着条件、内部执行序列的同时演化,可以视为复合片段的删除与添加的组合。复合片段的演化对应着对象之间交互流程的变化,因此会对架构设计的正确性及其他时态属性产生影响。新的复合片段的增加、条件的改变可能会直接改变消息的执行流程,从而使得违背约束的情况出现。因此需要对复合片段演化的情况进行验证,以保证演化后不会产生预料之外的错误。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Od42sjv8elU1H_RYM6NufrwQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券