本主題涉及軟件過程、軟件過程管理和軟件過程基礎設施的定義。
如上所述,軟件過程是一組相互關聯的活動和任務,它們將輸入的工作產品轉換為輸出的工作產品。軟件過程的描述至少包括所需的輸入、轉換工作活動和生成的輸出。如圖8.2所示,一個軟件過程可能還包括它的進入和退出標準,以及將工作活動分解成任務,這些任務是服從管理責任的最小的工作單元。過程輸入可以是觸發事件,也可以是另一個過程的輸出。在過程可以開始之前,應該滿足進入標準。在成功結束過程之前,應該滿足所有指定的條件,包括輸出工作產品或工作產品的驗收標準。
軟件過程可以包括子過程。例如,軟件需求確認是一個用來確定需求是否會為軟件開發提供充分基礎的過程;它是軟件需求過程的一個子過程。需求驗證的輸入通常是軟件需求說明書和執行驗證所需的資源(人員、驗證工具、足夠的時間)。需求驗證活動的任務可能包括需求評審、原型設計和模型驗證。這些任務包括個人和團隊的工作分配。需求驗證的輸出通常是一個經過驗證的軟件需求規范,它為軟件設計和軟件測試過程提供了輸入。需求驗證和軟件需求過程的其他子過程經常以各種方式交叉和迭代;
圖8.2。軟件過程的要素
在軟件開發或修改期間,軟件需求過程及其子過程可能會被多次輸入和退出。
軟件過程的完整定義還可能包括角色和能力、IT支持、軟件工程技術和工具,以及執行過程所需的工作環境,以及用于確定執行過程的效率和有效性的方法和度量(關鍵性能指標)。
此外,一個軟件過程可能包括交叉的技術、協作和管理活動。
定義軟件過程的符號包括用自然語言描述的構成活動和任務的文本列表;數據流圖;狀態圖;BPMN;IDEF0;佩特里網;以及UML活動圖。過程中的轉換任務可以定義為過程;過程可以指定為一組有序的步驟,也可以指定為執行任務時要完成的工作的檢查表。
必須強調的是,沒有最好的軟件過程或軟件過程集。對于每個項目和每個組織環境,必須選擇、調整和應用軟件過程。不存在理想的過程或過程集。
1.1軟件過程管理
軟件過程管理的兩個目標是實現完成軟件過程和生產工作產品的系統方法所產生的效率和效果——無論是在個人、項目還是組織層面——以及引入新的或改進的過程。
過程的改變期望一個新的或修改的過程將提高過程的效率和/或有效性,以及產生的工作產品的質量。變更到一個新的過程,改進一個已經存在的過程,組織的變更,和基礎結構的變更(技術的插入或者工具中的變更)是緊密相關的,因為所有這些通常都是以改進軟件產品的成本,開發進度,或者質量為目標的。過程變更不僅對軟件產品有影響;他們經常導致組織變更。變更過程或引入新過程可能會在整個組織中產生連鎖反應。例如,IT基礎設構建具和技術中的變更通常需要過程變更。
在第一次部署其他新過程時,現有過程可能會被修改(例如,在軟件開發項目中引入檢查活動可能會影響軟件測試過程——參見軟件質量知識領域和軟件測試知識領域中的評審和審計)。這些情況也可以稱為“過程演進”。“如果是廣泛的修改,則很可能需要改變組織文化和業務模式,以適應過程的改變。”
1.2軟件過程的基礎設施
建立、實現和管理軟件過程和軟件生命周期模型通常發生在單個軟件項目的層次上。然而,跨組織的軟件過程和軟件生命周期模型的系統應用可以為組織內的所有軟件工作提供好處,盡管它需要組織層面的承諾。軟件過程基礎設施可以提供過程定義、解釋和應用過程的策略,以及用于實現過程的過程描述。此外,軟件過程基礎結構可能提供資金、工具、培訓,以及為建立和維護軟件過程基礎結構而被分配責任的人員。
軟件過程基礎結構是不同的,這取決于組織的大小和復雜性以及在組織內進行的項目。小型、簡單的組織和項目有小型、簡單的基礎設施需求。大型、復雜的組織和項目必然具有更大、更復雜的軟件過程基礎設施。在后一種情況下,可能會建立各種組織單位(例如軟件工程過程組或指導委員會)來監督軟件過程的實現和改進。
一種常見的誤解是,建立軟件過程基礎設施和實現可重復的軟件過程將增加軟件開發和維護的時間和成本。引入或改進軟件過程是有成本的;然而,經驗表明,通過提高效率,避免返工,以及更可靠和負擔得起的軟件,實現軟件過程的系統改進往往會導致更低的成本。過程性能因此影響軟件產品質量。
責任編輯:lq6
-
軟件過程
+關注
關注
0文章
4瀏覽量
5059
原文標題:軟件過程定義
文章出處:【微信號:QCDZYJ,微信公眾號:汽車電子工程知識體系】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論