亚洲天堂av网_久久精品欧美一区二区三区不卡_亚洲欧美一级_欧美成人合集magnet

知名百科  > 所屬分類  >  其他科技   

軟件生存周期

軟件生存周期是軟件工程的一個概念,也稱為軟件生命周期,是指軟件產品從概念形成到開發、使用、維護和退役的整個過程。軟件生命周期包括六個活動:問題定義和可行性研究、需求分析、軟件設計、程序編碼、軟件測試、運行和維護,這些活動以適當的方式分配到不同的階段。軟件生命周期包括軟件開發生命周期中的所有階段以及額外的維護和支持階段。軟件生命周期的每個階段都有明確的目標和任務,每個階段工作完成的標志是“里程碑”,它由一系列指定的“軟件工作產品”組成。

軟件生命周期的概念最早提出于20世紀70年代。1995年,國際標準化組織ISO發布了軟件生命周期過程開發標準,該標準將整個生命周期劃分為更小的階段,使軟件開發過程易于管理和控制。2022年10月,由浙江省電子信息產品檢驗院牽頭制定的中國國家標準《系統和軟件工程軟件生命周期過程》正式發布。

在軟件產品從開始到結束經歷了整個開發周期之后,新一代產品通過開發周期的重復而開發。將整個軟件生命周期分為幾個階段,使每個階段都有明確的任務,這使得規模大、結構復雜、管理復雜的軟件開發易于控制和管理,提高了軟件的可維護性,從而提高了軟件開發的成功率和生產率。開發中使用的規模、類型、開發模式、開發環境和方法論是影響軟件生命周期的因素。

目錄

發展歷史 編輯本段

計算機發展的早期,程序并沒有從硬件中分離出來,軟件開發成本在整個系統中占比很小,是硬件的附屬品。在早期的編程時代,編程是為某個計算機系統服務的。程序員既是程序的設計者也是用戶。程序主要用于科學計算,這很簡單,不需要編程文檔。程序維護相對簡單。

隨著軟件規模和復雜性的增加。1968年,北大西洋公約組織軟件人員提出了“軟件工程”的概念。20世紀70年代,為了應對應用軟件日益復雜、開發周期長以及用戶對軟件產品經常不滿意的情況,首次提出了軟件生命周期的概念。1976年以后,人們開始更多地關注編程前的幾個發展階段,并形成了“軟件生命周期”的概念,從而給出了軟件生命周期的定義。

1988年,Barry Boehm正式發表了軟件系統開發的“螺旋模型”。20世紀90年代初,提出了軟件工程過程的概念,規定了獲取、供應、開發、運行和維護軟件時要實施的過程、活動和任務。在此基礎上,電氣和電子工程師協會標準化委員會于1991年9月制定了軟件生命周期過程標準。1995年,國際標準化組織ISO發布了軟件生命周期過程開發標準。根據瀑布開發模型,中國制定并發布了《計算機軟件文檔規范》(CB/T 8567-2006),極大地促進了中國的軟件開發。

2022年10月,中國國家標準化管理委員會發布中華人民共和國國家標準公告,由浙江省電子信息產品檢驗研究院牽頭制定的國家標準《系統和軟件工程軟件生命周期過程》正式發布。

周期過程 編輯本段

軟件生命周期分為規劃、開發和運行三個階段,每個階段又細分為若干階段。規劃期包括問題定義和可行性研究;開發周期包括四個階段:需求分析、軟件設計、編碼和測試。運營期主要是系統維護階段。整個周期過程包括六個活動:定義和可行性研究、需求分析、軟件設計(總體設計和詳細設計)、程序編碼、軟件測試、運行和維護,并以適當的方式分配到不同的階段。

規劃期

規劃期間的主要任務是調查和分析,主要是調查用戶的需求,分析新系統的主要目標,分析開發系統的可行性,并制定項目開發計劃。

問題定義:問題定義是規劃階段的第一步。用戶提出軟件開發需求后,系統分析師首先要搞清楚軟件項目的本質是什么,是數據處理問題還是實時控制問題,是科學計算問題還是人工智能問題。還需要明確項目的目標是什么,項目的規模是什么。

