軟體開發過程

軟體開發過程(英語:software development process),或軟體過程(英語:software process),是軟體開發的開發生命周期(software development life cycle),其各個階段實現了軟體的需求定義與分析、設計、實現、測試、交付和維護。軟體過程是在開發與構建系統時應遵循的步驟,是軟體開發的路線圖。

基本介紹

  • 中文名:軟體開發過程
  • 外文名:software development process
  • 領域:計算機
簡介,歷史,實踐,敏捷軟體開發,

簡介

軟體過程方法涉及交付(deliverables)和工件(artifacts)的預定義、軟體產品在項目團隊中的開發與維護。過程方法的套用可以完善軟體設計產品管理項目管理敏捷開發是現代軟體開發中被廣泛使用的範式。過程模型(英語:process models)則意圖解決軟體過程中的混亂,將軟體開發過程中的溝通、計畫、建模、構建和部署等活動(activities)有效地組織了起來。
軟體過程為軟體的開發定義了一個框架,將自動化工具、軟體開發方法和質量管理緊密結合在了一起。軟體過程構成了軟體項目管理控制的基礎,創建了一個環境以便於技術方法的採用、工作產品(模型、文檔、報告、表格等)的產生、里程碑(milestones)的創建、質量的保證、正常變更的正確管理。

歷史

軟體開發方法(英語:software development methodology, SDM)框架在20世紀60年代開始出現。在信息系統的構建中,系統開發生命周期(SDLC)可被視作最早的形式化方法。SDLC的主要想法是,在採用框架時應當“以審慎、結構化和方法化的方式開發信息系統。生命周期中的每個階段,從概念提出到系統交付,都應當嚴格、依次地進行”。當時的軟體開發目標是,“在大型商業集團中開發大規模的功能性商業系統,系統需要承載大量數據處理和數據運算任務”。
方法、過程和框架覆蓋範圍甚廣,包含從日常開發的步驟到為特定項目量身定製的靈活框架。一些情況下,組織會正式發布描述過程的文檔。
軟體開發方法歷史中的重要事件有:
  • 1969年,結構化編程
  • 1980年,結構化系統分析與設計方法(Structured Systems Analysis and Design Method, SSADM)
  • 面向對象程式設計,起步於1960年代,1990年代中期成為一種主流方法
  • 1991年,快速應用程式開發
  • 1995年,Scrum
  • 1998年,由IBM維護的統一軟體開發過程
  • 1999年,極限編程
  • 2005年,敏捷統一過程(Agile Unified Process, AUP)
  • 2010年代,基於大規模的敏捷框架(Scaled Agile Framework, SAFe)
  • 2010年代,大規模Scrum(Large-Scale Scrum, LeSS)

實踐

軟體工程領域,項目生命周期刻畫了一個工程從起始到完成,是如何進行計畫、控制和監控的模型。在項目生命周期的早期和後期,軟體架構需求系統定義是一個問題:
  1. 系統/軟體的市場是什麼?
  2. 競爭對手有哪些?
  3. 系統/軟體的運行平台是什麼?
  4. 這個項目可用的時間有多少?
  5. 項目需要是什麼?
經過這些年,從最早也最簡單的瀑布模型開始,已經開發出了許多不同的模型。但是,隨著軟體變得更大和更複雜,這種開發方法已經出現負面影響,尤其是牽扯到有大型團隊的時候。疊代的模型得到了發展,它包括原型法、演化原型法、增量開發螺旋模型V模型混沌模型
這些模型的使用大部分都局限於項目的總體管理,但是現在認為,如果在項目的單獨部分都由最合適的模型控制,則這個項目受到了更好的控制。例如,一個項目用增量開發模型,但是在每一個增量過程,文檔是按照瀑布模型創建和管理,而代碼開發使用V模型管理。
每個項目的生命周期的正規性和複雜性受到很多因素的制約,包括預算約束,經驗,項目規模和複雜度,開發隊伍。

敏捷軟體開發

敏捷軟體開發(英語:Agile software development),又稱敏捷開發,是一種從1990年代開始逐漸引起廣泛關注的一些新型軟體開發方法,是一種應對快速變化的需求的一種軟體開發能力。它們的具體名稱、理念、過程、術語都不盡相同,相對於“非敏捷”,更強調程式設計師團隊與業務專家之間的緊密協作、面對面的溝通(認為比書面的文檔更有效)、頻繁交付新的軟體版本、緊湊而自我組織型的團隊、能夠很好地適應需求變化的代碼編寫和團隊組織方法,也更注重軟體開發過程中人的作用。
敏捷軟體開發(或稱快速程式開發RAD)描述了一套軟體開發的價值和原則,在這些開發中,需求和解決方案皆通過自組織跨功能團隊達成。敏捷軟體開發主張適度的項目、進化開發、提前交付與持續改進,並且鼓勵快速與靈活的面對開發與變更。這些原則支持許多軟體開發方法的定義和持續進化。

相關詞條

熱門詞條

聯絡我們