0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

标签 > UML

UML

+关注 0人关注

Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。

文章: 65
视频: 1
浏览: 30750
帖子: 15

UML简介

  Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。

  Grady Booch的描述对象集合和它们之间的关系的方法。James Rumbaugh的对象建模技术(OMT)。Ivar Jacobson的包括用例方法的方式。还有其他一些想法也对UML起到了作用,UML是Booch, Rumbaugh, Jacobson。UML已经被对象管理组织(OMG)接受为标准,这个组织还制定了通用对象请求代理体系结构(CORBA),是分布式对象编程行业的领头羊。计算机辅助软件工程(CASE)产品的供应商也支持UML,并且它基本上已经被所有的软件开发产品制造商所认可,这其中包括IBM和微软(用于它的VB环境)。

  UML规范用来描述建模的概念有,类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。

UML百科

  Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。

  Grady Booch的描述对象集合和它们之间的关系的方法。James Rumbaugh的对象建模技术(OMT)。Ivar Jacobson的包括用例方法的方式。还有其他一些想法也对UML起到了作用,UML是Booch, Rumbaugh, Jacobson。UML已经被对象管理组织(OMG)接受为标准,这个组织还制定了通用对象请求代理体系结构(CORBA),是分布式对象编程行业的领头羊。计算机辅助软件工程(CASE)产品的供应商也支持UML,并且它基本上已经被所有的软件开发产品制造商所认可,这其中包括IBM和微软(用于它的VB环境)。

  UML规范用来描述建模的概念有,类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。

  UML类图与类的关系详解

  在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合实例理解这些关系。

  基本概念

  类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。

  类图的3个基本组件:类名、属性、方法。

  

  泛化(generalization):表示is-a的关系,是对象之间耦合度最大的一种关系,子类继承父类的所有细节。直接使用语言中的继承表达。在类图中使用带三角箭头的实线表示,箭头从子类指向父类。

  

  实现(Realization):在类图中就是接口和实现的关系。这个没什么好讲的。在类图中使用带三角箭头的虚线表示,箭头从实现类指向接口。

  

  依赖(Dependency):对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。在类图使用带箭头的虚线表示,箭头从使用类指向被依赖的类。

  

  关联(Association) : 对象之间一种引用关系,比如客户类与订单类之间的关系。这种关系通常使用类的属性表达。关联又分为一般关联、聚合关联与组合关联。后两种在后面分析。在类图使用带箭头的实线表示,箭头从使用类指向被关联的类。可以是单向和双向。

  

  聚合(Aggregation) : 表示has-a的关系,是一种不稳定的包含关系。较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。如公司和员工的关系,公司包含员工,但如果公司倒闭,员工依然可以换公司。在类图使用空心的菱形表示,菱形从局部指向整体。

  

  组合(Composition) : 表示contains-a的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。是一种更强的聚合关系。部分不能脱离整体存在。如公司和部门的关系,没有了公司,部门也不能存在了;调查问卷中问题和选项的关系;订单和订单选项的关系。在类图使用实心的菱形表示,菱形从局部指向整体。

  

  多重性(Multiplicity) : 通常在关联、聚合、组合中使用。就是代表有多少个关联对象存在。使用数字。。星号(数字)表示。如下图,一个割接通知可以关联0个到N个故障单。

  

  聚合和组合的区别

  这两个比较难理解,重点说一下。聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

  实例分析

  联通客户响应OSS。系统有故障单、业务开通、资源核查、割接、业务重保、网络品质性能等功能模块。现在我们抽出部分需求做为例子讲解。

  大家可以参照着类图,好好理解。

  

  1. 通知分为一般通知、割接通知、重保通知。这个是继承关系。

  2. NoticeService和实现类NoticeServiceImpl是实现关系。

  3. NoticeServiceImpl通过save方法的参数引用Notice,是依赖关系。同时调用了BaseDao完成功能,也是依赖关系。

  4. 割接通知和故障单之间通过中间类(通知电路)关联,是一般关联。

  5. 重保通知和预案库间是聚合关系。因为预案库可以事先录入,和重保通知没有必然联系,可以独立存在。在系统中是手工从列表中选择。删除重保通知,不影响预案。

  6. 割接通知和需求单之间是聚合关系。同理,需求单可以独立于割接通知存在。也就是说删除割接通知,不影响需求单。

  7. 通知和回复是组合关系。因为回复不能独立于通知存在。也就是说删除通知,该条通知对应的回复也要级联删除。

  经过以上的分析,相信大家对类的关系已经有比较好的理解了。大家有什么其它想法或好的见解,欢迎拍砖。

  PS:还是那句话:以上类图用Enterprise Architect 7.5所画,在此推荐一下EA,非常不错。可以替代Visio和Rose了。Visio功能不够强大,Rose太重。唯有EA比较合适。

  UML 还有用吗

  有用的,主要用在设计和分析阶段,但是 UML 不适合用来做代码生成。

  从这个问题里,也正好发现了一个有意思的事儿:图形化的方式传达信息的能力很强,但是通过图形化语言去做编程反而很困难。代码生成或者说技术效率的提升,一直以来靠得其实是 DSL。

  UML 有几种图

  UML 有几种图?第一反应是不是类图?其实,还有用例图、顺序图、活动图、状态图、组件图等。这里提到的每一种图,都代表着工程的一个特定维度,它们的专注点是正交的,都有其独特的用处。使用 UML 来分析和设计,可以让大家对整个系统有个更全面的认知。

  用例图

  拿用例图来说,它衡量的是 1) 系统内部的功能结构 2) 外部系统和用户的对接关系。

  「和外部系统对接」,这是整个工程中最薄弱的环节,就好比汽车各系统零部件之间的结合处,非常脆弱而且容易磨损老化。外部系统对接的复杂程度是衡量工程风险和工作量的一项重要指标,如果没有用例图这样的工具和针对外部系统对接关系进行分析的意识,那后期会有很多坑。

  你是不是只熟悉类图

  UML 初学者最容易犯的错误就是太在意类图,却忽略其他。类图是一种“静态”设计,像顺序图、协作图、活动图则是对系统的一种“动态”设计,体现的是二进制世界中的实际场景。我们经常使用顺序图来设计、分析关键流程,有哪些模块参与,分别承担什么责任,彼此之间如何调用。活动图通常被人拿来描述复杂的业务流程。

  状态图,状态图的用处就广泛了,常用来分析组件的生命周期,而且用途不仅仅局限在敲代码:PM 可以拿它来设计页面跳转逻辑,Growth Hacker 可以拿它设计和分析用户转化模型,工程师可以用它来吊打逻辑不清晰的产品经理。

  最后,附上一张 Android MediaPlayer 的状态图,相信很多 Android 工程师都比较眼熟吧 :)

  

