軟體開發的8大主流方法介紹
軟體開發方法是一種使用早已定義好的技術集及符號表示習慣,來組織軟體生產的過程。
軟體開發需要嚴謹工作方法。軟體開發的方法有很多,不同的開發方法適用於不同的軟體項目,具體使用哪種方法,還需要根據軟體情況來確定。
結構化方法
結構化方法由結構化分析、結構化設計、結構化程序設計構成,它是一種面向數據流的開發方法。
結構化分析
是根據分解與抽象的原則,按照系統中數據處理的流程,用數據流圖來建立系統的功能模型,從而完成需求分析工作。
結構化設計
根據模塊獨立性準則、軟體結構優化準則將數據流圖轉換為軟體的體系結構,用軟體結構圖來建立系統的物理模型,實現系統的概要設計。
結構化程序設計
使用3種基本控制結構構造程序,任何程序都可以由順序、選擇和重複3種基本控制結構構造。
結構化方法總的指導思想是自頂向下、逐層分解,它的基本原則是功能的分解與抽象。適合於數據處理領域的問題,不適合解決大規模的、特別複雜的項目,且難以適應需求的變化。
Jackson方法
Jackson方法是一種面向數據結構的開發方法。
JSP(JacksonStructure Programming)方法是以數據結構為驅動的,適合於小規模的項目。JSP方法首先描述問題的輸入/輸出數據結構,分析其對應性,然後推出相應的程序結構,從而給問題的軟體過程描述。
JSD方法是JSP方法的擴展,是一個完整的系統開發方法。首先建立現實世界的模型,再確定系統的功能需求,對需求的描述特彆強調操作之間的時序性。它是以事件作為驅動的,是一種基於進程的開發方法,所以適用於時序特別較強的系統,包括數據處理系統和一些實時控制系統。
原型方法
原型方法比較適合於用戶需求不清、需求經常變化的情況。當系統規模不是很大也不太複雜時,採用該方法比較好。
面向對象方法
面向對象方法正是以對象作為最基本的元素,它也是分析問題、解決問題的核心。面向對象方法包括面向對象分析、面向對象設計和面向對象實現。
UML是面向對象的標準建模語言,通過統一的語義和符號表示,使各種方法的建模過程和表示統一起來,現已成為面向對象建模的工業標準。
敏捷方法
極限編程(XP):XP是一種輕量級(敏捷)、高效、低風險、柔性、可預測的、科學的軟體開發方式。它由價值觀、原則、實踐和行為4個部分組成,彼此相互依賴、關聯,並通過行為貫穿於整個生存周期。
4大價值觀:溝通、簡單性、反饋、勇氣
5個原則:快速反饋、簡單性假設、逐步修改、提倡更改、優質工作
12個最佳實踐:計劃遊戲(快速制定計劃、隨著細節的不斷變化而完善)、小型發布(系統的設計要能夠儘可能早地交付)、隱喻(找到合適的比喻傳達信息)、簡單設計(只處理當前的需求,使設計保持簡單)、測試先行(先寫測試代碼,然後再編寫程序) 、重構(重新審視需求和設計,重新明確地描述他們以符合新的和現有的需求)、結對編程、集體代碼所有制、繼續集成(可以按日甚至按小時為客戶提供可運行的版本)、每周工作40小時、現場客戶和編碼標準。
水晶法
水晶法認為每一個不同的項目都需要一套不同的策略、約定和方法論。
並列爭求法
並列爭求法使用迭代的方法,其中,把每30天一次的迭代稱為一個「衝刺」,並按需求的優先順序別來實現產品。
自適應軟體開發(ASD)
ASD有6個基本的原則
- 有一個使命作為指導;
- 特徵被視為客戶價值的關鍵點;
- 過程中的等待是很重要的,因此「重做」與「做」同樣關鍵
- 變化不被視為改正,而是被視為對軟體開發實際情況的調查。
- 確定的交付時間迫使開發人員認真考慮每一個生產的版本的關鍵需求。
- 風險也包含其中。
推薦閱讀: