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

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

3天内不再提示

标签 > UML

UML

+关注 0人关注

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

文章: 65
视频: 1
浏览: 30858
帖子: 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威廉希尔官方网站

实践GoF的23种设计模式实现:桥接模式

实践GoF的23种设计模式实现:桥接模式

也即,将抽象部分和实现部分进行解耦,使得它们能够各自往独立的方向变化。

2024-04-14 标签:UML数据处理go语言 443 0

实践GoF的23种设计模式:解释器模式

实践GoF的23种设计模式:解释器模式

解释器模式(Interpreter Pattern)应该是 GoF 的 23 种设计模式中使用频率最少的一种了,它的应用场景较为局限。

2024-04-01 标签:DSL数据存储SQL 704 0

如何画出规范的UML用例图

如何画出规范的UML用例图

封装了自身的数据和行为,能独立对外提供服务的东西才能称为系统。需要注意的系统是一个整体,系统可能会有很多子系统。比如银行转账交易时候需要做风控,如果有商...

2023-11-30 标签:UML测试用例 646 0

实践GoF的23种设计模式:备忘录模式

实践GoF的23种设计模式:备忘录模式

相对于代理模式、工厂模式等设计模式,备忘录模式(Memento)在我们日常开发中出镜率并不高,除了应用场景的限制之外,另一个原因,可能是备忘录模式

2023-11-25 标签:UMLMySQLMVCC 549 0

sqlite数据插入的两种方式比较

sqlite工具包提供两种数据插入方式,全部使用Execute SQL(Ploy)函数

2023-11-13 标签:labviewUML字符串 1322 0

什么是系统建模语言SysML?

什么是系统建模语言SysML?

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

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

如何设计时序图—以APA自动泊车系统为例(一)

如何设计时序图—以APA自动泊车系统为例(一)

序列图是一种 UML(统一建模语言)图,它说明了系统中对象之间随时间的交互,通常用于可视化消息流和软件系统中对象之间方法调用的顺序。

2023-07-21 标签:机器人C语言UML 1088 0

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

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

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

2023-07-03 标签:UML时序图状态图 4924 0

状态机编程实例-嵌套switch-case法

状态机编程实例-嵌套switch-case法

嵌入式软件开发中,状态机编程是一个比较实用的代码实现方式,特别适用于事件驱动的系统。本篇,以一个炸弹拆除的小游戏为例,介绍状态机编程的思路。

2023-06-15 标签:嵌入式Switch编程 1783 0

UML时序图详解

UML时序图详解

本篇介绍了UML时序图的基础知识,并通过visio绘制一个物联网设备WIFI配网的UML时序图实例,来介绍UML时序图的画法与所表达的含义。

2023-05-16 标签:嵌入式物联网UML 2190 0

查看更多>>

uml资讯

架构开发与优化咨询和实施服务

架构开发与优化咨询和实施服务

得益于硬件平台算力的提升,汽车电子电气架构的集成度逐渐提高,多域融合成为了目前行业中软件工程的重要工作内容。经纬恒润可以为汽车电子和软件工程师在开发软件...

2024-02-05 标签:控制器UMLecu 380 0

Rhapsody—复杂域控软件架构开发套件

Rhapsody—复杂域控软件架构开发套件

Rhapsody是基于UML/SysML的模型驱动开发集成环境,专注于嵌入式和实时系统。通过Rhapsody的模型驱动体系,可以快速地将应用模型部署到实...

2023-12-15 标签:UML模型软件架构 676 0

如何看懂UML中的类图?

统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采...

2023-05-05 标签:建模UML面向对象 642 0

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

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

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

GoF给装饰者模式的定义

我们经常会遇到“给现有对象/模块新增功能”的场景,比如 http router 的开发场景下,除了最基础的路由功能之外,我们常常还会加上如日志、鉴权、流...

2022-06-29 标签:模块UML 812 0

基于模型的方法缩小了开发和测试之间的差距

基于模型的方法缩小了开发和测试之间的差距

  使用支持 UML 测试配置文件的工具(例如 IBM Rational Rhapsody)将他们的建模能力从设计扩展到测试。

2022-06-28 标签:嵌入式UML 874 0

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

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

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

浅谈void 型指针的高阶用法

浅谈void 型指针的高阶用法

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

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

程序员都应学习的语言:看25张图学UML

[导读] 作为程序猿都最好掌握的一门语言,那就是UML(Unified Modeling Language),统一建模语言(UML)是软件工程领域中一种...

2020-12-14 标签:UML深度学习 543 0

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

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

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

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

查看更多>>

uml数据手册

相关标签

相关话题

换一批
  • 加速度传感器
    加速度传感器
    +关注
    加速度传感器是一种能够测量加速度的传感器。通常由质量块、阻尼器、弹性元件、敏感元件和适调电路等部分组成。
  • OBD
    OBD
    +关注
    OBD是英文On-Board Diagnostic的缩写,中文翻译为“车载诊断系统”。这个系统随时监控发动机的运行状况和尾气后处理系统的工作状态,一旦发现有可能引起排放超标的情况,会马上发出警示。
  • 傅里叶变换
    傅里叶变换
    +关注
    尽管最初傅里叶分析是作为热过程的解析分析的工具,但是其思想方法仍然具有典型的还原论和分析主义的特征。“任意”的函数通过一定的分解,都能够表示为正弦函数的线性组合的形式,而正弦函数在物理上是被充分研究而相对简单的函数类,这一想法跟化学上的原子论想法何其相似!
  • TOF
    TOF
    +关注
  • 角度传感器
    角度传感器
    +关注
    角度传感器,顾名思义,是用来检测角度的。它的身体中有一个孔,可以配合乐高的轴。当连结到RCX上时,轴每转过1/16圈,角度传感器就会计数一次。
  • 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/语言教程专题