《軟件工程》第十章學習輔導_第1頁
《軟件工程》第十章學習輔導_第2頁
《軟件工程》第十章學習輔導_第3頁
《軟件工程》第十章學習輔導_第4頁
《軟件工程》第十章學習輔導_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程第十章學習輔導軟件質量,是貫穿軟件生存期的一個極為重要的問題。是軟件開發過程中所使用的各種開發 技術和驗證方法的最終體現。因此,在軟件生存期中要特別重視質量的保證,以生成高質量 的軟件產品。軟件質量的概念軟件質量的定義軟件質量為“所有描述計算機軟件優秀程度的特性的組合”。也就是說,為滿足軟件的 各項精確定義的功能、性能需求,符合文檔化的開發標準,需要相應地給出或設計一些質量 特性及其組合,作為在軟件開發與維護中的重要考慮因素。如果這些質量特性及其組合都能 在產品中得到滿足,則這個軟件產品質量就是高的。軟件質量反映了以下三方面的問題:(1)軟件需求是度量軟件質量的基礎。不符合需求的軟件就

2、不具備質量。(2)在各種標準中定義了一些開發準則,用來指導軟件人員用工程化的方法來開發軟 件。如果不遵守這些開發準則,軟件質量就得不到保證。(3)往往會有一些隱含的需求沒有明確地提出來。例如,軟件應具備良好的可維護性。 如果軟件只滿足那些精確定義了的需求而沒有滿足這些隱含的需求,軟件質量也不能保證。軟件質量是各種特性的復雜組合。它隨著應用的不同而不同,隨著用戶提出的質量要求 不同而不同。因此,有必要討論各種質量特性,以及評價質量的準則。軟件質量特性軟件質量特性,反映了軟件的本質。討論一個軟件的質量,問題最終要歸結到定義軟件 的質量特性。而定義一個軟件的質量,就等價于為該軟件定義一系列質量特性。

3、人們通常用軟件質量模型來描述影響軟件質量的特性。已有多種有關軟件質量的模型。 它們共同的特點是把軟件質量特性定義成分層模型。在這種分層的模型中,最基本的叫做基 本質量特性,它可以由一些子質量特性定義和度量。二次特性在必要時又可由它的一些子質 量特性定義和度量。下面是幾個影響較大的軟件質量模型。(1)McCall 質量模型這是McCall等人于1979年提出的軟件質量模型。其軟件質量概念基于11個特性之上。而這 11 個特性分別面向軟件產品的運行、修正、轉移。進一步,McCall等給出了一個三層次式模型的框架。McCall等認為,特性是軟件質量的反映,軟件屬性可用做評價準則,定量化地度量軟件屬性

4、可知軟件質量的優劣。McCall 等人的質量特性定義如下:正確性 在預定環境下,軟件滿足設計規格說明及用戶預期目標的程度。它要求軟件沒有錯 誤。可靠性 軟件按照設計要求,在規定時間和條件下不出故障,持續運行的程度。效率 為了完成預定功能,軟件系統所需的計算機資源的多少。完整性 為了某一目的而保護數據,避免它受到偶然的,或有意的破壞、改動或遺失 的能 力。可使用性 對于一個軟件系統,用戶學習、使用軟件及為程序準備輸入和解釋輸出所需工作 量的大小。可維護性 為滿足用戶新的要求,或當環境發生了變化,或運行中發現了新的錯誤時,對一 個已投入運行的軟件進行相應診斷和修改所需工作量的大小。可測試性 測試軟

5、件以確保其能夠執行預定功能所需工作量的大小。靈活性 修改或改進一個已投入運行的軟件所需工作量的大小。可移植性 將一個軟件系統從一個計算機系統或環境移植到另一個計算機系統或環境 中 運行時所需工作量的大小。復用性 一個軟件(或軟件的部件)能再次用于其它應用(該應用的功能與此軟件或軟件 部件的所完成的功能有聯系)的程度。互連性 連接一個軟件和其他系統所需工作量的大小。如果這個軟件要聯網,或與其 他系 統通信,或要把其他系統納入到自己的控制之下,必須有系統間的接口,使之可以聯結。互 連性很重要。它又稱相互操作性。通常,對以上各個質量特性直接進行度量是很困難的,在有些情況下甚至是不可能的。 因此,Mc

6、Call定義了一些評價準則,使用它們對反映質量特性的軟件屬性分級,以此來估 計軟件質量特性的值。軟件屬性一般分級范圍從0(最低)到 10(最高)。各評價準則定義 如下。(2)ISO 的軟件質量評價模型按照ISO/TC97/SC7/WG3 / 1985-1-30 /N382,軟件質量度量模型由三層組成:高層、 中層和低層dSO的三層次模型來自McCall等人的模型。高層、中層和低層分別對應于McCall 模型中的特性、度量準則和度量。(3)上海軟件中心(SSC)的軟件質量度量模型在SSC模型中,采用了與IS0/IEC9126相同的6個質量特性,它們分別是功能性(正 確性)、可靠性、易使用性、效率

