Enterprise Architect12中文版是一款計(jì)算機(jī)輔助軟件工程,這款軟件用于設(shè)計(jì)和構(gòu)建軟件系統(tǒng)、業(yè)務(wù)流程建模及更多通用的建模。EA不同于普通的UML畫圖工具(如VISIO),它將支撐系統(tǒng)開發(fā)的全過(guò)程。在需求分析階段,系統(tǒng)分析與設(shè)計(jì)階段,系統(tǒng)開發(fā)及部署等方面有著強(qiáng)大的支持,同時(shí)加上對(duì)10種編程語(yǔ)言的正反向工程,項(xiàng)目管理,文檔生成,數(shù)據(jù)建模等方面。可以讓系統(tǒng)開發(fā)中各個(gè)角色都獲得最好的開發(fā)效率。
軟件特色:
1.UML建模--支持UML2.1
2.代碼工程--按圖生成代碼,導(dǎo)入原有的代碼成為UML圖
3.項(xiàng)目管理程序--包括項(xiàng)目計(jì)劃,任務(wù)進(jìn)度,問題集等
4.文檔生成和模板--可使用文字翻譯替換和自定義的模板為不同的項(xiàng)目打造最適合的文檔類型
5.數(shù)據(jù)庫(kù)建模--可從ODBC導(dǎo)入數(shù)據(jù)源結(jié)構(gòu),并進(jìn)行ER圖的編輯,還可生成建表的SQL語(yǔ)句
6.代碼編輯、調(diào)試和運(yùn)行--加入編譯腳本,就可以把EA當(dāng)作IDE來(lái)使用版本控制,聯(lián)機(jī)討論,局域網(wǎng)協(xié)同開發(fā)等功能。
使用教程:
安裝好了EA漢化版后,啟動(dòng)軟件。點(diǎn)擊“創(chuàng)建新的項(xiàng)目”,打開創(chuàng)建新項(xiàng)目對(duì)話框。
【圖1】
這里可以選擇各種的初始的模板包。
【圖2】
我們選擇了其中幾個(gè),然后確定打開了項(xiàng)目瀏覽器。我們的項(xiàng)目將從這里開始了。
【圖3】
EA軟件配置
在使用軟件之前,我們先來(lái)對(duì)它進(jìn)行配置。打開“工具”–>“選項(xiàng)”。
【圖4】
常規(guī)配置中,比較重要的是作者這項(xiàng)。因?yàn)樵贓A項(xiàng)目的團(tuán)隊(duì)協(xié)作中,作者是每個(gè)人的身份標(biāo)識(shí)。
在代碼工程中,最好把文件編碼設(shè)置成UTF8或者是GB中文。
其他方面的配置,因?yàn)槎际侵形牡,也比較容易理解。有些不明的地方,可以多琢磨。
另外對(duì)于最下面的十種編程語(yǔ)言,可以根據(jù)自己的需要,進(jìn)行一些配置。比如PHP,可以配置PHP4或者是PHP5,那么生成的代碼也是有些不同的。還可以隱藏其他沒有用到的語(yǔ)言。
用例圖,類圖的使用
用例圖(use case)
用例圖是我們做系統(tǒng)分析的通常第一步,是非常重要的。畢竟大部分的開發(fā)流程,都將需求分析作為首要步驟,也是必要步驟。將系統(tǒng)需求化作圖型表達(dá)出來(lái)。首先是在項(xiàng)目瀏覽器中,右鍵“添加”–>“新建圖表”。
【圖5】
然后可以加入一些角色和用例,在每次在工具箱里面拉出一個(gè)元件,都將打開這個(gè)元件的設(shè)置對(duì)話框,在對(duì)話框內(nèi)填入元件的名稱等信息,F(xiàn)在我們是表達(dá)一個(gè)用戶注冊(cè)和登錄的場(chǎng)景:
【圖6】
加入關(guān)聯(lián),用例圖中最常用的關(guān)聯(lián)是“使用use”,當(dāng)然也經(jīng)常會(huì)用到“包含include”“擴(kuò)展extend”。這兩者的區(qū)別是“包含”是主用例沒有包含其他的輔助用例就不能獨(dú)立執(zhí)行,但是主用例可以在沒有“擴(kuò)展”其他輔助用例的情況也可以執(zhí)行。比如說(shuō),注冊(cè)是“包含”了檢查驗(yàn)證碼,但是不一定會(huì)“擴(kuò)展”發(fā)送通知郵件這個(gè)用例。
角色是用例圖的行為基礎(chǔ)。雖然角色可以是某種職位的人,或是數(shù)據(jù)庫(kù),或是外部系統(tǒng)交互接口,但是每個(gè)用例圖,都是以角色為開始的。角色可以有類屬關(guān)系。比如說(shuō)注冊(cè)用戶同時(shí)也是網(wǎng)站訪問者,注冊(cè)用戶可以做一切訪問者可以做的事情,但是注冊(cè)用戶還擁有一些網(wǎng)站訪問者沒有涉及的功能,比如登錄發(fā)文章之類。
【圖7】
類圖(Class)
類圖是代碼工程的基礎(chǔ),同時(shí)也是系統(tǒng)設(shè)計(jì)部分的主體工作。類圖主要體現(xiàn)了系統(tǒng)詳細(xì)的實(shí)現(xiàn)架構(gòu)。首先我們來(lái)制作一個(gè)實(shí)現(xiàn)用戶注冊(cè)功能的注冊(cè)業(yè)務(wù)類。
【圖7】
在生成類后,我們可以加入一些變量(在類元件上右鍵“變量”),變量主要將保存類本身的一些數(shù)據(jù),如同人的性別,年齡等數(shù)據(jù)特征一樣。比如我們注冊(cè)類,也有數(shù)據(jù)鏈接的變量(它需要知道自己是和哪個(gè)數(shù)據(jù)庫(kù)打交道的),還可能有著每IP單日注冊(cè)數(shù)量限制的數(shù)據(jù)變量等等。
【圖8】
類還需要加入方法(在類元件上右鍵“方法”),比如說(shuō)注冊(cè)類中,需要檢查輸入的驗(yàn)證碼,需要進(jìn)行數(shù)據(jù)操作,需要檢查單日注冊(cè)數(shù)量等等。在類的方法里面,我們還可以設(shè)置每個(gè)方法的參數(shù),參數(shù)類型,還有參數(shù)的備注,這將在代碼工程內(nèi),直接作為參數(shù)和方法的注釋生成到代碼文件內(nèi)。
【圖9】
各個(gè)類之間,可能存在著一些關(guān)系,那么我們使用關(guān)聯(lián)來(lái)表達(dá)這些關(guān)系。常用的有繼承關(guān)系(Generalize,或者叫派生類)。例如注冊(cè)的時(shí)候,我們可能有些特殊的注冊(cè)方式,比如接收了VIP卡號(hào)的人員注冊(cè)。VIP注冊(cè)比普通注冊(cè)多了一些步驟,比如驗(yàn)證VIP卡號(hào)有效性等。這個(gè)VIP注冊(cè)類,就繼承于注冊(cè)類,擁有了全部普通注冊(cè)的功能,但是又有一些自己特有的功能,這樣就能體現(xiàn)了代碼的可重用性。同時(shí)在代碼生成的時(shí)候,會(huì)加上“extends”這個(gè)關(guān)鍵字來(lái)標(biāo)識(shí)他們的關(guān)系。
【圖10】
其他圖形的使用
【圖11】
對(duì)象圖(Object),這是類圖的一種補(bǔ)充,主要是演示了系統(tǒng)中各個(gè)類,在不同的場(chǎng)景中,實(shí)例化之后所做的不同事情。
交互圖(interaction),協(xié)作圖(communication)和時(shí)序圖(Timing),他們都是體現(xiàn)了系統(tǒng)中一些實(shí)體之間的互相交互的行為。協(xié)作圖是側(cè)重與表達(dá)實(shí)體之間的協(xié)作交互,在新版的UML中,協(xié)作圖也叫通訊圖,更能體現(xiàn)了實(shí)體之間是以通訊的方式來(lái)進(jìn)行協(xié)作的原理。而時(shí)序圖是強(qiáng)調(diào)了各個(gè)實(shí)體件進(jìn)行交互的前后順序。例如發(fā)送注冊(cè)成功的提示郵件,那么是發(fā)生在注冊(cè)類檢驗(yàn)輸入數(shù)據(jù)之后,而不能是之前。
另外,還有一些其他的圖形,比如狀態(tài)圖(State),部署圖(Deployment),組件圖(component),活動(dòng)圖(Activity),這些請(qǐng)參考相關(guān)文檔。同時(shí)EA支持的圖形有非常的多,其中思維圖(表達(dá)和輔助了思維的思考過(guò)程),WEB模型圖(表現(xiàn)了網(wǎng)站上部署的模型結(jié)構(gòu))是最近幾個(gè)版本中才出現(xiàn)的。
數(shù)據(jù)建模
在數(shù)據(jù)模型圖(Data Modeling)中,EA支持13種不同型號(hào)的數(shù)據(jù)庫(kù)建模,可直接生成建表SQL語(yǔ)句,同時(shí)也可以通過(guò)ODBC,導(dǎo)入已存在的數(shù)據(jù)表結(jié)構(gòu)。
【圖12】
下例我們建立一個(gè)學(xué)生宿舍人員組成的數(shù)據(jù)表,表類型使用的是MySQL。首先是建立了一個(gè)數(shù)據(jù)表元件,然后設(shè)置它的屬性。
【圖13】
加入字段(表元件上右鍵“變量”),設(shè)置字段的數(shù)據(jù)類型,長(zhǎng)度,設(shè)成主鍵等。這里可以使用中文作為字段名,在“別名”處才寫上英文字段名,在生成SQL的時(shí)候,選擇“使用可用的別名”就可以生成英文名稱的字段名。
【圖14】
生成建表SQL,點(diǎn)擊數(shù)據(jù)模型的上級(jí)包,然后選擇“項(xiàng)目”–》“數(shù)據(jù)建!报C》“生成SQL代碼”,打開生成SQL的對(duì)話框。
【圖15】
設(shè)置好了后,點(diǎn)擊生成,就可以生成了一個(gè)完整的SQL建表語(yǔ)句了。
【圖16】
代碼工程
代碼工程就是將已經(jīng)畫好的類圖,使用EA來(lái)生成相應(yīng)的代碼結(jié)構(gòu),之所以說(shuō)是代碼結(jié)構(gòu),是因?yàn)樯傻拇a中,僅有初始的類結(jié)構(gòu)和一些預(yù)設(shè)的值,類方法內(nèi)部的代碼還是需要手動(dòng)去寫的。另外,如果你在類的設(shè)置里,或者是變量,方法還有方法的參數(shù)里,加上了備注,那么,代碼工具將會(huì)幫助你把這些備注全部生成工整的代碼注釋。
使用之前的一個(gè)PHP類,選中右鍵“生成代碼”。然后彈出生成代碼的對(duì)話框。
【圖17】
設(shè)置后,點(diǎn)擊生成就可以生成了代碼結(jié)構(gòu)了。
【圖18】
其他語(yǔ)言的代碼生成過(guò)程,也是大同小異的。代碼工程(正向工程)產(chǎn)生的代碼格式,可以在“設(shè)置”–>“代碼工程模板”里面進(jìn)行自定義的模板修改。
反向工程
反向工程是將原有的類庫(kù)代碼,使用EA進(jìn)入導(dǎo)入類結(jié)構(gòu),直接生成類圖。這在系統(tǒng)重構(gòu),或者是基于舊項(xiàng)目類庫(kù)制作新項(xiàng)目的時(shí)候,比較有用。
在項(xiàng)目瀏覽器,你要導(dǎo)入反向工程類圖的位置,右鍵“代碼工程”–> “導(dǎo)入源文件目錄”,打開反向工程對(duì)話框:
【圖19】
設(shè)置好后,點(diǎn)擊導(dǎo)入。一小段時(shí)間,就能將一個(gè)類庫(kù)導(dǎo)入了。以下演示的是導(dǎo)入SpeedPHP框架1.5版本的類圖。
【圖20】
項(xiàng)目管理
在EA中,不僅能對(duì)整個(gè)軟件開發(fā)生命周期的支持,還提供了項(xiàng)目管理,例如人員的管理,進(jìn)度管理,風(fēng)險(xiǎn)管理等。
菜單“查看”–>“項(xiàng)目管理”
【圖21】
這里你可以分別管理“(人力)資源”,“工作”,“風(fēng)險(xiǎn)”,“度量”等幾個(gè)方面。
文檔生成
EA可以生成非常多種類型的文檔,以方便針對(duì)不同情況和不同閱讀對(duì)象,生成不同側(cè)重的文檔。還可以有RTF格式和HTML格式的選擇。
在項(xiàng)目瀏覽器中,選擇一個(gè)模型節(jié)點(diǎn)。然后右鍵“文檔”–>“RTF文檔”,打開生成文檔對(duì)話框。
【圖22】
這里可以生成多種類型的文檔。點(diǎn)擊“生成”。然后就會(huì)生成了一個(gè)RTF文件。
【圖23】
默認(rèn)生成的文檔,里面有大部分的英文。當(dāng)然,你可以將他們?cè)赗TF文件中改寫成中文。另外還可以使用生成文檔對(duì)話框中的“詞語(yǔ)翻譯”,來(lái)進(jìn)行對(duì)應(yīng)的翻譯,再生成新的翻譯后的文檔。同時(shí)你也可以直接修改EA中的文檔模板,這樣也可以產(chǎn)生自定義的文檔。