新睿云

> 知识库 > uml最全面的总结,全网或许就这一篇!

uml最全面的总结,全网或许就这一篇!

作者/来源:新睿云小编 发布时间:2019-12-16

UML 是统一建模语言的简称,它是一种由一整套图表组成的标准化建模语言。UML用于帮助系统开发人员阐明,展示,构建和记录软件系统的产出。UML代表了一系列在大型而复杂系统建模中被证明是成功的做法,是开发面向对象软件和软件开发过程中非常重要的一部分。UML主要使用图形符号来表示软件项目的设计,使用UML可以帮助项目团队沟通、探索潜在的设计和验证软件的架构设计。

一、应用UML的好处?

随着软件产品的价值提高,企业欲寻找技术以改善软件生产流程、提高质量、降低成本并缩短产品上市时间。这些技术包括组件技术,可视化编程,模式和框架的应用。企业也寻求能管理系统因范围和规模扩大而衍生的复杂性的技术。他们也意识到需要解决周期性的体系结构问题,如物理分布、并发性、复制、安全性、负载平衡和容错性。另外,万维网的开发虽然讓不少事物简化,却加剧了这些架构问题。统一建模语言(UML)旨在回应这些需求。Page-Jones 在 Fundamental Object-Oriented Design in UML 一書中总结了 UML 的主要目的,如下:

为用户提供现成的、有表现力的可视化建模语言,以便他们开发和交换有意义的模型。

为核心概念提供可扩展性 (Extensibility) 和特殊化 (Specialization) 机制。

独立于特定的编程语言和开发过程。

为了解建模语言提供一个正式的基础。

鼓励面向对象工具市场的发展。

支持更高层次的开发概念,如协作,框架,模式和组件。

整合最佳的工作方法 (Best Practices)。

Uml九种图 

Uml九种图

二、UML精华总结

1.用例图(UseCase Diagrams):

用例图主要回答了两个问题:

是谁用软件

软件的功能

从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

UML用例图 

UML用例图

2.类图

用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

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

3.对象图(Object Diagrams):

描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。

UML类图 

UML类图

4.状态图(Statechart Diagrams):

是一种由状态、变迁、事件和活动组成的状态机,用来描述类的对象所有可能的状态以及时间发生时状态的转移条件。

UML状态图 

UML状态图

5.活动图(Activity Diagrams):

是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。

UML活动图 

UML活动图

6.序列图-时序图(Sequence Diagrams):

交互图的一种,描述了对象之间消息发送的先后顺序,强调时间顺序。

序列图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。

UML序列图-时序图 

UML序列图-时序图

7.协作图(Collaboration Diagrams):

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

UML协作图 

UML协作图

8.构件图(Component Diagrams):

构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。

UML构件图 

UML构件图

9.部署图(Deployment Diagrams):

描述了系统运行时进行处理的结点以及在结点上活动的构件的配置。强调了物理设备以及之间的连接关系。

部署模型的目的:

描述一个具体应用的主要部署结构,通过对各种硬件,在硬件中的软件以及各种连接协议的显示,可以很好的描述系统是如何部署的;平衡系统运行时的计算资源分布;可以通过连接描述组织的硬件网络结构或者是嵌入式系统等具有多种硬件和软件相关的系统运行模型。

三、为什么掌握 UML 建模是成为编程高手的一条捷径?

1.基于 UML 建模的 OOAD 是 OO 软件架构师的基本功

利用建模技术有效地进行系统分析与设计,能够有条不紊、从容不迫地应对、解决复杂和棘手的软件设计难题正是编程高手们所擅长的。

件开发本质上是一种思维游戏(张恂:Software development is a mind game.),程序代码的好坏其实是开发者思维的体现。

在思考能力上,针对同一个软件设计问题,架构师常常比一般 码农想到的更多,更快,也更正确,而且具有预见性。

2.UML 帮你对软件架构和设计进行抽象、全面、敏捷地分析与思考

