国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

擴(kuò)展SysML支持需求追蹤模型的自動生成*

2019-06-19 12:34鄧劉夢沈國華黃志球葛曉瑜
計算機(jī)與生活 2019年6期
關(guān)鍵詞:配置文件制品建模

鄧劉夢,沈國華,2+,黃志球,2,王 飛,葛曉瑜

1.南京航空航天大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,南京 211106

2.軟件新技術(shù)與產(chǎn)業(yè)化協(xié)同創(chuàng)新中心,南京 210016

1 引言

在嵌入式系統(tǒng)開發(fā)生命周期中,開發(fā)者經(jīng)常會一次又一次地改變需求,而如何去捕獲這些改變對系統(tǒng)的影響往往是一項復(fù)雜的任務(wù)。此外,對于長生命周期的軟件,隨著時間的推移,為了引入新硬件或為了糾正現(xiàn)有的缺陷,對其進(jìn)行維護(hù)是必不可少的。對于安全關(guān)鍵系統(tǒng)而言,引入這些改變是尤為慎重的。例如,美國航空航天局等組織已經(jīng)設(shè)立了變更委員會,要求對變更進(jìn)行安全分析,并在委員會實施之前予以批準(zhǔn)[1]。因為在這樣的情況下,軟件變更可能會在部署變更之前觸發(fā)生命周期任務(wù)的重復(fù),包括需求分析、設(shè)計、代碼和測試的重復(fù)。能力成熟度集成模型(capability maturity model integration,CMMI)[2]明確地指出在開發(fā)過程中維護(hù)需求的可追蹤性及制品之間的可追蹤性是保障系統(tǒng)安全的重要前提[3]。ANSI/IEEE標(biāo)準(zhǔn)830—1984中首次提出了可追蹤性的概念,其早期主要被用于在功能上提高系統(tǒng)的可重用性。需求可追蹤性旨在管理需求鏈接和模型,可被定義為:“通過相關(guān)規(guī)范以及定義,朝著需求的起源或?qū)崿F(xiàn)這兩個方向,能夠描述和追蹤需求的整個生命周期”[4-5]。

在安全關(guān)鍵系統(tǒng)中,很多重大的失效都是由于系統(tǒng)需求在設(shè)計過程中沒有被精確和完整地追蹤而引起的,因此在開發(fā)過程中通常會使用特定開發(fā)標(biāo)準(zhǔn)對項目進(jìn)行要求[6],例如 DO-178B/C[7]、ISO 26262-6[8]、ECSS-E-40[9]等標(biāo)準(zhǔn)適用于航空航天、汽車醫(yī)療領(lǐng)域。這些標(biāo)準(zhǔn)詳細(xì)規(guī)定了系統(tǒng)開發(fā)生命周期中需要實現(xiàn)的目標(biāo)以保證軟件的安全性,而可追蹤性則是其中一個重要的目標(biāo)。例如:DO-178B就指出“對于某些關(guān)鍵程度的系統(tǒng),應(yīng)提供源碼到低級需求間的追蹤關(guān)系以及對于低級需求完全實現(xiàn)的驗證”。盡管缺乏追蹤關(guān)系的系統(tǒng)不一定會產(chǎn)生安全性事故,但健全的追蹤信息可以有效地關(guān)聯(lián)不同開發(fā)階段間的制品,并可以此很好地檢驗需求在其他階段中的滿足情況。這可以有效地降低因設(shè)計人員對需求的誤解、遺漏以及更改而產(chǎn)生的安全性事故。因此,如何建立需求整個生命周期的可追蹤性對于提升軟件以及系統(tǒng)的安全性顯得至關(guān)重要。

