解維奇 蔡遠文 程 龍
裝備學院,北京 101416
?
基于SHMCM的航天測試軟件健康管理系統研究
解維奇 蔡遠文 程 龍
裝備學院,北京 101416

結合航天測試軟件面臨的問題和未來需求,將軟件健康管理技術和軟件構件技術引入到航天測試軟件領域。在對軟件健康管理發展動因分析的基礎上,對軟件健康管理概念進行了正式定義。通過對軟件健康管理層次的劃分,設計了基于COM構建的SHMCM(Support Health Management Component Model: SHMCM)。通過對航天測試軟件健康管理設計原則的分析,提出了基于SHMCM的航天測試軟件健康管理系統框架,并對其中的關鍵問題進行了研究。通過軟件健康管理技術和軟件構件技術的結合,研究了基于SHMCM的航天測試軟件健康管理系統,其對軟件健康管理系統的研究具有一定的借鑒意義,對提高航天測試軟件運行的可靠性和高效率研制具有重要意義。 關鍵詞 軟件健康管理;航天測試軟件;軟件構件;構件模型;軟件故障診斷
軟件健康管理(Software Health Management, SWHM)思想最早起源于NASA“Integrated Vehicle Health Management Technical Plan”報告,旨在實現自動檢測、診斷、預計和減緩由軟件異常引起的不良事件[1]。軟件健康管理發展的動力主要有2方面:1)軟件潛在缺陷會在某種運行環境下被觸發,引起不良事件,導致嚴重的后果[2-3];2)缺少對軟件運行狀態的評估和預測[4]。目前國外在軟件健康管理概念、框架設計及相關技術方面已經取得了一定的成果,并且正在開發一些實用系統[5-9],而我國在這方面的研究基本處于空白,所以借鑒國外相關標準、研究成果和開發經驗,開展軟件健康管理相關工作顯得迫在眉睫。
目前,測試領域對實現ATS(Auto Test System,自動測試系統)軟件構件可重用、TPS(Test Programme Set,測試程序集)可移植性等的需求日益增強[10],DoD在NxTest ATS中明確提出了下一代自動測試系統的目標,使用構件技術可以實現軟件系統功能的添加、裁減和重構[11-12]。目前航天測發控系統軟件在設計和應用過程中主要存在2個問題:1)大量的軟件要開發、維護;2)存在大量的重復性遺產系統。如何提高航天測試系統軟件的研制效率和可靠性成為對當前航天測試系統軟件提出的一個新需求。目前測試界也提出了測試軟件構件化的思想,通過軟件構件技術可以實現測試軟件的構件化設計,進而實現測試程序的可移植性、通用性、可擴展性(靈活的升級途徑)[10],同時利用構件化可復用的特點[13],可以快速提高航天測試系統軟件的研制效率和可靠性。
本文結合航天測試系統軟件面臨的問題和未來的需求,將軟件健康管理技術和軟件構件技術相結合,設計了一種支持軟件健康管理的構件SHMCM(Support Health Management Component Model),研究基于SHMCM的航天測試軟件開發方法,對提高航天測試軟件的可靠性運行和高效率研制具有重要意義。
目前對航天軟件運行時故障的主要處理方法是軟件容錯[3,6],盡管軟件容錯技術已經在一些應用系統中取得了良好效果,但在航天軟件運行故障處理方面仍存在以下幾個問題:1)缺少對軟件運行狀態的預測。目前軟件容錯技術都是基于軟件故障發生后采取的措施[7],并沒有對軟件未來的運行狀態進行預測;2)軟件容錯方式單一,覆蓋范圍小。軟件容錯技術僅僅應用在軟件的關鍵模塊中,覆蓋范圍太小,而一些相對不重要的程序缺陷也可能引發嚴重的軟件故障;3)缺少將當前各種軟件處理技術綜合的“容器”。目前在軟件故障檢測、定位、處理等方面已有很多的方法和技術,但還缺少一個將當前的各種處理方法和技術融入一體進行綜合管理運用的“容器”。
軟件健康管理技術將是解決以上3個問題的一個重要途徑和方法,目前國外在軟件健康管理的概念、框架等方面已開展了研究[11- 13]。文獻[1,14-15]對軟件健康管理概念也進行了定義,但基本還是移植了硬件健康管理的概念。由于軟件和硬件在很多方面存在差異[6,16-17],如表1所示,因此僅僅移植硬件健康管理的概念并不能完全體現軟件的特點。

