2009年5月19日 星期二

V14 流程的存取(1)──程式流程Data Model

接下來討論的是程式流程圖的產生。由於繪製流程圖的工具非常地多樣化,所以不應該直接把程式流程輸出為流程圖,而應該先設計程式流程Data Model先將程式碼的流程轉入,然後再根據實際使用的流程圖工具製作匯出程式。

一開始應該先分析流程圖裡面所包含的元件種類以建立對應的物件。我參考的是Activity Diagram內使用的圖形,能夠用最簡單地圖形表達出設計的意義可以降低複雜度。
●start node - Flow方法的進入點
●end node - 遇到return或是走到Flow方法的盡頭
●branch node - 每個判斷條件會對應到一或多個
●merge node - 每個判斷條件block的終點
●activity node - 不在判斷條件裡的動作

Flow方法裡只有變數宣告(activity node)、執行Method(activity node)與判斷條件(branch node、merge node)等三類敍述,判斷條件內除了java的關鍵字外就只有判斷式(branch node、merge node裡的condition),因此Flow方法的敍述在理論上都能夠對應轉換為程式流程Data Model。

每一個程式流程Data Model都還要包含指向下一個node的指標(end node)沒有,branch node得有分歧條件與對應節點的集合才能建立正確的資訊。在非分歧條件下的程式碼毌須解析內容,只要把找到的註解都轉換成一個activity node即可。

沒有留言:

張貼留言