本文基于模型驅(qū)動工程(model-driven engineering,MDE)來解決安全關(guān)鍵系統(tǒng)中需求可追蹤性這一問題,主要致力于安全關(guān)鍵系統(tǒng)開發(fā)過程中需求可追蹤性的早期建立(即事先追蹤)。采用模型驅(qū)動的方法進(jìn)行系統(tǒng)開發(fā),使得在開發(fā)早期即將追蹤信息包含到模型中,避免了事后的恢復(fù),提高追蹤信息的準(zhǔn)確性。模型驅(qū)動工程主要使用不同抽象層次的模型進(jìn)行系統(tǒng)設(shè)計和開發(fā),可以使用元建模(meta-modeling)構(gòu)建適用于不同場景的模型。本文選取了系統(tǒng)建模語言(systems modeling language,SysML)作為建模語言對系統(tǒng)進(jìn)行建模,SysML是一種圖形化建模語言,它為軟件體系結(jié)構(gòu)建模提供了一套豐富的圖表,支持各種復(fù)雜系統(tǒng)的詳細(xì)說明、分析、設(shè)計和驗證,彌補(bǔ)了統(tǒng)一建模語言(unified modeling language,UML)在系統(tǒng)工程領(lǐng)域建模的缺陷,已經(jīng)成為工業(yè)界在系統(tǒng)工程設(shè)計與分析過程中的標(biāo)準(zhǔn)建模語言。目前SysML已經(jīng)被NASA、歐洲航天局等機(jī)構(gòu)廣泛應(yīng)用到實際的項目開發(fā)中。但是,其對于可追蹤性的支持仍有局限,例如無法從需求追溯到它們的起源(包括利益相關(guān)者等)。此外,缺少針對SysML的特定追蹤模型,用于對追蹤信息的表述,使得潛在的追蹤信息無法為工程師應(yīng)用于實際的安全性分析中(如:需求變更的影響分析等)[10]。

本文的主要內(nèi)容及貢獻(xiàn)如下:

(1)對SysML模型進(jìn)行了擴(kuò)展,給出了擴(kuò)展配置文件(profile),用于在安全關(guān)鍵系統(tǒng)開發(fā)中追蹤信息的捕獲。

(2)給出了一個用于表達(dá)追蹤信息的元模型(meta-model),并利用模型轉(zhuǎn)換(model transformation)自動化生成追蹤模型。該追蹤模型提供了描述需求與設(shè)計制品間追蹤信息的能力。

本文的結(jié)構(gòu)如下:第2章介紹MDE以及SysML,并在此基礎(chǔ)上給出用于追蹤信息捕獲的SysML擴(kuò)展模型;第3章給出用于追蹤信息展示的追蹤元模型以及用于自動化生成追蹤模型的ATL(ATLAS transformation language)規(guī)則;第4章給出案例分析;第5章介紹相關(guān)工作并與本文方法進(jìn)行比較;第6章總結(jié)全文并展望未來工作。

2 追蹤信息捕獲

本章主要對SysML進(jìn)行介紹并由此引出用于追蹤信息捕獲的配置文件。

在模型驅(qū)動的軟件工程中,可追蹤性被認(rèn)為是非常重要的。其中,模型轉(zhuǎn)換、代碼自動生成等技術(shù)理論上可以隱式地自動建立和維護(hù)軟件設(shè)計和代碼之間的追蹤關(guān)系,但這種追蹤關(guān)系一般是單向的,即順著目標(biāo)模型生成的方向。此外,需求的可追蹤性涉及到需求工程,它主要用于確保開發(fā)模型,代碼實現(xiàn)以及測試計劃都滿足項目的原始需求。在模型驅(qū)動工程中主要有以下兩種方法對可追蹤性的管理:

(1)通過自動化模型轉(zhuǎn)換過程創(chuàng)建可追蹤性鏈接;

(2)通過事件捕獲來管理可追蹤性鏈接。

2.1 SysML簡介及方法概述

本文選取了SysML作為建模語言對系統(tǒng)進(jìn)行建模,SysML是一種圖形化建模語言,是對象管理組織(object management group,OMG)在對UML2.0的子集進(jìn)行重用和擴(kuò)展的基礎(chǔ)上,提出的一種新建模語言。它致力于建模具有眾多組件、難以描述、理解、預(yù)測、管理、設(shè)計以及更改的系統(tǒng),并提供了表達(dá)個人需求及其組成的手段,已被學(xué)術(shù)界和工業(yè)界所廣為接受,作為一種標(biāo)準(zhǔn)建模語言。

在安全關(guān)鍵系統(tǒng)中,系統(tǒng)的安全往往不僅限于純粹軟件的安全,軟件設(shè)計存在缺陷會導(dǎo)致事故的發(fā)生,此外對于某些系統(tǒng)硬件的控制不當(dāng),同樣也可能造成安全事故。故而,在系統(tǒng)開發(fā)中,開發(fā)者需要對安全相關(guān)(safety-related)的組件(包括軟硬件部分)進(jìn)行嚴(yán)格的安全性分析、驗證。有效地保證需求到這些組件的可追蹤性,將為后續(xù)的安全性分析提供巨大的幫助。

