趙智偉 王猛 周輝 安娜
摘要:針對大型復(fù)雜軟件可靠性低、重大任務(wù)運行過程中出現(xiàn)軟件故障的問題,從軟件的全生命周期角度研究軟件可靠性設(shè)計方法;從軟件可靠性檢驗、軟件維修性檢驗、軟件保障性檢驗、軟件測試性檢驗、軟件安全性檢驗和軟件環(huán)境適應(yīng)性檢驗等方面探討軟件六性檢驗方法。針對軟件可靠性檢驗,從軟件失效、功能剖面、失效模式和影響度分析、可靠性定義、可靠性模型選擇和指標分配,涵蓋了軟件需求、概要設(shè)計、詳細設(shè)計及測試設(shè)計等不同階段,最后以實例進行驗證。
關(guān)鍵詞:關(guān)鍵件;失效模式;可靠性模型;六性檢驗
中圖分類號:TP393 文獻標志碼:A 文章編號:1008-1739(2021)13-70-4
Discussion on Six Properties of Software Inspection
ZHAO Zhiwei1, WANG Meng2, ZHOU Hui3, AN Na4
(1. Unit 91917, PLA, Beijing 102401, China;
2. Military Representative Office of the Equipment Department of PLA Rocket Force Stationed in Langfang, Langfang 065000, China;
3. Military Representative Office of the Military Representative Bureau of Equipment Development Department of CMC Stationed inShijiazhuang, Shijiazhuang 050081, China;
4. The 54th Research Institute of CETC, Shijiazhuang 050081, China)
Abstract:In view of low reliability of large and complex software and software fault in running, the design of software reliability isstudied. The inspection method of six properties of software is discussed, from the view of software lifetime, including softwarereliability, maintenance, safeguard, testing and safety and environments adaptability. Aiming at the software reliability, the softwarefault and software function profile and fault mode, effect analysis, reliability definition, reliability model choice and indexes allocationcover the software requirement, online design, detailed design and testing design. At last, the verification is done by using the instance.
Keywords:key module; fault mode; reliability model; six properties inspection
0 引言
軟件是各個系統(tǒng)的必要組成部分,也是各系統(tǒng)的核心功能所在,隨著 SDN/NFV 的出現(xiàn),軟件定義網(wǎng)絡(luò)及硬件功能軟件化、虛擬化,軟件的地位和作用越來越突出。同時軟件直接面向各級各類運維人員,是網(wǎng)絡(luò)整體運行狀態(tài)的呈現(xiàn)者,為大型任務(wù)網(wǎng)可靠高效運行保駕護航,為重大任務(wù)的順利完成提供技術(shù)支撐,因此研制高可靠性高質(zhì)量的軟件勢在必行,研究探討軟件六性檢驗、提升軟件質(zhì)量和可靠性具有重要意義。
1 軟件可靠性檢驗
軟件可靠性檢驗主要包括軟件復(fù)雜度、軟件冗余、軟件健壯性、軟件避錯和軟件程序可讀性檢驗。
1.1 軟件復(fù)雜度檢驗
軟件復(fù)雜度檢驗主要關(guān)注層次結(jié)構(gòu)、模塊化設(shè)計、服務(wù)化設(shè)計等方面:
①體系架構(gòu)檢驗:檢驗軟件是否有體系架構(gòu)設(shè)計圖,針對大型復(fù)雜軟件,重點檢驗是否進行體系架構(gòu)的層次性分解。
②功能剖面設(shè)計檢驗:是否進行軟件功能分解,是否封裝為軟件模塊,軟件模塊的分解圖、軟件的關(guān)鍵件和重要件是否確定,軟件的功能剖面是否具備,軟件功能剖面是否進行了功能模塊標識、功能模塊說明;是否將軟件功能剖面進行了功能執(zhí)行概率分解,執(zhí)行概率與軟件可靠度是否進行了分解和匹配。
③服務(wù)化設(shè)計檢驗:是否將軟件模塊進行了服務(wù)化封裝,服務(wù)化的軟件模塊是否采用標準的服務(wù)接口進行消息交互。
④軟件失效分析:是否描繪了軟件失效模式與影響分析表,細化為軟件模塊的失效模式、失效原因、失效影響和嚴重程度,對整個軟件的失效影響概率。
⑤關(guān)鍵件重要件的失效模式及故障恢復(fù):在軟件功能模塊化分解之后,提取對軟件系統(tǒng)有重大影響的模塊,確定為關(guān)鍵件或重要件,分析失效模式以及故障快速處理手段和方法。
⑥可靠性指標分配:將系統(tǒng)可靠性指標進行了分配和分解,確定軟件系統(tǒng)的可靠性三要素,即規(guī)定的條件、規(guī)定的時間和規(guī)定的功能。
規(guī)定的條件指軟件的運行環(huán)境,涉及軟件系統(tǒng)運行時所需的各種支持要素,如支持硬件、操作系統(tǒng)、其他支持軟件、輸入數(shù)據(jù)格式和范圍以及操作規(guī)程等。不同的環(huán)境條件下軟件的可靠性是不同的。具體地說,規(guī)定的環(huán)境條件主要是描述軟件系統(tǒng)運行時計算機的配置情況以及對輸入數(shù)據(jù)的要求。
規(guī)定的條件還指軟件的用法,一個軟件的可靠性隨著用法的不同而不同。有些用法可以揭露軟件的故障,有些則不能揭露軟件的故障。因此如何定義軟件的用法,以及如何度量軟件用法對軟件失效的影響,是軟件可靠性設(shè)計中的一個主要問題。
規(guī)定的時間指軟件的工作周期,軟件可靠性是時間的函數(shù),失效的概率隨著系統(tǒng)工作周期的增長而增加。軟件可靠性只是體現(xiàn)在運行階段,所以將運行時間作為規(guī)定的時間的度量。運行時間包括軟件系統(tǒng)運行后工作與掛起(開啟但空閑)的累計時間。由于軟件運行的環(huán)境與程序路徑選取的隨機性,軟件的失效為隨機事件,所以運行時間屬于隨機變量。
規(guī)定功能指軟件不出現(xiàn)失效。如果一個系統(tǒng)不能完成其規(guī)定功能,就說明它已經(jīng)失效。規(guī)定的功能通常在軟件需求規(guī)格說明書中定義,軟件可靠性與規(guī)定的任務(wù)和功能有關(guān)。由于要完成的任務(wù)不同,軟件的運行剖面會有所區(qū)別,則調(diào)用的模塊就不同(即程序路徑選擇不同),其可靠性也可能不同。
軟件系統(tǒng)可靠性模型確定,可按照系統(tǒng)可靠性設(shè)計選用串聯(lián)模型、并聯(lián)模型和權(quán)聯(lián)模型。在此基礎(chǔ)上進行軟件系統(tǒng)可靠性指標分配。
1.2 軟件冗余檢驗
軟件冗余檢驗主要有以下 3 個方面:
①系統(tǒng)主機備份:對于可靠性要求極高的軟件,如航天系統(tǒng),一定要檢驗相關(guān)軟件是否支持或采用主備熱備、主備冷備、雙機熱備、多機熱備模式部署,確保軟件無故障運行,保證重要信息和數(shù)據(jù)的實時正確存儲備份。
②重要模塊備份:針對系統(tǒng)功能強大復(fù)雜、軟件模塊眾多的系統(tǒng)的檢驗,尤其是航天類系統(tǒng),要重點檢驗關(guān)鍵軟件模塊是否有備份,備份方式是熱備份還是冷備份。
③信息冗余:針對大型復(fù)雜系統(tǒng),數(shù)據(jù)庫是重要的信息存儲方式,因此對數(shù)據(jù)庫要重點檢驗,一是關(guān)注數(shù)據(jù)庫的選型方面是否選擇可靠性較高的數(shù)據(jù)庫,二是檢驗數(shù)據(jù)庫是否具備實時自動備份和異地存儲備份功能。
1.3 軟件健壯性檢驗
在軟件健壯性檢驗中,重點關(guān)注如下方面:
①在界面檢驗中,檢驗時重點關(guān)注軟件界面是否需要輸入的地方均采用下拉列表框設(shè)計,盡量減少編輯框,軟件界面是否對輸入數(shù)據(jù)的有效性及合理性進行設(shè)計,數(shù)據(jù)輸入范圍(最大值、最小值、合理值、非法值)等是否有相應(yīng)提示或錯誤輸入限制。
②軟件數(shù)據(jù)健壯性方面:重點檢驗軟件是否采用數(shù)據(jù)實時自動備份等方式,針對重要數(shù)據(jù)的誤刪除操作是否有信息備份恢復(fù)機制。
1.4 軟件避錯檢驗
在軟件避錯檢驗中,主要關(guān)注如下方面:
①需求檢驗:是否有明確的功能需求、性能需求、接口需求、環(huán)境需求、安全需求和人機界面需求。
②設(shè)計檢驗:是否有詳盡的概要設(shè)計、詳細設(shè)計、接口設(shè)計和數(shù)據(jù)庫設(shè)計文檔,是否與需求說明直接一一對應(yīng)。界面設(shè)計檢驗重點針對界面的友好性、界面輸入限制和錯誤提示。
③測試檢驗:重點檢驗是否有規(guī)范準確測試標準、規(guī)范,測試大綱、測試用例、測試報告,測試用例是否遍歷所有的測試項目,是否涵蓋功能、性能及接口等,測試用例是否具有正常值、邊界值、異常值等邊界測試。
1.5 軟件程序可讀性檢驗
檢驗軟件代碼是否進行了標注和解釋說明,代碼注釋率是否達到軟件規(guī)模的 15%,針對軟件模塊級的注釋,是否有模塊功能、模塊接口說明;針對函數(shù)級的注釋,是否有函數(shù)功能、函數(shù)輸入、函數(shù)輸出、參數(shù)解釋的說明。
2 軟件維修性檢驗
軟件不同于硬件,其維修性通常定義為針對軟件模塊的故障定位,同時軟件運行正常與否也取決于軟件所運行的硬件平臺、支撐軟件、應(yīng)用軟件、安裝部署、軟件架構(gòu)設(shè)計方式等多個方面。為提高軟件的維修性水平,擬采取以下維修性措施:
①軟件運行載體選用的硬件平臺均為通用的、穩(wěn)定的、成熟的 PC 機和服務(wù)器設(shè)備,選用在國產(chǎn)關(guān)鍵軟硬件應(yīng)用推進計劃中安排的國產(chǎn)服務(wù)器中的一種,內(nèi)部都采取了模塊化和標準化設(shè)計,便于檢查、維修和更換故障模塊;
②軟件運行載體整體結(jié)構(gòu)和設(shè)備內(nèi)部結(jié)構(gòu)布局合理,能夠?qū)崿F(xiàn)視覺可達、實體可達,并提供充足的操作空間,最終保障維修的可達性;
③軟件架構(gòu)采用松耦合、緊內(nèi)聚的模塊化設(shè)計方法來提高系統(tǒng)的可擴展性和易用性,便于在軟件發(fā)生故障時迅速定位和修復(fù)軟件;
④在軟件數(shù)據(jù)庫設(shè)計過程中考慮到數(shù)據(jù)備份和恢復(fù)功能,能夠在數(shù)據(jù)丟失、損壞的情況下方便恢復(fù),加快修復(fù)速度。
3 軟件保障性檢驗
保障性是系統(tǒng)設(shè)計特性和計劃的保障資源能滿足平時戰(zhàn)備和戰(zhàn)時使用要求的能力。為提高軟件系統(tǒng)的保障性,從軟件保障、技術(shù)保障、人員保障和售后保障 4 個方面進行保障性設(shè)計:
①軟件保障:軟件運行的支撐軟件,如操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)和辦公軟件等支撐軟件都使用自主軟件或通用軟件,能夠保障軟件產(chǎn)品質(zhì)量和供給。
②技術(shù)保障:是否擁有較為完善的質(zhì)量控制手段和健全的質(zhì)量體系。在產(chǎn)品研制、交付時,要求提供足夠的技術(shù)保障資料,便于軟件系統(tǒng)的使用和維護,具有持續(xù)改進和升級完善能力。
③檢驗是否擁有完善的管理體制和技術(shù)隊伍,能夠提供良好的人員保障。
④售后保障:對用戶進行系統(tǒng)、嚴格的培訓,使用戶達到原理清晰、操作合理、維護及時。技術(shù)服務(wù)分為兩階段,第 1 階段,軟件系統(tǒng)交付用戶前,對用戶進行技術(shù)咨詢、技術(shù)培訓,使用戶對訂購系統(tǒng)的技術(shù)狀態(tài)具有全面了解;第 2 階段,軟件系統(tǒng)交付用戶后,對用戶在使用操作過程中出現(xiàn)的各類技術(shù)問題進行講解,并協(xié)助用戶解決使用過程中出現(xiàn)的各類技術(shù)問題和進行必要的升級維護。
4 軟件測試性檢驗
軟件系統(tǒng)的測試性設(shè)計主要從可測性設(shè)計、接口測試性、自身測試性、界面測試性方面進行設(shè)計,包括以下內(nèi)容:
①可測試性設(shè)計:對軟件的功能測試、性能測試、標準符合性測試、容錯測試、壓力測試、安全性測試及運行測試等方面進行設(shè)計。
②接口測試性:軟件設(shè)置有對外接口模塊檢測功能,實時監(jiān)測對外模塊狀態(tài),并將結(jié)果動態(tài)發(fā)布呈現(xiàn)至軟件界面。同時將模塊異常記錄寫入數(shù)據(jù)庫,方便用戶瀏覽歷史數(shù)據(jù)排查故障。
③自身檢測:軟件具有 CPU、內(nèi)存、硬盤使用率實時監(jiān)測功能。實時提示用戶當前主機的工作狀態(tài),方便用戶了解主機情況。
④界面設(shè)計檢驗:軟件界面是人機交互的橋梁,軟件界面輸入操作提示、輸入變量范圍提示、輸入信息合法性檢查、界面刪除操作提示及軟件操作幫助詳細指南等。
5 軟件安全性檢驗
軟件系統(tǒng)安全性檢驗主要包括以下幾個方面:
①用戶認證和權(quán)限控制:系統(tǒng)具有操作員認證和權(quán)限控制措施,防止非法用戶登錄網(wǎng)絡(luò)管理系統(tǒng)或進行越權(quán)操作。
②管控誤操作控制:加強對重要操作的控制,防止用戶的誤操作,具有一定的誤操作撤銷和恢復(fù)能力。
③管控信息存儲安全:加強對數(shù)據(jù)庫的訪問控制,防止非法訪問數(shù)據(jù)庫;同時對于重要的網(wǎng)管信息,采用加密方式存儲到數(shù)據(jù)庫或數(shù)據(jù)文件中。
④管控運行平臺安全:對操作系統(tǒng)進行合理配置,關(guān)閉不必要的協(xié)議、停止未用服務(wù)和工具,及時更新和升級操作系統(tǒng)。
⑤管控信息安全傳輸:加強系統(tǒng)間接口協(xié)議、外部接口協(xié)議和消息交互中間件信息傳輸協(xié)議的安全設(shè)計。
⑥數(shù)據(jù)備份:提供便捷的數(shù)據(jù)備份恢復(fù)方法。
⑦安裝卸載:提供便捷的軟件安裝、卸載方法,提供可視化向?qū)讲僮髡f明,防止誤卸載。
6 軟件環(huán)境適應(yīng)性檢驗
軟件環(huán)境適應(yīng)性檢驗主要測試軟件是否具備跨操作系統(tǒng)跨平臺運行能力,既能運行在 Windows 操作系統(tǒng)上,也能運行在國產(chǎn)化中標麒麟操作系統(tǒng)上。是否具備支持多型數(shù)據(jù)庫能力:oracle 數(shù)據(jù)庫、達夢數(shù)據(jù)庫及金倉數(shù)據(jù)庫等。
7 結(jié)束語
高質(zhì)量的軟件要嚴格遵守軟件的六性設(shè)計,對軟件的各個設(shè)計環(huán)節(jié)進行設(shè)計,只有經(jīng)過詳盡設(shè)計的軟件,其質(zhì)量才能保證,才能保證整個系統(tǒng)的高效可靠運行。然而隨著網(wǎng)絡(luò)規(guī)模的擴大和復(fù)雜性日益提高,軟件規(guī)模和復(fù)雜性也與日俱增,而且隨著 SDN/NFV、大數(shù)據(jù)、云計算、人工智能等新技術(shù)的出現(xiàn),軟件形態(tài)和先進性也都發(fā)生著變革,因此軟件的可靠性設(shè)計任重而道遠,需要在現(xiàn)有基礎(chǔ)上進一步深入研究。
參考文獻
[1] 張彤,吳世榮.基于 SNMP 計算機網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)研究[J].計算機技術(shù)與發(fā)展,2011,21(1):88-91.
[2] 徐鶴,王汝傳.一種 P2P 流量監(jiān)控系統(tǒng)的設(shè)計及實現(xiàn)[J].計算機技術(shù)與發(fā)展,2009,19(10):6-10.
[3] 趙英,黃九梅,董小國,等.網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機應(yīng)用,2004(S1):32-33.
[4] 張衛(wèi)東,王偉,韓維桓.網(wǎng)絡(luò)流量測量與監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與應(yīng)用, 2005,41(32):160-163.
[5] 方木云,李銳.軟件可靠性評估研究[J].微機發(fā)展,2002(1):11-13.
[6] LEINWEBER D. Stupid Data Miner Tricks: Overfitting theS&P500[J].The Journal of Investing,2007,16(1):15-22.
[7] LOVEMAN G W. Diamonds in the Data Mine[J].HarvardBusiness Review,2003(5):109-113.
[8] KEVJN L.Big Data and Strategic Intelligence[J].Intelligenceand National Security,2016,31(4):619-635.
[9] RAGHUPATHI W,RAGHUPATHI V.Big Data Analytics inHealthcare: Promise and Potential[J].Health InformationScienceand Systems,2014,2:3.
[10] COHEN J,DOLAN B,DUNLAP M,et al. MAD Skills: NewAnalysis Practices for Big Data[C]//Proceedings of theVLDB Endowment.New York:VLDB,2009:1481-1492.