西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → Architexa簡介:讓UML變得簡單、快速

Architexa簡介:讓UML變得簡單、快速

相關(guān)文章發(fā)表評論 來源:本站整理時間:2010/6/20 16:47:20字體大�。�A-A+

作者:佚名點擊:310次評論:1次標(biāo)簽: UML

BOUML(編程代碼工具)V4.22.1 官方免費版
  • 類型:編程工具大�。�7.0M語言:英文 評分:8.5
  • 標(biāo)簽:
立即下載

Architexa是個全新的基于Eclipse的UML建模工具,開發(fā)人員可以憑借Architexa的UML圖快速洞悉代碼之間的關(guān)系并與他人共享這些內(nèi)容。之所以能快速探測代碼基,關(guān)鍵在于Architexa為開發(fā)者提供了3種熟悉的圖表類型(層次圖、類圖與序列圖),隨著開發(fā)人員對代碼基理解的不斷深入,他們可以在Architexa的幫助下構(gòu)建代碼之間關(guān)系和粒度。

最近有幸采訪到了Architexa的創(chuàng)建者Vineet Sinha以深入了解該工具,同時明晰了它為何能幫助開發(fā)者處理日益膨脹的代碼基。

Architexa是如何在其他UML工具欠缺的地方幫助開發(fā)者的?

我們將精力放在了代碼需求而非設(shè)計需求上,希望能幫助開發(fā)者更快地理解代碼,理解好相關(guān)的任務(wù)、相關(guān)的文檔并能輕松地討論這些重要的代碼概念,然后與同伴分享這一切。
在一開始探索代碼基時可以使用層次圖這一強大的工具。能否向讀者做個簡單的介紹?這個想法來自于現(xiàn)有的工作還是經(jīng)過了不斷的演變才得出的?你是如何想到它的呢?

Architexa中的層次圖會根據(jù)現(xiàn)有的代碼基作出最接近于層次架構(gòu)圖的估算。我們注意到大多數(shù)層次架構(gòu)圖都是團隊或項目所用的高層次圖表的主要形式,通常不太容易從眾多的代碼基中找出層次架構(gòu)圖的蹤跡。如果這類圖可以幫助開發(fā)者找到他們最感興趣的部分代碼基,我們打算快速實現(xiàn)一個版本以滿足開發(fā)者所需。
Architexa通過分析代碼并展示模塊來構(gòu)建層次架構(gòu)圖,如果某個模塊依賴于另一個模塊,那么就會將它放在圖表的上面。除此之外,我們還需要猜——默認(rèn)情況下,模塊基本上是根據(jù)代碼基的目錄結(jié)構(gòu)創(chuàng)建的。而且,大多數(shù)代碼基經(jīng)常包含循環(huán),我們使用了復(fù)雜的算法來處理這種循環(huán),但依然能保證提供高效的層次圖。
大多數(shù)工具套件都是我在MIT(CSAIL)讀博士時嘗試并開發(fā)的,我們想要的是一個卓越的工具。主要的想法來自于很多地方:我在下面這些地方花了大量的時間: (i)閱讀了多個項目的軟件文檔以了解共通的東西,(ii)分析了目前提供有效的代碼視圖的工具:雖然這些工具都非常復(fù)雜并且需要培訓(xùn),但他們各有千秋,我們可以從中了解到這些工具常見的使用模式,這樣就能通過幾次鼠標(biāo)點擊來簡化工具的使用了,(iii)典型的樹形widget,通常他們都會收起并顯示大量信息,(iv)大量優(yōu)秀的工具,以便從中找到適合我們的圖表的技術(shù)。
在構(gòu)建好了第一個原型后,我們發(fā)現(xiàn)了很多問題。雖說實現(xiàn)了大多數(shù)主要的想法,但我們意識到了真實世界中的問題(代碼經(jīng)常有循環(huán)),我們開發(fā)這些技術(shù)不僅是為了解決這些問題(通過層次來忽略掉一些代碼循環(huán)),更是為了減輕用戶的負(fù)擔(dān),這樣他們就能輕松處理問題了(用戶可以根據(jù)這種循環(huán)依賴進行擴展、使用彩色高亮顯示當(dāng)前模塊之上、使用了當(dāng)前模塊以及與當(dāng)前模塊之間存在循環(huán)的模塊)。
用戶可以借助于Architexa白手起家,無需對代碼基有任何了解就能起步并不斷探索。在探索代碼基時你發(fā)現(xiàn)了自己的使用模式了么?你是如何在每天的開發(fā)/設(shè)計工作中使用這個工具的?