UML 建模方法通过多种图形(Diagram)和视图(View)提供了多个层次、多个角度分析、观察软件架构的丰富手段和灵活表现形式,例如著名的“4+1 视图”(Use Case View, Logical/Design View, Process View, Implementation View, Deployment View)等。基于这样的思考,软件架构的设计才是全方位、系统化和高质量的。

UML部署图 

UML部署图

3.UML 帮你快速、形象、牢固地记忆设计模式和方案

设计模式中蕴涵的软件设计经验都是抽象的知识,它们高于代码,不是代码,所以用 UML 来表现设计模式常常是最佳方式,两者是绝配。

四、 UML常用术语

抽象类:一个永远不会被实例化的类。这个类的一个实例永远不会存在。

Actor(演员):发起系统参与的事件的对象或人物。

活动:活动图中的步骤或行动。表示系统或演员采取的行动。

活动图:一个美化的流程图,显示了流程中的步骤和决定以及并行操作,如算法或业务流程。

聚合:是另一类的一部分。图中的包含类旁边有一个空心钻石。

工件:描述设计过程中某个步骤输出的文档。描述是图形,文字或其他组合。

关联:一个模型的两个元素之间的联系。这可能代表代码中的成员变量,或者人员记录与其所代表的人之间的关联,或者两类工作人员之间的关系,或者任何类似的关系。默认情况下,一个关联中的两个元素是相等的,并且通过该关联知道对方。一个协会也可以是一个可导航的协会,这意味着协会的来源端知道目标端,但反之亦然。

关联类:表示两个其他类之间的关联信息的类。

属性:可用于引用其他对象或保存对象状态信息的对象的特征。

基类:定义由子类通过泛化关系继承的属性和操作的类。

分支:活动图中的决策点。分支出现多个转变,每个都有一个保护条件。当控制到达分支时,恰好一个保护条件必须为真; 并且控制遵循相应的转换。

类:类似对象的类别,全部由相同的属性和操作描述,并且所有的赋值兼容。

类图:显示系统类和它们之间的关系。

分类器 :具有属性和操作的UML元素。具体来说,Actor,Classes和Interfaces。

协作:通信图中两个对象之间的关系,指示消息可以在对象之间来回传递。

通信图:显示如何在强调对象角色的同时完成操作的图表。

组件:系统中可部署的代码单元。

组件图:显示各种组件和接口之间关系的图表。

概念:要包含在域模型中的名词或抽象概念。

构建阶段:Rational统一过程的第三阶段,在这个阶段中,正在构建的系统中内置了多个功能迭代。这是主要工作完成的地方。

依赖关系:指示一个分类器的关系知道另一个分类器的属性和操作,但不直接连接到第二个分类器的任何实例。

部署图:显示各种处理器之间关系的图表。

域:系统所涉及的宇宙的一部分。

精化阶段:Rational统一过程的第二阶段,允许额外的项目计划,包括构建阶段的迭代。

元素:出现在模型中的任何项目。

封装:对象中的数据是私有的。

泛化:指示一个类是另一个类(超类)的子类。一个空心箭头指向超类。

事件:在状态图中,这表示导致系统采取行动或切换状态的信号或事件或输入。

最终状态 :在状态图或活动图中,这表示图完成的点。

叉:活动图中的一个点,多个并行控制线程开始。

泛化:继承关系,其中一个子类继承并添加到基类的属性和操作。

GoF:四人帮设计模式。

高凝聚力:GRASP评估模式,确保课程不是太复杂,做不相关的功能。

低耦合:GRASP评估模式,衡量一个类别依赖于另一个类别或与另一个类别相关联。

启动阶段:Rational统一过程的第一阶段,处理原始概念化和项目开始阶段。

继承:子类继承父类(超类)类的属性或特性。这些属性可以在子类中重写。

初始状态:在状态图或活动图中,这表示图开始的点。

实例:一个类像模板一样用来创建一个对象。这个对象被称为类的一个实例。可以创建任何数量的该类的实例。

接口:定义形成行为契约的属性和操作的分类器。提供者类或组件可以选择实现接口(即实现其属性和操作)。客户端类或组件可以依赖于接口,并因此使用提供者而不提供提供者的真实类别的任何细节。

