敏捷式軟體開發 (Agile Software Development)——一個例子:copy程式

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   ar   2014   sp   代碼   


和代碼顯示 應用程式中有3個模組,或者子程式。copy模組調用另外兩個模組。copy從read keyboard中擷取字元,並把字元傳遞給write printer模組。

。。。。需求在變化:

    希望copy可以從紙帶讀入機中讀入資訊:如果變數值為false,就像以前一樣從鍵盤讀取資訊。槽糕的是,現在已有許多其他程式正在使用copy程式,你不能改變copy程式的介面。改變介面會導致長時間的重新編譯和重新測試。

    打補丁:

    當然會想到使用一個全域變數的方法,結果如下:



想讓copy從紙帶讀入資訊設定ptFlag為true即可,然後再調用copy,它就會正確地從紙帶讀入資訊,一旦copy調用返回,調用者必須要重新設定ptFlag。

。。。。

需要再次改變:

客戶希望copy程式可以輸出到紙帶穿空機上。

如果繼續這樣的打補丁,軟體終會變的難以維護。

這次的設計的改動和上次的相似。只不過需要另外一個全域變數和?操作符。


—————————————————————————————————————————————————————————————————————————————

說上面的例子不是要吐槽客戶的需要改變,實際中,客戶的需要一定是會有變化的。

通過上面的例子可以看到在 變化面前程式的設計退化的速度是多麼的快。copy程式的原始設計是簡單的,是優雅的。但是僅僅經曆了兩次變更,它就已經表現出了僵化性、脆弱性和不必要的複雜性、不必要的重複急晦澀性的癥狀。

    記住,在大多數軟體項目中最不穩定的就是需求。需要處在一個持續變動的狀態之中。這是我們作為開發人員必須得接受的事實!

一個好的解決方案:

在這個例子中,在我們遇到第一個需求變化時,我們要修改設計並使修改後的設計對於那一類的需求的變化具有彈性。


    在要實現新需求時,團隊抓住這次機會去改變設計,以便設計對於將來的同類變化具有彈性,而不是設法去給設計打補丁。


敏捷式軟體開發 (Agile Software Development)——一個例子:copy程式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.