999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SCADE的嵌入式軟件開發方法研究

2015-01-24 12:24:24高玉娜
電子設計工程 2015年21期
關鍵詞:模型設計

高玉娜

(上海海洋大學 工程學院,上海 201306)

軟件的安全和可靠性是衡量軟件質量最重要的指標和軟件開發的最終目標。較之普通軟件領域,在高安全性的嵌入式開發領域如軌道交通,航空,國防等,軟件因其任務特點,更需要保證高可靠性。然而,何謂“高可靠性軟件”、如何開發“高可靠性軟件”一直是困擾系統開發人員的“瓶頸”問題。誠然,軟件的設計模式直接決定了軟件的安全和可靠性。文中介紹了一種基于模型的可靠性軟件開發平臺方案。大量的工程應用也表明該方法是切實有效的。

1 嵌入式軟件開發現狀

何謂“高可靠性軟件”?1983年美國IEEE計算機學會軟件工程技術委員會將軟件可靠性定義如下[1]:在規定的條件下,在規定的時間內,軟件不引起系統失效的概率。在規定的時間周期內和條件下,程序執行要求的功能的能力。這個標準隨后經美國標準化研究院批準作為美國的國家標準,1989年我國國標GB/T-11457采用了這個定義。

那么,如何開發“高可靠性軟件”?軟件可靠性工程的任務是力爭在軟件生命周期過程中最大限度地減少軟件產品中的缺陷。而減少軟件缺陷必須在全面周密的考慮系統在各個不同階段、不同狀態下,保證軟件和需求的一致性。

1.1 現有的軟件開發方法

目前,大多數嵌入式軟件項目都采用“以手工編碼和以代碼為中心”瀑布模型作為規范化開發的基礎。該種開發方式以代碼開發為中心,需求分析、軟件設計為軟件編碼做準備,代碼編寫完成后進行單元測試。長期以來,代碼編寫一直是開發過程的主要階段,占用了大量的時間和人力。隨著人們對軟件質量的重視,單元測試在開發過程中的地位日益重要,在目前的開發流程中,越來越多的力量投入到代碼的單元測試中[2]。

基于代碼開發方式的缺點非常明顯:

1)開發效率低下

由于代碼的抽象程度高,不直觀,與軟件需求完全脫節,因此開發人員不得不花大量的時間在技術細節上,代碼的修改也很耗時。

2)質量沒有保證

由于軟件代碼由程序員手工編寫,程序員的能力、態度及狀態制約了軟件的質量。且隨著軟件規模、復雜度的不斷增加,團隊開發情況的出現,代碼集成也變得越來越難。

出現這些缺點的主要原因在于,在基于代碼開發方式下,開發工作的早期(需求分析、軟件設計)完全依賴于人工工作,其成果以有歧義的自然語言或圖表方式描述,無法進行有效的交流和驗證,從而成為錯誤引入的重災區;而當具有動態行為的代碼出現后,對代碼的測試是一種事后監督的、費時費力的做法,只能盡可能地發現錯誤,而無法有效地避免或者是排除錯誤。

1.2 “基于模型”的開發方法

隨著人們對軟件認識的逐漸加深及實踐中的探索,模型取代代碼成為了軟件開發流程的中心。直觀的模型符號被用于需求分析及以軟件設計過程,表達分析人員對需求的理解及細化。由于模型遠比程序語言的抽象程度低,更易于理解和交流,減少了需求分析和軟件設計過程中錯誤引入的機率,尤為重要的是,模型還可用于模擬仿真,表達其動態特性,從而使開發人員在開發的早期能確定性地發現并排除錯誤。

一般來說,基于模型的開發方式具有以下特征:

1)形式化的圖形符號

直觀易懂的圖形符號是模型的主要特征,也是模型優于代碼的主要原因。借助于圖形化的符號組成的模型,閱讀者不僅能快速獲取模型所表達的含義,而且不會因知識背景的不同產生歧義。

2)模型可運行

可運行的模型為開發人員了解模型的動態行為提供了方便,可以驗證設計與需求是否一致。

2 “基于模型”的開發工具

2.1 什么是“基于模型”的開發工具?

