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

裝備研制的代碼質(zhì)量提高方法研究

2016-02-23 03:41:34葛學(xué)仕陳書恒
微型電腦應(yīng)用 2016年10期
關(guān)鍵詞:質(zhì)量系統(tǒng)

葛學(xué)仕,陳書恒

裝備研制的代碼質(zhì)量提高方法研究

葛學(xué)仕,陳書恒

良好的代碼質(zhì)量在裝備研制中十分重要,論文從架構(gòu)、編碼、測試等環(huán)節(jié)分析了武器裝備軟件模塊可能存在的代碼質(zhì)量問題,提出了具體可行的軟件開發(fā)準(zhǔn)則,為較好保證軟件代碼質(zhì)量打下堅(jiān)實(shí)基礎(chǔ)。

代碼質(zhì)量;軟件架構(gòu);軟件測試

0 引言

隨著武器裝備的現(xiàn)代化、信息化、智能化,各類武器裝備的研制需要大量的軟件設(shè)計(jì)工作。當(dāng)前,對武器裝備軟件的關(guān)注主要側(cè)重于功能性方面,但對軟件本身的設(shè)計(jì)、編碼質(zhì)量并不關(guān)注。然而在武器裝備不斷更新?lián)Q代的背景下,軟件的設(shè)計(jì)、編碼質(zhì)量是不可忽視的,它將極大影響軟件的運(yùn)行效率、可靠性、維護(hù)成本、兼容性和擴(kuò)展性。

以2007年豐田踏板門事件為例,由于豐田汽車動力控制軟件結(jié)構(gòu)設(shè)計(jì)不合理、函數(shù)復(fù)雜度高、開發(fā)過程不規(guī)范,導(dǎo)致軟件缺陷不能被及時(shí)發(fā)現(xiàn),造成其在緊急情況下不能正常制動。最終,該事件造成高達(dá)16億美元的損失[1]。

因此良好的代碼質(zhì)量在裝備研制中是十分重要。良好的軟件代碼質(zhì)量主要依賴于簡潔合理的架構(gòu)設(shè)計(jì)、整潔干凈的編碼風(fēng)格、覆蓋全周期的軟件測試,它們不僅是武器裝備軟件設(shè)計(jì)應(yīng)該遵循的標(biāo)準(zhǔn),也是軟件設(shè)計(jì)過程中具有極高可操作性的具體步驟。

1 簡潔合理的架構(gòu)設(shè)計(jì)

軟件架構(gòu)設(shè)計(jì)是指對系統(tǒng)功能模塊的合理劃分,對功能模塊間耦合關(guān)系的明確定義,對外部預(yù)留接口的準(zhǔn)確規(guī)劃。無論是基于對象還是基于流程的軟件設(shè)計(jì),這些都是其中的關(guān)鍵問題。合理的架構(gòu)可以使軟件充分復(fù)用已有的資源,使軟件健壯地在各個(gè)平臺上運(yùn)行,使軟件適應(yīng)不斷的升級需求,同時(shí)降低開發(fā)周期、維護(hù)成本甚至決定整個(gè)項(xiàng)目的成敗。

設(shè)計(jì)模式是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的代碼設(shè)計(jì)經(jīng)驗(yàn)總結(jié)。對重要設(shè)計(jì)模式的合理使用可以有效提高架構(gòu)設(shè)計(jì)的質(zhì)量,避免架構(gòu)設(shè)計(jì)常見的錯(cuò)誤。經(jīng)典的設(shè)計(jì)模式有23種,如工廠模式、單實(shí)例模式、適配器模式、代理模式、觀察者模式等[2]。根據(jù)裝備研制中交聯(lián)設(shè)備多、遺留代碼多、升級改裝頻繁、控制流程復(fù)雜等特點(diǎn),適配器模式、外觀模式等設(shè)計(jì)模式尤其值得重視:

1.1 適配器模式

在裝備研制中,往往需要與許多外部資源或系統(tǒng)集成進(jìn)行數(shù)據(jù)交互或提供服務(wù)。例如,當(dāng)飛機(jī)導(dǎo)航系統(tǒng)需要獲取慣導(dǎo)系統(tǒng)數(shù)據(jù)時(shí),通常的做法是由慣導(dǎo)系統(tǒng)來提供一系列固定的對外接口,導(dǎo)航系統(tǒng)通過直接調(diào)用這些接口來獲實(shí)時(shí)數(shù)據(jù)。雖然這樣做能夠很好地完成功能性要求,但會造成系統(tǒng)的不良耦合。當(dāng)導(dǎo)航系統(tǒng)需要被移植到使用其他慣導(dǎo)系統(tǒng)的飛機(jī)上時(shí),就可能造成導(dǎo)航系統(tǒng)需要修改大量的代碼的問題甚至重新開發(fā),因?yàn)閷T導(dǎo)數(shù)據(jù)獲取可能出現(xiàn)在導(dǎo)航系統(tǒng)的任何地方。

