亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        軟件可靠性設計方法研究

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

        何鳳軍 蔡瑋 王宇

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

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

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

        0引言

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

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

        1軟件需求分析

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

        1.1軟件體系架構設計

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

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

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

        (2)模塊化設計

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

        (3)服務化設計

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

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

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

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

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

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

        (4)可擴展設計

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

        1.2冗余設計

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

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

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

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

        1.3軟件健壯性設計

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

        1.4軟件避錯設計

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

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

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

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

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

        1.5軟件容錯設計

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

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

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

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

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

        1.6軟件錯誤恢復設計

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

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

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

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

        1.7軟件重用設計

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

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

        重用模塊應有相當?shù)睦^承性,能在構建各種系統(tǒng)時方便地重復使用,主要功能如下:

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

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

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

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

        2實例驗證

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

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

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

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

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

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

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

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

        3結束語

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

        參考文獻

        [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]丁定浩.可靠性與維修性工程:系統(tǒng)與電路結構的分析和設計[M].北京:電子工業(yè)出版社,1986.

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

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

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

        国产精品网站在线观看免费传媒| 亚洲一区中文字幕在线电影网| 免费一区啪啪视频| 国产精品国产三级国产一地| 中文字幕亚洲日本va| 午夜福利视频一区二区二区| 18禁裸男晨勃露j毛网站| 少妇内射高潮福利炮| 动漫av纯肉无码av在线播放| 日本av不卡一区二区三区| 97人人模人人爽人人喊网| 超级碰碰色偷偷免费视频| 国产精品密播放国产免费看 | 久久久www成人免费无遮挡大片| 国产精品麻豆一区二区三区| 国产91色综合久久免费| 国语对白做受xxxxx在| 国产91中文| 日韩亚洲午夜精品一区二区三区 | 国产偷窥熟女精品视频| 放荡人妻一区二区三区| 中文字幕亚洲视频一区| 国产精品 人妻互换| 国产一区二区激情对白在线| 人妻少妇中文字幕av| 国产三级a三级三级| 亚洲日韩精品欧美一区二区| 日韩精品视频在线观看免费| 黄色精品一区二区三区| 欧美人与禽zozzo性伦交| 中文字幕天堂网| 国产av黄色一区二区| 极品美女扒开粉嫩小泬图片| 一本色道av久久精品+网站 | 日韩av精品视频在线观看| 国产一女三男3p免费视频| 国内精品久久久久久久亚洲| 国产一区二区三区的区| 少妇高潮流白浆在线观看| 国产一区二区三区av在线无码观看| 国语精品视频在线观看不卡|