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