表1 軟件系統與硬件系統的區別
通過對軟件健康管理概念的理解可以看出,軟件健康管理具有以下幾個特點:
1)軟件健康管理是健康管理技術在軟件領域中的拓展,是健康管理的一個新分支;
2)強調自主性,自動檢測、診斷和處理;
3)軟件健康管理關注的對象是由異常情況引起的不良事件,而非故障,該不良情況有可能是軟件內部引起的,也可能由外部環境引起;
4)軟件健康管理的目的是通過對不良事件危險性的評估,采取相應的減緩措施阻止該不良事件演變成故障,對系統的正常運行造成影響;
5)健康管理的過程與硬件健康過程相似但不完全相同;筆者認為與硬件健康管理最大的不同點在于對未來狀態的預測,對于引起不良事件的軟件構件/模塊并不能對自己進行狀態預測,只能預測該構件/模塊的不良事件在軟件內部傳播時對與之相關構件/模塊的影響。
結合以上分析,本文對軟件健康管理的定義為:軟件健康管理是健康管理技術在軟件領域中的應用拓展,通過對被監測軟件運行時的實時監測,對由異常情況引起的不良事件進行自動檢測、診斷,并評估該不良事件在軟件內部傳播的危險性,根據評估結果自動采取相應的措施減緩由該不良事件造成的影響。
通過軟件健康管理的概念可以看出,監測信號的選取是進行軟件健康管理的基礎。軟件監測信號的選取與硬件監測信號的選取有較大的不同,由于軟件的運行狀態與其運行環境有很大的關系,不僅要選取與軟件直接相關的檢測數據,還要選取軟件運行環境的相關數據,如操作系統的CPU占用率、使用的內存等相關資源消耗數據。所以,如何選取軟件健康管理的監測信號至關重要。對于航天測試軟件健康管理系統監測信號的選取,需要根據不同構件/模塊完成的功能選取相應的功能性信號、軟件內部信號及運行環境信號。軟件內部信號主要是用于反映軟件自身質量的信號,可以參考軟件設計矩陣,如CK矩陣[18]、MOOD矩陣[19]、QMOOD矩陣[20]、Statechart矩陣[21]、綜合矩陣[22]等;運行環境信號主要是反應軟件與運行環境之間的關系,如CPU占有率、可用存儲空間、進程數、可用內存、中斷數等。軟件內部信號和運行環境信號的選取可以通用,在每個構件/模塊內都可使用,但是對于功能性信號則各不相同,功能性信號可以根據構件/模塊功能可能的失效模式選取相應的監測信號,可以是數據也可以是事件。監測信號的選取模型如圖1所示。

圖1 監測信號選取模型
目前成熟的構件技術主要有Microsoft的COM、OMG組織的CCM和SUN的EJB技術。由于航天測試軟件主要是在Windows操作系統的環境中開發的,并且運行在Windows環境下,基于COM構件和Windows操作系統天然的兼容性,本文將在COM構件基礎上,構建支持健康管理的構件模型SHMCM(Support Health Management Component Model: SHMCM),如圖2所示,各部分功能描述如下:

