《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技术 > 设计应用 > 使用开源IP的具体工程方法
使用开源IP的具体工程方法
Girish Managoli MindTree高级技术经理
摘要: 在嵌入式产品开发领域,随着产品上市时间不断缩短,质量要求不断提高,开发人员面临更大挑战。开源方法被视为能够同时满足更快开发周期和更高质量这两个目标的最佳解决方案,许多OEM和产品设计公司采用开源方案。
關(guān)鍵詞: 软件
Abstract:
Key words :

    在嵌入式產(chǎn)品開(kāi)發(fā)領(lǐng)域,隨著產(chǎn)品上市時(shí)間不斷縮短,質(zhì)量要求不斷提高,開(kāi)發(fā)人員面臨更大挑戰(zhàn)。開(kāi)源方法被視為能夠同時(shí)滿(mǎn)足更快開(kāi)發(fā)周期和更高質(zhì)量這兩個(gè)目標(biāo)的最佳解決方案,許多OEM和產(chǎn)品設(shè)計(jì)公司采用開(kāi)源方案。

    事實(shí)上,還有許多公司發(fā)現(xiàn)很難克服FUD(即恐懼、不確定性和疑慮)心理,這導(dǎo)致他們無(wú)法果斷決策采用開(kāi)源方案開(kāi)發(fā)產(chǎn)品。
 
    在產(chǎn)品開(kāi)發(fā)過(guò)程中,一邊是工程設(shè)計(jì)人員,即開(kāi)發(fā)工程師、架構(gòu)師和工程設(shè)計(jì)經(jīng)理,他們了解開(kāi)源及其優(yōu)勢(shì),但是沒(méi)有決策的權(quán)力;另一邊是管理層和法律部門(mén),他們可以作出決策,但卻可能沒(méi)有足夠的背景信息。我們?nèi)绾螐浐线@一差距呢?工程設(shè)計(jì)團(tuán)隊(duì)怎樣才能說(shuō)服管理層大膽使用開(kāi)源方案呢?本文將闡述在產(chǎn)品工程設(shè)計(jì)階段使用開(kāi)源方案時(shí)需要考慮的一些關(guān)鍵因素和指導(dǎo)方針。
 
1. 選擇正確的開(kāi)源組件。
 
可供下載和使用的開(kāi)源組件非常多,如何確定適合自己的產(chǎn)品?
 
除純技術(shù)因素(編程語(yǔ)言、接口、內(nèi)存和負(fù)載要求、組件在你的特定平臺(tái)/操作系統(tǒng)上的可移植性/可用性)之外,還有一些其它因素要考慮:
 
A.成熟度。需要回答的問(wèn)題包括:1)組件若用于商業(yè)產(chǎn)品中是否足夠成熟?2)是否有其它知名的產(chǎn)品使用此組件?如果此組件被廣泛使用,那么其開(kāi)發(fā)者和維護(hù)者可能會(huì)通過(guò)鏈接包裝網(wǎng)站上的推薦和成功案例。(我們可以用這些問(wèn)題作為忠告,但是需要自行驗(yàn)證!)
 
留意舊版本、發(fā)行時(shí)間表、更改日志、已確定的流程(每日構(gòu)建、文檔補(bǔ)丁提交流程等)和支持機(jī)制是了解組件歷史和成熟度的較好途徑。
 
B.許可授權(quán)。以下是兩個(gè)重要的考慮因素:1)組件許可證是否提供明確的記錄——特別是在組件的網(wǎng)站上;2)你需要怎樣對(duì)許可證進(jìn)行分析(我們將在本文的后面詳細(xì)說(shuō)明如何進(jìn)行此操作)。
 
C.支持。這里需要注意以下三點(diǎn):1)是否提供文檔 (可以是wikis、doxygen生成的文檔格式),如提供文檔,則會(huì)簡(jiǎn)化開(kāi)發(fā)人員/集成人員的工作;2)非官方文檔。即使不提供官方文檔,也可能有其他的熱心用戶(hù)提供幾個(gè)非官方版本。在網(wǎng)上搜索可以找到這些隱藏的珍貴資源;3)活躍的社區(qū)、論壇和郵件發(fā)送清單,這些都將對(duì)集成支持和檢測(cè)到的錯(cuò)誤的修復(fù)大有幫助。
 
2. 分析許可證。
 
一旦我們決定要使用某個(gè)組件,下一步工作就是分析此組件的許可證,以確定此組件是否適合我們的方案。組件的網(wǎng)站一般會(huì)提到適用于此組件的許可證。
 
