RATIONAL ROSE生成程式碼及其反向工程功能手冊(轉載和補充)

鴨脖發表於2013-03-25
原文: http://lzqdiy.bokee.com/5344025.html 
2006年12月10日
關鍵詞: 
rose    生成程式碼    反向工程                                          

 rose是最流行的建模工具,一是標準(歷史悠久用的人多),二是自始至終貫穿體現了RUP的思想(使用Rational suite),雖然實際工作中我們因為諸多因素不能夠完全按照RUP方法來指導整體開發過程,但相信多數團隊還是圍繞在rose身邊使用了'簡化版'的需求分析設計,而多半使用了不怎麼地道的'XP'開發:)
      ROSE思想是複雜的,內涵是豐富的,操作是彆扭的,文件是簡單的,人性是沒有的。然而人們對它趨之若鶩的原因恐怕是我們現在的TEAMLEADER,SA受RUP的'毒害'頗深的原因,而這也將影響到徒弟--將來的SA們。
      
一 通過模型生成程式碼

rose幫助位於 HELP>>CONTENTS>>ROSE JAVA>>HOW TO >>FORWARD ENGINEER FROM  ROSE  TO JAVA SOURCE 


 當你嘗試把模型元件轉化成程式碼框架時候,應該考慮到先檢查將要生成的類有無語法錯誤。
 1 開啟你要專化的目標diagram
 2 選擇你要轉化的包或者類
 3.單擊  tools>java/j2ee>  Syntax Check 來檢查目的碼是否符合規範,比如命名錯誤。
 4 察看rose log視窗(下方)察看檢驗結果,如果有錯誤,即errors那麼生成的程式碼很可能無法通
 過編譯
 5 根據需要校正這些元件或者圖
 6重複 步驟3直到檢驗不出錯誤,然後你就可以進入下一步了   
 假設以上步驟已經搞定了error
 7 選擇你要轉化的包或者類
 8單擊 Tools > Java/J2EE > Generate Code
 一般來說如果你還沒有將一個package或者元件對映到一個rose的classpath目錄中(就是指定生
 成的東西放哪裡),那麼系統不會允許你在接下來的介面裡點ok,那麼現在就編輯目標路徑
 9點classpath entries下的edit按鈕,再出現的介面右上角找new(insert)(刪除左邊那個),然後在列表裡新增的行裡選擇目標路徑,你可以選擇目標是生成一個zip,jar,還是一個目錄,我們選擇
 目錄。指定目錄,ok,那麼你選擇的路徑就新建成功了,選擇這個路徑,點ok回到介面(層次
 好多阿,介面很醜阿)
 10現在你看到classpath entries裡有東西了,選擇右側列表裡你要轉換的包或者元件,點assign
 ,即分配給目標classpth,理論上你可以把選擇好的包元件或者類圖分別分配個多個classptah
 物件。點ok開始生成
 11成功後就可以到指定的classpath下看程式碼了,生成的程式碼之間擁有如類圖所示的關係。
 
 
二 反向功能
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 開始建立或者更新
 無論成功還是失敗都會警告,並有log。有錯你就改到沒錯為止。
 假設你成功了,點選done結束反向,回到rose主介面。            
 注意:rose並不會針對你反向過來的類和元件自動生成圖,生成的class已經按照包關係列在你的
        class diagram下面,你需要把他們加到你的圖中去(靠,什麼玩藝) ,你有兩種方法讓這個半自動反向工程化上句號。
   1手工把class或者元件拖拉到目的圖裡
   2在目標圖的介面下點選 Query > Add Classes 或者 Query > Add Components ,選擇檢視方式
   ,一般是logic view,選擇要拖拉的類或者元件,>>或者all,點ok完成。生成的類圖即反映了程式碼本身之間的關係。
     ok.教程結束,因為沒有抓圖軟體,懶得拷螢幕,加之文字比較詳細,相信擁有寫程式碼能力和
     自學能力的諸位看官理解沒問題。作為一個SE,SA,必須掌握的工具,ROSE還有很多功能隱
     藏在稀奇古怪的介面下,如果你不是一個RUP方法的頑固FANS,也沒有受到經典學院派的'
     教導',或者乾脆就是一個開發人員,那麼推薦大家還是快速的投入到together或者Poseidon的懷中吧。

相關文章