为了账号安全,请及时绑定邮箱和手机立即绑定

UML基础知识大剖析

UML(Unified Modeling Language)称为统一建模语言,它属于面向对象开发中一种通用的图形化建模语言,由国际对象管理组织OMG制定。需要注意到的是,UML语言不是一种可视化的编程语言,不能直接执行,它属于一种抽象层次比C、C++、Java、VB、Delphi等文本高级语言更高的图形语言,它可以抽象地表示用高级编程语言编写的文本程序的逻辑结构和行为,因此它能够更加高效、准确地反映软件设计的方案和思路。

迭代模型介绍

UML比较适合应用在软件生命周期的迭代模型中。迭代模型主要是针对事先不能完整定义产品的所有需求,计划多期开发的项目,而UML可以更好地完成软件需求分析的工作。

迭代模型将整个生命周期变成若干个迭代阶段,一次迭代的过程包括了所有软件开发流程,经过不断的迭代产生可发布的产品。从下图中可看出迭代模型水平时间维度上分为初始、细化、构造、移交阶段,每一个阶段都由业务建模、需求分析、分析与设计、实现、测试、部署等传统的流程组成。图中的阴影部分描述了不同的工作流,在不同的时间段内工作量是不同的,几乎所有的工作流在所有的时间段内均有工作量,只是大小不同而已。

图片描述

UML的组成介绍

UML的结构包括构造块、规则和公共机制三个部分。在UML的核心部分基本构造块中有三种构造块,分别是事物、关系、图。 三者之间的关系可概括为:事物对模型中最具代表性的成分进行抽象,关系把事物结合在一起,图聚集了相关的事物。

关系用于表示基本图示符号之间的关系,主要有关联、依赖、泛化、实现。
1、关联关系:描述了一组对象之间的结构性关系。
2、依赖关系:一个事物发生变化会影响另一个事物的语义。
3、泛化关系:特殊化和一般化的关系,特殊元素(子元素)的对象替代一般元素(父元素)的对象,即子元素共享父元素的结构和行为。
4、实现关系:实现是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约。

事物构成模型图的一些基本图示符号.它们表示一些面向对象的基本概念。

图以特定的视角对系统所作的抽象描述。从不同的视角可以形成系统的不同视图,主要有逻辑视图、进程视图、实现视图、部署视图、用例视图。
1、逻辑视图:表示设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集
2、进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发和同步结构
3、实现视图:对组成基于系统的物理代码的文件和构件进行建模
4、部署视图:把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构
5、用例视图:最基本的需求分析模型

视图是由图组成的,UML2.0中包括了14种图,分结构型图和行为型图。结构是静态的,有类图、对象图、构件图、部署图、包图。行为是动态的,有活动图、状态图、顺序图、通信图、用例图、时序图。每种图是从需求或设计的不同层面来描述模型,以便于所有参与者通过图形化的方式从各个角度了解产品。
1、类图:描述一组类、接口、协作和它们之间的关系,是最常见的图。类之间的关系有关联、依赖、泛化和继承、聚合、组合、实现。
(1)关联关系:提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。关联体现的是对象实例之间的关系,而不表示两个类之间的关系。
(2)依赖关系:两个类A和B,如果B的变化可能会引起A的变化,则称类A依赖于类B。
(3)泛化关系:描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说子类继承了父类,而父类是子类的泛化。
(4)共享聚集:通常简称为聚合关系,它表示类之间的整体和部分的关系,其含义是部分可能同时属于多个整体,部分和整体的生命周期可以不相同。例如,汽车和车轮就是聚合关系,车子坏了,车轮还可以用,车轮坏了,可以再换一个新的。
(4)组合聚集:通常简称为组合关系,它表示类之间的整体和部分的关系,与聚合关系的区别在于,组合关系中的部分只能属于一个整体,部分和整体的生命周期相同,部分随着整体的创建而创建,也随着整体的消亡而消亡。例如,一个公司包含多个部门,它们之间的关系就是组合关系。公司一旦倒闭,也就没有部门了
(5)实现关系:将说明和实现联系起来,接口是对行为而非实现的说明,而类中则包含了实现的结构。一个或多个类可以实现一个接口,而每个类分别实现接口中的操作。

图片描述
2、对象图:描述一组对象及它们之间的关系。描述了在类图中所建立的事物实例的静态快照。
3、构件图:描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接构件的内部结构。

图片描述
4、组合结构图:描述结构化类的内部结构,包括结构化类与系统其余部分的交互点。组合结构图用于画出结构化类的内部内容
5、用例图:描述一组用例、参与者及它们之间的关系。以图形化的方式描述系统与外部系统及用户的交互,描述用户需求,包括给予流程的角色关系等。

图片描述
6、顺序/序列图:一种交互图,展现了一种交互,它由一组对象或参与者以及它们之间可能发送的消息构成。

图片描述
7、通信图:一种交互图,它强调收发消息的对象或参与者的结构组织。通信图是顺序图的另外一种画法,顺序图强调的是时序,通信图强调的是对象之间的组织结构。

8、定时/计时图:一种交互图,它强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序。即某东西的状态随时间变化而变化的一种图。

图片描述
9、状态图:描述了一个状态机,它由状态、转移、事件和活动组成。

图片描述
10、活动图:将进程或其他计算结构展示为计算内部一步步的控制流和数据流。描述的是从一个活动到另一个活动的控制流,描述活动的顺序,活动表示处理事物的动作和状态。活动图与流程图很相似,都表达事物的处理流程,活动图与流程图的区别包括:活动图可以表达并发的动作,而流程图不能;活动图是面向对象的,而流程图是面向过程的;活动图有对象的输入、输出,流程图重点是处理流程,有明确的时间概念;活动图的对象与活动有明显区分,流程图并不强调这点;活动图可以有多个结束状态,而流程图只能有一个结束状态。

图片描述
11、部署图:描述对运行时的处理节点及在其中生存的构件的配置。

图片描述
12、制品图:描述计算机中一个系统的物理结构。制品包括文件、数据库和类似的物理比特集合。
13、包图:描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。包图的主要用途是“打包”类图。用类图描述业务概念时,很多时候会因为业务类太多,而导致类图非常庞大,不利于阅读,这时可以将某些类放入“包”中,通过包图来组织业务概念图。
图片描述
14、交互概览图:活动图和顺序图的混合物。

点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Python工程师
手记
粉丝
1.8万
获赞与收藏
1569

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消