999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟件可靠性設計方法研究

2021-04-01 14:04:25何鳳軍蔡瑋王宇
計算機與網絡 2021年1期

何鳳軍 蔡瑋 王宇

摘要:研究了軟件可靠性設計方法,軟件需求分析是研制高可靠性軟件的前提和基礎,軟件可靠性設計包括軟件體系架構設計、冗余設計、健壯性設計、容錯設計、避錯設計、錯誤恢復設計及重用設計等。通過專業復雜網管軟件的研制實例,初樣評審測試、正樣評審測試及軟件測評的千行代碼缺陷密度證明了在軟件開發過程中運用可靠性設計方法,可以提高軟件的質量和可靠性。

關鍵詞:體系架構設計;冗余設計;容錯設計;健壯性設計;重用設計

中圖分類號:TP393文獻標志碼:A文章編號:1008-1739(2021)01-64-4

0引言

隨著計算機技術迅猛發展,軟件在系統中的地位越來越重要[1],其規模和復雜性急劇提高,能否可靠運行已經成為決定整個系統可靠性的關鍵部分。軟件的上述重要性使得其可靠性越來越被關注,因此每年都有大量經費投入其可靠性相關研究,且取得了初步成效。但迄今為止,尚未形成標準的、公認的軟件可靠性設計思想和方法。

軟件可靠性是指軟件在規定的條件下和規定的時間內完成規定功能的能力。需求分析和可靠性設計是研制可靠性軟件的2個重要階段。需求分析[2]是進行軟件設計的前提和基礎,在需求分析基礎之上,進行體系架構設計、冗余設計、容錯設計及重用設計等。

1軟件需求分析

詳盡的軟件需求分析[3]是研制高可靠性軟件的前提和基礎,軟件需求分析包括功能需求、性能指標需求、內外部接口需求、可擴展性需求、軟件開發和運行環境需求及安全需求和部署需求。在充分了解軟件需求的基礎上,進行軟件概要設計和詳細設計,是確保軟件可靠性的重要手段。

1.1軟件體系架構設計

對于軟件而言,規模[4]越大,復雜度越高,可靠性越低。對于相同規模的軟件,軟件越復雜其可靠性越低,因此軟件可靠性總的設計原則是控制和減少軟件結構和程序的復雜性,在網絡管理系統軟件開發中,結構復雜度控制進行如下設計:

(1)層次結構設計,復雜度控制

軟件的整體結構采用層次結構[5],將系統的總需求進行分級和分解,如功能需求模塊、性能需求模塊、內外部接口需求模塊及擴展需求模塊等,把這些需求模塊劃分成若干層,層與層之間只存在單向的依賴關系,這樣可以很大程度減少程序的復雜性,軟件的可靠性與軟件的復雜性成正比。

(2)模塊化設計

采用層次結構與模塊化設計相結合的方法,在分層的基礎上,將每一個層次結構分解為若干個模塊。模塊劃分合適,可減少開發工作量,降低程序復雜度。模塊化設計思想,將功能細化到每個模塊進行獨立實現,模塊之間通過消息中間件進行交互,這樣的設計理念既可以將軟件模塊故障縮小在各個模塊內部,防止軟件模塊故障影響整個系統,同時也減少故障影響范圍,又可以利用可靠的軟件模塊形成新的系統,提高效率和系統的可靠性。模塊設計思想是高內聚低耦合,模塊間的消息交互僅通過消息參數,各個軟件模塊內部功能緊耦合且獨立實現特定功能,從而大大提高軟件模塊的可靠性。

(3)服務化設計

將具有獨立功能的軟件模塊封裝為服務,通過消息中間件進行服務間通信,既可以將錯誤局限在各個服務內部[6],防止服務化的軟件模塊故障影響整個系統,同時也減少故障影響范圍,又可以利用可靠的軟件服務形成新的系統,提高工作效率和系統的可靠性。采用服務化技術,服務注冊發布之后,可以被調用,可靠性增高。

每一個服務都必須是Web Services的服務,都需要提供WSDL接口。為了標準化每一個服務,需要在定義每個服務的WSDL接口時,均遵循標準化模式和格式。

表示服務操作的名字,必須包括大小寫字母、下劃線‘_和數字,且首字母應該為小寫字母,且能表示服務的功能。

同時,在定義每個服務的WSDL方法中,需要定義啟動和停止操作:

①startService操作:函數表示服務處于正常工作狀態。啟動服務操作是無參數函數,返回值為布爾型。如返回true則表示服務正常啟動,否則表示啟動失敗。

②stopService操作:函數表示讓處于正常工作狀態的服務停止工作。停止服務操作是無參數函數,返回值為布爾型。如返回true則表示服務停止成功,否則表示停止失敗。