適配器模式為此提供了較好的解決方案,如圖1所示:

圖1 原系統(tǒng)獲取導(dǎo)航數(shù)據(jù)方式

當(dāng)任務(wù)系統(tǒng)需要獲取慣導(dǎo)數(shù)據(jù)時(shí),它并不需要知道任何外部細(xì)節(jié),而是給出它所需要的接口定義。由適配器通過組合調(diào)用慣導(dǎo)系統(tǒng)接口等方式來實(shí)現(xiàn)任務(wù)系統(tǒng)所定義的接口。在使用該模式后,如圖2所示:

圖2 適配器模式下獲取導(dǎo)航數(shù)據(jù)方式

對于不同的慣導(dǎo)系統(tǒng)只需要更新適配器的實(shí)現(xiàn),而任務(wù)系統(tǒng)不會受到任何影響。

1.2 外觀模式

裝備研制中,軟件系統(tǒng)大多較為復(fù)雜,擁有較多的子系統(tǒng)和外部系統(tǒng),通過對它們的組合、協(xié)作,來完成軟件需要實(shí)現(xiàn)的功能。但在這類軟件設(shè)計(jì)過程中,大多存在子系統(tǒng)或外部系統(tǒng)暴露過多的細(xì)節(jié),耦合度較高的問題。以某系統(tǒng)的硬件初始化過程為例,通常的設(shè)計(jì)是,系統(tǒng)的初始化函數(shù)會依次調(diào)用ARC 429總線、內(nèi)部串行總線、北斗、GPS等模塊的端口設(shè)定、初始化命令發(fā)送、地址注冊等函數(shù),如圖3所示:

圖3 原系統(tǒng)初始化過程

但對于系統(tǒng)初始化過程的業(yè)務(wù)邏輯來說,各個(gè)硬件模塊的初始化細(xì)節(jié)并不應(yīng)該是關(guān)注的重點(diǎn),逐一調(diào)用各個(gè)模塊的初始化函數(shù)會使系統(tǒng)與它們都發(fā)生耦合,導(dǎo)致各個(gè)子系統(tǒng)的初始化過程與系統(tǒng)本身的初始化邏輯混雜在一起,不利于核心業(yè)務(wù)邏輯的維護(hù)。因此,合理的設(shè)計(jì)模式是增加HardWare這個(gè)硬件外觀類來屏蔽核心業(yè)務(wù)與各個(gè)子系統(tǒng)的耦合,在系統(tǒng)的初始化函數(shù)中,只需要調(diào)用HardWare類封裝的Init函數(shù)來實(shí)現(xiàn)各個(gè)模塊的初始化工作,如圖4所示:

圖4 外觀模式下初始化過程

雖然上述設(shè)計(jì)模式僅是經(jīng)典設(shè)計(jì)模式中的很小一部分,但從兩個(gè)范例中已經(jīng)可以看出它們在架構(gòu)設(shè)計(jì)中的作用,如果在架構(gòu)設(shè)計(jì)中能夠合理準(zhǔn)確地使用所有的設(shè)計(jì)模式,不僅會使軟件設(shè)計(jì)變得非常容易,研發(fā)效率大幅提高,也是高質(zhì)量代碼的有力保障。

2 整潔干凈的編碼

武器裝備的軟件開發(fā)周期短,穩(wěn)定性要求高,開發(fā)人員在開發(fā)過程中往往僅重視軟件的功能與性能指標(biāo),忽視軟件的代碼質(zhì)量。較差的源碼雖然不會直接影響軟件的使用特性,但對軟件的升級維護(hù)、功能擴(kuò)展、測試驗(yàn)證會帶來較大的影響。尤其是維護(hù)歷史久遠(yuǎn)、編寫不良的軟件,其成本不亞于完全新編寫[3]。編寫整潔的代碼應(yīng)該具有可讀性性好、邏輯清晰、擴(kuò)展簡易的特點(diǎn)。為了達(dá)到這些目標(biāo),以下準(zhǔn)則是編寫代碼過程中必須遵守的。

2.1 合理的命名

源碼中變量、函數(shù)、類、文件都需要名字,命名的合理性是代碼可讀性的關(guān)鍵因素。不合理的命名會使代碼變得雜亂,使閱讀者無法在短時(shí)間內(nèi)理解。使代碼命名變得合理應(yīng)該遵循以下的命名規(guī)則:

1)名副其實(shí),名字應(yīng)能夠不借助注釋準(zhǔn)確描述變量、函數(shù)的功能。

正面例子:

TimeSinceStartUp

反面例子:

T//開機(jī)至今的時(shí)間

