【UML】UML常见的几种视图

来源:互联网 发布:mac app store中文版 编辑:程序博客网 时间:2024/04/29 06:04

如果说UML是一种语言,那么UML的基本词汇包括参与者、用例、边界、类、包、组件、节点等,而UML视图便是其语法,将基本元素组织起来,形成有意义的句子。如果说UML是一种语言,那么其最大的特征就是可视化,一种可视化语言,几种不同的视图从不同的角度展示了软件产品的方方面面的特征。UML视图分为两类,静态视图和动态视图,静态视图包括用例图、类图和包图,描述结构型特征,决定了能做什么,动态视图包括活动图、状态图、时序图和协作图,不能够独立存在,必须特制一个静态视图或UML元素,描述了行为型特征,决定了怎么做,下面从静态视图的用例图开始说起。

1、用例图

用例图采用参与者和用例作为基本元素,以不同的视角展现系统的功能性需求。用例图是了解系统的第一个关口,人们通过用例图得知一个系统将会做什么。对客户来说,用例图是它们业务领域的逻辑化表达,对建设单位来说,用例图是系统蓝图和开发的依据。业务用例图是一种用例图,使用业务主角和业务用例展现业务建模的结果,展现了业务系统的功能性需求,如果要描述这些需求的实现途径,则需要借助于业务用例实现图,后者体现了软件工程中需求可追溯的原则。通常来说,即使只有一种实现途径,绘制业务用例实现图也是一种好的建模方法,当有多个实现途径时,如果我们用业务对象和业务过程进行分析,就会发现其中有复用的对象和重叠的过程,这时可以用概念实例图,以业务实例为基本单元,用于展现业务用例分解而来的几个概念用例,它们的关系可能是扩展、包含或精化。概念用例图虽不是必须的,但对于一个复杂的业务用例来说,有助于我们的理解。与业务用例图对应的还有个系统用例图,前者是从用户的角度出发的,后者则是从计算机系统的角度考虑的,同理还有个系统用例是下图。

2、类图

类图用于展示系统中的类及其相互之间的关系,本质上说,类图是现实世界问题领域的抽象对象的结构化、概念化、逻辑化描述,包括三个层次,从概念层到说明层,再到实现层,随着抽象层次逐步降低而逐步细化。在概念层上,类图着重于对问题领域的概念化理解,而不是实现,因此类名称都是问题领域实际事物的名称,独立于实现语言和实现方式。说明层类图表达的类和类关系应当是对问题领域在接口层次抽象的描述,通常都非常粗略,虽然表达了计算机的观点,但是在描述上却采用了近似现实世界的语言,以保证从现实世界到代码实现的过渡。实现层类图中的类直接映射到可执行代码,明确采用哪种实现语言、什么设计模式、什么通信标准、遵循什么规范等。

3、包图

包图一般用来展示高层次的观点,范围较广,或者可以理解为是一种容器,包装其它范围较小的元素。

4、活动图

活动图描述了为了完成某一个目标需要做的活动以及这些活动的执行顺序,实际上描述的是业务流程,是一种过程化的分析方法,UML中由两个层面的活动图,一种用于描述用例场景,另一种用于描述对象交互。活动用例图是最经常使用的,用例表达了参与者的一个目标,用例场景则描述了如何来达到这个目标,活动图用来描述用例场景,也就是通常所说的业务流程。对象活动图用于展示对象的交互。活动图描述了业务流程中活动的执行顺序,却没有描述出谁来执行这些活动,即执行业务流程的职责被遗漏了,在面向过程的分析观点里,对象职责是不重要的,重要的是业务的执行过程,而在面向对象的分析里则与之相反,业务的执行过程不是重要的,对象职责才是最重要的,于是引入了泳道技术,就像一个游泳运动员只能在一个泳道里进行比赛一样,一个对象也只能在一个业务流程中担任一个或一类职责,多多少少解决了活动图不能描述对象职责的遗憾。

5、状态图

状态图显示一个状态机,状态机用于对模型元素的动态行为进行建模,更具体地说,就是对系统行为中受时间驱动的方面进行建模。通常使用状态图来说明业务角色或业务实体可能的状态,即导致状态转换的事件和状态转换引起的操作。状态图常常会简化对类的设计的确认。对于类的对象所有可能的状态,状态图都显示它可能接受的消息、将执行的操作和在此之后类的对象所处的状态。需要注意的是,状态图通常只用于描述单个对象的行为,如果要描述对象间的交互,最好采用时序图或协作图。

6、时序图

时序图用于描述按时间顺序排列的对象之间的交互模式,按照参与交互的对象所具有的生命线和它们相互发送的消息来显示这些对象。通常我们使用时序图来描述用例实现,通过贡献该用例实现的对象之间的交互来说明用例是如何被对象实现的。使用时序图来描述用例实现是一种从现实世界到对象世界的映射方法,它对我们确定对象职责和接口有着显著的作用,而对象的核心就是职责和接口。时序图和协作图是可以相互转换的,与协作图不同的是,时序图强调消息事件的发生顺序,更方便于阐述事件流的过程,但是时序图却难以表达对象之间关系。

7、协作图

协作图描述了对象之间交互的一种模式,通过对象之间的连接和它们相互发送的消息来显示参与交互的对象,与时序图不的是,协作图因为展示了对象间的关系,使得它更容易获得对对象结构的理解,而时序图更适用于获得对于调用过程的理解。

1 0