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

?

基于RuleWizard的定制規(guī)則在核電軟件中的應(yīng)用

2016-04-14 13:49:29陳曉凡
電腦知識(shí)與技術(shù) 2016年5期

陳曉凡

摘要:核電軟件作為我國(guó)的新興產(chǎn)業(yè),對(duì)于我國(guó)的科學(xué)發(fā)展以及核電品牌的樹立具有非凡的作用。該文主要介紹了基于Rulewizard的定制規(guī)則在核電軟件中的應(yīng)用,實(shí)現(xiàn)了核電軟件編碼規(guī)范由人工走查方式向自動(dòng)化檢測(cè)的轉(zhuǎn)變。該方法將測(cè)試人員從重復(fù)、低效的工作中解脫出來(lái),對(duì)其他不同的新興軟件行業(yè)也具有一定的參考作用。

關(guān)鍵詞:Rulewizard;編碼規(guī)范;核電軟件

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)05-0055-02

Abstract: As China's new nuclear power software industry, for our scientific development of nuclear power and establish a brand with extraordinary effect. In this paper, based on custom rules Rulewizard application software in nuclear power, nuclear power to achieve the transition from the manual software coding standards Walk way to automate testing. This method testers from repetition, inefficient work freed for other different emerging software industry also has a certain reference.

Key words: Rulewizard; coding standards;nuclear software

1 概述

為加快推進(jìn)核電技術(shù)的發(fā)展與創(chuàng)新,我國(guó)決定引進(jìn)具有世界先進(jìn)水平的AP1000三代核電技術(shù),并通過(guò)建設(shè)三門和海陽(yáng)2個(gè)依托項(xiàng)目,組織對(duì)關(guān)鍵技術(shù)的消化吸收攻關(guān)和研發(fā),走出一條消化吸收再創(chuàng)新的核電自主發(fā)展的新道路[1]。消化-吸收-再創(chuàng)新發(fā)展模式的根本目標(biāo)是形成具有自主知識(shí)產(chǎn)權(quán)的核電技術(shù)及品牌[2],而實(shí)現(xiàn)核電軟件自主化的關(guān)鍵是設(shè)計(jì)自主化,包括設(shè)計(jì)能力、設(shè)計(jì)手段和設(shè)計(jì)工具的自主化。相比硬件自主化水平的提升,我國(guó)核電軟件自主化水平發(fā)展相對(duì)比較薄弱,同時(shí),由于核電信息化程度和管理效率方面的落后使得自主化軟件發(fā)展遠(yuǎn)落后于核電發(fā)達(dá)國(guó)家。核電軟件自主化發(fā)展滯后,嚴(yán)重影響國(guó)內(nèi)核電行業(yè)的核心競(jìng)爭(zhēng)力和核電研發(fā)企業(yè)的可持續(xù)發(fā)展能力。因此,大力推動(dòng)自主化軟件的發(fā)展對(duì)核電先進(jìn)研發(fā)體系建設(shè)和核電技術(shù)自主創(chuàng)新發(fā)展都具有重要意義[3]。

但自主開(kāi)發(fā)軟件需要長(zhǎng)期堅(jiān)持研究和經(jīng)驗(yàn)積累才能具備。核電自主軟件依然是我國(guó)核電先進(jìn)研發(fā)體系建設(shè)的薄弱環(huán)節(jié)。如何加強(qiáng)和加快適合我國(guó)核電技術(shù)需要的具有自主知識(shí)產(chǎn)權(quán)的軟件研發(fā),以推動(dòng)核電技術(shù)的可持續(xù)發(fā)展,已成為擺在核電研發(fā)企業(yè)面前的重要任務(wù)[4]。核電軟件的核心最直觀的體現(xiàn)就是代碼,推動(dòng)核電軟件的正規(guī)化、可持續(xù)發(fā)展化必須首先推動(dòng)代碼的規(guī)范化。

在核電軟件研發(fā)的道路上,我們不再只關(guān)注“量”的積累,而開(kāi)始強(qiáng)調(diào)“質(zhì)”的飛躍,而軟件測(cè)試就是軟件質(zhì)量保證的一種訴求,是質(zhì)量保證過(guò)程中所依賴的主要活動(dòng)之一[5]。

測(cè)試作為保證“質(zhì)”的重要手段,參與軟件開(kāi)發(fā)的全生命周期過(guò)程。具體如圖1所示:

其中編碼實(shí)現(xiàn)對(duì)應(yīng)的單元測(cè)試又可分為單元靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試,其中靜態(tài)測(cè)試作為軟件代碼測(cè)試的基礎(chǔ)項(xiàng),可以在不執(zhí)行軟件代碼的基礎(chǔ)上對(duì)程序進(jìn)行缺陷檢測(cè)。據(jù)有關(guān)數(shù)據(jù)統(tǒng)計(jì),代碼中的缺陷60%以上可以通過(guò)代碼審查(包括互查、走查、會(huì)議評(píng)審等形式)發(fā)現(xiàn)出來(lái)[5]。

