亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式產(chǎn)品平臺(tái)開(kāi)發(fā)方法的研究與應(yīng)用

        2018-03-30 02:26:56徐繼蕓
        電子技術(shù)與軟件工程 2017年16期
        關(guān)鍵詞:嵌入式

        徐繼蕓

        摘要

        傳統(tǒng)嵌入式系統(tǒng)的開(kāi)發(fā),受到目標(biāo)平臺(tái)多樣、開(kāi)發(fā)工具不完善、需要軟硬件協(xié)同開(kāi)發(fā)等因素影響,往往開(kāi)發(fā)周期較長(zhǎng),效率較低。同時(shí),一個(gè)產(chǎn)品線(xiàn)下的研發(fā)團(tuán)隊(duì)多以項(xiàng)目組為單位獨(dú)立開(kāi)發(fā),項(xiàng)目組之間缺乏有效的溝通和技術(shù)共享,導(dǎo)致重復(fù)開(kāi)發(fā),基礎(chǔ)模塊升級(jí)、維護(hù)不同步等問(wèn)題。通過(guò)開(kāi)發(fā)以通用構(gòu)建模塊為基礎(chǔ)的產(chǎn)品平臺(tái)可以有效減少重復(fù)開(kāi)發(fā),提升產(chǎn)品研發(fā)效率。同時(shí),在嵌入式產(chǎn)品平臺(tái)的開(kāi)發(fā)中,通過(guò)合理的系統(tǒng)架構(gòu),綜合使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā),持續(xù)集成等敏捷開(kāi)發(fā)方法和工具,提升產(chǎn)品平臺(tái)開(kāi)發(fā)效率,保障產(chǎn)品平臺(tái)質(zhì)量。

        【關(guān)鍵詞】嵌入式 產(chǎn)品平臺(tái) 敏捷開(kāi)發(fā) 持續(xù)集成 通用構(gòu)建模塊 測(cè)試驅(qū)動(dòng)開(kāi)發(fā)

        1 引言

        對(duì)于一個(gè)有多個(gè)類(lèi)似產(chǎn)品的產(chǎn)品線(xiàn),構(gòu)建一個(gè)以通用構(gòu)建模塊為基礎(chǔ)的產(chǎn)品平臺(tái),可以加快產(chǎn)品開(kāi)發(fā)速度,降低產(chǎn)品開(kāi)發(fā)成本,控制風(fēng)險(xiǎn)。

        產(chǎn)品平臺(tái)的目標(biāo)是將產(chǎn)品線(xiàn)成熟的CBB(Comnion Building Block,通用構(gòu)建模塊)抽?。ǔ橄蟆⒅貥?gòu))出來(lái),提供給應(yīng)用開(kāi)發(fā)人員使用。一方面避免重復(fù)開(kāi)發(fā)基礎(chǔ)模塊,減輕應(yīng)用開(kāi)發(fā)的復(fù)雜度和工作量;另一方面,也避免了多個(gè)項(xiàng)目組各自封閉開(kāi)發(fā)導(dǎo)致基礎(chǔ)模塊升級(jí),Bug修改不同步等問(wèn)題。

        產(chǎn)品平臺(tái)的核心是通用構(gòu)建CBB,CBB的核心是共性和可變性分析(Commonality and Variablity Analisys)。

        下面介紹構(gòu)建產(chǎn)品平臺(tái)的核心要點(diǎn),以及相關(guān)的流程、方法和工具。

        2 產(chǎn)品平臺(tái)總體架構(gòu)

        針對(duì)中大型嵌入式產(chǎn)品平臺(tái),架構(gòu)需要遵循如下2條核心原則:

        2.1 分層

        為了保持良好的結(jié)構(gòu),對(duì)于較大型系統(tǒng)的產(chǎn)品平臺(tái),邏輯架構(gòu)一定需要分層、分包(包,在C++代碼中對(duì)應(yīng)的是namespace)設(shè)計(jì)。越底層,模塊功能越趨向工具,越高層,越趨向業(yè)務(wù)邏輯。

        2.2 平臺(tái)無(wú)關(guān)設(shè)計(jì)

        平臺(tái)無(wú)關(guān)設(shè)計(jì)對(duì)于嵌入式平臺(tái)非常重要,目的是切換硬件平臺(tái)后,產(chǎn)品平臺(tái)、應(yīng)用程序無(wú)需改動(dòng),只需要針對(duì)目標(biāo)平臺(tái)做一個(gè)實(shí)現(xiàn)即可。一般使用依賴(lài)倒置的設(shè)計(jì)方法實(shí)現(xiàn)平臺(tái)無(wú)關(guān)。

        產(chǎn)品平臺(tái)邏輯架構(gòu)圖如圖1產(chǎn)品平臺(tái)邏輯構(gòu)架圖所示。

        3 產(chǎn)品平臺(tái)的開(kāi)發(fā)方法和工具

        一個(gè)典型的嵌入式產(chǎn)品平臺(tái)物理架構(gòu)視圖如圖2。

        4 CBB開(kāi)發(fā)流程

        CBB是產(chǎn)品平臺(tái)的核心組成,CBB開(kāi)發(fā)流程如下:

        (1)模塊需求分析;

        (2)模塊設(shè)計(jì);

        (3)模塊接口設(shè)計(jì);

        (4)編寫(xiě)接口測(cè)試用例,偏重可用性測(cè)試(即TDD,可有效幫助接口設(shè)計(jì));

        (5)模塊設(shè)計(jì)評(píng)審;

        (6)編碼;

        (7)完善單元測(cè)試用例。

        需要說(shuō)明的是步驟4,即TDD(Test-driven Development)——測(cè)試驅(qū)動(dòng)開(kāi)發(fā)。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)是極限編程中倡導(dǎo)的軟件開(kāi)發(fā)方法,測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的目的是取得快速反饋,并使用說(shuō)明主線(xiàn)(illustrate the main line)的方法來(lái)構(gòu)建程序。

        經(jīng)典的測(cè)試驅(qū)動(dòng)開(kāi)發(fā)流程,如圖3測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)流程圖所示。

        為了更敏捷的做設(shè)計(jì)評(píng)審,在設(shè)計(jì)階段,可以使用TDD來(lái)完善接口設(shè)計(jì),我們稱(chēng)之為T(mén)DDesign(測(cè)試驅(qū)動(dòng)設(shè)計(jì)),優(yōu)化的TDD如圖4CBB開(kāi)發(fā)中的測(cè)試驅(qū)動(dòng)(TDD)開(kāi)發(fā)流程圖所示。

        即,在接口設(shè)計(jì)完成后,實(shí)現(xiàn)前,先利用單元測(cè)試框架,根據(jù)業(yè)務(wù)流,調(diào)用接口寫(xiě)幾個(gè)單元測(cè)試用例。

        在實(shí)踐中TDD的好處很明顯:在寫(xiě)TDD測(cè)試用例的過(guò)程中就可能發(fā)現(xiàn)接口設(shè)計(jì)的不合理。而且,對(duì)于持續(xù)集成的系統(tǒng),TDD也并沒(méi)有增加工作量。

        另一個(gè)需要特別說(shuō)明是步驟5:對(duì)設(shè)計(jì)評(píng)審的關(guān)注。要求的設(shè)計(jì)評(píng)審內(nèi)容:

        (1)總體說(shuō)明(若結(jié)構(gòu)復(fù)雜則需有邏輯架構(gòu)視圖);

        (2)接口使用示例;

        (3)類(lèi)圖,序列圖(UML);

        (4)設(shè)計(jì)決策;

        (5)接口(直接附頭文件,不要粘貼到設(shè)計(jì)文檔)。

        設(shè)計(jì)評(píng)審保證了CBB的設(shè)計(jì)質(zhì)量,不會(huì)因?yàn)閳F(tuán)隊(duì)成員素質(zhì)的不同而出現(xiàn)重大的設(shè)計(jì)問(wèn)題。

        CBB代碼上傳到代碼倉(cāng)庫(kù)后,剩下的就是自動(dòng)化工具的工作了:依次自動(dòng)觸發(fā)單元測(cè)試,集成測(cè)試,發(fā)布測(cè)試,最后郵件發(fā)送集成結(jié)果給開(kāi)發(fā)人員。

        5 持續(xù)集成流程

        持續(xù)集成流程如圖5所示。

        集成測(cè)試除了集成測(cè)試用例外,還復(fù)用單元測(cè)試的測(cè)試用例。集成測(cè)試運(yùn)行單元測(cè)試的用例時(shí),并非順序運(yùn)行所有模塊(每個(gè)模塊初始化,測(cè)試,反初始化后再運(yùn)行下個(gè)模塊),而是通過(guò)配置一定的依賴(lài)關(guān)系和策略,初始化一系列模塊后,運(yùn)行測(cè)試用例,最后,再反初始化這些模塊。

        6 發(fā)布流程

        發(fā)布流程如圖6所示,自動(dòng)化打包,并對(duì)發(fā)布包從用戶(hù)使用的過(guò)程測(cè)試一遍。發(fā)布流程每天構(gòu)建,以保證每天都處于可發(fā)布狀態(tài)。所有過(guò)程均自動(dòng)化。

        7 主要工具

        幾個(gè)關(guān)鍵的工具:

        (1)Jenkins:做持續(xù)集成工具,使用腳本輔助實(shí)現(xiàn)嵌入式系統(tǒng)的遠(yuǎn)程部署測(cè)試。

        (2)GTest:Google的單元測(cè)試框架。

        (3)CMake:高效友好的自動(dòng)編譯工具,優(yōu)于configure/make。

        (4)Doxygen:自動(dòng)生成接口說(shuō)明,當(dāng)然前提是規(guī)范好代碼的接口說(shuō)明格式。

        (5)MediaWiki:wiki工具,做CBB發(fā)布和技術(shù)文檔的發(fā)布平臺(tái)。人人貢獻(xiàn)的思想是推崇提倡的。

        8 總結(jié)

        本文介紹的嵌入式產(chǎn)品平臺(tái)已經(jīng)在星網(wǎng)視易公司的KTV產(chǎn)品線(xiàn)得到應(yīng)用,傳統(tǒng)上,該產(chǎn)品線(xiàn)一款基于全新硬件平臺(tái)的系統(tǒng),開(kāi)發(fā)周期大概需要10?12個(gè)月,而基于產(chǎn)品平臺(tái),產(chǎn)品開(kāi)發(fā)效率、質(zhì)量顯著提升,芯片平臺(tái)切換時(shí)間大幅縮短至約原來(lái)的1/4。

        實(shí)踐證明,一個(gè)產(chǎn)品線(xiàn)下多個(gè)產(chǎn)品并行開(kāi)發(fā)時(shí),使用產(chǎn)品平臺(tái),可以大幅加快產(chǎn)品開(kāi)發(fā)效率、提升質(zhì)量、降低成本。同時(shí),合理的系統(tǒng)架構(gòu),并輔以敏捷方法的使用,可以極大加快產(chǎn)品開(kāi)發(fā)效率。

        參考文獻(xiàn)

        [1]Duvall? Paul M,,Steve Matyas,and Andrew Glover. Continuous integration: improving software quality and reducing risk [M]. Pearson Education, 2007.

        [2]Beck,Kent.Test-driven development: by example[M] . Addison-Wesley Professional, 2003.

        [3]徐仕成.持續(xù)集成在現(xiàn)代軟件開(kāi)發(fā)中的應(yīng)用與研究[D].中南大學(xué),2007.

        [4]紀(jì)海.基于云計(jì)算的產(chǎn)品平臺(tái)設(shè)計(jì)服務(wù)研究[D].機(jī)械科學(xué)研究總院,2012.

        [5]戴建國(guó),趙慶展,郭理,秦懷斌.持續(xù)集成在項(xiàng)目開(kāi)發(fā)中的應(yīng)用研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2009(10):2573-2576.

        [6]Marta Larusdottir, Jan Gulliksen, Asa Cajander. A License To Ki11-Improving UCSD In Agile Development[J]. The Journal of Systems & Software,2016.

        [7]GB/T 22033-2008《信息技術(shù)嵌入式系統(tǒng)術(shù)語(yǔ)》概要[J].信息技術(shù)與標(biāo)準(zhǔn) 化,2009(08):38-40.

        [8]A g i1e software development,wikipedia.org[EB/0L].http:// en.wikipedia.org/wiki/Agile_ software-development.

        [9]Test-driven development,wikipedia. org [EB/OL] . http: //en. wikipedia. org/ wiki/Agile_sof tware-development.

        猜你喜歡
        嵌入式
        Focal&Naim同框發(fā)布1000系列嵌入式揚(yáng)聲器及全新Uniti Atmos流媒體一體機(jī)
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
        電子制作(2019年7期)2019-04-25 13:17:14
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
        嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
        電子制作(2018年18期)2018-11-14 01:48:16
        嵌入式PLC的設(shè)計(jì)與研究
        電子制作(2018年16期)2018-09-26 03:27:18
        搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
        基于嵌入式系統(tǒng)Windows CE的應(yīng)用程序開(kāi)發(fā)
        嵌入式單片機(jī)在電機(jī)控制系統(tǒng)中的應(yīng)用探討
        電子制作(2017年8期)2017-06-05 09:36:15
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        Altera加入嵌入式視覺(jué)聯(lián)盟
        99国内精品久久久久久久| 久久久精品久久日韩一区综合 | 日本高清中文字幕一区二区三区| 亚洲 成人 无码 在线观看| 淫欲一区二区中文字幕| 亚洲高清自偷揄拍自拍 | 男人边做边吃奶头视频| 4399理论片午午伦夜理片| 人妻av中文字幕无码专区| 国产女高清在线看免费观看| 国内精品91久久久久| 亚洲毛片av一区二区三区| 一区二区三区四区免费国产视频| 国产视频一区二区三区在线免费| 色与欲影视天天看综合网| av潮喷大喷水系列无码| 97精品国产91久久久久久久| 超碰性爱| 国产精品美女自在线观看| 国产精品一区二区三区四区亚洲| 亚洲精品成人无百码中文毛片| 一本色道久久综合无码人妻| 人妻无码一区二区| 国产毛片一区二区三区| av剧情演绎福利对白| 色婷婷综合久久久中文字幕| 午夜无码伦费影视在线观看| 91免费播放日韩一区二天天综合福利电影 | 国产性虐视频在线观看| 国产喷水1区2区3区咪咪爱av| 国产精品jizz视频| 自拍偷拍亚洲一区| 久久亚洲国产精品五月天| av一区二区在线网站| 亚洲一区二区三区av无码| 亚洲人成绝费网站色www| 国产精品久久这里只有精品| 亚洲av老熟女一区二区三区| 欧美老妇交乱视频在线观看| 久久精品无码中文字幕 | 国产精品免费久久久久影院仙踪林|