• 
    

    
    

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

      基于SysML模型的需求建模及測(cè)試方法

      2021-05-13 02:19:40左萬(wàn)娟陳華南王小麗
      關(guān)鍵詞:狀態(tài)機(jī)性能指標(biāo)指令

      黃 晨,于 倩,左萬(wàn)娟,陳華南,王小麗

      (1. 北京控制工程研究所,北京 100190; 2. 北京軒宇信息技術(shù)有限公司,北京 100190)

      航天領(lǐng)域星船系統(tǒng)受限于資源的局限性,大多數(shù)系統(tǒng)為嵌入式系統(tǒng),嵌入式系統(tǒng)具有強(qiáng)實(shí)時(shí)性等特點(diǎn),對(duì)系統(tǒng)時(shí)序的要求和限制非常嚴(yán)格,部分設(shè)計(jì)受限于系統(tǒng)硬件資源,需要軟硬件協(xié)同高效配合來保證系統(tǒng)的正確性,系統(tǒng)的任務(wù)執(zhí)行時(shí)間、 功能的計(jì)算時(shí)間、 響應(yīng)時(shí)間等都是通過時(shí)間約束來保證[1],因此時(shí)間性能指標(biāo)的測(cè)試是系統(tǒng)測(cè)試非常重要的一項(xiàng)測(cè)試內(nèi)容. 在測(cè)試時(shí),應(yīng)考慮和測(cè)試各種場(chǎng)景的系統(tǒng)運(yùn)行情況,如系統(tǒng)負(fù)載最大,多任務(wù)并發(fā)訪問,執(zhí)行路徑深度最大等等. 傳統(tǒng)的嵌入式系統(tǒng)測(cè)試都是采用非形式化的需求規(guī)格說明,由人工進(jìn)行分析后形成非形式化的自然語(yǔ)言描述的需求,這種方式成本較低,但是容易產(chǎn)生歧義,不容易發(fā)現(xiàn)需求遺漏,很多問題通常是在設(shè)計(jì)、 測(cè)試的后期才能發(fā)現(xiàn). 基于模型的測(cè)試方法通過測(cè)試左移,能夠更早地發(fā)現(xiàn)系統(tǒng)設(shè)計(jì)、 需求分析中存在的問題,以及不完整性、 模糊性和不一致性[2]. 使用建模語(yǔ)言進(jìn)行需求建模,能夠?qū)⒊橄髷?shù)學(xué)模型轉(zhuǎn)化為易于理解和可以描述的通用性語(yǔ)言,如UML統(tǒng)一建模語(yǔ)言[3],Perit網(wǎng)[4]等. 系統(tǒng)大部分功能都可以采用建模的方式進(jìn)行描述,再通過形式化的方法驗(yàn)證模型的正確性[5,6],并根據(jù)模型自動(dòng)生成測(cè)試用例[7]. 基于UML的狀態(tài)機(jī)圖、 活動(dòng)圖、 時(shí)序圖等各種圖形化的建模語(yǔ)言已經(jīng)在系統(tǒng)需求分析中得到廣泛應(yīng)用,文獻(xiàn)[8]采用SysML狀態(tài)圖表示系統(tǒng)的行為模型,通過體系結(jié)果和業(yè)務(wù)需求對(duì)行為模型進(jìn)行驗(yàn)證. 為實(shí)現(xiàn)基于模型的測(cè)試有效投入工程應(yīng)用,需要建立能夠覆蓋嵌入式系統(tǒng)各項(xiàng)測(cè)試類型的需求模型,本文用建模的方式描述系統(tǒng)的運(yùn)行場(chǎng)景和需求,針對(duì)與時(shí)間相關(guān)性能指標(biāo)的模型給出分析方法,說明應(yīng)如何分析和建模,基于多種覆蓋準(zhǔn)則可由模型自動(dòng)生成性能測(cè)試的用例集,以滿足性能測(cè)試要求.

      1 建模語(yǔ)言及表示方法

      1.1 SysML建模語(yǔ)言

      目前,從建模語(yǔ)言的表示形式大致可以分為3種類型: 非形式化、 半形式化、 形式化. 非形式化方法是指采用自然語(yǔ)言描述的方法,這種方法描述系統(tǒng)需求相對(duì)比較簡(jiǎn)單,但是如果描述不清楚,會(huì)存在二義性,并且容易遺漏需求; 半形式化方法是一種受限制的描述方法,采用自然語(yǔ)言加特定的符號(hào)進(jìn)行描述,可以是一種帶有受限制句子結(jié)構(gòu)和具有特殊意義的關(guān)鍵字的自然語(yǔ)言或圖表. 這種方法相對(duì)于自然語(yǔ)言更加形式化; 形式化方法是一種基于數(shù)學(xué)的形式化描述語(yǔ)言,優(yōu)點(diǎn)是能夠提高描述的正確性,減少二義性和不一致性,增強(qiáng)可讀性,缺點(diǎn)是表示極為復(fù)雜. 系統(tǒng)建模語(yǔ)言SysML(Systems Modeling Language)是目前國(guó)際上系統(tǒng)工程領(lǐng)域最新的標(biāo)準(zhǔn)建模語(yǔ)言,是統(tǒng)一建模語(yǔ)言UML在系統(tǒng)工程領(lǐng)域的延伸和擴(kuò)展,是一種半形式化的圖形建模語(yǔ)言,使用自然語(yǔ)言描述約束和詳細(xì)語(yǔ)義,是對(duì)象管理組織OMG在對(duì)UML2.5的子集進(jìn)行重用和擴(kuò)展的基礎(chǔ)上,針對(duì)系統(tǒng)工程領(lǐng)域中系統(tǒng)設(shè)計(jì)與建模的特點(diǎn),提供了可視化、 圖形化的系統(tǒng)建模支持語(yǔ)言,廣泛應(yīng)用于復(fù)雜系統(tǒng)建模,涵蓋了從系統(tǒng)需求到設(shè)計(jì)階段的各項(xiàng)要求,廣泛運(yùn)用于航空航天軟件開發(fā)過程[9]. 基于MOF定義的4層元模型結(jié)構(gòu),SysML建模語(yǔ)言位于元模型層,在元模型層定義的抽象語(yǔ)法的基礎(chǔ)上,定義了模型描述語(yǔ)言的模型,提供了表達(dá)系統(tǒng)的各種包、 模型元素的定義類型、 標(biāo)記值和約束等,它與特定的應(yīng)用領(lǐng)域有關(guān). 元模型為SysML的所有元素在語(yǔ)法和語(yǔ)義上提供了簡(jiǎn)單、 一致、 通用的定義性說明,使開發(fā)在語(yǔ)義上取得一致,在一定程度上消除了人為表達(dá)方式所造成的影響[10]. 通過ISO-AP233數(shù)據(jù)交換標(biāo)準(zhǔn)和XMI模型交換標(biāo)準(zhǔn),語(yǔ)法上支持各種系統(tǒng)工程工具之間的互操作[11]. SysML為系統(tǒng)提供定了4種類型模型和9種圖的完整語(yǔ)義. 4種類型是: 結(jié)構(gòu)模型、 行為模型、 需求模型和參數(shù)模型; 9種圖是: 模塊定義圖、 內(nèi)部模塊圖、 包圖、 活動(dòng)圖、 序列圖、 用例圖、 狀態(tài)機(jī)圖、 參數(shù)圖和需求圖. 結(jié)構(gòu)模型強(qiáng)調(diào)系統(tǒng)的層次以及對(duì)象之間的相互連接關(guān)系,包括類和裝配. 行為模型強(qiáng)調(diào)系統(tǒng)中對(duì)象的行為,包括它們的活動(dòng)、 交互和狀態(tài)歷史. 需求模型強(qiáng)調(diào)需求之間的追溯關(guān)系以及設(shè)計(jì)對(duì)需求的滿足關(guān)系. 參數(shù)模型強(qiáng)調(diào)系統(tǒng)或部件的屬性之間的約束關(guān)系.

      1.2 狀態(tài)機(jī)圖

      狀態(tài)機(jī)圖主要描述一個(gè)特定對(duì)象的所有可能狀態(tài)以及由于各種事件的發(fā)生而引起的狀態(tài)之間的轉(zhuǎn)移. 可以清晰描述對(duì)象之間是如何交互和通信的,尤其是通信發(fā)送消息的時(shí)間關(guān)系非常清晰. 狀態(tài)機(jī)圖有一個(gè)或多個(gè)狀態(tài),零個(gè)或多個(gè)轉(zhuǎn)移組成. 狀態(tài)和轉(zhuǎn)移描述了一個(gè)對(duì)象在其生命周期里的行為. 狀態(tài)是對(duì)象生命周期中的一個(gè)條件或狀況,在此期間對(duì)象滿足某些條件,執(zhí)行某些活動(dòng)或等待某些事件. 狀態(tài)機(jī)圖是Harel的經(jīng)典狀態(tài)圖的變體,狀態(tài)機(jī)圖的處理原則是,在下一個(gè)時(shí)間處理之前,必須保證上一個(gè)事件已經(jīng)被處理完畢; 當(dāng)發(fā)生轉(zhuǎn)移沖突時(shí)遵循底層優(yōu)先的策略,轉(zhuǎn)移所在層次越低,執(zhí)行優(yōu)先級(jí)越高[12].

      1.2.1 抽象語(yǔ)法

      本文所指的狀態(tài)機(jī)為行為狀態(tài)機(jī),通過類圖的方式表示狀態(tài)機(jī)類元之間的關(guān)系,用來描述狀態(tài)機(jī)圖的抽象語(yǔ)法. 狀態(tài)機(jī)類元包括: 狀態(tài)機(jī)、 區(qū)域、 節(jié)點(diǎn)、 轉(zhuǎn)移、 觸發(fā)、 約束、 參考連接點(diǎn)、 偽狀態(tài)、 狀態(tài)、 行為等,這些類元之間存在的關(guān)系包括: 關(guān)聯(lián)、 繼承、 復(fù)合等.

      圖1 狀態(tài)機(jī)類元抽象語(yǔ)法

      1.2.2 圖元符號(hào)及含義[12]

      對(duì)狀態(tài)機(jī)圖的基本圖元語(yǔ)義進(jìn)行解釋說明.

      1) 狀態(tài)(State)

      是指在對(duì)象的生命期中的一個(gè)條件或狀況,在此期間對(duì)象將滿足某些條件、 執(zhí)行某些動(dòng)作或等待某些事件.

      每個(gè)狀態(tài)可以沒有或者由多個(gè)活動(dòng)組成,這些活動(dòng)都是非原子活動(dòng),在執(zhí)行過程中可被中斷,可以表示為

      〈behavior-type〉[′ /′〈behavior-expression〉],

      (1)

      其中,behavior-type行為類型是行為發(fā)生的場(chǎng)景,有3種:

      entry: 進(jìn)入當(dāng)前狀態(tài)時(shí)執(zhí)行的動(dòng)作;

      do: 在當(dāng)前狀態(tài)下,一個(gè)持續(xù)進(jìn)行的動(dòng)作或行為,或者特定表達(dá)式;

      exit: 退出當(dāng)前狀態(tài)時(shí)執(zhí)行的動(dòng)作.

      狀態(tài)可以分為3類: 簡(jiǎn)單狀態(tài)、 復(fù)合狀態(tài)和子機(jī)狀態(tài).

      簡(jiǎn)單狀態(tài)(simple State)是指其中沒有嵌套狀態(tài)的狀態(tài),可以分為3個(gè)分區(qū): 命名分區(qū)、 內(nèi)部行為分區(qū)和內(nèi)部轉(zhuǎn)移分區(qū).

      復(fù)合狀態(tài)(composite State): 至少包括一個(gè)區(qū)域,可以是只有一個(gè)區(qū)域的簡(jiǎn)單復(fù)合狀態(tài),可以是具有多個(gè)區(qū)域的正交狀態(tài).

      子機(jī)狀態(tài)(submachine State): 指的是整個(gè)狀態(tài)機(jī),認(rèn)為它是在狀態(tài)中嵌套的.

      2) 偽狀態(tài)(PseudoState)

      偽狀態(tài)是指包含多種類型暫態(tài)節(jié)點(diǎn)的抽象概念. 偽狀態(tài)主要用于連接多個(gè)轉(zhuǎn)移組成更加復(fù)雜的復(fù)合轉(zhuǎn)移. 偽狀態(tài)包含多種類型,有初始狀態(tài)、 終止?fàn)顟B(tài)、 淺歷史狀態(tài)、 深歷史狀態(tài)、 分叉、 合并、 選擇、 連接、 進(jìn)入點(diǎn)、 退出點(diǎn)、 終止[13].

      3) 轉(zhuǎn)移(Transition)

      狀態(tài)機(jī)模型中的轉(zhuǎn)移元素屬于非常重要的元素之一. 是兩個(gè)狀態(tài)之間的一種關(guān)系,它指明對(duì)象在第一個(gè)狀態(tài)中執(zhí)行一定的動(dòng)作,并當(dāng)特定事件發(fā)生或特定的條件滿足時(shí)進(jìn)入第二個(gè)狀態(tài),轉(zhuǎn)移描述了一個(gè)或者多個(gè)狀態(tài)之間是如何發(fā)生轉(zhuǎn)換的. 轉(zhuǎn)移也存在優(yōu)先級(jí),轉(zhuǎn)移可以沒有或者有多個(gè)事件,一個(gè)事件對(duì)應(yīng)一個(gè)觸發(fā),觸發(fā)能夠?qū)е聽顟B(tài)的轉(zhuǎn)移. 連接源狀態(tài)和目標(biāo)狀態(tài)之間的弧線就是轉(zhuǎn)移,可以表示為如下形式

      {〈trigger〉}*[′ [′〈guard〉′]′]

      [/〈behavior-expression〉] ,

      (2)

      其中,trigger是觸發(fā)事件,表示在時(shí)間和空間上占有一定位置的有意義的事件. 轉(zhuǎn)移可以沒有觸發(fā)事件或者有多個(gè)事件. 分為4類: 信號(hào)事件(信號(hào)用于對(duì)象間異步傳遞的信息包,它沒有任何操作,只有自身攜帶的信息,通過信號(hào)來觸發(fā),有接收信號(hào)事件和發(fā)送信號(hào)事件)、 調(diào)用事件(請(qǐng)求在類語(yǔ)境的實(shí)例上調(diào)用特定的操作)、 時(shí)間事件(相對(duì)時(shí)間關(guān)鍵字after說明事件被觸發(fā)的臨界時(shí)間,絕對(duì)時(shí)間關(guān)鍵字at)和改變事件(關(guān)鍵字when說明事件改變所滿足的條件). 多個(gè)觸發(fā)事件時(shí)間采用‘,’進(jìn)行連接.

      guard表示守護(hù)條件,是一個(gè)布爾表達(dá)式,如果表達(dá)式值為真,則轉(zhuǎn)換可以發(fā)生; 如果表達(dá)式為假,則轉(zhuǎn)換不能發(fā)生. 每一個(gè)轉(zhuǎn)移可以沒有或者有多個(gè)守衛(wèi)條件.

      behavior-expression表示由匹配觸發(fā)的事件和守衛(wèi)條件滿足后發(fā)生的事件所造成的特定影響,是一個(gè)行為表達(dá)式,可以不寫.

      轉(zhuǎn)移有3種類型: 外部轉(zhuǎn)移,局部轉(zhuǎn)移和內(nèi)部轉(zhuǎn)移.

      外部轉(zhuǎn)移: 指轉(zhuǎn)移從其源頂點(diǎn)退出,如果頂點(diǎn)為狀態(tài)時(shí),轉(zhuǎn)移的發(fā)生會(huì)導(dǎo)致執(zhí)行相關(guān)狀態(tài)的退出動(dòng)作.

      局部轉(zhuǎn)移: 與外部轉(zhuǎn)移相反,轉(zhuǎn)移不會(huì)從包含它的狀態(tài)中退出,轉(zhuǎn)移發(fā)生時(shí)包含局部轉(zhuǎn)移的狀態(tài)的退出動(dòng)作不會(huì)執(zhí)行,但是,局部轉(zhuǎn)移的源頂點(diǎn)和目標(biāo)頂點(diǎn)不能相同,只能應(yīng)用于復(fù)合狀態(tài).

      內(nèi)部轉(zhuǎn)移: 是局部轉(zhuǎn)移的一種特殊情況,也叫作自轉(zhuǎn)移,具有相同的源頂點(diǎn)和目標(biāo)頂點(diǎn). 當(dāng)這種轉(zhuǎn)移執(zhí)行時(shí),不會(huì)執(zhí)行入口和出口動(dòng)作. 內(nèi)部轉(zhuǎn)移只能用于狀態(tài)頂點(diǎn).

      1.2.3 形式化語(yǔ)義

      在此采用形式化方法定義狀態(tài)機(jī)語(yǔ)法,狀態(tài)機(jī)多元組表示為[14]

      STD=(S,B,ε,V,P,N,X,D,subStates,T),

      (3)

      其中,S表示狀態(tài)的集合,包括偽狀態(tài);B表示行為描述的集合;ε表示事件的集合;V={V1,…VNv}表示Nv(Nv∈Ν)變量的集合;P:S→Pr將每個(gè)狀態(tài)關(guān)聯(lián)上屬性Pr={簡(jiǎn)單非終止?fàn)顟B(tài),復(fù)合狀態(tài),終止?fàn)顟B(tài),初始狀態(tài),歷史狀態(tài)};N∶S→((B∪{?})×List(F))將每個(gè)狀態(tài)關(guān)聯(lián)入口行為;F表示對(duì)應(yīng)變量V的指定函數(shù)列表;X∶S→((B∪{?})×List(F)關(guān)聯(lián)退出行為的狀態(tài);D∶S→((B∪{?})×List(F))關(guān)聯(lián)do行為的狀態(tài);subStates:S→2s關(guān)聯(lián)每個(gè)狀態(tài)直接子狀態(tài)的集合;T表示狀態(tài)轉(zhuǎn)移t的集合,t=(S1,e,g,(b,f),sLevel,S2).S1,S2?S,分別表示源狀態(tài)和目標(biāo)狀態(tài),約束限制條件為:S1和S2僅包含一個(gè)狀態(tài)(兩個(gè)狀態(tài)之間的轉(zhuǎn)移),或者超過1個(gè)狀態(tài)(合并和分叉轉(zhuǎn)移); 如果S1或者S2包含超過一個(gè)狀態(tài),復(fù)合狀態(tài)不同區(qū)域的直接子狀態(tài)必須要有一個(gè)直接子狀態(tài),復(fù)合狀態(tài)不能有比狀態(tài)還要多的區(qū)域個(gè)數(shù);e∈ε∪{noEvent},noEvent表示沒有觸發(fā)事件的轉(zhuǎn)移;g是守衛(wèi)條件,表示V中變量的布爾表達(dá)式; (b,f)∈((B∪{?})×List(F))表示觸發(fā)轉(zhuǎn)移后會(huì)執(zhí)行的行為動(dòng)作;sLevel∈S為包含轉(zhuǎn)移的狀態(tài)優(yōu)先級(jí),屬于S1∪S2的任意狀態(tài),都屬于sLevel的子狀態(tài).

      2 需求建模及用例生成

      在工程應(yīng)用中,性能測(cè)試是嵌入式系統(tǒng)測(cè)試過程中必測(cè)的、 非常重要的一個(gè)測(cè)試類型,各項(xiàng)性能指標(biāo)的確定與系統(tǒng)設(shè)計(jì)要求緊密結(jié)合,功能中如果涉及到時(shí)間相關(guān)指標(biāo)要求的,應(yīng)作為性能指標(biāo)進(jìn)行測(cè)試,并分析系統(tǒng)的設(shè)計(jì)是否滿足時(shí)間設(shè)計(jì)要求. 嵌入式系統(tǒng)軟件任務(wù)正常執(zhí)行過程中被外部中斷事件打斷的場(chǎng)景、 看門狗喂狗最長(zhǎng)時(shí)間間隔的測(cè)試、 某系統(tǒng)初始化時(shí)間最大值的測(cè)試、 以及隱含性能需求等,都應(yīng)作為性能指標(biāo)進(jìn)行測(cè)試.

      2.1 測(cè)試要求

      嵌入式系統(tǒng)的性能指標(biāo)一般包括以下幾方面測(cè)試要求:

      1) 時(shí)間間隔: 是指系統(tǒng)在進(jìn)行兩個(gè)處理操作之間需要保證的時(shí)間間隔. 嵌入式系統(tǒng)一般存在設(shè)計(jì)下限或者上限的指標(biāo)要求.

      2) 處理時(shí)間: 系統(tǒng)進(jìn)行某個(gè)處理或者某一系列操作的時(shí)間要求. 嵌入式系統(tǒng)受限于軟件嚴(yán)格的時(shí)序設(shè)計(jì),如果處理時(shí)間超過限制,會(huì)導(dǎo)致后續(xù)處理不及時(shí),丟失外部指令等情況發(fā)生. 對(duì)于并發(fā)訪問時(shí)也需要通過嚴(yán)格的時(shí)序設(shè)計(jì)保證系統(tǒng)運(yùn)行的正確性,因此也存在類似的指標(biāo)要求,例如中斷函數(shù)處理時(shí)間的要求.

      3) 響應(yīng)時(shí)間: 是指從接收到某個(gè)事件,到做出反應(yīng)的時(shí)間. 要求能及時(shí)反應(yīng)外部事件的請(qǐng)求,在規(guī)定時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)設(shè)備和實(shí)時(shí)任務(wù),協(xié)調(diào)一致地運(yùn)行.

      2.2 測(cè)試方法

      目前,嵌入式軟件時(shí)間性能指標(biāo)的測(cè)試通常是采用代碼插樁和人工分析相結(jié)合的方式,系統(tǒng)運(yùn)行受限于當(dāng)前運(yùn)行工況和場(chǎng)景,代碼執(zhí)行的路徑無(wú)法完全確定和預(yù)知,很多時(shí)候需要統(tǒng)計(jì)軟件在最深的執(zhí)行路徑或最大強(qiáng)度負(fù)載情況下的運(yùn)行情況,或者統(tǒng)計(jì)所有工況下的某段時(shí)間性能實(shí)測(cè)值,取多次測(cè)試的最大值、 最小值或者平均值作為實(shí)際測(cè)試結(jié)果.

      采用圖形化的建模語(yǔ)言、 描述方式能夠非常清晰,明確的表示需求的物理意義和處理邏輯. 在測(cè)試系統(tǒng)性能時(shí),分析方法如下:

      1) 時(shí)間間隔測(cè)試: 狀態(tài)機(jī)模型中的時(shí)間類型事件需要作為時(shí)間性能指標(biāo)進(jìn)行測(cè)試,所建立的需求模型中存在after(x)的時(shí)間類型轉(zhuǎn)移事件,均應(yīng)作為性能指標(biāo)測(cè)試,如果出現(xiàn)when,at等事件類型的關(guān)鍵字時(shí),也需要注意是否需要作為性能指標(biāo)進(jìn)行測(cè)試.

      2) 處理時(shí)間測(cè)試: 可以統(tǒng)計(jì)測(cè)量連續(xù)兩次發(fā)生同一個(gè)狀態(tài)的時(shí)間間隔或者處理時(shí)間.

      3) 響應(yīng)時(shí)間測(cè)試: 構(gòu)造極限和極大強(qiáng)度負(fù)載運(yùn)行場(chǎng)景,測(cè)試軟件響應(yīng)某個(gè)事件的響應(yīng)延遲時(shí)間.

      2.3 用例生成

      根據(jù)建立的性能需求狀態(tài)機(jī)模型,提取其中生成測(cè)試用例所需的信息,生成測(cè)試用例. 首先生成抽象測(cè)試操作序,再將抽象路徑與時(shí)間或者狀態(tài)、 操作關(guān)鍵字、 數(shù)據(jù)等進(jìn)行關(guān)聯(lián),生成實(shí)際的測(cè)試用例. 根據(jù)轉(zhuǎn)移上的事件作為測(cè)試輸入,狀態(tài)中執(zhí)行的動(dòng)作作為預(yù)期輸出,建立從需求到用例設(shè)計(jì)的對(duì)應(yīng)關(guān)系.

      生成的抽象測(cè)試序的完備性決定了測(cè)試用例覆蓋的充分性,基于狀態(tài)機(jī)圖生成的操作序需要保證狀態(tài)覆蓋、 轉(zhuǎn)換覆蓋和路徑全覆蓋.

      將狀態(tài)機(jī)圖中的狀態(tài)用數(shù)字進(jìn)行編號(hào),轉(zhuǎn)移用小寫英文字母編號(hào),選取一條典型路徑,可以表示為1(a)2(b)3(d)4(e)1.

      圖2 抽象序列執(zhí)行路徑示意圖Fig.2 Abstract sequence execution path diagram

      建立的模型如果是多層、 并發(fā)等更為復(fù)雜的情況下,通過人工方式篩選可達(dá)路徑也容易存在遺漏造成測(cè)試不充分,可通過靜態(tài)的數(shù)據(jù)篩選方式,生成所有可執(zhí)行路徑,以保證各項(xiàng)測(cè)試的完備性和充分性.

      3 建模實(shí)例分析

      根據(jù)嵌入式系統(tǒng)的性能指標(biāo)要求,采用建模的方式對(duì)性能需求進(jìn)行描述.

      3.1 時(shí)間間隔測(cè)試

      需求描述: 某接口芯片采集模擬量為12 b AD芯片,芯片量程為0 V~10 V,數(shù)據(jù)轉(zhuǎn)換最大時(shí)間為35 μs. 片選地址為XXH,AD轉(zhuǎn)換啟動(dòng)地址為XXH,寫0表示啟動(dòng)AD轉(zhuǎn)換. 數(shù)據(jù)采集地址為XXH(8位有效,為采集12位數(shù)據(jù)的高8位)和(XX+1)H(高4位有效,為采集12位數(shù)據(jù)的低4位).

      每路采集處理的過程如下:

      A. 選通片選,向模擬選通地址XXH寫入片選信號(hào);

      B. 通過地址XXH或P口設(shè)置通道號(hào);

      C. 向地址XXH寫入0,啟動(dòng)AD轉(zhuǎn)換器;

      D. 等待一段時(shí)間35 μs轉(zhuǎn)換完成后,先從地址XXH讀取高8位結(jié)果、 讀取地址(XX+1)H內(nèi)容高4位作為采集數(shù)據(jù)的低4位,拼接成12位有效數(shù)據(jù)作為采集結(jié)果.

      E. 對(duì)AD采集數(shù)據(jù)進(jìn)行補(bǔ)償處理,連續(xù)采集多次后進(jìn)行濾波.

      分析: 上述需求中要求從啟動(dòng)AD轉(zhuǎn)換到轉(zhuǎn)換完成需要等待一段時(shí)間,約35 μs,軟件再讀取采集數(shù)據(jù),保證AD芯片從接收到啟動(dòng)信號(hào)到轉(zhuǎn)換完成有充足的時(shí)間.

      性能指標(biāo)要求: 從啟動(dòng)AD轉(zhuǎn)換到開始采集AD數(shù)據(jù)之間的等待時(shí)間需要大于35 μs. 建立需求模型如圖3 所示.

      圖3 時(shí)間間隔需求模型Fig.3 Time interval requirement model

      測(cè)試場(chǎng)景: 測(cè)試軟件正常采集數(shù)據(jù)下,軟件兩個(gè)操作(向地址XXH寫入0,讀取地址XXH,(XX+1)H數(shù)據(jù))之間的時(shí)間間隔最小值是否大于35 μs.

      3.2 處理時(shí)間測(cè)試

      受限于系統(tǒng)嚴(yán)格的時(shí)序控制,某段功能或者代碼的執(zhí)行時(shí)間需要滿足一定的設(shè)計(jì)要求才能保證執(zhí)行邏輯的正確性.

      需求描述: 周期性觸發(fā)某外部中斷周期為100 ms,中斷服務(wù)子程序中設(shè)置遙測(cè)數(shù)據(jù)組織標(biāo)志為真,看主程序中周期性進(jìn)行判斷數(shù)據(jù)組織標(biāo)志是否為真,是則進(jìn)行遙測(cè)數(shù)據(jù)組織并發(fā)送,否則不組織發(fā)送.

      分析: 軟件按照一定的時(shí)間間隔周期性執(zhí)行主程序,如果主程序執(zhí)行處理時(shí)間超過中斷的觸發(fā)周期,主程序還未及時(shí)處理中斷設(shè)置的遙測(cè)數(shù)據(jù)組織標(biāo)志就接收到新的遙測(cè)數(shù)據(jù)組織標(biāo)志,會(huì)導(dǎo)致少進(jìn)行一次遙測(cè)數(shù)據(jù)組織發(fā)送.

      性能指標(biāo)要求: 主程序執(zhí)行時(shí)間應(yīng)小于100 ms. 選取主程序執(zhí)行過程中的某個(gè)狀態(tài),建立需求模型如圖4 所示.

      圖4 處理時(shí)間需求模型Fig.4 Processing time demand model

      主程序執(zhí)行一次有可能會(huì)經(jīng)歷不同的場(chǎng)景和狀態(tài),圖4 的性能指標(biāo)需要測(cè)試的是主程序的最大執(zhí)行路徑,可以選擇狀態(tài)變化最多,或者選擇最為耗時(shí)的一個(gè)遷移狀態(tài)機(jī)作為當(dāng)前性能測(cè)試的模型,也可以將主程序所有功能的狀態(tài)機(jī)圖,統(tǒng)計(jì)所有用例中相鄰兩個(gè)周期進(jìn)入同一個(gè)狀態(tài)的時(shí)間間隔作為主程序的處理時(shí)間.

      測(cè)試場(chǎng)景: 制造主程序執(zhí)行過程中計(jì)算算法耗時(shí)最長(zhǎng),狀態(tài)轉(zhuǎn)移最多的場(chǎng)景,測(cè)試主程序連續(xù)兩次進(jìn)入同一個(gè)狀態(tài),執(zhí)行同一個(gè)操作的最大時(shí)間是否小于100 ms.

      3.3 響應(yīng)時(shí)間測(cè)試

      在測(cè)試時(shí)間最大值時(shí),很難保證測(cè)試的場(chǎng)景是一條最大路徑,采用建模的方式能夠更容易分析所加負(fù)載最多的一條路徑是怎么觸發(fā)的,從而測(cè)試最長(zhǎng)響應(yīng)時(shí)間的測(cè)試場(chǎng)景.

      需求描述: 軟件接收到某條指令并及時(shí)處理該條指令.

      分析: 軟件通過中斷接收指令,將指令放入隊(duì)列緩存區(qū),或者按照優(yōu)先級(jí)排序,按照隊(duì)列的指令順序依次執(zhí)行或者按照隊(duì)列中的指令優(yōu)先級(jí)排序,優(yōu)先執(zhí)行高優(yōu)先級(jí)指令.

      性能指標(biāo)要求: 軟件從接收指令到響應(yīng)執(zhí)行該指令需要保證在50 ms以內(nèi),否則,50 ms后接收到新的指令后,如果指令隊(duì)列長(zhǎng)度有限,會(huì)回卷覆蓋之前的指令,導(dǎo)致舊的指令未執(zhí)行就被新的指令覆蓋. 建立需求模型如圖5 所示.

      圖5 響應(yīng)時(shí)間需求模型Fig.5 Response time demand model

      從圖5 模型中可分析得到: 在接收到新指令時(shí),如果之前的指令隊(duì)列長(zhǎng)度最長(zhǎng)時(shí),會(huì)導(dǎo)致當(dāng)前新指令響應(yīng)時(shí)間最長(zhǎng).

      測(cè)試場(chǎng)景: 制造指令隊(duì)列長(zhǎng)度最大值的場(chǎng)景,并在該場(chǎng)景下發(fā)送指令x,測(cè)試從接收到指令x到執(zhí)行指令x之間的響應(yīng)時(shí)間最大值是否小于50 ms.

      4 結(jié)束語(yǔ)

      明確SysML狀態(tài)機(jī)抽象語(yǔ)法,圖元符號(hào)和含義,對(duì)嵌入式系統(tǒng)典型性能需求進(jìn)行測(cè)試,說明需求建模和用例生成方法,總結(jié)基于狀態(tài)機(jī)模型的3種性能指標(biāo)測(cè)試方法,通過實(shí)例化方法建立模型,描述性能需求場(chǎng)景. 從工程化的角度將狀態(tài)機(jī)模型應(yīng)用到實(shí)時(shí)嵌入式軟件測(cè)試過程中,覆蓋性能測(cè)試類型,未來還將繼續(xù)研究從狀態(tài)機(jī)模型中自動(dòng)提取各種測(cè)試類型的方法,保證測(cè)試覆蓋性,實(shí)現(xiàn)模型驅(qū)動(dòng)測(cè)試在航天領(lǐng)域的全面工程化應(yīng)用,提升測(cè)試自動(dòng)化程度.

      猜你喜歡
      狀態(tài)機(jī)性能指標(biāo)指令
      聽我指令:大催眠術(shù)
      瀝青膠結(jié)料基本高溫性能指標(biāo)相關(guān)性研究
      石油瀝青(2021年1期)2021-04-13 01:31:08
      基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
      ARINC661顯控指令快速驗(yàn)證方法
      LED照明產(chǎn)品歐盟ErP指令要求解讀
      儲(chǔ)熱水箱分層性能指標(biāo)的研究進(jìn)展
      WebGIS關(guān)鍵性能指標(biāo)測(cè)試技術(shù)研究
      磁共振成像儀主磁場(chǎng)計(jì)量性能指標(biāo)的選擇
      坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
      FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
      永吉县| 新津县| 高唐县| 专栏| 安阳市| 南开区| 南平市| 冕宁县| 伊金霍洛旗| 稻城县| 海淀区| 灵宝市| 罗甸县| 土默特右旗| 鹤山市| 广平县| 宁波市| 丰城市| 宁津县| 内江市| 日喀则市| 伊宁市| 石屏县| 葵青区| 彰化市| 宣恩县| 阳信县| 龙门县| 讷河市| 新巴尔虎右旗| 泰兴市| 蛟河市| 柏乡县| 开平市| 顺义区| 张掖市| 丰都县| 翁源县| 塔河县| 久治县| 巴东县|