2 核電規(guī)范

編程規(guī)范是有許多程序員在編程實(shí)踐中經(jīng)過(guò)長(zhǎng)時(shí)間積累的經(jīng)驗(yàn)教訓(xùn),經(jīng)過(guò)一些計(jì)算機(jī)領(lǐng)域的專家進(jìn)行反思,總結(jié)出來(lái)的一系列程序員在編程中應(yīng)該遵守的規(guī)則[6]。不同領(lǐng)域的編碼規(guī)范都不盡相同,例如較權(quán)威的有如下所示:

1)MISRAC

汽車工業(yè)軟件方面的C語(yǔ)言編碼規(guī)范,稱為MISRA-C:1998,于1988年由MISRA發(fā)布。MISRA-C:1998包括了127條C語(yǔ)言編碼規(guī)范,規(guī)則編號(hào)從1一直編到127(包括93項(xiàng)強(qiáng)制規(guī)則和34項(xiàng)建議規(guī)則)。2004年新版本發(fā)布,稱為MISRA-C:2004。許多重要的建議項(xiàng)的變更,規(guī)則也被重新編號(hào)??偣卜譃?1個(gè)類,包括“開(kāi)發(fā)環(huán)境”、“運(yùn)行錯(cuò)誤”等,總共141項(xiàng)規(guī)則(121項(xiàng)強(qiáng)制要求和20項(xiàng)建議要求)。MISRA C++由MISRA C++委員會(huì)于2008年發(fā)布,包含了246條規(guī)則。采用類似MISRAC的技術(shù)編寫,集成了大量C++相關(guān)的標(biāo)準(zhǔn),適用于苛刻性系統(tǒng)。

2)GJB5369-2005 編程規(guī)范

GJB5369-2005是由航天科工集團(tuán)公司提出,航天科工集團(tuán)公司二院所起草,于2005年發(fā)布的一套國(guó)家航天軟件軍用標(biāo)準(zhǔn)。它是依照MISRA C:1988和LDRA2000年的《 MISRA C Checking》并結(jié)合航天型號(hào)軟件特點(diǎn)經(jīng)過(guò)補(bǔ)充和剪裁而形成,共有15個(gè)類別,138項(xiàng)規(guī)則(98項(xiàng)強(qiáng)制要求和40項(xiàng)建議要求)。

而核電軟件作為一項(xiàng)新興的軟件行業(yè),與汽車工業(yè)軟件和航天軟件是不完全一樣的軟件種類,這也代表著其無(wú)法完全套用現(xiàn)存的編碼規(guī)范。因此在核電軟件的開(kāi)發(fā)中,我們也不斷地在提出和完善適合于本行業(yè)的編碼規(guī)范,并在內(nèi)部實(shí)施和使用。由于非常具體的編碼規(guī)范檢查項(xiàng)可能涉及核電軟件的保密內(nèi)容,在本文中不再具體展開(kāi)。但是我們依舊可以了解到核電軟件編碼規(guī)范的重要性。

3 引入自動(dòng)化的檢測(cè)工具Rulewizard

最初核電軟件編碼規(guī)范測(cè)試是采用人工走查的方式進(jìn)行,程序員將開(kāi)發(fā)好的代碼交由測(cè)試人員,測(cè)試人員再通過(guò)逐行掃描的方法找出代碼中違反規(guī)范的地方。當(dāng)軟件規(guī)模比較小時(shí),采用人工走查的方式勉強(qiáng)能在規(guī)定時(shí)間內(nèi)完成測(cè)試任務(wù),但隨著核電軟件的急速發(fā)展,代碼的數(shù)量級(jí)也成指數(shù)倍增長(zhǎng),此時(shí),傳統(tǒng)的人工走查方式耗費(fèi)大量的人力物力不說(shuō),還存在極高的誤報(bào)率和漏報(bào)率[7]。因此,針對(duì)核電軟件規(guī)范開(kāi)發(fā)對(duì)應(yīng)的自動(dòng)化的檢查工具,將測(cè)試人員從非常繁瑣且包含大量重復(fù)勞動(dòng)的任務(wù)中脫離出,并將更多的精力用來(lái)發(fā)現(xiàn)后續(xù)測(cè)試環(huán)節(jié)中的缺陷就顯得尤為重要。

目前絕大部分靜態(tài)掃描工具都內(nèi)嵌了MISRAC和GJB5369-2005 等各個(gè)行業(yè)或者企業(yè)比較權(quán)威的規(guī)范標(biāo)準(zhǔn)。但是能夠支持用戶自定義編碼規(guī)范的不多,我們從各種層面分析,最終采用Rulewizard工具用于核電軟件編碼規(guī)范自動(dòng)化檢測(cè)的設(shè)計(jì)和實(shí)現(xiàn)。

