ROSE思想是複雜的,內涵是豐富的,操作是彆扭的,文檔是簡單的,人性是沒有的。然而人們對它趨之若鶩的原因恐怕是我們現在的TEAMLEADER,SA受RUP的’毒害’頗深的原因,而這也將影響到徒弟–將來的SA們。
基礎操作
1.開啟Rose
2.選擇預設程式設計語言的方法是,Tools->Options->Notation->Default->Java。
3.在Logical View(邏輯模型)裡建立檔案包Test
建立Class ,添加Attribute和Operation。
一 通過模型產生代碼
rose協助位於 HELP>>CONTENTS>>ROSE JAVA>>HOW TO >>FORWARD ENGINEER FROM ROSE TO JAVA SOURCE
1 Checking for Java Syntax Errors(檢察Java語法錯誤)
當你嘗試把模型組件轉化成代碼架構時候,應該考慮到先檢查將要產生的類有無語法錯誤。
a 開啟你要專化的目標diagram
b 選擇你要轉化的包或者類
c 單擊 tools>java/j2ee> Syntax Check 來檢查目標代碼是否符合規範,比如命名錯誤。
d 察看rose log視窗(下方)察看檢驗結果,如果有錯誤,即errors那麼產生的程式碼很可能無法通過編譯
e 根據需要校正這些組件或者圖
假設以上步驟已經搞定了error
2 選擇你要轉化的包或者類
3單擊 Tools > Java/J2EE > Generate Code
一般來說如果你還沒有將一個package或者組件映射到一個rose的classpath目錄中(就是指定產生的東西放哪裡),那麼系統不會允許你在接下來的介面裡點ok,那麼現在就編輯目標路徑
4點classpath entries下的edit按鈕,再出現的介面右上方找new(insert)(刪除左邊那個),然後在列表裡新增的行裡選擇目標路徑,你可以選擇目標是產生一個zip,jar,還是一個目錄,我們選擇目錄。指定目錄,ok,那麼你選擇的路徑就建立成功了,選擇這個路徑,點ok回到介面(層次好多阿,介面很醜阿)
5現在你看到classpath entries裡有東西了,選擇右側列表裡你要轉換的包或者組件,點assign,即分配給目標classpth,理論上你可以把選擇好的包組件或者類圖分別分配個多個classptah對象。點ok開始產生
6 成功後就可以到指定的classpath下看代碼了,產生的程式碼之間擁有如類圖所示的關係。
Class Test1
Class Test2
二 反向功能
rose協助位於 HELP>>CONTENTS>>ROSE JAVA>>HOW TO >>REVERSE ENGINEER FROM JAVA SOURCE TO ROSE
反向工程就是通過java代碼產生或者更新一個模型的過程。你可以用ROSE對以下檔案進行反向
A.Java source code (.java files)
B.Java bytecodes (.class files)
C.zip, .cab, and .jar files
1. Open the model you want to create or update.
開啟一個你剛建立或者想更新的模型
建立一個class diagram(如果你還不會,那麼這篇文章就別看了)
2.單擊Tools > Java/J2EE > Reverse Engineer
那麼現在大家可以想象一下rose會怎麼做,剛才是選擇了圖,建立目標路徑,產生代碼,那麼現在是否指定路徑讀檔案產生圖呢,you can say that again!!在出現的介面上選擇一個classpath(如果已經存在)當然,你也可以通過edit classpath按鈕建立一個(建立路徑的介面剛才講過了,不再累贅),然後選擇這個classpath,更改下面的filter下拉式清單,更改目標檔案類型(注意不僅僅三行,可以滾動的,對rose的介面真是垃圾這一點又深有體會了),我們這裡選擇.java,如果這個classptah下存在.java檔案,那麼就會被列出來。
注意:你可以通過 add添加選中的檔案,也可以通過add all添加所有列出來的,更可以通過add recursive 遞迴添加這個路徑下所有的檔案和子目錄下所有檔案等等。可以看到rose並不會自動列出甚至顯示有沒有子目錄(無人性)從添加好的檔案裡選擇你想反向的檔案,點Reverse 開始建立或者更新,如果有錯你就改到沒錯為止。假設你成功了,點擊done結束反向,回到rose主介面。
注意:rose並不會針對你反向過來的類和組件自動產生圖,產生的class已經按照包關係列在你的class diagram下面,你需要把他們加到你的圖中去(靠,什麼玩藝) ,你有兩種方法讓這個半自動反向工程化上句號。
A 手工把class或者組件拖拉到目的圖裡
B 在靶心圖表的介面下點擊 Query > Add Classes 或者 Query > Add Components ,選擇視圖方式,一般是logic view,選擇要拖拉的類或者組件,>>或者all,點ok完成。產生的類圖即反映了代碼本身之間的關係。
三 產生類圖
將Class Test1,Test2直接拖拽至類圖(Class Diagram)中即可。
三 產生時序圖