李俊霖 高濤 郁湧
摘 要:隨著軟件系統在信息社會中發揮越來越重要的作用,人們對軟件系統的可信性方面的要求也愈來愈高。軟件可信性可由軟件可信屬性集來進行描述和表示,但是人們根據軟件系統的不同特征和不同層面提出了很多軟件可信屬性集。為此,本文提出一種軟件可信屬性的表示以及相關性分析的方法,給出了可信屬性相關性、獨立性和冗余性的概念,并基于相關性分析可以從所知的屬性集中構建一個適合的可信屬性最小子集作為對軟件可信性進行評估的指標。此方法能夠很好地對可信軟件屬性之間的相關性進行分析與度量。
關鍵詞:軟件可信性;可信屬性;相關性分析
中圖分類號:TP31 文獻標識碼:A
1 引言(Introduction)
可信軟件作為軟件領域最具挑戰性和價值的研究課題之一,引起了國內外學者的高度重視。早在1991年,Laprie從安全關鍵系統的研究出發提出軟件可依賴性(Dependability)的概念[1]。2001年,Algirdas等提出軟件的可依賴性是指人們相信軟件系統所具有的、特定服務的能力[2,3],強調了人們對軟件的信任。1997年美國國家科學技術委員會在《高可信系統的研究挑戰》中明確提出了高可信性(High Confidence)的概念[4]。我國學者陳火旺、王戟等認為高可信軟件系統在提供服務時能滿足一系列關鍵性質[5],具體涉及的性質包括:可靠安全性、可靠性、生存性、容錯性、實時性、保密安全性中的一個或者多個。
德國科學研究基金委員會在奧爾登堡大學成立了可信軟件研究院(Trust Soft Graduate School),該機構研究認為,軟件系統的可信性是由正確性、安全性、服務質量(包括性能、可靠性、可用性)、保密性及私密性所決定的[6]。劉克等認為可信軟件(Trustworthy Software,TS)是指軟件系統的動態行為及其運行結果總是符合人們預期,并在受到干擾時仍能提供連續服務的軟件[7]。他們認為可信性是在正確性、安全性、可靠性、時效性、完整性、可用性、可預測性、生存性、可控性等眾多概念基礎上發展起來的一個新概念,是軟件系統諸多屬性的綜合反映。本文作者也提出過一種基于構件的可信軟件框架及其表示方法[8]。
2 可信軟件和可信屬性(Trusted software and
trustworthy attribute)
在軟件可信性的研究中,如何描述和度量軟件的可信性是當前研究的一項重要內容。一般來說,軟件的行為及其產生的結果可以通過一組適當的屬性來描述,即軟件可信性可依據能夠反映軟件某種可信性的一組屬性以及用戶在這組屬性上的預期來共同刻畫,這貫穿于軟件的整個生命周期。為此,人們提出了很多軟件可信屬性類型和分類方法。
軟件可信屬性是一組用來描述和評價軟件系統可信的特性,通過這些屬性可以更明確具體地描述軟件可信的內涵。Avizienis等[9,10]提出了可信性的概念框架,該框架中可信屬性包括:可用性(availability)、可靠性(reliability)、防危性(safety)、機密性(confidentiality)、可維護性(maintainability)等。同時指出,軟件的可用性、完整性和機密性構成了軟件的安全性。陳火旺院士提出了高可信(high confidence)性質的概念[5],認為軟件可信性質包括:可靠性(reliability)、防危性(safety)、安全性(security)、可生存性(survivability)、容錯性(fault to lerance)、實時性(real time)。
王懷民等主張從“客觀性”和“主觀性”兩個方面分別定義可信軟件:“軟件可信性”指軟件客觀具有的質量;“可信軟件”指用戶對軟件客觀質量的主觀認同。他們認為的影響軟件可信性的屬性包括:安全性、可用性、可靠性、實時性、可維護性和可生存性[11]。
此外,其他的研究者對可信性所包含的可信屬性也有不同的見解,其中,大部分的研究者認為可信性應包括可用性(Availability)、可靠性(Reliability)、可維護性(Maintainability)、防危性(Safety)、保密性(confidentiality)、完整性(integrity)和可生存性(survivability)等屬性,而每個屬性特性又可能包含了若干的子特性,這些可信屬性特征共同構成了軟件的可信屬性模型。
軟件可信性是通過軟件可信屬性集及其取值來進行描述的,可信屬性集是一組軟件可信屬性的集合,它是與軟件可信相關的一組指標體系。可以通過用戶判斷的軟件所具有的關于可信屬性的評價和取值來判斷軟件系統的可信性,從而對軟件系統的可信性進行不斷的改進。在軟件系統的運行過程中,若可信屬性滿足要求,則意味著軟件達到應有的可信程度或該軟件能達到其預設的可信目標;否則,就可以認為軟件系統在運行過程中不可信。
軟件可信性可由軟件可信屬性集來進行描述和表示,但是人們根據軟件系統的不同特征和用戶所關心的不同層面提出了很多描述軟件可信的屬性集。這些屬性集中的屬性可能不相同,有些是冗余的,有些甚至是相互沖突的,因此,首先要解決的問題是如何選擇屬性來描述軟件的可信性,并且需要考慮這些所選擇的屬性之間是否有冗余,分析它們之間具有什么樣的相關性。
3 可信屬性相關性分析(Correlation analysis of
trustworthy attributes)
3.1 可信屬性的表示
對于一個可信軟件系統TS,設其可信屬性集為A={a1,a2,...,an},V是可信屬性值的集合,,是可信屬性的值域,即可信屬性的取值范圍,是一個可信屬性函數,它指定某一可信軟件系統TS中可信屬性的取值范圍。由于軟件系統的特征和用戶所關心的層面不同,不同的可信軟件,其屬性取值范圍也各不相同。
由于可信軟件系統的運行特征,軟件可信屬性的取值也是一個動態的過程。隨著時間的推移或者軟件的運行,可信屬性取值會不斷發生變化,因此,可以把每個可信屬性的取值看成一個時間序列,逐一記錄了可信屬性在時刻的取值。
3.2 可信屬性之間的相關性分析
對于一個可信軟件系統TS的可信屬性集A中的任意兩個可信屬性和,如果它們在可信軟件系統TS運行過程中的取值為和,則它們的可信相關系數r可以用Pearson相關系數定義為:
其中,表示的平均值,表示的平均值,r的取值范圍在區間[-1,1]內,若可信屬性和完全相關,則有r=1或者-1;若可信屬性和完全獨立,則r=0。
可信屬性之間的相關系數是對稱的,即對于可信屬性和,有。
可信相關系數的絕對值越大,相關性越強——可信相關系數越接近于1或-1,可信屬性之間的相關性越強,可信相關系數越接近于0,可信屬性之間的相關度越弱。通常情況下可以通過以下的取值范圍來判斷可信屬性自己的相關強度:對于兩個可信屬性來說,其相關系數的絕對值為0.8—1.0則稱兩個可信屬性之間極強相關,相關系數的絕對值為0.6—0.8稱兩個可信屬性之間強相關,相關系數的絕對值為0.4—0.6稱兩個可信屬性之間中等程度相關,相關系數的絕對值為0.2—0.4稱兩個可信屬性之間弱相關,相關系數的絕對值為0.0—0.2稱兩個可信屬性之間極弱相關或無相關。
可信屬性與可信屬性之間的獨立性和冗余性可以根據可信屬性之間的相關性來定義。一般地,如果兩個屬性是完全無關的,那么稱它們之間是獨立的;如果兩個屬性之間是完全相關的,那么稱它們之間是彼此冗余的。
可信屬性之間的獨立和冗余程度可以定義如下:
如果可信屬性,對于任意可信屬性都有,則稱可信屬性在可信軟件系統TS的可信屬性集A中是完全獨立的,可信屬性也稱為可信屬性集A中的孤立可信屬性。
對于可信屬性和有,則稱可信屬性和完全冗余的,一個屬性是完全冗余的應從可信屬性集A中刪除。對于兩個可信屬性來說,其相關系數的絕對值大于0.2則稱兩個可信屬性是部分冗余的,部分冗余的可信屬性的處理要根據不同可信系統和不同用戶的要求來進行,處理時可以根據要求設定一個閾值th,當相關系數的絕對值大于閾值th時看成是冗余的,否則認為是非冗余的。
3.3 可信屬性最小子集的求解
在對一個可信軟件系統TS進行基于可信屬性集的可信性度量時,如何選擇合適的可信屬性集至關重要。為了能夠提高效率和節約資料,可以在全部可信屬性集相關性分析的基礎上,根據可信系統特征,求出最小可信屬性集作為可信度量的依據。
基于可信屬性的相關性分析,最小可信屬性集的選擇如下:
(1)根據可信系統特征選擇一個合適的冗余性度量閾值th;
(2)基于冗余性度量閾值th和可信屬性之間的相關系數來對全部可信屬性集進行分類,把它分為一系列子集,凡是相關系數大于閾值th的可信屬性分在一個子集中;
(3)完全獨立的可信屬性即孤立可信屬性應該加入到最小可信屬性集中;
(4)如果兩個或者多個子集中有一個及以上相同的可信屬性,則選擇一個可信屬性加入到最小可信屬性集中;
(5)對于剩余的子集,在每個子集中選擇一個可信屬性加入到最小可信屬性集中。
當然,隨著可信軟件系統運行環境和用戶要求的變更,最小可信屬性集也會發生變化,因此需要根據可信屬性之間的相關性的變化做出相應的調整和處理,以適應環境和用戶的需要。
4 結論(Conclusion)
如果一個軟件的行為總是與預期一致,則稱該軟件可信。軟件可信性是軟件質量的一種特殊的表現形式,它所關注的是使用層面的綜合化的質量屬性及其保障形式,涉及多個質量屬性的集合以及這些屬性的綜合與平衡。一般來說,軟件的行為及其產生的結果可以通過一組適當的屬性來描述,即軟件可信性可依據能夠反映軟件某種可信性的一組屬性以及用戶在這組屬性上的預期來共同刻畫,這貫穿于軟件的整個生命周期。
軟件可信性可由軟件可信屬性集來進行描述和表示,但是人們根據軟件系統的不同特征和用戶所關心的不同層面提出了很多描述軟件可信的屬性集。這些屬性集中的屬性可能不相同,有些是冗余的,有些甚至是相互沖突的,為此,需要考慮這些可信屬性之間的相互關系。本文提出了一種可信屬性的表示以及相關性度量與分析的方法,給出了可信屬性相關性、獨立性和冗余性的概念和度量方法。基于可信屬性相關性分析,根據不同的軟件類別、應用領域和用戶所關注的不同方面和指標,可以從所知的屬性集中選擇合適的屬性來作為對軟件可信性進行評估的指標,建立一個適合的可信屬性最小子集作為軟件可信性度量的體系,并根據環境和用戶的需要對可信屬性最小子集進行不斷地調整和優化。
參考文獻(References)
[1] Laprie J C.Dependability:Basic concepts and terminology[M].
Vienna:Springe-Verlag,1991.
[2] Algirdas Avizienis,Jean-Claude Laprie,Brian Randell.Fundamental
concepts of computer system dependability[J].IARWIEEE.RAS
Workshop on Robot Dependability:Technological,Challenge of
Dependable Robots in Human Environments.2001,2(15):1-16.
[3] Algirdas A.,et al.Basic concepts and taxonomy of
dependable and secure[J].Computing.IEEE Trans.Dependable
Secure.2004,1(1):11-33.
[4] NSTC.Research Challenges in High Confidence Systems.
In:Proceedings of the Committee on Computing Information
and Communications Workshop,1997.
[5] 陳火旺,王戟,董威.高可信軟件工程技術[J].電子學報,2003,
31(12A):1933-1938.
[6] Steffen Becker,et al.Trustworthy software system:a discussion
of basic concepts and terminology[J].ACM SIGSOFT Software
Engineering Notes,2006,31(6):1-18.
[7] 劉克,等.“可信軟件基礎研究”重大研究計劃綜述[J].中國
科學基金,2008(3):145-151.
[8] 郁湧,劉永剛,侯江畔.一種基于構件的可信軟件系統框架及
其表示[J].軟件工程師,2015,18(5):60-62.
[9] Avizienis A,Laprie J C,Randell B.Fundamental concepts of
dependability[C].3rd Information Survivability Workshop.
Boston,Massachusetts. October 24-26,2000.
[10] Avizienis A,Laprie J C,Randell B,et al.Basic concepts and
taxonomy of dependable and secure computing[J].IEEE
Transactions on Dependable and Secure Computing.2004,
1:11-33.
[11] 郎波,等.一種軟件可信分級模型[J].計算機科學與探索,2010,
4(3):231-239.
作者簡介:
李俊霖(1977-),男,博士,工程師.研究領域:電子政務,可
信軟件.
高 濤(1988-),女,碩士生.研究領域:缺失數據,數據相
關性.
郁 湧(1980-),男,博士,副教授.研究領域:軟件工程和可
信軟件.