UML及UML建模工具介绍

UML及UML建模工具介绍UML简介UnifiedModelingLanguage(UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不…

大家好,又见面了,我是你们的朋友全栈君。

UML 简介

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

分类

UML定义了5类,10种模型图。

五种类图定义:

用例图:从用户角度描述系统功能,并指各功能的操作者。
静态图:包括类图,包图,对象图。

  • 类图:描述系统中类的静态结构
  • 包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构
  • 对象图:是类图的实例

行为图:描述系统动态模型和对象组成的交换关系。包括状态图和活动图

  • 活动图:描述了业务实现用例的工作流程
  • 状态图:是描述状态到状态控制流,常用于动态特性建模

交互图:描述对象之间的交互关系

  • 顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互
  • 合作图:描述对象之间的协助关系

实现图:

配置图:定义系统中软硬件的物理体系结构

UML提供的基本模型图包括:

(1)、用例图:展示系统外部的各类执行者与系统提供的各种用例之间的关系
(2)、类图:展示系统中类的静态结构(类是指具有相同属性和行为的对象,类图用来描述系统中各种类之间的静态结构)
(3)、对象图:是类图的一种实例化图(对象图是对类图的一种实例化)
(4)、包图:是一种分组机制。在UML1.1版本中,包图不再看作一种独立的模型图)
(5)、状态图:描述一类对象具有的所有可能的状态及其转移关系(它展示对象所具有的所有可能的状态以及特定事件发生时状态的转移情况)
(6)、时序图/顺序图:展示对象之间的一种动态协作关系(一组对象组成,随时间推移对象之间交换消息的过程,突出时间关系)
(7)、合作图:从另一个角度展示对象之间的动态协作关系(对象间动态协作关系,突出消息收发关系)
(8)、活动图:展示系统中各种活动的执行流程(各种活动的执行顺序、执行流程)
(9)、构件图:展示程序代码的物理结构(描述程序代码的组织结构,各种构件之间的依赖关系)
(10)、配置图:展示软件在硬件环境中(特别是在分布式及网络环境中)的配置关系(系统中硬件和软件的物理配置情况和系统体系结构)

常用UML建模工具

工欲善其事必先利其器,本文向大家介绍几款常用UML建模工具,UML是个好东西,但是过分的依赖于UML也不是一件好事,因为有时候它会把简单的东西复杂化。

1、Rational Rose
官网:http://www-03.ibm.com/software/products/en/ratirosefami
Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水平软件应用的组件构造。它包括了统一建模语言(UML),OOSE,以及OMT。其中统一建模语言(UML)由Rational公司3位世界级面向对象技术专家Grady Booch、Ivar Jacobson、和Jim Rumbaugh通过对早期面向对象研究和设计方法的进一步扩展而得来的,它为可视化建模软件奠定了坚实的理论基础。
Rational Rose 是一个完全的、具有能满足所有建模环境(Web开发,数据建模,Visual Studio和 C++ )灵活性需求的一套解决方案。Rose 允许开发人员,项目经理,系统工程师和分析人员在软件开发周期内在将需求和系统的体系架构转换成代码,消除浪费的消耗,对需求和系统的体系架构进行可视化,理解和精练。通过在软件开发周期内使用同一种建模工具可以确保更快更好的创建满足客户需求的可扩展的、灵活的并且可靠的应用系统。
在面向对象应用程序开发领域,Rational Rose是影响其发展的一个重要因素。Rational Rose自推出以来就受到了业界的瞩目,并一直引领着可视化建模工具的发展。越来越多的软件公司和开发团队开始或者已经采用Rational Rose,用于大型项目开发的分析、建模与设计等方面。
Rose2002功能上可以完成UML的9种标准建模,即静态建模(用例图类图对象图组件图配置图)和动态建模(合作图序列图状态转移图活动图),为了使静态建模可以直接作用于代码,Rose提供了类设计到多种程序语言代码自动产生的插件。同时,作为一款优秀的分析和设计工具,常用UML建模工具Rose具有强大的正向和逆向工程能力。正向工程这里指的是由设计产生代码,逆向工程指由代码归纳出设计。通过逆向工程Rose可以对历史系统作出分析,然后进行改进,再通过正向工程产生新系统的代码,这样的设计方式我们称之为再工程。

2、PowerDesigner
Power Designer 是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,他几乎包括了数据库模型设计的全过程。利用Power Designer可以制作数据流程图、概念数据模型、物理数据模型,还可以为数据仓库制作结构模型,也能对团队设计模型进行控制。他可以与许多流行的软件开发工具,例如PowerBuilder、Delphi、VB等相配合使缩短开发时间和使系统设计更优化。
Power Designer是能进行数据库设计的强大的软件,是一款开发人员常用的数据库建模工具。使用它可以分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。在这里,概念数据模型描述的是独立于数据库管理系统(DBMS)的实体定义和实体关系定义;物理数据模型是在概念数据模型的基础上针对目标数据库管理系统的具体化。
PowerDesigner 6.0支持数据流图,8.0支持UML的UseCase/sequence/class视图。

3、Visual Paradigm for UML
官网:http://www.visual-paradigm.com/product/vpuml/
Visual Paradigm for UML (VP-UML)是一款功能强大、跨平台、使用最便捷、直观的UML建模和CASE工具,它可以整合在其他CASE工具或者其他IDE工具中,这种“一站购物式”的软件解决方案要远远优于常规的Model-Code-Deploy的开发进程。
Visual Paradigm for UML支持UML建模、数据库建模、对象关系映射、逆向工程和Java双向工程等等,功能异常强大。

