软件工具
一,概述
今天, 代码变得日益简单, 在Model的指导下, 思想, 设计, 分析都变得异常重要。企业业务建模工具, 产品非常多, 特别是在MDA日益流行的今天. WorkFlow是典型的业务及流程建模。但是工具的丰富与工程的完美无法划上等号,工程的灵魂是使用工具的人,最多是提供了更多的选择。
二,软件开发CASE工具简介
(一)图稿绘制:
1,visio:这是目前国内用得最多的case工具。它提供了日常使用中的绝大多数框图的绘画功能(包括信息领域的各种原理图,设计图),同时提供了部分信息领域的实物图。visio的精华在于其使用方便,安装后的visio2000既可以单独运行,也可以在word中作为对象插入,与word集成良好,其图生成后在没有安装visio的word仍然能够查看。使用过其他绘图工具的朋友肯定会感受到visio在处理框和文字上的流畅,同时在文件管理上,visio提供了分页、分组的管理方式。visio支持 UML的静态和动态建模,对UML的建模提供了单独的组织管理。从2000版本后visio被Microsoft收购,正式成为Office大家庭的一员,目前最新版是2002。纳入名门的visio2002被微软的风格所同化,样子出现了一些华而不实的东西,但是功能上visio不减从前,各种器件模版有了许多增进。
它是最通用(MS的东西,意味着许多附带的通用的东西)的硬件、网络平台等图表设计软件。好处是易用性高,特别是对不善于自己构造图的人。但是正因为很全,所以某个方面上会造成专业程度较低。
有关工程管理类的显然不如PROJECT2000好用;
画IDEF0图显然不如BPWIN好用;
画IDEF1X图显然无法与ERWIN相比;
画组织机构图WORD足够用了,且普遍适用;
画网络拓扑结构图只要有相应的图素,用什么画都行;
画有关图表类的显然不如EXCEL好用;
关键的是,VISIO的图只能以对象的方式插入你的主文档,只有在它本身环境下才能修改。
2,smartdraw:校园里比较流行的绘图软件。用惯了visio,感觉smartdraw有许多不一样的地方。一开始就是提供你大堆模版,以目录树的形式放在左边。你的设计都可以纳入模版,并且在某个目录组织。smartdraw也是大手笔,有许多visio没有的方便功能。比如插入表格。smartdraw本身是独立提供图稿绘制的工具,因而工具齐全。而visio更多是与word集成在一起,能够充分利用 word的编排功能。有心者不妨一试,有了感觉我们再交流。
(二)原码浏览的工具:
1,SourceInsigt:不能不说这个东西是个好东东。以工程的方式管理原码,提供非常适合再工程的浏览手段.整个面板分成三个部分.左边树提供工程内的所有变量,函数,宏定义,右边提供程序阅读和编辑,下边显示你鼠标在原码触及的函数或者变量定义.最让人佩服的是SourceInsigt不仅高亮你的关键字,而且以近乎完美的板面编排让你看程序如果看报纸,好极了。SourceInsigt提供函数交叉调用的分析,并以树状的形式显示调用关系。不过,速度有些问题,我一般不用。我用的版本是3.0 2000产品。
2,SourceNavigator:这个是从Redhat Linux版本移植到win32下的,与SourceInsigt相比,样子土多了,处处透着Linux的乡土气息,不过是干实事的家伙。提供原码高亮显示和编辑,提供头文件的包含关系分析,提供类的层次关系,这个东西最大的特点是把原码始终和文件联系在一起,提供到文件的导航。当然不能说它使用很方便,我一般不用它,但是它的分析速度有优势,这是SourceInsigt必须低头的。
3, Dia:(http://www.gnome.org/projects/dia/)完全免费的东西, 目前有 Win32 Port 了, 6MB 左右, 画图足够用了. 可惜不能生成代码.我在win2000ads上安装却有问题。
(三)配置管理工具
配置管理的重要意义在于维护文档的统一和可追溯性。尽管宏观的配置管理包括很多内容,但是我们最常用到的是对程序代码的版本控制,至于变更的控制、管理和通知这里不多介绍。下面将简要介绍国内几种常用的工具。
1,Virsual Source Safe:
微软的studio企业版包含的版本管理工具。该工具包括一服务器和一通过网络可以连接服务器的客户端。VSS提供了基本的认证安全和版本控制机制,包括 CheckIn(入库)、CheckOut(出库)、Branch(分支)、Label(标定)等功能;能够对文本,二进制,图形图象几乎任何类型的文件进行控制;提供历史版本对比;可以集成在studio中。
VSS的客户端既可以连接服务器运行,也可以在本机运行,非常适合于个人程序开发的版本管理。
(VSS的详情我以后还会贴出)
2,PVCS:
PVCS 是世界领先的软件开发管理工具,市场占有率达70%以上,是公认的事实上的工业标准。IDC在1996年9月的报告中评述:“PVCS是软件开发管理工业领域遥遥领先的领导者”。全球的着名企业、软件机构、银行等诸多行业及政府机构几乎无一例外地应用了PVCS.
PVCS包含多种工具。 PVCSVersionManager会完整、详细地记录开发过程中出现的变更和修改,并使修订版本自动升级,而PVCSTracker、PVCS Notify会自动地对上述变更和修改进行追踪。另外,PVCSRequisitePro提供了一个独特的MicrosoftWord界面和需求数据库,从而可以使开发机构实时、直观地对来自于最终用户的项目需求及需求变更进行追踪和管理,可有效地避免重复开发,保证开发项目按期、按质、按原有的资金预算交付用户。
我比较喜欢的是PVCS基于WEB的应用比较方便,只要设定用户和权限,规划好目录结构,项目组成员通过浏览器完成操作。
3,ClearCase:
ClearCase 是rational公司的主要配置管理工具,可能大家对Rose熟悉一点,不过就我所知,现在绝大多数企业已经从PVCS过渡到ClearCase来了,其原因在于ClearCase是整个rational产品系列中的中枢(repository).
ClearCase提供了VOB的概念来进行配置管理,功能极其强大。同时ClearCase使用起来也非常复杂,没有经过专门培训,自学还是有一定难度的。ClearCase目前国内流行版本是for NT的4.1需要在NT主域控制器上安装。ClearCase的解密和安装比较复杂。
ClearCase是世界上目前最强大的配置管理工具之一,由于它采用许多新的配置管理思想,使得相对于传统的 CVS,VSS,PVCS等版本管理工具,ClearCase具有许多闪光点,目前正在为世界上各大软件企业所使用(国内目前华为,先驱使用该系统)。 ClearCase中有大量的新的术语。其中比较重要的术语有:UCM(统一配置管理) VOB(版本对象基础) View(版本视图) Activity(更新活动)。ClearCase实现版本管理的基础是VOB,成员要更改受控资料,需要先设置一个自己的View,这个View是你感兴趣的受控资料范围,然后可以Check Out资料到本地资料区,进行修改后再Check In提交。ClearCase极为有力的支持多版本、并行开发。ClearCase不仅可以提供基于文件的版本历史,甚至可以对整个目录系统的演化进行跟踪记录。
ClearCase目前支持的执行平台有UNIX\LINUX,WINNT。WINNT最新版本是ClearCase 2002,Solaris上我使用的版本是4.3.需要指出的一点是ClearCase十分昂贵,普通企业难以购买,另外由于其功能十分强大,对系统管理员和使用者要求较高,培训费用不匪。
4,CVS:
在linux和unix下系统自带的版本控制工具,是版本控制中工具的鼻祖,功能十分强大,但是都得通过命令行的形式来操作,不便使用。目前,Internet上提供了基于Windows的客户端,名字叫WinCVS,而且提供了原码。
(四)数据库建模
1,ERWin:CA 公司出品的拳头产品, 强大的老牌数据库建模工具。它有一个兄弟是BPWin,这个是CASE工具的一个里程碑似的产品。目前的我使用的版本是4.0。ERWin界面相当简洁漂亮,也是采用ER模型,如果你是开发中小型数据库,极力推荐ERWin,它的Diagram给人的感觉十分清晰。在一个实体中,不同的属性类型采用可定制的图标显示,实体与实体的关系也一目了然。当然ERWin不仅是花花公子,它提供的功能如PowerDesian一样强大(不支持UML)。从我个人使用的感觉,ERWin不适合非常大的数据库的设计,因为它对Diagram欠缺更多层次的组织,而且不知什么原因,我感觉它对内存要求较高,使用到后期容易出现图标不能显示的情况,一如windows内存紧缺的表现。
erwin支持idef1x即信息建模,就是我们常说的er图、实体关系图,也就是数据库结构图。bpwin支持idef0/idef3/dfd,是功能与流程建模,主要用来描述企业的业务流程,比uml的usecase/sequence更适合描述复杂逻辑。如果要全过程支持,请选择bpwin + PowerDesigner7.5/8 or erwin4 + rational rose 2001 (建议用于50~200个table的信息系统)
ERWin 的不足:对中文支持不好。和Er/Studio比较:
<1>在权限/版本管理方面 ER Studio 和 Rational Rose 有些 相似,允许分模块 进行 check in /check out ,并发开发程度 高, ERWin这一点就不行了!!
<2>另外一个就是 ERWin 的逆向工程虽然和 ER Studio 一样提供一堆过滤条件,但却不能指定的对象(如:指定的数据表/视图/触发器)进行逆向工程,但ER Studio 却提供了这些功能。
<3>此外ER Studio还提供了宏功能,把VB的一些功能以插件方式提供了 用户,但 ERWin 中却没有提供!! 虽然这个功能一般的用户根本很少使用!
看到ER Studio 的宏功能,很容易让人想到Winmap 的一堆插件,两者的公司都向用户提供了插件(宏)让用户下载使用!这种做法很值得很多软件公司参考!!
当然 CA 公司也不是个废物,提供了几个重要的功能:提供了自家开发的 BPWin 的 接口,以及Oracle 这个数据库巨人的 Designer 的接口。另外同样提供了插件功能,只不过这个插件的接口需要使用他的标准,这一点有点象Rational Rose 的 Add in manager 一样(例如: delphi link )!!
ER Studio 提供了针对 XML 的接口,但ERWin却没有!!
2,MS Visio:
3,Case Studio:现为Toad Data Modeler, 性价比最高
4,ErStudio:很不错的数据库建模工具新势力, 非常不错. 结合Repository, 可进行VSS式的版本控制。erwin能做到的它都能做到..?
5,modelmake
6,DeZign for Databases:如果你是软件工程师或是软件产品经理等常常需要规划系统的话,势必会需要规划数据库的Table Schema。这套软件能够辅助你的规划,将各个Table之间Key的关连性表达出来,也提供有资料库栏位异动时的版本控制纪录与统计报表等功能。
7,PowerDesign:Sybase推出的主打数据库设计工具。PowerDesign致力于采用基于 Entiry-Relation的数据模型,分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。概念数据模型描述的是独立于数据库管理系统(DBMS)的实体定义和实体关系定义。物理数据模型是在概念数据模型的基础上针对目标数据库管理系统的具体化。Sybase数据库在国内知名度可能不及Oracle,但是Sybase 的数据库前端开发工具PowerBuilder却是无可匹敌,再加上PowerDesign的确有过人之处,因而它在国内得到相当广泛的使用。我手里使用的是2001的PowerDesign8.0,这个版本我感觉上比早期的PowerDesign6.0-7.5都有了很大的改变。PowerDesign 功能强大,使用非常方便。首先它提供了概念模型和物理模型的分组,呈现在使使用区左边的是树状的概念模型和物理模型导航,你可以建立多个概念模型和物理模型,并且以Package的形式任意组织;它几乎能够产生到所有常用数据库管理系统的SQL脚本,当然你完全可以不经过SQL脚本直接在DBMS中生成数据库;它提供增量的数据库开发功发功能,支持局部更新,你可以在概念模型,物理模型,实际数据库三者间完成设计的同步。还有逆向工程,再工程支持,目前还支持UML建模.总体感觉PowerDesing发展到8.0已经非常成熟,许多使用上细微的感觉只有你用过它才好评价,我不多说了。
8,Rational Rose
(五)UML建模
UML 不算是个新名词, 但是实际中还是用得很少(可能是因为都是做小项目的原因吧, 大项目就用得多了).
UML 是个好东西, 但是过分的依赖于 UML 也不是一件好事, 因为有时候它会把简单的东西复杂化. 即使是代码的优良结构和可重用性也不能作为强制使用 UML 借口, 良好的算法完全可以替代部分不必要的设计模块, 或者说, 其实有更好的 UML 设计你没有发现.
1,Rational Rose:大恐龙, 小项目中难以使用, 虽然是 UML 设计者做的。虽然这是一个推荐使用的高端工具,它使改进和维护设计、从模型生成报表、在平行协作环境中与他人共同进行建模工作变得很方便。
尽管Rose这个名称跟英文中玫瑰单词一摸一样,但是这里他代表Rational公司的面向对象分析和设计工具的一款力作。Rose目前在国内正被越来越多的公司所使用,其原因一方面是随着软件规模的扩大,面向对象分析和设计的优势突现出来,软件企业正在从面向过程向面向对象过渡。另一方面,Rose集中体现了统一软件建模(UML)的先进设计思想,能够通过一套统一的图形符号简洁有效地表达各种设计思想。当然, Rose本身在设计上的完善和与Rational CASE家族的完美集成也是作为一款最成功的CASE产品的基础。
Rose 2002功能上可以完成UML的9种标准建模,即静态建模(用例图 类图 对象图 组件图 配置图 )和动态建模(合作图 序列图 状态转移图 活动图),为了使静态建模可以直接作用于代码,Rose提供了类设计到多种程序语言代码自动产生的插件。
同时,作为一款优秀的分析和设计工具,Rose具有强大的正向和逆向工程能力。正向工程这里指的是由设计产生代码,逆向工程指由代码归纳出设计。通过逆向工程Rose可以对历史系统作出分析,然后进行改进,再通过正向工程产生新系统的代码,这样的设计方式我们称之为再工程。
下载地址:Rose2000和破解:http://id49479.my.u2i.net/
Rose2003: http://www.nj13z.cn/2004/down_view.asp?action=download&id=14
Rose2003破解:http://www.vchelp.net/ASP/cdf_pic/200405/reply_1_529068.rar
IBM.Rational.Rose.Enterprise.v7.0|
2,XDE, 分别有4 vs.net和4 wsda的, 很不错, 值得使用.
3,Borland Together:有很多版本, 其中4VS.Net不推荐使用, 用Jbuilder推荐使用, 只是实在不喜欢它的界面。(Java 开发的大,慢恐龙, 但是各项功能很爽,这也不能怪它,java做的东西慢是正常的)。但它的功能还是很强大的。尤其是逆向工程用起来很方便,只不过当时我们的EJB项目中EJB都非常大,动辄几千行,用它生成的sequence图实在太详细了,只有不停地删掉细节,留下框架。建议非不得已不要使用这个庞然大物,对你的机器和你的耐心都是个考验。它有for eclipse, vs.net等等插件,感觉也不错。
4,MS Visio 2003 for Visual Studio:Visio Professional 2000开始提供内建的UML支持。Enterprise版更加完整。这是一个功能广泛强大的工具。和vs.net结合不错, 只是仅限于 VS.NET 的代码生成, 没意思,各方面都不舒服。
5,PowerDesigner:是简练实用的建模工具、6.0支持数据流图,8.0支持UML的UseCase/sequence/class视图;
6,Visual Paradigm:(http://www.visual-paradigm.com/vpuml.php)目前最合适也是最火的软件了(从这一年来网站的设计变化就可以看出来好卖), 强大, 非 Java. Community Edition 可以免费使用, 当然有功能限制.是一种UML建模和分析工具,出色的建模功能和代码同步。
7,WithClass 2000:(http://www.microgold.com/)界面不是很好看, 而且也没有免费版本, 不过功能还不错, 特别是代码生成的能力.
8,Poseidon (海神…):也是 Java 的, 很漂亮, 就是太慢。
9,Jude:一个号称中日xp合作开发出来的小uml工具,只有几m的大小,功能也还不错。也是java做的,速度还是很快的。如果不需要使用逆向工程之类的高级功能的话,强烈推荐这个uml工具,并且它是免费的。
10,MagicDraw:一个基于Java的廉价UML建模工具。
11,Objecteering UML:一个免费的个人UML产品。
12,System Architect:一个很受欢迎的高端UML建模工具,支持双向工程(Round-trip Engineering)。
参见
源码阅读软件| 几款代码转流程图软件 |:Code Visual to Flowchart可用, Crystal FLOW for C功能较强,不过只能针对C,Aivosto Visustin功能稍逊,还有个国产的免费山寨软件绿色版:苦丁茶软件CodinGraph
CASE工具的种类及应用特点| MM(ModelMaker)建模工具快速上手指南| 蛙蛙推荐:蛙蛙Delphi学习经验(第一版)| 关于PD的正向与反向| 数据建模方面的问题,如何建模?|
开源跨平台开发工具Code::Blocks+wxWidgets绿色整合包
Rational Rose 98教程 http://www.zsbs.com/h/sdm/se_tool/rational/rose/rose98.htm 偶用过的UML工具http://rongsantang.yculblog.com/post-253978.html 又是 UML http://www.myie2.com/sic/blog/blogview.asp?logID=27 几类常用Case工具介绍(1) http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=2918&forum_id=61
Marko Boger:: XP、、UML 和和Poseiidon www.gentleware.com/press/2003/20030806_Chat_Umlchina_CHIN.pdf
Together 应用之路(1) - 我没有前世 http://blog.joycode.com/uestc95/archive/2004/07/09/27118.aspx