可行性研究:現階段必須回答的問題是是否可行。在這一階段,軟件開發人員與客戶進行溝通,確定開發軟件系統的總體目標,并明確功能、性能、可靠性等方面的要求;研究此軟件任務的可行性,并探索問題的可能解決方案;制定開發任務的實施方案,與可行性研究報告一起提交管理部審查。

開發期

在開發期間,主要完成兩大任務:設計和實現。設計任務分需求分析和軟件設計兩個階段完成,實現任務分編碼和測試兩個階段完成。將設計和實現分為兩步的目的是讓程序員在開發的早期階段專注于軟件的邏輯結構,避免過早地將自己的注意力從實現的細節上轉移。

需求分析:在這個階段,軟件開發人員在軟件開發可行的情況下,對軟件需要實現的各種功能進行詳細分析。這個階段的任務不是具體解決問題,而是確定用戶對“軟件系統必須做什么”的要求以及軟件系統必須具備的功能和性能,包括軟件的功能需求、性能需求、環境約束和外部圖;分析用戶提出的需求并給出詳細定義;編寫軟件需求規范和初步用戶手冊,并提交給管理機構審查。

軟件設計:在此階段,將識別的需求轉換為相應的軟件架構,然后詳細描述每個模塊要完成的工作。它可以分為兩個部分:總體設計和詳細設計。總體設計應設計軟件架構,以及總體數據結構和數據庫結構。詳細設計詳細描述每個模塊完成的功能,需要將功能描述變成準確、結構化的流程描述。軟件設計完成后,編寫設計規范并提交審查。

程序編碼:在這個階段,軟件設計被轉換成計算機可接受的程序代碼。為了保證程序的可讀性和可維護性,提高程序的運行效率,在程序編碼中制定了統一、標準的編寫規范。單元測試通常與編碼同時進行,因此這一階段也稱為“編碼(測試)”。

軟件測試:程序編寫完成后,代碼要經過嚴格的測試,找出軟件整個設計開發過程中存在的問題并加以改正。根據不同的目的,測試可以細分為多個層次。整個測試過程分為四個階段:單元測試、集成測試、確認測試和系統測試。在設計測試用例的基礎上,對軟件的所有組件進行測試。測試由獨立的測試工程師進行,需要撰寫一份“測試報告”文檔,包括測試計劃、測試用例、測試結果等。通過驗證測試(針對功能需求)和系統測試(針對性能等非功能需求)后,軟件就可以交付了,因此驗證測試有時也稱為“交付測試”。

運行周期

運行期是軟件生命周期的最后一個階段,這個階段的主要工作是軟件維護。

操作和維護軟件:維護是軟件生命周期中最長的階段。軟件投入使用后,當它不再能滿足用戶的要求時,需要進行改進或修改。并定期維護軟件。運維階段的任務是做好軟件維護,使軟件在全生命周期內滿足用戶的需求,延長其使用壽命。每次維修都應遵循規定的程序并填寫或更改相關文件

周期模型 編輯本段

為了研究軟件開發項目中各種活動的一般規律,定量度量和優化軟件開發過程,擴展了軟件開發過程模型,包括瀑布模型、快速原型模型、迭代模型、增量模型、螺旋模型和噴泉模型。

質量保證

為了提高軟件生命周期和保證軟件質量,軟件開發活動和過程被分解成幾個可實現和可管理的部分。在生命周期的每個階段,應用相應和有效的技術和方法來開展軟件開發活動并驗證其階段性產品的質量以確保其高質量,主要分為七個階段:需求分析、概要設計、詳細設計、代碼開發、集成測試、確認測試和系統聯合測試。

主要階段

需求分析階段:在需求分析階段,需要分析系統、子系統和設備對軟件的需求,確定軟件實施的運行環境,并形成軟件任務書。分析系統的規格要求和組成部分,分析硬件和軟件之間的關系,定義每個軟件的開發項目,提出初步驗收方法,編寫軟件任務書等步驟,并制作軟件任務書和軟件的初步接口描述等階段性產品。