下面給出本文方法概述,如圖1所示,主要分為兩個階段:第一階段為對追蹤信息的捕獲。首先對SysML進(jìn)行擴(kuò)展,得到一個用于追蹤建模的配置文件,使開發(fā)者建模過程中即可將追蹤信息捕獲到模型中。第二階段為追蹤信息的表達(dá)。通過第一階段捕獲到的追蹤信息包含在SysML模型中,此時需要構(gòu)建一個可以用于描述追蹤信息的追蹤元模型。接著通過模型轉(zhuǎn)換將SysML模型轉(zhuǎn)換到追蹤模型。利用追蹤模型以及圖形化表達(dá)為開發(fā)者提供直觀的追蹤信息展示,使開發(fā)者可以利用這些信息對系統(tǒng)進(jìn)行后續(xù)的安全性分析。

Fig.1 Automatic generation of trace model圖1 追蹤模型自動生成

2.2 SysML配置文件構(gòu)造

SysML提供了多種建模圖供開發(fā)者使用。本文中主要使用需求圖(requirement diagram)和塊定義圖(block definition diagram)分別對需求和設(shè)計制品進(jìn)行建模。SysML提供對于需求追蹤的機(jī)制,其中<>類型提供了一個廣泛意義上的追蹤關(guān)系鏈接;<>、<>等提供了描述需求間相互關(guān)系的能力;<>、<>則用于描述需求與其他制品間的關(guān)系。但總體上,SysML提供的可追蹤性能力非常有限,首先其不支持雙向的追蹤(只可從需求向下一階段的制品進(jìn)行追蹤),其次缺乏面向特定目的以及領(lǐng)域的追蹤能力,無法很好地滿足安全關(guān)鍵領(lǐng)域中安全性分析的工作。為了有效捕獲面向安全關(guān)鍵領(lǐng)域的可追蹤性信息,首先需從元模型層面進(jìn)行設(shè)計分析。

需求的追蹤本質(zhì)上是對需求間以及需求與其他設(shè)計制品間的關(guān)系進(jìn)行刻畫。那么首先要做的就是進(jìn)行追蹤信息的捕獲(例如:需求的類型、需求的提出者、利益相關(guān)者等),這將決定可追蹤性的粒度。在本文中利用SysML的擴(kuò)展機(jī)制,對SysML進(jìn)行擴(kuò)展,使擴(kuò)展后的模型可用于追蹤信息的捕獲。

關(guān)于SysML的擴(kuò)展機(jī)制,官方主要提供了如下3個途徑:

(1)基于UML構(gòu)造型(stereotypes);

(2)基于UML圖表擴(kuò)展(diagram extensions);

(3)基于模型庫(model libraries)。

SysML構(gòu)造型機(jī)制通過用新的屬性和約束來擴(kuò)展現(xiàn)有的UML2構(gòu)造型,從而定義新的建模元素;SysML圖表擴(kuò)展通過定義新的圖表符號,用于補(bǔ)充從UML2中重用的圖表符號;SysML模型庫則用于描述可供重用的專用模型元素。上述這些方法最終都需通過配置文件實現(xiàn)[11]。

本文構(gòu)建配置文件的方法如圖2所示:首先對需要擴(kuò)展的領(lǐng)域元素進(jìn)行收集,本文中即為追蹤信息(如:利益相關(guān)者、測試用例等)。接著對這些元素進(jìn)行形式化,映射到SysML的元模型。進(jìn)而利用EMF(eclipse modeling framework)工具將得到的元模型構(gòu)建成SysML的配置文件,其表現(xiàn)形式為SysML圖。配置文件中構(gòu)造的模型元素可以通過標(biāo)記定義(構(gòu)造型的屬性)和約束進(jìn)行精化。其中約束可以使用對象約束語言(object constraint language)表示。

Fig.2 Phases of building SysML profile圖2 SysML配置文件構(gòu)建過程