(4)可擴展設計

mib庫表和配置參數基于配置文件進行設計,能夠在管理對象擴展或功能設計變更時靈活擴展。

1.2冗余設計

冗余是指為改善系統運行可靠性而引入重復或代替的系統元素,以確保該特定元素失效時,系統能繼續運行。在軟件冗余設計方面主要包括如下幾方面設計思路:

①主備熱備:網絡管理系統軟件采用主備管理方式,因此總部級網管中心采用主備、熱備雙機工作方式,當主用網管出現故障時,備用網管立即切換為主用網管。采用操作系統和數據庫管理系統熱備份及共享存儲資源的方式;對數據庫數據,提供包括物理和邏輯2種方式的備份/恢復策略保證數據安全;在數據庫冗余設計方面,主要針對數據訪問進行冗余設計,采用本地緩存策略設計,防止批量并發操作訪問數據庫系統時導致的數據庫崩潰而無法進行數據讀取,保證系統對關鍵數據的可靠訪問控制。

②重要模塊備份:網絡管理系統功能強大且復雜,軟件模塊眾多,如果所有的模塊都進行備份,不僅降低運行效率,而且造成系統資源的極大浪費;如果都不備份,軟件的可靠性無法保證。因此選擇重要的軟件模塊,如拓撲管理模塊、故障管理模塊及通信機模塊等進行備份。

③信息冗余:數據庫是網管系統重要的信息存儲方式,在數據庫的選型方面選擇可靠性較高的數據庫,而且進行數據庫的實時自動備份。

1.3軟件健壯性設計

軟件健壯性是指軟件在所運行的硬件環境如計算機或顯示器發生故障,或在使用軟件時出現輸入數據不合理或非正常操作時,或輸入數據越限等非軟件所能承受的非正常情況發生時,軟件仍能正常運行而不出現故障的能力,即軟件不僅要在正確的操作使用和運行環境下正常運行,而且要對非正常運行環境和非法輸入具有免疫能力。軟件的健壯性設計包括環境冗余設計、非法輸入提示、非正常運行環境檢測和提示等設計。

1.4軟件避錯設計

在網絡管理系統軟件開發過程中,主要采用如下避錯設計方法:

①需求分析階段,多與用戶溝通交流,充分了解用戶的需求,在需求階段引入的錯誤的修正代價是其他階段錯誤的千百倍甚至更多,因此做好需求分析是軟件避錯設計的重要環節。

②軟件架構設計階段,采用模塊化設計,一個功能采用一個軟件模塊實現,模塊之間基于消息進行交互,采用松耦合高內聚的方式。

③界面設計中,對于需要用戶輸入的地方,盡量采用下拉列表框設計控件,這樣可以避免用戶的直接輸入,減少出錯機會。如果必須要使用編輯框,首先要設置編輯框的屬性,如只允許輸入數字、輸入字符的長度限制等,對輸入數據的有效性及合理性、數據輸入范圍等采用自動避錯,當出現非法操作時,程序以文字方式提示操作員,同時高亮顯示錯誤輸入的編輯框,允許用戶重新輸入。

④加強軟件測試,在軟件進行需求分析、架構設計、概要設計和詳細設計之后,通過加強各階段的軟件測試可進一步提高軟件可靠性。為最大限度發現軟件缺陷、提高軟件的可靠性,就要對軟件進行盡可能完備的測試。每個階段的測試都要制定測試大綱、測試細則、測試標準和測試規范,涵蓋軟件功能、軟件性能、內外部接口、軟件安裝、軟件運行環境及軟件的擴展性等,測試要盡可能詳盡,要強化輸入測試,針對每個界面輸入要包括設計輸入正常值、邊界值、異常值測試用例,要進行充分的邊界測試。

1.5軟件容錯設計

軟件系統的一些缺陷是不可避免的,不同的使用模式和不同的操作方式導致有些軟件錯誤是不易被發現的。軟件容錯技術就是軟件在缺陷存在的情況下能夠正確運行的設計思想。在軟件測試階段和調試階段能夠發現和排除90%的軟件錯誤和缺陷,但是由于軟件的缺陷與軟件的使用方式息息相關,不同的使用模式會有不同的運行剖面,不同的運行剖面會挖掘出不同的軟件缺陷。如果有些運行剖面沒有運行,則軟件缺陷是不可能被發現的,避錯技術和排錯技術不可能使軟件完全正確。因此,軟件容錯技術也是提高軟件可靠性的一種很重要的實際理念。容錯的本質是在軟件運行環境或操作使用發生錯誤時,軟件系統仍然具有正常運行能力的一種設計方法。