所謂“基于模型”,是以一種形式化的模型方式描述一個系統或是一個子系統[3]。一個模型可以是數學意義上的,由一系列關于系統的聲明構成;也可以是構架意義上的(又稱作可執行的),用來描述一個系統對系統外激勵的響應情況。

隨著計算機技術的迅猛發展和軟件工程自動化的不斷發展,“基于模型”的開發工具不斷涌現,這類工具的普遍特點是通過形式化的建模方式實現需求、模型可以直接進行模擬、并且可以直接將模型轉化為源代碼。

2.2 “基于模型”開發工具的比較

基于模型的開發工具有很多,在嵌入式軟件開發領域應用比較廣泛的主要有基于UML的建模工具,或是結構化的設計工具(SCADE、SIMULINK 等)。

1)基于UML的設計工具:關注于高層的功能劃分、結構分解、行為規范和需求分析,適合于系統建模;它從軟件工程的角度對開發流程進行規范,但很少考慮高可靠性嵌入式軟件開發的特點,軟件工程自動化程度較低,生成的只是一個代碼框架,需要對它生成的代碼做大量的修改和補充之后才能使用。

2)Simulink:面向仿真,仿真功能比較強大,支持對硬件和外界環境的模擬,可以進行全局的仿真和調試;但是由于底層缺乏數學理論的支撐,無法保證模型作為需求描述的無歧義性;從生成代碼的角度來說,它生成的代碼也需要做大量的修改和補充之后才能使用,而這種做法在增加工作量的同時,和基于UML的設計工具一樣,帶來了一個潛在的很復雜的開發流程管理和質量認證上的問題。

3)SCADE (Safety-Critical Application Development Environment)是一套基于模型的、面向高可靠性軟件而設計的開發環境,具有嚴格的理論基礎支持,充分考慮了高可靠性軟件開發中的質量、安全特性、開發周期、認證等各方面的問題,國內外高安全性嵌入式領域應用經驗表明,它非常適合用于開發高可靠性軟件。

3 基于SCADE的軟件設計方法

3.1 SCADE簡介

SCADE[6](Safety-Critical Application Development Environment)是一套高安全性嵌入式軟件開發環境,運用Correct By Construction[5]的設計理念,能夠從精確的需求規范自動生成嵌入式源代碼,實現了開發流程的高度自動化。它涵蓋了嵌入式軟件開發的整個流程:需求管理、需求建模、模型檢查、模型仿真、模型覆蓋率分析、形式驗證、代碼生成、文檔生成等等。SCADE適用于不同軟、硬件平臺,是一套通用的嵌入式軟件開發平臺。

3.2 基于SCADE軟件設計方法

在現有的瀑布式的開發流程中,軟件需求、概要設計、詳細設計都是為了編碼;單元測試、集成測試、系統測試都是為了驗證代碼的正確性,代碼是整個工作的重心。使用了SCADE之后,整個設計流程是圍繞著SCADE模型展開的:概要設計和詳細設計的過程其實都是用SCADE建模的過程,并且提供了一系列驗證手段保證了模型的正確性和安全性,SCADE模型成為整個開發工作的核心,工作的重心從原先的代碼提高到了模型的級別。

圖1 基于SCADE的嵌入式軟件開發平臺Fig.1 Structure of embedded software development platform with SCADE

1)設計過程

SCADE提供了兩套機制(數據流圖和安全狀態機)來進行圖形化建模。數據流圖適合于連續系統圖建模,安全狀態機適用于離散系統的建模。SCADE將這兩套建模機制很好地融合在一起,能夠適用于不同類型系統尤其是混合系統的開發。

這兩套機制都建立在嚴格的數學模型基礎之上,具有嚴格的數學語義,它們保證了設計模型的精確性、完整性、一致性和無二義性。由于該描述是形式化的,因此建模的過程也是描述需求的過程,得到的是明確無歧義的軟件需求。

2)設計過程的驗證

SCADE提供了一系列的驗證機制,來確保軟件需求模型描述的正確性和安全性:

①模型靜態檢查

建立好了需求模型之后,可以對模型進行自動檢查,幫助找出模型中的數據流不匹配、死循環等一系列語義和方法學方面的錯誤,并提供超鏈接進行錯誤定位。

