统一建模语言——UML

  • 一、基本概念
  • 二、作用
  • 三、分类
    • 1 用例图
    • 2 类图
    • 3 对象图
    • 4 状态图
    • 5 活动图
    • 6 序列图(时序图)
    • 7 协作图
    • 8 构件图
    • 9 部署图(配置图)
  • 四、UML绘图工具选择

一、基本概念

统一建模语言(Unified Modeling Language,UML)可以为面向对象系统的产品进行说明、可视化和编制文档,是一种非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。UML的本质是为了更好地交流。

二、作用

1 为软件系统建立可视化模型
基于UML的可视化模型,使系统结构直观、易于理解;使用UML进行软件系统的模型不但有利于系统开发人员和系统用户的交流,还有利于系统维护。

2 为软件系统建立构件
它可以使用代码生成器工具将UML模型转换为多种程序设计语言代码,如可生成C++,XML,DTD,JAVA, Visual basic等语言的代码,或使用反向生成器工具将程序源代码转换为UML;甚至还可以生成关系数据库中的表。

3 为软件系统建立文档
可以为系统的体系结构及其所有细节建立文档。不同的UML模型图可以作为项目不同阶段的软件开发文档。

三、分类

UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图。

也可以分为静态视图和动态视图。静态视图分为:用例图,类图,对象图,包图,构件图,部署图。动态视图分为:状态图,活动图,协作图,序列图。

1 用例图

用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

2 类图

类图描述类的内部结构和类与类之间的关系,是一种静态结构图。 在类图中,有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

(1) 泛化
是一种继承关系,表示一般与特殊的关系。

(2) 实现

是一种类与接口的关系,表示类是接口所有特征和行为的实现。

(3)关联

两个类之间有一定的关联度。如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

代码体现:成员变量


(4)聚合

是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎,学校和老师。

聚合关系是关联关系的一种,是较强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

代码体现:成员变量(使用set方法设置成员变量)

(5)组合

是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门,人和眼睛。

组合关系是关联关系的一种,是比聚合关系还要强。

代码体现:成员变量(使用构造方法设置成员变量)

箭头及指向:带实心菱形的实线,菱形指向整体

(6)依赖

是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

代码表现:局部变量、方法的参数或者对静态方法的调用

箭头及指向:带箭头的虚线,指向被使用者。

(7)类图示例

3 对象图

对象图(object diagram)描述的是参与交互的各个对象在交互过程中某一时刻的状态。它是系统在某一个特定时间点上的静态结构,是类图的实例和快照,常用于表示复杂类图的实例。对象图实质上是具有关联关系的类图的实例。

4 状态图

描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移。状态图是对类图的补充。

5 活动图

为了完成某个目标需要做的活动以及这些活动的执行顺序,着重表现的是系统的行为。本质是一种流程图,它描述了活动到活动的控制流。  

(1)带泳道的活动图

泳道表明每个活动是由哪些人或哪些部门负责完成。

(2)带对象流的活动图
用活动图描述某个对象时,可以把涉及到的对象放置在活动图中,并用一个依赖将其连接到进行创建、修改和撤销的动作状态或者活动状态上,对象的这种使用方法就构成了对象流。对象流用带有箭头的虚线表示。

6 序列图(时序图)

交互图的一种,描述了对象之间消息发送的先后顺序,强调时间顺序。序列图的主要用途是把用例表达的需求,进行更加精细的表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。

消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。

7 协作图

交互图的一种,描述了收发消息的对象的组织关系,强调对象之间的合作关系。时序图按照时间顺序布图,而协作图按照空间结构布图。

8 构件图

描述各种构件之间的依赖关系。构件时的单个组成部分,可以是一个文件,产品、可执行文件和脚本等。

9 部署图(配置图)

部署图描述一个系统运行时的硬件节点、在这些节点上运行的软件构件将在何处物理运行以及它们将如何彼此通信的静态视图。

小结:
用例图描述系统的外部交互、序列图描述系统的内部交互、状态图描述系统的动态特性、部署图描述系统的物理节点、类图与对象图描述依赖关系。

四、UML绘图工具选择

Visio,亿图图示