在網絡管理系統軟件設計中,主要采用了如下容錯設計方法:

①軟件容錯:采用模塊化設計,界面采用下拉框,減少輸入,邊界值和有效值進行輸入控制。

②環境容錯:在軟件安裝過程中,如果檢測到內存小于軟件正常運行所需的內存,則提示操作員,停止安裝。所處的環境發生變化時(如出現內存溢出、斷電及硬件故障等異?,F象時),軟件都能按預定方式進行處理(如數據自動備份等),使重要信息不丟失,避免發生災難性的后果。

③設計容錯:在軟件開發過程中,采用版本管理控制工具,詳細記錄不同開發人員開發相同或不同軟件模塊的開發軌跡,如果新修改的程序出現問題,可以通過對比或者恢復原來的程序版本進行差錯處理,大大提高軟件開發效率。

1.6軟件錯誤恢復設計

網絡管理系統軟件在運行過程中會由于軟件運行環境故障、人員操作異常、軟件自身錯誤等原因造成軟件出錯故障。在軟件發生錯誤后盡快恢復、繼續正常運行是軟件可靠性設計考慮的重點,有如下3種機制:

①日志機制:網絡管理系統軟件設計采用日志管理設計,提供安全日志、操作日志、登錄日志等各種日志的實時記錄和存儲備份功能,在軟件發生故障后,可以查看日志記錄查找故障原因,快速恢復軟件。

②狀態恢復機制:網絡管理系統總部級網管中心軟件采用雙機熱備份,在主用發生故障后,備用能迅速啟用,狀態轉化為主用。

③數據恢復機制:網絡管理系統軟件采取自動保存、數據備份等手段,確保軟件發生故障后,通過網絡管理數據的可恢復性來提高軟件的可靠性。

1.7軟件重用設計

軟件重用就是直接使用已有的成熟可靠的軟件模塊,能夠減小工作量進而縮短開發周期,同時也能提高軟件的可維護性和可靠性。因為可重用的軟件模塊已經過多輪測試和篩選,很多錯誤已在開發、運行和測試過程中被發現和排除,可靠性比較高。

軟件重用的過程如下:候選、選擇、資格、分類和存儲、查找和檢索。在選擇可重用構件時,一定要有嚴格的選擇標準,可重用的構件必須是經過嚴格測試的、可靠性高、正確性好、高度可擴展可使用構件,應模塊化、結構清晰,且有高度可適應性。

重用模塊應有相當的繼承性,能在構建各種系統時方便地重復使用,主要功能如下:

①模塊具有獨立功能:功能獨立單一完整,且經過多輪測試,內部功能緊耦合高內聚,對外部有明確的接口。

②具有高度可擴展性:能夠根據具體的使用需求或者功能升級,提供可擴展接口以便進行二次開發或者集成。

③接口清晰、簡明、可靠,軟件模塊松耦合,模塊之間均基于標準的接口進行消息交互。

構件涵蓋了開發工具、開發思想、程序代碼等領域,而且均經過詳盡的測試和反復的試用,附加詳盡的操作使用說明文檔,這些構件有的可以直接使用,有的根據實際使用需求進行改進完善后即可使用,大大節省軟件開發周期,提高軟件可靠性。

2實例驗證

以一個規模較大、復雜性較高、專業性極強的軟件項目為例進行軟件可靠性設計說明,從項目的需求分析、軟件概要設計、軟件詳細設計、軟件研制編碼、軟件測試、軟件聯試開發的各個階段,嚴格進行軟件可靠性設計。最終開發的軟件相對于原軟件而言,具有更高的可靠性和更好的軟件質量,得到了用戶的高度認可。

①需求分析,通過原型系統與用戶充分溝通了解需求,包括功能(拓撲、配置、性能、故障、流量、安全管理)、性能(5個性能指標)、接口(北向接口及協議、南向接口及協議)、運行環境(操作系統和數據庫)、可靠性和安全性需求。

②軟件架構設計,由于部署套量非常多,因此選擇B/S軟件架構,便于安裝部署。

③冗余設計:拓撲管理和數據庫管理是重要的模塊,因此進行模塊冗余設計;采用數據庫熱備份,進行物理和邏輯備份;對重要數據進行基于Excel的備份恢復機制。

④健壯性和容錯設計:安裝時,軟件自動檢測所需內存是否夠用,對于需要用戶輸入的地方,盡量采用下拉列表框,如果必須要使用編輯框,首先要設置編輯框的屬性,只允許輸入數字,輸入字符的長度限制,輸入范圍(最大值、最小值、合理值、非法值)等。

⑤錯誤恢復設計:進行操作日志和安全日志記錄,重要信息刪除提示,刪除信息存儲在數據庫中,以便于出現誤操作時能恢復原始數據。

