实战UML——建模图中的“四大天王”

     最近在看C#视频,发现在VS2013中可以生成类图,才意识到UML图的重要性,开发人员是要看着UML图来进行开发的。图画不好,设计人员的思想就不能传达到开发人员那里。编码环节也不算是最重要的那个环节,反而,系统中含有几个类?对象之间的消息如何传递?如何实现高内聚,弱耦合的设计?这些问题才是软件设计中的需要解决的核心问题。

    认识到了前期设计分析的重要性,接下来就要看一下建模图中四种动态图,我拿我自己画的机房图来做分析。




一、用例驱动


    谈四个动态图之前,要提一下用例图。在讲RUP的几个重要概念中提到了一个“用例驱动”,也就是说软件生产的过程就是用例驱动的。要解决一些问题领域,就要归纳出必要的抽象角度(用例)。然后就是为这些用例描述可能的特定场景,找出事物、规则和行为。一旦用例被实现了,也就证明了问题域可以解决了。四种动态图就是从各个不同的角度,来描述每一个用例的。

    用例图是最好画的一种,有哪些功能就画几个用例。下面是我的机房的用例图:






二、时序图&协作图


    用例图实现了,四种动态图就“有图可依”,每一个用例对应了四种动态图。先来看看动态图中的交互图,从表面意思上面理解,交互图就是两个对象之间在交换什么东西。对象包括自身的属性和消息,对象之间是靠消息的传递来进行工作的。所以这两种交互图是用来描述对象之间的消息传递的。所谓横看成岭侧成峰,二者的侧重点是不同的,时序图字面意思我们也知道了,是在强调时间的顺序。而协作图是对象之间的合作关系,那就是从空间的角度来分析对象之间的消息传递。二者可以相互转化的。

    修改密码的时序图:


    修改密码的协作图:






三、状态图&活动图


    活动图用于描述用例时,用于描述用例中的操作执行次序和操作完成的结果,显示多个对象的操作是如何相互结合起来共同完成用例的一个脚本,揭示出操作之间的并行性,为编码实现提供开发并行程序的便利,此时,活动表示类中的方法,即操作。

    状态图包括了对象可以拥有的状态及状态之间的迁移需要的事件驱动。状态可以理解成对象前一次操作的结果,而事件就是从一个状态到另个状态的活动。



四、综述四种动态图


    四个动态图各具特色,相得益彰。都是在描述一个问题领域,只不过是从不同的角度进行分析而已。就像是解决一个问题,以问题为主(面向对象),从不同的角度出发,找到最简单的那种方法,去解决它。

    画UML图要记得从面向对象的角度去出发。一个系统是由各种类组成的,每个类都有自己的方法和熟悉,类之间是通过消息的传递来解决问题的。就像是一个公司(系统)有好几个部门,什么人事部,销售部,企划部等等(类)。每个部门有自己特征,开设此部门的目的(类的属性),每个部门都要自己要干的事情(类的方法)。公司是通过各个部门的协作才能运作的(类方法的调用)。


   PS:

    UML是我们接触面向对象的一个开始,米老师别有用心的提醒我们回去看VB视频,我想也是让我们更好的理解面向对象吧。为了理解C#不会太费力,我就重温了一下VB视频的后部分。下篇博客将结合VB、C++、C#谈谈我对面向对象的理解~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 42
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值