<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    天下難事,必作于易;天下大事,必作于細
    如果我有方向,那就是遠方
    posts - 11,comments - 8,trackbacks - 0
    http://www.objectsbydesign.com/tools/modeling_tools_cn.html


    以下標準用于評估一種UML工具。當然,除了已被列出的以外,可以用這些標準來評估的產(chǎn)品還很多,但如果你想選擇最好的,請花時間按照清單對產(chǎn)品作測試。如果你特別重視某項標準而在清單中沒有列出, 請告訴我們。

    信息倉儲支持 Top

    對于一個大項目,信息倉儲(Repository)對在開發(fā)人員之間共享組件設計是必要的。兩個以上的開發(fā)人員可以共享同一模型的的組件,甚至可以通過在適當級別上定義所有權(quán)和共享權(quán)來合作進行單一組件的開發(fā)。

    信息倉儲通常用提供數(shù)據(jù)共享和并發(fā)控制等特性的數(shù)據(jù)庫來實現(xiàn)。 通過提供鎖定和只讀訪問,信息倉儲允許一個開發(fā)人員擁有整個模型而其他人對該模型及其組件只讀訪問,或者將這些組件結(jié)合到自己的設計中。重要的是: 這種工具應該允許你從另一個模型只引入你所需要的組件而不必引入整個模型。

    構(gòu)造信息倉儲的另一個令人感興趣的方法是利用項目的源代碼,使用源碼控制系統(tǒng)來提供并發(fā)控制。這種方法的好處是在源碼和模型之間有更高級別的同步,另一個好處是更除去了另一個數(shù)據(jù)源--別忘了,如果你為信息倉儲使用了數(shù)據(jù)庫,你必須對各種存儲數(shù)據(jù)分別備份并完成在模型、信息倉儲和源代碼之間的三方同步,而不止是在代碼和模型之間的兩方同步。

    有了建模工具對信息倉儲的支持,對任何組件的修改將被自動傳播到所有引入該組件的設計。

    雙向工程 Top

    對源代碼(Java, C++, CORBA IDL)的正向和逆向工程的能力是一項復雜的需求,不同廠商在不同程度上成功地支持這一點。對正向和逆向工程這兩方面的成功結(jié)合,定義為雙向工程。

    正向工程在第一次從模型產(chǎn)生代碼時非常有用,這將為你節(jié)省許多用于編寫類、屬性、方法代碼的瑣碎工作的時間。

    在以前沒有模型存在的情況下,將代碼轉(zhuǎn)換成模型;或者在迭代結(jié)束,重新同步模型和代碼時,逆向工程非常有用。

    在一個迭代開發(fā)周期中,一旦一個模型作為迭代的一部分被修改,另一輪的正向工程應允許所有加入該模型的新的類、方法、屬性的代碼被更新。這個步驟通常不被開發(fā)者采用,因為許多工具在這個過程中沒有辦法管理源代碼,問題在于源代碼中不只包含與模型有關(guān)的信息。工具必須精于對在新一輪正向工程之前已有的源代碼進行重新構(gòu)造。

    至少,建模工具應成功支持一開始的正向工程和全過程的逆向工程。同樣,建模工具對純Java語言的逆向工程的支持應該毫無問題。一定要針對你自己的源代碼確認這一點,因為我們見到過優(yōu)秀的工具在對Java的一些特性如內(nèi)聯(lián)類(inner classes)等進行逆向工程時失敗了,每一次進行逆向工程時,你不得不把討厭的代碼注釋掉----確實非常痛苦。

    HTML文檔化 Top

    對象建模工具應能為對象模型及其組件無縫地產(chǎn)生HTML文檔。HTML文檔提供對象模型的靜態(tài)視圖,以便開發(fā)者通過瀏覽器迅速查詢而不需要加載建模工具本身。另外,通過產(chǎn)生HTML文檔,所需建模工具的許可證(licenses)會因減去那些對模型只需要有只讀權(quán)限的人而減少。

    HTML文檔應包括模型中每個圖形的一張位圖,并允許通過超鏈接瀏覽整個模型。產(chǎn)生HTML文檔所需的時間應是合理的。現(xiàn)在許多產(chǎn)品在不同程度上成功支持這一點。再說一遍,你必須親自測試這個特性,在特征表上有打勾并不能保證成功支持。

    完全UML1.3支持 Top

    雖然許多工具聲稱完全支持UML1.3,實際上,這是一項復雜的需求,一些工具并不能做到廣告所聲稱的完全支持。至少應支持的圖表有:用例圖(Use Case diagrams),類圖(Class diagrams),協(xié)作圖(Collaboration diagrams),順序圖(Sequence diagrams),包圖(Package diagrams),狀態(tài)圖(State diagrams)。

    類和方法的選擇列表 Top

    建模工具應在一些關(guān)鍵界面上提供選擇列表:

    協(xié)作圖(Collaboration Diagrams)和順序圖(Sequence Diagrams) --工具應允許從模型的類列表中選擇一個類,把一個對象分配給它,并允許對象間傳送的消息能夠從接收消息對象(類)的有效方法列表中選取。

    類圖(Class Diagram) --工具應允許從別的包或模型的類列表中選擇并引入類 。

    選擇列表特性在直觀上對建模工具至關(guān)重要,可以看作是必備特性。能夠迅速從列表中選擇一個對象到另一個對象的消息,給開發(fā)順序圖和協(xié)作圖帶來很大的方便。

    數(shù)據(jù)建模集成 Top

    對象建模工具應允許集成數(shù)據(jù)建模工具。有許多方法可以提供這種功能。一種方法是UML工具提供將對象模型轉(zhuǎn)換成DDL(數(shù)據(jù)定義語言,用于為類創(chuàng)建表的SQL)。另一種方法是UML工具輸出元數(shù)據(jù)到能夠輸入這些元數(shù)據(jù)的數(shù)據(jù)建模工具,并將其作為數(shù)據(jù)模型的基礎(chǔ)。一套先進、完整的工具應允許數(shù)據(jù)模型和對象模型之間在每次設計的迭代之后同步。

    版本控制 Top

    建模工具應允許儲存各種版本,以便后續(xù)迭代開始時,以前的版本仍然可以得到,并用于重建或保持基于該版本的已有代碼。

    模型導航 Top

    建模工具應提供強的導航支持以允許開發(fā)者全盤瀏覽模型中的所有圖表和類。一種方法是提供一個按名字排序的類目錄或選擇列表,以便設計人員隨意跳到圖表中想去的類。

    對于大的圖表,工具應使得在縮放和平移時,能夠輕松實現(xiàn)瀏覽。

    工具也應允許在使用雙向工程時,對類的源代碼輕松瀏覽。

    打印支持 Top

    建模工具應允許一張大圖表能夠準確地用多個頁面打印出來,并提供打印預覽和縮放功能,輕松地使圖表能夠在所需頁數(shù)內(nèi)放置。允許將一張圖表放置在單頁中的能力在清單中是高要求。不幸的是,我們發(fā)現(xiàn)許多工具很難用無縫的方式完成這項重要的任務。

    圖表視圖 Top

    建模工具應能方便定制類及其細節(jié)的視圖。例如,它應有可能從圖表中排除所有的get/set方法,因為它們會對闡明一個圖表造成混亂。方法的全部信息應允許容易地根據(jù)不同級別細節(jié)的需要顯示或隱藏。屬性和方法的可見性(private, protected, public)是用于選擇什么該顯示,什么該隱藏的另一個尺度。

    輸出圖表 Top

    一個經(jīng)常被忽略的關(guān)鍵特性是用某種格式輸出圖表,以便引入到文字處理文檔或Web頁面中。用于輸出的最流行圖像格式是GIF、PNG和JPEG。輸出時,工具應允許你定義所產(chǎn)生圖形的首選分辨率和尺寸。這個功能需求來自那些野心勃勃,需要寫一本包括圖表的UML書籍的作者,或者希望將他們的工作展示在網(wǎng)站上的人。

    腳本 Top

    用腳本編程是建模工具應該支持的另一個強大的特性。有了腳本功能,高級用戶可以創(chuàng)建能在建模工具內(nèi)直接訪問對象模型的腳本來添加其它功能,例如:為當前開發(fā)的項目做的項目管理表格,定制文檔,定制代碼,報表和度量。一個定制代碼的例子是集合類和用于訪問集合類的get/set方法。

    為了方便使用腳本,建模工具應公開訪問自身對象模型的接口,以便在開發(fā)時能提供對對象模型組件的訪問。(如果這一句聽起來有點繞口,請再讀一遍。)例如,腳本編寫者應能在整個迭代周期中訪問類圖中類的集合,從而能夠通過類對象的accessor方法來訪問類的屬性。當然,腳本語言自身應該是面向?qū)ο蟮模灰粋€明顯的選擇就是Java語言本身,另一種選擇就是Python腳本語言。

    健壯性(Robustness) Top

    你的UML工具需要象巖石般堅固可靠,以防止設計期間工具崩潰而使用戶的時間和生產(chǎn)率在不知不覺中損失,或者在模型沒有備份的情況下崩潰。我們曾親眼見過許多領(lǐng)先的工具因為崩潰或文件損壞而引起數(shù)小時的工作成果丟失。如果你是一位開發(fā)人員,你知道那種因“生產(chǎn)率高的軟件”反而比粗糙的代碼工具生產(chǎn)率要低而產(chǎn)生的蔑視感覺。如果你是一位經(jīng)理,你會看到被要求使用一種不可靠的工具時開發(fā)人員的憤恨。

    今天,健壯性常被發(fā)現(xiàn)于用Java實現(xiàn)的應用程序(JVM運行時保護)或開放源碼的項目(在web范圍內(nèi)并行調(diào)試)。發(fā)現(xiàn)某種特定的UML工具是否健壯的最快方法是在comp.object等新聞組四處詢問,你一定會聽到許多抱怨的!

    可用于此處的另一個策略可以借鑒有效率的辦公應用程序,我們也推薦工具開發(fā)商采用這種策略。該策略就是讓UML工具每隔一定時間間隔就在背后自動保存模型。

    平臺 Top

    為了使你在建模工具上的投資得到最大回報,請慎重地考慮工具將運行在哪種平臺上。你需要為Windows還是Unix開發(fā)軟件?還是二者都要?將在哪種平臺上開發(fā)?

    最近的各種事件一起推翻了這個神話:一流的跨平臺圖形用戶界面還不能實現(xiàn)或者擁有一個"最少共同支配者"的視感。很長時間以來,這是不可能的(除了基于HTML的應用程序之外),直到最近Java的Swing用戶界面的出現(xiàn)。但是,跨平臺工具需要在Linux等常用平臺得到支持,以大規(guī)模地被程序員們采用。

    Sun最初幾乎沒有做什么事情來促進Java在Linux上的應用。但最近工業(yè)界元老們,主要是IBM,IBM保證在他們所有的硬件平臺上為Linux提供無限廣泛的支持,并支持Apache/Jakarta項目, IBM現(xiàn)正快速地在Linux上推廣Java。也許因為IBM已經(jīng)開始為主要的Linux廠商發(fā)放它的JDK 1.1.8版本,Sun被迫支持在Linux上的 全功能JDK 1.2 (帶Swing的Java2)的發(fā)放。通過Blackdown小組的努力,這個Linux上的Java端口大部分已被完成。

    迄今為止我們已經(jīng)測試了一種Linux平臺上基于Swing的領(lǐng)先Linux工具,結(jié)果優(yōu)秀。但要告誡的是:128M內(nèi)存是必需的。

    版本更新 Top

    你需要選擇一種將會不斷通過修正錯誤、改進性能、添加新特性來進行改進的建模工具,畢竟你在時間和金錢上進行了一項大的投資,而且改換到另一種建模工具并不容易。

    小心那些已經(jīng)被大公司擁有的產(chǎn)品。在兌現(xiàn)所有期權(quán)之后,最初的開發(fā)者常常會離開公司,尋找下一次大的機會。尋找有才能的、能讀懂維護最初并非由其編碼的軟件復雜模塊的程序員并不容易。這種場景也會出現(xiàn)在開放源碼項目上。

    如何能知道一種產(chǎn)品是否在改進?向銷售代表詢問下一版本發(fā)放的詳細時間表以及該產(chǎn)品將來的藍圖。密切觀察產(chǎn)品改進和添加新特性的速度。產(chǎn)品計劃什么時候支持UML 1.3?圖形界面是否支持最新的流行樣式?你也可以看看該公司的網(wǎng)站:如果產(chǎn)品發(fā)布和外界評論是舊的,就是可疑的。


    未來... Top

    現(xiàn)在我們來看看對未來有什么希望。建模工具的當前成熟程度表明,工具廠商準備通過添加高級特性來使產(chǎn)品達到新的高度。我們希望在下一代產(chǎn)品中看到以下特性的出現(xiàn)。

    集成編輯器 Top

    在模型的迭代開發(fā)過程中,將UML圖表和相鄰窗口的源代碼匹配,是非常有效率的。支持這種視圖協(xié)調(diào)的產(chǎn)品可以給模型設計者的工具箱添加一個額外的功能選項,以直接給建模工具添加強大的源代碼編輯特性。當建模工具不必作為設計者的首選編輯器時,能夠在代碼里直接更改方法的名字或原型,并立即反映到模型中。

    最想要的特性是類似emacs等流行編輯器的鍵盤仿真,另一個熱門特性是通過改變顏色來突出語言關(guān)鍵字,注釋等等,提高了代碼的易讀性。一個重要特性是在類圖中選擇一個類、屬性或方法時跳轉(zhuǎn)到匹配代碼行的能力。 最重要的是, 編輯器應該是快速易用的。

    作為變通的方法,另一種解決方案是允許建模工具和開發(fā)者喜愛的編輯器通信。例如,通過一個熱鍵,允許建模工具從當前活動窗口跳轉(zhuǎn)到伴隨編輯器的匹配代碼行。

    自動生成 Top

    我們真正想在不久的將來看到的一個特性是,建模工具幫助產(chǎn)生交互圖和狀態(tài)圖的能力。

    工作方式是:在一個已有的程序的執(zhí)行過程中,建模工具應容易生成一個追蹤文件,目的是獲取對象間互相傳遞信息時的交互。產(chǎn)生追蹤文件后,建模工具將被用于分析該追蹤文件,以發(fā)現(xiàn)對象交互的模式。建模工具應允許用戶從一組類中選擇一個來分析,然后展示被追蹤文件記錄的每個類唯一的一套交互,允許用戶為模型選擇交互。最后,工具應能夠產(chǎn)生一張基于真實記錄對象交互的順序或協(xié)作圖。

    很酷嗎?它并不象聽起來的那樣太過前衛(wèi)。因為追蹤技術(shù)已經(jīng)十分成功地應用在幫助開發(fā)人員追捕他們的程序中性能瓶頸的工具中。這類產(chǎn)品一個很好的例子就是KL Group的JProbe,用于分析Java程序的性能。

    使用同樣的技術(shù)自動產(chǎn)生狀態(tài)圖也是可能的。對以前描述過的順序的修改將允許用戶為狀態(tài)機里的狀態(tài)指定基類的名稱。建模工具將追蹤基類的衍生類之間的交互。從這種追蹤,建模工具能夠通過描繪每次被記錄的狀態(tài)遷移來創(chuàng)建狀態(tài)圖。

    管理工具 Top

    如果你是項目經(jīng)理中的一員,你最有可能想要能夠估量你的O-O項目進展如何。一個應被集成到建模工具中的很好的特性是能夠輸出模型信息到允許你追蹤項目設計和實現(xiàn)進程的工具中。由于它的通用性和可塑性,電子表格是實施這個解決方案的理想工具。項目管理工具也是理想的候選。

    這個特性如何工作呢?在高層次,通常你想追蹤的是模型中的類和負責在這些類上工作的的人。 你想知道什么時候有人開始在該類上工作,完成任務到了哪種水平。在下一層次的細節(jié)上,你想要知道每個類的方法。在這一層次,你可能想要知道哪種方法已經(jīng)包括在交互圖中,或在實施階段,每種方法完成了多少代碼量。

    要使這個特性起作用,你需要“敏捷”地更新你的項目管理信息。不象報表工具那樣總是從頭產(chǎn)生一個新報表,你只需要在第一次輸出所有東西。產(chǎn)生初始報表后,你的建模工具應該只被要求用新信息來修改你的管理工具。根據(jù)用戶需要控制的級別,建模工具能在輸出之前展現(xiàn)給用戶一個修改的清單。

    建立一個項目管理鏈接的一個美妙的好處是,提供把分析和設計階段的完成日期作為目標的能力。具體方法是通過計算進展速度,并基于完成模型所需的剩余的工作,使用這個速度來計算預期的完成日期。

    度量(Metrics) Top

    當你的項目開始成熟時,你可能需要知道你的模型的度量。度量能在一個特殊的模型的生存質(zhì)量上給面向?qū)ο蠓治鰡T一些即時的反饋。一些感興趣的度量包括:類層次中的超類數(shù)量,每個類中方法的數(shù)量,每個類中屬性的數(shù)量,get/set的數(shù)量,方法重載的數(shù)量,每個方法的代碼行數(shù),public、private和protected方法的百分比,每個類的耦合度(該類知道另外的類的數(shù)量),以及被注釋方法的百分數(shù)。

    度量可以通過一個報表界面提供,或者,更好的是,通過一個到電子表格的鏈接,類似于前面描述的項目管理鏈接。

    SVG: 矢量圖形 Top

    為達到真正的、標準化的矢量圖形輸出/輸入功能,UML工具廠商即將有一種選擇。W3C的可縮放矢量圖形(Scalable Vector Graphics, SVG)建議是可格式化圖形的一種XML語法,成熟的1.0版本規(guī)范已經(jīng)進展到“最后預覽”階段(3/3/2000)。一旦被完全認可,你可以留意HTML瀏覽器廠商什么時候在他們的下一代瀏覽器中提供支持。

    為什么是SVG?因為一套用這種矢量圖形格式輸出的UML圖表可以被鏈接到網(wǎng)頁上。“over the web”的UML設計文檔的讀者將能夠使用這種圖形瀏覽技術(shù),如在瀏覽器內(nèi)縮放和平移,來更輕松地瀏覽一張大的UML圖表。還有,和GIF格式圖形相比,這種格式將戲劇性地提高通過web加載大圖形的速度。請看今天Macromedia Flash的展示在瀏覽器中加載是如何之快,就可以證明這一點!

    為了強調(diào)GIF圖形和可縮放圖形在出版環(huán)境中的強烈差別,我們準備了一個模擬,通過創(chuàng)建包括兩個類圖實例的Adobe PDF文件,其中一張是輸入的GIF圖形,另一張是矢量圖形。你可以下載這個PDF文檔并在Adobe Acrobat中觀看。嘗試放大到很高的水平如800%或1600%,然后比較GIF圖形和矢量圖形的結(jié)果。這個實驗并非不切實際:你可能需要準備一張被縮放到一個可讀性提高的水平的演示圖。

    下載GIF和矢量圖形對比的PDF例子文件.

    為了展望UML和SVG的未來,我們也準備了一個使用SVG在瀏覽器中顯示類圖的演示。為了觀看這個演示,你必須首先為你的瀏覽器下載一個SVG察看器。我們推薦來自優(yōu)秀的Adobe SVG站點的插件。這樣你就可以觀看用SVG顯示的圖形模型演示。

    XMI: 把所有東西捆綁在一起 Top

    對UML開發(fā)團體來說,對象管理組織(OMG)的XMI標準是最近最令人振奮的進展。XMI是一種有潛力最終允許在領(lǐng)先的開發(fā)工具之間無縫共享模型的交換格式。例如,與其在UML建模工具中書寫腳本來創(chuàng)建報表,不如讓用戶簡單地在開發(fā)時使用XMI輸出該模型,然后引入到一種特定的報表書寫工具中。事實上,這個范例將平等地、很好地應用到前面討論過的特性:O-O度量追蹤和項目管理。此外,自從XMI使用XML來表示模型信息,一批XML解決方案很快會出籠,例如為基于瀏覽器表示提供的XSL格式表和為搜索兼容性提供的 XQL查詢工具。

    XMI標準是復雜的,在被廣泛使用之前,它將需要時間來適應許多不可避免的兼容性問題(誰說標準經(jīng)不起解釋?)。但是,既然XMI是由IBM和Unisys等領(lǐng)先的工業(yè)巨頭開發(fā)的,可以預期產(chǎn)品很快會出現(xiàn)。一直到用戶團體不斷要求廠商來驅(qū)動在UML工具中的XMI支持的需求。關(guān)于XMI的進一步信息,請看優(yōu)秀的IBM網(wǎng)頁

    作為XMI如何投入使用的例子,請看我們的項目, 轉(zhuǎn)換XMI到HTML. 這個項目展示了XSL格式表如何能被用來產(chǎn)生UML模型的HTML翻譯。

    讀者建議

    如果您對在清單中未列出的UML建模工具新特性有什么想法, 我們將很樂意聽到。

    謝謝曾經(jīng)把他們的UML工具評價標準Email給我們的讀者。他們的原始建議在這兒。

    posted on 2007-12-05 20:48 flyepp 閱讀(243) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲三区在线观看无套内射| 亚洲精品国产手机| 久久久高清日本道免费观看| 4480yy私人影院亚洲| 最近的中文字幕大全免费版| 一级毛片免费在线观看网站| 亚洲国产综合精品中文第一区| 天堂在线免费观看中文版| eeuss免费影院| 国产成人精品日本亚洲专| 国产亚洲午夜高清国产拍精品| 亚洲免费二区三区| 一级全免费视频播放| 亚洲喷奶水中文字幕电影| 亚洲精品国自产拍在线观看| 毛片免费全部播放无码| 一区免费在线观看| 33333在线亚洲| 亚洲国产精品一区第二页 | 一个人看的www在线免费视频 | 国产精品视频白浆免费视频| 亚洲欧美日韩中文高清www777| 亚洲成色WWW久久网站| 国产精品冒白浆免费视频| 免费人妻无码不卡中文字幕系| 国产亚洲美女精品久久久久| 亚洲欧洲中文日产| 国产亚洲真人做受在线观看| 无码国模国产在线观看免费| 免费看h片的网站| 人妻免费一区二区三区最新| 国产青草亚洲香蕉精品久久| 亚洲免费福利视频| 亚洲av中文无码乱人伦在线播放 | 亚洲va在线va天堂va不卡下载| mm1313亚洲国产精品美女| 最近中文字幕免费mv视频7| 久久青草免费91线频观看站街| 尤物视频在线免费观看| 亚洲风情亚Aⅴ在线发布| 亚洲国产美女视频|