UML图知识汇总

UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。

一、基本概念  

  如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图,部署图。动态图分为:状态图,活动图,协作图,序列图。

  1、用例图(UseCase Diagrams): 

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

  2、类图(Class Diagrams):

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

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

  2.1.泛化

    【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

    

  2.2.实现

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

      

  2.3.关联

     【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

          【代码体现】:成员变量

      

  2.4.聚合 

    【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

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

          【代码体现】:成员变量

      

  2.5.组合

    【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

         组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

    【代码体现】:成员变量

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

          

  2.6.依赖  

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

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

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

    

  2.7 各种类图关系

    

  3、对象图(Object Diagrams):

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

      

  4、状态图(Statechart Diagrams):

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

    

  5、活动图(Activity Diagrams):

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

交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流。

活动图是一种表述过程基理、业务过程以及工作流的技术。

它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模。

      

  5.1 带泳道的活动图

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

      

  5.2 带对象流的活动图

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

    

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

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

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

    

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

  序列图中涉及的元素:

  6.1 生命线

    生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实例。

    

  6.2 同步消息

    同步等待消息

    

  6.3 异步消息

    异步发送消息,不需等待

        

  6.4 注释

    

  6.5 约束

    

  6.6 组合    

    组合片段用来解决交互执行的条件及方式。它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。常用的组合片段有:抉择、选项、循环、并行。

  7、协作图(Collaboration Diagrams):

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

    

 

  8、构件图(Component Diagrams):

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

    

  9、部署图(Deployment Diagrams):

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

部署模型的目的:

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

二、图的差异比较

  1.序列图(时序图)VS协作图

       序列图和协作图都是交互图。二者在语义上等价,可以相互转化。但是侧重点不同:序列图侧重时间顺序,协作图侧重对象间的关系。

共同点:时序图与协作图均显示了对象间的交互。

不同点:时序图强调交互的时间次序。

           协作图强调交互的空间结构。

    2.状态图VS活动图

      状态图和活动图都是行为图。状态图侧重从行为的结果来描述,活动图侧重从行为的动作来描述。状态图描述了一个具体对象的可能状态以及他们之间的转换。在实际的项目中,活动图并不是必须的,需要满足以下条件:1、出现并行过程&行为;2、描述算法;3、跨越多个用例的活动图。

    3.活动图VS交互图

  二者都涉及到对象和他们之间传递的关系。区别在于交互图观察的是传送消息的对象,而活动图观察的是对象之间传递的消息。看似语义相同,但是他们是从不同的角度来观察整个系统的。

三、UML与软件工程

  UML图是软件工程的组成部分,软件工程从宏观的角度保证了软件开发的各个过程的质量。而UML作为一种建模语言,更加有效的实现了软件工程的要求。

  如下图,在软件的各个开发阶段需要的UML图。

      

  下表是UML使用人员图示:

  

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UML对象UML中的一种形表示方法,用于描述系统中的对象及其之间的关系,包括对象的属性和方法等。在进行编程时,我们可以根据对象将系统的各个对象的属性和方法进行代码实现。下面是UML对象转化为代码的步骤: 1. 分析对象,确定对象的属性和方法。通过对对象进行分析,我们可以确定各个对象的属性和方法。属性一般对应于类的成员变量,方法对应于类的成员函数。在确定属性和方法时,需要考虑对象之间的关系,如聚合、组合、继承等。 2. 根据属性和方法进行代码实现。通过定义类及其成员变量和成员函数进行代码实现。对于普通对象,我们可以直接定义类及其成员变量和成员函数。而对于组合、聚合、继承等关系,我们需要在定义类的同时考虑这些关系,并进行相应的代码实现。 3. 进行系统设计和编写。根据对象转化为代码后,我们需要继续进行系统设计和编写。系统设计包括系统架构设计、模块划分、接口设计等,编写过程中要考虑系统的性能、可靠性、安全性等问题。 总之,UML对象转化为代码是一项重要的工作,需要开发人员具备深入的UML理论知识及代码实现能力。只有将UML对象转化为优秀的代码,才能为系统开发及维护工作提供方便和保障。 ### 回答2: UML(Unified Modeling Language,统一建模语言)对象是一种描述对象和它们之间关系的形化表示方法。在软件开发中,对象通常用于自顶向下的设计,即在设计系统结构时,首先绘制对象,然后将其转化为源代码。下面我们来介绍一下如何将UML对象转化为代码。 1.识别对象和类 首先需要识别出UML对象中的对象和它们所属的类。对象通常表示为矩形,类通常表示为矩形上方有名称的矩形。在对象中,对象通常与类形成实例化关系,即找到对应的类,实例化出一个对象。 2.识别对象之间的关系 在对象中,不同对象之间会有各种不同的关系,如继承、关联、聚合、组合等。需要进一步识别对象之间的关系,并将这些关系转化为代码中相应的关系。例如,如果两个类之间存在继承关系,则需要在代码中实现继承。 3.编写代码 根据UML对象中的对象和关系,编写相应的代码。在编写代码时,需要根据设计模式和编程规范进行,不同的项目会有不同的编程要求,需要遵守项目的编码标准。 4.测试 编写完代码后,需要对代码进行测试,确保代码能够正常运行,并且符合需求规格说明书和设计文档。 总的来说,将UML对象转化为代码需要识别对象和类、识别对象之间关系、编写代码以及进行测试。这需要具备一定的编程能力和软件开发经验。了解面向对象编程思想,熟悉UML建模规范以及代码编写规范,可以更好地将UML对象转化为代码。 ### 回答3: UML对象是一种用于展示系统中对象及其关系的工具,其中包含对象、属性和方法,以及它们之间的关系。在开发过程中,我们可以利用UML对象来更清晰地理解需求及设计,但它仍然只是一份纸,需要将纸中的内容转化为实际可执行的代码。本文将介绍如何将UML对象转化为代码。 第一步:根据类确定类 在UML对象中,每一个对象都是一个类的实例,所以要将UML对象转化为代码,首先需要确定每个类的定义。可以参考类、系统规格说明书或需求文档来确定各个类的方法和属性。 第二步:定义属性和方法 在UML对象中,每个对象都有一些属性和方法。因此,要将UML对象转化为代码,需要先定义类的属性和方法,并为其赋予数据类型和可见性等属性。 第三步:定义类之间的关系 在UML对象中,对象之间的关系可以通过不同箭头和线来表示。例如,聚合关系、组合关系、关联关系等。在代码实现中,也需要考虑这些关系,并确定如何表示它们。 第四步:定义构造函数 在UML对象中,每个对象都需要根据其定义的类进行初始化。因此,在代码中也需要定义相应的构造函数来创建对象。 第五步:编写代码 在完成以上步骤后,我们可以开始将UML对象转化为实际的代码。根据类定义、属性、方法和关系来编写代码,将UML对象转换为可执行的代码实现。 总结 通过以上步骤,我们可以将UML对象转化为实际的代码进行实现,并确保代码可以准确地反映出UML对象中的对象、属性和关系等。这样做可以更好地理解需求及设计,并且能够提高代码的可维护性和可扩展性,使开发工作变得更加高效和可靠。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值