此外,強(qiáng)烈建議下載最新版本的組件,并檢查嵌入的LICENSE/README文件。這兩個(gè)文件有時(shí)可能有不同之處,對(duì)此最好得到組件開(kāi)發(fā)人員和維護(hù)人員的說(shuō)明。
 
完整的許可證條款和條件通常采用法律措辭。從工程設(shè)計(jì)的角度來(lái)看,我們只需要了解:
 
1) 許可證的名稱(chēng)或類(lèi)型
 
2) 此組件是否能以我想要的方式(構(gòu)建在一起、鏈接、服務(wù)或者實(shí)用程序)與其它組件(開(kāi)源或閉源)配合使用?
 
3) 我們是否應(yīng)該在任何地方都聲明我們正在使用這種開(kāi)源軟件
 
4) 源代碼重新分配有哪些規(guī)則?
 
3.建立專(zhuān)家社區(qū)。
 
正確獨(dú)立地評(píng)估一個(gè)組件的功能,以及許可證影響可能比較困難,此時(shí)社區(qū)就能派上用場(chǎng)。幾個(gè)志同道合的工程師和架構(gòu)師可以在組織內(nèi)部自發(fā)成立一個(gè)非正式的社區(qū)。此社區(qū)可以共同評(píng)估質(zhì)量、分析許可證、解答詢(xún)問(wèn)和解決問(wèn)題。此外,在說(shuō)服決策者方面,社區(qū)往往比個(gè)人更有說(shuō)服力。社區(qū)還可以做以下事情:
 
1) 成為與開(kāi)源相關(guān)的任何問(wèn)題的關(guān)鍵人物;
 
2) 建立一個(gè)討論開(kāi)源問(wèn)題、傳播開(kāi)源意識(shí)和鼓勵(lì)資深工程師有效地使用開(kāi)源的平臺(tái);
 
3) 建立關(guān)于常見(jiàn)許可授權(quán)問(wèn)題的FAQ;
 
4) 推進(jìn)創(chuàng)建常用開(kāi)源組件的隨時(shí)可用的軟件包,以供組件內(nèi)部使用。
 
隨著時(shí)間的推移,專(zhuān)家社區(qū)被確認(rèn)為組織管理和決策主體的機(jī)會(huì)就會(huì)越來(lái)越大。
 
4. 配合管理層和法律部門(mén)工作以達(dá)到正式使用的目的。
 
現(xiàn)在到了最后一步——說(shuō)服管理層接受我們的選擇。我們利用到目前為止收集的所有數(shù)據(jù)、事實(shí)和圖表進(jìn)行充分證明。每一個(gè)開(kāi)源組件都必須提供以下內(nèi)容:
 
1) 應(yīng)用程序許可證
 
2) 影響/作用
 
3) 在其它產(chǎn)品中的已知應(yīng)用
 
4) “專(zhuān)家社區(qū)”的推薦
 
5) 已下載和使用的組件的實(shí)際版本的鏈接
 
如果有任何分歧、缺少的信息或不明確的條款,請(qǐng)突出顯示出來(lái)。我們?cè)趯?shí)際操作時(shí),可將所有的信息放在一個(gè)易于理解的演示文檔或者電子表格中。
 
法律部分則有更多的工作要做:應(yīng)有的審慎性評(píng)閱、核實(shí)開(kāi)源組件是否名副其實(shí)、檢查是否有任何“不利因素”、檢查版權(quán)所有權(quán)和與版權(quán)所有人可能的業(yè)務(wù)沖突以及所有的法律文書(shū)工作(若產(chǎn)品開(kāi)發(fā)工作被分散/外包的話(huà))。
 
市場(chǎng)上使用開(kāi)源的產(chǎn)品很多?;贚inux的無(wú)線(xiàn)路由器就是一個(gè)商業(yè)上可行的開(kāi)源產(chǎn)品的很好例子。缺少認(rèn)識(shí)、對(duì)未知的某種恐懼和“不值得冒險(xiǎn)”的態(tài)度讓產(chǎn)品公司對(duì)開(kāi)源避而遠(yuǎn)之。技術(shù)人員逐步而堅(jiān)定地將開(kāi)源引進(jìn)傳統(tǒng)產(chǎn)品開(kāi)發(fā)過(guò)程,還有很多工作可以做。開(kāi)源不僅適合產(chǎn)品開(kāi)發(fā)模式,而且能讓整個(gè)流程更順暢更快捷。當(dāng)然,它帶來(lái)的經(jīng)濟(jì)效應(yīng)也不錯(cuò)。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。

相關(guān)內(nèi)容