💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 一、上章回顾        上一篇:[系统架构师-基础到企业应用架构-系统建模[中篇](下)](http://www.cnblogs.com/hegezhou_hot/archive/2010/09/14/1826314.html) 中我们主要讲解了部署图、活动图,我们在这里也是参考上篇的形式,这里不再详细介绍。上篇主 要讲解了下面2类建模图:         [![image](https://box.kancloud.cn/2016-05-16_573996fb8ea98.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_2.png) ### 二、摘要        本文将讲解其他的几个类型的建模图当然只是简单的讲解,并且将结合B2C电子商城系统进行分析通过使用我们已经讲解的建模图为例。分析系统可划分的子功能 模块,每个功能模块内部的运行步骤等等。        [![image](https://box.kancloud.cn/2016-05-16_573996fbb1fb2.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_4.png) [![image](https://box.kancloud.cn/2016-05-16_573996fbcca35.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_6.png)        上面的2个不同类型的进行划分的建模图,本章将对上述6个建模图进行分别举例讲解。 ### 三、本章内容        1、上章回顾。        2、摘要。        3、本章内容。        4、结构图。        5、行为图。        6、本章总结。        7、系列进度。        8、下篇预告。 ### 四、结构图 ####       1、对象图         首先、我们闲来讲解对象图。对象图用来描述系统的各个对象在某一时刻的状态。对象和类图一样他们是静态结构图。他们是从实际的或者原型化的场景去表达 的。对象图显示了某一时刻对象与对象的关系。一个对象图可以看作类图的特殊用例,类图中的关系同样适用在对象图中。可以这样理解,对象图就是类图的实例。对 象图是有生命周期的,因此对象图只在某个时间段内存在。         对象图中的元素在类图中都可以找到,只是把类图中的类元素换成对象即可。而类图中类元素之间的关系,在对象图中同样适用。这里不在复述。如果对类图不 是特别的熟悉,请看这篇文章中的讲解:[系统架构师-基础到企业应用架构-系统建模[上篇]](http://www.cnblogs.com/hegezhou_hot/archive/2010/09/10/1822887.html)。         下面讲解对象图的举例:         [![image](https://box.kancloud.cn/2016-05-16_573996fbe06f1.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_8.png) 这里的对象是指某个类的实例。         [![image](https://box.kancloud.cn/2016-05-16_573996fbf2a0c.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_10.png) 这样的格式表示了某个类的实例的格式,冒号“:”后面跟着类名,也就是这里的“父类”。另外还必须加上下划 线。         对象首先是一个确定,所以一般情况下,对象属性一般把值直接列出来。如下形式:         [![image](https://box.kancloud.cn/2016-05-16_573996fc0eb8e.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_12.png)         对象图中的所有的对象名可以为空,但是为了更好的标识对象图中的对象,不建议这么做,并且如果未指定对象名那么必须指定该对象所属的类格式如下:         [![image](https://box.kancloud.cn/2016-05-16_573996fc20a1c.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_14.png) 没有对象名的对象实例。         下面以B2C中的订单系统中的新订单的状态为例,讲述下各对象的状态。         [![image](https://box.kancloud.cn/2016-05-16_573996fc35753.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_16.png) 这里的关系表示的是组合关系         上图中的订单信息的状态:订单(新订单)-物流信息(未发货)-支付信息(未支付)-产品状态(产品信息)。 ####       2、包图         包图就是由包与包之间的关系组成的。         包图也是一种静态结构,包可以拥有的元素:         [![image](https://box.kancloud.cn/2016-05-16_573996fc4f7df.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_18.png)         我想上面的元素大家都是有所了解的,我这里就不一样举例说明了,下面通过一个例子来显示如何使用包图。         包的访问限制:与我们平时了解的3个访问权限设置关键字用法相同。         [![image](https://box.kancloud.cn/2016-05-16_573996fc6d655.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_20.png)        包与包之间的关系:        a、引入与访问依赖:首先这个关系与平时我们说的类的继承关系是不同的.包括包的访问域不能继承。        [![image](https://box.kancloud.cn/2016-05-16_573996fc98024.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_26.png) 用于在一个包中引入另一个包输出的元素,因此A依赖B,包A引入包B中的B方法。B这里的访问权限是公共的。A中的方法是保护的。        b、泛化关系:               [![image](https://box.kancloud.cn/2016-05-16_573996fcae751.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_28.png) 泛化关系描述了一种继承关系。即基类与特殊类之间的关 系,途中描述的意思是只要是包A出现的位置都可以用包B替换。 ####       3、组合结构图         组合结构图:以结构化的方式给出类型的内部结构。组合结构图是一种静态结构,它显示了一个类型内部的成员及成员之间的关系。组合结构图可以这样理解, 就是描述类的内部结构及成员之间的调用关系的建模图。组合结构图用于扑捉类的内部细节,描述了对象如何在某个类中协同工作。        组合图中其实就是描述类的内部的结果,基本上的元素有:类、对象,其他等,具体的关系请参考类图中的关系。        组合图实例:        [![image](https://box.kancloud.cn/2016-05-16_573996fcc37df.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_34.png) 上图显示了产品与产品品牌与产品分类的组合关系。产品品牌与产品分类是关联关系(关联关系可 以是1:N),通过一条直线来链接。如果有不清楚的地方请看类图的相关介绍:[系统架构师-基础到企业应用架构-系统建模[上篇]](http://www.cnblogs.com/hegezhou_hot/archive/2010/09/10/1822887.html)。 ### 五、行为图 ####       1、通信图         在UML建模中除了顺序图(序列图)可以表示对象之间的交互外,通信图也可以完成通用的描述。一般情况下,二类图可以进行互转。         首先、我们先来分析下2类图的不同。        [![image](https://box.kancloud.cn/2016-05-16_573996fced457.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_38.png)         我们还是先来看下通信图中的元素:        [![image](https://box.kancloud.cn/2016-05-16_573996fd1ccf3.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_42.png)         上图中的主要组成元素是对象。对象之间的关系,通过链接来完成。然后通过一个带有实体三角形的线段指向要发送消息的对象。         下面来解释下对象之间的关系。         [![image](https://box.kancloud.cn/2016-05-16_573996fd36ae6.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_46.png)         [![image](https://box.kancloud.cn/2016-05-16_573996fd4a37c.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_52.png) 还有就是消息给自己发送的特殊消息。         返回消息的类型:         [![image](https://box.kancloud.cn/2016-05-16_573996fd5e4c5.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_48.png)         下面我们来简单举例如何说明:         [![image](https://box.kancloud.cn/2016-05-16_573996fd70c0d.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_50.png) 上图中简单描述了发送邮件的过程。我们可以看出通信图相比顺序图更注重对象之间的 链接关系。我们通过通信图能够知道一个系统中的某个流程中各对象直接的链接关系及传递的完整信息传递过程。         首先、我们闲来讲解对象图。对象图用来描述系统的各个对象在某一时刻的状态。 ####       2、时间图         时间图:主要用来描述一段时间内对象的行为(状态的变化,执行的动作等等)。主要用来模拟即时系统模型。与对象图类似,不同的是时间图描述的一个时间段,而 对象图描述的一个时间点。对象图关心对象的状态,而时间图关心的是对象的行为。         [![image](https://box.kancloud.cn/2016-05-16_573996fd87e94.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_54.png) 这里设置了定时器之后,对象的状态将会从A,在定时器时间到达后自动的跳转 到状态B。这里表示的是定时器来控制状态的迁移。        时间图中支持异步信息,时间图采用垂直图的方式来描述系统的执行顺序。        时序图等于是在序列图(顺序图上)加上时间的限制就构成了时间图。        [![image](https://box.kancloud.cn/2016-05-16_573996fd9d37e.png "image")](http://images.cnblogs.com/cnblogs_com/hegezhou_hot/WindowsLiveWriter/32f26f83aa02_A050/image_58.png) 从垂直的角度来看,就是说A调用B先于B返回值给A,从时间图上就可以清晰的看出来对象的行 为。 一般情况下我们可以通过序列图来完成相应的描述。除非需要定义一个时间段的对象时才会用到时间图。包括某个对象到某个对象的调用都可以通过时间限制来进 行行为的控制等。 ### 六、本章总结。         本章中主要简单的讲述了几类UML2.0语言相比UML1.0新增的几类建模图,虽然我们平时可能用的比较少,但是某些特定的领域范围,通过这些图可能更能清晰的 表达抽象模型。          1、对象图:描述系统在某一时刻的状态。          2、包图:描述系统中的某个模块的内部组成结构,是由元素及元素之间的关系构成的。          3、组合结构图:以结构化的方式描述了系统中的某个类型的内部结构。          4、通信图:描述了对象之间的交互与顺序图不同的是,交互图更关注对象之间的链接及通信。          5、时间图:描述了在一个时间段内的对象的行为。         当然具体的建模图如何使用及在实际的项目中如何去应用分析,这才是最主要的目的,当然这就需要理论结合实际来达到学以致用的效果。下一篇,我讲专门的讲 解针对B2C电子商城为例,详细的剖析UML建模的具体应用。 ### 七、系列进度。 #####      前篇       1、[系统架构师-基础到企业应用架构系列之--开卷有益](http://www.cnblogs.com/hegezhou_hot/archive/2010/09/07/1821012.html)       2、[系统架构师-基础到企业应用架构-系统建模[上篇]](http://www.cnblogs.com/hegezhou_hot/archive/2010/09/10/1822887.html)       3、[系统架构师-基础到企业应用架构-系统建模[中篇](上)](http://www.cnblogs.com/hegezhou_hot/archive/2010/09/11/1824084.html)       4、[系统架构师-基础到企业应用架构-系统建模[中篇](下)](http://www.cnblogs.com/hegezhou_hot/archive/2010/09/14/1826314.html)       5、[系统架构师-基础到企业应用架构-系统建模[下篇]](http://www.cnblogs.com/hegezhou_hot/archive/2010/09/16/1828169.html)       6、系统架构师-基础到企业应用架构-系统设计规范与原则[上篇]       7、系统架构师-基础到企业应用架构-系统设计规范与原则[下篇]       8、系统架构师-基础到企业应用架构-设计模式[上篇]       9、系统架构师-基础到企业应用架构-设计模式[中篇]       10、系统架构师-基础到企业应用架构-设计模式[下篇] #####      中篇       11、系统架构师-基础到企业应用架构-企业应用架构       12、系统架构师-基础到企业应用架构-分层[上篇]       13、系统架构师-基础到企业应用架构-分层[中篇]       14、系统架构师-基础到企业应用架构-分层[下篇]       15、系统架构师-基础到企业应用架构-表现层       16、系统架构师-基础到企业应用架构-服务层       17、系统架构师-基础到企业应用架构-业务逻辑层       18、系统架构师-基础到企业应用架构-数据访问层       19、系统架构师-基础到企业应用架构-组件服务       20、系统架构师-基础到企业应用架构-安全机制 #####      后篇       21、单机应用、客户端/服务器、多服务、企业数据总线全解析       22、系统架构师-基础到企业应用架构-单机应用(实例及demo)       23、系统架构师-基础到企业应用架构-客户端/服务器(实例及demo)       24、系统架构师-基础到企业应用架构-多服务(实例及demo)       25、系统架构师-基础到企业应用架构-企业数据总线(实例及demo)       26、系统架构师-基础到企业应用架构-性能优化(架构瓶颈)       27、系统架构师-基础到企业应用架构-完整的架构方案实例[上篇]       28、系统架构师-基础到企业应用架构-完整的架构方案实例[中篇]       29、系统架构师-基础到企业应用架构-完整的架构方案实例[下篇]       30、系统架构师-基础到企业应用架构-总结及后续 ### 八、下篇预告。        下一篇将会已我比较熟悉的B2C电子商城来深入的剖析,如何使用UML建模工具去分析一个系统及如何分析一个模块的流程,包括部署等等。通过我们已经讲过的 UML建模图形来结合实例来讲解。如果大家有好的意见和建议可以及时反馈,谢谢您的宝贵意见。 ### 后语        希望看完本章的朋友可以从本篇中学到相应的UML建模知识,懂的人可以巩固下UML知识,本篇希望能够抛砖引玉,希望大家能够多提出宝贵意见。由于是本人 平时工作中的理解与总结,不足之处再所难免,还请大家批评指出!如果您有什么意见或建议,请多多提出!大家的支持就是我的最大动力!