複製鏈接
請複製以下鏈接發送給好友

軟件開發流程

鎖定
軟件開發流程即軟件設計思路和方法的一般過程,包括對軟件先進行需求分析,設計軟件的功能和實現的算法和方法、軟件的總體結構設計和模塊設計、編碼和調試、程序聯調和測試以及編寫、提交程序等一系列操作以滿足客户的需求並且解決客户的問題,如果有更高需求,還需要對軟件進行維護、升級處理,報廢處理。 [1] 
中文名
軟件開發流程
外文名
Software development process
主    體
軟件
應    用
軟件設計
目    的
滿足客户的需求並且解決客户的問題

軟件開發流程簡介

軟件開發流程週期和階段

從管理的角度,即從業務和經濟的角度來看,軟件的生命週期包括四個主要階段 [1] 
  • 起始階段(Inception)-- 有一個好的想法:具體構想出終於產品的設想和它的業務案例,確定項目的範圍 。
  • 細化階段(Elaboration)--計劃必要的活動和所需資源,具體確定功能並設計構架 。
  • 構建階段(Construction)-- 構建產品, 發展最初的設想、構架和計劃,直到一個能夠交付給用户的產品(完畢後的設想)完畢。
  • 移交階段(Transition)-- 將產品移交用户使用,包含:製造、交付、培訓、支持、維護,直到用户愜意。
完畢這4個階段稱為一個開發週期,它產生的軟件稱作第一代(generation)。 除非產品的生命結束, 一個現有產品能夠通過反覆下一個同樣的起始、細化、構建和移交四階段,各個階段的側重點與第一次不同,從而演進為下一代產品。 這個時期我們稱之為演進(evolution)。最後伴隨着產品經過幾個週期的演進,新一代產品也不斷被製造出來。比如,演進週期的啓動可能由下面這幾項觸發:用户建議增強功能、用户環境的改變、重要技術的變更,以及應對競爭的需要。
實際中,週期之間會有輕微重疊:起始階段和細化階段可能會在上一個週期的移交階段未結束時就開始了。

軟件開發流程迭代

從技術的角度來 看,軟件開發能夠視為一連串的迭代過程,通過這些迭代被開發的軟件得以增量演進。 每次迭代都以一個可運行的產品的公佈而結束, 該產品可能是完整版本號的一個子集,但從project的或用户的角度來看是實用的。 每次公佈都伴隨一些支持性工件:版本號描寫敍述、用户文檔和計劃等。
一次迭代包含下面活動: 計劃、分析、設計、實施和測試。 依據迭代在開發週期中所處位置的不同,這些活動分別佔不同的比例。
管理角度和技術角度之間是協調的, 並且各個階段的結束還和各次迭代的結束保持同步。換句話説,每一個階段能夠分為一次或多次迭代過程。

軟件開發流程差別

對於不同的項目而言,每一個階段的側重點,入口和出口準則,一個開發週期的各個工件,以及各次迭代的數目和長度都會不同。這主要取決於作為過程判別式的的四個主要項目特徵。依照影響程度降序排列,它們是:
  • 業務環境
    • 契約性工作,開發人員基於給定的客户規格説明僅僅為該客户開發軟件。
    • 猜測性開發或商業開發,開發人員開發軟件以推向市場。
    • 內部項目, 開發人員和客户在同一個機構中。
  • 軟件開發工作量的規模:依照一些度量標準來確定,比方 Delivered Source Instructions,或功能點、人-月數,或者僅僅依照成本。
  • 新穎程度:對於軟件開發組織,這個軟件新穎程度怎樣有多新,尤其是該軟件是否為第二次或更後面的週期。這項差別包含了組織和過程的成熟度、資產、技術水平,當前的技狀況,以及諸如組建並培訓團隊、獲取工具及其它資源這種問題。
  • 應用類型,目標領域:MIS,命令和控制系統, 嵌入式實時系統, 軟件開發環境工具等等, 尤其時詳細的應用領域會給開發提出特殊的約束條件:安全性、性能、國際化、內存限制等。

軟件開發流程開發流程

軟件開發流程需求分析

1.相關係統分析員向用户初步瞭解需求,然後用相關的工具軟件列出要開發的系統的大功能模塊,每個大功能模塊有哪些小功能模塊,對於有些需求比較明確相關的界面時,在這一步裏面可以初步定義好少量的界面。
2.系統分析員深入瞭解和分析需求,根據自己的經驗和需求用WORD或相關的工具再做出一份文檔系統的功能需求文檔。這次的文檔會清楚列出系統大致的大功能模塊,大功能模塊有哪些小功能模塊,並且還列出相關的界面和界面功能。
3.系統分析員向用户再次確認需求。

軟件開發流程概要設計

首先,開發者需要對軟件系統進行概要設計,即系統設計。概要設計需要對軟件系統的設計進行考慮,包括系統的基本處理流程、系統的組織結構、模塊劃分、功能分配、接口設計、運行設計、數據結構設計和出錯處理設計等,為軟件的詳細設計提供基礎。 [2] 

