軟件工程講義第十九章過程度量和項目度量_第1頁
軟件工程講義第十九章過程度量和項目度量_第2頁
軟件工程講義第十九章過程度量和項目度量_第3頁
軟件工程講義第十九章過程度量和項目度量_第4頁
軟件工程講義第十九章過程度量和項目度量_第5頁
已閱讀5頁,還剩36頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件工程第一頁,共四十一頁。第19章過程和項目度量第二頁,共四十一頁。主要內容過程領域和項目領域中的度量軟件測量軟件質量度量小結第三頁,共四十一頁。過程和項目度量軟件過程和項目度量是定量的測量,這些測量能使軟件工程師更深入地了解軟件過程的功效,以及使用該過程作為框架進行開發的項目的功效。度量時,首先收集基本的質量數據和生產率數據,然后分析這些數據、與過去的平均值進行比較,通過評估來確定是否已有質量和生產率的提高。度量也可以用來查明問題區域,以便確定合適的補救方法,并改進軟件過程。第四頁,共四十一頁。過程和項目度量軟件度量由軟件管理者來分析和評估。測量數據通常由軟件工程師來收集。如果不進行測量,只能根據主觀評價來做判斷。通過測量,可以發現趨勢,可以更好地進行估算,隨著時間的推移能夠獲得真正的改進。第五頁,共四十一頁。過程和項目度量首先確定一組有限的易于收集的過程測量和項目測量。通常使用面向規?;蛎嫦蚬δ艿亩攘繉@些測量進行規范化。然后,對測量結果進行分析,并與該組織以前完成的類似項目的平均數據進行比較。最后評估趨勢,并給出結論。工作產品是得到一組軟件度量,它們提供了對過程的洞察力和對項目的理解。第六頁,共四十一頁。過程和項目度量通過提供目標評估的機制,測量使我們能夠對項目和過程有更深入的了解。LordKelvin曾經說過:當你能夠測量你所說的事物,并能用數字表達它時,你就對它有了一定的了解;當你不能測量它,也不能用數字來表達時,就說明你對它的了解還很貧乏,不能令人滿意:這可能是知識的開始,但你在思想上還遠遠沒有進入科學的境地。第七頁,共四十一頁。過程和項目度量測量可以應用于軟件過程中,目的是持續地改進軟件過程。測量也可以應用于整個軟件項目中,輔助進行估算、質量控制、生產率評估及項目控制。最后,軟件工程師還可以使用測量來幫助評估工作產品的質量,并在項目進展過程中輔助進行戰術決策。第八頁,共四十一頁。過程和項目度量[PAR96]討論了進行測量的理由:

(1)刻畫——通過刻畫而獲得對過程、產品、資源和環境的了解,并建立同未來評估進行比較的基線;

(2)評價——通過評價來確定相對于計劃的狀況;

(3)預測——通過理解過程和產品間的關系,并構造這些關系的模型來進行預測;