當(dāng)配置文件定義完成后,將其導(dǎo)入到建模的工具中,此時進(jìn)行SysML模型開發(fā)即可選用擴(kuò)展的配置文件。而建模得到的SysML模型將符合定義的配置文件要求,同時也將追蹤信息捕獲在模型中。針對安全關(guān)鍵系統(tǒng)的特性以及本團(tuán)隊的需要,下面給出本文中用于需求追蹤的配置文件結(jié)構(gòu)圖。如圖3所示,所有的構(gòu)造型都是基于元類中類(class)的擴(kuò)展。元類是UML配置文件中提供的一個類,可以通過一個或者多個構(gòu)造型進(jìn)行不同方向的擴(kuò)展。而構(gòu)造型則是用于創(chuàng)建配置文件的主要手段,它們通過擴(kuò)展元類進(jìn)行定義,然后作為模型元素應(yīng)用于用戶定制的模型中。

Fig.3 Profile for trace information capture圖3 用于追蹤信息捕獲的配置文件

下面給出擴(kuò)展的SysML模型的形式化描述:定義標(biāo)記“├”代表擴(kuò)展關(guān)系,ST為SysML中構(gòu)造型的集合,MT為SysML中元類集合,則有ST├MT,即構(gòu)造型可以通過擴(kuò)展元類得到。定義標(biāo)記“→”代表繼承關(guān)系,如果a→b,b∈ST,那么a∈ST,即新構(gòu)造型也可以通過繼承原有的構(gòu)造型生成。本文配置文件使用的構(gòu)造型和元類集合分別為st、mt,故st?ST,mt?MT,并且有st={TestCase,Owner,Block,Requirement,Safety-relatedReq,ConstraintBlock},mt?MT,mt={Class}。

原SysML中Requirement構(gòu)造型只有id和text兩個字段,分別對應(yīng)每一需求的標(biāo)識符和文本描述。針對安全關(guān)鍵系統(tǒng)加入Safety-relatedReq構(gòu)造型用于表示對系統(tǒng)安全性相關(guān)的需求。該構(gòu)造型是對SysML中Requirement構(gòu)造型進(jìn)行繼承,并在此基礎(chǔ)上添加Reqlevel屬性,用于描述需求所對應(yīng)的構(gòu)件級別。

構(gòu)造型Block和ConstraintBlock為SysML中原有的構(gòu)造型,它是系統(tǒng)描述的單元。每個Block定義一組特征用于描述系統(tǒng)或開發(fā)者關(guān)切的其他元素。其中可能包括結(jié)構(gòu)以及行為特征,例如屬性和操作,用于表示系統(tǒng)可能出現(xiàn)的狀態(tài)和行為。而ConstraintBlock提供了一種集成的機(jī)制,用于結(jié)合其他模型元素對系統(tǒng)的性能和可靠性進(jìn)行分析(例如:數(shù)學(xué)表達(dá)式的約束)。

加入TestCase構(gòu)造型,用于關(guān)聯(lián)驗證需求的測試用例,可指向狀態(tài)圖等。

加入Owner構(gòu)造型(可能是個人或公司)用于關(guān)聯(lián)需求的所有者或者其利益相關(guān)者。

3 追蹤模型生成

在第2章中,完成了對SysML模型的擴(kuò)展,使其可以捕獲特定追蹤信息。在本章中,將構(gòu)建一個追蹤元模型,用于追蹤信息的表達(dá)。

3.1 追蹤元模型構(gòu)建

傳統(tǒng)的可追蹤信息模型(traceability information model,TIM)抽象定義了項目中追蹤鏈的類型(trace link type)和被追蹤軟件制品類型(artifact type)等,為實際項目中追蹤鏈的建立提供指導(dǎo)。而在安全關(guān)鍵系統(tǒng)開發(fā)過程中進(jìn)行安全性分析時往往需要提供更為詳細(xì)的信息,因此要求追蹤模型可以為開發(fā)者提供如下的追蹤信息:

(1)可以描述需求與設(shè)計制品之間的雙向追蹤關(guān)系以及需求與其他元素間的追蹤關(guān)系;

(2)可以描述對不同類型的追蹤元素。

下面首先給出追蹤元模型的形式化描述[5]:M=(K,A),即追蹤模型由追蹤鏈集合K和對應(yīng)的追蹤元素集合A構(gòu)成。使用符號“→”描述追蹤鏈,則追蹤鏈K可表示為A→KA,即追蹤鏈代表一組從源制品到目標(biāo)制品的關(guān)系。定義函數(shù)fs:K→A映射每個追蹤鏈對應(yīng)的源制品;函數(shù)ft:K→A映射每個追蹤鏈對Verify應(yīng)的目標(biāo)制品。例如:Requirement→TestCase,因此fs(Verify)=Requirement并且ft(Verify)=TestCase。

