背景介绍

UML是一种统计建模语言。

WIKI:

https://en.wikipedia.org/wiki/Unified_Modeling_Language

UML是OMG (object management group)(国际对象管理组织(https://zh.wikipedia.org/wiki/%E5%AF%B9%E8%B1%A1%E7%AE%A1%E7%90%86%E7%BB%84%E7%BB%87))  发布的一个标准。

OMG发布的其他建模语言还有: https://www.omg.org/spec/category/modeling/

举例:

SysML: UML的扩展,增加了两种图。https://en.wikipedia.org/wiki/Systems_Modeling_Language

SoaML: 面向服务架构建模  https://en.wikipedia.org/wiki/Systems_Modeling_Language

UML介绍

统一建模语言

https://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E5%BB%BA%E6%A8%A1%E8%AF%AD%E8%A8%80

元对象机制

https://zh.wikipedia.org/wiki/%E5%85%83%E5%AF%B9%E8%B1%A1%E6%9C%BA%E5%88%B6

定义:

The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering, that is intended to provide a standard way to visualize the design of a system.

包括什么:

UML offers a way to visualize a system's architectural blueprints in a diagram, including elements such as:[4]

any activities (jobs);
individual components of the system;
and how they can interact with other software components;
how the system will run;
how entities interact with others (components and interfaces);
external user interface.

以及:

UML diagrams represent two different views of a system model:[]

Static (or structural) view: emphasizes the static structure of the system using objects, attributes, operations and relationships. It includes class diagrams and composite structure diagrams.
Dynamic (or behavioral) view: emphasizes the dynamic behavior of the system by showing collaborations among objects and changes to the internal states of objects. This view includes sequence diagrams, activity diagrams and state machine diagrams.

注意区分UML图与model模型两者的区别

It is important to distinguish between the UML model and the set of diagrams of a system. A diagram is a partial graphic representation of a system's model. The set of diagrams need not completely cover the model and deleting a diagram does not change the model. The model may also contain documentation that drives the model elements and diagrams (such as written use cases).

UML中包含的所有的图,汇总(这里有一部分是UML2.0新增的)

9个图的中文名,包括:

静态:

类图(class diagram)

  描述“类们”,和他们之间的关系。

对象图 (object diagram)

  描述“对象们”,和他们之间的关系。特定时间点的瞬时时间切片。

构件图 (component diagram)

  描述交付物文件实体,以及他们之间的组织方式,二进制文件,脚本,文档,代码等。

部署图(deployment diagram)

  描述物理实体,及他们之间的组织方式,服务器,数据库,交换机等。

动态:

用例图(use case diagram)

  描述用户们,用例(系统功能们),以及他们之间的关系。用来做高维度的(黑盒的)需求分析。

交互图(interaction diagram)一 :顺序图/时序图(sequence diagram)

  描述的核心是message。表达message们在对象们之间,按照时间序列的流转信息。

交互图二:协作图(collaboration diagram)

  描述的核心是对象们的关系,message作为关系表达的载体。用来清晰的阐述哪一个对象与哪一个对象之间存在信息交换。可以用序号标记隐含时序关系信息。

状态图(statechart diagram)

  描述核心是对象,用来表达对象在若干状态之间的变迁。可以增加对event(触发状态的变迁)的描述。

活动图(activity diagram)

  描述的核心是活动。活动是指对系统进行的操作,或系统提供的功能(与用例图中的用例有概念上的类似)。

  表达的内容是活动之间的逻辑与触发关系(与流程图类似)。同样可以用来做需求分析,维度比用例图略低。

另外:时序图与协作图是逻辑等价的。状态图与活动图是逻辑等价的。

所有图,示例:

Linux下画UML的工具:

umbrallo (KDE):   不好看,丑陋

modelio: https://www.modelio.org/downloads/download-modelio.html  下的慢,太大,太复杂。

Dia: http://dia-installer.de/doc/index.html 轻量,挺好。

UML教程: https://www.tutorialspoint.com/uml/

阅读教程:

阅读笔记见:

[本体论][UML][统一建模语言][OWL]从本体论到UML到OWL

UML只是工具,

有一本书,https://book.douban.com/subject/10549583/ 。 介绍如下:

引用作者原话,“本书是一本结合了面向对象方法、软件工程方法、基于 UML 的建模方法的全程建模的书”。

关于“全程建模”,本书的主体就是“使用 RUP 方法,使用 UML 工具,进行系统分析建模”。

软件开发方法学:

RUP

https://baike.baidu.com/item/RUP

软件工程领域,与RUP齐名的软件方法还有:
净室软件工程、CMMI;
极限编程(extreme programming,简称 XP)和其他敏捷软件开发(agile methodology)方法学。
RUP最重要的它有三大特点:)软件开发是一个迭代过程,)软件开发是由Use Case驱动的,)软件开发是以架构设计(Architectural Design)为中心的。 []

