什么是軟件的生命周期,以及常見的開發測試模型

目錄

一、軟件的生命周期?

1、什么是生命周期?

2、每個階段都要做些什么??

二、常見的開發模型

1、瀑布模型

2、螺旋模型

3、增量模型、迭代模型?

4、敏捷模型

scrum模型

三個角色

五個會議


一、軟件的生命周期?

1、什么是生命周期?

生命周期是指從生命的開始到結束的這一段時間,以人為例,就是生命從孕育開始,中間經歷童年、少年、青年、中年、老年,最終到死亡;而軟件、產品也是如此,軟件的生命周期是從需求的產生,再經過需求的計劃、設計,程序開發,程序測試等階段,最終到軟件不再維護時,軟件的生命周期也就結束了。

那什么是需求呢?

首先需求分為用戶需求軟件需求

用戶需求:可以理解為是甲方提出的要求,如果沒有甲方,那么就是終端用戶使用產品時必須要完成的任務。其需求一般比較簡略,往往是一句簡單的話。

比如:實現?個軟件的登錄功能,或者你朋友說,幫我寫一個作業。那么你朋友就是甲方(當然,作為你的甲方肯定要他給你工資哈)。

軟件需求:或者叫功能需求,該需求會詳細描述開發人員必須實現的軟件功能。軟件需求也是測試人員進行測試工作的基本依據。

那么軟件需求與用戶需求有什么區別?

用戶需求:

幫我寫一個作業。

軟件需求:

需要你和他反復的溝通了解更加詳細具體的需求,來制定解決方案

比如:

“什么作業”? “計算機作業”

“什么時候交”? “下周”

.........

最終理解清楚用戶需求之后,知道朋友想要你幫他做python作業,那么再去研究其要求,怎么做等等的具體步驟,這就是軟件需求

具體的軟件測試會做成一份文檔,提供給開發人員及測試人員。

了解了需求,我們現在來看一個案例

假如我想要建造?套房子,房子的?命周期(流程)是什么樣的?

因此,我們就得到了軟件(開發)的生命周期:

需求分析??計劃??設計??編碼??測試??運行維護

2、每個階段都要做些什么??

需求分析:分析用戶需求是否合理,分別從市場需求、技術等方面進行分析,最后會輸出需求等文檔。

計劃:對成立的需求執行需求執行計劃,比如,多長時間內完成該需求,每個時間段具體完成哪些功能,最后會輸出計劃等文檔。

設計:將需求細化成一個個任務,團隊成員各司其職領取任務并進行技術計劃,最后輸出技術等文檔。

編碼:開發人員參考需求文檔、設計文檔、交互圖等文件進行代碼的編寫,最后輸出代碼等文檔。

測試:測試人員需要介入到軟件的測試中,參考測試用例對軟件進行測試,最后輸出測試用例、測試設計與計劃、測試報告等文檔。

運行維護:測試項目結束后,項目需要進行上線,并對產品進行線上的維護,線上維護主要分為三個方面:修護性維護、完善性維護和預防性維護。

二、常見的開發模型

1、瀑布模型

瀑布模型在軟件工程中占有重要地位,是所有其他模型的基礎框架。瀑布模型的每?個階段都只執行一次,因此是線性順序進行的軟件開發模式。

而瀑布模型其缺陷也很明顯,由于周期太長,產品很遲才能被看到和使用,可能會導致需求/功能過時。并且測試的后置,會使得前面各階段遺留的風險推遲到測試階段才被發現,導致項目大面積返工,失去及早修復的機會。而且必須留有足夠的時間給測試人員,否則導致測試不充分,將缺陷直接暴露給用戶。

因此,瀑布模型適用于需求固定的小項目

2、螺旋模型

螺旋模型在瀑布模型的基礎上,每個階段都引入了風險分析+原型

風險分析很好理解,就是對當前階段可能存在的問題以及風險進行評估,并進行解決,重新輸出文檔。那么什么是原型?

