电竞比分网-中国电竞赛事及体育赛事平台

分享

EA教程(UML)

 樂(lè)自垂簾 2011-12-21
EA教程(UML)
2011-03-23 17:34

一、Enterprise Architect簡(jiǎn)介

Enterprise Architect是一個(gè)對(duì)于軟件系統(tǒng)開(kāi)發(fā)有著極好支持的CASE軟件(Computer Aided Software Engineering)。EA不同于普通的UML畫圖工具(如VISIO),它將支撐系統(tǒng)開(kāi)發(fā)的全過(guò)程。在需求分析階段,系統(tǒng)分析與設(shè)計(jì)階段,系統(tǒng)開(kāi)發(fā) 及部署等方面有著強(qiáng)大的支持,同時(shí)加上對(duì)10種編程語(yǔ)言的正反向工程,項(xiàng)目管理,文檔生成,數(shù)據(jù)建模等方面??梢宰屜到y(tǒng)開(kāi)發(fā)中各個(gè)角色都獲得最好的開(kāi)發(fā)效 率。

二、創(chuàng)建新項(xiàng)目

安裝好了EA漢化版后,啟動(dòng)軟件。點(diǎn)擊“創(chuàng)建新的項(xiàng)目”,打開(kāi)創(chuàng)建新項(xiàng)目對(duì)話框。


【圖1】

這里可以選擇各種的初始的模板包。


【圖2】

我們選擇了其中幾個(gè),然后確定打開(kāi)了項(xiàng)目瀏覽器。我們的項(xiàng)目將從這里開(kāi)始了。


【圖3】

三、EA軟件配置

在使用軟件之前,我們先來(lái)對(duì)它進(jìn)行配置。打開(kāi)“工具”–>“選項(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,那么生成的代碼也是有些不同的。還可以隱藏其他沒(méi)有用到的語(yǔ)言。

四、用例圖,類圖的使用

用例圖(use case)

用例圖是我們做系統(tǒng)分析的通常第一步,是非常重要的。畢竟大部分的開(kāi)發(fā)流程,都將需求分析作為首要步驟,也是必要步驟。將系統(tǒng)需求化作圖型表達(dá)出來(lái)。首先是在項(xiàng)目瀏覽器中,右鍵“添加”–>“新建圖表”。

【圖5】

然后可以加入一些角色和用例,在每次在工具箱里面拉出一個(gè)元件,都將打開(kāi)這個(gè)元件的設(shè)置對(duì)話框,在對(duì)話框內(nèi)填入元件的名稱等信息。現(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ū)別是“包含”是主用例 沒(méi)有包含其他的輔助用例就不能獨(dú)立執(zhí)行,但是主用例可以在沒(méi)有“擴(kuò)展”其他輔助用例的情況也可以執(zhí)行。比如說(shuō),注冊(cè)是“包含”了檢查驗(yàn)證碼,但是不一定會(huì) “擴(kuò)展”發(fā)送通知郵件這個(gè)用例。

角色是用例圖的行為基礎(chǔ)。雖然角色可以是某種職位的人,或是數(shù)據(jù)庫(kù),或是外部系統(tǒng)交互接口,但是每個(gè)用例圖,都是以角色為開(kāi)始的。角色可以有類屬關(guān) 系。比如說(shuō)注冊(cè)用戶同時(shí)也是網(wǎng)站訪問(wèn)者,注冊(cè)用戶可以做一切訪問(wèn)者可以做的事情,但是注冊(cè)用戶還擁有一些網(wǎng)站訪問(wèn)者沒(méi)有涉及的功能,比如登錄發(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代碼”,打開(kāi)生成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)入源文件目錄”,打開(kāi)反向工程對(duì)話框:

【圖19】

設(shè)置好后,點(diǎn)擊導(dǎo)入。一小段時(shí)間,就能將一個(gè)類庫(kù)導(dǎo)入了。以下演示的是導(dǎo)入SpeedPHP框架1.5版本的類圖。

【圖20】

九、項(xiàng)目管理

在EA中,不僅能對(duì)整個(gè)軟件開(kāi)發(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文檔”,打開(kāi)生成文檔對(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)生自定義的文檔。

十一、其他功能

EA還提供了針對(duì)EA項(xiàng)目本身的版本控制(包括SVN,VSS等),一個(gè)小型的交流論壇,還有許多很有用的功能。這里不一一講述。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多