7、、可維護性和可移植性。同時設置了22 個質量子特性,是 參照 McCall 模型定義的。包括精確性(準確性)、健壯性(容錯性)、安全性、完備性、一 致性、通信有效性(在執行功能時,使用最少通信資源的的程度)、設備有效性(為實現某 一功能,提供使用最少設備,包括存儲設備和外部設備資源的程度)、執行有效性(執行效 率)操作性、培訓性(易訓練性)、可追蹤性、可見性(自檢性)、硬件系統無關性(機器獨 立性)、軟件系統無關性(軟件獨立性)、可擴充性、產品文檔完備性、公用性(提供使用協 議、例程、數據結構的接口標準的程度。包括數據共享性和通信共享性)、清晰性(提供不 復雜、可理解的方式對程序結構做出清晰明

8、了的描述的程度)、模塊性、簡單性、自描述性、 結構性。軟件質量特性之間的競爭在軟件的質量特性與質量特性之間、質量特性與質量子特性之間存在著有利的影響和不 利的影響。例如,由于效率的要求,應盡可能采用匯編語言。但是用匯編語言編制出的程序, 可靠性、可移植性以及可維護性都很差。軟件質量的度量和評價軟件質量的度量為了在軟件開發和維護的過程中,定量地評價軟件的質量,必須對軟件質量特性進行度 量,以測定軟件具有要求質量特性的程度。軟件質量特性度量有兩類:預測型和驗收型。預測度量是利用定量的或定性的方法,對軟件質量的評價值進行估計,以得到軟件質量 的比較精確的估算值。它是用在軟件開發過程中的。而驗收度量則

9、是在軟件開發各階段的檢 查點,對軟件的要求質量進行確認性檢查的具體評價值,它可以看成是對預測度量的一種確 認,是對開發過程中的預測進行評價。預測度量有兩種。第一種叫做尺度度量,這是一種定量度量。它適用于一些能夠直接度 量的特性,一般它作為相對量進行度量。第二種叫做二元度量,這是一種定性度量。它適用 于一些只能間接度量的特性。軟件質量評價定量地評價軟件的質量,目前還不能精確地做到。一般采取由若干(610 )位軟件專 家進行打分來評價。這些軟件專家應是富有實際經驗的項目帶頭人。軟件質量評價分兩步走。1)評分對每一階段要達到的質量指標(質量特性目標值或標準)詳細開列/建立度量工作表, 在表中,以提問

10、題方式,列出在某一階段為實現某一質量指標,應達到什么標準。所以它也 可稱為檢查表。特別地,有些檢查表是針對子系統或模塊的。為了回答度量工作表上的問題,必須積累原始資料。最重要的原始資料是在軟件定義與 開發的各個階段提供的文檔。其次是在開發過程中積累的各種數據,特別是對出錯數據的記 錄。評分主要是依據軟件實際成果進行的、由于軟件使用環境不同,使用目的不同,各人打分會 有一定差別。(2)分析結果根據評分的結果,對照評價指標,檢查某個質量特性是否達到了要求的質量標準。如果某個 質量特性不符合規定的標準,就應當分析這個質量特性,找出為什么達不到標準的原因。分析原因應該自頂向下進行。按系統級、子系統級、

11、模塊級逐步分析。軟件質量保證10.3.1 質量保證的概念質量保證是為保證產品和服務充分滿足消費者要求的質量而進行的有計劃、有組織的活 動。質量保證是面向消費者的活動,是為了使產品實現用戶要求的功能,站在用戶立場上來 掌握產品質量的。這種觀點也適用于軟件的質量保證。軟件的質量保證就是向用戶及社會提供滿意的高質量的產品。軟件的質量保證活動也和 一般的質量保證活動一樣,是確保軟件產品從誕生到消亡為止的所有階段的質量的活動。即 為了確定、達到和維護需要的軟件質量而進行的所有有計劃、有系統的管理活動。軟件質量保證的主要任務為了提高軟件的質量和軟件的生產率,軟件質量保證的主要任務大致可歸結為8 點。(1)

12、用戶要求定義:軟件質量保證人員必須熟練掌握正確定義用戶要求的技術,包括熟練 使用和指導他人使用定義軟件需求的支持工具。必須十分重視領導全體開發人員收集和積累 有關用戶業務領域的各種業務的資料和技術技能。(2)力爭不重復勞動:利用已有軟件成果是提高軟件質量和軟件生產率的重要途徑。為此, 不要只考慮如何開發新軟件,而首先應考慮哪些既有軟件可以復用,并在開發過程中,隨時 考慮所生產軟件的復用性。(3)掌握開發新軟件的方法:對開發新軟件的方法已經過長期的探索和積累,最普遍 公認的成功方法就是軟件工程學方法。標準化、設計方法論、工具化等都屬此列。應當在開 發新軟件的過程中大力使用和推行軟件工程學中所介紹