②模擬仿真

模型通過靜態檢查之后,可以通過SCADE提供的模型仿真器,對整個系統或是系統中任意一個模塊進行模擬仿真。該仿真器是一套功能強大的可視化的調試環境,可以設置斷言、斷點;可以檢查輸入數據、局部變量和輸出數據的值;可以用文本或圖表的形式記錄仿真過程中各輸入輸出的值;可以保存和回放仿真的場景(scenario)。最重要的一點也是區別其他基于模型開發工具的最重要的一點:SCADE保證仿真結果和生成代碼運行的結果是一致的。

③覆蓋率分析

模擬仿真是對模型進行功能測試的過程。為了評估模型測試的完備性,SCADE提供了基于模型的覆蓋率分析。根據既定的或者自定義的覆蓋率準則,分析仿真場景在模型中的覆蓋程度,并能指明未覆蓋的路徑;隨后用戶對覆蓋率進行分析,找出測試用例的不足、需求設計錯誤、死代碼等問題,用于指導設計模型改進、需求改進等。最后,SCADE還能自動生成覆蓋率分析的報告。

④形式驗證

模擬仿真能夠測試系統模型是否實現了預期功能,但并不能保證系統在所有情況下都滿足安全特征。由于測試的局限性,難以通過測試來驗證安全特性,對于復雜的邏輯控制系統來說尤是如此。SCADE所提供的形式驗證[4]彌補了這一局限性。

3)自動生成代碼

經過模擬仿真、覆蓋率分析和形式驗證,保證了模型的正確性和安全性以后,可以利用SCADE內置的代碼生成器KCG自動生成嵌入式產品代碼。它生成的代碼滿足一系列的安全特性,有良好的可讀性和接口,具有和手寫代碼相當的大小和效率。該代碼生成器通過了軍工及航空業及能源業相關標準的鑒定[5],因此,使用SCADE之后,不僅大大節省了編碼工作,而且完全免去了代碼的單元測試和對于單元測試的驗證 (即代碼覆蓋率分析),很大程度地節省了驗證工作和驗證時間。

4)集成階段的驗證

當得到源代碼之后,根據硬件平臺使用編譯器 (如:Tornado,GCC等)將源代碼編譯為目標代碼。高可靠性的軟件開發流程不僅需要對源代碼進行分析,還需要保證從源代碼到目標代碼的一致性。SCADE提供了CVK(Complier Verify Kit)工具包,能夠輔助驗證編譯器能否正確地將KCG生成的代碼編譯成目標碼。

5)開發流程管理

作為一個面向高可靠性軟件而設計的開發環境,SCADE在保證了嵌入式軟件的可靠性的前提之下,并通過和其他一些工具的配合保證了整個開發流程的生命周期數據管理。

①通過SCADE RM實現了開發過程中數據的可追溯性管理;

②通過SCC接口實現了開發過程中配置管理,由于SCADE以ASCII格式保存所有數據,并支持標準的配置管理界面。因此,可以方便的與市面上所有的配置管理工具建立橋接。

綜上所述,SCADE采用 “基于模型”的開發流程代替了“基于代碼”的開發流程,設計的結果是SCADE模型而不是代碼,從軟件開發重點從編碼階段提升到了設計階段;同時,不再通過對測試、或是無法定量衡量的評審來保證軟件的高可靠性,而是通過對整個開發流程有效的管理來保證軟件的高可靠性。

4 結 論

文中詳細介紹了以SCADE為核心的軟件開發平臺,采用該平臺進行高可靠性軟件開發,克服了傳統的以手工編碼為核心的開發流程的不足,將軟件開發重點由編碼階段提前到設計階段,可以顯著縮短軟件開發周期,降低開發成本,提高開發效率。更為重要的是,傳統軟件開發流程中的設計流程的驗證工作主要以手工方式進行,驗證的驗證工作難以實現,而在以SCADE為核心的開發平臺中,可以通過模型測試的方式進行需求驗證,該驗證進程可通過模型覆蓋率分析進行驗證;傳統軟件開發過程中的單元測試工作在該開發平臺中可以省略。目前,該開發平臺已經在航空軌道交通等多個高安全性的嵌入式軟件開發方面得到廣泛應用。作者將在后續文章中以具體案例對該開發平臺作進一步闡述。