圖2 基于COM的SHMCM模型
構件對象主要分為2大模塊:功能模塊和減緩措施模塊。其中功能模塊主要是為了完成構件的功能,減緩措施模塊主要是當功能模塊中出現異常時,接收減緩命令對功能模塊的功能進行管理。
IUnknow端口:COM構件在計算機中注冊時的唯一標識碼,基于COM的SHMCM繼承了這一特性。
數據輸入端口:用于數據的輸入。
事件輸入端口:用于事件的輸入。
數據輸出端口:用于構件相關數據的輸出,包括構件內部數據、功能數據和環境數據,根據構件的功能,并不是每次都必須輸出這3種信號。
事件輸出端口:用于構件完成相關功能后,產生事件的輸出。
減緩命令端口:用于控制決策引擎,輸出構件命令。
屬性信息端口:主要用于描述構件的自身屬性,方便對構件的管理,具體內容如表2所示。
以上各類端口中, IUnknow端口和屬性信息端口是每個SHMCM必須包含的,其余端口根據構件的功能和自身狀態可有可無。

表2 SHMCM屬性信息列表
在軟件健康管理中,通過對SHMCM中的數據輸入/輸出和事件輸入/輸出進行監測,從而獲取相關信息,對軟件的健康狀態進行評估。若已經出現故障,則由故障診斷引擎進行故障檢測和故障定位;若可以通過決策層和減緩措施層采取減緩措施減輕非健康狀態的影響,具體軟件健康管理過程將在下文進行討論。
3.1 設計原則
航天測試軟件根據功能的不同可分為地面測試軟件和遙測軟件,由于航天設備在地面測試時,測試流程和信息固定的優點,能夠滿足軟件健康管理實時監測、快速診斷和在線修復的需求,因此本文的航天測試軟件特指航天地面設備自動測試軟件。通過對軟件健康管理概念的理解,在設計航天測試軟件的健康管理系統時,應遵循的幾個原則如下:
1)由于航天測試軟件嚴格的高可靠性和高安全性要求,軟件健康管理系統對航天測試軟件可靠性的影響盡量的小。由于軟件健康管理系統需要對航天測試軟件進行實時監測和控制,這就要求兩者之間必須進行數據流和控制流的交換。此外,減緩措施也需要在設計航天測試軟件時進行考慮,因此要求軟件健康管理系統對航天測試軟件可靠性毫無影響是不可能的,但應對航天測試軟件的影響降到最小;
2)可以自主處理內、外異常情況。這也是軟件健康管理的基本要求和基本特征;
3)能夠包容人為干預控制被監控軟件。航天測試軟件在運行時并不是完全自主的,很多時候會人為的進行干預控制。
總之,設計航天測試軟件的健康管理機制,在保證航天測試軟件運行可靠、安全的前提下,要實現軟件異常情況處理的自主性,同時這種管理的自主性又不能影響人為的干預控制。
3.2 基于SHMCM的健康管理系統框架設計
為了實現對航天測試軟件的健康管理,同時提高軟件的通用性和可移植性,采用基于構件的軟件開發(Component Based Software Development: CBSD)方法對航天測試軟件和健康管理系統軟件進行設計。健康管理系統軟件框架如圖3所示。
將航天測試軟件健康管理系統框架分成主機1和主機2,主要是根據設計準則1,盡量減少軟件健康管理程序對被檢測軟件的影響。主機1的主體是被監測軟件;主機2的主體是軟件健康管理程序。但是,由于健康管理系統所需要的信號必須由被監測軟件提供,減緩措施的執行也需要在被監測軟件內部完成,所以信號獲取模塊和減緩措施模塊必須由被監測軟件實現。數據的處理、狀態評估、故障診斷和決策支持等功能則主要由主機2實現。整個健康管理過程是循環的,直到出現嚴重的故障,需要減緩措施采取“停止”措施,對被監控軟件進行故障處理。通過圖4可知,主機1中的航天測試軟件主要包括儀器驅動、實時監測、測量功能、激勵信號、自校驗、測試管理和界面構件,其中儀器驅動構件和測量功能構件(包)是進行數據采集的關鍵構件。面向信號儀器驅動構件是測試過程中實現操作儀器功能的構件,如數字萬用表構件、恒流源構件、AD掃描構件和1553B驅動構件等;測量功能構件(包)主要包括交、直流電壓測量構件,交、直流電流測量構件,時序信號測量構件,觸點信號測量構件、脈沖信號測量構件等,這些構件是系統的核心構件也是實時監測和健康管理的主要對象,為了滿足健康管理的需求,采用SHMCM模型進行構建。主機2中主要是軟件健康管理應用程序,根據航天測試軟件健康管理層次結構,可知軟件健康管理應用程序主要的構件包括:數據處理構件、健康評估構件、影響評估構件、故障診斷構件、決策構件、用戶界面構件和數據庫操作構件。整個系統運行過程如圖4所示。其中決策構件給出的減緩命令通過遠程服務構件發送到各測量構件的減緩措施對象中,減緩異常事件對整個系統的影響。在航天測試軟件健康管理系統中,存在的幾個關鍵問題如下:

