一,概述 今天, 代碼變得日益簡單, 在Model的指導(dǎo)下, 思想, 設(shè)計(jì), 分析都變得異常重要。企業(yè)業(yè)務(wù)建模工具, 產(chǎn)品非常多, 特別是在MDA日益流行的今天. WorkFlow是典型的業(yè)務(wù)及流程建模。 二,軟件開發(fā)CASE工具簡介 (一)圖稿繪制: 1,visio:這是目前國內(nèi)用得最多的case工具。它提供了日常使用中的絕大多數(shù)框圖的繪畫功能(包括信息領(lǐng)域的各種原理圖,設(shè)計(jì)圖),同時(shí)提供了部分信息領(lǐng)域的實(shí)物圖。visio的精華在于其使用方便,安裝后的visio2000既可以單獨(dú)運(yùn)行,也可以在word中作為對(duì)象插入,與word集成良好,其圖生成后在沒有安裝visio的word仍然能夠查看。使用過其他繪圖工具的朋友肯定會(huì)感受到visio在處理框和文字上的流暢,同時(shí)在文件管理上,visio提供了分頁、分組的管理方式。visio支持 UML的靜態(tài)和動(dòng)態(tài)建模,對(duì)UML的建模提供了單獨(dú)的組織管理。從2000版本后visio被Microsoft收購,正式成為Office大家庭的一員,目前最新版是2002。納入名門的visio2002被微軟的風(fēng)格所同化,樣子出現(xiàn)了一些華而不實(shí)的東西,但是功能上visio不減從前,各種器件模版有了許多增進(jìn)。 它是最通用(MS的東西,意味著許多附帶的通用的東西)的硬件、網(wǎng)絡(luò)平臺(tái)等圖表設(shè)計(jì)軟件。好處是易用性高,特別是對(duì)不善于自己構(gòu)造圖的人。但是正因?yàn)楹苋阅硞€(gè)方面上會(huì)造成專業(yè)程度較低。 有關(guān)工程管理類的顯然不如PROJECT2000好用; 2,smartdraw:校園里比較流行的繪圖軟件。用慣了visio,感覺smartdraw有許多不一樣的地方。一開始就是提供你大堆模版,以目錄樹的形式放在左邊。你的設(shè)計(jì)都可以納入模版,并且在某個(gè)目錄組織。smartdraw也是大手筆,有許多visio沒有的方便功能。比如插入表格。 smartdraw本身是獨(dú)立提供圖稿繪制的工具,因而工具齊全。而visio更多是與word集成在一起,能夠充分利用 word的編排功能。有心者不妨一試,有了感覺我們?cè)俳涣鳌?/p> (二)原碼瀏覽的工具: 1,SourceInsigt:不能不說這個(gè)東西是個(gè)好東東。以工程的方式管理原碼,提供非常適合再工程的瀏覽手段.整個(gè)面板分成三個(gè)部分.左邊樹提供工程內(nèi)的所有變量,函數(shù),宏定義,右邊提供程序閱讀和編輯,下邊顯示你鼠標(biāo)在原碼觸及的函數(shù)或者變量定義.最讓人佩服的是SourceInsigt不僅高亮你的關(guān)鍵字,而且以近乎完美的板面編排讓你看程序如果看報(bào)紙,好極了。SourceInsigt提供函數(shù)交叉調(diào)用的分析,并以樹狀的形式顯示調(diào)用關(guān)系。不過,速度有些問題,我一般不用。我用的版本是3.0 2000產(chǎn)品。 2,SourceNavigator:這個(gè)是從Redhat Linux版本移植到win32下的,與SourceInsigt相比,樣子土多了,處處透著Linux的鄉(xiāng)土氣息,不過是干實(shí)事的家伙。提供原碼高亮顯示和編輯,提供頭文件的包含關(guān)系分析,提供類的層次關(guān)系,這個(gè)東西最大的特點(diǎn)是把原碼始終和文件聯(lián)系在一起,提供到文件的導(dǎo)航。當(dāng)然不能說它使用很方便,我一般不用它,但是它的分析速度有優(yōu)勢,這是SourceInsigt必須低頭的。 3, Dia:(http://www./projects/dia/)完全免費(fèi)的東西, 目前有 Win32 Port 了, 6MB 左右, 畫圖足夠用了. 可惜不能生成代碼.我在win2000ads上安裝卻有問題。 (三)配置管理工具 配置管理的重要意義在于維護(hù)文檔的統(tǒng)一和可追溯性。盡管宏觀的配置管理包括很多內(nèi)容,但是我們最常用到的是對(duì)程序代碼的版本控制,至于變更的控制、管理和通知這里不多介紹。下面將簡要介紹國內(nèi)幾種常用的工具。 1,Virsual Source Safe: 微軟的studio企業(yè)版包含的版本管理工具。該工具包括一服務(wù)器和一通過網(wǎng)絡(luò)可以連接服務(wù)器的客戶端。VSS提供了基本的認(rèn)證安全和版本控制機(jī)制,包括 CheckIn(入庫)、CheckOut(出庫)、Branch(分支)、Label(標(biāo)定)等功能;能夠?qū)ξ谋?,二進(jìn)制,圖形圖象幾乎任何類型的文件進(jìn)行控制;提供歷史版本對(duì)比;可以集成在studio中。 VSS的客戶端既可以連接服務(wù)器運(yùn)行,也可以在本機(jī)運(yùn)行,非常適合于個(gè)人程序開發(fā)的版本管理。 VSS的詳情我以后還會(huì)貼出) 2,PVCS: PVCS 是世界領(lǐng)先的軟件開發(fā)管理工具,市場占有率達(dá)70%以上,是公認(rèn)的事實(shí)上的工業(yè)標(biāo)準(zhǔn)。IDC在1996年9月的報(bào)告中評(píng)述:“PVCS是軟件開發(fā)管理工業(yè)領(lǐng)域遙遙領(lǐng)先的領(lǐng)導(dǎo)者”。全球的著名企業(yè)、軟件機(jī)構(gòu)、銀行等諸多行業(yè)及政府機(jī)構(gòu)幾乎無一例外地應(yīng)用了PVCS. PVCS包含多種工具。 PVCSVersionManager會(huì)完整、詳細(xì)地記錄開發(fā)過程中出現(xiàn)的變更和修改,并使修訂版本自動(dòng)升級(jí),而PVCSTracker、PVCS Notify會(huì)自動(dòng)地對(duì)上述變更和修改進(jìn)行追蹤。另外,PVCSRequisitePro提供了一個(gè)獨(dú)特的MicrosoftWord界面和需求數(shù)據(jù)庫,從而可以使開發(fā)機(jī)構(gòu)實(shí)時(shí)、直觀地對(duì)來自于最終用戶的項(xiàng)目需求及需求變更進(jìn)行追蹤和管理,可有效地避免重復(fù)開發(fā),保證開發(fā)項(xiàng)目按期、按質(zhì)、按原有的資金預(yù)算交付用戶。 我比較喜歡的是PVCS基于WEB的應(yīng)用比較方便,只要設(shè)定用戶和權(quán)限,規(guī)劃好目錄結(jié)構(gòu),項(xiàng)目組成員通過瀏覽器完成操作。 3,ClearCase: ClearCase 是rational公司的主要配置管理工具,可能大家對(duì)Rose熟悉一點(diǎn),不過就我所知,現(xiàn)在絕大多數(shù)企業(yè)已經(jīng)從PVCS過渡到ClearCase來了,其原因在于ClearCase是整個(gè)rational產(chǎn)品系列中的中樞(repository). ClearCase提供了VOB的概念來進(jìn)行配置管理,功能極其強(qiáng)大。同時(shí)ClearCase使用起來也非常復(fù)雜,沒有經(jīng)過專門培訓(xùn),自學(xué)還是有一定難度的。ClearCase目前國內(nèi)流行版本是for NT的4.1需要在NT主域控制器上安裝。ClearCase的解密和安裝比較復(fù)雜。 ClearCase是世界上目前最強(qiáng)大的配置管理工具之一,由于它采用許多新的配置管理思想,使得相對(duì)于傳統(tǒng)的 CVS,VSS,PVCS等版本管理工具,ClearCase具有許多閃光點(diǎn),目前正在為世界上各大軟件企業(yè)所使用(國內(nèi)目前華為,先驅(qū)使用該系統(tǒng))。 ClearCase中有大量的新的術(shù)語。其中比較重要的術(shù)語有:UCM(統(tǒng)一配置管理) VOB(版本對(duì)象基礎(chǔ)) View(版本視圖) Activity(更新活動(dòng))。ClearCase實(shí)現(xiàn)版本管理的基礎(chǔ)是VOB,成員要更改受控資料,需要先設(shè)置一個(gè)自己的View,這個(gè)View是你感興趣的受控資料范圍,然后可以Check Out資料到本地資料區(qū),進(jìn)行修改后再Check In提交。ClearCase極為有力的支持多版本、并行開發(fā)。ClearCase不僅可以提供基于文件的版本歷史,甚至可以對(duì)整個(gè)目錄系統(tǒng)的演化進(jìn)行跟蹤記錄。 ClearCase目前支持的執(zhí)行平臺(tái)有UNIX\LINUX,WINNT。WINNT最新版本是ClearCase 2002,Solaris上我使用的版本是4.3.需要指出的一點(diǎn)是ClearCase十分昂貴,普通企業(yè)難以購買,另外由于其功能十分強(qiáng)大,對(duì)系統(tǒng)管理員和使用者要求較高,培訓(xùn)費(fèi)用不匪。 4,CVS: 在linux和unix下系統(tǒng)自帶的版本控制工具,是版本控制中工具的鼻祖,功能十分強(qiáng)大,但是都得通過命令行的形式來操作,不便使用。目前,Internet上提供了基于Windows的客戶端,名字叫WinCVS,而且提供了原碼。 (四)數(shù)據(jù)庫建模 1,ERWin:CA 公司出品的拳頭產(chǎn)品, 強(qiáng)大的老牌數(shù)據(jù)庫建模工具。它有一個(gè)兄弟是BPWin,這個(gè)是CASE工具的一個(gè)里程碑似的產(chǎn)品。目前的我使用的版本是4.0。ERWin界面相當(dāng)簡潔漂亮,也是采用ER模型,如果你是開發(fā)中小型數(shù)據(jù)庫,極力推薦ERWin,它的Diagram給人的感覺十分清晰。在一個(gè)實(shí)體中,不同的屬性類型采用可定制的圖標(biāo)顯示,實(shí)體與實(shí)體的關(guān)系也一目了然。當(dāng)然ERWin不僅是花花公子,它提供的功能如PowerDesian一樣強(qiáng)大(不支持UML)。從我個(gè)人使用的感覺,ERWin不適合非常大的數(shù)據(jù)庫的設(shè)計(jì),因?yàn)樗鼘?duì)Diagram欠缺更多層次的組織,而且不知什么原因,我感覺它對(duì)內(nèi)存要求較高,使用到后期容易出現(xiàn)圖標(biāo)不能顯示的情況,一如windows內(nèi)存緊缺的表現(xiàn)。 erwin支持idef1x即信息建模,就是我們常說的er圖、實(shí)體關(guān)系圖,也就是數(shù)據(jù)庫結(jié)構(gòu)圖。bpwin支持idef0/idef3/dfd,是功能與流程建模,主要用來描述企業(yè)的業(yè)務(wù)流程,比uml的usecase/sequence更適合描述復(fù)雜邏輯。如果要全過程支持,請(qǐng)選擇bpwin + PowerDesigner7.5/8 or erwin4 + rational rose 2001 (建議用于50~200個(gè)table的信息系統(tǒng)) ERWin 的不足:對(duì)中文支持不好。和Er/Studio比較: <1>在權(quán)限/版本管理方面 ER Studio 和 Rational Rose 有些相似,允許分模塊 進(jìn)行 check in /check out ,并發(fā)開發(fā)程度高, ERWin這一點(diǎn)就不行了??! <2>另外一個(gè)就是 ERWin 的逆向工程雖然和 ER Studio 一樣提供一堆過濾條件,但卻不能指定的對(duì)象(如:指定的數(shù)據(jù)表/視圖/觸發(fā)器)進(jìn)行逆向工程,但ER Studio 卻提供了這些功能。 <3>此外ER Studio還提供了宏功能,把VB的一些功能以插件方式提供了 用戶,但 ERWin 中卻沒有提供??! 雖然這個(gè)功能一般的用戶根本很少使用! 看到ER Studio 的宏功能,很容易讓人想到Winmap 的一堆插件,兩者的公司都向用戶提供了插件(宏)讓用戶下載使用!這種做法很值得很多軟件公司參考??! 當(dāng)然 CA 公司也不是個(gè)廢物,提供了幾個(gè)重要的功能:提供了自家開發(fā)的 BPWin 的 接口,以及Oracle 這個(gè)數(shù)據(jù)庫巨人的 Designer 的接口。另外同樣提供了插件功能,只不過這個(gè)插件的接口需要使用他的標(biāo)準(zhǔn),這一點(diǎn)有點(diǎn)象Rational Rose 的 Add in manager 一樣(例如: delphi link )?。?/p> ER Studio 提供了針對(duì) XML 的接口,但ERWin卻沒有??! 2,MS Visio: 3,Case Studio:性價(jià)比最高 4,ER/Studio:很不錯(cuò)的數(shù)據(jù)庫建模工具新勢力, 非常不錯(cuò). 結(jié)合Repository, 可進(jìn)行VSS式的版本控制。erwin能做到的它都能做到..? 5,modelmake 6,DeZign for Databases:如果你是軟件工程師或是軟件產(chǎn)品經(jīng)理等常常需要規(guī)劃系統(tǒng)的話,勢必會(huì)需要規(guī)劃數(shù)據(jù)庫的Table Schema。這套軟件能夠輔助你的規(guī)劃,將各個(gè)Table之間Key的關(guān)連性表達(dá)出來,也提供有資料庫欄位異動(dòng)時(shí)的版本控制紀(jì)錄與統(tǒng)計(jì)報(bào)表等功能。 7,PowerDesign:Sybase推出的主打數(shù)據(jù)庫設(shè)計(jì)工具。PowerDesign致力于采用基于 Entiry-Relation的數(shù)據(jù)模型,分別從概念數(shù)據(jù)模型(Conceptual Data Model)和物理數(shù)據(jù)模型(Physical Data Model)兩個(gè)層次對(duì)數(shù)據(jù)庫進(jìn)行設(shè)計(jì)。概念數(shù)據(jù)模型描述的是獨(dú)立于數(shù)據(jù)庫管理系統(tǒng)(DBMS)的實(shí)體定義和實(shí)體關(guān)系定義。物理數(shù)據(jù)模型是在概念數(shù)據(jù)模型的基礎(chǔ)上針對(duì)目標(biāo)數(shù)據(jù)庫管理系統(tǒng)的具體化。Sybase數(shù)據(jù)庫在國內(nèi)知名度可能不及Oracle,但是Sybase 的數(shù)據(jù)庫前端開發(fā)工具PowerBuilder卻是無可匹敵,再加上PowerDesign的確有過人之處,因而它在國內(nèi)得到相當(dāng)廣泛的使用。我手里使用的是2001的PowerDesign8.0,這個(gè)版本我感覺上比早期的PowerDesign6.0-7.5都有了很大的改變。PowerDesign 功能強(qiáng)大,使用非常方便。首先它提供了概念模型和物理模型的分組,呈現(xiàn)在使使用區(qū)左邊的是樹狀的概念模型和物理模型導(dǎo)航,你可以建立多個(gè)概念模型和物理模型,并且以Package的形式任意組織;它幾乎能夠產(chǎn)生到所有常用數(shù)據(jù)庫管理系統(tǒng)的SQL腳本,當(dāng)然你完全可以不經(jīng)過SQL腳本直接在DBMS中生成數(shù)據(jù)庫;它提供增量的數(shù)據(jù)庫開發(fā)功發(fā)功能,支持局部更新,你可以在概念模型,物理模型,實(shí)際數(shù)據(jù)庫三者間完成設(shè)計(jì)的同步。還有逆向工程,再工程支持,目前還支持UML建模.總體感覺PowerDesing發(fā)展到8.0已經(jīng)非常成熟,許多使用上細(xì)微的感覺只有你用過它才好評(píng)價(jià),我不多說了。 8,Rational Rose (五)UML建模 UML 不算是個(gè)新名詞, 但是實(shí)際中還是用得很少(可能是因?yàn)槎际亲鲂№?xiàng)目的原因吧, 大項(xiàng)目就用得多了). UML 是個(gè)好東西, 但是過分的依賴于 UML 也不是一件好事, 因?yàn)橛袝r(shí)候它會(huì)把簡單的東西復(fù)雜化. 即使是代碼的優(yōu)良結(jié)構(gòu)和可重用性也不能作為強(qiáng)制使用 UML 借口, 良好的算法完全可以替代部分不必要的設(shè)計(jì)模塊, 或者說, 其實(shí)有更好的 UML 設(shè)計(jì)你沒有發(fā)現(xiàn). 1,Rational Rose:大恐龍, 小項(xiàng)目中難以使用, 雖然是 UML 設(shè)計(jì)者做的。雖然這是一個(gè)推薦使用的高端工具,它使改進(jìn)和維護(hù)設(shè)計(jì)、從模型生成報(bào)表、在平行協(xié)作環(huán)境中與他人共同進(jìn)行建模工作變得很方便。 盡管Rose這個(gè)名稱跟英文中玫瑰單詞一摸一樣,但是這里他代表Rational公司的面向?qū)ο蠓治龊驮O(shè)計(jì)工具的一款力作。Rose目前在國內(nèi)正被越來越多的公司所使用,其原因一方面是隨著軟件規(guī)模的擴(kuò)大,面向?qū)ο蠓治龊驮O(shè)計(jì)的優(yōu)勢突現(xiàn)出來,軟件企業(yè)正在從面向過程向面向?qū)ο筮^渡。另一方面, Rose集中體現(xiàn)了統(tǒng)一軟件建模(UML)的先進(jìn)設(shè)計(jì)思想,能夠通過一套統(tǒng)一的圖形符號(hào)簡潔有效地表達(dá)各種設(shè)計(jì)思想。當(dāng)然, Rose本身在設(shè)計(jì)上的完善和與Rational CASE家族的完美集成也是作為一款最成功的CASE產(chǎn)品的基礎(chǔ)。 Rose 2002功能上可以完成UML的9種標(biāo)準(zhǔn)建模,即靜態(tài)建模(用例圖 類圖 對(duì)象圖 組件圖 配置圖 )和動(dòng)態(tài)建模(合作圖 序列圖 狀態(tài)轉(zhuǎn)移圖 活動(dòng)圖),為了使靜態(tài)建模可以直接作用于代碼,Rose提供了類設(shè)計(jì)到多種程序語言代碼自動(dòng)產(chǎn)生的插件。 同時(shí),作為一款優(yōu)秀的分析和設(shè)計(jì)工具,Rose具有強(qiáng)大的正向和逆向工程能力。正向工程這里指的是由設(shè)計(jì)產(chǎn)生代碼,逆向工程指由代碼歸納出設(shè)計(jì)。通過逆向工程Rose可以對(duì)歷史系統(tǒng)作出分析,然后進(jìn)行改進(jìn),再通過正向工程產(chǎn)生新系統(tǒng)的代碼,這樣的設(shè)計(jì)方式我們稱之為再工程。 2,XDE, 分別有4 vs.net和4 wsda的, 很不錯(cuò), 值得使用. 3,Borland Together:有很多版本, 其中4VS.Net不推薦使用, 用Jbuilder推薦使用, 只是實(shí)在不喜歡它的界面。(Java 開發(fā)的大,慢恐龍, 但是各項(xiàng)功能很爽,這也不能怪它,java做的東西慢是正常的)。但它的功能還是很強(qiáng)大的。尤其是逆向工程用起來很方便,只不過當(dāng)時(shí)我們的EJB項(xiàng)目中 EJB都非常大,動(dòng)輒幾千行,用它生成的sequence圖實(shí)在太詳細(xì)了,只有不停地刪掉細(xì)節(jié),留下框架。建議非不得已不要使用這個(gè)龐然大物,對(duì)你的機(jī)器和你的耐心都是個(gè)考驗(yàn)。它有for eclipse, vs.net等等插件,感覺也不錯(cuò)。 4,MS Visio 2003 for Visual Studio:Visio Professional 2000開始提供內(nèi)建的UML支持。Enterprise版更加完整。這是一個(gè)功能廣泛強(qiáng)大的工具。和vs.net結(jié)合不錯(cuò), 只是僅限于 VS.NET 的代碼生成, 沒意思,各方面都不舒服。 5,PowerDesigner:是簡練實(shí)用的建模工具、6.0支持?jǐn)?shù)據(jù)流圖,8.0支持UML的UseCase/sequence/class視圖; 6,Visual Paradigm:(http://www./vpuml.php)目前最合適也是最火的軟件了(從這一年來網(wǎng)站的設(shè)計(jì)變化就可以看出來好賣), 強(qiáng)大, 非 Java. Community Edition 可以免費(fèi)使用, 當(dāng)然有功能限制.是一種UML建模和分析工具,出色的建模功能和代碼同步。 7,WithClass 2000:(http://www./)界面不是很好看, 而且也沒有免費(fèi)版本, 不過功能還不錯(cuò), 特別是代碼生成的能力. 8,Poseidon (海神...):也是 Java 的, 很漂亮, 就是太慢。 9,Jude:一個(gè)號(hào)稱中日xp合作開發(fā)出來的小uml工具,只有幾m的大小,功能也還不錯(cuò)。也是java做的,速度還是很快的。如果不需要使用逆向工程之類的高級(jí)功能的話,強(qiáng)烈推薦這個(gè)uml工具,并且它是免費(fèi)的。 10,MagicDraw:一個(gè)基于Java的廉價(jià)UML建模工具。 11,Objecteering UML:一個(gè)免費(fèi)的個(gè)人UML產(chǎn)品。 12,System Architect:一個(gè)很受歡迎的高端UML建模工具,支持雙向工程(Round-trip Engineering)。 Rational Rose 98教程http://www./h/sdm/se_tool/rational/rose/rose98.htm 偶用過的UML工具 http://rongsantang./post-253978.html 又是 UML http://www./sic/blog/blogview.asp?logID=27 幾類常用Case工具介紹(1) http://www./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 |
|