面向方面可信軟件過(guò)程建模方法
【專利摘要】本發(fā)明基于可信軟件過(guò)程策略獲取、可信軟件過(guò)程元模型TEPMM、可信軟件過(guò)程框架和可信方面合成方法,提出了面向方面可信軟件過(guò)程建模方法。本發(fā)明提供一種根據(jù)可信軟件需求獲取過(guò)程策略并融入軟件過(guò)程,實(shí)現(xiàn)可信軟件過(guò)程建模的方法,解決現(xiàn)有軟件過(guò)程不支持可信軟件需求的問(wèn)題。
【專利說(shuō)明】面向方面可信軟件過(guò)程建模方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于可信軟件及軟件過(guò)程建?!炯夹g(shù)領(lǐng)域】,涉及一種根據(jù)可信軟件需求獲取 過(guò)程策略并將過(guò)程策略融入軟件生命周期過(guò)程支持可信軟件生產(chǎn)及演化的方法。
【背景技術(shù)】
[0002] 軟件開發(fā)與演化是以軟件過(guò)程為中心的,軟件過(guò)程是保證軟件質(zhì)量的關(guān)鍵因素, 一個(gè)管理好的可信軟件過(guò)程可以支持可信軟件的生產(chǎn),如果可信軟件過(guò)程能夠支持軟件演 化則可以支持軟件的可信演化?,F(xiàn)有面向過(guò)程提高軟件可信性的方法包括過(guò)程改進(jìn)方法、 特定階段軟件開發(fā)方法和過(guò)程質(zhì)量保證方法。過(guò)程改進(jìn)方法的本質(zhì)是通過(guò)控制軟件過(guò)程來(lái) 提升軟件組織生產(chǎn)軟件的質(zhì)量,CMMI是最為成功而被廣泛采用的模型。特定階段軟件開發(fā) 方法是在軟件開發(fā)生命周期過(guò)程中在特定階段指定執(zhí)行一些有助于提升軟件質(zhì)量的活動(dòng), 例如:SDL、CbyC,CLASP,TSP、PSP、DERAF以及信息安全工程、可靠性工程、易用性工程和防 危性工程都在軟件過(guò)程中增加了有助于提升軟件質(zhì)量的活動(dòng)。這兩種方法都有效地證明 了軟件過(guò)程對(duì)于軟件質(zhì)量的重要作用,然而,這兩種方法僅針對(duì)軟件質(zhì)量或者某些軟件非 功能需求(例如:安全性,可靠性,易用性,防危性等)提出過(guò)程改進(jìn)或者指定特定活動(dòng),而 滿足質(zhì)量需求的軟件并非就是可信軟件,僅滿足某些軟件非功能需求的軟件也不是可信軟 件。另外,過(guò)程質(zhì)量保證方法通過(guò)滿足過(guò)程本身的質(zhì)量來(lái)保證過(guò)程生產(chǎn)出軟件的質(zhì)量,已經(jīng) 提出的TSM和TPMF,為度量和改進(jìn)軟件可信提供了一種方法,這類方法與過(guò)程改進(jìn)以及特 定階段軟件開發(fā)方法可以互為補(bǔ)充。
【發(fā)明內(nèi)容】
[0003] 為了支持可信軟件生產(chǎn)與演化的需要,本發(fā)明提供一種根據(jù)可信軟件需求獲取過(guò) 程策略并融入軟件過(guò)程,實(shí)現(xiàn)可信軟件過(guò)程建模的方法,解決現(xiàn)有軟件過(guò)程不支持可信軟 件需求的問(wèn)題。
[0004] 面向方面可信軟件過(guò)程建模方法包括下述步驟:
[0005] 1. 1可信軟件過(guò)程策略獲取
[0006] 本發(fā)明首先通過(guò)分析可信軟件需求,基于可信軟件需求獲取、建模與推理,獲取滿 足可信需求的過(guò)程策略:
[0007] 1. 1. 1可信軟件需求獲取
[0008] 本發(fā)明將可信軟件的需求定義為軟件利益相關(guān)者需要可信軟件具備的可信屬性, 包括功能需求和非功能性需求,其中,功能需求是可信軟件的硬目標(biāo),非功能需求分為可信 關(guān)注點(diǎn)和軟目標(biāo)兩類,可信關(guān)注點(diǎn)是可信軟件獲得用戶對(duì)其行為實(shí)現(xiàn)預(yù)期目標(biāo)能力的信任 程度的客觀依據(jù),這里的關(guān)注點(diǎn)使用了面向方面方法中關(guān)注點(diǎn)分離的思想。根據(jù)可信軟件 的不同,可信關(guān)注點(diǎn)由不同的非功能需求集合構(gòu)成,與可信關(guān)注點(diǎn)產(chǎn)生相關(guān)關(guān)系的其他非 功能需求集合構(gòu)成了軟目標(biāo),軟目標(biāo)不是可信軟件的可信依據(jù),但對(duì)可信軟件的質(zhì)量有一 定的影響,下面對(duì)可信軟件需求的定義進(jìn)行說(shuō)明:
[0009] 硬目標(biāo)是可信軟件的功能需求,可信軟件的所有功能需求都是必須嚴(yán)格實(shí)現(xiàn)的, 這是可信軟件的基礎(chǔ),因而用硬目標(biāo)描述這是可信軟件實(shí)現(xiàn)的硬性目標(biāo)。由于功能需求一 直以來(lái)都受到足夠的重視,相關(guān)研究相對(duì)充分,因此,本文僅關(guān)注功能需求實(shí)現(xiàn)的完整性及 正確性,為了與傳統(tǒng)功能需求概念相區(qū)分,將功能完整性及正確性歸入可信關(guān)注點(diǎn)。
[0010] 可信關(guān)注點(diǎn)是可信軟件非功能需求集合的一個(gè)子集,在這個(gè)子集中的非功能需求 是由利益相關(guān)者共同決定的攸關(guān)軟件可信性的非功能需求,用戶通過(guò)軟件滿足這些可信 關(guān)注點(diǎn)的客觀能力事實(shí),從而信任軟件的行為能夠?qū)崿F(xiàn)其設(shè)定的目標(biāo)。因此,軟件的可信 意味著軟件滿足一系列可信關(guān)注點(diǎn),若軟件具有了一系列與軟件可信關(guān)注點(diǎn)相關(guān)的能力, 則可以相信該軟件的行為能夠符合用戶的預(yù)期目標(biāo)。這也符合TSM(Trusted Software methodology)有關(guān)軟件可信性的定義"軟件滿足一系列需求的信任程度"。
[0011] 軟目標(biāo)是可信軟件非功能需求中非可信關(guān)注點(diǎn)的非功能需求集合,用于描述軟件 的質(zhì)量需求(這里借鑒了需求工程中面向目標(biāo)的建模方法將軟件的非功能需求定義為軟 目標(biāo)(softgoal),用于表達(dá)軟件的質(zhì)量需求),由于軟件非功能需求間存在復(fù)雜的相關(guān)關(guān) 系,可信關(guān)注點(diǎn)的實(shí)現(xiàn)會(huì)影響軟目標(biāo),如果僅考慮可信關(guān)注點(diǎn)的實(shí)現(xiàn),有可能損害軟目標(biāo), 從而導(dǎo)致軟件質(zhì)量下降,質(zhì)量低下的軟件絕對(duì)不可能是可信軟件。然而,需要注意的是,高 質(zhì)量軟件又不等于可信軟件,軟件質(zhì)量定義為軟件滿足顧客、用戶需求或期望的程度,軟件 質(zhì)量的定義并不明確,大致涵蓋可靠性、安全性、可維護(hù)性、性能和易用性等幾個(gè)要素,這些 要素雖然與可信軟件基本要素一致,但可信軟件明確強(qiáng)調(diào)獲得用戶信任的能力,其可信需 求是明確定制的。因此,本文用軟目標(biāo)描述非可信關(guān)注點(diǎn)的非功能需求,而用可信關(guān)注點(diǎn)明 確描述用戶的可信需求。圖1描述了可信軟件需求的構(gòu)成。
[0012] 基于IS0/IEC25010以及相關(guān)學(xué)者及機(jī)構(gòu),包括:標(biāo)準(zhǔn)TCSEC、IEC60090-191、TSM, 機(jī)構(gòu) Microsoft、TCG、TrustSoft,會(huì)議 DARPA' sCHATS、NSS2、C0MPSAC、ICSP,以及學(xué)者 Littlewood,Strigine,Schmidt等提出的可信軟件非功能需求,本發(fā)明提出如圖2所示的 可信軟件非功能需求分解模型??尚跑浖枪δ苄枨笥晒δ苓m用性、防危性safety、可靠 性、安全性、精確性、可維護(hù)性、性能、易用性、兼容性、可移植性和隱私性構(gòu)成,其中,功能適 用性又由功能完整性和功能正確性構(gòu)成,可靠性由可用性、容錯(cuò)性和可恢復(fù)性構(gòu)成,安全性 由可追蹤性、機(jī)密性、完整性、不可否認(rèn)性和真實(shí)性構(gòu)成,可維護(hù)性由可測(cè)試性、可重用性、 可修改性、模塊化和可擴(kuò)展性構(gòu)成,性能由時(shí)間性能和空間性能構(gòu)成,易用性由易操作性和 易識(shí)別性構(gòu)成,兼容性由可生存性和可交互性構(gòu)成,可移植性由自適應(yīng)性和易安裝性構(gòu)成。
[0013] 可信軟件非功能需求分解模型并非一成不變,根據(jù)不同項(xiàng)目需要和不同專家建 議,分解模型應(yīng)該根據(jù)可信軟件具體需要?jiǎng)討B(tài)調(diào)整;可信軟件非功能需求分解模型的提出 是為了輔助獲取可信關(guān)注點(diǎn)和軟目標(biāo)。
[0014] 為了獲取可信關(guān)注點(diǎn)和軟目標(biāo),本發(fā)明基于模糊集合論提出可信軟件非功能需求 的描述方法,通過(guò)收集可信軟件利益相關(guān)者給出預(yù)期可信目標(biāo)的非功能需求評(píng)估數(shù)據(jù),使 用信息熵對(duì)評(píng)估數(shù)據(jù)有效性進(jìn)行篩選,待產(chǎn)生有效評(píng)估數(shù)據(jù)后用模糊排序方法綜合權(quán)衡所 有利益相關(guān)者的評(píng)估數(shù)據(jù),從中獲取可信關(guān)注點(diǎn)和軟目標(biāo),具體獲取及評(píng)估方法如下:
[0015] 首先,使用梯形模糊數(shù)描述可信軟件非功能需求的量化數(shù)值,在獲取軟件利益 相關(guān)者對(duì)可信軟件非功能需求的評(píng)估數(shù)據(jù)時(shí),使用完全不重要AL(0, 0, 0. 077, 0. 154 ;1)、 不重要 L(0. 077, 0· 154, 0· 231,0· 308 ;1),較不重要 FL(0. 231,0· 308, 0· 385, 0· 462 ;1), 中立 Μ(0· 385, 0· 462, 0· 538, 0· 615 ;1),較重要 FH(0. 538, 0· 615, 0· 692, 0· 769 ;1),重要 Η(0· 692, 0· 769, 0· 846, 0· 923 ;1)和非常重要 ΑΗ(0· 846, 0· 923, 1,1 ;1)的語(yǔ)言變量方便利 益相關(guān)者描述他們?cè)u(píng)估各項(xiàng)可信軟件非功能需求的重要程度。
[0016] 其次,為了對(duì)評(píng)估數(shù)據(jù)的有效性及客觀性進(jìn)行檢查,本發(fā)明基于信息熵提出可信 需求評(píng)估數(shù)據(jù)有效性檢查及綜合權(quán)衡方法,具體包括如下三個(gè)步驟:
[0017] 步驟一.構(gòu)造可信需求評(píng)估數(shù)據(jù)矩陣A :
[0018]
【權(quán)利要求】
1.面向方面可信軟件過(guò)程建模方法,其特征在于,包括下述步驟: 1.1可信軟件過(guò)程策略獲取 通過(guò)分析可信軟件需求,基于可信軟件非功能需求獲取、建模與推理,獲取滿足可信軟 件需求的過(guò)程策略: 1.1.1可信軟件需求獲取 為了獲取可信軟件非功能需求中的可信關(guān)注點(diǎn)和軟目標(biāo),基于模糊集合論和信息熵提 出可信軟件非功能需求的獲取方法,通過(guò)收集可信軟件利益相關(guān)者給出預(yù)期可信目標(biāo)的非 功能需求評(píng)估數(shù)據(jù),使用信息熵對(duì)評(píng)估數(shù)據(jù)有效性進(jìn)行篩選,待產(chǎn)生有效評(píng)估數(shù)據(jù)后用模 糊排序方法綜合權(quán)衡所有利益相關(guān)者的評(píng)估數(shù)據(jù),從中獲取可信關(guān)注點(diǎn)和軟目標(biāo),具體獲 取方法如下: 首先,使用梯形模糊數(shù)描述可信軟件非功能需求的量化數(shù)值,在獲取軟件利益相關(guān) 者對(duì)可信軟件非功能需求的評(píng)估數(shù)據(jù)時(shí),使用完全不重要AL(0, 0, 0. 077, 0. 154 ;1)、不 重要L(0. 077, 0? 154, 0? 231,0? 308 ;1),較不重要FL(0. 231,0? 308, 0? 385, 0? 462 ;1),中 立M(0. 385, 0? 462, 0? 538, 0? 615 ;1),較重要FH(0. 538, 0? 615, 0? 692, 0? 769 ;1),重要 H(0. 692, 0? 769, 0? 846, 0? 923 ;1)和非常重要AH(0. 846, 0? 923, 1,1 ;1)的語(yǔ)言變量描述軟 件利益相關(guān)者評(píng)估各項(xiàng)可信軟件非功能需求的重要程度; 其次,為了對(duì)評(píng)估數(shù)據(jù)的有效性及客觀性進(jìn)行檢查,基于信息熵提出評(píng)估數(shù)據(jù)有效性 檢查及綜合權(quán)衡方法,具體包括如下三個(gè)步驟: 步驟1.構(gòu)造可信需求評(píng)估數(shù)據(jù)矩陣A:
其中:為第j個(gè)利益相關(guān)者(I<j<m)對(duì)第i項(xiàng)非功能需求的評(píng)估數(shù)據(jù),I<i<n; I(KxSw)表示矩陣A的第X列形成的列向量,A表示矩陣A的第y行形成的行向量,I^y^n; 步驟2.基于軟件利益相關(guān)者的評(píng)估數(shù)據(jù)計(jì)算熵值:
對(duì)Hj做歸一化處理:
為了使計(jì)算值能夠正向地反映利益相關(guān)者提供有效評(píng)估數(shù)據(jù)的貢獻(xiàn)度,使用I-Qj表 示其貢獻(xiàn)度,再次對(duì)其進(jìn)行歸一化處理后得到各個(gè)利益相關(guān)者的貢獻(xiàn)度:
其中:0 <Ej < 1且SEj =I;Ej大則表明利益相關(guān)者j相對(duì)重要且貢獻(xiàn)大; 步驟3.計(jì)算綜合后的可信需求評(píng)估數(shù)據(jù),對(duì)于上述矩陣A,取I% 4元素值的平 均值:
Wi是第i項(xiàng)非功能需求的重要程度的平均值; 最后,基于Chen和Sanguansat's的模糊排序方法對(duì)獲取后的非功能需求進(jìn)行排序; 對(duì)于一組m個(gè)可信軟件利益相關(guān)者(S1,S2,…,SJ,分別評(píng)估了n個(gè)可信軟件非功能需求 (C1,C2,…,Cn)的重要程度,基于信息熵的方法已經(jīng)得到各項(xiàng)非功能需求的重要程度值平均 值W:. =(%,%.樣["$4;%;),其中:-〇〇<'^1<'\^ 2<'\^3<'\^4<〇〇,6^€(0,1』且1;^ ;[;^11, Wi的排序過(guò)程如下: 轉(zhuǎn)換每一個(gè)通用模糊數(shù)W=(wn,w;2,wB.wf4;e":)為標(biāo)準(zhǔn)模糊數(shù)W廣:
其中
計(jì)算正、負(fù)區(qū)域/Ireaa ?drea;i?,dr和jr,它們是隸屬函數(shù)和?的梯 形區(qū)域:
計(jì)算每一個(gè)非功能需求的?及值,它們分別表示正向及負(fù)向影響:
計(jì)算每一個(gè)Wi"'的排序值Score(W廣):
的排序值Score(WiO越大,表明對(duì)應(yīng)的非功能需求越重要,應(yīng)將其確定為可信關(guān)注 點(diǎn),而對(duì)于排序值Score(WiO小的非功能需求,則應(yīng)確定為軟目標(biāo); I. 1. 2可信軟件過(guò)程策略獲取 針對(duì)可信軟件需求中的可信關(guān)注點(diǎn),從過(guò)程控制角度提出實(shí)現(xiàn)可信關(guān)注點(diǎn)的過(guò)程策 略,同時(shí),考慮到非功能需求之間的相關(guān)關(guān)系,提出軟件可信需求元模型TRMM(Trustworthy RequirementMeta-Model),描述可信關(guān)注點(diǎn)的實(shí)現(xiàn)以及可信軟件需求復(fù)雜的相關(guān)關(guān)系,同 時(shí),建立可信需求建模知識(shí)庫(kù)以輔助建模者完成可信需求建模; 這個(gè)知識(shí)庫(kù)由可信關(guān)注點(diǎn)庫(kù)和過(guò)程策略庫(kù)構(gòu)成:可信關(guān)注點(diǎn)庫(kù)包含了利益相關(guān)者及對(duì) 應(yīng)的可信關(guān)注點(diǎn),以及這些可信關(guān)注點(diǎn)的分解;過(guò)程策略庫(kù)存儲(chǔ)了可信活動(dòng)及其對(duì)可信關(guān) 注點(diǎn)和軟目標(biāo)的貢獻(xiàn),根據(jù)貢獻(xiàn)選擇約束規(guī)約即是選擇合適的過(guò)程策略,解決可信軟件非 功能需求間的沖突關(guān)系; 使用TRMM建??尚判枨?,是為了找出整體滿足可信關(guān)注點(diǎn)的過(guò)程策略,但為了權(quán)衡沖 突,使用可滿足性問(wèn)題求解方法,通過(guò)向后推理找出整體滿足可信關(guān)注點(diǎn)的過(guò)程策略集合, 如果找不到,顯示導(dǎo)致不滿足的矛盾,或在能夠接受一定程度的矛盾的情況下找到可滿足 的過(guò)程策略集合;以下是生成可信需求SAT公式的算法: 算法I. 1可彳目需求SAT公式生成算法MakeSAT; 設(shè)置初始狀態(tài)、結(jié)點(diǎn)約束狀態(tài)和可接受矛盾等級(jí),將軟件可信需求模型M= (N,R)轉(zhuǎn)換 為可信需求模型公式,生成為可信需求SAT公式小 輸入:M= (N,R)?輸出:小.
通過(guò)算法I. 1,生成可信需求模型的SAT公式,為了實(shí)現(xiàn)可滿足性問(wèn)題求解,基于可滿 足性問(wèn)題求解開源工具zChaff和YoonsuckChoe提供的公式轉(zhuǎn)換腳本prop2cnf.py,提出 可信需求可滿足性推理算法,并開發(fā)工具TACD輔助推理;以下是可信需求可滿足性求解算 法:
通過(guò)可滿足性推理,得到可信軟件過(guò)程策略,以下給出基于過(guò)程策略提出可信軟件過(guò) 程建模的方法: 1. 2可信軟件過(guò)程建模 基于軟件演化過(guò)程建模方法,通過(guò)可信軟件需求建模與推理獲得的過(guò)程策略,提出面 向方面的可信軟件過(guò)程建模方法: 1. 2. 1可信軟件過(guò)程元模型及可信軟件過(guò)程框架 基于面向方面方法的思想,將實(shí)現(xiàn)可信關(guān)注點(diǎn)的過(guò)程策略中的可信活動(dòng)按照不同粒度 細(xì)化為過(guò)程通知和任務(wù)通知,在確定切點(diǎn)以及織入類型后分別定義為可信過(guò)程方面和可信 任務(wù)方面,可信過(guò)程方面和可信任務(wù)方面統(tǒng)稱為可信方面,將可信方面編織入軟件演化過(guò) 程,實(shí)現(xiàn)可信軟件過(guò)程建模; 可信軟件過(guò)程建模方法基于軟件演化過(guò)程框架和軟件演化過(guò)程元模型EPMM提出可信 軟件過(guò)程框架和面向方面的可信軟件過(guò)程元模型TEPMM(Trustworthy-EPMM); 首先,基于面向方面方法擴(kuò)展軟件演化過(guò)程框架得到可信軟件過(guò)程框架;可信軟件過(guò) 程框架在原框架的四個(gè)層次進(jìn)行擴(kuò)展,在活動(dòng)層,過(guò)程策略中定義的活動(dòng)即為可信活動(dòng),可 信活動(dòng)根據(jù)粒度的不同可細(xì)化為任務(wù)層的任務(wù)通知和過(guò)程層的過(guò)程通知,在確定切點(diǎn)以及 織入類型后分別定義為可信任務(wù)方面和可信過(guò)程方面;在任務(wù)層,對(duì)需要擴(kuò)展的任務(wù)實(shí)施 可信任務(wù)方面織入,織入后得到可信任務(wù);在過(guò)程層,對(duì)需要擴(kuò)展的軟件過(guò)程實(shí)施可信過(guò) 程方面織入,織入后得到可信過(guò)程;最后,在全局層,擴(kuò)展織入了可信方面后的可信軟件過(guò) 程; 其次,基于可信方面合成方法擴(kuò)展EPMM得到可信軟件過(guò)程元模型TEPMM;可信方面合 成方法如下: 1. 2. 2可信方面合成方法 可信方面合成的核心是合成機(jī)制,合成機(jī)制根據(jù)合成規(guī)則將共享連接點(diǎn)上的多個(gè)可信 方面融合為一個(gè)可信方面,然后織入基本模型的切點(diǎn),因此,方面合成規(guī)則分為方面間融合 規(guī)則和方面織入規(guī)則;基于方面合成規(guī)則,提出可信方面合成方法,并按照合成操作分為融 合操作和織入操作兩類; 當(dāng)多個(gè)可信方面需要在同一個(gè)連接點(diǎn)以同類型方式織入軟件演化過(guò)程模型時(shí),先把這 些可信方面融合為一個(gè)可信方面,再將融合后的可信方面織入軟件演化過(guò)程模型; 在任務(wù)層,對(duì)于需要以同類型織入同一切點(diǎn)的可信任務(wù)方面,基于依賴關(guān)系分析,將存 在依賴關(guān)系的任務(wù)轉(zhuǎn)換為順序融合關(guān)系和選擇融合關(guān)系;以下是可信任務(wù)方面融合操作的 算法: 算法1. 3可信任務(wù)方面融合操作算法Task_Aspect_Merging 輸入需在同一切點(diǎn)同類型織入的可信任務(wù)方面tAspecttl,…,tAspecttn,分析依賴性,對(duì)于存在依賴關(guān)系的任務(wù)構(gòu)建任務(wù)依賴圖TDG,然后轉(zhuǎn)換為任務(wù)通知,對(duì)于沒(méi)有依賴關(guān)系的 任務(wù),根據(jù)實(shí)際情況實(shí)施順序融合或者選擇融合: fmA:tAspecttl = (idtl, adtl, pctl, type^ , tAspecttn = (idtn, adtn, pctn, typen). 輸出:tAspectt = (idt, adt, pct, type), tAspecttl = (idtl, adtl, pctl, type^ , ..., tAspecttn = (idtn, adtn, pctn, typen).
融合后,在同一切點(diǎn)就只有不同類型的可信任務(wù)方面需要織入,此時(shí)執(zhí)行可信任務(wù)方 面織入操作,可信任務(wù)方面的織入分為之前、之后和周圍織入,分別對(duì)應(yīng)任務(wù)2_斷言功能 的順序織入和選擇織入,織入算法如下所示: 算法1. 4可信任務(wù)方面織入算法Task_Weaving 輸入一個(gè)基本任務(wù)t= ({Qj,{Q2},Mi,M。)和一個(gè)可信任務(wù)方面tAspectt = (idt,adt,pct,type),在tAspectt 定義的切點(diǎn)pct = ({Qj, {Q2})處實(shí)施任務(wù)通知adt = {亂酬的織入操作: 輸入:t, tAspectr 輸出:tt= ({Qx},{Qy},Mi,Mo).
過(guò)程層建模時(shí),首先對(duì)每一個(gè)切點(diǎn)的同類型可信過(guò)程方面實(shí)施融合操作,以下是可信 過(guò)程方面融合操作的算法: 算法1. 5可信過(guò)程方面融合操作算法Process_Aspect_Merging對(duì)于同切點(diǎn)同類型織入的可信過(guò)程方面tAspectpl,…,tAspectpn,分析依賴關(guān)系, 對(duì)于存在依賴關(guān)系的活動(dòng)實(shí)施順序和選擇的融合操作,對(duì)于沒(méi)有依賴關(guān)系的活動(dòng)實(shí)施并 發(fā)融合操作,輸出融合后的可信過(guò)程方面tAspeCtp,修改存在不同連接點(diǎn)的可信過(guò)程方面 tAspectpl,…,tAspectpn的切點(diǎn)定義: 輸入:tAspectpl = (idpl,adpl,pcpl,type),…,tAspectt = (idpn,adpn,pcpn,typen) ?輸出:tAspectp = (idp, adp, pcp, type), tAspectpl = (idpl, adpl, pcpl, type^ , ..., tAspectpn = (idpn, adpn, pcpn, typen).
當(dāng)每一個(gè)切點(diǎn)上所有同類型方面完成融合操作后,實(shí)施可信過(guò)程方面織入操作,按照 過(guò)程層切點(diǎn)定義,可信過(guò)程方面的織入分為條件織入、活動(dòng)織入和弧織入;條件織入操作算 法如下所示: 算法1. 6條件織入操作算法Condition_Weaving 輸入一個(gè)基本過(guò)程p= (C,A;F,M0)和一個(gè)可信過(guò)程方面tAspectp = (idp,adp,pcp,type),將tAspectp織入p的條件織入操作算法: 輸入:p,tAspectp?輸出:tp= (C,A;F,M0).
活動(dòng)織入操作定義了活動(dòng)周圍織入操作、迭代織入操作和并發(fā)織入操作,這三類織入 操作如下所示: 算法1. 7活動(dòng)織入算法Activity_Weaving 輸入一個(gè)基本過(guò)程p= (C,A;F,M0)和一個(gè)可信過(guò)程方面tAspectp = (idp,adp,pcp,type),將tAspectp織入p的活動(dòng)織入操作算法: 輸入:p,tAspectp. 輸出:tp= (C,A;F,M0).
I. 2. 3面向方面可信軟件過(guò)程建模方法 基于可信軟件過(guò)程策略獲取、可信軟件過(guò)程框架和可信方面合成方法,面向方面可信 軟件過(guò)程建模的流程如下: 步驟1.過(guò)程策略獲取 針對(duì)可信軟件需求提出基于模糊集合論和信息熵的可信軟件非功能需求獲取方法,參 照NFR框架和i*模型提出可信需求元模型TRMM及基于知識(shí)庫(kù)的可信需求建模方法,針對(duì) 可信軟件非功能需求間復(fù)雜的相關(guān)關(guān)系,基于可滿足性問(wèn)題求解方法,提出可信需求的可 滿足性向后推理方法,并通過(guò)推理獲取可信軟件過(guò)程策略; 步驟2.活動(dòng)層建模 基于獲得的可信軟件過(guò)程策略中的可信活動(dòng)實(shí)施可信活動(dòng)建模,即在可信軟件過(guò)程的 活動(dòng)層設(shè)計(jì)可信活動(dòng),定義可信活動(dòng)的輸入、輸出、本地?cái)?shù)據(jù)結(jié)構(gòu)及活動(dòng)體,按照分解粒度 不同,將活動(dòng)體定義為一個(gè)軟件過(guò)程或者一個(gè)任務(wù)集合,并在此基礎(chǔ)上,定義可信過(guò)程方面 和可信任務(wù)方面; 步驟3.任務(wù)層建模 任務(wù)層建模是將可信任務(wù)方面織入軟件演化過(guò)程模型;對(duì)于同切點(diǎn)同類型織入的可 信任務(wù)方面,首先實(shí)施方面融合操作,如果可信任務(wù)方面的任務(wù)通知間有依賴關(guān)系則按照 依賴關(guān)系實(shí)施融合,如果任務(wù)通知間沒(méi)有依賴關(guān)系,建模者能夠根據(jù)需要按照順序或者選 擇結(jié)構(gòu)實(shí)施融合;對(duì)于不同切點(diǎn)或者同切點(diǎn)但不同類型的可信任務(wù)方面,實(shí)施方面織入操 作; 步驟4.過(guò)程層建模 過(guò)程層建模是將可信過(guò)程方面織入軟件演化過(guò)程模型;對(duì)于同切點(diǎn)同類型織入的可信 過(guò)程方面,首先實(shí)施方面融合操作,如果可信過(guò)程方面的過(guò)程通知間有依賴關(guān)系則按照依 賴關(guān)系實(shí)施融合,如果過(guò)程通知間沒(méi)有依賴關(guān)系,建模者能夠按照并發(fā)結(jié)構(gòu)實(shí)施融合;對(duì)于 不同切點(diǎn)或者同切點(diǎn)但不同類型的可信過(guò)程方面,實(shí)施方面織入操作; 步驟5.全局層建模 過(guò)程層建模將產(chǎn)生新的可信過(guò)程,因此,全局層建模是識(shí)別所有的可信過(guò)程、軟件過(guò)程 以及過(guò)程之間的包含關(guān)系;通過(guò)全局層模型,建模者能夠掌握原軟件演化過(guò)程模型的變化 以及新可信軟件過(guò)程模型的整體架構(gòu); 可信軟件過(guò)程建模的第一步是通過(guò)可信需求推理出的過(guò)程策略確定擴(kuò)展軟件演化過(guò) 程模型活動(dòng)層的可信活動(dòng),并定義可信活動(dòng)的輸入、輸出、本地?cái)?shù)據(jù)結(jié)構(gòu)和活動(dòng)體; 算法1. 9可信活動(dòng)建模算法Tactivity_Modelling 可信活動(dòng)的建模包括定義輸入、輸出、本地?cái)?shù)據(jù)結(jié)構(gòu)和活動(dòng)體,活動(dòng)體進(jìn)一步分解為一 個(gè)可信過(guò)程或者一個(gè)可信任務(wù)集合: 輸入:過(guò)程策略. 輸出:可信活動(dòng)集合TA,可信任務(wù)方面集合TAspectt,可信過(guò)程方面TAspectp,A1.
與軟件演化過(guò)程元模型中的活動(dòng)一樣,可信活動(dòng)根據(jù)粒度不同能夠細(xì)化為軟件過(guò)程或 者任務(wù)集合,它們分別被定義為可信過(guò)程方面和可信任務(wù)方面,并且,分別在過(guò)程層和任務(wù) 層織入軟件演化過(guò)程模型; 任務(wù)層和過(guò)程層的建模本質(zhì)上是將可信任務(wù)方面和可信過(guò)程方面織入軟件演化過(guò)程 元模型;建模過(guò)程的第一步是尋找每一個(gè)切點(diǎn)上需要織入的可信方面;如果某一個(gè)切點(diǎn)上 只有一個(gè)可信方面需要織入,則基于切點(diǎn)定義調(diào)用可信方面織入算法;如果有多個(gè)可信方 面需要織入同一切點(diǎn),對(duì)于同切點(diǎn)同類型織入的可信方面,調(diào)用可信方面融合算法,保證有 依賴關(guān)系的可信方面完整且正確地織入軟件演化過(guò)程模型;對(duì)于同切點(diǎn)不同類型的可信方 面,同樣基于切點(diǎn)定義調(diào)用可信方面織入算法; 算法I. 10任務(wù)層建模算法Ttask_Modelling 輸入軟件演化過(guò)程模型的任務(wù)集合T和可信任務(wù)方面集合TAspectt =ItAspecttl,tAspectt2,…,tAspecttn}, (n>0),任務(wù)層建模算法將TAspectt中所有可信任務(wù) 方面織入T,生成可信任務(wù)集合TT: 輸入:T,TAspectt. 輸出:TT.
算法I. 11過(guò)程層建模算法Tprocess_Modeling 輸入軟件演化過(guò)程模型的軟件過(guò)程集合P和可信過(guò)程方面集合TAspectp =ItAspectpl,tAspectp2,…,tAspectpn}, (n>0),過(guò)程層建模算法將TAspectp中所有可信過(guò)程 方面織入P,生成可信過(guò)程集合TP: 輸入:P,TAspectp. 輸出:TP.
與軟件演化過(guò)程建模步驟相反,可信軟件過(guò)程建模的全局層建模是在完成活動(dòng)層、過(guò) 程層和任務(wù)層建模之后實(shí)施;基于未織入可信方面的軟件演化過(guò)程和織入了可信方面的可 信軟件過(guò)程,全局模型建模算法如下: 算法I. 12全局層建模算法Tglobal_Modelling 輸入可信過(guò)程方面集合TAspectp和軟件演化過(guò)程集合P,調(diào)用過(guò)程層建模算法Tprocess_Modeling將TAspectp 織入P,生成全集模型g= (P,TP,E): 輸入:P,TAspectp. 輸出:g.
【文檔編號(hào)】G06F9/44GK104267971SQ201410557434
【公開日】2015年1月7日 申請(qǐng)日期:2014年10月20日 優(yōu)先權(quán)日:2014年10月20日
【發(fā)明者】張璇, 王旭 申請(qǐng)人:張璇