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