迭代:一个小项目部分,在这个小项目中,一小部分功能被添加到项目中。包括分析,设计和编码的开发循环。

加入:活动图中的一个点,多个并行控制线程同步并重新加入。

成员:分类器中的属性或操作。

合并:活动图中的一个点,不同的控制路径汇集在一起

消息:从一个对象到另一个对象的请求,要求接收消息的对象执行某些操作。这基本上是对接收对象中的方法的调用。

方法:对象中的函数或过程。

模型:中央UML神器。由各个元素组成的层次结构,以及元素之间的关系。

多重性:显示在领域模型中,表示外部概念框,表示与其他对象的分位数的对象数量关系。

可导航性:指示关系的哪一端知道另一端。关系可以具有双向可导航性(每一端意识到另一端)或单向导航(一端意识到另一端,但反之亦然)。

符号:创建分析和设计方法的图形化文档。

注意:文字注释已添加到图表中以更详细地解释图表。

对象:对象:在活动图中,从活动接收信息或向活动提供信息的对象。在“协作图”或“序列图”中,参与图中所示场景的对象。通常:给定分类器(Actor,Class或Interface)的一个实例或示例。

包:逻辑上应该组合在一起的一组UML元素。

包图:所有元素都是包和依赖关系的类图。

模式:用于确定交互对象责任分配的解决方案。这是一个成功解决众所周知的常见问题的名称。

参数:一个操作的参数。

多态性:相同的消息,不同的方法。也用作模式。

私有:应用于属性或操作的可见性级别,指示只有包含该成员的分类器的代码才可以访问该成员。

处理器:在部署图中,代表可以部署代码的计算机或其他可编程设备。

受保护:应用于属性或操作的可见性级别,指示只有包含该成员或其子类的分类器的代码才能访问该成员。

公开:应用于属性或操作的可见性级别,指示任何代码都可以访问该成员。

读取方向箭头:指示领域模型中关系的方向。

实现:表示组件或类提供给定的接口。

角色:用于域模型,是关于角色角色的可选描述。

顺序图:一个图表,显示随着时间的推移对象的存在,以及随着时间的推移在这些对象之间传递的消息来执行一些行为。状态图图 - 显示所有可能的对象状态的图。

状态:在状态图中,这表示系统或子系统的一种状态:它在某个时间点所做的事情,以及其数据的值。

状态图:显示系统或子系统的状态,状态之间的转换以及导致转换的事件的图表。

静态:一个属性的修饰符,用于指示分类器的所有实例之间共享的属性只有一个副本。“操作”的修饰符,用于指示“操作”独立运行并且不在分类器的一个特定实例上操作。

刻板印象(Stereotype):一个应用于Model元素的修饰符,用于指示它通常不能用UML表示的东西。从本质上讲,定型允许你定义你自己的UML“方言”。

子类:继承由子类通过泛化关系定义的属性和操作的类。

互動區:活动图的一个元素,指示系统或域的哪些部分执行特定的活动。泳道内的所有活动都由泳道所代表的对象,组件或者演员负责。

时间拳击:每次迭代都会有特定目标的时间限制。

过渡:在活动图中,表示从一个活动或分支或合并或分叉或连接到另一个的控制流程。在国家图中,代表着一个国家向另一个国家的转变。

过渡阶段 - Rational 统一过程的最后一个阶段,在这个阶段,用户接受使用新系统和系统的培训,用户可以使用这个阶段。

统一建模语言( UML):统一建模语言( UML)利用文本和图形文档,通过在对象之间建立更紧密的关系,来增强软件项目的分析和设计

用例:在用例图中,表示系统响应来自Actor的某个请求所采取的操作。

用例图:显示参与者和用例之间关系的图表。

可见性:对属性或操作的修饰符,指示哪些代码可以访问成员。可见性级别包括公共,受保护和私有。

工作流程:一组产生特定结果的活动。

热门标签
new year
在线咨询
咨询热线 400-1515-720
投诉与建议
{{item.description}}

—您的烦恼我们已经收到—

我们会将处理结果发送至您的手机

请耐心等待