本主題討論軟件過程的類別、軟件生命周期模型、軟件過程適應和實際考慮。軟件開發(fā)生命周期(軟件開發(fā)生命周期)包括用于指定軟件需求并將其轉換為可交付的軟件產(chǎn)品的軟件過程。軟件產(chǎn)品生命周期(SPLC)包括一個軟件開發(fā)生命周期加上額外的軟件過程提供部署、維護、支持,進化,報廢,和所有其他inceptiontoretirement過程軟件產(chǎn)品,包括軟件配置管理、軟件質量保證過程應用于整個軟件產(chǎn)品的生命周期。一個軟件產(chǎn)品生命周期可以包括多個用于演進和增強軟件的軟件開發(fā)生命周期。
單個的軟件過程之間沒有時間順序。軟件過程之間的時間關系由軟件生命周期模型提供:軟件開發(fā)生命周期或SPLC。生命周期模型通常強調(diào)模型中的關鍵軟件過程以及它們在時間和邏輯上的相互依賴和關系。生命周期模型中軟件過程的詳細定義可以直接提供,也可以參考其他文檔。
除了在軟件過程之間傳遞時間和邏輯關系之外,軟件開發(fā)生命周期模型(或在組織內(nèi)使用的模型)還包括應用進入和退出標準的控制機制(例如,項目評審、客戶批準、軟件測試、質量關口、演示、團隊共識)。一個軟件過程的輸出通常為其他過程提供輸入(例如,軟件需求為軟件架構設計過程和軟件構建和軟件測試過程提供輸入)。幾個軟件過程活動的并發(fā)執(zhí)行可能產(chǎn)生一個共享的輸出(例如,由不同團隊開發(fā)的多個軟件組件之間的接口規(guī)范)。一些軟件過程可能被認為效率較低,除非同時執(zhí)行其他軟件過程(例如,軟件需求分析期間的軟件測試計劃可以改進軟件需求)。
2.1 軟件過程的類別
在軟件開發(fā)和軟件維護生命周期的各個部分中,已經(jīng)定義了許多不同的軟件過程。這些過程可以分為以下幾類:
主要過程包括軟件開發(fā)、操作和維護的軟件過程。
支持過程在整個軟件產(chǎn)品生命周期中間歇性地或連續(xù)地應用,以支持主要過程;它們包括軟件過程,如配置管理、質量保證、驗證和確認。
組織過程為軟件工程提供支持;它們包括培訓、過程度量分析、基礎設施管理、投資組合和復用管理、組織過程改進,以及軟件生命周期模型的管理。
跨項目過程,如復用、軟件產(chǎn)品線和領域工程;它們在組織中涉及到不止一個軟件項目。
軟件過程除了上面列出的之外還包括以下內(nèi)容。
項目管理過程包括計劃和估計、資源管理、度量和控制、領導、管理風險、管理利益攸關方,以及協(xié)調(diào)軟件開發(fā)和維護項目的主要、支持、組織和跨項目過程的過程。
軟件過程也是為特定的需求而開發(fā)的,例如處理軟件質量特征的過程活動(參見軟件質量知識領域)。例如,軟件開發(fā)期間的安全問題可能需要一個或多個軟件過程來保護開發(fā)環(huán)境的安全并減少惡意行為的風險。開發(fā)軟件過程也可以為建立對軟件完整性的信任提供充分的依據(jù)。
2.2 軟件生命周期模型
軟件的無形和可塑的本質允許了各種各樣的軟件開發(fā)生命周期模型,包括線性模型,在線性模型中,軟件開發(fā)的各個階段按照需要通過反饋和迭代依次完成,然后是集成、測試和單個產(chǎn)品的交付;到迭代模式,在這種模式下,軟件會在迭代周期中以功能不斷增加的方式開發(fā);對于敏捷模型,通常包括向客戶或用戶代表頻繁地展示可工作的軟件,這些客戶或用戶代表在短的迭代周期中指導軟件開發(fā),從而產(chǎn)生可交付的工作軟件的小增量。如果需要,增量的、迭代的和敏捷的模型可以將工作軟件的早期子集交付到用戶環(huán)境中。
線性軟件開發(fā)生命周期模型有時被稱為預測軟件開發(fā)生命周期模型,而迭代和敏捷的軟件開發(fā)生命周期被稱為自適應軟件開發(fā)生命周期模型。應該注意的是,在一個SPLC期間,根據(jù)維護活動的不同,可以使用不同的軟件開發(fā)生命周期模型來執(zhí)行各種維護活動。
各種軟件開發(fā)生命周期模型的一個顯著特征是管理軟件需求的方式。線性開發(fā)模型通常在項目啟動和計劃期間盡可能地開發(fā)一套完整的軟件需求。然后嚴格控制軟件需求。軟件需求的變更是基于由變更控制委員會處理的變更請求的(參見軟件配置管理知識領域中的變更控制委員會中的請求、評估和批準軟件變更)。基于在每個增量中實現(xiàn)的軟件需求的劃分,增量模型產(chǎn)生連續(xù)的工作增量,可交付軟件。軟件需求可能被嚴格控制,就像在線性模型中一樣,或者隨著軟件產(chǎn)品的發(fā)展,在修改軟件需求方面可能會有一些靈活性。敏捷模型可能在最初定義產(chǎn)品范圍和高級特性;然而,設計敏捷模型是為了在項目期間促進軟件需求的開發(fā)。
必須強調(diào)的是,軟件開發(fā)生命周期從線性到敏捷并不是一條細的直線。不同方法的要素可納入具體模式;例如,增量式軟件開發(fā)生命周期模型可能包含順序的軟件需求和設計階段,但是在軟件構建期間允許相當大的靈活性來修改軟件需求和架構。
2.3 軟件過程的適應
預定義的軟件開發(fā)生命周期、splc和單個軟件過程通常需要進行調(diào)整(或“剪裁”),以更好地滿足本地需求。組織環(huán)境、技術創(chuàng)新、項目規(guī)模、產(chǎn)品關鍵性、法規(guī)要求、行業(yè)實踐和企業(yè)文化可能決定需要的適應性。單個軟件過程和軟件生命周期模型(開發(fā)和產(chǎn)品)的適應可能包括向軟件過程、活動、任務和過程添加更多的細節(jié),以解決關鍵問題。它可能包括使用一組替代的活動來實現(xiàn)軟件過程的目的和結果。適應還可能包括從開發(fā)或產(chǎn)品生命周期模型中刪除明顯不適用于待完成工作范圍的軟件過程或活動。
2.4 實際考慮
在實踐中,軟件過程和活動經(jīng)常是交叉的、重疊的,并且并發(fā)地應用。指定離散的軟件過程的軟件生命周期模型,具有嚴格指定的進入和退出標準以及規(guī)定的邊界和接口,應該被視為必須適應的理想化,以反映組織環(huán)境和業(yè)務環(huán)境中的軟件開發(fā)和維護的現(xiàn)實。
另一個實際的考慮事項:軟件過程(如配置管理、構建和測試)可以進行調(diào)整,以促進軟件的操作、支持、維護、遷移和報廢。
在定義和裁剪軟件生命周期模型時需要考慮的其他因素包括對標準、指示和策略的要求一致性;客戶需求;軟件產(chǎn)品的臨界性;以及組織成熟度和能力。其他因素包括工作的性質(例如,對現(xiàn)有軟件的修改與新的開發(fā))和應用領域(例如,航空航天與汽車電子)。
責任編輯:lq6
-
軟件
+關注
關注
69文章
5009瀏覽量
88074 -
軟件過程
+關注
關注
0文章
4瀏覽量
5072
原文標題:軟件生命周期
文章出處:【微信號:QCDZYJ,微信公眾號:汽車電子工程知識體系】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論