天天看點

軟體生命周期詳解

大家好,我是十一,今天我們就軟體生命周期進行詳細的解說。讓大家整體的認識下軟體的"成長曆程"。

什麼是軟體生命周期?

軟體生命周期是軟體從産生到廢棄的整個過程,周期内有問題定義、可行性分析、需求分析、系統設計、編碼、調試和測試、部署/發版、維護更新到廢棄等階段。

那軟體生命周期各個階段都是什麼呢?

我們先看張購物圖(為了這張圖我眼睛也是要廢了~)

軟體生命周期詳解

上圖呢就是一個完整的淘寶定制購物過程圖了,那麼購物過程跟咱們軟體又有什麼關系呢?整個過程對比《淺聊軟體開發》裡的軟體生命周期圖你能一一對應上嗎?

大家先自己想想~(來,閉上眼睛,想一想~)

好啦,我來揭曉答案,大家看看你想的對不對!

首先,為故事找一主人公,暫且叫心心吧,心心定制了需求,然後跟客服溝通是否可做(需求可行性分析),溝通後選擇喜歡的樣式、尺碼等下單,商家拿到訂單後根據訂單要求出設計圖(原型設計),出圖後跟心心溝通看是否是心心想要的(需求确認),得到肯定答複後投入生産(開發),生産完成後内部質檢員檢查(測試),檢查無誤後快遞給心心(上線/發版),心心拿到衣服開始試穿以及檢視是否有品質問題(測試),很滿意此次購物,于是給了滿意好評後,訂單關閉,整個購物過程完成。

大家可能會說那支援維護沒展現呀?

那如果心心穿了一周後發現衣服有掉色/圖案一洗就花了等等品質問題呢?是不是就該去找客服了,跟客服溝通後商家會進行處理,換貨/退貨/修複等等,這個就是支援維護啦。

注意哦:購物圖中的“商家根據要求出設計圖樣式” 這個跟軟體流程圖中的設計不是一個東西!

商家根據要求出設計圖樣式:是原型設計,即做一個靜态的類似成品展示給客戶,讓客戶确認是否是自己想要的,屬于需求确認

軟體流程圖中的設計:是開發設計,設計要實作産品那麼需要用的語言、架構、技術等等;對應購物圖中的商家生産部分,商家生産前需要決定各種用什麼布、線、縫制方式、配圖材料/方法等等。

上述整個過程其實跟實際的軟體産品的整個流程比較貼切了。你了解了嗎?我畫了一張完整的軟體流程圖,供大家參考~

軟體生命周期詳解

需求定義(Ruquest for Proposal):

描述:定義出本次任務都需要做什麼,做成什麼樣子(比如,買家跟賣家說我要什麼樣子的衣服,然後雙方開始協商,最終達成一緻意見,這個過程就是需求定義)。

參與者:産品經理,需求,客戶

可行性分析:

描述:由項目組相關成員去研究需求是否可行,能不能做出來(比如:商家拿訂單需求去找設計和工廠,問設計圖形或者樣式能否做出來;問工廠在相應的布料上能不能做出設計圖樣式的衣服,這個過程就是可行性分析)

參與者:産品經理,項目經理,開發,架構師

需求分析/使用者需求(Requirements Analysis):

描述:需求分析其實是在做需求細化,按照任務說明書中的任務内容和名額具體細化各個點,細化到每個框每個按鈕的樣式,輸入輸出等各項值(比如:設計和工廠分别就這個衣服做材料分析,分析出這個衣服需要多少布料,扣子什麼樣式、顔色,不同布料具體用多少等等,這個過程叫做需求分析);統一整理編寫成《需求說明書/需求規格說明書》。

參與者:産品經理,項目經理,測試/品質管理者(很多公司把這個統稱為QA),開發,架構師

評審:(從圖中可以看出,各個階段幾乎都需要做評審,在此處統一描述)

