三大UML建模工具Visio、Rational Rose、PowerDesign的区别

本文源自http://developer.51cto.com/art/201006/207993.htm

 

UML建模工具Visio 、Rational Rose、PowerDesign的比较
  
 ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能。ROSE主要是在开发过程中的各种语义、模块、对象以及流程,状态等描述比较好,主要体现在能够从各个方面和角度来分析和设计,使软件的开发蓝图更清晰,内部结构更加明朗(但是它的结构仅仅对那些对掌握UML的开发人员,也就是说对客户了解系统的功能和流程等并不一定很有效),对系统的代码框架生成有很好的支持。但对数据库的开发管理和数据库端的迭代不是很好。
     
PowerDesigner原来是对数据库建模而发展起来的一种数据库建模工具。直到7.0版才开始对面向对象的开发的支持,后来又引入了对UML的支持。但是由于PowerDesigner侧重不一样,所以它对数据库建模的支持很好,支持了能够看到的90%左右的数据库,对UML的建模使用到的各种图的支持比较滞后。但是在最近得到加强。所以使用它来进行UML开发的并不多,很多人都是用它来作为数据库的建模。如果使用UML分析,它的优点是生成代码时对Sybase的产品PowerBuilder的支持很好(其它UML建模工具则没有或者需要一定的插件),其他面向对象语言如 C++,Java,VB,C#等支持也不错。但是它好像继承了Sybase公司的一贯传统,对中国的市场不是很看看好,所以对中文的支持总是有这样或那样的问题。
    
UML建模工具Visio 原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),也是到VISIO2000才开始引进软件分析设计功能到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具(对软
件开发中的UML支持仅仅是其中很少的一部分)。它跟微软的office产品的能够很好兼容。能够把图形直接复制或者内嵌到WORD的文档中。但是对于代码的生成更多是支持微软的产品如VB,VC++,MS SQL Server 等(这也是微软的传统),所以它可以说用于图形语义的描述比较方便,但是用于软件开发过程的迭代开发则有点牵强。
 
 UML建模工具Visio 、Rational Rose、PowerDesign三种建模工具应用最广:
1. Rational Rose,它是ibm的 。
2.Microsoft的 Microsoft Office Visio® 2003 
3.Enterprise Architect。还有其他工具如PowerDesigner等

1.Rational Rose是一种基于UML的建模工具。在面向对象应用程序开发领域,Rational Rose是影响其发展的一个重要因素。Rational Rose自推出以来就受到了业界的瞩目,并一直引领着可视化建模工具的发展。越来越多的软件公司和开发团队开始或者已经采用Rational Rose,用于大型项目开发的分析、建模与设计等方面。
从使用的角度分析,Rational Rose易于使用,支持使用多种构件和多种语言的复杂系统建模;利用双向工程技术可以实现迭代式开发;团队管理特性支持大型、复杂的项目和大型而且通常队员分散在各个不同地方的开发团队。同时,Rational Rose与微软Visual Studio系列工具中GUI的完美结合所带来的方便性,使得它成为绝大多数开发人员首选建模工具;Rose还是市场上第一个提供对基于UML的数据建模和Web建模支持的工具。此外,Rose还为其他一些领域提供支持,如用户定制和产品性能改进。
具体介绍可参看http://www.uml.org.cn/RequirementProject/200604043.htm

2.UML建模工具Visio ® 2003的简介请看
http://www.uml.org.cn/UMLTools/psf/Guide.doc
http://www.microsoft.com/china/office/xp/visio/default.asp

3.Enterprise Architect
Enterprise Architect是一个全功能的、基于UML的visual CASE工具,主要用于设计、编写、构建并管理以目标为导向的软件系统。它支持用户案例、商务流程模式以及动态的图表、分类、界面、协作、结构以及物理模型。此外,它还支持C++、Java、Visual Basic、Delphi、C#以及VB.Net。具体可看http://www.softwarechn.com/SparxSystems/sparxsystems_index.htm

4.PowerDesigner工具简介请看
http://www.uml.org.cn/UMLTools/powerDesigner/powerDesignerToolIntroduction.htm

5.EA与Rose UML建模工具比较
http://51cmm.csai.cn/casepanel/ST/No061.htm

6.uml介绍请看uml中国官方网站,这里有很多关于uml建模和建模工具的介绍
http://www.uml.org.cn

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内核中的内存申请:kmalloc、vmalloc、kzalloc、get_free_pages 之间的区别

kmalloc vmalloc kzalloc get_free_page()是内核空间申请内存空间函数 malloc是用户空间申请内存函数 一 ,kmalloc() 与 kfree() 和get_free_page的区别 1,用于申请较小的、连续的物理内存:使用的是内存分配器slab一小片。申请的内存位于物理内存…

前端 保存后端传来数据的id_一篇来自前端同学对后端接口的吐槽

前言去年的某个时候就想写一篇关于接口的吐槽,当时后端提出了接口方案对于我来说调用起来非常难受,但又说不上为什么,没有论点论据所以也就作罢。最近因为写全栈的缘故,团队内部也遇到了一些关于接口设计的问题,于是开…

2018-2019-1 《信息安全系统设计基础》教学进程

《信息安全系统设计基础》教学进程 目录 考核方式暑假准备教学进程 第01周学习任务和要求第02周学习任务和要求第03周学习任务和要求第04周学习任务和要求第05周学习任务和要求第06周学习任务和要求第07周学习任务和要求第08周学习任务和要求第09周学习任务和要求第10周学习任务…

python字符串是什么_python字符串详解

