如果小組更新現有應用程式,其中一個首要工作就是要了解程式碼。 小組必須先識別需要變更程式碼的部分,再決定變更的結果會散佈多遠,才能估計小組的工作量。
透過建立單元和系統測試,小組可以協助確認所做的變更沒有負面影響。 如果這些測試並不存在,小組必須加以建立。 不過,不需要為現有應用程式建立一組詳盡的單元和系統測試。 透過了解現有程式碼結構和您預期進行的變更,您的小組可以專注於建立確認這些變更不會對應用程式造成不利影響所需的測試。
當您必須更新現有程式碼時,建議您執行下列動作和工具:
了解現有結構。 使用 [架構總管]、有向圖形和產生的順序圖表,尋找主要元件及其相依性。 如需詳細資訊,請參閱顯現程式碼內容及其關聯性使其更容易理解。
了解現有行為和所需的變更。 小組在詳細討論新劇本時,應該要了解現有行為。 將現有劇本標記為「現況」(as-is),新劇本為「期望」(to-be)。 將這些標記當成檔案、資料夾和模型名稱的一部分。
您可以使用模型來協助釐清使用者劇本。 如需詳細資訊,請參閱使用者劇本模型化。
透過測試來穩固行為。 加入自動化或手動測試來達到下列目的:
協助了解產品的現有行為。
反白顯示那些即將變更的產品行為層面。
確認所做的變更不會影響現有功能。
如需詳細資訊,請參閱及早並經常測試。
透過圖層圖表來穩固架構。 建立圖層來達到下列目的:
協助了解現有程式碼的結構。
在程式碼中反白顯示變更的區域。
透過引入非預期的相依性或將函式放在不正確的位置,確認所做的變更不會不小心違反現有架構。
如需詳細資訊,請參閱使用圖層圖表讓應用程式結構穩定。
撰寫所需的變更做為劇本,估計劇本的成本,並將劇本整理為產品待處理項目。 估計成本時,當然要考慮更新現有程式碼的事實。 每項估計都必須包括了解現有設計及撰寫自動化測試所需的時間。
如需詳細資訊,請參閱建立或新增產品待處理項目。
進一步閱讀
Working Effectively with Legacy Code (英文),作者:Michael Feathers 出版社:Prentice Hall 出版年份:2004。