2)避免名字中的誤導(dǎo)信息,對變量做有意義的區(qū)分,尤其應(yīng)避免數(shù)字在命名中出現(xiàn)如N1、N2。在命名時(shí)同樣應(yīng)避免INFO、DATA等沒有區(qū)分度的單詞,因?yàn)榭吹揭粋€(gè)ProductInfo變量,讀者并不能從命名中得知這個(gè)變量包含的究竟是什么信息。

3)使用可以被讀出來且易于檢索的名字。

4)避免思維映射和雙關(guān)語

2.2 合理的注釋量

注釋在程序運(yùn)行時(shí)不起任何作用,但它卻是優(yōu)秀代碼的關(guān)鍵因素之一。合理的注釋不僅能夠幫助讀者理解程序的設(shè)計(jì)原理,幫助程序員記錄開發(fā)時(shí)的思想,也是測試人員進(jìn)行白盒測試的重要依據(jù)。但注釋的數(shù)量并非越多越好,過多的依賴注釋會使程序員忽視代碼本身的可讀性,注釋僅應(yīng)該在說明函數(shù)輸入輸出要求、說明文件或類的功能、說明重要模塊思想等時(shí)刻出現(xiàn),注釋過多一般是添加了不必要的說明,或是代碼可讀性太差不得不使用注釋說明。

2.3 函數(shù)長度與參數(shù)量

函數(shù)是程序?qū)崿F(xiàn)某項(xiàng)單一功能的最小模塊,函數(shù)設(shè)計(jì)應(yīng)遵循精簡復(fù)用的原則。一般來說設(shè)計(jì)合理的函數(shù)代碼函數(shù)不應(yīng)超過20行,函數(shù)的輸入?yún)?shù)不超過3個(gè)。過長的函數(shù)或過多的輸入?yún)?shù)往往意味著函數(shù)違背了單一功能的原則,這不僅會使函數(shù)本身的實(shí)現(xiàn)晦澀難懂,還會嚴(yán)重影響函數(shù)的復(fù)用性,使代碼變得冗長影響維護(hù)成本和效率。另一方面,過長的函數(shù)和過多的參數(shù)輸入會大大提高函數(shù)的單元測試的難度。為了實(shí)現(xiàn)相同的測試覆蓋度,每增加一行代碼、增加一個(gè)輸入?yún)?shù),對應(yīng)的測試用例需要幾何級數(shù)的增加。

實(shí)現(xiàn)整潔干凈的代碼風(fēng)格需要程序員從編寫代碼的每一個(gè)細(xì)節(jié)入手,提高代碼的可讀性,使代碼結(jié)構(gòu)變得合理。但這并不意味著維護(hù)良好的代碼風(fēng)格會影響裝備軟件的開發(fā)進(jìn)度,相反的可讀性較好的代碼可以大量減少文檔維護(hù)的需求、降低后續(xù)維護(hù)的時(shí)間成本、降低測試的難度并減少錯(cuò)誤發(fā)生的概率,從而大大提升開發(fā)效率。

3 覆蓋全周期的測試設(shè)計(jì)優(yōu)秀的源碼,測試是必不可少的組成部分,測試不僅可以驗(yàn)證程序正確性,也是程序設(shè)計(jì)思想的體現(xiàn)。在編寫程序之前相應(yīng)的測試用例就應(yīng)編制完成,因?yàn)槌绦蜻\(yùn)行的各種可能出現(xiàn)的異常情況,在設(shè)計(jì)時(shí)就應(yīng)被充分考慮,而編寫測試用例能夠很好的幫助程序員思考各種極端情況下程序的運(yùn)行狀態(tài),減少設(shè)計(jì)缺陷發(fā)生的概率[4]。

測試用例的編制依據(jù)應(yīng)是軟件需求而非代碼本身和測試覆蓋度。無論代碼是否運(yùn)行良好,違背需求設(shè)計(jì)的程序都是存在嚴(yán)重設(shè)計(jì)缺陷的。當(dāng)然,測試的對象并不僅是代碼,軟件需求、數(shù)據(jù)庫設(shè)計(jì)、人機(jī)界面設(shè)計(jì)同樣需要測試。如軟件需求的測試就要對需求的完備性、無二異性、正確性、可實(shí)現(xiàn)性進(jìn)行考察,該測試一般采用結(jié)對評審的方式經(jīng)行,業(yè)務(wù)流程和狀態(tài)建模可作為測試的輔助手段。

軟件測試不是萬能的,它只能盡可能地發(fā)現(xiàn)代碼中存在的缺陷,但更多的時(shí)候還是需要程序員通過良好的編碼習(xí)慣來避免缺陷的發(fā)生,因?yàn)閷τ谌毕莸男拚鶗胄碌娜毕荩绕涫窃诰幋a風(fēng)格不良的代碼上進(jìn)行修改。

4 總結(jié)