(4)改進——通過識別障礙、根本原因、低效率和其他改進產品質量和過程性能的機會來進行改進。測量是一個管理工具,如果能正確地使用,它將為項目管理者提供洞察力。因此,測量能夠幫助項目管理者和軟件團隊制定出使項目成功的決策。第九頁,共四十一頁。過程領域和項目領域中的度量過程度量的收集涉及所有的項目,而且要經歷相當長的時間,目的是提供能夠引導長期的軟件過程改進的一組過程指標。項目度量使得軟件項目管理者能夠:(1)評估正在進行中的項目的狀態;(2)跟蹤潛在的風險;(3)在問題造成不良影響之前發現它們;(4)調整工作流程或任務;(5)評估項目團隊控制軟件工作產品質量的能力。測量數據由項目團隊收集,然后被轉換成度量數據在項目期間使用。測量數據也可以傳送給那些負責軟件過程改進的人員。因此,很多相同的度量既可用于過程領域,又可用于項目領域。第十頁,共四十一頁。過程度量和軟件過程改進改進任何過程的唯一合理方法就是測量該過程的特定屬性,再根據這些屬性建立一組有意義的度量,然后使用這組度量提供的指標來導出過程改進策略。但是,在討論軟件度量及其對軟件過程改進的影響之前,必須注意到:過程僅是眾多“改進軟件質量和組織性能的控制因素”中的一種。第十一頁,共四十一頁。軟件質量和組織有效性的決定因素圖19-1軟件質量和組織有效性的決定因素第十二頁,共四十一頁。過程度量和軟件過程改進在圖19-1中,過程位于三角形的中央,連接了三個對軟件質量和組織績效有重大影響的因素。其中,人員的技能和動力被認為是對質量和績效影響最大的因素,產品復雜性對質量和團隊績效也有相當大的影響,過程中采用的技術也有一定的影響。另外,過程三角形位于環境條件圓圈內,環境條件包括:開發環境、商業條件、客戶特性。第十三頁,共四十一頁。過程度量和軟件過程改進可以間接地測量軟件過程的功效。即,可以根據從過程中獲得的結果來導出一組度量。這些結果包括:在軟件發布之前發現的錯誤數的測度,提交給最終用戶并由最終用戶報告的缺陷的測度,交付的工作產品的測度,花費的工作量的測度,花費時間的測度,與進度計劃是否一致的測度,以及其他測度。還可以通過測量特定軟件工程任務的特性來導出過程度量。第十四頁,共四十一頁。過程度量和軟件過程改進[GRA92]認為不同類型的過程數據的使用可以分為“私有的和公有的”。私有度量的例子有:個人缺陷率、軟件構件缺陷率和開發過程中發現的錯誤數。“私有過程數據”的觀點與Humphrey所建議的個人軟件過程方法相一致。Humphrey認為過程改進能夠、也應該開始于個人級。私有過程數據是軟件工程師個人改進其工作的重要驅動力。有些過程度量對于軟件項目團隊是私有的,但對所有團隊成員是公用的。例如,主要軟件功能的缺陷報告、正式技術評審中發現的錯誤,以及每個構件或功能的代碼行數或功能點數。這些數據可由團隊進行評審,以便找出能夠改善團隊性能的指標。第十五頁,共四十一頁。過程度量和軟件過程改進公用的度量一般吸收了原本是個人或團隊的私有信息。收集和評估項目級的缺陷率、工作量、時間以及相關的數據,來找出能夠改善組織過程性能的指標。軟件過程度量對于組織提高其整體的過程成熟度能夠提供很大的幫助。不過,就像所有其他度量一樣,軟件過程度量也可能被誤用,產生的問題比它們所能解決的問題更多。第十六頁,共四十一頁。過程度量和軟件過程改進[GRA92]提出一組“軟件度量規則”。管理者和開發者在制定過程度量大綱時,這些規則都適用:解釋度量數據時使用常識,并考慮組織的敏感性。向收集測量和度量的個人及團隊定期提供反饋。不要使用度量去評價個人。與開發者和團隊一起設定清晰的目標,并確定為達到這些目標需要使用的度量。不要用度量去威脅個人或團隊。指出問題區域的度量數據不應該被“消極地”看待,這些數據僅僅是過程改進的指標。不要在某一個別的度量上糾纏,而無暇顧及其他重要的度量。第十七頁,共四十一頁。過程度量和軟件過程改進隨著一個組織更加得心應手地收集和使用過程度量,簡單的指標獲取方式就會逐漸被更加精確的方法所取代,該方法稱為統計軟件過程改進。本質上,SSPI使用軟件失效分析方法收集在應用軟件、系統或產品的開發及使用過程中所遇到的所有的錯誤及缺陷信息。第十八頁,共四十一頁。項目度量軟件過程度量用于戰略目的,而軟件項目度量則用于戰術目的。即,項目管理者和軟件項目團隊通過使用項目度量及從中導出的指標,可以改進項目工作流程和技術活動。在大多數軟件項目中,項目度量的第一次應用是在估算階段。從過去項目中收集的度量可以作為估算當前軟件工作量及時間的基礎。隨著項目的進展,可以將花費的工作量及時間的測量與最初的估算值(及項目進度)進行比較。項目管理者可以使用這些數據來監控項目的進展。第十九頁,共四十一頁。項目度量隨著技術工作的啟動,其他項目度量也開始有意義了。生產率可以根據創建的模型、評審的時間、功能點以及交付的源代碼行數來測量。此外,對每個軟件工程任務中所發現的錯誤也要進行跟蹤。在軟件從需求到設計的演化過程中,需要收集技術度量來評估設計質量,并提供若干指標,這些指標將會影響代碼生成及測試所采用的方法。第二十頁,共四十一頁。項目度量項目度量的目的是雙重的。首先,利用度量能夠對開發進度進行必要的調整,以避免延遲,并減少潛在的問題及風險,從而使得開發時間減到最少。其次,項目度量可在項目進行過程中評估產品質量,必要時可調整技術方法以提高質量。隨著質量的提高,缺陷會減到最少。而隨著缺陷數的減少,項目中所需的修改工作量也會降低,這將使整個項目成本降低。第二十一頁,共四十一頁。軟件測量軟件測量有兩種分類方法:(1)軟件過程(如花費的成本和工作量)和產品(如產生的代碼行(LOC)、運行速度以及某段時間內報告的缺陷)的直接測量;(2)產品的間接測量,包括功能、質量、復雜性、有效性、可靠性、可維護性,以及許多其他的“產品特性”。將項目度量聯合起來可以得到整個軟件組織公用的過程度量。第二十二頁,共四十一頁。面向規模的度量面向規模的軟件度量是通過規范化質量和(或)生產率的測量值而得到的,這些測量都基于已經開發的軟件的規模。如果軟件組織一直在做簡單的記錄,就會產生一個如圖19-2所示的面向規模測量的表。該表列出了在過去幾年中完成的每一個軟件開發項目及其相關的測量數據。第二十三頁,共四十一頁。面向規模的度量圖19-2面向規模的度量第二十四頁,共四十一頁。面向規模的度量為了產生能和其他項目中同類度量進行比較的度量,選擇代碼行作為規范化值。根據表中所包含的基本數據,每個項目都能得到一組簡單的面向規模的度量:每千行代碼(KLOC)的錯誤數;每千行代碼的缺陷數;每千行代碼的成本;每千行代碼的文檔頁數;此外,還能計算出其他有意義的度量。第二十五頁,共四十一頁。面向功能的度量面向功能的軟件度量使用功能測量數據作為規范化值。應用最廣泛的面向功能的度量是功能點FP。功能點是根據軟件信息域的特性及復雜性來計算的。第二十六頁,共四十一頁。調和代碼行和功能點的度量方法代碼行和功能點之間的關系依賴于實現軟件所采用的程序設計語言及設計的質量。很多研究試圖將FP測量和LOC測量聯系起來。表19-1(P340頁)給出了在不同的程序設計語言中實現一個功能點所需的平均代碼行數的粗略估算。第二十七頁,共四十一頁。調和代碼行和功能點的度量方法人們發現基于功能點和LOC的度量都是對軟件開發工作量和成本的比較精確的判定。然而,如果使用LOC和FP進行估算,還必須要建立一個歷史信息基線。在過程度量和項目度量中,最關心的是生產率和質量——軟件開發“輸出量”(作為投入的工作量和時間的函數)的測量和對生產的工作產品的“適用性”的測量。為了進行過程改進和項目策劃,必須掌握歷史的情況。在以往的項目中,軟件開發的生產率是多少?生產的軟件質量如何?怎樣利用以往的生產率數據和質量數據推斷現在的生產率和質量?如何利用這些數據幫助我們改進過程,以及更精確地規劃新的項目?第二十八頁,共四十一頁。面向對象的度量傳統的軟件項目度量也可以用于估算面向對象的軟件項目。但是,這些度量并沒有提供對進度和工作量進行調整的足夠的粒度,而這卻是在演化模型或增量模型中進行迭代時所需要的。[LOR94]提出了下列用于OO項目的度量。場景腳本的數量關鍵類的數量支持類的數量每個關鍵類的平均支持類數量子系統的數量第二十九頁,共四十一頁。面向用例的度量與LOC或FP相類似,使用用例作為規范化的測量應該是合理的。同FP一樣,用例也是在軟件過程早期進行定義的。在重大的建模活動和構造活動開始之前,就允許使用用例進行估算。用例描述了用戶可見的功能和特性,這些都是系統的基本需求。用例與程序設計語言無關。另外,用例的數量同應用系統的規模和測試用例的數量成正比,而測試用例是為了充分測試該應用系統而必須設計的。第三十頁,共四十一頁。軟件質量度量軟件工程的基本目標是在某個時間框架內開發出滿足市場需要的高質量的系統、應用或產品。為了達到這個目標,軟件工程師必須在成熟的軟件過程背景下,使用有效的方法及現代化的工具。此外,一個優秀的軟件工程師必須通過測量來判斷能否實現高質量。第三十一頁,共四十一頁。軟件質量度量將軟件工程師個人收集的私有度量結合起來,可以提供項目級的度量。雖然可以收集到很多質量測量數據,但在項目級上最主要的還是測量錯誤和缺陷的數量。從這些測量中導出的度量能夠提供一個指標,表明個人及小組在軟件質量保證和控制活動上的效力。第三十二頁,共四十一頁。軟件質量度量度量——比如說工作產品(如需求或設計)——每功能點的錯誤數、在評審中每小時發現的錯誤數、測試中每小時發現的錯誤數,使我們能夠深入了解度量所涉及的活動的功效。有關錯誤的數據也能用來計算每個過程框架活動的缺陷排除效率DRE。第三十三頁,共四十一頁。測量質量正確性、可維護性、完整性和可用性為項目團隊提供了有用的指標。正確性:一個程序必須能夠正確地執行,否則對于用戶就沒有價值了。正確性是軟件完成所要求的功能的程度。最常用的關于正確性的測量是每千行代碼的缺陷數??删S護性:可維護性是指遇到錯誤時程序能夠被修改的容易程度,環境發生變化時程序能夠適應的容易程度,用戶希望變更需求時程序能夠被增強的容易程度。還沒有一種方法可以直接測量可維護性,只能采用間接測量。有一種簡單的面向時間的度量,稱為平均變更時間MTTC。第三十四頁,共四十一頁。測量質量完整性:這個屬性測量的是一個系統對安全性攻擊的抵抗能力。軟件的所有三個成分都會遭到攻擊。為了測量完整性,必須定義另外兩個屬性:危險性和安全性。危險性是指一個特定類型的攻擊在給定的時間內發生的概率。安全性是指一個特定類型的攻擊將被擊退的概率。一個系統的完整性可定義為:

完整性=∑[1-(危險性×(1-安全性))]第三十五頁,共四十一頁。測量質量可用性:如果一個程序不容易使用,即使它完成的功能很有價值,也常常注定要失敗??捎眯粤D對“使用的容易程度”進行量化。第三十六頁,共四十一頁。缺陷排除效率缺陷排除效率DRE是在項目級和過程級都有意義的質量度量。本質上,DRE是對質量保證及控制活動中濾除缺陷能力的測量,而這些質量保證及質量控制活動貫穿應用于所有過程框架活動中。當把項目作為一個整體來考慮時

DRE=E/(E+D)

其中E是軟件交付給最終用戶之前發現的錯誤數,D是軟

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論