0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

MATLAB ? 來源:djl ? 2019-09-12 09:10 ? 次閱讀

持續(xù)集成(Continuous Integration)在純軟件開發(fā)中是一個(gè)比較通用的實(shí)踐:

持續(xù)集成是一種軟件開發(fā)實(shí)踐,即團(tuán)隊(duì)開發(fā)成員經(jīng)常集成他們的工作,通常每個(gè)成員每天至少集成一次,也就意味著每天可能會(huì)發(fā)生多次集成。每次集成都通過自動(dòng)化的構(gòu)建(包括編譯,發(fā)布,自動(dòng)化測試)來驗(yàn)證,從而盡快地發(fā)現(xiàn)集成錯(cuò)誤。許多團(tuán)隊(duì)發(fā)現(xiàn)這個(gè)過程可以大大減少集成的問題。

持續(xù)集成通常伴隨著以下幾個(gè)部分:

和版本管理工具友好集成

編譯自動(dòng)化

測試自動(dòng)化

例如,張三開發(fā)了一個(gè)新功能,他所在的版本開發(fā)分支為Testing。他在提交代碼后(當(dāng)然自己需要先測試一下),系統(tǒng)可以自動(dòng)編譯,并運(yùn)行回歸測試用例。在確定功能穩(wěn)定可用后,Testing分支可合并到主分支。

大部分MBD(基于模型的設(shè)計(jì),Model-Based Deisgn)客戶都已經(jīng)比較好地使用了版本管理工具,例如SVN或者Git。很多客戶也能開發(fā)一些MATLAB腳本做一些自動(dòng)化編譯,例如:

使用Embedded Coder自動(dòng)產(chǎn)生算法層C代碼,將C代碼自動(dòng)拷貝到TI的CCS工程和驅(qū)動(dòng)部分代碼整合,然后自動(dòng)調(diào)用CCS的編譯功能進(jìn)行編譯鏈接產(chǎn)生最終二進(jìn)制文件,此后可以將二進(jìn)制文件自動(dòng)下載到開發(fā)板芯片中編譯執(zhí)行。

MBD之所以為一種開發(fā)效率高的開發(fā)模式,用戶會(huì)將主要精力集中于Model-In-the-Loop(MIL)的開發(fā)。在MIL層面,用戶會(huì)開發(fā)大量的單元測試用例,在和用戶的討論中發(fā)現(xiàn),有一種場景比較實(shí)用:

提交模型+自動(dòng)回歸測試+自動(dòng)報(bào)告生成

本文以Git、GitLab、Jenkins為主要工具,介紹如何配置MBD模式下的自動(dòng)回歸測試+自動(dòng)報(bào)告生成。

詳細(xì)配置

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

注意:通常情況下,Jenkins Server會(huì)選擇一個(gè)計(jì)算能力較強(qiáng)的服務(wù)器,本文為了方便選擇將Simulink和Jenkins裝在同一機(jī)器上。

1. GitLab的項(xiàng)目創(chuàng)建

先在GitLab下建立一個(gè)項(xiàng)目,本地Git和GitLab Server可以選擇SSH連接也可選擇HTTPS方式,本文選擇HTTPS。

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

然后在本地的Simulink工程目錄,打開Git Bash。

>> Git init

>> Git clone https://insidelabs-git.mathworks.com/mozhou/SBR.git

2. Simulink和Git集成

本文中,Git可視為GitLab的客戶端。Simulink可以直接在界面中,進(jìn)行Git的操作,見下圖:

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

建議直接用Git命令行操作,優(yōu)勢如下:

Git命令行靈活方便,易于腳本化。

想要熟悉Git命令,自己最好從頭開始,用Git init、Git add、Git commit、Git push把Simulink工程中的文件添加到GitLab Server。也可理解一個(gè)Simulink工程中哪些文件是永久文件(需要添加到版本庫),哪些是中間文件(不需要添加到版本庫)。

Simulink是比較智能的。

一旦你用手動(dòng)方式做了一遍Git操作,Simulink就自動(dòng)“記得”哪些文件和Git庫是有關(guān)聯(lián)。

3.Jenkins的配置

首先,安裝Jenkins時(shí)候裝上必用的幾個(gè)plugin :Git plugin、GitLab plugin、GitLab Hook plugin。然后在Jenkins里面建立項(xiàng)目。

配置源代碼GitLab倉庫設(shè)置

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

配置BuildTrigger

在GitLab的項(xiàng)目的settings -> integrations:

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

加上webhook后可以測試一下。

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

然后回到Jenkins的項(xiàng)目設(shè)置:

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

配置編譯腳本:

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

runMyTests.m 是一個(gè)MATLAB腳本,它的功能就是將指定位置的測試用例找到,然后批量執(zhí)行所有回歸測試用例,最后輸出指定格式的報(bào)告。

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

