2007年11月21日 星期三

G18 從程式倒回Design Model的問題

身邊偏好將想法直接變為程式的人常說,程式裡隱含可正常執行的Model,如果需要UML圖的話就從程式碼倒回來,保證可以拿到最新最正確的。

這句話原則上沒有錯,無論是Class Diagram或Sequence Diagram都是系統真正在執行的。但是令人困擾的是倒回來的Model是一大包什麼都有的產出,我們不容易從裡面找到我們所需要的條理,也不容易正確地分辨系統的層次。更要命的是,要是設計者只是為了功能而實作,倒回來的東西可像極了混成一大團的毛線球。

試過用IBM RSA把維護系統的程式碼倒回Sequence Diagram,得到的結果實在很長,一個特定方法之下所有呼叫順序全部都列出來。由於該方法原先就沒寫好,有些邏輯在上層,有些則放置在更下面的邏輯裡,完成不知道原先設計者思考的是什麼;後來只好去問原來的設計者,得到的答案竟然是:我忘了,你可以先看程式碼後再問看不懂的地方嗎?當然我就丟下不看了。

設計的層次本來就有問題時,怎麼倒回Design Model都是沒有用的,頂多貼到交付文件裡騙騙那些什麼都不懂的使用者。建議還是先用Model設計,確保各個層次與物件負責範圍,以免系統最後變成一團大毛線球。

沒有留言:

張貼留言