軟件開發基礎-一個軟件項目的生命周期是怎樣的(軟件項目生命周期六個階段)
云端云端源想IT培訓,幫你輕松拿offer”
嗨~ 今天的你過得還好嗎?
又到周三了
希望你可以做顆星星
有棱有角
還會閃閃發光!
– 2023.03.15 –
每個程序員都有其不同的創造力,有的人自認為是上帝的寵兒,卻忘了良好的軟件系統不可能缺少團隊合作的力量。一個良好的軟件項目就像是一個生態系統,生產者、消費者、分解者,每一個環節都不可或缺,只有整個生態分工協作,才能打造健康、可拓展、可持續的軟件系統。
今天就帶大家了解一個軟件項目的生命周期是怎樣的,不同程序員擔任的角色與分工是怎樣的?
一、什么是軟件項目開發周期?
軟件開發周期,也叫軟件開發流程,系統開發流程。軟件開發周期可以保證系統從需求分析,系統設計,開發實現,再到發布,部署生產的整個流程中順利進行。
由于各行各業的需求都具有個性化,單一的解決方案也不能適用于各個行業的實際。因此,在擁有不同的行業背景和需求的企業中,現代軟件開發流程在怎樣描述、組織和管理工作上不會有太多的偏差。
現代軟件開發流程,主要具有以下幾個模型:
- 流水線模型
- 可迭代的模型
- 敏捷的模型
- 快速的模型
一個系統的開發流程(SDLC)主要包括:設計,開發,維護,迭代,修改,測試,發布等步驟,但總結起來其實主要有以下五個步驟:計劃,設計,開發,測試,部署。
1.計劃
商業計劃書是項目發起人最初的想法,這時,整個項目的前景和邊界已經被定義了出來。團隊的高層充分研究了在經濟、可操作、技術領域上的可行性。并且在策劃階段,質量保證和風險評估也被準備好,以降低任何不可預測的風險。商業論證文檔應該在這一階段準備好,總結歸納所有的想法,并對計劃有一個宏觀的把控。
這類似于商業計劃——BP。科研工程項目可能在工程和科研上都有所側重,但是每個項目具體的側重點也不盡相同。假如在項目成立之初,項目定位的時候不夠清晰,會導致后邊做計劃時出現諸如:開發側重點,功能實現及頁面設計上的問題。
所以,根據甲方的一些要求和資源,制定清晰的、可操作的、可行的計劃是非常重要的。若是項目初期的功能需求文檔沒有清晰的定位,加之甲方自己沒有一個準確的模型,將會導致后邊出現推倒重來的慘劇。
2.設計
產品設計需要以清晰明確的需求為前提,軟件需求說明文檔應當包含需求的所有細節,并且在產品設計之前應該征得用戶和客戶的同意。
根據需求說明文檔,將會有很多的產品設計架構被提出來,這些將會被團隊的中層成員寫成設計說明文檔,并且得到團隊的高層及項目股東的評審。設計說明文檔將會基于一些標準進行評估,這些標準包括但不限于預算、時間、用戶友好性,風險性、集成度等。
從整個系統的生命周期來看的話,甲方隨時添加刪除需求是經常發生的事,但做到整體架構的統一也是最初設計必須做到的。
系統設計的過程中,本著分層和模塊化的原則,可以比較清晰的描述出整個系統運行的邏輯。系統的每個子模塊要實現什么功能,這些子模塊在前端顯示如何,后臺的邏輯實現如何,數據庫如何設計,這些都應該在這個階段加以考慮的。
3. 開發
在得到最后的設計說明文檔后,實施階段立刻開始被執行,程序員開始根據項目的設計說明文檔開發軟件。公司應該提供統一的開發工具,以保證所有的程序開發人員可以并行的工作。在技術層面上,軟件開發人員應該編寫系統功能說明書 以記錄系統提供的所有功能。
在開發前統一操作環境是非常必要的,企業內部都會有自己的標準,這會大大提高企業開發效率,避免因沖突引起的時間浪費。
4. 測試
軟件測試應該被視為一個子階段,并且應該在所有階段中被執行。對項目中完成的每個功能都會進行全面的測試,包括:自測、功能單元測試、小組之間互相測試、項目內部功能聯測、用戶真實測試等,在測試過程中會對功能問題進行不斷的完善。最終,質量控制專家從體系結構,安全性,與其他系統的集成等各個方面對軟件進行整體檢查。
功能測試是程序開發人員經常做的事情,功能測試工作會貫穿程序開發的始終。用戶測試也是非常重要的,系統最終是要給用戶去用,用戶習慣與開發人員的習慣不同,所以他們的測試就很值得借鑒,這樣可以提高我們系統的可用性。
5. 部署
部署前應確保所有的測試環節已通過,并且軟件系統已經能夠正確地成功運行,最后決定是否應該將軟件部署在生產環境中。部署計劃應該清晰明確,并且獲得批準實施。
安裝手冊,管理手冊,用戶手冊等都應該編寫完整。技術團隊應該準備好回答涉及軟件系統所有的問題。根據最終的軟件系統,編寫好應急預案 ,對于新部署的軟件來說,通用的應急解決方案是后置軟件發布日期并且要重新進行測試。對于已經上線的軟件來說,很有可能會回滾到以前的版本中,后置發布時間,并且解決已經發現的缺陷。
現在Java的WEB項目部署起來還是比較簡單的,但是在部署前,應該做好充分的準備,各種突發情況的緊急處理,部署失敗后的回滾等都需要被充分考慮。
二、為什么需要軟件開發周期?
知道了軟件開發周期,我們再來說說,一個項目為啥需要軟件開發周期?下面小編總結了三個原因:
1、 質量保證和質量控制
質量保證(Quality Assurance)是在產品的開發過程中一系列的確保產品質量的活動。與此同時,質量控制(Quality Control)是在產品開發完成后,一系列的確保質量的活動。
QA是保證產品在開發的過程中防止出現缺陷,QC是識別在已經開發完成的產品中的缺陷。QA的目標是盡可能地消除軟件缺陷,以此來提高QC這一步操作。QC目標是識別在QA環節中遺漏的缺陷。因此,在QA主動的質量處理和QC響應式的質量處理下,可以保證發布的產品可以達到一個高標準,而且不會帶來意想不到的問題。
2、更容易地實現控制
在軟件開發周期的5個核心的步驟中,有許多的文檔需要編寫,應準備多份文檔,為程序員和測試人員提供指導和說明。
比如:
- Business Case; 商業論證
- Software Requirement Specification(SRS); 軟件需求說明
- Design Document Specification(DDS); 設計文檔
- Functional Specification; 功能說明
- Test Plan; 測試計劃
- Deployment Plan; 部署計劃
在這些文檔的幫助下,將不會有一些意外發生。用戶需求將會得到滿足,另外,項目進度也會符合項目的計劃。
3、滿足用戶的需求,甚至超出用戶的期望
質量保證和質量控制可以保證產品按照用戶的需求那樣進行發布,但是,用戶在將來應用系統的過程中,由于技術的迭代和商業環境的變化,非常有可能會增加系統的功能。
因此在設計階段,設計師不僅應該給出用戶需求的解決方案,同時也應該考慮到系統的靈活性、可用性,以及由于系統用戶的增加帶來的最大系統負載問題等。這些隱藏的需求,通常不會出現在用戶需求中,但是他們希望每一個產品都是經過深思熟慮的。
三、一個軟件開發項目中有哪些角色?
為了有效的完成上面所提到的軟件開發周期中的五個階段,三類關鍵成員應該總是參與到項目中。
他們的活動占據了整個項目95%的項目周期,在不同的階段擔任著不同的角色,來檢查和監控其他人的工作以確保在整個項目周期中,做出的每一個決定都是合規和必要的。
這三類關鍵成員分別是項目經理、商業分析/系統分析人員和程序開發者/方案開發者,他們在整個項目中負責的內容如下:
01項目經理
- 定義項目的范圍和目標
- 預算控制
- 資源分配
- 業務文檔
- 協調項目高層管理
- 推出和批準
02商業分析/系統分析
- 在產品實現期間,與終端用戶進行交流
- 業務和系統文檔
- 評估業務需求
- 設計系統架構,業務流程和用戶界面
- 確保業務需求被正確的分析以及方案的正確實施
- 確保商業和技術角色之間關系
- 質量評估和控制
03程序開發者/方案開發者
- 結實業務需求,并將商業需求轉換成可部署的解決方案
- 技術研究
- 解決產品缺陷
- 準備功能規范
- 按照約定的策略進行測試
今天的分享就到這里了,想了解更多前端知識,記得常來看我!
我們下期再見!
END
文案編輯|云端學長
文案配圖|云端學長
內容由:云端源想分享