[设计语言][统一建模语言][软件开发方法学][UML] UML的更多相关文章

  1. [本体论][UML][统一建模语言][软件建模][OWL]从本体论到UML到OWL

    以下内容,是关于软件建模的方法与思路. UML与OWL都是基于本体论的建模语言. 本体论(哲学) 本体论(信息科学) UML(统一建模语言) more info 参考:[设计语言][统一建模语言][软 ...

  2. CMM模型,结构化开发方法和面向对象开发方法的比较,UML(统一建模语言),jackson开发方法

    CMM模型 一.CMM简介 CMM,英文全称为Capability Maturity Model for Software,即:软件成熟度模型. CMM的核心是把软件开发视为一个过程.它是对于软件在定 ...

  3. UML(统一建模语言)是通用的可视化标准建模语言。由构造块、公共机制、构架三部分组成。

    UML UML(统一建模语言)是通用的可视化标准建模语言.由构造块.公共机制.构架三部分组成. 1.构造块:包括基本的UML建模元素(类.接口.用例等).关系(关联关系.依赖关系.泛化关系.实现关系) ...

  4. UML(统一建模语言)

    最近看了一个UML图,所以特意来了解一下UML 统一建模语言 锁定 同义词 UML(统一建模语言)一般指统一建模语言 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . Unified Mo ...

  5. 统一建模语言(UML) 版本 2.0

    原文: http://www.ibm.com/developerworks/cn/rational/321_uml/ 简介 参考 UML 基础系列的其他文章和教程 UML基础: 统一建模语言简介 UM ...

  6. UML建模学习1:UML统一建模语言简单介绍

    一什么是UML? Unified Modeling Language(UML又称为统一建模语言或标准建模语言)是国际对象管理组织OMG制定的一个通 用的.可视化建模语言标准.能够用来描写叙述(spec ...

  7. 统一建模语言——UML

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

  8. UML统一建模语言介绍

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

  9. 统一建模语言简介UML

    统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标准.它的特点是简单 ...

随机推荐

  1. AI创业的技术方案选择

    观察了许多初创公司技术方案的选择,我总结基本遵循8个字:快速灵活,物美价廉.我们也应该根据自身实际情况,跳出束缚与时俱进,选择智能互联网时代最有力的技术和工具. 基础编程语言 候选者:C#/C++/P ...

  2. python两个 list 获取交集,并集,差集的方法

    1. 获取两个list 的交集 #方法一: a=[2,3,4,5] b=[2,5,8] tmp = [val for val in a if val in b] print tmp #[2, 5] # ...

  3. 【Android】解析Paint类中Xfermode的使用

    Paint类提供了setXfermode(Xfermode xfermode)方法,Xfermode指明了原图像和目标图像的结合方式.谈到Xfermode就不得不谈它的派生类PorterDuffXfe ...

  4. 自然语言处理中的N-Gram模型

    N-Gram(有时也称为N元模型)是自然语言处理中一个非常重要的概念,通常在NLP中,人们基于一定的语料库,可以利用N-Gram来预计或者评估一个句子是否合理.另外一方面,N-Gram的另外一个作用是 ...

  5. 云服务jdk 升级为 OpenJDK11

    由于oracle是个碧池,大家都懂,今年来,jdk版本更新的越来越频繁,所以目前商业版本需要收费了 每个企业都要考虑这样的问题,所以嘛,新项目试水肯定是要的,用openJDK11吧, https:// ...

  6. matplotlib绘图不显示问题解决plt.show()

    最近在看<Python数据分析>这本书,而自己写代码一直用的是Pycharm,在练习的时候就碰到了plot()绘图不能显示出来的问题.网上翻了一下找到知乎上一篇回答,试了一下好像不行,而且 ...

  7. 使用ffmpeg搭建HLS直播系统

    [时间:2018-04] [状态:Open] [关键词:流媒体,stream,HLS, ffmpeg,live,直播,点播, nginx, ssegment] 0 引言 本文作为HLS综述的后续文章. ...

  8. JVM系列——从菜鸟到入门

    持续更新系列. 参考自<深入理解Java虚拟机>.<Java性能权威指南>.<分布式Java应用基础与实践>. Java的内存结构 JVM系列——运行时数据区 JV ...

  9. 机器学习&深度学习基础(tensorflow版本实现的算法概述0)

    tensorflow集成和实现了各种机器学习基础的算法,可以直接调用. 代码集:https://github.com/ageron/handson-ml 监督学习 1)决策树(Decision Tre ...

  10. springboot-custom starter

    Spring Boot由众多Starter组成,随着版本的推移Starter家族成员也与日俱增.在传统Maven项目中通常将一些层.组件拆分为模块来管理, 以便相互依赖复用,在Spring Boot项 ...