Enterprise Architect是一個對於軟件系統開發有着極好支持的CASE軟件(Computer Aided Software Engineering)。EA不一樣於普通的UML畫圖工具(如VISIO),它將支撐系統開發的全過程。在需求分析階段,系統分析與設計階段,系統開發及部署等方面有着強大的支持,同時加上對10種編程語言的正反向工程,項目管理,文檔生成,數據建模等方面。可讓系統開發中各個角色都得到最好的開發效率。數據庫
2、建立新項目編程
安裝好了EA漢化版後,啓動軟件。點擊「建立新的項目」,打開建立新項目對話框。瀏覽器
【圖1】架構
這裏能夠選擇各類的初始的模板包。框架
【圖2】編程語言
咱們選擇了其中幾個,而後肯定打開了項目瀏覽器。咱們的項目將從這裏開始了。ide
【圖3】工具
3、EA軟件配置網站
在使用軟件以前,咱們先來對它進行配置。打開「工具」–>「選項」。編碼
【圖4】
常規配置中,比較重要的是做者這項。由於在EA項目的團隊協做中,做者是每一個人的身份標識。
在代碼工程中,最好把文件編碼設置成UTF8或者是GB中文。
其餘方面的配置,由於都是中文的,也比較容易理解。有些不明的地方,能夠多琢磨。
另外對於最下面的十種編程語言,能夠根據本身的須要,進行一些配置。好比PHP,能夠配置PHP4或者是PHP5,那麼生成的代碼也是有些不一樣的。還能夠隱藏其餘沒有用到的語言。
4、用例圖,類圖的使用
用例圖(use case)
用例圖是咱們作系統分析的一般第一步,是很是重要的。畢竟大部分的開發流程,都將需求分析做爲首要步驟,也是必要步驟。將系統需求化做圖型表達出來。首先是在項目瀏覽器中,右鍵「添加」–>「新建圖表」。
【圖5】
而後能夠加入一些角色和用例,在每次在工具箱裏面拉出一個元件,都將打開這個元件的設置對話框,在對話框內填入元件的名稱等信息。如今咱們是表達一個用戶註冊和登陸的場景:
【圖6】
加入關聯,用例圖中最經常使用的關聯是「使用use」,固然也常常會用到「包含include」「擴展extend」。這二者的區別是「包含」是主用例沒有包含其餘的輔助用例就不能獨立執行,可是主用例能夠在沒有「擴展」其餘輔助用例的狀況也能夠執行。好比說,註冊是「包含」了檢查驗證碼,可是不必定會「擴展」發送通知郵件這個用例。
角色是用例圖的行爲基礎。雖然角色能夠是某種職位的人,或是數據庫,或是外部系統交互接口,可是每一個用例圖,都是以角色爲開始的。角色能夠有類屬關係。好比說註冊用戶同時也是網站訪問者,註冊用戶能夠作一切訪問者能夠作的事情,可是註冊用戶還擁有一些網站訪問者沒有涉及的功能,好比登陸發文章之類。
【圖7】
類圖(Class)
類圖是代碼工程的基礎,同時也是系統設計部分的主體工做。類圖主要體現了系統詳細的實現架構。首先咱們來製做一個實現用戶註冊功能的註冊業務類。
【圖7】
在生成類後,咱們能夠加入一些變量(在類元件上右鍵「變量」),變量主要將保存類自己的一些數據,如同人的性別,年齡等數據特徵同樣。好比咱們註冊類,也有數據連接的變量(它須要知道本身是和哪一個數據庫打交道的),還可能有着每IP單日註冊數量限制的數據變量等等。
【圖8】
類還須要加入方法(在類元件上右鍵「方法」),好比說註冊類中,須要檢查輸入的驗證碼,須要進行數據操做,須要檢查單日註冊數量等等。在類的方法裏面,咱們還能夠設置每一個方法的參數,參數類型,還有參數的備註,這將在代碼工程內,直接做爲參數和方法的註釋生成到代碼文件內。
【圖9】
各個類之間,可能存在着一些關係,那麼咱們使用關聯來表達這些關係。經常使用的有繼承關係(Generalize,或者叫派生類)。例如註冊的時候,咱們可能有些特殊的註冊方式,好比接收了VIP卡號的人員註冊。VIP註冊比普通註冊多了一些步驟,好比驗證VIP卡號有效性等。這個VIP註冊類,就繼承於註冊類,擁有了所有普通註冊的功能,可是又有一些本身特有的功能,這樣就能體現了代碼的可重用性。同時在代碼生成的時候,會加上「extends」這個關鍵字來標識他們的關係。
【圖10】
5、其餘圖形的使用
【圖11】
對象圖(Object),這是類圖的一種補充,主要是演示了系統中各個類,在不一樣的場景中,實例化以後所作的不一樣事情。
交互圖(interaction),協做圖(communication)和時序圖(Timing),他們都是體現了系統中一些實體之間的互相交互的行爲。協做圖是側重與表達實體之間的協做交互,在新版的UML中,協做圖也叫通信圖,更能體現了實體之間是以通信的方式來進行協做的原理。而時序圖是強調了各個實體件進行交互的先後順序。例如發送註冊成功的提示郵件,那麼是發生在註冊類檢驗輸入數據以後,而不能是以前。
另外,還有一些其餘的圖形,好比狀態圖(State),部署圖(Deployment),組件圖(component),活動圖(Activity),這些請參考相關文檔。同時EA支持的圖形有很是的多,其中思惟圖(表達和輔助了思惟的思考過程),WEB模型圖(表現了網站上部署的模型結構)是最近幾個版本中才出現的。
6、數據建模
在數據模型圖(Data Modeling)中,EA支持13種不一樣型號的數據庫建模,可直接生成建表SQL語句,同時也能夠經過ODBC,導入已存在的數據表結構。
【圖12】
下例咱們創建一個學生宿舍人員組成的數據表,表類型使用的是MySQL。首先是創建了一個數據表元件,而後設置它的屬性。
【圖13】
加入字段(表元件上右鍵「變量」),設置字段的數據類型,長度,設成主鍵等。這裏可使用中文做爲字段名,在「別名」處才寫上英文字段名,在生成SQL的時候,選擇「使用可用的別名」就能夠生成英文名稱的字段名。
【圖14】
生成建表SQL,點擊數據模型的上級包,而後選擇「項目」–》「數據建模」–》「生成SQL代碼」,打開生成SQL的對話框。
【圖15】
設置好了後,點擊生成,就能夠生成了一個完整的SQL建表語句了。
【圖16】
7、代碼工程
代碼工程就是將已經畫好的類圖,使用EA來生成相應的代碼結構,之因此說是代碼結構,是由於生成的代碼中,僅有初始的類結構和一些預設的值,類方法內部的代碼仍是須要手動去寫的。另外,若是你在類的設置裏,或者是變量,方法還有方法的參數裏,加上了備註,那麼,代碼工具將會幫助你把這些備註所有生成工整的代碼註釋。
使用以前的一個PHP類,選中右鍵「生成代碼」。而後彈出生成代碼的對話框。
【圖17】
設置後,點擊生成就能夠生成了代碼結構了。
【圖18】
其餘語言的代碼生成過程,也是大同小異的。代碼工程(正向工程)產生的代碼格式,能夠在「設置」–>「代碼工程模板」裏面進行自定義的模板修改。
8、反向工程
反向工程是將原有的類庫代碼,使用EA進入導入類結構,直接生成類圖。這在系統重構,或者是基於舊項目類庫製做新項目的時候,比較有用。
在項目瀏覽器,你要導入反向工程類圖的位置,右鍵「代碼工程」–> 「導入源文件目錄」,打開反向工程對話框:
【圖19】
設置好後,點擊導入。一小段時間,就能將一個類庫導入了。如下演示的是導入SpeedPHP框架1.5版本的類圖。
【圖20】
9、項目管理
在EA中,不只能對整個軟件開發生命週期的支持,還提供了項目管理,例如人員的管理,進度管理,風險管理等。
菜單「查看」–>「項目管理」
【圖21】
這裏你能夠分別管理「(人力)資源」,「工做」,「風險」,「度量」等幾個方面。
10、文檔生成
EA能夠生成很是多種類型的文檔,以方便針對不一樣狀況和不一樣閱讀對象,生成不一樣側重的文檔。還能夠有RTF格式和HTML格式的選擇。
在項目瀏覽器中,選擇一個模型節點。而後右鍵「文檔」–>「RTF文檔」,打開生成文檔對話框。
【圖22】
這裏能夠生成多種類型的文檔。點擊「生成」。而後就會生成了一個RTF文件。
【圖23】
默認生成的文檔,裏面有大部分的英文。固然,你能夠將他們在RTF文件中改寫成中文。另外還可使用生成文檔對話框中的「詞語翻譯」,來進行對應的翻譯,再生成新的翻譯後的文檔。同時你也能夠直接修改EA中的文檔模板,這樣也能夠產生自定義的文檔。