閱讀以下信息系統(tǒng)可靠性問題的說明,在答題紙上回答問題1至問題3。
某軟件公司開發(fā)一項基于數(shù)據(jù)流的軟件,其系統(tǒng)的主要功能是對輸入數(shù)據(jù)進行多次分析、處理和加工,生成需要的輸出數(shù)據(jù)。需求方對該系統(tǒng)的軟件可靠性要求很高,要求系統(tǒng)能夠長時間無故障運行。該公司將該系統(tǒng)設(shè)計交給王工負責。王工給出該系統(tǒng)的模塊示意圖如圖20-5所示。王工解釋:只要各個模塊的可靠度足夠高,失效率足夠低,則整個軟件系統(tǒng)的可靠性是有保證的。
李工對王工的方案提出了異議。李工認為王工的說法有兩個問題:第一,即使每個模塊的可靠度足夠高,但是整個軟件系統(tǒng)模塊之間全部采用串聯(lián),則整個軟件系統(tǒng)的可靠度明顯下降。假設(shè)各個模塊的可靠度均為0.99,則整個軟件系統(tǒng)的可靠度為0.994≈0.96:第二,軟件系統(tǒng)模塊全部采用串聯(lián)結(jié)構(gòu)時,一旦某個模塊失效,則意味著整個軟件系統(tǒng)失效。
李工認為,應該在軟件系統(tǒng)中采用冗余技術(shù)中的動態(tài)冗余或者軟件容錯的N版本程序設(shè)計技術(shù),對容易失效或者非常重要的模塊進行冗余設(shè)計,將模塊之間的串聯(lián)結(jié)構(gòu)部分變?yōu)椴⒙?lián)結(jié)構(gòu),來提高整個軟件系統(tǒng)的可靠性。同時,李工給出了采用動態(tài)冗余技術(shù)后的軟件系統(tǒng)模塊示意圖,如圖20-6所示。
劉工建議,李工方案中M1和M4模塊沒有采用容錯設(shè)計,但是M1和M4發(fā)生故障有可能導致嚴重后果。因此,可以在M1和M4模塊設(shè)計上采用檢錯技術(shù),在軟件出現(xiàn)故障后能及時發(fā)現(xiàn)并報警,提醒維護人員進行處理。
注:假設(shè)各個模塊的可靠度均為0.99。
結(jié)構(gòu)化軟件系統(tǒng)建模
博學公司擬開發(fā)一個商業(yè)情報處理系統(tǒng),使公司能夠及時針對市場環(huán)境的變化及時調(diào)整發(fā)展戰(zhàn)略,以獲取最大的商業(yè)利益。項目組 經(jīng)過討論,決定采用結(jié)構(gòu)化分析和設(shè)計方法。在系統(tǒng)分析階段,為了更好地對情報數(shù)據(jù)處理流程及其與外部角色的關(guān)聯(lián)進行建模,項目組成員分別給出了自己的設(shè)計 思路:
①小張?zhí)岢鱿葮?gòu)建系統(tǒng)流程圖(System Flowcharts),以便更精確地反映系統(tǒng)的業(yè)務處理過程及數(shù)據(jù)的輸入和輸出。
②小李提出先構(gòu)建系統(tǒng)數(shù)據(jù)流圖(Data Flow Diagrams),來展現(xiàn)系統(tǒng)的處理過程和定義業(yè)務功能邊界,并給出了情報分類子系統(tǒng)的0層和1層數(shù)據(jù)流圖,后者如圖12-1所示。
項目組經(jīng)討論確定以數(shù)據(jù)流圖作為本階段的建模手段。工程師老王詳細說明了流程圖和數(shù)據(jù)流圖之間的區(qū)別與聯(lián)系,并指出了圖12-1所示的數(shù)據(jù)流圖中存在的錯誤。