gr8vyguy@Blogjava

          Iterative和Waterfall Development Process

          UML Distlled的第二章的閱讀筆記

          UML是一組統一的建模工具。建模是Development Process的一個不可缺少的組成部分。Development Process是計算機科學中的管理學科。

          RUP(Rational Unified Process)是一個非常流行的Development Process Framework。

          兩類Development Process: Iterative和Waterfall

          Waterfall以軟件開發的工作為基礎來劃分,依次分為需求分析,設計,編碼測試。一個1年長的項目可能分為2個月的需求分析,跟著4個月的設計周期,3個月的編碼周期和3個月的測試周期。

          Iterative以軟件的功能為基礎來劃分。一個1年長的項目可能分成4個循環,每個循環持續3個月,每個循環實現四分之一的功能。每個循環都要經過需求分析,設計,編碼和測試四個步驟。在開始新的循環之前要保證上一循環的質量,絕對不能把測試推遲到最后。

          當然,這只是對兩類Development Process的簡單劃分,在實踐中,有不少現象模糊兩者之間的區別。

          Waterfall的分析和設計很可能在編碼的周期里還需要修改,甚至返回重新設計。編碼可能在分析結束之前就開始了。但是Waterfall的一個目的就是為了盡可能地減少這些活動。

          采用Iterative方式,在真正的循環開始之前,可能會有一個實驗階段。以分析開發這一軟件的可行性和經濟性。在實驗階段還需要做一定的需求分析,但是并不深入到如Waterfall的需求分析和真正循環里的需求分析那樣的細度,這里做的需求分析的目的是為了能夠劃分各個循環的功能,至少是第一個循環的功能。

          兩類Development Process也存在混合使用的可能,比如分析和高級的設計采用Waterfall的方式,編碼和測試采用Iterative的方式。采用這種方式,可能先用4個月做分析和設計,跟著3個2個月長的周期循環。

          采用Iterative Development方式的時候,當無法在一個Iteration里實現指定的功能的時候,應該將一部分功能推遲到下個Iteration,而不是推遲Iteration的時間,更加不應該減少測試的時間。這就需要一種給功能定等級的方法,等級高的功能應該優先實現。

          采用Iterative Development經常要面對的一個問題是扔掉代碼。后期循環的分析和設計,可能會影響前面循環中編寫的代碼,這時你可以選擇修改或者重新寫,有意思的是,在軟件開發領域,重新寫的效率比修改代碼要高。現在有很多工具幫助人們提高重新寫的效率,自動破壞測試(Automated Regression Test),重構(Refactoring), 持續集成(Continuous Integration).


          轉載請保留http://www.aygfsteel.com/xilaile/archive/2007/04/21/112452.html


          posted on 2007-04-21 11:53 gr8vyguy 閱讀(3227) 評論(0)  編輯  收藏 所屬分類: 計算機科學基礎

          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          公告

        1. 轉載請注明出處.
        2. msn: gr8vyguy at live.com
        3. 常用鏈接

          留言簿(9)

          隨筆分類(68)

          隨筆檔案(80)

          文章分類(1)

          My Open Source Projects

          搜索

          積分與排名

          最新評論

          主站蜘蛛池模板: 泌阳县| 奉新县| 扎鲁特旗| 杭州市| 贵州省| 明光市| 宁阳县| 新源县| 土默特左旗| 习水县| 棋牌| 盘锦市| 宁城县| 陈巴尔虎旗| 晋江市| 杭州市| 太湖县| 冀州市| 长治县| 调兵山市| 赤壁市| 铜山县| 嘉义县| 兴业县| 屏南县| 刚察县| 东莞市| 定南县| 体育| 枣阳市| 五家渠市| 霞浦县| 福海县| 建德市| 南召县| 绥阳县| 大关县| 舒城县| 赣州市| 常山县| 临汾市|