1. 程式人生 > >《軟體工程》-軟體質量管理

《軟體工程》-軟體質量管理

【前言】
軟體質量概念
軟體質量保證
軟體可靠性
軟體配置管理
【內容】
一.軟體質量概念
1.軟體質量定義
軟體質量是“反映實體滿足明確的和隱含的需求的能力的特性的總和”。
2.軟體質量特性
定義一個軟體的質量,就等價於為該軟體定義一系列質量特性。
人們通常把影響軟體質量的特性用軟體質量模型來描述。
3.軟體質量模型
1976年 Boehm質量模型
在這裡插入圖片描述
1979年 McCall質量模型
在這裡插入圖片描述
1985年 ISO質量模型
在這裡插入圖片描述
4.件質量的度量和評價
軟體質量特性度量有兩類:預測型和驗收型。
預測度量是利用度量或定性的方法,估算軟體質量的評價值,以得到軟體質量的比較準確地估算值。
驗收度量是在軟體開發各階段的檢查點,對軟體的要求質量進行確認行檢查的具體評價值,它是對開發過程中的預測進行評價。
二.軟體質量的保證


1.質量保證的概念
是為保證產品和服務充分滿足消費者要求的質量而進行的有計劃、有組織的活動。質量保證是面向消費者的活動,是為了使產品實現使用者要求的功能,站在使用者立場上來掌握產品質量的。
軟體的質量保證就是向用戶及社會提供滿意的高質量的產品。
2.軟體質量保證的主要任務
為了提高軟體的質量和軟體的生產率,軟體質量保證的主要任務大致可歸結為8點。
(1)使用者要求定義
(2)力爭不重複勞動
(3)掌握開發新軟體的方法
(4)組織外部力量協作的方法
(5)排除無效勞動
(6)發揮每個開發者的能力
(7)提高軟體開發的工程能力
(8)提高計劃和管理質量能力
3.質量檢驗的原則
使用者要求的是產品所具有的功能,這是“真質量”。靠質量檢驗,一般檢查的是“真質量”的質量特性。
能靠質量檢驗的質量特性,即使全檢驗,也只是代表產品的部分質量特性。
軟體質量保證體系
軟體的質量保證活動,是涉及各個部門的部門間的活動。
4.軟體質量保證體系

規定在專案的哪個階段進行評審及如何評審;
規定在專案的哪個階段應當產生哪些報告和計劃;
規定產品各方面測試應達到的水平;
在每次評審和測試中發現的錯誤如何修正。
5.質量保證的實施
軟體質量保證的實施需要從縱向和橫向兩個方面展開。
要求所有與軟體生存期有關的人員都要參加
要求對產品形成的全過程進行質量管理
6.軟體的質量設計
Target:以使用者要求和開發方針為依據,對質量需求準則、質量設計準則的各質量特性設定質量目標。
Plan:設定適合於被開發軟體的評測檢查專案(質量評價準則)。研討實現質量目標的方法或手段。
Do:製作高質量的規格說明和程式。在接受質量檢查前先做自我檢查。
Check:以Plan階段設定的質量評價準則進行評價。計算結果用質量圖的形式表示出來。
Action:對評價發現的問題進行改進活動,如果實現並達到了質量目標就轉入下一個工程階段。這樣重複“Plan”到“Action”的過程,直到整個開發專案完成。
在這裡插入圖片描述

三.軟體可靠性
1.軟體生存期與軟體壽命的關係
一切有生命的東西都有一個“壽命”。
從軟體工程的角度來說,軟體產品的壽命是指軟體的整個生存期。
從軟體使用者的角度來看,更關心的是軟體在交付使用後的情況如何。
希望用一個指標平均失效間隔時間MTBF(MeanTime Between Failure)來表明,在規定的要求和條件下,能在多大的程度上依賴這個軟體來完成任務。
我們把在使用期間軟體能夠正常工作的持續時間叫做軟體的使用壽命。
2.在軟體工程中常用的定義
故障:軟體內在的缺陷
錯誤:故障的暴露,導致軟體出錯
失效:對錯誤不做任何修改,使得系統輸出不能滿足使用者要求。
3.軟體可靠性的定義
軟體可靠性是軟體在給定的時間間隔及給定的環境條件下,按設計要求,成功地執行程式的概率。
4.測試中的可靠性分析
在軟體開發的過程中,利用測試的統計資料,估算軟體的可靠性,以控制軟體的質量是至關重要的:
推測錯誤的產生頻度,即推測錯誤產生的時間間隔。
推測殘留在程式中的錯誤數。
評價測試的精確度和覆蓋率。
測試精確度和測試覆蓋度的評價
在軟體測試過程中累積發現的故障數,可用帶有平均值函式m(t)的非齊次泊松過程(NHPP)來描述:
在這裡插入圖片描述
其中,N是在測試中可能發現的故障總數,b是故障發現率。
當N一定時,b越大,在短期內發現的故障越多。
四.軟體配置管理
在軟體建立時變更是不可避免的,因為在進行變更前沒有仔細分析,或沒有進行變更控制,變更加劇了專案中軟體人員之間的混亂。
協調軟體開發使得混亂減到最小的技術叫做配置管理。
1.軟體配置管理的概念
軟體配置管理,簡稱SCM,是一種“保護傘”活動,它應用於整個軟體工程過程。
2.軟體配置管理目標
標識變更、控制變更、確保變更正確地實現、向其他有關的人報告變更。
3.基線(Baseline)
基線是軟體生存期中各開發階段末尾的特定點,又稱里程碑。
基線的作用是把各階段工作的劃分更加明確化,以便於檢驗和肯定階段成果。
在這裡插入圖片描述