UML绘图的学习

主要介绍UML中的类图、状态图、用例图、部署图、组件图及简单使用。

一、UML-统一建模语言的概念

统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。
UML作为一种统一的软件建模语言具有广泛的建模能力。UML是在消化、吸收、提炼至今存在的所有软件建模语言的基础上提出的,集百家之所长,它是软件建模语言的集大成者。UML还突破了软件的限制,广泛吸收了其他领域的建模方法,并根据建模的一般原理,结合了软件的特点,因此具有坚实的理论基础和广泛性。UML不仅可以用于软件建模,还可以用于其他领域的建模工作。
UML立足于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述和反映。UML可以从不同角度描述人们所观察到的软件视图,也可以描述在不同开发阶段中的软件的形态。UML可以建立需求模型、逻辑模型、设计模型和实现模型等,但UML在建立领域模型方面存在不足,需要进行补充。
作为一种建模语言,UML有严格的语法和语义规范。UML建立在元模型理论基础上,包括4层元模型结构,分别是基元模型、元模型、模型和用户对象。4层结构层层抽象,下一层是上一层的实例。UML中的所有概念和要素均有严格的语义规范。
UML采用一组图形符号来描述软件模型,这些图形符号具有简单、直观和规范的特点,开发人员学习和掌握起来比较简单。所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、一致。

二、UML系统开发中有三个主要的模型

功能模型:从用户的角度展示系统的功能,包括用例图。
对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。
动态模型:展现系统的内部行为。包括序列图,活动图,状态图。

三、UML主要工具的使用

1.类图

(1)什么是类图

类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切地说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系。

(2)类图的几种关系实例

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

(3)如何画类图

UML类图是软件行业经常需要的一项技能。许多项目立项文档、需求分析等文档中,都会有关UML类图的涉及,所以,学习UML类图的绘制至关重要。
绘制类图时需要考虑的属性较多,这里的图将被视为从顶层视图。类图基本上是一个系统的静态视图的图形表示,代表不同方面的应用。因此,集合类图表示整个系统。在画类图时要牢记以下几点:

●类图中的名称应该是有意义的描述,并且是面向系统的。
●画类图前应先确定每个元素之间的关系。
●类图中的每个类职责(属性和方法)应该清晰标明。
●对于每个类的属性的最小数量应符合规定,不必要的属性将使图表复杂。
●使用了以下注释有否要求来描述图中的某些方面。因为上面的附图,它应该是可以理解的开发者/编码器。

(4)类图实例

公司做了一套相当成功的模拟鸭子游戏SimUDuck,游戏中出现各种鸭子, 一边游泳戏水, 一边呱呱叫。此系统的内部设计使用了标准的OO技术,设计了一个鸭子超类(Superclass),并让各种鸭子继承此超类。
在这里插入图片描述以上类图是设计鸭子超类并继承的类图实例,Duck类拥有若干属性和函数,由Duck1和Duck2继承相应的属性和函数,同时Duck实现两个接口,从而形成不同的游泳和叫声行为,由派生类进行实现。

2.状态图

(1)什么是状态图

UML 状态图是图表本身的名称,主要用于描述对象具有的各种状态、状态之间的转换过程以及触发状态转换的各种事件和条件。
U ML 状态图描述了一个状态机,可以被定义为一台机器,它定义了一个对象,这些状态控制外部或内部事件的不同状态。

(2)状态图的组成

状态图由状态、转换、事件、活动和动作五部分组成。
状态:状态指的是对象在其生命周期中的一种状况,处于某个特定状态中的对象必然会满足某些条件、执行某些动作或者是等待某些事件。一个状态的生命周期是一个有限的时间阶段。
转换:转换指的是两个不同状态之间的一种关系,表明对象在第一个状态中执行一定的动作,并且在满足某个特定条件下由某个事件触发进入第二个状态。
事件:事件指的是发生在时间和空间上的对状态机来讲有意义的那些事情。事件通常会引起状态的变迁,促使状态机从一种状态切换到另一种状态,如信号、对象额度创建和销毁等。
活动:活动指的是状态机中进行的非原子操作。
动作:动作指的是状态机中可以执行的哪些原子操作。所谓原子操作,指的是他们在运行的过程中不能被其他消息中断,必须一直执行下去,以至最终导致状态的变更或者返回一个值。

(3)如何画状态图

状态图是用来描述不同的对象在其生命周期的状态。因此,强调的是一些内部或外部事件的状态发生变化时,这些对象的状态要重要的分析和准确的贯彻落实。
状态图描述的状态是非常重要的。对象的状况,当发生特定事件时,可以被确定为状态。绘制状态图之前,我们必须明确以下几点:

●识别对象,以进行分析。
●识别状态。
●识别的事件。

(4)状态图实例