接著給出追蹤元模型的圖形化表示,如圖4所示。其中,根元素為TraceModel,它可能包含多個TraceLink元素(追蹤鏈)。TraceLink包含一個Tracetype(追蹤類型)的屬性(其值可能為Satisfy,Responsible Of或Verify,取決于關(guān)聯(lián)的不同類型的制品)。TraceLink關(guān)聯(lián)了TraceElement元素,對應(yīng)一個源元素以及一個目標(biāo)元素。TraceElement元素為對應(yīng)包含追蹤信息的元素:Requirement、Block、TestCase以及Stakeholder。

Fig.4 Trace meta-model圖4 追蹤元模型

3.2 模型轉(zhuǎn)換

本節(jié)主要通過模型轉(zhuǎn)換技術(shù)完成從SysML模型到追蹤模型的轉(zhuǎn)換,實現(xiàn)追蹤模型的自動生成用于展示建模階段捕獲到的追蹤信息。

模型轉(zhuǎn)換是模型驅(qū)動架構(gòu)中使用的關(guān)鍵技術(shù),本文采用ATL和EMF工具實現(xiàn)模型轉(zhuǎn)換。ATL是ATLAS研究組開發(fā)出的一種符合OMG查詢/視圖/轉(zhuǎn)換(query/view/transformation,QVT)提案的模型轉(zhuǎn)換語言。ATL是基于Eclipse模型框架的語言,其元模型、模型均用EMF文件描述,并使用了對象約束描述語言(object constraint language,OCL)定義規(guī)則。本質(zhì)上,ATL屬于基于規(guī)則的模型轉(zhuǎn)換語言。

上面給出本文中使用的SysML模型到追蹤模型的ATL轉(zhuǎn)化規(guī)則,用于實現(xiàn)自動化生成追蹤模型。代碼功能如下:首先定義一個helper,用于判斷制品的構(gòu)造型值,其功能類似于函數(shù),可在不同的模塊中被調(diào)用。規(guī)則Safety-relatedReq2Req用于實現(xiàn)SysML模型中構(gòu)造型Safety-relatedReq到追蹤模型中Requirement的轉(zhuǎn)換;規(guī)則Block2Artifact用于實現(xiàn)SysML模型中Block構(gòu)造型到追蹤模型中Block的轉(zhuǎn)換,此時若有與其關(guān)聯(lián)的需求,則將追蹤鏈的類型設(shè)置為Satisfy;規(guī)則 Owner2Stakeholder和 Test2TestCase與規(guī)則Block2Artifact分別用于實現(xiàn)SysML模型中Owner和TestCase構(gòu)造型追蹤模型元素的轉(zhuǎn)換,以及追蹤鏈類型的設(shè)置。

4 案例分析

襟縫翼控制系統(tǒng)是飛控系統(tǒng)中控制襟翼和縫翼行為的重要組件,在起飛和降落過程中增加升力,提高失速臨角。該單元直接影響著飛行的安全及穩(wěn)定,保障其安全性至關(guān)重要[12]。本團(tuán)隊在前期工作中已通過模型檢測技術(shù)實現(xiàn)了襟縫翼控制系統(tǒng)源代碼層面的驗證[13],本文將關(guān)注該系統(tǒng)開發(fā)的可追蹤性研究。

本文選取了如下所示的襟縫翼控制單元的部分需求[14]作為案例進(jìn)行追蹤關(guān)系的構(gòu)建與驗證:

R0:系統(tǒng)周期自檢中,對硬件設(shè)備輸出的有效性進(jìn)行檢測。

R1:系統(tǒng)的周期自檢中,需要對風(fēng)扇轉(zhuǎn)速、處理器溫度輸出的有效性進(jìn)行檢測。

R2:系統(tǒng)應(yīng)提供對處理器溫度輸出有效性的檢測功能。

R3:系統(tǒng)應(yīng)該提供對風(fēng)扇轉(zhuǎn)速輸出有效性的檢測功能。

Fig.5 Requirement diagram of slat control system圖5 襟縫翼控制系統(tǒng)需求圖