查看详情

uml知识

展开查看更多

uml技术

最流行的uml建模工具有哪些

最流行的uml建模工具有哪些

UnifiedModelingLanguage(UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发...

2019-09-25 标签:UMLUML建模 2.7万 0

Uml建模三种模型_uml建模的步骤

Uml建模三种模型_uml建模的步骤

描述系统内部对象及其关系的静态结构。类模型由类图构建,类图中节点表示类,类与类之间的关联关系用不同含义的弧标识。

2019-09-25 标签:UMLUML建模 1.6万 0

uml建模有何特点_优越性如何

uml建模有何特点_优越性如何

对于开发团队的层面来说:有利于队员间在各个开发环节间确立沟通的标准,便于系统文档的制定和项目的管理。因为UML的简单、直观和标准性,在一个团队中用UML...

2019-09-25 标签:UMLUML建模 8492 0

UML的分类_UML的基本模型图

UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言。

2019-09-25 标签:UMLUML建模 5898 0

五个免费UML建模工具介绍

五个免费UML建模工具介绍

UML工具很多是商用的,价格不菲;而免费的UML建模工具,功能完善的很少。以下推荐的是五个免费的UML建模工具,相对而言还算功能比较不错。

2023-05-05 标签:建模UML 5543 0

UML类图之间的关系

UML类图之间的关系

UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Comp...

2019-09-25 标签:UMLUML建模 3591 0

什么是系统建模语言SysML?

什么是系统建模语言SysML?

对复杂系统的建模是架构师的基础能力之一。从这篇文章开始,笔者介绍系统建模语言SysML(OMG System Modeling Language)。 ...

2023-09-01 标签:UML建模软件结构图 3393 0

详解Oracle中XMI开发UML图表技术

详解Oracle中XMI开发UML图表技术

如果没有自动以XMI格式存储UML图表的工具,那么可以使用XSLT生成XMI文档。由示例部署描述符创建的XMI文档显示一个UML类图表;该图表将表现部署...

2017-10-19 标签:xmlumloracle 2914 0

UML简介与类图详解

UML简介与类图详解

本篇介绍了UML类图的基础知识,包括2种和6种关系,并通过visio软件,演示如何画出一个UML类图

2023-05-05 标签:嵌入式系统UML图表 2606 0

常用UML建模工具介绍

Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系...

2023-05-05 标签:建模UML软件系统 2126 0

查看更多>>

uml资讯

时序图、活动图、状态图、协作图的区别

时序图、活动图、状态图、协作图的区别

原子的, 不可中断的动作, 并在此动作完成之后向另一个动作转变. 在 UML 中动作状态用圆角矩形 表示, 动作状态所表示的动作写在圆角矩形内部.

2020-05-08 标签:UML时序图 9093 0

2019年的最佳软件开发工具有哪些

2019年的最佳软件开发工具有哪些

市面上有海量的软件开发工具,因此,选择最佳软件开发工具可能是一项挑战。本文是 22 款顶级软件开发工具的精选列表。

2020-02-04 标签:WebIDEUML 6487 0

三种常用的广泛的模型类型是哪几个

典型的模型由子模型的聚合组成。每个子模型是一个部分描述,并为特定的目的而创建;它可能由一个或多个图组成。子模型的集合可以使用多种建模语言或单一的建模语言...

2021-10-30 标签:软件UML模型 4852 0

什么是UML

什么是UML

什么是UML UML是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。它:不是一种可视化的程序设计语言而是一种

2010-02-08 标签:UML 3231 0

年薪超10万美元 美高科技技术类工作排名

根据美国求职网站Indeed.com的数据,businessInsider网站列出美国年薪超过10万美元的技术工作,而这个薪水还不包括奖金以及股票期权。

2012-08-13 标签:JavaUMLCISSP 3110 0

走马观花的将UML大致梳理了一下,并结合EA的例图

走马观花的将UML大致梳理了一下,并结合EA的例图

到UML不得不提的三位大神,Grady Booch、Jacobson、James Rumbaugh,三位是UML的创始人,均为软件工程界的权威,除了著有...

2020-07-01 标签:UML可视化系统 2217 0

产出领域模型的一个方法:两图两表法

目的是统一语言,减少沟通障碍,简单说就是名词解释,如果一个术语比较复杂,要用why,what,how来解释清楚,这三个东西不是每个术语都得写,要看某一项...

2022-09-20 标签:UML数字化 1732 0

UML技术在嵌入式系统中的应用

UML技术在嵌入式系统中的应用

  1 UML引入到嵌入式系统中的可行性   20世纪六七十年代,软件产业遇到了危机。其原因就是软件越来越庞大和复杂,而软件的质量和生产率却越来越低。...

2010-08-28 标签:嵌入式UML 1504 0

浅谈void 型指针的高阶用法

浅谈void 型指针的高阶用法

要比较灵活的使用C语言实现一些高层级的框架时,需要掌握一些进阶编程技巧,这篇来谈谈void指针的一些妙用。测试环境采用 IAR for ARM 8.40...

2021-08-09 标签:UMLC++void 1383 0

基于UML的嵌入式系统可视化开发

基于UML的嵌入式系统可视化开发

  1 引言    本文结合统一建模语言UML,提出一种嵌入式系统可视化开发方法,并将其实际运用到了嵌入式远程温度监控系统的开发过程中,验证了该方法的...

2010-09-02 标签:嵌入式系统UML 880 0

查看更多>>

uml数据手册

相关标签

相关话题

换一批
  • 加速度传感器
    加速度传感器
    +关注
    加速度传感器是一种能够测量加速度的传感器。通常由质量块、阻尼器、弹性元件、敏感元件和适调电路等部分组成。
  • OBD
    OBD
    +关注
    OBD是英文On-Board Diagnostic的缩写,中文翻译为“车载诊断系统”。这个系统随时监控发动机的运行状况和尾气后处理系统的工作状态,一旦发现有可能引起排放超标的情况,会马上发出警示。
  • 傅里叶变换
    傅里叶变换
    +关注
    尽管最初傅里叶分析是作为热过程的解析分析的工具,但是其思想方法仍然具有典型的还原论和分析主义的特征。“任意”的函数通过一定的分解,都能够表示为正弦函数的线性组合的形式,而正弦函数在物理上是被充分研究而相对简单的函数类,这一想法跟化学上的原子论想法何其相似!
  • 角度传感器
    角度传感器
    +关注
    角度传感器,顾名思义,是用来检测角度的。它的身体中有一个孔,可以配合乐高的轴。当连结到RCX上时,轴每转过1/16圈,角度传感器就会计数一次。
  • TOF
    TOF
    +关注
  • L298
    L298
    +关注
  • DMD
    DMD
    +关注
    DMD是一种整合的微机电上层结构电路单元,利用COMS SRAM记忆晶胞所制成。DMD上层结构的制造是从完整CMOS内存电路开始,再透过光罩层的使用,制造出铝金属层和硬化光阻层交替的上层结构
  • OV7620
    OV7620
    +关注
    ov7620是一款CMOS摄像头器件,是彩色CMOS型图像采集集成芯片,提供高性能的单一小体积封装,该器件分辨率可以达到640X480,传输速率可以达到30帧。
  • MC9S12XS128
    MC9S12XS128
    +关注
    HCS12X系列单片机简介 Freescale 公司的16位单片机主要分为HC12 、HCS12、HCS12X三个系列。HC12核心是16位高速CPU12核,总线速度8MHZ;HCS12系列单片机以速度更快的CPU12内核为核心,简称S12系列,典型的S12总线速度可以达到25MHZ。
  • TDC-GP2
    TDC-GP2
    +关注
  • 干扰器
    干扰器
    +关注
    干扰器有多种类型,如GPS干扰器是适用于长途客车司机以及一些不想被GPS信号追踪到的人群的一个机器,手机信号干扰器主要针对各类考场、学校、加油站、教堂、法庭、图书馆、会议中心(室)、影剧院、医院、政府、金融、监狱、公安、军事重地等禁止使用手机的场所。
  • 重力传感器
    重力传感器
    +关注
    采用弹性敏感元件制成悬臂式位移器,与采用弹性敏感元件制成的储能弹簧来驱动电触点,完成从重力变化到电信号的转换,广泛应用在中高端智能手机和平板电脑内。
  • 线束
    线束
    +关注
  • 半导体工艺
    半导体工艺
    +关注
  • MPSoC
    MPSoC
    +关注
  • Genesys
    Genesys
    +关注
  • 机械臂
    机械臂
    +关注
  • 直流无刷电机
    直流无刷电机
    +关注
    无刷直流电机由电动机主体和驱动器组成,是一种典型的机电一体化产品。 无刷电机是指无电刷和换向器(或集电环)的电机,又称无换向器电机。早在十九纪诞生电机的时候,产生的实用性电机就是无刷形式,即交流鼠笼式异步电动机,这种电动机得到了广泛的应用。
  • 半导体制冷片
    半导体制冷片
    +关注
  • 声纹识别
    声纹识别
    +关注
    声纹识别,生物识别技术的一种,也称为说话人识别,包括说话人辨认和说话人确认。声纹识别就是把声信号转换成电信号,再用计算机进行识别。不同的任务和应用会使用不同的声纹识别技术,如缩小刑侦范围时可能需要辨认技术,而银行交易时则需要确认技术。
  • 零序
    零序
    +关注
  • ATmega16单片机
    ATmega16单片机
    +关注
  • 直流电压
    直流电压
    +关注
    凡是电流方向不随时间变化的电流称为直流电压。电流值可以全为正值,也可以全为负值。在直流电流中又可分为两种:稳恒直流和脉动直流。直流输电技术已经由简单的端对端工程朝着大规模多端输电的方向发展,这些工程将是未来直流电网的组成部分,将相同电压等级的直流工程连接成网远比不同电压等级下的独立工程更经济、便捷。
  • LPC2368
    LPC2368
    +关注
  • 缓冲电路
    缓冲电路
    +关注
  • Buck-Boost
    Buck-Boost
    +关注
    buck是降压型电路,boost是升压型电路,可以分开单独使用,buck-boost电路就是把2种电路合在一起,可升可降。buck-boost拓扑电路可以实现升降压功能,常见的buck-boost电路有两种,第一种是输入与输出电压极性相反,只需采用一个开关管和二极管。另外一种是采用两个开关管和两个二极管,可实现同极性电压升降压功能。
  • 识别技术
    识别技术
    +关注
    所谓识别技术,也称为自动识别技术,通过被识别物体与识别装置之间的交互自动获取被识别物体的相关信息,并提供给计算机系统供进一步处理。
  • 制冷片
    制冷片
    +关注
  • 电磁继电器
    电磁继电器
    +关注
    电磁继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流、较低的电压去控制较大电流、较高的电压的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
  • VCM
    VCM
    +关注

关注此标签的用户(0人)

编辑推荐厂商产品技术软件/工具OS/语言教程专题