13、的開發方法和工具。(4)組織外部力量協作:一個軟件自始至終由同一軟件開發單位來開發也許是最理想 的。但在現實中常常難以做到。因此需要改善對外部協作部門的開發管理。必須明確規定進 度管理、質量管理、交接檢查、維護體制等各方面的要求,建立跟蹤檢查的體制。(5)排除無效勞動:最大的無效勞動是因需求規格說明有誤、設計有誤而造成的返工。 定量記錄返工工作量,收集和分析返工勞動花費的數據非常重要。另一種較大的無效勞動是 重復勞動,即相似的軟件在幾個地方同時開發。這多是因軟件開發計劃不當,或者開發信息 不流暢造成的。為此,要建立互相交流、信息往來通暢、具橫向交流特征的信息流通網。(6)發揮每個開發者的能力:

14、軟件生產是人的智能生產活動,它依賴于人的能力和開 發組織團隊的能力。開發者必須有學習各專業業務知識、生產技術和管理技術的能動性。管 理者或產品服務者要制定技術培訓計劃、技術水平標準,以及適用于將來需要的中長期技術 培訓計劃。(7)提高軟件開發的工程能力:要想生產出高質量的軟件產品必須有高水平的軟件工 程能力。即在軟件開發環境或軟件工具箱的支持下,運用先進的開發技術、工具和管理方法 開發軟件的能力。(8)提高計劃和管理質量:對于大型軟件項目來說,提高工程項目管理能力極其重要。 提高管理能力的方法是重視和強化項目開發初期計劃階段的項目計劃評價,計劃執行過程中 及計劃完成報告的評價。將評價、評審工作

15、在工程實施之前就列入整個開發工程的工程計劃 之中。正確地評價開發計劃和實施結果,不僅可以提高軟件開發項目管理的精確度,還可以 積累項目管理經驗資料,提高日后進行項目預算的精確度。所以對“計劃”的質量管理非常 重要。質量保證與檢驗(1)檢驗在質量保證中的作用軟件質量必須在設計和實現過程中加以保證。如果工程能力不夠,或者由于各種失誤導 致產生軟件差錯,其結果就會產生軟件失效。為了確保每個開發過程的質量,防止把軟件差 錯傳遞到下一個過程,必須進行質量檢驗。檢驗的目的有兩個。其一是切實搞好開發階段的管理,檢查各開發階段的質量保證活動 開展得如何;其二是預先防止軟件差錯給用戶造成損失。(2)各個開發階段

16、中的檢驗為了切實做好質量保證,要在軟件開發工程的各個階段實施檢驗。檢驗的實施有兩種形 式:實際運行檢驗(即白盒測試和黑盒測試)和鑒定。可在各開發階段中結合起來使用。軟件質量保證體系軟件的質量保證活動,是涉及各個部門的部門間的活動。質量保證的實施軟件質量保證的實施需要從縱向和橫向兩個方面展開。一方面要求所有與軟件生存期有 關的人員都要參加,另一方面要求對產品形成的全過程進行質量管理,這要求整個軟件部門 齊心協力,不斷完善軟件的開發環境。此外還需要與用戶共同合作。軟件的質量設計在軟件系統定義階段,必須定義對軟件的質量需求。即確定軟件的質量特性及必需的評 價準則,并定量地設定其必須達到的質量水平。在

17、以后軟件開發的每一階段結束時,要算出 評價的分數,然后與目標值加以對照,以評估在這一階段開發的軟件質量是否達到要求。技術評審人的認識不可能100符合客觀實際,因此在軟件生存期每個階段的工作中都可能引入 人為的錯誤。在某一階段中出現的錯誤,如果得不到及時糾正,就會傳播到開發的后續階段 中去,并在后續階段中引出更多的錯誤。實踐證明,提交給測試階段的程序中包含的錯誤越 多,經過同樣時間的測試后,程序中仍然潛伏的錯誤也越多。所以必須在開發時期的每個階 段,特別是設計階段結束時都要進行嚴格的技術評審,盡量不讓錯誤傳播到下一個階段。軟件可靠性軟件可靠性是最重要的軟件特性。通常用它衡量在規定的條件和時間內,軟件完成規定 功能的能力。一般地,評價可靠性要用到概率統計方法。因此,必須通過不斷的測試取得實 測數據,才能根據測試結果構造可靠性模型,評價實際達到的可靠性。測試中的可靠性分析在軟件開發的過程中,利用測

溫馨提示

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

評論

0/150

提交評論