以上需求均為安全相關(guān)的需求,根據(jù)需求之間的關(guān)系可以得到:其中需求R1是對需求R0的精化;需求R2和需求R3則是對需求R1的分解。

使用擴(kuò)展后的SysML對其進(jìn)行建模,得到需求圖如圖5所示。

接著進(jìn)行系統(tǒng)設(shè)計的建模,塊CPU是對處理器的建模,它與需求R2存在著滿足關(guān)系;而測試用例StateMachine1則是對需求R3的測試用例進(jìn)行建模,它與需求R3存在驗證關(guān)系。

圖6為CPU模塊的塊定義圖。它由一個傳感器塊和數(shù)據(jù)處理塊組成,分別負(fù)責(zé)溫度的探測和數(shù)據(jù)的交換。

Fig.6 Block definition diagram of CPU unit圖6 CPU單元的塊定義圖

為了生成追蹤模型,將建模得到的擴(kuò)展模型以及追蹤元模型同時導(dǎo)入EMF工具中并加入ATL代碼,利用EMF工具對ATL代碼進(jìn)行編譯執(zhí)行,即可自動生成追蹤模型。得到的實例文件如下所示。

第一個追蹤鏈類型為Satisfy,對應(yīng)的追蹤元素為需求R2和設(shè)計制品CPU塊定義圖,代表該CPU塊圖用于實現(xiàn)需求R2;R3與StateMachine1的追蹤鏈生成,其追蹤類型為Verify,代表StateMachine1與需求R3存在著驗證關(guān)系;R0和StaffA之間生成追蹤鏈,類型為ResponsibleOf,代表StaffA是需求R0的利益相關(guān)者。

利用繪圖軟件對XML文件進(jìn)行處理,得到如圖7所示的圖形化追蹤模型,為追蹤信息提供直觀的展示。從生成的追蹤模型文檔以及圖形化的模型可以觀察到,通過配置文件擴(kuò)展的SysML模型在建模時成功地捕獲追蹤信息,使用EMF工具實現(xiàn)模型轉(zhuǎn)換后自動生成的追蹤模型符合追蹤元模型,具有表達(dá)追蹤信息的能力。

Fig.7 Graphical representation of trace model圖7 追蹤模型的圖形化表示

5 相關(guān)工作

本文的相關(guān)工作主要包括SysML的相關(guān)擴(kuò)展以及需求追蹤關(guān)系的建立方法。

5.1 SysML的擴(kuò)展

SysML是在UML基礎(chǔ)上擴(kuò)展的,它本質(zhì)上是一個UML的配置文件擴(kuò)展。SysML擴(kuò)展的主要目的為:通過擴(kuò)展使建模語言獲得原始模型不具備的分析能力和信息存儲、表達(dá)能力。

目前基于SysML擴(kuò)展的需求可追蹤性領(lǐng)域中已有許多相關(guān)工作。文獻(xiàn)[15]中Soares等人致力于強(qiáng)化需求表達(dá)中的可追蹤性概念。作者在文中提供了SysML需求圖和SysML需求表的擴(kuò)展。提出了用戶需求和追蹤的分類,增強(qiáng)了需求和追蹤一致性的檢查。該工作僅擴(kuò)展需求圖和需求表,沒有追蹤類型以及元素的擴(kuò)展,而本文中通過擴(kuò)展SysML新構(gòu)造型,提供了增加新追蹤元素的能力。Paige等人在文獻(xiàn)[16]中提出了一種通過可追蹤性抽取來識別模型驅(qū)動過程中追蹤鏈的方法,并提供了一種定義和實現(xiàn)此類追蹤鏈的方法。