4、Jude
一个号称中日xp合作开发出来的小uml工具,只有几m的大小,功能也还不错。也是java做的,速度还是很快的。如果不需要使用逆向工程之类的高级功能的话,强烈推荐这个常用UML建模工具,并且它是免费的。

5、SystemArchitect
一个很受欢迎的高端UML建模工具,支持双向工程(Round-tripEngineering)。

6、StarUML
StarUML(简称SU),是一种创建UML类图,是一种生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强(zj)。唯一不足之处,在反向工程时,只能生成类图,不能生成类之间的关系。

Rational Rose & PowerDesigner & VISIO比较

ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能。ROSE主要是在开发过程中的各种语义、模块、对象以及流程,状态等描述比较好,主要体现在能够从各个方面和角度来分析和设计,使软件的开发蓝图更清晰,内部结构更加明朗(但是它的结构仅仅对那些对掌握UML的开发人员,也就是说对客户了解系统的功能和流程等并不一定很有效),对系统的代码框架生成有很好的支持。但对数据库的开发管理和数据库端的迭代不是很好。

PowerDesigner原来是对数据库建模而发展起来的一种数据库建模工具。直到7.0版才开始对面向对象的开发的支持,后来又引入了对UML的支持。但是由于PowerDesigner侧重不一样,所以它对数据库建模的支持很好,支持了能够看到的90%左右的数据库,对UML的建模使用到的各种图的支持比较滞后。但是在最近得到加强。所以使用它来进行UML开发的并不多,很多人都是用它来作为数据库的建模。如果使用UML分析,它的优点是生成代码时对Sybase的产品PowerBuilder的支持很好(其它UML建模工具则没有或者需要一定的插件),其他面向对象语言如 C++,Java,VB,C#等支持也不错。但是它好像继承了Sybase公司的一贯传统,对中国的市场不是很看看好,所以对中文的支持总是有这样或那样的问题。

VISIO原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),也是到VISIO2000才开始引进软件分析设计功能到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具(对软件开发中的UML支持仅仅是其中很少的一部分)。它跟微软的office产品的能够很好兼容。能够把图形直接复制或者内嵌到WORD的文档中。但是对于代码的生成更多是支持微软的产品如VB,VC++,C#,MS SQL Server 等(这也是微软的传统),所以它可以说用于图形语义的描述比较方便,但是用于软件开发过程的迭代开发则有点牵强。

相关文章:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160396.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月16日 上午9:16
下一篇 2022年7月16日 上午9:16


相关推荐

  • ipynb pycharm 运行_有关如何运行.ipynb文件的图形说明

    ipynb pycharm 运行_有关如何运行.ipynb文件的图形说明Python 中 lowbar lowbar init lowbar lowbar period py 文件的功能的详细说明 init py 文件的功能是将文件夹更改为 Python 模块 在 Python 中每个模块的软件包中 都有一个 init py 文件 通常 init py 文件为空 但我们也可以向其中添加其他功能 导入软件包时 实际上是导入其 init py 文件

    2026年3月27日
    2
  • 高斯混合模型的终极理解

    高斯混合模型的终极理解高斯混合模型 GMM 是一个非常基础并且应用很广的模型 对于它的透彻理解非常重要 网上的关于 GMM 的大多资料介绍都是大段公式 而且符号表述不太清楚 或者文笔非常生硬 本文尝试用通俗的语言全面介绍一下 GMM 不足之处还望各位指正 首先给出 GMM 的定义这里引用李航老师 统计学习方法 上的定义 如下图 定义很好理解 高斯混合模型是一种混合模型 混合的基本分布是高斯分布而已 第一个细节 为什么系数之和为 0 PR

    2026年3月19日
    2
  • Cover Letter 写作技巧[通俗易懂]

    Cover Letter 写作技巧[通俗易懂]CoverLetter写作技巧本文由清新电源原创,作者,转载请申请并注明出处:http://www.sztspi.com/archives/199096.html-by刘田宇老师感谢刘田宇老师的分享,致敬!觉得有用的话,欢迎一起讨论相互学习~投稿信(CoverLetter)是向学术科技期刊投稿时不可或缺的材料。往往只有一页的投稿信却能很大程度地决定稿件的“生死”。投稿信的…

    2022年4月29日
    93
  • mysql replace substring 字符串截取处理

    mysql replace substring 字符串截取处理

    2021年11月17日
    40
  • 后台管理系统 – 权限设计

    后台管理系统 – 权限设计一、前言对于前端项目特别是中后台管理系统项目,权限设计是最复杂的点之一。一般来说权限设计需要后端来把关,毕竟相对来说前端是无法保证安全的,前端的代码和数据请求都可以伪造。而前端的权限设计更多是为了用户体验的考虑。前端保证体验,后端保证安全。由于前后端的开发差异和侧重点不同,在权限设计上也不一样。后端更多的是根据功能对象划分不同的权限模块,针对接口相应进行权限判断;而前端更多是针对页面路由进行模块划分,针对页面可访问进行判断。接下来将以后台管理系统为例,分享个人对前端权限设计的见解。(具体内容尽量做

    2022年7月16日
    15
  • wifi网速慢的原因及解决办法_wifi连接速度不稳定

    wifi网速慢的原因及解决办法_wifi连接速度不稳定最近在家上网,突然wifi贼jb慢了,连信号也不满格了。脑补了下,估计是附近的wifi频段和我们家冲突了。于是yahoo了下,老外推荐软件NetStubler。兴冲冲地下载了一个,结果在我机器上用不了,搜索了下原因,不了了之。于是放弃,问了下度娘,给我推荐了Homedale,不错,还是国产搜索靠谱啊。果然,我家默认的频段为802.11g的channel1,附近有个家伙信号很

    2022年10月20日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号