軟件開發流程詳細設計

概要設計的基礎上,開發者需要進行軟件系統的詳細設計。在詳細設計中,描述實現具體模塊所涉及到的主要算法、數據結構、類的層次結構及調用關係,需要説明軟件系統各個層次中的每一個程序(每個模塊或子程序)的設計考慮,以便進行編碼和測試。應當保證軟件的需求完全分配給整個軟件。詳細設計應當足夠詳細,能夠根據詳細設計報告進行編碼。

軟件開發流程編碼

軟件編碼階段,開發者根據《軟件系統詳細設計報告》中對數據結構、算法分析和模塊實現等方面的設計要求,開始具體的編寫程序工作,分別實現各模塊的功能,從而實現對目標系統的功能、性能、接口、界面等方面的要求。在規範化的研發流程中,編碼工作在整個項目流程裏最多不會超過1/2,通常在1/3的時間,所謂磨刀不誤砍柴功,設計過程完成的好,編碼效率就會極大提高,編碼時不同模塊之間的進度協調和協作是最需要小心的,也許一個小模塊的問題就可能影響了整體進度,讓很多程序員因此被迫停下工作等待,這種問題在很多研發過程中都出現過。編碼時的相互溝通和應急的解決手段都是相當重要的,對於程序員而言,bug永遠存在,你必須永遠面對這個問題!

軟件開發流程測試

測試編寫好的系統。交給用户使用,用户使用後一個一個的確認每個功能。軟件測試有很多種:按照測試執行方,可以分為內部測試和外部測試;按照測試範圍,可以分為模塊測試和整體聯調;按照測試條件,可以分為正常操作情況測試和異常情況測試;按照測試的輸入範圍,可以分為全覆蓋測試和抽樣測試。以上都很好理解,不再解釋。總之,測試同樣是項目研發中一個相當重要的步驟,對於一個大型軟件,3個月到1年的外部測試都是正常的,因為永遠都會有不可預料的問題存在。完成測試後,完成驗收並完成最後的一些幫助文檔,整體項目才算告一段落,當然日後少不了升級,修補等等工作,只要不是想通過一錘子買賣騙錢,就要不停的跟蹤軟件的運營狀況並持續修補升級,直到這個軟件被徹底淘汰為止。

軟件開發流程軟件交付

在軟件測試證明軟件達到要求後,軟件開發者應向用户提交開發的目標安裝程序、數據庫的數據字典、《用户安裝手冊》、《用户使用指南》、需求報告、設計報告、測試報告等雙方合同約定的產物。
《用户安裝手冊》應詳細介紹安裝軟件對運行環境的要求、安裝軟件的定義和內容、在客户端、服務器端及中間件的具體安裝步驟、安裝後的系統配置。
《用户使用指南》應包括軟件各項功能的使用流程、操作步驟、相應業務介紹、特殊提示和注意事項等方面的內容,在需要時還應舉例説明。

軟件開發流程驗收

用户驗收。

軟件開發流程維護

根據用户需求的變化或環境的變化,對應用程序進行全部或部分的修改。 [2]  [3] 

軟件開發流程軟件維護

維護是指在已完成對軟件的研製(分析、設計、編碼和測試)工作並交付使用以後,對軟件產品所進行的一些軟件工程的活動。即根據軟件運行的情況,對軟件進行適當修改,以適應新的要求,以及糾正運行中發現的錯誤。編寫軟件問題報告、軟件修改報告。 [2] 
title title
1、軟件數據庫管理
2、用户跟蹤培訓
3、故障分析解決

軟件開發流程軟件升級

需求調整分析
軟件功能拓展
優化系統

軟件開發流程報廢處理

軟件不能適應業務發展
新軟件項目立項
企業數據信息備份

軟件開發流程舉例解析

1 例如某家公司想找人訂做一套人事管理軟件,從某種渠道上得知某家軟件開發公司提供這種服務,所以進行聯繫。
2 軟件開發公司會派專門的軟件工程師到他們那裏去了解我們要設計一個什麼的東西給用户用,然後回來做個方案給他們,其中方案的內容包括:開發出來的軟件大概的界面是怎樣?方便什麼人使用?什麼人可以使用什麼功能?方便到什麼程度?大概的硬件要求是怎樣等?
3 用户看了方案後,確定他們就是要做一套這樣的軟件,開發方就開始開發這套軟件。
4 開發方把開發出來的軟件交給用户使用,其中在使用的過程中哪裏使用不方便或哪裏達不到要求,開發方會第一時間修改這些功能,直到用户要求的所有功能都能很完美的解決掉。
5 用户如果因為公司發展壯大的需要,需要將軟件升級開發方會做功能拓展。
參考資料
  • 1.    李政.軟件開發流程實訓 :中國財政經濟出版社,2005.9
  • 2.    談文蓉,崔夢天.軟件開發項目實踐:西南交通大學出版社,2016.7
  • 3.    厲小軍,潘雲,謝波.軟件開發過程及規範 :清華大學出版社,2013.6