此外,基于SysML擴(kuò)展進(jìn)行系統(tǒng)建模和安全性分析的研究也是一個熱點。Hause和Thom給出了一個在安全關(guān)鍵系統(tǒng)設(shè)計中使用UML和SysML的指南[17]。他們提供了用于建模安全完整性等級(safety integrity level,SIL)的構(gòu)造型,確保系統(tǒng)構(gòu)件關(guān)系滿足相關(guān)的安全性需求。文獻(xiàn)[18]提供了一個名為“SafeML”的SySML的配置文件,用于對安全關(guān)鍵系統(tǒng)中的安全相關(guān)信息進(jìn)行建模。利用該配置文件對系統(tǒng)進(jìn)行建模,可以模擬以及管理系統(tǒng)的風(fēng)險。文獻(xiàn)[18]提出了SecureUML配置文件,用于傳達(dá)軟件系統(tǒng)安全問題。它用于模擬基于角色的訪問控制,以記錄系統(tǒng)中用戶和實體的訪問權(quán)限。構(gòu)造型可以對這些資源執(zhí)行的角色、資源、動作進(jìn)行建模,以及授權(quán)約束(使用邏輯謂詞建模)。周書華等人在文獻(xiàn)[19]中對SysML進(jìn)行擴(kuò)展來支持兼容Modelica的設(shè)計建模,最后實現(xiàn)了SysML與Modelica模型的自動轉(zhuǎn)換,使得設(shè)計人員得以將設(shè)計模型自動轉(zhuǎn)化為系統(tǒng)仿真模型進(jìn)行仿真。曹德建等人[20]提出了一種將故障樹分析擴(kuò)展到SysML活動圖模型的方法以及故障擴(kuò)展SysML活動圖的概念,統(tǒng)一了系統(tǒng)功能模型與安全需求分析模型。黃傳林等人[21]提出一種結(jié)合MARTE語義信息的擴(kuò)展SysML活動圖模型,用于描述安全關(guān)鍵應(yīng)用中的嵌入式系統(tǒng)動態(tài)行為的設(shè)計,設(shè)計了一個基于AMMA平臺的面向擴(kuò)展SysML活動圖的模型轉(zhuǎn)換與驗證框架。

與本文工作相比,該類方法利用SysML的擴(kuò)展能力致力于系統(tǒng)的建模與安全性分析,例如故障、風(fēng)險分析等。其關(guān)注點在于系統(tǒng)建模和模型驗證,追蹤信息可能會被集成包含進(jìn)系統(tǒng)模型,但缺少針對安全關(guān)鍵系統(tǒng)的特定追蹤信息捕獲以及專門用于表達(dá)追蹤信息的模型。而本文重點則在于建模過程中追蹤信息的捕獲,以及專門用于表達(dá)追蹤信息的模型生成。

總結(jié)如下,現(xiàn)有的SysML擴(kuò)展工作可主要分為兩類:一類旨在擴(kuò)展模型語義或者結(jié)合形式化方法,進(jìn)行系統(tǒng)安全性分析;另一類則不側(cè)重于形式化方法的使用,而旨在信息的存儲以及表達(dá)。本文聚焦于建模過程中的追蹤信息捕獲以及追蹤信息的表達(dá),本質(zhì)上即通過擴(kuò)展使SysML模型具備存儲特定追蹤信息的能力,可為后續(xù)安全性分析提供數(shù)據(jù)支持。本文配置文件的主要擴(kuò)展內(nèi)容如表1所示。

Table1 Main extension elements in profile表1 配置文件中主要的擴(kuò)展元素

5.2 需求追蹤關(guān)系的建立

關(guān)于需求追蹤關(guān)系的建立方法,從事先和事后角度進(jìn)行分類,主要有基于信息檢索的事后恢復(fù)和基于模型驅(qū)動的事先建立方法。

基于信息檢索的可追蹤性恢復(fù),主要利用IR模型計算需求文本與其他文本制品的相似度,然后通過設(shè)定閥值進(jìn)行篩選,重新建立不同制品間的追蹤鏈。

目前已有很多的模型采用IR的技術(shù)恢復(fù)追鏈接。文獻(xiàn)[22]表明,該類型的可追蹤鏈恢復(fù)過程與手動方法相比,明顯更快,追蹤鏈的準(zhǔn)確性也得到了一定的提升。但是,最終開發(fā)者仍然需要做出關(guān)于候選鏈接有效性的最終決定。文獻(xiàn)[23]利用自然語言文本的語法特性,分析需求文檔和用例的語法結(jié)構(gòu),標(biāo)注句子成分,根據(jù)制定的規(guī)則進(jìn)行關(guān)系匹配。

在模型驅(qū)動的軟件工程中,模型轉(zhuǎn)換、代碼自動生成等技術(shù)可以隱式地自動建立和維護(hù)軟件設(shè)計模型、軟件設(shè)計和代碼之間的追蹤關(guān)系。

