您的位置:首页 > 其它

UML基本构造块之十种图(二)

2016-04-19 19:58 288 查看
原文地址:http://www.aichengxu.com/view/1040714

这几天一直在学习UML的十种图,之前是对UML十种图的主要概念进行理解,现在对其及其之间的关系进行理解

学习。


一、用例图(Use Case Diagram):

最开始学习的第一个图是用例图,用例图主要用于为系统的功能需求建模,它主要描述系统功能,也就是从外部

用户的角度观察,系统应该完成哪些功能,有利于开发人员以一种可视化的方式理解系统的功能需求,可以说用例图

是对系统功能的一个宏观描述。在学习用例图的过程中第一次接触了粒度和范围这两个概念,用例粒度的好坏直接影

响到后面设计过程中类图设计的好坏,类图设计的好坏又直接影响代码设计的难度,还会影响到未来软件的维护和修

补工作,所以在用UML设计的时候,从第一步就要严格把关。


二、包图(Package Diagram):

包图是一种维护和描述系统总体结构的模型的重要建模工具,通过对图中各个包以及包之间关系的描述,展现出

系统的模块与模块之间的依赖关系。

在UML的建模机制中,模型的组织是通过包(package)来实现的。包可以把所建立的各种模型(包括静态和动

态)组织起来,形成各种功能或用途的模块,并可以控制包中元素的可见性和描述包之间的依赖关系。通过这种方式

系统模型的实现者能够在高层把握系统的机构。


三、类图(Class Diagram)与对象图(Object Diagram):

类图显示了系统的静态结构,标识了不同的实体(人、事物、数据)是怎样彼此相关联的。在类图中不仅包含了

为系统定义的各种类(包含类的属性和操作),也包含了它们之间的关系(依赖、关联、聚合等)。为了能够使系统

具有足够的灵活性和可变性,类的抽象程度和好坏成为描述系统的关键。对象是类的实例化,因此对象图具有与类图

相同的标识,如多对象等。


对象图与类图的区别:

在对象图里面每个属性都会有一个具体的值,因为它是一个实例相关的,而类图则从抽象的角度描述系统的静态

结构,不好说属性具体是一个什么样的值。


包图、类图和对象图的区别:

包图是对一个程序、软件系统进行模块划分,使得我们的源码结构更加的清晰;类图是对一个系统的静态部分进

行呈现;而对象图是这个系统在某一时刻的展现。


四、时序图(Sequence Diagram):

时序图是对对象之间传送消息的时间顺序的可视化表示,从一定程度上更加详细地描述了用例表达的需求,将其

转化为进一步、更加正式层次的精细表达,这也是时序图的主要用途之一。它的目的是描述系统中各个对象按照时间

顺序的交互过程。


五、协作图(Collaboration Diagram):

协作图是对在一次交互过程中有意义对象和对象间的链建模,显示了对象之间是如何进行交互的,以执行特定用

例或用例中特定部分的行为。在协作图中,类元角色描述了一个对象,关联角色描述了协作关系中的链,并通过几何

排列表现交互作用中的各个角色。


时序图与协作图的区别:

从本质上来讲这个图是等价的,只是表示的方法不同,但可以通过适当的方式将它们进行转换。与时序图不同是

,在协作图中明确表示了角色之间的关系,通过协作角色来限定协作中的对象或链。另一方面,协作图不将时间作为

单独的维来表示所以必须使用顺序号来判断消息顺序以及并行线程。

二者侧重点不同:时序图侧重时间顺序,协作图侧重对象之间的关系。

一般来说建模的时候画时序图(Sequence Diagram)就可以。用不同的方式展示系统剖面图或是侧面图,如果你

的系统的交互的消息比较多,希望来清晰地描述它的组织结构的话呢,可以再辅助画协作图。


六、状态图(Statechart Diagram):

用来描述一个特定对象的所有可能状态以及由于各种事件的发生随时间变化而引起的状态之间的转移。由于系统

中对象的状态最易发现和理解,所以建模时往往首先考虑基于状态之间的控制流。


七、活动图(Activaty Diagram):

活动图是状态机的一个特殊的例子,它强调计算过程中的顺序和并发步骤,活动图所有或多数状态都是活动状态

或动作状态,它阐明了业务用例实现的工作流程。


活动图和状态图的区别:

状态图侧重从行为的结果来描述(状态),活动图侧重从行为的动作来描述(活动);活动图中的动作可以放在

泳道中,而状态图则不可以。泳道可以将模型中的活动按照职责组织起来。

在实际项目中,活动图并不是必须的。一般在以下情况需要使用活动图:

(1)描述一个并行的过程或者行为

(2)描述一个算法

(3)描述一个跨越多个用例的活动


活动图与流程图的区别:

活动图和流程图非常相似,往往流程图所能表达的内容,在大多数情况下活动图也可以表达。二者的区别:

(1)活动图是面向对象的,而流程图是面向过程的

(2)活动图不仅能表达顺序流程控制,还能表达并发流程控制


八、组件图(Component Diagram):

组件图用来表示系统中组件和组件、类或接口与组件之间的关系图,组件与组件之间的关系表现为依赖关系,定

义的类或接口与类之间的关系表现为依赖关系或实现关系。

组件图的作用:

(1)为架构设计师提供了一个系统解决方案模型的自然形式

(2)在系统完成后允许一个架构设计师验证系统的必须功能是由组件实现的

(3)是不同开发小组之间交流的有用工具

(4)有利于系统开发者决定开发的任务分配和需求分析

(5)有利于系统管理员较早地提供关于组件及其关系的信息


九、配置图(Deployment Diagram):

配置图显示了运行软件系统的物理硬件,以及如何将软件部署到硬件上。也就是说,这些图描述了执行处理过程

的系统资源元素的配置情况以及软件到这些资源元素的映射。配置图中可以包括包和子系统,它们可以将系统中的模

型元素组织成更大的组块。有时,当系统需要可视化硬件拓扑结构的一个实例时,还需要在配置图中加入实例。配置

图中还可以包含组件,这些组件都必须存在于配置图中的节点上。


总结:

在对软件建模的过程中,通过用例图我们可以知道这个系统的期望行为是什么;通过类图可以描述这个问题域的

词汇,也就是说问题域里面有哪些类,以及这些类的属性和方法都概括出来得到这个问题域的词汇;通过创建时序

图、协作图、状态图、活动图,可以来说明所定义的词汇中的事物是如何共同协作来完成这个行为的。在这一切完成

之后,开始人员需要把这些逻辑设计图转化成实际的事物,如可执行文件、库、表和文档,组件图和配置图是面向对

象的系统的物理方面建模时用的,也就是说组件图和配置图与系统的最后实现密切相关。

把UML的四类事物、四种关系和十种图学完之后,这些都只是在理论上的学习,接下来就是对理论的结合进行实

践啦,结合之前所做的机房收费系统用UML进行建模。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: