UML笔记三

  1. UML图的使用原则:
    1)UML是以简易图形描述程序对象之间的联系。因而它适合对具体问题或功能的描述分析,而不应该是文档式全方位描述项目。
    2)可保留UML图情况一:当一种UML展现了项目通用的设计模式或思路。
    3)可保留UML图情况二:记录了比代码更易表述的设计意图的图
    *个人认为应该讲项目进行功能分离后,对各个功能进行分别UML图,理清逻辑。
  2. UML图顺序:
    没有固定的顺序,在熟练后应该根据具体问题来使用UML图的顺序,但一下提供了正常逻辑UML图顺序:
    1)行为(逻辑顺序)优先:时序图
    以电话拨号行为为例,他的行为顺序:按钮--》消息--》处理中心--》屏幕显示--》发出电子声音  发送按钮--》消息--》处理中心--》线路拨号--》屏幕显示。


     2)检查结构:
    通过时序图可以抽象出协作图的类图,初始类图


     由时序图简单生成的初始类图是无法考虑到对象之间的组合、构成、继承等联系的。因而需要进行改进和逻辑的完善。

    改善一:初始类图中button引用了Dialler对象,这显然不合理,button产生了对Dialler的依赖。因此需要建button与Dialler的关联拆分。可以在它们之间设置一个接口进行分离(?监听模式):


    Button需要一个标记(token)去标识消息内容。当Button传递消息后将调用 ButtonListener 接口的 buttonPressed 方法,并传送这个标记。以上边分离了button和Dialler的关系。

    改善二:在完成改善一后,Dialler继承自ButtonListener,感觉非常的怪异。Dialler存在一个ButtonPressed的方法,显然Dialler与Button还存在一些关联。我们可以通过一个适配器来解决,并且token也会消失。


     3)反向修正:
    在类图进行修正后,显然的原时序图已经无法使用需要进行修订:


     以上是一个简单使用UML优化结构的例子

猜你喜欢

转载自wsckw5.iteye.com/blog/2023078