概要設計階段:在概要設計階段,需要根據軟件需求的規格說明建立軟件的總體結構和功能模塊(組件)之間的關系,定義各功能模塊的接口,設計全局數據庫和數據結構,并初步編制軟件集成測試計劃。進行總體結構設計,設計高層模塊的數據流和控制關系,初步編制軟件集成測試計劃等。,并產生階段性產品,如概要設計說明、數據庫設計說明、概要界面設計說明和軟件集成測試計劃。

軟件生存周期軟件生存周期

細部設計階段:在詳細設計階段,需要描述和設計概要設計中產生的功能模塊(組件)的過程,設計功能模塊的內部細節,并提供編寫源代碼的必要說明。軟件的詳細設計主要基于軟件需求規格說明、概要設計描述和界面設計描述,包括審查概要設計、建立模塊開發文件、編寫詳細設計描述文檔等。,并產生階段性產品,如詳細設計說明、詳細模塊流程圖、修改后的概要設計說明和修改報告表。

代碼開發階段:在代碼開發階段,應根據詳細的軟件設計規范對每個程序單元進行編碼、調試、靜態分析和單元測試,以驗證程序單元與設計規范之間的一致性并完成軟件系統集成。用指定的編程語言對每個程序單元進行編碼和測試,對編碼的源程序進行靜態分析,改進單元測試用例并生成測試輸入數據,開發單元測試程序等。以及分階段產品的生成,如程序單元編碼、模塊開發文件和軟件指令初稿。

集成測試階段:在軟件集成測試階段,需要根據概要設計的結構和集成測試計劃對軟件進行測試,在這個過程中,將底層程序單元逐步集成到子項目中,直至整個開發項目。每個程序單元都應該完成代碼的靜態分析和逐步審查、錯誤的編譯或匯編以及單元測試。補充和改進軟件集成測試計劃,修改集成順序,建立軟件集成測試環境等。,產生修改后的軟件集成測試計劃、修改后的軟件設計文檔和相應的修改報告、軟件集成測試分析報告、通過集成測試的程序代碼、集成測試用例集和集成測試輔助程序等階段性產品。

確認測試階段:在確認測試階段,主要針對軟件的所有功能和性能需求進行黑盒測試。組織確定軟件驗證測試團隊成員,修訂驗證測試計劃,建立并驗證軟件測試環境測試、功能捷克性能測試等步驟,產生驗證測試計劃、驗證測試分析報告、驗證測試用例集及相關測試輔助程序。

系統聯合測試階段:當開發的軟件是大系統的一部分時,當開發的軟件與大系統結合時,必須進行系統聯合測試,以驗證軟件是否滿足系統規定的要求以及軟件是否適用于大系統。預期結果、測試結果和產生的測試數據應存檔。系統聯合測試階段的配置管理包括系統聯合測試的軟件必須從受控庫中取出,并且必須嚴格控制對軟件的更改。

工具技術 編輯本段

項目管理軟件:軟件項目管理常用的軟件工具包括Microsoft Project、項目管理套件、OpenProj和禪宗。

需求分析和設計工具:軟件需求分析工具分為兩大類:結構化圖形工具箱、面向對象建模工具和分析工具。結構化圖形工具需要通過數據流圖(DFD)進行分析。面向對象的建模工具和分析工具需要通過對象建立來構建系統的抽象模型,包括圖形工具、對象瀏覽器和類庫管理系統。設計工具是用于輔助軟件設計活動的軟件,稱為設計工具,分為通用設計工具和詳細設計工具。

開發環境:現代軟件開發使用集成開發環境(IDE),其中包括代碼編輯器、編譯器、調試器和圖形用戶界面工具。它集成了代碼編寫、分析、編譯和調試功能,是一種集成的軟件開發工具。

測試工具:軟件測試工具分為商業測試工具和開源測試工具,其中開源測試工具涵蓋單元測試、性能測試、自動化測試、移動測試、測試管理等。,主要關注單元測試工具、功能測試工具、性能測試工具和缺陷管理工具。

附件列表


0

詞條內容僅供參考,如果您需要解決具體問題
(尤其在法律、醫學等領域),建議您咨詢相關領域專業人士。

如果您認為本詞條還有待完善,請 編輯

上一篇 微信小程序    下一篇 分辨率

同義詞

暫無同義詞