⑥軟件重用:重用了用戶管理、報表管理、消息處理等構件,大大縮短了開發周期。

經過可靠性設計后,網管系統軟件的可靠性大大提高,實踐證明在168可靠性考核中,軟件一直正常運行。雖然該網管軟件專業復雜度較高,但是在初樣測試、正樣測試中問題個數最少,在出所測試時,軟件代碼138萬行,測試用例318個,首輪測試未通過測試用例為11個,千行代碼缺陷密度為0.001 5%。

3結束語

隨著通信與計算機技術的迅猛發展,軟件在各個領域的應用越來越廣泛,在大型系統中的占比越來越高,地位越來越重要,軟件規模也越來越大,復雜性急劇提高。因軟件故障而造成的重大事故屢有發生,因此軟件可靠性研究和設計越來越受到重視,而軟件可靠性設計是一個全生命周期過程,需要在需求分析、軟件概要設計、軟件詳細設計、軟件體系架構設計、軟件測試等各個軟件生命周期的每一個重要環節進行設計和研究,才能開發和設計高可靠性高質量的軟件。

參考文獻

[1] LENNSELIUS B,RYDSTROM L.Software Fault Content and Reliability Estimations for Telecommunications System[J]. IEEE Journal on.Selected Areas in Communications,1990,8(2):262-272.

[2] DOWNS T, SCOTT A.Evaluating the Performance of Software Reliability Models[J].IEEE Trans.onReliability, 2002,41(4):533-538.

[3]丁定浩.可靠性與維修性工程:系統與電路結構的分析和設計[M].北京:電子工業出版社,1986.

[4]張繼旭,王琦.軟件可靠性的模塊分析方法[J].戰術導彈技術,2002(2):64-69.

[5]文長康.淺談軟件可靠性的評估技術[J].通信技術,1997(2): 73-78.

[6]湯扣林,徐大勇,許銳鋒.指揮信息系統軟件可靠性設計[J].指揮信息系統與技術,2013,4(5):89-94.

主站蜘蛛池模板: 香蕉视频在线观看www| 成人毛片在线播放| 午夜性爽视频男人的天堂| 国产精品福利在线观看无码卡| 日韩国产精品无码一区二区三区| 成人第一页| 自慰网址在线观看| 99re66精品视频在线观看| 国产微拍一区| 91麻豆国产视频| 91色国产在线| 亚洲伊人电影| AV老司机AV天堂| av在线5g无码天天| 国产精品夜夜嗨视频免费视频| 992tv国产人成在线观看| 在线欧美a| 黑人巨大精品欧美一区二区区| 国产一区二区精品福利| 99ri精品视频在线观看播放| 日韩午夜片| 欧美在线精品一区二区三区| 色综合成人| 99久久人妻精品免费二区| 国产日韩精品欧美一区灰| 精品国产Av电影无码久久久| 久久久久国色AV免费观看性色| 日本免费福利视频| 国产成人凹凸视频在线| 色综合中文综合网| 波多野结衣亚洲一区| 亚洲成人精品在线| 欧美激情视频二区| 天天操天天噜| 久久婷婷综合色一区二区| 国产小视频网站| 国产精品久久自在自2021| 一本大道香蕉高清久久| 国产午夜一级毛片| 久久久受www免费人成| 国产精品理论片| 国产一区免费在线观看| 2021国产乱人伦在线播放| 在线国产三级| 亚洲国产精品无码AV| 欧美国产日韩在线| 日韩午夜片| 国内黄色精品| 996免费视频国产在线播放| 美女扒开下面流白浆在线试听 | 国产成人精品一区二区免费看京| 国产黑丝视频在线观看| 2020国产精品视频| 狠狠色噜噜狠狠狠狠色综合久| 亚洲bt欧美bt精品| 一级香蕉人体视频| 97在线公开视频| 中文字幕欧美成人免费| 午夜精品区| 综合社区亚洲熟妇p| 毛片免费高清免费| 亚洲AV无码乱码在线观看代蜜桃| 欧美国产精品不卡在线观看| 老司国产精品视频91| 国产视频久久久久| 国产成人精品免费av| 一区二区三区四区在线| 亚洲天堂网在线播放| 成人国产一区二区三区| 久久亚洲国产一区二区| 婷婷色在线视频| 视频二区亚洲精品| 亚洲国内精品自在自线官| 五月六月伊人狠狠丁香网| 亚洲国内精品自在自线官| 国模视频一区二区| 国产精品主播| 国产日韩精品一区在线不卡| 欧美精品另类| 久久99蜜桃精品久久久久小说| 伊人91在线| 日韩高清欧美|