3. 運(yùn)行

打開模型

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

瀏覽測試用例:測試用例一共有6個(gè)

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

編輯模型后,提交到GitLab。

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

在Jenkins上編譯成功,查看編譯和測試報(bào)告。

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

關(guān)于持續(xù)集成與基于模型的設(shè)計(jì)的分析和應(yīng)用

在實(shí)際的工程項(xiàng)目中,隨著項(xiàng)目和人員的擴(kuò)展,越來越多的開發(fā)人員會(huì)利用合適的代碼版本管理和持續(xù)集成工具進(jìn)行并行開發(fā)。Git、GitLab、Jenkins這個(gè)組合適用于任意大小規(guī)模的持續(xù)集成開發(fā)模式。持續(xù)集成也是敏捷開發(fā)的一個(gè)最佳實(shí)踐。而MBD的模式——早期驗(yàn)證、虛擬集成完全符合敏捷開發(fā)的理念。越來越多的開發(fā)人員在使用MBD的同時(shí)也關(guān)注如何擁抱敏捷開發(fā)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9432

    瀏覽量

    86508
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2948

    瀏覽量

    67209
收藏 人收藏

    評論

    相關(guān)推薦

    C#集成OpenVINO?:簡化AI模型部署

    在開源測控、機(jī)器視覺、數(shù)采與分析三大領(lǐng)域中,如何快速將AI模型集成到應(yīng)用程序中, 實(shí)現(xiàn)AI賦能和應(yīng)用增值? 最容易的方式是:在C#中,使用 OpenVINO工具套件 集成AI
    的頭像 發(fā)表于 02-17 10:03 ?1329次閱讀
    C#<b class='flag-5'>集成</b>OpenVINO?:簡化AI<b class='flag-5'>模型</b>部署

    C#中使用OpenVINO?:輕松集成AI模型!

    分析三大領(lǐng)域中,如何快速將AI模型集成到應(yīng)用程序中,實(shí)現(xiàn)AI賦能和應(yīng)用增值?最容易的方式是:在C#中,使用OpenVINO?工具套件集成AI模型
    的頭像 發(fā)表于 02-07 14:05 ?449次閱讀
    C#中使用OpenVINO?:輕松<b class='flag-5'>集成</b>AI<b class='flag-5'>模型</b>!

    持續(xù)改進(jìn)工具之戰(zhàn):Smartsheet vs. Minitab Engage

    Smartsheet和Engage: 持續(xù)集成路線圖:Smartsheet缺乏成功執(zhí)行項(xiàng)目所需的預(yù)構(gòu)建持續(xù)集成工作流。Engage在每
    的頭像 發(fā)表于 01-24 14:40 ?149次閱讀

    云服務(wù)器Flexus X實(shí)例,Docker集成搭建Jenkins CI/CD平臺(tái)

    Jenkins 是一個(gè)開源的自動(dòng)化服務(wù)器,用于持續(xù)集成(CI)和持續(xù)交付(CD)軟件項(xiàng)目。它允許開發(fā)人員在軟件開發(fā)過程中自動(dòng)化各種任務(wù),如構(gòu)建、測試和部署,從而提高開發(fā)效率和軟件質(zhì)量。
    的頭像 發(fā)表于 12-29 15:43 ?213次閱讀
    云服務(wù)器Flexus X實(shí)例,Docker<b class='flag-5'>集成</b>搭建Jenkins CI/CD平臺(tái)

    【「大模型啟示錄」閱讀體驗(yàn)】營銷領(lǐng)域大模型的應(yīng)用

    今天跟隨「大模型啟示錄」這本書,學(xué)習(xí)在營銷領(lǐng)域應(yīng)用大模型。 大模型通過分析大量的消費(fèi)者數(shù)據(jù),包括購買歷史、瀏覽記錄、社交媒體互動(dòng)等,能夠識別消費(fèi)者的偏好和行為模式。這種
    發(fā)表于 12-24 12:48

    MATLAB之基于模型設(shè)計(jì)助力智能家電可持續(xù)創(chuàng)新

    ,以及多模式、AI 智能等的軟件算法。 基于模型的設(shè)計(jì)是一種數(shù)字化研發(fā)流程,在整個(gè)研發(fā)過程中系統(tǒng)地使用模型進(jìn)行數(shù)字建模、仿真和數(shù)值分析,以持續(xù)優(yōu)化產(chǎn)品;從 MATLAB
    的頭像 發(fā)表于 12-04 14:15 ?440次閱讀
    MATLAB之基于<b class='flag-5'>模型</b>設(shè)計(jì)助力智能家電可<b class='flag-5'>持續(xù)</b>創(chuàng)新

    AI模型托管原理分析

    AI模型托管是指將訓(xùn)練好的AI模型部署在云端或邊緣服務(wù)器上,由第三方平臺(tái)提供模型運(yùn)行、管理和優(yōu)化等服務(wù)。以下,AI部落小編將對AI模型托管的原理進(jìn)行詳細(xì)
    的頭像 發(fā)表于 11-07 09:33 ?350次閱讀

    AI模型市場分析

    隨著人工智能技術(shù)的快速發(fā)展,AI模型已成為全球科技競爭的新高地、未來產(chǎn)業(yè)的新賽道以及經(jīng)濟(jì)發(fā)展的新引擎。下面,AI部落小編分析了當(dāng)前AI模型市場。
    的頭像 發(fā)表于 11-01 09:51 ?312次閱讀

    AUTOSAR架構(gòu)下,持續(xù)集成CI的最佳實(shí)踐

    隨著汽車電子技術(shù)的快速發(fā)展,汽車軟件的復(fù)雜性與日俱增,如何確保軟件開發(fā)的高效性與穩(wěn)定性成為了一個(gè)關(guān)鍵問題。為了解決這個(gè)問題,許多汽車企業(yè)和供應(yīng)商逐漸引入了AUTOSAR架構(gòu),并在此基礎(chǔ)上構(gòu)建了持續(xù)集成
    的頭像 發(fā)表于 10-24 08:06 ?660次閱讀
    AUTOSAR架構(gòu)下,<b class='flag-5'>持續(xù)集成</b>CI的最佳實(shí)踐

    使用AI大模型進(jìn)行數(shù)據(jù)分析的技巧

    使用AI大模型進(jìn)行數(shù)據(jù)分析的技巧涉及多個(gè)方面,以下是一些關(guān)鍵的步驟和注意事項(xiàng): 一、明確任務(wù)目標(biāo)和需求 在使用AI大模型之前,首先要明確數(shù)據(jù)分析的任務(wù)目標(biāo),這將直接影響
    的頭像 發(fā)表于 10-23 15:14 ?1712次閱讀

    Perforce靜態(tài)分析工具2024.2新增功能:Helix QAC全新CI/CD集成支持、Klocwork分析引擎改進(jìn)和安全增強(qiáng)

    實(shí)現(xiàn)持續(xù)合規(guī)性現(xiàn)代軟件開發(fā)實(shí)踐要求開發(fā)團(tuán)隊(duì)具備適應(yīng)性,在確保代碼質(zhì)量和可靠性的同時(shí),優(yōu)先考慮靈活性和協(xié)作性。在軟件開發(fā)流程中實(shí)施持續(xù)集成(CI)和持續(xù)交付(CD)流
    的頭像 發(fā)表于 10-08 16:22 ?392次閱讀
    Perforce靜態(tài)<b class='flag-5'>分析</b>工具2024.2新增功能:Helix QAC全新CI/CD<b class='flag-5'>集成</b>支持、Klocwork<b class='flag-5'>分析</b>引擎改進(jìn)和安全增強(qiáng)

    Al大模型機(jī)器人

    豐富的知識儲(chǔ)備。它們可以涵蓋各種領(lǐng)域的知識,并能夠回答相關(guān)問題。靈活性與通用性: AI大模型機(jī)器人具有很強(qiáng)的靈活性和通用性,能夠處理各種類型的任務(wù)和問題。持續(xù)學(xué)習(xí)和改進(jìn): 這些模型可以通過持續(xù)
    發(fā)表于 07-05 08:52

    【大語言模型:原理與工程實(shí)踐】大語言模型的應(yīng)用

    ,它通過抽象思考和邏輯推理,協(xié)助我們應(yīng)對復(fù)雜的決策。 相應(yīng)地,我們設(shè)計(jì)了兩類任務(wù)來檢驗(yàn)大語言模型的能力。一類是感性的、無需理性能力的任務(wù),類似于人類的系統(tǒng)1,如情感分析和抽取式問答等。大語言模型在這
    發(fā)表于 05-07 17:21

    【大語言模型:原理與工程實(shí)踐】探索《大語言模型原理與工程實(shí)踐》2.0

    《大語言模型“原理與工程實(shí)踐”》是關(guān)于大語言模型內(nèi)在機(jī)理和應(yīng)用實(shí)踐的一次深入探索。作者不僅深入討論了理論,還提供了豐富的實(shí)踐案例,幫助讀者理解如何將理論知識應(yīng)用于解決實(shí)際問題。書中的案例分析
    發(fā)表于 05-07 10:30

    使用cube-AI分析模型時(shí)報(bào)錯(cuò)的原因有哪些?

    使用cube-AI分析模型時(shí)報(bào)錯(cuò),該模型是pytorch的cnn轉(zhuǎn)化成onnx ``` Neural Network Tools for STM32AI v1.7.0 (STM.ai v8.0.0-19389) INTER
    發(fā)表于 03-14 07:09