统一建模语言——UML相关推荐

  1. 统一建模语言(UML) 版本 2.0

    原文: http://www.ibm.com/developerworks/cn/rational/321_uml/ 简介 参考 UML 基础系列的其他文章和教程 UML基础: 统一建模语言简介 UM ...

  2. 软考初级程序员易错题:在统一建模语言 (UML)中,( )展现了 一组对象以及它们之间的关系, 给出了系统的静态设计视图或静态进程视图,描述了( )中所建立的事物 实例的静态快照。

    在统一建模语言 (UML)中,( )展现了 一组对象以及它们之间的关系, 给出了系统的静态设计视图或静态进程视图,描述了( )中所建立的事物 实例的静态快照. 知识点: 统一建模语言 (UML) 问题 ...

  3. 统一建模语言——UML(第9-20课时)(cont.)

    文章目录 UML概述 UML是什么 UML能做什么 为什么要学UML UML构造需求模型 用例建模技术 绘制用例图 识别执行者 识别用例 检查形式 关联关系 编写用例文档 用例文档的组成部分 详细说明 ...

  4. 6 统一建模语言(UML)图中,( )用于对时间如何改变对象的状态以及引起对象从一个状态向另一个状态转换的事件进行建模。( )是此种图的一种特殊情况,对于系统的功能建模特别重要,并强调对象间的控制

    标签: 软考初级程序员易错题,计算机基础, 面向对象基础,统一建模语言 (UML) 6 统一建模语言(UML)图中,( )用于对时间如何改变对象的状态以及引起对象从一个状态向另一个状态转换的事件进行建 ...

  5. 【中级软考】UML图(Unified Modeling Language统一建模语言、标准建模语言)

    文章目录 UML图 UML图的作用 主要模型 功能模型 对象模型 动态模型 图的种类 用例图 类图 对象图 包图 活动图 状态图 1.概述: 2.构成要素: 2.1状态(States): 2.2转移( ...

  6. UML统一建模语言知识体系概述

    UML统一建模语言知识体系概述 http://developer.51cto.com/  2006-01-11 16:46    noahsports.com  我要评论(3 ) UML是一种定义良好 ...

  7. 统一建模语言(UML)介绍

    统一建模语言 科技名词定义 中文名称: 统一建模语言 英文名称: unified modeling language;UML 定义: 是一种面向对象的建模语言,它是运用统一的.标准化的标记和定义实现对 ...

  8. UML(Unified Modeling Language)统一建模语言--类图详解

    UML(Unified Modeling Language)统一建模语言--类图详解   2010-05-12 作者:fenglin1985 来源:fenglin1985的blog   类图是面向对象 ...

  9. UML基础: 统一建模语言简介

    回顾20世纪晚期--准确地说是1997年,OMG组织(Object Management Group对象管理组织)发布了统一建模语言(Unified Modeling Language,UML).UM ...

  10. [本体论][UML][统一建模语言][软件建模][OWL]从本体论到UML到OWL

    以下内容,是关于软件建模的方法与思路. UML与OWL都是基于本体论的建模语言. 本体论(哲学) 本体论(信息科学) UML(统一建模语言) more info 参考:[设计语言][统一建模语言][软 ...

最新文章

  1. 文本挖掘简介及软件安装
  2. graphpad怎么处理cck8的_Graphpad Prism 的 4 个隐藏技能助你轻松发表 SCI
  3. irobot擦地机器人故障_iRobot擦地机器人:只会擦地并不“奢侈”
  4. 利用datagrip从hive导入csv数据(还没整理完)
  5. PHP程序中时间戳,php 时间戳常用代码
  6. Cloudera Manager 术语和架构
  7. 邮政计算机网络,邮政计算机网络论文(共2018字).doc
  8. 踢爆关于创业公司的五大认知误区!
  9. halcon常用代码(持续更新)
  10. 案例研究–亚马逊服务中断,数据库崩溃–我们恢复数据库且无数据损失
  11. eplan窗口宏与符号宏是什么_如何使用EPLAN里的宏值集?
  12. 高等数学学习笔记——第五十七讲——平面与直线的位置关系
  13. ffmpeg webm 提取_使用ffmpeg转换webm格式
  14. P3853 路标设置
  15. 网站被劫持怎么办,怎么解决?
  16. PubWin服务器同步时间
  17. Excel图表坐标轴出现系列1、系列2的解决方案
  18. linux_SIGCHLD信号-子进程回收
  19. 基于proteus的51单片机仿真实例五十七、定时器/计数器T0的定时实例
  20. virtualbox折腾记

热门文章

  1. python如何确定拐点_如何在嘈杂的曲线中找到拐点?
  2. 当不知轴承型号时如何寻找轴承故障频率_知课堂 | 快速计算轴承特征频率
  3. aida64使用教程
  4. 软件测试计算机硬件 64,《计算机系统与系统软件》用AIDA64测试上机报告
  5. oracle客户端添加sqlldr
  6. 快压卸载后,右键打开压缩文件时还是有快压,方案:删除注册表相关项
  7. Curve fitting C: Non-linear Iterative Curve Fitting中文翻译
  8. linux内核教学的全套视频,中科大Linux内核分析视频教程下载,共计23集
  9. 手机怎么看php格式的视频教程,wmv格式用手机怎么看
  10. Springboot入门级教程详解