`
tigers20010
  • 浏览: 48623 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

2010-01-19 传智播客—UML(二)(转载)

    博客分类:
  • UML
阅读更多

三、UML

UML(United Modeling Language,统一建模语言):是一种基于面向对象的可视化建模语言。

UML采用了一组形象化的图形(如类图)符号作为建模语言,使用这些符号可以形象地描述系统的各个方面。

UML通过建立图形之间的各种关系(如类与类之间的关系)来描述模型。

UML中有二类图(共10种):

1).静态模型图:描述系统的静态结构

类图、对象图、包图、组件图、部署图

2).动态模型图:描述系统行为的各个方面

用例图、时序图、协作图、状态图、活动图。

其中蓝色为重点图例,其他的图例比较少用。

在画图之前我们有必要复习一下类的四种关系:

u 关联关系(association)

u 依赖关系(dependency)

u 泛化关系(generalization)

u 实现关系(realization)

我们在hibernate中有学习到这四种关系,原本我以为那只是在hibernate中使用。没想到在UML中也有,其实这四种关系应该是软件工程中的规范了。那hiberante也是使用了这种规范进行相关开发的,这样可以促进hibernate路线的正确性,这太好了!

我们使用的是IBM的RationalRoseUML设计工具,使用工具具体图画的操作就不说明了。

1.用例图

用例图(Use Case Diagram): 也称为用户模型图, 是从软件需求分析到最终实现的第一步, 它是从客户的角度来描述系统功能。

用例图包含 3 个基本组件:

1) 参与者(Actor): 与系统打交道的人或其他系统即使用该系统的人或事物。在UML中参与者用人形图标表示。

2) 用例(Use Case): 代表系统的某项完整的功能。在UML中使用一个椭圆来表示。

3) 关系: 定义用例之间的关系:

a) 泛化关系:表示同一业务目的(父用例)的不同技术实现(各个子用例)。 在UML中,用例泛化用一个三角箭头从子用例指向父用例。以下是某购物网站为用户提供不同的支付方式。

b) 包含关系:一个用例可以包含其他用例具有的行为, 并把它包含的用例行为作为自身行为的一部分。 在 UML 中包含关系用虚线箭头加 “<<include>>”, 箭头指向被包含的用例。

c) 扩展关系:如果在完成某个功能的时候偶尔会执行另外一个功能, 则用扩展关系表示。在 UML 中扩展关系用虚线箭头加 “<<extend>>”, 箭头指向被扩展的用例。

 

蓝线部分为:泛化关系。红线部分为:包含关系。绿线部分为:泛化关系。

2.类图

类图是面向对象系统建模中最常用的图,是定义其他图的基础。

类图主要是用来显示系统中的类, 接口以及它们之间的关系。

类图包含的主要元素有类, 接口和关系。 其中关系有关联关系, 泛化关系, 依赖关系和实现关系。 在类图中也可以包含注释和约束。

这里的关系十分重要,我们来一一看一下。

1). 泛化关系(继承关系):用来表示类与类, 接口与接口之间的继承关系. 泛化关系有时也称为”is a kind of”关系。

 

2). 实现关系:用来表示类与接口之间的实现关系。

 

3).依赖关系:比如我们上班需要交通工具,交通工具可以是公交车、私家车、电动车或自行车,步行也可以。这就是一依赖关系,使用某一个对象或对象的方法来完成一种功能。但与它不存在固定对应关系。

 

4).关联关系:对于两个相对独立的系统,当一个系统的实例与另一个系统的一些特定实例存在固定的对应关系时,这两个系统之间为关联关系。

多对多双向关联,可以自动生成代码哦:

 

关联关系中有一个难点,上面的图是多对多双向关联。我也可以映射出一对多和多对一的意向关联。但一对多关系中还有聚合关系和组成关系。

聚合关系:是更强形式的关联。强调部分和整体逻辑结构,但不强调生命周期。对应的属性具有get/set方法。例如计算机包含键盘和鼠标,但如果计算机不在了键盘和鼠标可以存。我们也可以为计算机换键盘和鼠标:

 

UML中组成关系:是更强形式的聚合,不仅强调部分和整体,而且还强调生命周期。仅有get方法。比如人有头和手,如果主体不在了,那么部分肯定也不存在了。也不能更换。

 

5).导航性:

导航性表示可从源类的任何对象到目标类的一个或多个对象遍历。 即:给定源类的一个对象, 可以得到目标类的所有对象。 可以在关联关系上加上箭头表示导航方向。

只在一个方向上可以导航的关联称为单向关联,用一个带箭头的方向表示; 在两个方向上都可以导航的关联称为双向关联, 用一条没有箭头的实线表示。

 

3. 时序图

时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序。

当执行一个用例时, 时序图中的每条消息对应了一个类操作或者引起转换的触发事件。

在 UML 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延伸。 横轴代表在协作中各个独立的对象。 当对象存在时, 生命线用一条虚线表示, 消息用从一个对象的生命线到另一个对象的生命线的箭头表示。 箭头以时间的顺序在图中上下排列。

 

时序图中的基本概念:

对象:时序图中对象使用矩形表示,并且对象名称下有下划线。将对象置于时序图的顶部说明在交互开始时对象就已经存在了。如果对象的位置不在顶部,表示对象是在交互的过程中被创建的。

生命线:生命线是一条垂直的虚线。表示时序图中的对象在一段生命周期内的存在。每个对象底部中心的位置都带有生命线。

消息:两个对象之间的单路通信。从发送方指向接收方。在时序图中很少使用返回消息。

激活:时序图可以描述对象的激活和钝化。激活表示该对象被占用以完成某个任务。钝化指对象处于空闲状态,等待消息。在 UML 中,对象的激活时将对象的生命线拓宽为矩形来表示的。矩形称为计划条或控制期。对象就是在激活条的顶部被激活的。对象在完成自己的工作后被钝化。

对象的创建和销毁:在时序图中, 对象的默认位置是在图的顶部。这说明对象在交互开始之前就已经存在了。如果对象是在交互过程中创建的,那么就应该将对象放到中间部分。如果要撤销一个对象,在其生命线终止点处放置“ X”符号。

5.活动图

活动图就是流程图,但在UML工具中可以加入泳道:

 

6.状态图

通过建立对象的生存周期模型来描述对象随时间变化的动态行为。比如hibernate中持久化对象的三种状态:临时状态、持久化状态、游离状态。

 

状态图的基本概念:

状态:用圆角矩形表示。状态名称表示状态的名字,通常用字符串表示。一个状态的名称在状态图所在的上下文中应该是唯一的。

转换:用带箭头的直线表示。一端连着源状态,一端连着目标状态。

初始状态:每个状态图都有一个初始状态。此状态代表状态图的起始位置。初始状态只能作为转换的源,不能作为转换的目标,并且在状态图中只能有一个。初始状态用一个实心圆表示。

终止状态:模型元素的最后状态,是一个状态图的终止点。终止状态在一个状态图中可以有多个。

7.协作图、对象图、包图

不画了,用处不大且非常简单。

8.组件图

组件图用来建立系统中各组件之间的关系,各组件通过功能组织在一起。

Javabean,ejb,jsp都是组件。在UML中,组件使用在左侧有两个小矩形的大矩形来表示。

组件图可以用来设计系统的整体构架:

 

9.部署图

部署图用来帮助开发者了解软件中的各个组件驻留在什么硬件位置,以及这些硬件之间的交互关系。

节点:用来表示一种硬件,可以是打印机,计算机等。节点的标记符号是一个三维框,在框的左上方包含了节点的名称。

通信关联:节点通过通信关联建立彼此的关系,采用从节点到节点绘制实线来表示关联。

 

一下子搞出来这么多东西,这么一看UML贯穿软件设计的各个阶段。让人感觉很好!

一定要学好软件工程,努力在工作中总结经验!

分享到:
评论

相关推荐

    传智播客_java培训教程_UMLppt课件

    传智播客_java培训教程_UMLppt课件,禁止商业用途

    传智播客扫地僧视频讲义源码

    19_结构体中套二级指针_传智扫地僧 20_作业强化 21_C提高课程_day01-day04_知识体系梳理_传智扫地僧 源码及文档 01_上次课程回顾 02_二级指针三种内存模型综合训练_框架搭建 03_二级指针三种内存模型综合训练_实现 ...

    computer-uml.rar_computer-uml_ssd3 uml_uml-customer-system

    本资料集“computer-uml.rar”包含了与计算机UML相关的图像和描述,特别是针对“uml-customer-system”的设计,这是对一个基于SSD3技术的客户系统的详细建模。 首先,我们要理解UML的基本概念。UML是一种标准化的...

    北航UML课件---北航考博软件工程UML考试范围

    【标题】"北航UML课件---北航考博软件工程UML考试范围"揭示了这组资料的核心内容,即北京大学航空航天大学(北航)针对博士研究生入学考试中的软件工程科目,重点聚焦于统一建模语言(UML)的学习与复习。UML是一种...

    maven-plantuml-plugin, 使用PlantUML语法生成UML图的Maven 插件.zip

    maven-plantuml-plugin, 使用PlantUML语法生成UML图的Maven 插件 然而,这个项目不再被维护了。使用语法生成UML图表的一个 Maven 插件插件。重要说明如果你想使用PlantUML大于 8031的版本,你必须使用这个插件的版本...

    传智播客CRM项目视频详细讲解及源代码(ssh) 共10g

    10.UML 功能模块 1.客户管理 包含子模块:客户管理、客户服务、投诉处理、客户关怀、客户导入等模块 2.联系人管理 3.权限管理(重点模块) 包含子模块:功能模块、角色模块、用户模块。 4.日程/任务管理...

    软考资料\算法真题\软考上机---历年软考DFD,UML试题分析

    标题中的“软考资料\算法真题\软考上机---历年软考DFD,UML试题分析”表明这是一份关于软件考试(Soft Exam)的复习资料,特别关注的是数据流图(DFD)和统一建模语言(UML)两个核心主题。数据流图是系统分析中的一...

    传智播客版贪吃蛇游戏、俄罗斯方块游戏java开发源代码.zip.zip

    传智播客版贪吃蛇游戏、俄罗斯方块、JNI、UML、FTP服务器架设视频教程 下载地址:http://www.verycd.com/topics/249195/ 张孝祥java系列:java基础、java高级、javascript、javaweb视频教程 下载地址:...

    仓库管理系统----统一建模(UML).pdf

    仓库管理系统----统一建模(UML) 仓库管理系统是仓库日常业务活动的核心系统,旨在提高仓库管理效率、降低成本、提高客户满意度。基于 UML 的仓库管理系统的设计与实现旨在使用统一建模语言(UML)对仓库管理系统...

    C++文件操作-图书馆管理系统:UML课程作业,采用Qt开发.zip

    C++文件操作-图书馆管理系统:UML课程作业,采用Qt开发 C++文件操作-图书馆管理系统:UML课程作业,采用Qt开发 C++文件操作-图书馆管理系统:UML课程作业,采用Qt开发 C++文件操作-图书馆管理系统:UML课程作业,...

    计算机软件-编程源码-标准建模语言UML教程.zip

    标准建模语言(Unified Modeling Language,UML)是软件工程领域一种广泛使用的建模工具,它为软件开发提供了一种图形化的表示方法,用于描述软件系统的设计、结构和行为。UML不仅适用于面向对象的系统,而且在面向...

    Mastering Object-Oriented Analysis and Design with UML

    这是ibm的课件:Mastering Object-Oriented Analysis and Design with UML,中文的在CSDN已有同学上传~建议中英文对照着看,因为中文有的翻译不是很恰当

    Systems.Analysis.and.Design.An.Object-Oriented.Approach.with.UML.5th

    Systems Analysis and Design: An Object-Oriented Approach with UML, 5th Edition by Dennis, Wixom, and Tegarden captures the dynamic aspects of the field by keeping students focused on doing SAD while ...

    ArgoUML-0.34-setup.exe.zip_UML建模_uml 工具

    这个压缩包“ArgoUML-0.34-setup.exe.zip”包含了ArgoUML的安装程序,版本号为0.34,这表明它是一个较早的版本,但依然被广泛用于学习和实践UML建模。 UML是一种标准化的图形表示法,用于系统分析和设计,它将复杂...

    Object-Oriented Analysis and Design Using UML

    #### 二、统一建模语言(Unified Modeling Language, UML) **2.1 UML概述** 统一建模语言(Unified Modeling Language, UML)是一种标准化的图形化表示语言,用于描述面向对象系统的结构和行为。UML由Rational ...

    IBM-ETP-java培训12.UML 类图.ppt

    《IBM ETP Java培训12:UML类图详解》 在软件开发过程中,UML(统一建模语言)作为一种标准化的图形表示法,被广泛应用于系统分析与设计。IBM ETP(Enterprise Training Program)的Java培训课程中,第12部分专门...

    ISO IEC19501---Unified Modeling Language Specification

    ### 统一建模语言(UML)规范 ISO/IEC19501:2005(E) #### 概述 ISO/IEC19501:2005(E) 是一个正式的标准文档,定义了统一建模语言(Unified Modeling Language, UML)的规范版本1.4.2。UML是一种广泛使用的图形化...

Global site tag (gtag.js) - Google Analytics