前言
本書把軟體可信性與軟體評價技術相結合,以跨越整個軟體開發生存周期的軟體可信性定量評估為主線,闡述了軟體可信性定量評估所需的模型、技術和方法。
本書把軟體可信性與軟體評價技術相結合,以跨越整個軟體開發生存周期的軟體可信性定量評估為主線,闡述了軟體可信性定量評估所需的模型、技術和方法,主要包括:軟體可信性定量評估模型,軟體需求分析、軟體設計、編碼實現、軟體測試等開發生存周期各階段的可信性度量策略、度量指標和度量方法,軟體可信性數據融合與推理技術等。本書主題明確、內容系統、可讀性好,結合工程實例給出了軟體可信性定量評估的實施指南,實用性和指導性強。 本書適合從事軟體質量控制的項目管理人員、過程控制人員、質量管理人員使用,也可供軟體開發人員、軟體技術人員以及高等院校或科研機構相關專業的高年級學生和研究人員參考。
隨著信息技術的迅速發展,計算機軟體的套用日益廣泛,軟體失效造成的後果也愈加嚴重,特別是在航空航天、金融保險、交通通信、工業控制等關係國計民生的重要領域,軟體一旦失效將造成重大損失,因此對軟體質量提出了更高的要求,軟體質量受到人們越來越多的關注。
從整體上來度量軟體質量,最早在20世紀70年代末被提出,希望用軟體度量的方法來科學地評價軟體質量,以便更有力地控制和管理軟體開發過程,合理地組織和分配資源,制訂切實可行的軟體開發計畫,以低成本獲得高質量的軟體。但由於軟體是大腦智力的產物,具有可見性差、難以量化的特點,人們對軟體質量的認識尚不夠系統,軟體度量與評估至今仍是軟體工程領域的重要研究方向,而能夠在實際工程中套用的具有良好可操作性的技術和方法更是鳳毛麟角。
軟體可信性是軟體質量的一種特殊表現形式,所關注的是軟體使用層面的綜合化的質量屬性及其保障方式,涉及多個質量屬性的集合以及這些屬性的綜合與平衡。自20世紀90年代被引入軟體工程化領域以來,在美國國家科學基金會(NSF)、歐空局(ESA)等組織的積極推進下,軟體可信性研究得到了廣泛的重視。特別是在硬體技術越來越成熟、軟體失效成為導致系統失效的主要原因的當下,軟體可信性成為複雜計算機系統的最主要挑戰之一,如何確保軟體的可信性具有重大的現實意義。我國自然科學基金委和“863”計畫分別把軟體可信性相關研究列為重大研究計畫和重點研究項目,美國國家軟體發展戰略(NationalSoftwareStrategytoEnsureU.S.SecurityandCompetitiveness,2006—2015)更是將開發高可信軟體放在首位,並提出下一代軟體工程的構想。
將軟體可信性與軟體評估技術相結合,探討全軟體開發生存周期的軟體可信性度量與評估方法,是撰寫本書的目的。本書以全生存周期的軟體可信性定量評估方法為主線,有取捨地介紹了軟體工程、軟體質量評估和軟體可信性研究的相關內容,重點闡述了軟體可信性評估模型、軟體開發生存周期各階段的可信性度量策略與方法、軟體可信性數據融合與推理技術等技術和方法。
全書的組織結構如下:
前三章為引言部分。第1章概論,簡要介紹了軟體可信性的定義、來由及發展歷程,給出了實施軟體開發生存全周期可信性定量評估的一般思路,主要說明本書的主旨與結構;第2章介紹了軟體、軟體工程、軟體質量的相關概念,簡要闡述了軟體質量評估的基本過程與幾種常見的質量模型;第3章概要介紹了GB/T8566—2007《信息技術軟體生存周期過程》,詳細闡述了軟體需求分析、軟體設計、編碼實現和軟體測試等軟體開發過程核心階段的主要活動、技術要點及其產品驗證與確認方法,並簡要介紹了瀑布模型、快速原型開發模型、增量開發模型、螺旋模型等不同的軟體生存周期模型。〖1〗軟體可信性定量評估:模型、方法與實施〖1〗前言第4章至第10章是本書的主要內容。第4章為軟體可信性評估模型,參考已有的質量模型,給出了一種五級層次結構的軟體可信性評估模型,重點介紹了軟體可信性評估模型的結構及其可信屬性、可信子屬性的設計;第5章至第8章為軟體可信性評估度量,結合軟體可信性評估模型設計,分別詳細闡述了軟體需求分析、軟體設計、編碼實現和軟體測試等階段的可信度量、度量指標及其度量策略;第9章為軟體可信性評估方法,介紹如何對採集到的可信度量數據進行有效的歸納整理以得到評估結果的相關技術,詳細闡述了一種基於證據推理的數據融合方法,給出了具體的算法步驟;第10章為本書的最後一部分,結合工程實例及軟體可信性定量評估軟體,給出了軟體可信性定量評估方法的實施指南。最後,在附錄中給出評估例的主要結果及評估過程文檔模板。
除吳欣參加了第10章部分內容的編寫外,全書由張衛祥執筆、劉文紅審校。杜會森、閆國英、尹平、李德治等參加了本書內容的討論,趙輝、杜會森、許聚常、張衛民、楊寶明、李國華、韓光、楊朝紅等專家審閱了初稿並提出了許多寶貴意見。陳凌輝和清華大學出版社石磊老師為本書出版提供了諸多幫助,付出了辛勤勞動。
本書的形成基於作者長期在航天軟體領域從事一線工作的實踐經驗(本書的適用範圍並不限於此領域),大部分內容取材於探月工程關鍵技術研究“軟體可信性分析與評估方法研究”的研究內容與成果,非常感謝探月工程給予的基金支持。在本書的研究和組稿過程中,得到了北京跟蹤與通信技術研究所,特別是軟體評測中心的大力支持,一併表示感謝。還需要特別感謝的是我們的家人,完成本書占用了很多業餘時間,在此對他們表示歉意並感謝他們的理解與支持。
與軟體一樣,本書雖然經過了認真的編寫和修改,仍然會有一些錯誤存在,而這些錯誤只有在使用時才會被發現。希望讀者在閱讀本書後能將錯誤、意見或建議反饋給我們,特此致謝。
編者2015年4月
目錄
第1章概論1
1.1軟體可信性2
1.2全開發生存周期的軟體可信性評估3
1.3本書的組織與結構4
第2章軟體與軟體質量6
2.1概述6
2.2軟體失效造成的災難6
2.3軟體與軟體工程7
2.4軟體質量評價9
2.5軟體質量模型10
2.5.1Beohm質量模型11
2.5.2McCall質量模型12
2.5.3ISO9126質量模型12
2.5.4GB/T16260質量模型13
2.5.5ISO25010質量模型14
2.6本章小結15
第3章軟體開發生存周期17
3.1概述17
3.2軟體生存周期過程17
3.3軟體生存周期模型20
3.3.1瀑布模型20
3.3.2快速原型開發模型21
3.3.3增量開發模型22
3.3.4極限編程模型23
3.3.5螺旋模型23
3.4軟體開發過程24
3.4.1軟體需求分析24
3.4.2軟體設計27
3.4.3軟體編碼實現29
3.4.4軟體測試31
3.5本章小結33
第4章軟體可信性評估模型35
4.1概述35
4.2模型結構35
4.3可信屬性與可信子屬性36
4.4可信度量與度量指標39
4.5本章小結40
第5章需求分析階段的可信度量42
5.1需求分析階段度量策略42
5.2在需求分析階段度量軟體可用性42
5.2.1適合性的度量42
5.2.2準確性的度量43
5.2.3互操作性的度量44
5.2.4易操作性的度量45
5.2.5依從性的度量46
5.3在需求分析階段度量實時性46
5.3.1處理及時性的度量46
5.3.2實時穩定性的度量47
5.4在需求分析階段度量可靠性47