字符串详解 在python中引号引起来的就是字符串 字符串是用来存储少量数据 索引 索引(下标) 通过索引可以精确的定位到某个元素 name "meat" meat 每一个字母叫做一个元素 # 0123 从左向右代表每一个字母 #-4-3-2-1 从右向左每一个字母 print(name[-1]) 输出 t name …

最小编辑代价

最小编辑代价问题: 对于两个字符串A和B,我们需要进行插入、删除和修改操作将A串变为B串,定义c0,c1,c2分别为三种操作的代价,请设计一个高效算法,求出将A串变为B串所需要的最少代价。 给定两个字…

Android中的数据库

2019独角兽企业重金招聘Python工程师标准>>> 1.1. 什么时候使用数据库 有大量相似结构的数据需要存储的时候就可以使用数据库。 1.2. SQLite的简介 SQLite是一款轻量级的数据库。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它。Androi…

python计算绩效工资_python实现 --工资管理系统

原博文 2017-07-25 22:41 − # -*- coding: utf-8 -*- __author__ hjianli # import re import os info_message """Alex 100000 Rain 80000 Egon 50000 Yuan 30000 """ #序列字典 xulie_...01669 相关推荐 2019-09-28 21:13 − Python python…

为Windows Server 2012 R2指定授权服务器

为Windows Server 2012 R2指定授权服务器在Windows Server 2008 R2的终端服务中,可以手动指定授权服务器,而在Windows Server 2012 R2中,默认只能通过"远程桌面连接服务"管理器,指定授权服务器,而要使用远程…

spring5高级编程_Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新

简介是什么让java世界变得更好,程序员变得更友爱,秃头率变得不是那么的高,让程序员不必再每天996,有时间找个女朋友?是Spring。是什么让企业级java应用变得简单易懂,降低了java程序员的进入门槛&#xff0c…

关于resolve非泛型方法不能与类型实参一起使用

今天mvc新建三层时,写到bll层中一直报下面的错误,检查了几遍赶脚并没有什么错。最后发现缺少一些引用。 如下面的图,少添加了下面的两个引用.Unity是微软模式与实践团队开发的一个轻量级、可扩展的依赖注入容器, Microsoft.Practices.Unity.C…

设计模式-Singleton

2019独角兽企业重金招聘Python工程师标准>>> Singleton算是知道的设计模式中最简单的最方便实现的了,模式实现了对于类提供唯一实例的方法,在很多系统中都会用到此模式。在实际项目中使用全局变量,或者静态函数等方式也可以达到这…

dump分析工具_Java应用CPU过高,如何排查?参考解决思路和常用工具总结

本文总结了一些常见的线上应急现象和对应排查步骤和工具。分享的主要目的是想让对线上问题接触少的同学有个预先认知,免得在遇到实际问题时手忙脚乱。毕竟作者自己也是从手忙脚乱时走过来的。只不过这里先提示一下。在线上应急过程中要记住,只有一个总体…

st官网下载stm32固件库方法

进入www.st.com官网------把网站改成中文(就在右上方)----点击产品-----选择右侧的微控制器选项------选择左侧的STM32 32位ARM CortexMCU-----选择左侧的STM32F1系列-----选择STM32103-----选择中间部分mcu对应型号(我用的是STM32F103ZE)---…

mysql5.5提示Deprecated: mysql_query(): The mysql extension is deprecated

解决方法1&#xff1a;在php程序代码里面设置报警级别 <?php error_reporting E_ALL & ~E_DEPRECATED 方法2&#xff1a;禁止php报错 display_errors On 改为 display_errors Off 方法3&#xff1a;使用mysqli或者PDO 建议大家尽快取消mysql&#xff0c;全部都走…

JavaScript强化教程 —— Cocos2d-JS极速调试技巧

本文为 H5EDU 机构官方 HTML5培训 教程&#xff0c;主要介绍&#xff1a;JavaScript强化教程 —— Cocos2d-JS极速调试技巧 本文教大家一个调试Cocos2d-JS的小技巧&#xff0c;我都是这么用的&#xff0c;特意来告诉大家这个轻量快速的调试技巧。1.首先我们需要安装官方的cocos…

dos攻击命令_Kali Linux系列之拒绝服务攻击(DOS)实战(上)

(你的世界是个什么样的世界&#xff1f;你说&#xff0c;我们倾听!)-----------------小百科拒绝服务攻击即是攻击者想办法让目标机器停止提供服务&#xff0c;是黑客常用的攻击手段之一。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分&#xff0c;只要能够对目标…

stm32定时器配置

stm32通用定时器 STM32的定时器是个强大的模块&#xff0c;定时器使用的频率也是很高的&#xff0c;定时器可以做一些基本的定时&#xff0c;还可以做PWM输出或者输入捕获功能。 时钟源问题&#xff1a; 名为TIMx的有八个&#xff0c;其中TIM1和TIM8挂在APB2总线上&#xff0c;…

SQL 养成一个好习惯是一笔财富

来源&#xff1a;MR_ke 链接&#xff1a;http://www.cnblogs.com/MR_ke/archive/2011/05/29/2062085.html 我们做软件开发的&#xff0c;大部分人都离不开跟数据库打交道&#xff0c;特别是erp开发的&#xff0c;跟数据库打交道更是频繁&#xff0c;存储过程动不动就是上千行&a…

【JAVA】StringTokenizer 迭代方式对字符串进行分割

StringTokenizer是一个用来分隔String的应用类&#xff0c;相当于VB的split函数。1.构造函数public StringTokenizer(String str)public StringTokenizer(String str, String delim)public StringTokenizer(String str, String delim, boolean returnDelims)第一个参数就是要分…

python数组定义_python定义数组

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01; 一、一维数组 1. 直接定义matrix2. 间接定义matrixprint(matrix)输出&#xff1a;3. 数组乘法matrix*5print…