目前有一些方法嘗試將需求轉(zhuǎn)換為UML或XML的形式化表達(dá),然后實現(xiàn)一定程度的追蹤鏈生成自動化。文獻(xiàn)[24]提出一種稱為REQDL(requirement description language)的領(lǐng)域特定語言用于描述需求,同時捕獲雙向的追蹤信息并利用模型轉(zhuǎn)換自動生成追蹤模型。該文獻(xiàn)側(cè)重于構(gòu)建新的需求描述語言,用于需求建模。文獻(xiàn)[25]提出了一種半自動方法,用于維護(hù)需求和UML制品之間的追蹤鏈,該方法基于捕獲建模工具中的事件流。但該方法只可用于處理基于事件的UML制品,而本文的方法可以處理SysML中原有的所有結(jié)構(gòu)以及行為制品,并具備將這些制品綁定到利益相關(guān)者的能力。

本文采用模型驅(qū)動的方法。不同于信息檢索方法的追蹤鏈的事后恢復(fù),本文致力于追蹤關(guān)系的事先建立。在基于信息檢索的方法中常見問題為追蹤鏈的錯誤恢復(fù),即兩個制品間本不存在追蹤關(guān)系,經(jīng)過信息檢索方法處理后卻建立了追蹤鏈,該追蹤鏈即為一個錯誤恢復(fù)的鏈接。安全關(guān)鍵系統(tǒng)要求高安全高可靠,而利用信息檢索方法恢復(fù)的追蹤鏈存在以上錯誤恢復(fù)的情況,因此信息檢索方法不能很好地適用于該類系統(tǒng)的追蹤關(guān)系建立。本文方法正向建立追蹤關(guān)系,即首先進(jìn)行需求分解和追蹤關(guān)系的指派,再進(jìn)行制品的設(shè)計,理論上將不會存在錯誤建立的追蹤鏈(需排除人為指派錯誤的影響)。此外,在完成建模后可支持進(jìn)一步采用模型檢測(model checking)、形式化方法(formal method)等技術(shù)進(jìn)行模型的驗證以及分析,可以幫助開發(fā)者在開發(fā)早期發(fā)現(xiàn)問題,保障系統(tǒng)的安全性。

6 結(jié)束語

在航空航天等安全關(guān)鍵領(lǐng)域,嵌入式系統(tǒng)的需求追蹤信息缺失將導(dǎo)致后期維護(hù)的困難加大,更可能直接導(dǎo)致由于需求未被滿足而引發(fā)重大安全性事故。本文針對這一問題展開研究,給出了一種基于模型驅(qū)動工程的方法,用于安全關(guān)鍵系統(tǒng)中需求追蹤的事先建立。通過對SysML配置文件的擴(kuò)展、追蹤元模型的構(gòu)建以及模型轉(zhuǎn)換技術(shù)的使用實現(xiàn)了追蹤模型的自動化生成。該追蹤模型提供了需求與設(shè)計制品間的追蹤能力以及從需求向前追蹤的能力。

未來的工作將著重于需求到代碼的可追蹤性研究以及追蹤信息粒度的細(xì)化。

猜你喜歡
配置文件制品建模
基于Docker的實時數(shù)據(jù)處理系統(tǒng)配置文件管理軟件的設(shè)計與實現(xiàn)
物理建模在教與學(xué)實踐中的應(yīng)用
在經(jīng)歷中發(fā)現(xiàn)在探究中建模
糧油制品檢驗工作的思考分析
淺談食品接觸之“竹纖維”制品
從Windows 10中刪除所有網(wǎng)絡(luò)配置文件
污泥預(yù)處理及其在硅酸鹽制品中的運用
聯(lián)想等效,拓展建?!浴皫щ娦∏蛟诘刃鲋凶鰣A周運動”為例
用軟件處理Windows沙盒配置文件
求距求值方程建模
航空| 清原| 博客| 东城区| 麟游县| 茂名市| 海门市| 大姚县| 山西省| 金乡县| 合江县| 北流市| 犍为县| 特克斯县| 奉贤区| 枞阳县| 肃宁县| 长治县| 山东| 泸西县| 德昌县| 巴中市| 虞城县| 克什克腾旗| 孝义市| 于田县| 安乡县| 邳州市| 兴和县| 澄江县| 宝山区| 石嘴山市| 怀仁县| 蒙阴县| 兴文县| 屏东县| 调兵山市| 青阳县| 东乡县| 阿拉善左旗| 西乌珠穆沁旗|