圖3 航天測試軟件健康管理系統框架
1)減緩措施的研究。目前主要采取軟件容錯措施,主要完成功能的恢復,但并不是所有的軟件故障都需要功能恢復,對于一些危險性較小的軟件故障可以采取其他的處理方式,如:忽視(ignore)、使用過去數據(use-past-data)、停止操作(stop)和重啟(Restart)[23]等,將發生的異常情況及處理方法在運行日志中進行記錄,然后在軟件非運行時再進行檢查、排錯,這樣不僅可以提高軟件運行時的可靠性也可以減少成本;
2)軟件故障的快速診斷,包括快速檢測和快速定位。目前有很多故障檢測和定位算法,如基于程序譜的軟件錯誤定位算法(spectrum-based fault localization),基于運行序列的故障診斷(sequence-based fault location),基于貝葉斯、數據挖掘、數據流等方法的故障診斷[24-28],如何選擇合適的算法至關重要。由于航天測試軟件實時性要求高,在故障診斷過程中不能影響航天測試軟件的正常運行,所以故障診斷引擎速度要快,要能在最短的時間內診斷出故障,為健康管理系統的評估提供結果。航天測試軟件的測試流程是從測試任務數據庫中調取的,測試流程是固定的,所以可利用航天測試軟件的這一優勢,將對航天器的測試信息考慮到數據流中,加快對故障的診斷;
3)軟件健康管理應用程序的可靠性。軟件健康管理的決策結果正確與否引起了經典的“Who guards the guardians?”[29]。可靠的軟件健康管理系統可以提高航天測試軟件的可靠性和運行成本,但是如果健康管理系統并不可靠,如發生“虛警”或漏掉了嚴重的故障,可能引起更嚴重的災難和增加成本,所以如何保證軟件健康管理系統的可靠性需要認真對待。

