• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于變更場景的體系結(jié)構(gòu)元素的識別

      2020-08-04 09:50:33彭釗

      彭釗

      摘要:需求的變更影響分析對于軟件系統(tǒng)的正確實(shí)現(xiàn)有著重要的意義。當(dāng)前的需求變更影響分析研究方法主要集中于需求間以及需求到代碼間,缺乏需求到體系結(jié)構(gòu)元素之間的研究方法。其次傳統(tǒng)的需求變更影響分析方法,在變更維護(hù)過程中,體系結(jié)構(gòu)工程師需要對于變更源相關(guān)的每個體系結(jié)構(gòu)元素(Architectural elements,AE)都要做出分析,這很容易造成變更影響狀態(tài)爆炸。本文基于一階邏輯相關(guān)理論以及一階邏輯在需求間變更影響分析的應(yīng)用,提出一種基于變更場景的需求變更到體系結(jié)構(gòu)元素的識別,并通過一個案例來分析該方法。

      關(guān)鍵詞:需求變更影響分析;一階邏輯;變更場景體系結(jié)構(gòu)元素

      中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2020)05-0197-03

      0引言

      據(jù)調(diào)查,軟件系統(tǒng)開發(fā)的預(yù)算中有85%到90%被用于軟件系統(tǒng)的管理和維護(hù),而這其中有50%被用于軟件系統(tǒng)的變更管理。Ebert等人在文獻(xiàn)[2J和文獻(xiàn)[3]中通過調(diào)查得到一個結(jié)論:一個周期為一年的軟件開發(fā)項(xiàng)目,就會有多于40%的需求發(fā)生了變更。為了盡可能的減少軟件開發(fā)成本,需要盡早在軟件開發(fā)周期中對變更進(jìn)行管理。需求變更影響分析主要分為需求問、需求到AE以及需求到代碼的變更影響分析三類。傳統(tǒng)的方法對需求到AE之間的研究比較少,且傳統(tǒng)的方法很容易造成變更影響狀態(tài)爆炸。

      需求到AE的變更影響狀態(tài)爆炸:由于缺乏需求到體系結(jié)構(gòu)追蹤關(guān)系的語義,需求變更分析會產(chǎn)生大量的有關(guān)受影響的體系結(jié)構(gòu)元素的誤報(bào)。體系結(jié)構(gòu)工程師需要對體系結(jié)構(gòu)中的每—個元素進(jìn)行分析,因此會造成變更影響爆炸從而忽略真正受影響的體系結(jié)構(gòu)元素。

      在絕大多數(shù)軟件,尤其是安全關(guān)鍵的嵌入式軟件中,需求變更影響分析有著重要的意義。很多重大的事故都是由于在軟件系統(tǒng)的開發(fā)過程中,受變更影響的AE無法被正確識別所導(dǎo)致的。

      綜上所述,保證受影響得AE正確識別是軟件開發(fā)過程中必不可少的。本文提出一種基于一階邏輯的需求變更影響分析方法,基于一階邏輯相關(guān)理論以及一階邏輯在需求間變更影響分析中的應(yīng)用,給出了一種基于變更場景的受影響AE的識別方法。

      具體章節(jié)安排如下:第1節(jié)介紹了需求到體系結(jié)構(gòu)變更影響分析的國內(nèi)外研究現(xiàn)狀;第2節(jié)介紹相關(guān)理論;第3節(jié)給出具體的方法說明;第4節(jié)用一個簡單的案例說明文中方法的可行性。

      1研究現(xiàn)狀

      目前,學(xué)術(shù)界對需求變更影響分析做了大量的研究。文獻(xiàn)[6]中,通過sysML需求圖描述系統(tǒng)的需求,通過sysML活動圖、塊圖、內(nèi)部塊圖和狀態(tài)圖描述系統(tǒng)的體系結(jié)構(gòu),利用一個靜態(tài)切片算法,從而達(dá)到需求變更影響分析的目的。Sunny Wong等人在文獻(xiàn)[7]中提供一種基于UML關(guān)系邏輯模型的需求變更影響分析方法。陳光穎等人在文獻(xiàn)[8]中基于謂詞邏輯和模型驅(qū)動方法,提供一種常見的需求間關(guān)系和需求到體系結(jié)構(gòu)的追蹤關(guān)系的形式化語義。Briand等人在文獻(xiàn)[9]中提供了一種基于UML用例圖的需求變更影響分析方法。

      2相關(guān)理論

      2.1基于一個需求描述定義的需求變更類型

      本文用到的一個需求描述模型,基于該描述模型,本文把需求描述為一個由屬性和約束條件構(gòu)成的二元組,其中每個需求必定有1個或以上的屬性,每個屬性必定有0個或以上的約束條件。根據(jù)這個描述模型,本文把變更分為如下幾種類型:增加需求、刪除需求、增加需求關(guān)系、刪除需求關(guān)系、更新需求關(guān)系、更新需求。

      其中前面5種變更類型是顯而易見,最后一種最為復(fù)雜,可分為如下表所示的6個子類型:刪除/增加“一個屬性”;刪除/增加一個“約束條件”;“更新”屬性/約束條件。

      2.2基于變更場景的變更影響規(guī)則

      定義:變更場景(change senafio):對于任意兩個需求之間,如果存在某種需求關(guān)系RLo對于這兩個需求中的任意—個需求引入任意一種變更類型CT,此時(shí)二元組構(gòu)成一種需求場景,一個確定的變更場景,必然會導(dǎo)致確定的變更影響。

      基于2.1中的變更類型以及它們在一階邏輯下的形式化語可以得出如表1所示的變更影響規(guī)則。

      3基于變更場景的受影響AE方法

      3.1重構(gòu)與領(lǐng)域變更

      本文基于變更的原理將需求變更分為重構(gòu)(refactoring)和領(lǐng)域變更(domain change),其中語義保留變更與重構(gòu)對應(yīng),語義修改變更與領(lǐng)域變更對應(yīng)。需求的重構(gòu)是指僅僅改善需求模型而不會改變整個系統(tǒng)的屬性;需求的領(lǐng)域變更是指需求變更會改變系統(tǒng)的屬性并且通常會改變滿足這條需求的體系結(jié)構(gòu)元素。例如:把一個需求R簡單的分解為R1,R2……Rn,這種變更即為重構(gòu),因?yàn)檫@種變更并沒有改變整個系統(tǒng)的屬性,例如為需求R添加一個屬性pt。

      3.2基于變更類型的受影響AE識別

      基于第2節(jié)中的變更類型,可以把受影響的AE是識別分為四大類:

      (1)對于變更類型為“增加需求關(guān)系”“刪除需求關(guān)系”“更新需求關(guān)系”的受影響AE的識別:如果變更類型為上述三種,那么滿足變更需求的AE不會受到影響,因?yàn)檫@三種類型的需求變更屬于重構(gòu),不會改變需求模型中的屬性。

      (2)對于變更類型為“為需求增加一個屬性”的受影響AE的識別:如果添加的屬性是新的系統(tǒng)屬性,即之前的需求模型中不存在的屬性,那么滿足變更需求的AE必然會受到影響;如果添加的屬性不是一個新的系統(tǒng)屬性,那么滿足變更需求的AE不會受到影響,因?yàn)閷π枨蟮拿枋鲋胁]有對已存在的屬性和添加的屬性之間的顯式依賴關(guān)系的描述,所以很多情況無法自動識別添加的屬性是否是一個新的屬性,此時(shí)就不能確定滿足變更需求的AE是否受到影響,這種情況需要通過體系結(jié)構(gòu)工程師來分析。

      (3)對于變更類型為“增加需求”的受影響AE的識別:如果添加的需求中引入了新的系統(tǒng)屬性,那么滿足變更需求的AE必然會受到影響。如果添加的需求中沒有引入新的系統(tǒng)屬性,那么滿足變更需求的AE不會受到影響。

      (4)除上述(1)(2)(3)中的需求變更,其他需求變更類型“刪除需求”“更新需求(不包括為需求增加一個屬性)”會更新需求模型中的屬性,因此滿足更新的屬性的體系結(jié)構(gòu)元素會受到影響,變更的需求中某些屬性有可能未更新,因此滿足未更新的屬性的體系結(jié)構(gòu)元素不會受到影響,可以通過在需求模型中遍歷變更的傳播路徑來確定是否有未受影響的屬性集,如果有,確定受影響的屬性的最小集。然后在確定受影響的體系結(jié)構(gòu)元素。

      3_3基于變更類型的受影響AE識別算法

      對于受影響的AE的識別,本文給出一個算法來實(shí)現(xiàn)該函數(shù)。如圖1為算法概述。

      如圖2為算法流程圖。

      判定條件1:變更類型為“增加需求關(guān)系”“刪除需求關(guān)系”“更新需求關(guān)系”;

      判定條件2:變更類型為“新增需求”;

      判定條件3:已有需求和新增需求之間存在“refines”“partially refines”“contains”關(guān)系;

      判定條件4:新增需求和已有需求之間存在“requires”“required”“refines”“partially refines”關(guān)系;

      判定條件5:變更類型為“為已有需求增加一個屬性”;

      判定條件6:增加的屬性是一個全新的,之前不存在的系統(tǒng)屬性。

      對于該算法,如果變更類型不屬于判定條件1,2,5中的任意一種,則基于圖3中的遍歷規(guī)則調(diào)用算法1中的traverse PmpagalionPath函數(shù),得到受影響的AE。

      算法1:受影響的AE識別算法,如圖3。

      4案例分析

      我們通過RPM(遠(yuǎn)程病患監(jiān)護(hù)系統(tǒng))中的兩個需求來說明本文方法的可行陛:

      有以下需求R1和R2:

      R1:系統(tǒng)應(yīng)該通過傳感器把測量到的患者的血壓存儲到系統(tǒng)的存儲器中。

      R2:系統(tǒng)應(yīng)該通過傳感器把測量到的患者的中心靜脈壓存儲到系統(tǒng)的存儲器中。

      對于上述關(guān)系,存在R2 refines R1,現(xiàn)在引入需求變更:除了測量中心靜脈壓之外,還需測量肺動脈壓。添加需求R3:

      R3:系統(tǒng)應(yīng)該通過傳感器把測量到的患者的肺動脈壓存儲到系統(tǒng)的存儲器中。

      對于上述關(guān)系,存在R3 refines R1,則需求R3必定對滿足R1的AE產(chǎn)生影響,證明如圖4所示。

      5總結(jié)與展望

      本文基于一階邏輯相關(guān)理論以及一階邏輯在需求問變更影響分析中的應(yīng)用,定義了變更場景,并基于需求問變更影響分析規(guī)則,提供了一種對影響的AE識別分類方法,給出了相應(yīng)的算法。

      但本文依然存在很多不足,首先本文的方法僅支持識別受變更影響的體系結(jié)構(gòu)元素模型,不支持變更在體系結(jié)構(gòu)中的傳播,即本文的方法只能是被受影響的體系結(jié)構(gòu)元素,無法通過體系結(jié)構(gòu)中引入變更并傳播變更來對體系結(jié)構(gòu)進(jìn)行更改以解決體系結(jié)構(gòu)元素不滿足變更后的需求的問題。另一方面,在某些特定的情況下,本文的方法存在局限性,例如當(dāng)變更類型為“增加一個需求”時(shí),系統(tǒng)原有的需求中必須要有與新增需求有關(guān)系的需求,否則變更影響分析算法無法執(zhí)行,即無法對該變更場景進(jìn)行變更影響分析。

      福州市| 叙永县| 旬阳县| 江西省| 黄骅市| 天气| 新沂市| 徐州市| 大余县| 溧阳市| 金坛市| 额敏县| 肇州县| 永春县| 华安县| 梧州市| 怀仁县| 荣成市| 琼海市| 仲巴县| 天镇县| 乡城县| 清原| 绥江县| 曲麻莱县| 和龙市| 宿松县| 汶上县| 将乐县| 江津市| 广州市| 高安市| 天等县| 香河县| 南安市| 昌黎县| 玉山县| 云梦县| 新民市| 建湖县| 日照市|