原型就是一個需求在完成開發之后的一個模型,我們需要對這個模型來進行考核評估,如果該模型是合理的,那就進行下一階段,如果不合理,那就回爐重造。

螺旋模型強調嚴格的全過程分險管控,強調各開發階段的質量,解決了瀑布模型對許多些規模龐大、復雜度高、分險大的項目的無力問題。但是項目中可能存在的分險性與分險管理人員的技能水平有直接關系,同時也加大了需求人員、資金、時間的增加和投入,可能導致項目的成本過高。

?因此,螺旋模型適用于規模龐大,復雜度高、分險大的項目

3、增量模型、迭代模型?

?

增量開發模型,鼓勵用戶反饋,在每個迭代過程中,促使開發小組以一種循環的、可預測的方式驅動產品的開發。因此,在這種開發模式下,每一次的迭代都意味著可能有需求的更改、構建出新的可執行軟件版本,意味著測試需要頻繁進行,測試人員需要與開發人員更加緊密地協作。

迭代模型與增量模型是有區別的,就如下圖所示:

增量是逐塊建造的概念。先完成一部分功能,發布后,再根據需求增加新的功能再發布,就比如抖音,最開始只有刷視頻的功能,再后面就上線了商城購物功能。

迭代是反復求精的概念。把所有功能都進行簡化,保留最基礎的功能進行上線發布,然后再對已有的功能進行優化完善,是一個不斷優化的過程。

這兩個模型通常被混合使用,適用于大型的、需求不明確的項目

4、敏捷模型

敏捷模型主要旨在幫助項目快速適應變更請求。因此,敏捷模型的主要目的是促進項目的快速完成。

敏捷模型中有?個重要的《敏捷宣言》,宣言內容:

個體與交互重于過程和工具

可用的軟件重于完備的文檔

客戶協作重于合同談判

響應變化重于遵循計劃

簡單來說,這幾句話的意思就是要注重實在的交流,隨機應變,不用循規蹈矩。

敏捷開發有很多種方式,其中scrum是比較流行的一種。

scrum模型

scrum模型是敏捷模型中的一種,又稱為迭代式軟件增量開發模型。

在scrum模型中主要有三個角色五個重要會議

三個角色

scrum由product owner(產品經理)、scrum master(項?經理)和team(研發團隊)組成

product owner負責整理user story(用戶故事,也就是需求),定義其商業價值,對其進行排序,制定發布計劃,對產品負責。

scrummaster負責召開各種會議,協調項目,為研發團隊服務。

研發團隊則由不同技能的成員組成,通過緊密協同,完成每?次迭代的目標,交付產品。?

五個會議

發布計劃會議:product owner負責講解user story,對其進行估算和排序,發布計劃會議的產出就是制定出這?期迭代要完成的story列表,sprint backlog。

迭代計劃會議:項?團隊對每?個story進行任務分解,分解的標準是完成該story的所有任務,每個任務都有明確的負責人,并完成工時的初估計。

每日例會:每天scrum master召集站立會議,團隊成員回答昨天做了什么今天計劃做什么,有什么問題。

演示會議:迭代結束之后,召開演示會議,相關人員都受邀參加,團隊負責向大家展示本次迭代取得的成果。期間?家的反饋記錄下來,由product owner整理,形成新的story。

回顧會議:項目團隊對本期迭代進行總結,發現不足,制定改進計劃,下?次迭代繼續改進,以達到持續改進的效果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/81605.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81605.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81605.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JWT安全:弱簽名測試.【實現越權繞過.】

JWT安全:假密鑰【簽名隨便寫實現越權繞過.】 JSON Web 令牌 (JWT)是一種在系統之間發送加密簽名 JSON 數據的標準化格式。理論上,它們可以包含任何類型的數據,但最常用于在身份驗證、會話處理和訪問控制機制中發送有關用戶的信息(“聲明”)。…