[1]宋彬,沈懷容.航天產品單元可靠性評估軟件研究[J].裝備指揮技術學院學報,2002,12(4):54-57 SONG Bin,SEHN Huai-rong.Research on reliability evaluation software for spaceflight items[J].Equipment Command Cechnical College Journals,2001,12(4):54-57.

[2]石柱,何新貴.航天型號軟件生存周期模型選擇指南[J].計算機工程與設計,2000,21(6):43-47.SHI Zhu,HE Xin-gui.Guidelines on selecting an appropriate software Life-cycle model for a specific aerospace software project[J].Computer Engineering and Design,2000,21(6):43-47.

[3]楊麗莎,王慧.基于模型的嵌入式軟件設計[J].計算機應用研究,2004,21(12):76-78.YANG Li-sha,WANG Hui.Model-based design of embedded software[J].Application Research of Computers,2004,21(12):76-78.

[4]林楓.基于SCADE的形式化驗證技術研究[J].測控技術,2011,30(12):71-74.LIN Feng.Research on SCADE-Based formal verification technology[J].Measurement and Control Technology,2011,30(12):71-74.

[5]Jean-Louis Camus,Bernard Dion.Efficient development of airborne software with SCADE suite[M].Esterel Technologies,2011.

[6]Berry G.The Constructive Semantics of Pure Esterel Draft V3[M].Esterel Technologies,2009.

猜你喜歡
模型設計
一半模型
重要模型『一線三等角』
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
重尾非線性自回歸模型自加權M-估計的漸近分布
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 精品国产一区二区三区在线观看| 99热国产这里只有精品9九 | 亚洲无码不卡网| 久久不卡国产精品无码| 天天综合网站| 在线视频亚洲欧美| 东京热高清无码精品| 国产区网址| 国产69精品久久| 亚洲成人网在线观看| 99在线视频免费| 亚洲国产精品一区二区高清无码久久| 日本欧美视频在线观看| 国产女人18毛片水真多1| 亚洲精选无码久久久| 久久综合AV免费观看| 亚洲V日韩V无码一区二区 | 香蕉网久久| 9999在线视频| 午夜毛片福利| 日韩黄色大片免费看| 手机在线免费不卡一区二| 四虎成人精品| 国产成a人片在线播放| 亚洲三级成人| 91在线精品麻豆欧美在线| 91免费国产高清观看| 久久影院一区二区h| 99一级毛片| 久久动漫精品| 免费毛片视频| 亚洲精品第1页| 国产一区二区丝袜高跟鞋| 三上悠亚一区二区| 99在线观看精品视频| 欧美精品在线免费| 最新国产在线| 毛片一级在线| 亚洲免费福利视频| 激情六月丁香婷婷| 亚洲欧美一区在线| 91毛片网| 九九热精品视频在线| 91区国产福利在线观看午夜| 亚洲开心婷婷中文字幕| 国产成人精品视频一区二区电影 | 网友自拍视频精品区| 精品久久综合1区2区3区激情| 国产视频a| 欧洲高清无码在线| 不卡网亚洲无码| 国产网友愉拍精品视频| 国产精品亚洲专区一区| 亚洲综合18p| 三区在线视频| 国产成人a毛片在线| 欧美天堂在线| 99久久精品免费观看国产| 人妻无码中文字幕第一区| 这里只有精品免费视频| 一级毛片在线播放免费观看| 欧美精品啪啪一区二区三区| 五月天久久综合| 五月婷婷激情四射| 丰满人妻一区二区三区视频| 国产成人无码AV在线播放动漫 | 波多野结衣一二三| 再看日本中文字幕在线观看| 国产肉感大码AV无码| 狼友视频一区二区三区| 一本久道热中字伊人| 欧美日本视频在线观看| 亚洲动漫h| 日韩乱码免费一区二区三区| 99国产在线视频| 国内丰满少妇猛烈精品播| 不卡网亚洲无码| 91口爆吞精国产对白第三集| 国产鲁鲁视频在线观看| 国产成人无码久久久久毛片| 91成人在线观看| 亚洲一区二区三区麻豆|