描述:評審就是做審查,對這個階段的工作進行審查,看是否偏離或者有遺漏(比如:設計和工廠的各個環節都有相關的審查,審查材料是否合格、設計是否符合規定、按照勞工/設計出的材料需求是否足夠或者多餘等等,這些審查都是評審);評審一般由相應從業人員來參與

參與者:每個階段的評審一般都是各職能部門内部稽核,也可以申請其他相關人員稽核,比如需求評審,一般是産品經理、項目經理、測試、開發一起評審;系統設計一般是項目經理、開發評審;測試政策評審一般是測試組内部評審等等

設計(Design):

描述:

架構師根據需求确定産品或者項目的場景、特點,選擇合适的架構,技術使項目實作最優化。在此上将系統進行概要設計,包括系統總體資料結構、資料庫結構、子產品結構以及它們之間的關系等。開發人員根據概要設計對具體子產品進行詳細設計,包括接口參數、參數等。此處設計會形成概要設計文檔和詳細設計文檔。

參與者:項目經理,架構師,開發,測試

編碼(Coding):

描述:開發人員根據詳細設計文檔對系統進行子產品化開發,在确定參數和接口的情況下,根據需求對子產品内部進行方法級别的設計和編碼以及自測,對産品功能進行一一實作

參與者:開發

提測:

描述:開發人員完成一個小疊代/小功能,且完成自測(開發編碼完成後,一般都會自己檢測下),于是向測試部門發起提測,一般以郵件方式或者任務管理工具任務流方式向測試部門通知xxx子產品/功能可以測試

參與者:任務責任人(開發)、測試

測試政策:

描述:測試組長要根據《任務說明書》和《需求說明書》來決定此次測試的思路/類别(功能測試/性能測試/文檔性測試或者幾種組合)、測試方式方法、flag(任務名額,做到什麼程度)等。也有很多公司把測試政策作為測試方案中的一部分。

參與者:測試組長/測試leader/自身的測試工程設計師

測試計劃(Testing plan):

描述:測試組長要根據《任務說明書》和《需求說明書》開始編寫《測試計劃》,其中包括人員,軟體硬體資源,測試點,內建順序,進度安排和風險識别等内容。

參與者:測試組長/測試leader

測試方案:

描述:測試方案一般由對需求很熟的高資深的測試工程師設計,測試方案要求根據《需求說明書》上的每個需求點設計出包括需求點簡介,測試思路和詳細測試方法三部分的方案。

參與者:測試工程師

測試設計:

描述:主要是對測試用例和規程的設計。測試用例是根據《測試方案》來編寫的,測試用例需要包括測試項,用例級别,預置條件,操作步驟和預期結果。同樣,測試用例也需要評審。

參與者:相關測試工程師

測試執行(Testing):

根據測試用例對開發提測部分進行,通過的标記通過,不通過的送出有品質的Bug(問題缺陷)。這裡要說下bug,測試對出問題的部分送出bug到相關開發工程師,開發根據問題描述,進行修訂,修訂完成後會将bug流轉給相關測試人員(通過缺陷管理工具配置設定/郵件通知相關測試人員bug修訂完成,可測),測試需要對bug以及bug相關子產品進行測試回歸。

參與者:相關測試工程師、責任開發工程師

測試報告:

描述:最終測試完成(所有測試用例通過/已挂起)會出測試報告對以上測試進行總結性描述。

部署/發版(Deploy):

描述:經過前面的各個階段,産品已經可以出售或者面見大衆了;由測試進行冒煙測試,冒煙測試通過後配置管理人員進行封版、版本制作(針對産品來說)/部署上線(針對項目應用來說)。

參與人:配置管理人員,測試

支援維護(Production Support):

描述:支援維護類似于我們日常中的售後,主要是對已賣出的産品/已上線的項目進行日常維護。包括糾錯性維護和改進性維護兩個方面。

參與人:支援維護人員/售後工程師

注意:以上的軟體開發流程隻是一個最基本的模闆,但是公司内部有自己的組織架構,可根據項目酌情調整。隻要适合自己的項目那麼就是對的,就是好的。

軟體生命周期詳解

繼續閱讀