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

系统架构设计师:软件架构的演化和维护--消息演化

消息是顺序图中的核心元素,包含了名称、源对象、目标对象、时序等信息。这些信息与其他对象或消息相关联,产生的变化会直接影响到对象之间的交互,从而对架构的正确性或时态属性产生影响。另外,消息自身的属性,如接口、类型等,产生的变化不会影响到对象之间交互的过程,则不考虑其发生的演化类型。因此,我们将消息演化分为AddMessage(AM)、DeleteMessage(DM)、SwapMessageOrder(SMO)、OverturnMessage(OM)、ChangeMessageModule(CMM)5种,如图10-2所示,其中状态里的是行为信息,即对象发出的消息;边上的是转移信息,即对象接收到的消息。由于消息是由一个对象发送给另一个对象,因此每次消息产生演化时均会涉及两个对象的自动机的变化,而objl 和 obj2分别为产生变化的两个对象。为了表示消息的发送和接收的对应关系,这里用m?、m2来表示消息的一一对应关系。

A M增添一条新的消息,产生在对象之间需要增加新的交互行为的时候。DM删除当前的条消息,产生在需要移除某个交互行为的时候,是AM的逆向演化。SMO交换两条消息的时间顺序,发生在需要改变两个交互行为之间关系的时候。OM反转消息的发送对象与接收对象,发生在需要修改某个交互行为本身的时候。CMM改变消息的发送或接收对象,发生在需要修改某个交五行为本身的时候。

消息与约束直接相关,消息的演化会直接影响到对象之间的交互行为,但不一定会违背约束。我们可以将这种演化分为3类。

第1类演化与当前约束无关,如AddMessage在大多数情况下与当前的约束无关,这些演化不会对架构设计的正确性或时态属性产生影响。

第2类演化与约束直接关联但不会违背约束,如ChangeMessageModule后的消息不会违背“在某处产生”的约束,这些演化同样不会对架构设计的正确性或时态属性产生影响。

第3类演化与约束直接关联并会违背约束,如DeleteMessage删除的某条消息是某条约束的内容之一,这种演化后的架构违背了约束,其是不正确的演化。

消息是顺序图的核心内容,消息演化是顺序图演化的核心。对象的演化会伴随着消息演化,否则没有意义;复合片段和约束均基于消息存在,二者的演化也直接受到消息演化的影响。因此,对其他演化进行分析研究的同时,也要对相关联的消息演化进行分析。

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

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券