在这里插入图片描述上图描述了从开始到结束未入库产品入库,及入库后合格品销售即不合格产品被销毁的过程,表示了状态的转化。

3.用例图

(1)什么是用例图

用例图捕捉了模拟系统中的动态行为,并且描述了用户、需求以及系统功能单元之间的关系。
用例图展示了一个外部用户能够观察到的系统功能模型图。
用例图由主角,用例和它们之间的关系组成。

(2)如何画用例图

用例图被认为是高层次的需求分析系统。因此,当系统的要求,分析被捕获在用例的功能。
因此,我们可以说,使用情况是什么,但在一个有组织的方式编写的系统功能。现在到用例相关的第二件事情是参与者。行为者可以被定义为与系统进行交互的东西。
参与者可以是人的用户,一些内部的应用程序,或可能会有一些外部应用程序。因此,在一个简短的,当我们正计划绘制一个用例图中应该有以下项目:

●功能被表示为一个用例
●参与者
●用例和参与者之间的关系。

绘制到用例图捕获系统的功能要求。因此,确定上述项目后,我们必须遵循以下指导原则,绘制一个有效的用例图。

●一个用例的名称是非常重要的。所以名的选择应以这样的方式,以便它可以识别执行的功能。
●给出一个合适的名参与者。
●图中清楚地显示关系和依赖性。
●不要试图包括所有类型的关系。由于该图的主要目的是确定要求。
●使用注意以往任何时候都需要阐明一些重要的点。

(3)用例图实例

在这里插入图片描述上图描述了一个图书管理员对象可对图书馆系系统执行的操作用例,及用例的先后流程。

4.部署图

(1)什么是部署图

部署图由节点以及节点之间的关系组成。
部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。
部署图通常用来帮助理解分布式系统,一个系统模型只有一个部署图。
部署图用于可视化的软件组件部署的系统中的物理组件的拓扑结构。
部署图是用来描述一个系统的静态部署视图。

(2)部署图元素

1、结点(Node)
结点是存在与运行时的代表计算机资源的物理元素,可以是硬件也可以是运行其上的软件系统,比如64主机、Windows server 2008操作系统、防火墙等。
结点用三维盒装表示,如下图所示:
2、结点实例(Node Instance)
结点实例的命名格式:Node Instance : node。它与结点的区别在于名称有下划线和结点类型前面有冒号,冒号前面可以有示例名称也可以没有示例名称。
3、结点类型(Node Stereotypes)
结点类型有:cdrom、cd-rom、computer、disk array、pc、pc client、pc server、secure、server、storage、unix server、user pc,并在结点的右上角用不同的图标表示。
4、物件(Artifact)
物件是软件开发过程中的产物,包括过程模型(比如用例图、设计图等等)、源代码、可执行程序、设计文档、测试报告、需求原型、用户手册等等。物件表示如下,带有关键字 artifact 和文档图标。
5、连接(Association)
结点之间的连线表示系统之间进行交互的通信路径,这个通信路径称为连接(Association)。
6、结点容器(Node as Container)
一个结点可以包括其他的结点,比如组件或者物件,则称此结点为结点容器(Node as Container)

(3)如何画部署图

部署图对系统工程师是非常有用。一个高效的部署图是非常重要的,因为它控制以下参数:
●性能●可扩展性●可维护性●可移植性
在绘制部署图前应确定以下构件:
●节点●节点之间的关系

(4)部署图实例在这里插入图片描述

上图显示了系统的硬件和软件的相应物理结构。

5.组件图

(1)什么是组件图

UML 组件图(Component Diagram)又称为构件图,他描述的是在软件系统中遵从并实现一组接口的物理的、可替换的软件模块。
组件图 = 构件(Component)+接口(Interface)+关系(Relationship)+端口(Port)+连接器(Connector)
UML 组件图给提供了将要建立的系统的高层次的架构视图,这将帮助开发者开始建立实现的路标,并决定关于任务分配及(或)增进需求技能。

(2)如何画组件图

组件图是用来描述一个系统的物理构件。此神器包括文件,可执行文件,库等。所以这张图的目的是不同的,组件图的过程中使用的应用程序的实施阶段。但它准备提前以可视化的实现细节。
最初,系统的设计使用不同的UML图,然后构件是现成的组件图是用来得到一个想法的实现。
此图是非常重要的,因为如果没有它,应用程序不能有效地实施。精心准备的组件图在其他方面也是很重要的,如应用程序的性能,维护等。
●所以在绘制组件图后的工件是清楚可辨:
●在系统中使用的文件。
●库和其他构件的申请有关。
●构件之间的关系。

(3)组件图实例

在这里插入图片描述
上图描述了描述代码构件的物理结构以及各构件之间的依赖关系,提供了系统的物理视图,根据系统的代码构件显示系统代码的整个物理结构。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值