程序備忘錄:之七-狀態的聯想(2004/08/31 19:10)

  軟件測試到了後期,出現了一個奇怪的BUG。幾經查找,是因爲對DB中某條數據的狀態Flag判斷不夠,從代碼中反映爲只有IF而沒有ELSE,這樣反映到系統中就出現了意想不到的效果。一般來說,出現過兩次的問題就值得總結一番了,這就引出了本節文字。
  開發軟件項目要接觸到很多與狀態有關的東西,如狀態遷移。舉例如:計劃書狀態(臨時,草稿,校覈,審查,審定,批准,發佈,歸檔,作廢)。暫時想到了這麼多,狀態單步變換尚可輕易把握,但狀態可能會跳級變換及回退。這些變換主要集中在業務端,對數據表的狀態字段操作應該是簡單統一。假設有三級計劃,各級計劃有不同的狀態,並且各級計劃的狀態相互影響,夠複雜的。從設計者的角度來說,希望用盡量簡單的方法實現現實的功能。但由於現實世界的複雜性,即使用最簡單的方法實現也不是想象的那麼容易。所以,對狀態應有足夠的重視。
  涉及到編程,尤其是WEB系統。單兵作戰的市場已難以存在,每個項目將消耗很大的人力資源。狀態的問題是一個長期的問題,從分析,設計,編碼,測試。套用一句俗語:狀態無處不在。如果系統分析,將業務理清楚,將狀態寫清楚。如果詳細設計,將處理表述完整,把狀態的方方面面用各種圖表列詳細。如果編碼,將狀態的準確含義弄明白,將狀態與各方面(業務,DB)的聯繫弄明白,對狀態的處理在代碼中顯出條理來。如果測試,更要深刻理解現實需求的東西,應該行的要行,不應該行的一定不能行。
  是否有過這種情況,一張表格在開發過程中被頻頻使用,且不時翻出來作爲開發依據,成爲珍貴的參考資料?狀態遷移圖是一種常見的圖。還有一種二維表很有用,例如狀態/動作的有效性檢查。總之,在軟件實現的各個階段,要儘早地對狀態結下天羅地網。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章