轉貼 MM(ModelMaker)建模工具快速上手指南delphi

 

 
MM(ModelMaker)兩小時上手指南
作者:郭方明
完成日期:2005-12-06 version 1.0
聯繫信箱:[email protected]
注:轉載文章,請註明作者信息。
關鍵字:ModelMaker上手指南 Delphi建模工具 CASE工具
引文:
本文通過一個簡單的例子介紹使用MM(ModelMaker)設計類圖和生成Delphi代碼,以及代碼逆向同步的過
程;讓你在最短的時間內上手MM。 編寫本文使用的是ModelMaker 7,不能保證文章內容適合所有版本。
誰需要閱讀本文:
.. 剛接觸MM 需要掌握其基本操作方法。
.. 使用Delphi 語言想要學習UML 建模的初學者。
第 1 頁 共 6 頁

 
目 錄
MM 簡介....................................................................................................................................................... 3
1、MM可愛的臉......................................................................................................................................... 3
2、MM中的工程(PROJECT) ...................................................................................................................... 3
3、新建類圖............................................................................................................................................. 4
4、添加類成員......................................................................................................................................... 4
5、實現類的方法..................................................................................................................................... 5
6、生成DELPHI代碼................................................................................................................................... 5
7、逆向到模型......................................................................................................................................... 5
8、完全的逆向工程................................................................................................................................. 6
結束語....................................................................................................................................................... 6
第 2 頁 共 6 頁

 
正文:
MM簡介:ModelMaker簡稱爲MM,是一個與Delphi緊密綁定的CASE建模工具。MM彌補了Delphi IDE在建模設
計上的不足。MM與其他 CASE工具最大的不同就是其強大的實時同步引擎,你的設計可以直接映射成代碼,在代
碼上的修改可以自動逆向反映到設計模型。以“設計-編碼-精練”方式代替了傳統的“設計-編碼”的工作
方式。MM是一個強大的UML建模工具,她還支持時下流行的“設計模式”。
閒話少說, 通過以下8 個部分你就可以上手了,“Follow me, step by step”。
1、MM 可愛的臉
我們先瀏覽一下MM 的芳容,打開MM7。
MM的安裝很簡單這裏就不介紹了,如果需要更多的信息可以瀏覽http:\\www.modelmakertools.com
MM 的默認佈局(菜單條下的工具欄上有一個下拉框,選中“basic”)分四大塊。
1.左上是【樹狀視圖區】包括:【圖】(Diagrams),【類視圖】(Classes)和【單元視圖】(Units)。
2.左下方是【類成員區】。
3.右上是【編輯區】包括:【圖編輯頁】(Diagram Editor),【實現編輯頁】(Implementation)和【單
元代碼編輯頁】(Unit Code)。
4.右下是【消息】和【文檔】區。
注意:MM 的各個頁面都有“停靠”功能,你可以隨意安排佈局,但是由於MM 的頁面比較多,建議初學者
使用默認的佈局風格。如果不慎搞亂了佈局可以點擊工具欄上的下拉框選中“basic”即可恢復。另外,在1024
×768 以上的分辨率下使用會得到更好的效果。
2、MM 中的工程(Project)
現在開始用MM 了,首先我們需要搞清她會產生的文件。
先創建一個新工程(或模型),選擇菜單“File|New”。你將得到一個空白的工程,該工程包含一個默認的
祖先TObject 和 IUnknown。
然後選擇菜單“File|Save As...”命名爲FirstMM,你將得到FirstMM.mpd 文件。
其實.mpd 是以下的文件集合的打包:
1. <model>.mpr; 包含工程設置;
2. <model>.mma; 包含與工程相關的宏;
3. <model>.mmb; 包含代碼模型數據;
4. <model>.mmc; 包含模型中的文檔;
5. <model>.mmd; 包含圖;
6. <model>.mme; 包含事件類型定義;
7. <model>.mmf; 包含工程信息。
也可是設置MM(參考幫助文件“Options | Environment options”)使其保存項目時存爲以上一系列的
文件。
第 3 頁 共 6 頁

 
3、新建類圖
在MM 建一個類有很多種方法(比如使用“Tools|Create Class Wizard...”)。我們用MM 強大的圖形建模
功能來建我需要的類。
首先點擊【編輯區】的【圖編輯頁】(Diagram Editor),把注意力都放在這個區域哦。
1.點擊類似“+”的“add Diagram”按鈕(將鼠標移到按鈕上,稍停就會有該按鈕的名稱。以下提到的
按鈕我們都以MM 提示名稱來表示)。
2.MM 彈出對話框要我們輸入圖名(name)輸入:testClass。
3.在下拉框(type)中選擇 Classes Diagram 後點擊“ok”。我們那就得到了一張名爲testClass 的空白
類圖。
4.這時你發先圖左側的一派按鈕都可用了,點擊“add Class”按鈕(應該是第一個)。
5.這時鼠標帶了一個“+”在圖上找個合適的位置點擊一下,MM 彈出了對話框要求輸入類名class name
等類的基本信息。輸入class name:TMMobject。選擇祖先類Ancestor:TObject。現在我們已經得到了一個類
並且看到了他的圖形。
注意:選擇Ancestor 時你會發現你只能選TObject 如果我們想要從其他類繼承怎麼辦呢?
這裏有一個必須說明的問題。MM 規定新類的父類類必須作爲模型數據的一部分,否則MM 可能無法正常生
成新類的代碼部分。這就意味這如果想要聲明一個新類就必須導入其父類,而導入其父類需要導入其父類的祖
先類,如此循環好像必須要把Delphi 類的繼承關係全部導入到模型中!問題當然不能這樣解決。
MM 提供了一個叫“佔位符”的標誌來解決這個問題。我們打開界面左上方【樹狀視圖區】的【類視圖】
(Classes)頁面。選中TObject。從彈出式菜單中選擇“Add descendant” 輸入TKK 作爲類名。雙擊該類並
在類編輯器對話框中選中選項“placeholder”。你會發現TKK 變成一個虛框,這時的Tkk 就是一個“佔位符”。
把Tkk 拖到我們testClass 類圖上。
6.重複步驟4 和步驟5,我們加上另外兩個類TMMFace 和TMMBoday,他們的祖先類都是TMMobject。我們
的圖上有四個類TMMobject、TMMFace、TMMBoday 和Tkk。那麼如何展現他們之間的關係呢?
7.當然我們可以自己來畫箭頭,但是這個辦法好好像很笨。一個更好的辦法是用MM 提供的嚮導。
步驟如下:先用鼠標圈住(或用鍵盤Ctrl+A)以上四個類。點擊右鍵“Wizards|visualize class
relations...”這是MM 自動的生成了TMMFace和TMMBoday 指向TMMobject 的箭頭。或者點擊“Wizards|visualize
related classes ...”這樣MM 會把關聯到的類全部顯示出來,我們的類圖上就會多了TObject。
4、添加類成員
有了這些類後我們來添加類成員(屬性和方法等)。
1.選中TMMFace 在右鍵彈出菜單“class|add property”。
2.name 輸入:color,根據需要設置其他各項(相信會delphi 都應該明白是什麼意思,我們在這裏就用
默認的選項)。
3.ok 後“好像世界沒什麼改變?”難道有bug?呵呵,如果你夠仔細的話你會發現在左下方的【類成員區】
出現兩成員Fcolor:integer 和color:integer。你是不是在想我的圖上爲什麼沒有呢?其實這是選項設置的問
第 4 頁 共 6 頁

 
題。
在圖的空白區域上點右鍵“visual style|Diagram properties”,選“symbol style”頁,將“Project member
type filter”前的勾去掉。把“fields、properties”等根據需要選中。“世界終於改變了!”
4.如上所述,給TMMFace 加入方法WashFace。給TMMBoday 加入屬性:face:TMMFace 和方法bath。
注意:給TMMBoday 加入屬性:face:TMMFace 時你也許會遇到困難。步驟如下:在彈出的對話框上的DataType
中選class 在DataTypeName 輸入TMMFace 即可。相信你明白這是什麼意思了TMMBoday 引用了TMMFace。哪麼
他們的關係應該反映在類圖上啊,“Wizards|visualize class relations...”就OK 了,看到你期望的哪條線
了吧。
5、實現類的方法
在MM 中我們可以直接用Delphi 代碼實現類的方法(好像Delphi IDE 完全沒用了一樣,呵呵)。
在【類成員區】選中要實現的方法,點擊【編輯區】,【實現編輯頁】(Implementation)寫代碼。Implementation
頁的功能很簡單這裏就不詳細介紹了,推薦大家回到Delphi IDE 中來寫代碼,畢竟這是Delphi IDE 的強項。
6、生成Delphi 代碼
激動人心的時刻到來了,生成Delphi 代碼。
模型建好了,我們還要幹什麼?
1.在界面左上【樹狀視圖區】的【單元視圖】(Units),點“add new unit”按鈕。
2.在path Alias 選擇路徑。Relative File name 輸入“MMUnit”單元名,ok。
3.工具欄按鈕“Unlock Code Generation”按鈕解鎖(這一步必須要哦)。
4.在【單元視圖】(Units)點擊按鈕“Generate”。
5.趕快在你本地的文件夾(剛纔設置的path Alias)下找找,一個MMUnit.PAS 出現了,打開看看Unit
的開頭都有了,卻沒有發現TMM 們的身影?爲什麼?
6.在【單元視圖】(Units)把“Class not assigned to units”下的類都拖到“MMUnit”下。
7.點擊按鈕“Generate”。
8.我看到你臉上露出了笑意!呵呵,成功了!
7、逆向到模型
下面我們看看在Delphi 中對類的修改怎樣返回到MM 中,用Delphi 打開MMUnit.PAS。
1.我們給類TMMFace 增加一個成員(str:string)使其代碼如下:
TMMFace = class(TMMobject)
private
Fcolor: Integer;
str:string;
public
第 5 頁 共 6 頁

 
procedure WashFace;
property color: Integer read Fcolor write Fcolor;
end;
2.在Delphi 中點菜單“ModelMaker|Jump to ModelMaker ”回到MM 中。
3.在【單元視圖】(Units)選“refresh Import”按鈕。
4.查看TMMFace 發現【類成員視圖】果然有了str:string。
注意:在【圖編輯頁】(Diagram Editor)查看TMMFace 發現沒有str:string。這選項的問題。在圖的
空白區域上點右鍵“visual style|Diagram properties”“Member visibility filter”把private,public
等全選上就有了。
中間小結:
以上講的過程爲:用MM 設計-在Dephi 中(實現,修改)-重新映射到MM 模型中-重新修改精練設計。
這樣一個過程。這是一個正向的開發過程,也是我們在實際開發中正常的流程。
但是在沒有MM 以前我們已經有了很多的類,很多的項目。我們能把他們變成漂亮的圖形嗎?
8、完全的逆向工程
逆向工程在MM 中十分簡單。但是要提醒你的是不熟悉MM 的脾氣的時候先備份一下你的舊代碼。
1.【單元視圖】(Units)選“Import Unit..”
2.選擇你要導入的.pas 文件。
3.ok 後你在【單元視圖】(Units)可以看見多了一個新的單元。
4.【圖編輯頁】(Diagram Editor),右鍵菜單“Wizards|visualiztion Wizards”選剛導入的單元,單
元下的類選到右邊。next,finish,我們的圖上多了剛纔選中類圖。
圖形化我們已有的類就是這麼簡單,一個完全的逆向工程就完成了。
結束語:
MM 的功能十分的強大,本文只介紹了很小的一部分,有興趣的讀者可以參考MM 的操作手冊
另外,我計劃寫一篇新的文章《MM 與模式設計》,完成後與大家分享。
筆者也在學習當中,文中如有錯誤或疑問請發郵件[email protected]給我,謝謝。
第 6 頁 共 6 頁
發佈了76 篇原創文章 · 獲贊 2 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章