我們發(fā)現(xiàn)了大量的使用模式并積極地探求這些模式來不斷提升工具的品質(zhì)。但大多數(shù)使用模式還是取決于用戶所要完成的任務(wù):
如果開始查看項目(或是項目的一部分),用戶通常都需要高層次視圖,在這種情況下,他們會使用層次架構(gòu)視圖從上開始,然后雙擊視圖深入到代碼內(nèi)部。
如果想要查看項目(或是子項目)的核心,用戶通常都需要了解多個類之間的交互關(guān)系,因此想要看到多種關(guān)系圖(繼承、方法調(diào)用、屬性訪問等等),他們尤其喜歡使用類圖。
如果想要了解一個重要的用例,用戶則需要看到控制流程,在這種情況下,序列圖是個不錯的選擇。
有沒有什么辦法可以比較現(xiàn)有的圖表和改變后的代碼基呢?

在代碼基發(fā)生變化時,圖表的使用有多種可能。我們支持兩種用例:
在用戶創(chuàng)建好圖表后又修改了代碼基時:如果再一次打開圖表就會看到一個紅色的錯誤標(biāo)識,標(biāo)識類/關(guān)系缺失。
在用戶修改完代碼基后又想創(chuàng)建圖表時:用戶可以右鍵單擊項目,轉(zhuǎn)到team菜單并讓Architexa根據(jù)變更構(gòu)建一個新圖表而非檢入代碼。這么做的好處在于可以考慮到代碼評審問題,因為生成的圖表通常都是修改后功能的最好總結(jié)。
我們還會在這個地方增加更多支持。
手工生成圖表是探索代碼基的好辦法,但在構(gòu)建過程中自動生成(類似于JavaDoc)則可以更好地描繪系統(tǒng)的演變過程。Architexa也能實現(xiàn)該功能么?

重要的圖表通常會跨越多個類,每個重要的類也會跨越多個圖表,因此把他們放到JavaDoc中沒什么意義。我們允許用戶將圖表上傳到一臺簡單的類似于wiki的服務(wù)器上。這樣,用戶不僅可以與其他人共享這些圖片(只需使用瀏覽器即可),還使得我們可以增加額外的信息,這樣使用Architexa客戶端的其他用戶就可以繼續(xù)探索其他人寫的代碼了。這些圖表代表了代碼基中的重要概念,因此他們不僅支持用戶添加注釋,還可以在不同的地方嵌入這些圖表,還有版本的概念,這樣就能反映出主要概念的演變過程了。我們還會在這個地方增加更多支持。
該工具目前支持哪些語言?

此次發(fā)布只支持Java,但我們還有C++原型。
該工具是否有助于說明組件以及核心類的交互呢(比如說MVC/Web框架交互)?

當(dāng)然了。該套件的目標(biāo)就是展示代碼中顯露出來的關(guān)系(方法調(diào)用、繼承等等)和運行時出現(xiàn)的關(guān)系(對接口或基類的調(diào)用)。我們通過靜態(tài)關(guān)系實現(xiàn)這一點,但允許用戶以任何可行的方式修改圖表。
能否說說第一版中尚未包含但即將發(fā)布的特性,讀者對此可能很有興趣?

此次發(fā)布包含了大量的特性。雖然我們實現(xiàn)了很多特性,但目前主要的目標(biāo)還是傾聽用戶的想法。

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(1)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)