




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3講軟件度量軟件項目管理課程之第3講軟件度量講授內容項目案例什么是軟件度量?為什么需要軟件度量?軟件度量的內容軟件度量的方法在軟件開發過程中進行軟件度量小結2第3講軟件度量1.項目案例案例角色和人物小王:軟件項目負責人老王:公司技術老總3第3講軟件度量項目管理需要定量描述(1/3)在項目策劃階段的碰頭會上公司技術總監詢問小王項目開發估計需要多少時間,需要多少成本?小王回答說“時間估計不會太長,成本也在一個可接受的范圍之內”,老王顯然對這種回答不滿意,他希望能夠得到一個較為準確定量性的描述經過一番考慮后,小王確認回答說“時間7-8個月,成本需40-45萬”,老王顯然對這種回答也不滿意,況且用戶要求在6個月內完成項目。于是他進一步問道“你是如何得到這組數據”,小王顯然沒有準備,也沒有充分的依據,于是他啞口無言4第3講軟件度量項目管理需要定量描述(2/3)在制定軟件項目計劃時小王不知如何預測項目可能所需的工作量?小王不知如何預測項目可能所需的成本?小王不知所制定的計劃是否可行和科學?因此,小王盡管制定了軟件開發計劃,但對于該計劃能否得到有效的實施、實施能否遵循計劃執行沒有足夠的信心5第3講軟件度量項目管理需要定量描述(3/3)項目已進展了2個月,各個方面進展尚可,在某周的碰頭會上,老王繼續向小王發問“目前軟件質量如何?”,小王回答道“不錯”老王對這種回答不滿意,他希望能夠得到一個較為準確定量性的描述,但是小王又沒有辦法給他一個更加確切的答復,實際上連他自己也沒有辦法說清楚目前軟件產品的質量情況,因為他只有直觀的、定性了解。6第3講軟件度量定量分析是重要的工程化的軟件開發需要定量、科學的描述(實施前、實施過程中、實施完成后)定量、科學的描述有助于獲取軟件項目以及所開發的軟件的某種可視性,促進軟件項目的管理定量的信息描述必須在軟件項目開發過程中采集7第3講軟件度量軟件項目管理問題在軟件項目實施過程中,需要哪些方面的定量描述以促進軟件項目的有效開發和管理?如何獲取這些方面的科學定量描述?如何在軟件項目開發過程中集成度量?如何將這些定量描述用于指導軟件項目的管理?8第3講軟件度量講授內容項目案例什么是軟件度量?為什么需要軟件度量?軟件度量的內容軟件度量的方法在軟件開發過程中進行軟件度量小結9第3講軟件度量基本概念(1/4)對事物屬性的定性描述個子很高,軟件的成本很高對事物屬性的定量描述高個子有1.9米,軟件成本是23.5萬10第3講軟件度量基本概念(2/4)軟件度量(Metrics)是指對軟件產品、軟件開發過程或者資源的簡單屬性的定量描述。產品:軟件開發過程中所生成的各種文檔和程序過程:與軟件開發有關的各種活動,如軟件設計等資源:軟件開發過程中所需支持,如人員、費用等注意點定量描述,而不是定性描述簡單屬性,無需參照其它屬性便可直接獲得定量描述11第3講軟件度量基本概念(3/4)軟件測量(Measure)是對軟件產品、軟件開發過程和資源復雜屬性的定量描述,它是簡單屬性度量值的函數,軟件測量用于事后或實時狀態,如軟件可靠性注意點定量描述,而不是定性描述復雜屬性-不可直接獲得、需參照其它屬性的度量值實時或者事后狀態,用于對歷史進行評估12第3講軟件度量基本概念(4/4)估算(Estimation)對軟件產品、軟件開發過程和資源復雜屬性的定量描述,它是簡單屬性度量值的函數,軟件估算用于事前,如軟件開發成本注意點定量描述,而不是定性描述復雜屬性-不可直接獲得、需參照其它屬性的度量值事前狀態可采用經驗公式,也可參考歷史資料和數據。估算的結果一般用于簽訂合同、立項、制定工作計劃等13第3講軟件度量講授內容項目案例什么是軟件度量?為什么需要軟件度量?軟件度量的內容軟件度量的方法在軟件開發過程中進行軟件度量小結14第3講軟件度量為什么需要軟件度量(1/2)任何工程化的工作都需要度量,軟件工程也不例外準確了解工程的實施情況項目實施之前輔助制定軟件項目的計劃估算成本和工作量,以便制定計劃15第3講軟件度量為什么需要軟件度量(2/2)項目實施過程中提供軟件開發的可視性跟蹤和控制軟件項目的開發評估軟件開發質量,進行質量控制加強風險管理項目實施之后對項目的實施情況進行評估為后續項目的積累經驗數據16第3講軟件度量講授內容項目案例什么是軟件度量?為什么需要軟件度量?軟件度量的內容軟件度量的方法在軟件開發過程中進行軟件度量小結17第3講軟件度量軟件度量的內容(1/3)三個方面產品:各種文檔和程序過程:各種軟件開發活動資源:各種資源如人員、費用等產品過程資源18第3講軟件度量軟件度量的內容(2/3)二個層次內部屬性軟件產品,過程和資源本身所具有屬性,如軟件產品的復雜度、程序長度等易于度量外部屬性軟件產品,過程和資源與外部環境(用戶、管理人員等)間的關系如成本、效益、可靠性、可維護性等難以度量,但由內部屬性所決定19第3講軟件度量軟件度量的內容(3/3)20第3講軟件度量講授內容項目案例什么是軟件度量?為什么需要軟件度量?軟件度量的內容軟件度量的方法在軟件開發過程中進行軟件度量小結21第3講軟件度量軟件度量的方法面向規模的度量面成功能的度量項目成本和工作量估算軟件質量度量22第3講軟件度量5.1面向規模的度量(1/3)用軟件代碼行數目來表示軟件項目規模生產率:PM=L/E,L表示代碼總量(單位:KLOC),E表示軟件工作量(單位:人月)每千行代碼的平均成本:CKL=S/L,S為軟件項目總開銷文檔與代碼比:Dl=Pd/L,Pd表示文檔頁數代碼出錯率:EQRl=Ne/L,Ne表示代碼出錯的數目23第3講軟件度量5.1面向規模的度量(2/3)24第3講軟件度量5.1面向規模的度量(3/3)優點簡單易行,自然直觀缺點依賴于程序設計語言的表達能力和功能軟件開發初期很難估算出最終軟件的代碼行數對精巧的軟件項目不合適只適合于過程式程序設計語言25第3講軟件度量5.2面向功能的度量(1/7)用軟件的功能表示軟件的規模“功能”不能直接度量,需要依靠其他度量結果導出功能點度量涉及多種因素項目開發初期就可估算出功能點計算目前主要基于經驗公式26第3講軟件度量5.2面向功能的度量(2/7)功能點計算方法FP=(0.65+0.01×Fi)×CTCT
:5個信息量的“加權和”Fi:14個因素的“復雜性調節值”(i=1..14)0.65,0.01都是經驗常數27第3講軟件度量5.2面向功能的度量(3/7)CT的計算方法用戶輸入數×加權因子(簡單=3,平均=4,復雜=5)用戶輸出數×加權因子(簡單=3,平均=4,復雜=5)用戶查詢數×加權因子(簡單=3,平均=4,復雜=5)文件數×加權因子(簡單=3,平均=4,復雜=5)外部界面數×加權因子(簡單=3,平均=4,復雜=5)CT=上述計算值的總和28第3講軟件度量5.2面向功能的度量(4/7)Fi的取值(0,1,2,3,4,5):0-沒有影響,1-偶有影響,2-輕微影響,3-平均影響,4-較大影響,5-嚴重影響系統需要可靠的備份和復原碼?系統需要數據通信嗎?系統有分布處理功能嗎?性能是臨界狀態嗎?系統是否在一個實用的操作系統下運行?系統需要聯機數據項嗎?聯機數據項是否在多屏幕或多操作之間進行切換?29第3講軟件度量5.2面向功能的度量(5/7)需要聯機更新主文件嗎?輸入、輸出、查詢和文件很復雜嗎?內部處理復雜嗎?代碼需要被設計成可重用嗎?設計中需要包括轉換和安裝嗎?系統的設計支持不同組織的多次安裝嗎?應用的設計方便用戶修改和使用嗎?30第3講軟件度量5.2面向功能的度量(6/7)優點與程序設計語言無關,在開發前就可以估算出軟件項目的規模(事前)不足沒有直接涉及算法的復雜度,不適合算法比較復雜的軟件系統;功能點計算主要靠經驗公式,主觀因素比較多數據不好采集31第3講軟件度量5.2面向功能的度量(7/7)代碼行度量和功能點度量間的關系32第3講軟件度量5.3成本和工作量估算(1/2)軟件項目成本和工作量估算極為重要計算機系統中軟件成本占總成本的比例很大用戶和項目管理人員對軟件成本和工作量估算都很重視軟件項目成本估算比較困難軟件是邏輯產品,軟件開發是一個邏輯思維的過程涉及多方面因素33第3講軟件度量5.3成本和工作量估算(2/2)軟件項目成本和工作量估算常用方法參照和依據已完成項目的歷史數據將大項目分解為小項目將項目按照軟件生命周期分解根據經驗估算公式上述方法可以同時、單獨或者組合使用34第3講軟件度量5.3.1代碼行、功能和工作量估算軟件項目規模影響軟件項目成本和工作量估算出FP或者LOC期望值e=(a+4m+b)/6依據歷史數據估算出工作量和成本根據PM
=FP(LOC)/E計算出工作量根據C=S/FP(LOC)計算出成本35第3講軟件度量案例:代碼行和功能點估算(1/8)軟件描述(CAD軟件)CAD圖形軟件可接受來自用戶的二維和三維幾何數據,用戶通過界面與CAD軟件進行交互,并控制它,該軟件具有良好的人機界面設計的特征。所有的幾何數據及其支持信息存放在數據庫中。開發設計分析模塊,以產生所需的輸出,這些輸出將顯示在各種不同的圖形化設備上。軟件在設計中要考慮與外設進行交互并控制它們,包括鼠標、數字化儀、打印機等等。36第3講軟件度量案例:代碼行和功能點估算(2/8)軟件子系統劃分圖形用戶界面及其控制機制二維幾何分析三維幾何分析數據庫管理圖形顯示外設控制(與打印機、數字化儀、掃描儀的接口)設計分析子系統37第3講軟件度量案例:代碼行和功能點估算(3/8)估算出各個子系統的代碼行,例如三維幾何分析功能的代碼行估算范圍為:樂觀值:4600可能值:6900悲觀值:8600估算值:e=(a+4m+b)/6=680038第3講軟件度量案例:代碼行和功能點估算(4/8)39第3講軟件度量案例:代碼行和功能點估算(5/8)歷史數據平均生產率PM:620LOC/PM(620行代碼/人月)每個人月的成本C=8000¥估算項目成本和工作量估算工作量=總代碼行/PM=33200/620=54人月估算成本=估算工作量×每個人月的成本=54人月×8000=432000¥40第3講軟件度量案例:代碼行和功能點估算(6/8)基于功能點估算:Step1:計算CT值41第3講軟件度量案例:代碼行和功能點估算(7/8)Step2:計算復雜度調整因子42第3講軟件度量案例:代碼行和功能點估算(8/8)計算出FP的估算值FP=(0.65+0.01×Fi)×CT=372歷史數據平均生產率6.5FP/PM每個人月的成本C=8000¥(平均月薪)估算成本和工作量工作量58人月成本457000¥43第3講軟件度量5.3.2經驗估算模型(1/7)什么是CoCoMo模型?COCoMo是指ConstructiveCostModel,構造性成本模型,Boehm于1981年提出,用于對軟件開發項目的規模、成本、進度等方面進行估算CoCoMo模型是一個綜合經驗模型,模型中的參數取值來至于經驗值,并且綜合了諸多的因素、比較全面的估算模型比較實用、可操作,在歐盟國家應用較為廣泛44第3講軟件度量5.3.2經驗估算模型(2/7)CoCoMo模型的層次-支持不同的階段基本COCoMo模型系統開發的初期,估算整個系統的工作量(包括維護)和軟件開發和維護所需的時間中間COCoMo模型估算各個子系統的工作量和開發時間詳細COCoMo模型估算獨立的軟構件,如各個子系統的各個模塊的工作量和開發時間45第3講軟件度量5.3.2經驗估算模型(3/7)基本CoCoMo模型E=a
(kLOC)b;E是工作量(人月),a和b是經驗常數D=c
Ed;D是開發時間(月),c和d是經驗常數其中,a,b,c,d為經驗常數,其取值見下表46第3講軟件度量5.3.2經驗估算模型(4/7)中間CoCoMo模型E=a
(kLOC)b
EAF
其中,E表示工作量(人月),EAF表示工作量調節因子,a,b為經驗常數,其取值見下表47第3講軟件度量5.3.2經驗估算模型(5/7)EAF的取值(考慮15個因素)軟件產品屬性(3):軟件可靠性,軟件復雜性,數據庫的規模計算機屬性(4):程序執行時間,程序占用內存大小,軟件開發環境的變化,軟件開發環境的響應速度人員屬性(5):分析員能力,程序員能力,領域經驗,開發環境的經驗,程序設計語言的經驗項目屬性(3):軟件開發方法的能力,軟件工具的數量和質量,軟件開發的進度要求48第3講軟件度量5.3.2經驗估算模型(6/7)EAF的取值(范圍)很低、低、正常、高、很高、極高Boehm建議取值范圍[0.70-1.66]EAF的計算=
Fi(i=1..15)調節因子及其取值由統計結果和經驗決定,不同的軟件開發組織在不同的時期可能會有不同的取值49第3講軟件度量5.3.2經驗估算模型(7/7)案例分析:用基本CoCoMo模型估算項目的工作量、開發時間和參加項目開發的人數CAD軟件:目標代碼行33.2kLOC,屬于中等規模,半獨立型,因而a=3.0,b=1.12,c=2.5,d=0.35E=3.0*(33.2)1.12=152PMD=2.5*(152)0.35=14.5(月)參加項目人數N=E/D=152/14.5=11(人)50第3講軟件度量5.4軟件質量度量(1/2)軟件質量度量的重要性質量是軟件的生命,質量不高的軟件會帶來嚴重、甚至災難性的后果必須加強對軟件質量的管理和監控,如ISO9001和CMM必須在軟件開發過程中能夠可視所開發軟件的質量軟件質量度量存在的困難軟件質量依賴于軟件的內部特性及其組合這些特性難以度量51第3講軟件度量5.4軟件質量度量(2/2)McCall的軟件質量度量模型質量要素定義了與軟件質量相關聯的一些要素質量要素的評價準則定義了能夠對質量要素進行度量的一些準則軟件質量的度量定義了如何基于對質量要素的定量描述對軟件質量進行度量的方法52第3講軟件度量5.4.1質量要素(1/2)53第3講軟件度量5.4.1質量要素(2/2)質量要素之間的相互關聯性(正相關、負相關),因此在設計時要根據項目的具體情況進行權衡例如,軟件的可移植性會降低軟件的有效性例如,對于實時系統,必須保證可靠性和有效性,而將可移植性、可重用性放在次要地位54第3講軟件度量5.4.2質量要素的評價準則(1/2)給出一組比較容易度量的軟件質量要素評價準則來間接對軟件質量要素進行定量描述定義準則基礎是確定影響軟件質量要素的屬性這些屬性比較完整、準確地描述軟件質量要素這些屬性比較容易量化55第3講軟件度量5.4.2質量要素的評價準則(2/2)McCall質量模型共給出21個評價準則,例如簡單性:理解程序的難易程度準確性:計算和控制的精度通信通用性:使用標準接口、協議和頻帶的程度完全性:是否全面執行效率:程序的運行效率可擴充性:對軟件結構、數據設計和過程設計進行擴充的程度……56第3講軟件度量5.4.3軟件質量的度量對于每個質量要素的計算Fi=(Cik×Mik)其中,Fi表示第i個質量因素的度量值(i=1,..11),Mik
表示第i個質量因素對于第k種評價準則的測量值,Mik的取值共分10級,分別為0.1,…,1.0
Cik
表示第k種評價準則對第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 正畸治療中的口呼吸問題綜合解析
- 幼兒園健康課件《注意飲食衛生》
- 健康體檢科護士課件
- 江蘇南通市如皋市科創投集團招聘筆試題庫2025
- 四川涼山州鹽源縣縣屬國有企業招聘筆試題庫2025
- 海洋靈感首飾設計
- 2025年中級財務會計考試試題及答案
- 消防工程師考試題及答案2025年
- 2025年運動康復與訓練方法課程學習考試試卷及答案
- 2025年醫學檢驗與臨床檢驗技術畢業考試試卷及答案
- 護理部運用PDCA縮短門診患者超聲檢查等候時間品管圈QCC成果匯報
- 剪板機風險告知牌
- 計算機組成與設計知到章節答案智慧樹2023年山東大學
- 海綿城市pp雨水收集系統
- 辦公用品采購清單2022
- 酒店經營預算和成本分析課件
- 小專題循環物質(已改)
- GB/T 9865.1-1996硫化橡膠或熱塑性橡膠樣品和試樣的制備第一部分:物理試驗
- GB/T 3921-2008紡織品色牢度試驗耐皂洗色牢度
- 醫療器械質量管理體系文件全套
- 《巡游出租汽車經營申請表》
評論
0/150
提交評論