2010-01-27 148 views
4

我在Oracle 2000+行中有很多很長的程序,有很多的調用。我想生成程序流程圖(算法),以便更好地瞭解進一步重構的過程。SQL程序流程圖生成軟件程序流程

這不是我寫的代碼,所以我不知道邏輯不夠。

你會建議在這種情況下做什麼?我試圖畫出類似文本的流程,但需要花費很多時間,並且仍然很難涵蓋理解的所有邏輯。

我看到的最好方法是從SQL過程生成的流程圖,並鏈接到代碼和圖表之間的「跳轉」。

UPDATE: 做同樣發現幾個軟件:

  1. ClearSQL - 使CRUD圖,呼叫圖形和流程圖。 (使用它現在):它具有Outline(使代碼流能夠摺疊 - 展開代碼塊 - 非常酷!),代碼資源管理器(枚舉所有的func,包含鏈接的參數ti SQL文本 - 只是在界面)功能

+0

問題歸結爲建議一種工具,軟件,庫,這是一種偏離主義。 – Trilarion 2015-02-15 10:56:11

回答

6

有一個產品,Code Visual to Flowchart,它可以採取各種語言的代碼,並做你所描述的東西。不幸的是,雖然Oracle似乎並不在支持的語言列表中,但是Microsoft TSQL是;也許你至少可以將你的proc從Oracle轉換到MS,並用它來粗略地顯示你的proc的流程。

如果未能達到burnall的建議聽起來像是最好的選擇,那麼本質上就是分而治之。

+0

就我看到的「PL/SQL,T-SQL(Transact-sql)到流程圖」中,Oracle支持。謝謝,我會嘗試! – zmische 2010-01-27 14:35:28

+1

我試過了 - 除了我的Proc上的大掛件 - 它的工作原理:代碼流,圖表,plsql - 圖表映射。謝謝! – zmische 2010-01-27 14:49:54

+0

太棒了,很高興幫助! :) – 2010-01-27 15:15:55

3

我懷疑這樣的工具,即使它存在,可以幫助更好的理解。我認爲,大流程圖的時間已經結束。
我會建議通過逐步重構來理解邏輯:
迭代地將部分過程提取到較小的過程並添加測試。

+0

不,我的意思是「可以同時看到代碼的大塊邏輯」的流程圖。 我試圖調試,但它是瘋狂的 - 用大量的參數步進噸噸過程 - 我只是不能「加載」到我的腦海。 提取,在我看來,並沒有真正的幫助 - 我有一個大的proc,在頂層有很多的遊標迭代和大量的檢查和proc調用 - 只是無法想象我可以提取什麼...這是一個問題。 – zmische 2010-01-27 14:27:06

+1

可能是流程圖有助於您的認知風格。如果是的話,我很高興。 真的這是一個非常普遍的問題:如何理解和支持可能不是由天才創建的大型舊程序) – burnall 2010-01-27 15:41:03

+0

是的,你是對的。那些大的老編... – zmische 2010-01-27 18:56:30