本文從軟件架構(gòu)、編碼、測試等環(huán)節(jié)分析了武器裝備研制中軟件編碼質(zhì)量的重要性,并對如何提高軟件代碼質(zhì)量提出了具體的、具有可操作性的建議與方法。使用合理的設(shè)計(jì)模式、遵循規(guī)范的編碼原則、借助覆蓋全周期的測試手段,可以大幅提升軟件代碼的質(zhì)量,從而降低升級維護(hù)成本、控制潛在缺陷的發(fā)生率。

[1] 鄒德萍. 豐田召回事件的警示 [J]. 資源與人居環(huán)境. 2010 (07)76-78.

[2] 楊莉萍. 面向?qū)ο蟮姆椒ê驮O(shè)計(jì)模式 [J]. 計(jì)算機(jī)應(yīng)用與軟件. 2006 (03):36-38.

[3] robert c. Martin.clean code[M].北京:電子工業(yè)出版社,2012.

[4] 蔣曉陽. 武器軟件的測試與維護(hù)[J]. 火力與指揮控制2005(30).200-201.

Research on Improving Coding Quality in Armament Software Development

Ge Xueshi, Chen Shuheng
(Naval Academy of Armament, Shanghai 200436, China)

The code-quality plays an important role in development of armament. In this paper, possible code-quality related problems in architect design, coding and testing are well analyzed. Then corresponding software development rules are proposed. And solid foundation ensuring better code-quality in future software development can be established by these rules.

Coding quality; Software architect; Software testing

TP393

A

1007-757X(2016)010-0059-02

2016.08.29)

作者信息:葛學(xué)仕(1987-),海軍裝備研究院,碩士研究生,研究方向:軟件工程,流媒體技術(shù)與應(yīng)用,雷達(dá)與電子對抗技術(shù),上海 200436

陳書恒(1984-),海軍裝備研究院,工程師,研究方向:航空電子總體,上海 200436

猜你喜歡
質(zhì)量系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
“質(zhì)量”知識鞏固
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
質(zhì)量守恒定律考什么
基于PowerPC+FPGA顯示系統(tǒng)
做夢導(dǎo)致睡眠質(zhì)量差嗎
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)于質(zhì)量的快速Q(mào)&A
主站蜘蛛池模板: 青青青视频蜜桃一区二区| 91久草视频| 国产午夜精品鲁丝片| 亚卅精品无码久久毛片乌克兰| 国产精品精品视频| AV片亚洲国产男人的天堂| 在线免费a视频| 免费高清自慰一区二区三区| 国产导航在线| 欧美19综合中文字幕| 欧美日韩久久综合| 在线观看亚洲成人| 日韩欧美国产成人| 成人一级黄色毛片| 波多野结衣中文字幕一区| 免费人成视网站在线不卡| 国产精品免费福利久久播放| 色婷婷天天综合在线| 青青热久免费精品视频6| 国产亚洲欧美另类一区二区| 亚洲浓毛av| 亚洲福利视频一区二区| 日韩在线影院| 国产96在线 | 亚洲国产中文在线二区三区免| 无码免费视频| 国产精品福利在线观看无码卡| 亚洲成在线观看| 爆乳熟妇一区二区三区| 伦精品一区二区三区视频| 国产不卡在线看| 日韩无码白| 日韩欧美国产另类| 国产精品一区在线麻豆| 欧美一级色视频| 亚洲福利一区二区三区| 在线观看国产小视频| 熟女成人国产精品视频| 国产精品对白刺激| 亚洲精品国产日韩无码AV永久免费网| 伊人色综合久久天天| 午夜人性色福利无码视频在线观看| 久久综合五月婷婷| 国产呦视频免费视频在线观看| 久久国产香蕉| 伊人成人在线视频| 色亚洲成人| 国内熟女少妇一线天| 国产精品所毛片视频| 欧美国产在线看| 天堂岛国av无码免费无禁网站| 精品国产欧美精品v| 97狠狠操| 国产人成乱码视频免费观看| 亚洲国产午夜精华无码福利| 国产精品福利在线观看无码卡| 一级香蕉人体视频| 亚洲a级在线观看| 亚洲人视频在线观看| 成人第一页| 国产91av在线| 无码国产伊人| 欧美怡红院视频一区二区三区| 亚洲人免费视频| 国产日韩AV高潮在线| 国产精品粉嫩| 天堂成人在线视频| 午夜激情婷婷| 尤物亚洲最大AV无码网站| 精品一区二区三区水蜜桃| 99久久精品免费看国产免费软件| 丁香五月激情图片| 亚洲无码37.| 欧美a在线看| 日本黄色不卡视频| 成人免费视频一区二区三区| 成年免费在线观看| 91探花国产综合在线精品| 国产丝袜啪啪| 国产激情国语对白普通话| 国产香蕉97碰碰视频VA碰碰看| 91在线一9|永久视频在线|