圖4 航天測試軟件健康管理系統運行流程圖
結合航天測試系統軟件面臨的問題和未來的需求,將軟件健康管理技術和軟件構件技術引入到航天測試領域。在對相關文獻進行研究的基礎上,總結了軟件健康管理的特點,對軟件健康管理的概念進行了正式的定義及層次結構劃分。根據航天測試軟件開發特點及健康管理層次結構,構建了基于COM構件的SHMCM模型,對模型進行了詳細的闡述。同時根據航天測試軟件特點,提出了航天測試軟件健康管理系統設計原則,并在此基礎上基于SHMCM構建了航天測試軟件健康管理系統框架,同時對其中的關鍵問題進行了說明。通過將軟件健康管理技術與軟件構件技術結合,研究基于SHMCM的航天測試軟件健康管理系統,對國內研究軟件健康管理系統具有一定借鑒意義,對提高航天測試軟件的可靠性運行和高效率研制具有重要意義。
[1] Ashok N Srivastava,Robert W Mah,Claudia Meyer. Integrated Vehicle Health Management Technical Plan[R]. Version 2.03. NASA, 2009:44.
[2] Zhao Changzhi, et al. Software Active Online Monitoring Under Anticipatory Semantics[C]. 1st International Workshop on Software Health Management, 2009: 1.
[3] A N Srivastava, J Schumann. The Case for Software Health Management[C]. 2011 Fourth IEEE International Conference on Space Mission Challenges for Information Technology, 2011:3.
[4] Avizienis A,et al. Basic Concepts and Taxonomy of Dependable and Secure Computing[J]. IEEE Trans. On Dependable and Secure Computing,January-March 2004: 11-12.
[5] J Riecks, W Storm, M Hollingsworth. Concept Development for Software Health Management[R].NTIS: NASA/CR-2011-217150, 2011: 8-10.
[6] K Pipatsrisawat, et al. Software Health Management: A Short Review of Challenges and Existing Techniques [R].Ames Research Center: ARC-E-DAA-TN664, 2009: 1-2.
[7] Schumann J, Mbaya T, Mengshoel O. Bayesian Software Health Management For Aircraft Guidance, Navigation, and Control[C].Annual Conference of the Prognostics and Health Management Society, 2011: 1-2.
[8] M Barry. Failsafe Project Software Health Management[EB/OL].2008.Available for Download at www.kestreltechnology.com/downloads/FailsafeOverview.pdf: 117-123.
[9] Schumann J, Mengshoel O J, Mbaya T. Integrated Software and Sensor Health Management for Small Spacecraft[C]. Fourth IEEE International Conference on Space Mission Challenges for Information Technology, 2011: 77-82.
[10] 賴根,肖明清,何景峰.基于構件的軍械測試系統軟件開發方法研究[J].計算機測量與控制,2006,14(9): 1266.(Lai Gen, Xiao Mingqing, He Jingfeng. Research of Component-Based Software Development Method in Aerial Armament Test System[J]. Computer Measurment & Control, 2006, 14(9): 1266.)
[11] James L Orlet,Gerald L Murdock.Cass Upgrade COSSI-A Systematic Approach to Incorporating NxTest Technology Into Military ATE[C].IEEE Autotestcon Proceedings, 2002:49-58.
[12] Malesich M Software Architecture Requirements for DOD Automatic Test Systems [C]. Autotestcon99 , 1999.
[13] 楊芙清,梅宏.構件化軟件設計與實現[M].北京:清華大學出版社, 2008:5-6.(Yang Fuqing, Mei Hong. Design and Implementation of Component-Based Software[M]. Beijing: Tsinghua University Press,2008:5-6.)
[14] Gabor Karsai. Software Health Management an Introduction [EB/OL]. Available for download at www.isis.vanderbilt.edu/sites/default/files/Paper_7.pdf: 3.
[15] 張合生,李杰,金玉紅.火星探測器星載軟件自主管理設計[C].中國宇航學會學術年會論文集, 2010: 137.
[16] Schumann J, Mbaya T, Mengshoel O. Bayesian Software Health Management for Aircraft Guidance, Navigation, and Control[C].Annual Conference of the Prognostics and Health Management Society, 2011: 1-2.
[17] Dubey A, Mahadevan N, Kereskenyi R. Reflex and Healing Architecture for Software Health Management[EB/OL].Available for download at www.isis.vanderbilt.edu/sites/default/files/Dubey_Paper.pdf: 1-3.
[18] Chidamber SR, Kemerer CF. A metrics suite for object-oriented design[J ].IEEE Trans Softw Eng 20(6):476-493,1994.
[19] Abreu F B E, Henderson-Sellers B, Piattini M, Poels G, Sahraoui H A.Quantitative Approaches in Object-oriented Software Engineering[C ].In: ECOOP ’01: proceedings of the workshops on object-oriented technology. London, UK, Springer-Verlag, 2002: 174-183.
[20] Bansiya J, Davis C G. A Hierarchical Model for Object-oriented Design Quality Assessment[J].IEEE Trans Softw Eng 28(1), 2002: 4-17.
[21] Genero M, Miranda D, Piattini M. Defining and Validating Metrics for UML Statechart Diagrams[C].In: QAOOSE ’02: 6th International ECOOP Workshop on Quantitative Approaches in Object-oriented Software Engineering, 2002: 120-136.
[22] Ming Zhao, Jianfeng Yang. A DCA-based Method for Software Prognostics and Health Management[C].Prognostics & System Health Management Conference, 2012: 2.
[23] Dubey A, et al. Model-based Software Health Management for Real-Time Systems [C].IEEE Aerospace Conference, 5747559, 2011: 6-7.
[24] Abreu R, Zoeteweij P, Gemund A J C. Spectrum-Based Multiple Fault Localization[C]. In: ASE ’09: Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering, IEEE Computer Society 2009: 88-99.
[25] Dallmeier V, Lindig C, Zeller A. Lightweight Defect Localization for Java[C]. In: ECOOP 2005-Object-Oriented Programming. Volume 3586 of Lecture Notes in Computer Science. Springer Berlin/Heidelberg, 2005: 528-550.
[26] 周桂如.貝葉斯統計法在軟件故障診斷中的應用[J].安徽電子信息職業技術學院學報, 2010, 9(6):17-18.
[27] 林立, 朱小冬, 王毅剛, 閻旭坤.基于數據挖掘的軟件故障診斷研究[J].微計算機信息, 2010, 26(12-1):156-157.(LIN Li, ZHU Xiaodong, WANG Yigang, YAN Xukun. Applications of Data Mining Techniques in Software Fault Diagnois[J]. Microcomputer Information, 2010, 26(12-1):156-157.)
[28] 曹國榮.航天器在軌自主健康管理技術的研究和應用[D].長沙: 國防科學與技術大學, 2007:53-68.
[29] Schumann J, Srivastava A N, Mengshoel O J. Who guards the Guardians-Towards V&V of Health Management Software (short paper)[C].St.Julians,Malta :Runtime Verification Conference, 2010: 399-400.
Study on the Health Management System of the Aerospace Testing Software Based on SHMCM
XIE Weiqi CAI Yuanwen CHENG Long
The Academy of Equipment, Beijing 101416, China
Bycombiningtheproblemsoftheaerospacetestingsoftwarewithfutureneeds,thesoftwarehealthmanagement(SWHM)technologiesandsoftwarecomponenttechnologiesareintroducedtothefieldoftheaerospacetestingsoftware.BasedontheanalysisoftheSWHMdevelopmentmotivation,theconceptofSWHMisformallydefined.AndbythearchitectureleveldivisionofSWHM,asupporthealthmanagementcomponentmodel(SHMCM)isdesigned.TheframeworkoftheaerospacetestingsoftwarebasedonSHMCMispresented,whichisbasedontheanalysisofthehealthmanagementdesignprinciples,andthekeyproblemsarestudiedaswell.TheresultsofthispaperhavecertainguidesignificanceforSWHMtechniquesusedinsoftwarefield,especiallyinthefieldofaerospacetestingsoftware.
Softwarehealthmanagement(SWHM);Aerospacetestingsoftware;Softwarecomponent;Componentmodel;Softwarefaultdiagnose
2013-06-02
解維奇(1987-),男,安徽人,博士研究生,主要研究方向為航天測試發射控制理論與技術;蔡遠文(1967-),男,四川人,教授,博士生導師,主要研究方向為飛行器測試發射控制技術、計算機仿真技術;程 龍(1982-),男,甘肅人,博士,講師,主要研究方向為飛行器測試發射控制技術、計算機仿真技術。
TP311.52
A
1006-3242(2013)05-0090-07