增量式開發的優點 (轉)
增量式開發的優點
未經允許,嚴禁轉載本欄目內容本文經許可轉載自工程專家網,
未經CSDN許可,請勿隨便轉載,謝謝合作?page=/bbs/index.asp?Type=D">
統計質量控制之下的增量式開發(incremental development)是軟體專案建立和保持管理控制的淨室途徑。增量式開發是20世紀70年代早期由Mills提出的。但直到80年代末,當Mills和他的助手們的淨室論文和專項報告開始出現的時候才獲得認同。Fred Brooks描述了增量式開發方法的深刻影響,針對該方法在軟體實踐方面的作用,給出了影響廣泛的評論:“沒有銀彈:軟體工程的本質和偶然性。”
Brooks的觀察在工業實踐中得到了證實。增量式開發有助於早期的和連續的質量評估、反饋和方便的開發進度的過程改進。增量式設計方法避免了在開發週期中部件整合之後風險的繼承。而且增量式開發允許在整修開發週期過程中需求變化的協調。
增量式開發的技術基礎是引用透明性特徵。在的前後,這種特徵要求規範及其實現定義了同樣的數學。當擁有了這種特徵時,設計就能顯示出與它的規範的一致性。
大的軟體系統由各個部分組成。系統各個部分組成的方式對專案的成功有重要的影響。增量式自頂向下的開發途徑表現為軟體系統的已開發和已測試部分作為功能累積子集的序列。在最早增量中開發了一個小系統,然後把功能新增到每一個後續增量中直到系統完成。這種軟體系統的控制增長方式有利於客房、管理者,同樣有利於技術人員。
進展的可見性
利用增量式開發,每一步增量實現了一個或多個終端使用者功能。每一步增量包含所有早期的已開發的功能集加上一些新的功能;系統在逐步累積的增量中增長。例如,在早期增量結束時,開發者很有信心地說:系統的20%已100%完成了,而不是推測系統已完成了20%。
智慧控制
增量式開發透過引用透明性,實現了整個系統開發過程中的智慧控制。當在後續增量待實現的函式的子規範被嵌入當前增量流程邏輯中時,這種特性,即等式的等量替換令人滿意。當擁有引用透明性時,一個系統的部件無需回溯就能根據其子規範得以實現。無需重做前期增量。這裡策略有利於在一個完整系統中對每個增量進行正確性驗證。
增量系統整合
淨室增量式開發允許在整修開發生命期引用透明的使用者函式增量的連續整合。因為每一步增量設計基於一個已驗證的子規範和前期增量已測試的介面,因此幾乎沒有更深的設計和介面錯誤。較好的定義增量貫穿於整修系統開發過程,系統在良好定義的增量中深化。測試和驗證工作始於開發週期早期。
連續質量反饋貫穿統計過程控制
已在淨室中實踐的增量式開發為統計過程控制提供了基礎。每一個淨室增量都是過程的一個完整週期,包含規範、開發和新的使用者函式的驗證,加上到目前為止所有已工作的測試。作為統計過程控制的典型,把過程的每一次反覆的度量與效能目標相比較,以決定是否過程一直在控制之下(即:是否正如所期望的那樣發生)。
淨室軟體小組常使用在測試中的開發效能度量作為過程控制的標準。通常使用的度量包括每千行程式碼的錯誤數、失效的間隔時間(MTTF)、可靠性及可信性。其他過程控制方法或許依賴於所管理的事務,而不是產品的質量。進度一致性一、預算一致性瑟整體計劃的一致性等等,都是按增量的實際效能與目標效能相比較而言。淨室增量度量依據的標準描述了過程控制的具體級別,要按計劃繼續該專案,開發小組要求此級別。如果標準不符合,開發小組能從增量中檢測資料,確定問題所在,必要時調整專案計劃,修改軟體開發過程,避免此類問題的再次發生。例如,如果增量的測試提示過程失去控制(如:質量標準不符合),開發者們應停止測試,返回設計階段,如果過程是在控制之下,下一歨增量工作才能繼續。
統計過程控制(Statistical Process Control ,SPC)是為資料悼念和分析提供較好的開發技術的成熟的工程實踐。豐富的方法和工具支援是希望從事更高實踐的設計者可利用的。然而,SPC的基本實踐要求少量的投資和努力就能產生充足的回報。統計過程控制應用的基本任務很簡單:每一過程週期的效能度量,比較實際效能與預先定義的目標效能,確定不可接受偏差的原因,以及透過過程改變改進將來的效能。
例如,如果一個淨室小組開發的一個產品在測試中習慣於每千行程式碼有三個或更少失效,那麼一個增量每千行有5個失效或許認為是不可接收的偏差。在調查中,小組或許發現失效是由錯誤引起的,實際上在驗證過程中錯誤才能被發現,不能證實程式碼改變的正確性。從這種分析中,小組認識到直到所有錯誤程式碼的改變被驗證為正確之前這種驗證不視為完整的。小組相應地修改驗證過程,決心在將來的增量設計中避免因不正確的而引起的失效。以這種方式,每步增量中產生的反饋用於改進下一歨增量過程。
統計過程控制的能力取決於針對正在進行的計劃效能與實際效能的對比檢驗。確定造成不可接受的偏差的原因,制定專門過程改進措施,以重新獲得控制或改善控制。淨室軟體小組實踐這些基本原理,並加以發展。每個淨室增量都是針對完善的期望來測試,任何失效都被認為是不可接受的。仔細分析由錯誤發生的失效與開發過程的關係,錯誤的來源是什麼?為什麼在小組評審中錯誤被忽視?如何改進過程避免相同錯誤站起來重犯?淨室軟體小組真誠地追求完美,統計過程控制是衡量和提高小組成果的工程規範。
使用者使用中不斷的功能反饋
增量式開發有助於使用者對一個進貨系統的執行功能做出儘早的不斷的反饋,必要時允許改變。因為增量執行於系統環境並代表了使用者功能的子集,早期的增量能透過使用者對系統功能性和實用性的檢測來反饋。這種反饋有助於避免開發出失效的系統和建立使用者可接受的最終產品。
變更的適應性
在系統需求和專案環境中增量式開發允許不可避免變更的系統適應性。在每一步增量完成時,系統需求的積累變更所產生的影響能根據當前規範和增量設計來評估。如果變更與將來增量想到獨立,則通常與現已存在的增量開發計劃相合並,並對進度和資源進行可能的調整。如果變更影響已完成的增量,自頂向下修改系統開發,通常重用絕大多數已存在的增量程式碼(通常是全部),按照要求的進度和資源來進行相應調整。
進度與資源管理
專案資源在增量式開發全過程中能在可控制的方式下分配。可用進度是決定待開發的增量資料和其規模的一個因素。在短進度中,小規模增量將有助於在增量交付與組之間維持充分的時間段,允許一個有序的測試過程。然而,這將給專案開發小組設計和實現更大、更復雜的增量帶來更多負擔。進度和複雜性的折衷能夠反映增量式開發計劃。另外,從後續增量得到的反饋,為過程和產品效能的目標度量提供了管理,以允許在開發和測試中對不足和意外收穫的適應。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-997162/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【效能優化】增量檢查點優化
- NDK開發—增量更新
- 優點點贊系統開發的分析介紹
- 『IOS』使用優雅的錨點開發iosiOS
- 目前開發方式的主要缺點 (轉)
- 論軟體的元件式開發 (轉)元件
- php增量Hash函式的使用PHP函式
- 一、掃碼點餐小程式的開發優勢
- [分散式][高併發]熱點快取的架構優化分散式快取架構優化
- 增量檢查點(incremental checkpoint)的解疑REM
- Java函式式開發——優雅的Optional空指標處理Java函式指標
- 澳洲市場開發的幾點體會(轉)
- 放棄測試優先式開發(TDD)
- hibernate實際開發中用到的東西,其缺點和優點
- 低程式碼開發平臺有哪些優點
- 實踐中的增量計劃 (轉)
- python語言的優點是什麼?python開發Python
- 對軟體開發的一點心得體會 (轉)
- 發現一個開源專案優化點,點進來就是你的了優化
- ORACLE增量檢查點,LRBA,BWROracle
- 分散式儲存的六大優點分散式
- 全域性檢查點和增量檢查點
- 對於增量檢查點工作原理的理解
- 傢俱小程式開發優勢與功能特點
- 要點提煉|開發藝術之效能優化優化
- WebApp 開發框架推薦以及優缺點分析WebAPP框架
- iOS 實際開發中對效能優化的幾點建議iOS優化
- JS開發中函式知識點梳理(二)JS函式
- 【Android開發點滴】自定義Toast樣式AndroidAST
- 【手摸手玩轉 OceanBase 163】發起增量備份
- 併發程式設計的優缺點程式設計
- Oracle 檢查點佇列與增量檢查點Oracle佇列
- 全域性檢查點和增量檢查點(zt)
- FinC:國人開發的嵌入式程式語言(轉)
- 沉浸式投影的應用特點及優勢
- javascript匿名函式的優點簡單介紹JavaScript函式
- 工業交換機定製開發步驟和優點
- 十大遊戲開發引擎優缺點對比遊戲開發