2012-09-14 176 views
8

我不太熟練的UML,但我想創建一個基於現有C++代碼的類圖。其他的StackOverflow問題表明,Enterprise Architect和Rational Software Architect這兩個程序在「逆向工程」C++代碼(即基於現有C++代碼創建UML類圖)方面非常擅長。如何使用Enterprise Architect或Rational Software Architect從源代碼創建類圖?

我已經下載了這兩個應用程序的試用版。但是,我無法理解如何在這些應用程序中創建類圖。

在Rational Software Architect,我創建了一個UML項目,但我無法找到程序中的任何方式來選擇,並且通過逆向工程,我現有的C++代碼。

在企業架構師,我能夠導入我C++代碼,但所有的元素(類)出現在圖中的無用的,重疊的對角線。我嘗試了其他設置,例如圓形,但是由於圖表太大(由於屬性和方法佔用大量空間),因此無法進行平移和縮放操作,因此這些設置同樣無法讀取。我想隱藏除類名以外的所有內容(即不顯示任何方法或屬性),以便所有20個類在一個屏幕中方便易讀。

但是,我無法找到一種方法來隱藏除類名以外的所有內容。相反,當我發現一個選項(在Enterprise Architect中)似乎可能隱藏除類名以外的所有內容時,出於某種原因,這些元素都在類圖中消失了,並且不會重複執行刪除和重新添加包的步驟&使類圖再現。

注:我的C++代碼(至少我選擇要導入到企業架構師這些文件)量只有約20班。

可悲的是,一個非常仔細的搜索這兩個程序的文檔僅提供泛泛 - 沒有給出具體的指示有關的任何這些程序的逆向工程,只要我能找到。

我將不勝感激,如果有人可以告訴我的基本步驟來創建通過清晰的,易於導航的圖。逆向工程(即C++ - to-UML),只顯示類名,這樣大約20個類可以在一個屏幕上顯示(使用Enterprise Architect或Rational Software Architect)或任何其他工具,這樣做(我建議僅使用EA和Rational,因爲它們已經在其他StackOverflow答案中作爲可用於此目的的最佳程序突出顯示)。

+0

我不知道這些程序什麼,但是你可能要考慮的doxygen這是自由軟件,可能適合您的需求,有一個簡單的[在此示例](http://stackoverflow.com/questions/9484879/graphviz的-doxygen的到產生-UML級-圖)。 –

回答

12

此答案適用於EA。

您可以導入單個文件或整個目錄,遞歸或不導入。目錄導入是最常見的情況;單個文件導入不允許您自動創建圖表。

當導入源目錄,你必須創建在所有的每一個UML包圖或無圖的選項。您還決定是否爲每個源代碼目錄,命名空間(默認)或文件創建軟件包。

如果您的代碼只包含20個類,那麼它們很可能位於單個目錄和/或名稱空間中,因此請仔細閱讀該選項(「導入源」對話框中的包結構)以獲取正確數量的圖。

在同一個對話框,有一個按鈕,「新圖選項,」這將打開另一個配置對話框,您可以選擇是否圖應包含的類的屬性和/或操作。您還可以根據可見度作出決定,例如僅向公衆成員顯示。

該對話框隻影響圖表創建時顯示的內容。成員仍然是導入的,只是沒有顯示。這聽起來像你之後的事情。

您可以通過雙擊它的一個空白區域,或右鍵單擊並選擇屬性更改任何圖表的顯示選項。這聽起來像你進入這個對話框,並改變了一些東西,但我不知道是什麼。你描述的情況,你無法讓顯示恢復到原來的狀態,這不是我在EA中遇到的情況。

另外,也可以通過右擊它在圖中和選擇特徵可見性來選擇在每個基礎類顯示選項。我不建議你在反向工程圖中使用它,我只是提到它的完整性。

你的描述,在一個毫無意義的對角線所有類的佈局,建議,我認爲圖中沒有被創建後奠定了正常。創建圖表是一個兩步過程;首先將所有的類放在它上面,然後應用佈局。

這很奇怪,因爲EA自動勾畫出生成的圖表,我一直沒能找到一個選項,它允許您取消此行爲。如果這仍然存在,請向Sparx Systems發送錯誤報告。您可以通過打開它並從頂層圖表菜單中選擇佈局圖來佈局圖表。

最後,如果您的類分佈在不同的包名稱空間中,以便EA爲它們生成多個圖,則必須手動合併它們。通過打開兩個圖表,在一箇中選擇全部(Ctrl-A),複製(Ctrl-C)和粘貼(Ctrl-V)到另一個,然後再次請求EA到佈局圖來完成此操作。

所以:

  1. 右鍵單擊項目瀏覽器中一個空包,選擇代碼工程 - 導入源目錄。
  2. 在對話框中,選擇根目錄和源類型。
  3. 勾選「爲每個包創建邏輯圖」,然後選擇最適合您的源結構的包結構。
  4. 單擊「新圖表選項」,並在新對話框中取消選中「顯示屬性」,「顯示操作」和「顯示屬性方法」(如果適用)。
  5. 確定兩個對話框。
  6. 如果已創建多個圖表,請將所有類別複製到一個圖表中。
  7. 如果佈局看起來不好,請選擇圖表 - 佈局圖。

希望這會有所幫助。

相關問題