數據分析與應用-----使用scikit-learn構建模型

目錄 一、使用sklearn轉換器處理數據 (一)、加載datasets模塊中的數據集 (二)、將數據集劃分為訓練集和測試集 ?編輯 train_test_spli (三)、使用sklearn轉換器進行數據預處理與降維 PCA 二、 構…

【Tomcat】Tomcat端口僅允許本地訪問設置方法

要設置Tomcat端口僅允許本地訪問&#xff0c;可以通過以下兩種主要方式實現&#xff1a; 方法一&#xff1a;修改Tomcat配置文件&#xff08;推薦&#xff09; 修改 server.xml 文件 打開Tomcat的配置文件 conf/server.xml&#xff0c;找到 <Connector> 標簽&#xff08;…

arcgis字段計算器中計算矢量面的每個點坐標

python腳本 函數 def ExportCoordinates(feat):coors = []partnum = 0partcount = feat.partCountwhile partnum < partcount:part = feat.getPart(partnum)pnt = part.next()while pnt:coors.append("({}, {})".format(pnt.X,pnt.Y))pnt = part.next()if not p…

企業級AI開啟落地戰,得場景者得天下

文&#xff5c;白 鴿 編&#xff5c;王一粟 這兩周&#xff0c;企業級智能體開發平臺頗有你方唱罷我方登臺的架勢。 微軟、騰訊、網易等國內外巨頭&#xff0c;近期都相繼宣布推出了新一代智能體開發平臺。相比于兩年前&#xff0c;智能體開發的產品邏輯已經有了翻天覆地的變…

探索C++標準模板庫(STL):String接口實踐+底層的模擬實現(中篇)

前引&#xff1a;上一篇文章小編已經整理出了String的常用接口&#xff0c;梳理了各個接口的功能、參數&#xff0c;如何使用等各種實例。本篇文章將帶大家看看String這些接口的實踐使用&#xff0c;探索這些接口的實用性&#xff0c;是如何增加代碼效率的。在本篇文章的末尾&a…

【模型顯著性分析】配對樣本 t 檢驗

寫在前面&#xff1a;本博客僅作記錄學習之用&#xff0c;部分圖片來自網絡&#xff0c;如需引用請注明出處&#xff0c;同時如有侵犯您的權益&#xff0c;請聯系刪除&#xff01; 文章目錄 前言 t t t 檢驗配對樣本 t t t 檢驗&#xff08;適用于相關組&#xff09;代碼論文描…

商旅平臺排名:十大商旅服務平臺解析

商旅平臺排名&#xff1a;十大商旅服務平臺解析 在企業降本增效的關鍵轉型期&#xff0c;商旅管理正成為優化運營成本與提升管理效能的核心場景。如何在保障出行體驗的同時實現差旅成本精細化管控、管理流程智能化&#xff0c;成為越來越多企業的戰略焦點。隨著AI技術在數據洞…

題海拾貝:P1208 [USACO1.3] 混合牛奶 Mixing Milk

Hello大家好&#xff01;很高興我們又見面啦&#xff01;給生活添點passion&#xff0c;開始今天的編程之路&#xff01; 我的博客&#xff1a;<但凡. 我的專欄&#xff1a;《編程之路》、《數據結構與算法之美》、《題海拾貝》、《C修煉之路》 歡迎點贊&#xff0c;關注&am…

每天掌握一個Linux命令 - ab(Apache Benchmark)

Linux 命令工具 ab 使用指南 一、工具概述 ab&#xff08;Apache Benchmark&#xff09; 是 Apache 官方提供的開源壓力測試工具&#xff0c;用于衡量 Web 服務器的性能。它通過模擬多并發請求&#xff0c;測試服務器在高負載下的響應速度、吞吐量和穩定性&#xff0c;常用于…

AI的“空間盲癥“