Rulewizard是Parasoft公司旗下的一款可以用于定制編碼規(guī)范檢測(cè)的工具,既內(nèi)嵌了比較權(quán)威的國(guó)際通用的標(biāo)準(zhǔn)規(guī)范,也提供用戶自定義編碼規(guī)范檢查項(xiàng)的功能。Rulewizard是目前發(fā)現(xiàn)唯一一款既提供圖形化界面開(kāi)發(fā)又支持添加Python代碼塊進(jìn)行規(guī)則定義的工具,具體見(jiàn)圖2、圖3所示(圖3源于圖2中Method方法的內(nèi)容)。

Rulewizard規(guī)則通常由以下元素組成:

節(jié)點(diǎn) — 規(guī)則基本構(gòu)造塊。他們可以是表達(dá)式、變量、常數(shù),函數(shù)或語(yǔ)句。

指令 — 定義節(jié)點(diǎn)的編程元素和節(jié)點(diǎn)的概念,以及定義兩個(gè)結(jié)點(diǎn)之間應(yīng)滿足的條件。

輸出 — 在結(jié)果窗口中顯示每次違反的信息。

屬性 — 規(guī)則的屬性,包括作者、標(biāo)題、規(guī)則編號(hào)和規(guī)則描述。

其中,基本規(guī)則只包含父節(jié)點(diǎn)、輸出和屬性。更復(fù)雜的規(guī)則包括父節(jié)點(diǎn)、多個(gè)指令節(jié)點(diǎn)以及節(jié)點(diǎn)之間一系列的條件關(guān)系、輸出和屬性。

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

核電軟件作為我國(guó)的新興產(chǎn)業(yè),對(duì)于我國(guó)的科學(xué)發(fā)展以及核電品牌的樹立具有非凡的作用。本文主要介紹了基于Rulewizard的定制規(guī)則在核電軟件中的具體應(yīng)用,實(shí)現(xiàn)了核電軟件編碼規(guī)范由人工走查方式向自動(dòng)化檢測(cè)的轉(zhuǎn)變。核電專用軟件集成研發(fā)過(guò)程中得到的數(shù)據(jù)經(jīng)驗(yàn)和成果,具有傳承性[8]。自動(dòng)化的編碼規(guī)范檢測(cè)既提高了測(cè)試效率、降低核電軟件中潛在的風(fēng)險(xiǎn),又可以讓后人少走彎路,對(duì)新興軟件行業(yè)的發(fā)展具有一定的參考作用。

參考文獻(xiàn):

[1] 林誠(chéng)格. 非能動(dòng)安全先進(jìn)核電廠AP1000[M]. 北京: 原子能出版社, 2008:4-15.

[2] 孫漢虹. 第三代核電技術(shù)AP1000[M]. 北京: 中國(guó)電力出版社, 2010: 1-5.

[3] 趙飛云, 于浩, 賀寅標(biāo), 等. CAE 分析技術(shù)在三代核電設(shè)備國(guó)產(chǎn)化中的任務(wù)和方向[J]. 計(jì)算機(jī)輔助工程, 2011, 20(3): 85-87.

[4] 趙飛云, 葉成, 姚彥貴. 自主化軟件在核電先進(jìn)研發(fā)體系中的作用[J]. 計(jì)算機(jī)輔助工程, 2015, 05: 71-75.

[5] 朱少民. 全程軟件測(cè)試[M]. 北京: 電子工業(yè)出版社, 2014: 14-15, 181.

[6] 皮基慶. 一種C語(yǔ)言靜態(tài)代碼檢測(cè)工具的研究與實(shí)現(xiàn)[D]. 北京: 北京郵電大學(xué), 2015: 27.

[7] Chess B, McGraw G .Static analysis for security[J]. IEEE Security & Privacy,2004, 2(6): 76-79.

[8] 趙飛云, 葉成, 姚彥貴. 自主化軟件在核電先進(jìn)研發(fā)體系中的作用[J]. 計(jì)算機(jī)輔助工程, 2015(5): 71-75.

岳池县| 外汇| 綦江县| 杂多县| 顺义区| 紫阳县| 桂林市| 浑源县| 蓝田县| 临澧县| 苍南县| 姚安县| 卢氏县| 涪陵区| 阿克苏市| 绍兴市| 兴山县| 富川| 杭锦旗| 南昌市| 图们市| 开平市| 邹平县| 洞口县| 渝中区| 迭部县| 湟中县| 西昌市| 台山市| 淳安县| 山东| 大方县| 江西省| 牙克石市| 曲水县| 汪清县| 阳江市| 西乡县| 大名县| 西城区| 敖汉旗|