<------最重要的是訂閱“魯班模錘”------> 當我們看到一張照片時&#xff0c;大腦會自動分析其中的空間關系——哪個物體在前&#xff0c;哪個在后&#xff0c;左邊是什么&#xff0c;右邊是什么。但對于當今最先進的AI系統來說&#xff0c;這種看似簡單的空間理解卻是…

數據擬合實驗

實驗類型&#xff1a;●驗證性實驗 ○綜合性實驗 ○設計性實驗 實驗目的: 進一步熟練掌握最小二乘多項式擬合算法&#xff0c;提高編程能力和解決擬合問題的實踐技能。 實驗內容&#xff1a; 1 對下列數據&#xff0c;求解最小二乘拋物線f(x)Ax2BxC x -3 -1 1 3 y 15 5 …

系統思考:心智模式與業務創新

在最近的項目交付討論中&#xff0c;我頻繁聽到一個詞&#xff1a;“缺合適的人”。這讓我陷入了深思&#xff1a;我們是否還在傳統的生產力概念&#xff1f;納瓦爾提出的三種杠桿&#xff1a;勞動力、資本、零邊際成本產品。在當今這個信息化、全球化的商業世界中&#xff0c;…

python分步合并處理excel數據

文章目錄 概要整體架構流程技術名詞解釋技術細節小結概要 客戶需求 1. 背景與目標 用戶需要將三個包含農業實驗數據的Excel表格(AK、AN、AP)合并為一個結構化數據集,用于后續分析。每個表格包含相同類型的字段(如對照組與PSB處理組的樣本數、均值、標準差),但需通過字…

Python爬蟲實戰:研究PyQuery庫相關技術

1. 引言 1.1 研究背景與意義 隨著互聯網的快速發展,網絡上的數據量呈爆炸式增長。如何高效地從海量的網頁數據中提取有價值的信息,成為當前信息技術領域的一個重要研究方向。網絡爬蟲作為一種自動獲取網頁內容的程序,能夠按照一定的規則,自動地抓取萬維網信息,在搜索引擎…

深度學習---注意力機制(Attention Mechanism)

一、核心概念與發展背景 注意力機制是深度學習中模擬人類注意力選擇能力的關鍵技術&#xff0c;旨在從海量信息中篩選關鍵特征&#xff0c;解決長序列信息處理中的瓶頸問題&#xff08;如RNN的梯度消失&#xff09;。其核心思想是&#xff1a;對輸入序列的不同部分分配不同權重…

Jenkins分配對應項目權限與用戶管理

在日常開發過程中經常會出現用戶和權限管理問題&#xff0c;沒有配置trigger時&#xff0c;通常需要我們手動構建&#xff0c;但此時前端和后端的朋友沒有build權限&#xff0c;導致每次dev環境測試都需要麻煩我們手動去構建&#xff0c;消息傳達不及時則會降低開發效率。 現有…

XCTF-web-file_include

解析 <?php highlight_file(__FILE__); // 高亮顯示當前PHP文件源代碼 include("./check.php"); // 包含檢查文件&#xff08;可能包含安全過濾邏輯&#xff09;if(isset($_GET[filename])) { // 檢查是否傳入filename參數$filename $_GET[f…

matlab全息技術中的菲涅爾仿真成像

matlab全息技術中的菲涅爾仿真成像程序。 傅里葉法&#xff08;重建距離得大&#xff09;/Fresnel.m , 545 傅里葉法&#xff08;重建距離得大&#xff09;/FresnelB.m , 548 傅里葉法&#xff08;重建距離得大&#xff09;/Fresnel_solution.m , 1643 傅里葉法&#xff08;重…

CS144 - LAB0

CS144 - Lab 0 telnet 發送請求 如圖&#xff0c;很簡單&#xff0c;但是注意輸入時間太久會超時 發郵箱 首先我們需要用命令行去發郵箱&#xff0c;這里我用企業微信郵箱給自己的 qq 郵箱發送~ 整個命令如下&#xff01; 對于其中的參數&#xff0c;其實從英文就可以看出來…