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

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

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

第二屆大會(huì)回顧第13期 | 以架構(gòu)為中心的開(kāi)發(fā)者工具的核心技術(shù)與應(yīng)用

OpenHarmony TSC ? 來(lái)源:OpenHarmony TSC ? 作者:OpenHarmony TSC ? 2024-02-25 17:59 ? 次閱讀

演講嘉賓 | 晉武俠

回顧整理 | 廖 濤

排版校對(duì) | 李萍萍

嘉賓介紹

開(kāi)發(fā)者工具分論壇

晉武俠,西安交通大學(xué)軟件學(xué)院副教授。研究領(lǐng)域包括:代碼分析、軟件架構(gòu)治理、智能軟件工程。獲2022年陜西省優(yōu)博;主持參與多項(xiàng)國(guó)家自然科學(xué)基金項(xiàng)目、國(guó)家重點(diǎn)研發(fā)項(xiàng)目等;擔(dān)任多個(gè)國(guó)際知名會(huì)議期刊審稿人。

視頻回顧

打開(kāi)嗶哩嗶哩APP,觀看更清晰視頻

正文內(nèi)容

在軟件生命周期各個(gè)階段,有不同形態(tài)的工具輔助開(kāi)發(fā)維護(hù)人員的實(shí)踐活動(dòng),提高工作效率。應(yīng)對(duì)代碼級(jí)問(wèn)題的方法工具廣泛存在,特別是智能化技術(shù)使得代碼級(jí)問(wèn)題解決成本越來(lái)越低。然而,相比代碼級(jí)問(wèn)題,架構(gòu)級(jí)問(wèn)題貫穿軟件生命周期,發(fā)現(xiàn)難、影響廣、代價(jià)高。如何分析、定位、解決這類(lèi)架構(gòu)級(jí)問(wèn)題呢?西安交通大學(xué)副教授晉武俠在第二屆OpenHarmony技術(shù)大會(huì)上進(jìn)行了精彩分享。

6f128f1e-cf89-11ee-b759-92fbcf53809c.png

開(kāi)發(fā)者工具貫穿了軟件開(kāi)發(fā)的全生命周期,提供了項(xiàng)目管理、原型設(shè)計(jì)、高效代碼開(kāi)發(fā)、自動(dòng)化測(cè)試與集成以及性能監(jiān)測(cè)等能力。隨著人工智能技術(shù)的快速發(fā)展,軟件開(kāi)發(fā)者工具從自動(dòng)化向智能化演進(jìn)。傳統(tǒng)的自動(dòng)化工具更傾向于執(zhí)行預(yù)定義的、重復(fù)的任務(wù),而智能化工具旨在模擬人類(lèi)的思維過(guò)程,做出更復(fù)雜的決策。

6f6def3a-cf89-11ee-b759-92fbcf53809c.png

尤其,智能化技術(shù)使得代碼級(jí)問(wèn)題解決成本越來(lái)越低。然而,相比于代碼層問(wèn)題,架構(gòu)層問(wèn)題可能更加棘手,主要有以下特點(diǎn):

發(fā)現(xiàn)難:代碼級(jí)問(wèn)題大部分都是01問(wèn)題,是顯性的,能夠及時(shí)感知,通常影響功能和性能;而架構(gòu)級(jí)問(wèn)題大部分為非01問(wèn)題,是隱性的,影響可維護(hù)性,會(huì)隨著演化過(guò)程癥狀逐漸凸顯。

6f8c4052-cf89-11ee-b759-92fbcf53809c.png

影響廣:代碼級(jí)問(wèn)題往往影響單一模塊,大部分修復(fù)往往在較小范圍內(nèi)進(jìn)行;而架構(gòu)層問(wèn)題可能影響整個(gè)系統(tǒng),修復(fù)經(jīng)常需要重大設(shè)計(jì)調(diào)整或重構(gòu)。

6fa4aa34-cf89-11ee-b759-92fbcf53809c.png

成本高:由于架構(gòu)腐化會(huì)導(dǎo)致維護(hù)困難、性能下降等問(wèn)題,使開(kāi)發(fā)團(tuán)隊(duì)需要投入更多的時(shí)間和資源來(lái)解決,增加了開(kāi)發(fā)和維護(hù)的成本。此外,如果架構(gòu)腐化嚴(yán)重到一定程度,可能還需要進(jìn)行大規(guī)模的系統(tǒng)重構(gòu)。

6fb7f4fe-cf89-11ee-b759-92fbcf53809c.png

如何解決架構(gòu)層問(wèn)題?本次報(bào)告提倡以架構(gòu)為中心的開(kāi)發(fā)者工具的解題思路,從“根”上促進(jìn)軟件系統(tǒng)長(zhǎng)期健康演化。怎樣實(shí)施以架構(gòu)為中心?架構(gòu)管理的復(fù)雜性在于依賴(lài)的復(fù)雜性,基于代碼依賴(lài)的架構(gòu)分析旨在利用代碼依賴(lài)彌補(bǔ)底層代碼細(xì)節(jié)和高層架構(gòu)之間的鴻溝,從架構(gòu)視角來(lái)分析、定位、解決開(kāi)發(fā)者日?;顒?dòng)遇到的問(wèn)題,幫助從“根”上提前預(yù)警、避免、消除軟件的可維護(hù)性問(wèn)題,促進(jìn)軟件系統(tǒng)長(zhǎng)期健康演化,提高軟件研發(fā)效能。

接下來(lái),首先介紹工具底層基礎(chǔ)技術(shù)(即代碼依賴(lài)解析)的最新進(jìn)展;再以開(kāi)發(fā)者日常代碼合入為例,分享如何以架構(gòu)視角定位致使沖突頻發(fā)的根因;最后以代碼重構(gòu)活動(dòng)為應(yīng)用,展示架構(gòu)驅(qū)動(dòng)的思路如何幫助推薦重構(gòu)方案,消除潛在架構(gòu)問(wèn)題。

核心技術(shù):代碼依賴(lài)解析

代碼依賴(lài)解析旨在從軟件制品中提取出代碼結(jié)構(gòu)性實(shí)體或者符號(hào)級(jí)實(shí)體之間的依賴(lài)關(guān)系。目前,已有的代碼依賴(lài)解析技術(shù)包括:繼承體系分析(CHA)、抽象解釋、模塊摘要分析、深度學(xué)習(xí)、指向分析(PA)、快速類(lèi)型分析技術(shù)(RTA)、基于中間表示的分析、啟發(fā)式規(guī)則等;已有的代碼依賴(lài)解析工具或產(chǎn)品包括:、CodeScene、Doxygen、SCITool Understand等?,F(xiàn)代編程語(yǔ)言的duck typing、first-class function/class /module、object change等特性使得編程靈活高效,但同時(shí)導(dǎo)致代碼行為隱匿,使得代碼依賴(lài)難以準(zhǔn)確解析。

6fcc3cca-cf89-11ee-b759-92fbcf53809c.png

為此,作者及其團(tuán)隊(duì)提出了多語(yǔ)言代碼依賴(lài)抽取框架——ENRE,解決了隱式依賴(lài)難以精準(zhǔn)分析的難題,增強(qiáng)了已有代碼靜態(tài)分析工具的能力。ENRE目前支持C/C++、JavaPython、JavaScript/TypeScript等編程語(yǔ)言的代碼靜態(tài)分析,能夠解析出50余類(lèi)實(shí)體和50余類(lèi)依賴(lài)?;贓NRE解析的代碼依賴(lài),能夠增強(qiáng)已有開(kāi)發(fā)者工具代碼度量的準(zhǔn)確性,使已有的質(zhì)量掃描工具減少漏報(bào)。

應(yīng)用一:面向代碼合入沖突的架構(gòu)問(wèn)題定位

在下游系統(tǒng)基于上游定制開(kāi)發(fā)過(guò)程中,由于各原因無(wú)法與上游代碼同步合并、小步基線升級(jí),下游擴(kuò)展代碼相對(duì)于上游代碼形成一個(gè)長(zhǎng)期存在大版本分支。當(dāng)大版本升級(jí)時(shí),勢(shì)必兩個(gè)版本分支合并出現(xiàn)代碼“沖突爆炸”。現(xiàn)有工作提出了基于K-shot學(xué)習(xí)和 GPT等預(yù)訓(xùn)練模型的自動(dòng)合并沖突消解方法,側(cè)重于在代碼層面解決合并沖突問(wèn)題,可以有效消解當(dāng)次沖突。

6fe59bca-cf89-11ee-b759-92fbcf53809c.png

作者及其團(tuán)隊(duì)提出了面向代碼沖突的架構(gòu)問(wèn)題檢測(cè),通過(guò)檢測(cè)上下游代碼之間的耦合切面,識(shí)別導(dǎo)致沖突頻繁的架構(gòu)反模式。一旦修復(fù)這類(lèi)架構(gòu)反模式,則可以緩解下次版本升級(jí)沖突量,預(yù)警沖突,實(shí)現(xiàn)風(fēng)險(xiǎn)左移,帶來(lái)長(zhǎng)遠(yuǎn)效益。

70012728-cf89-11ee-b759-92fbcf53809c.png

應(yīng)用二:面向架構(gòu)一致性的代碼重構(gòu)推薦

重構(gòu)是在不改變代碼外部行為的情況下改進(jìn)軟件系統(tǒng)內(nèi)部結(jié)構(gòu)的過(guò)程。根據(jù)最新文獻(xiàn)調(diào)研,開(kāi)發(fā)人員在重構(gòu)活動(dòng)上花費(fèi)了大量的時(shí)間和精力?,F(xiàn)有的解決方案主要有:開(kāi)發(fā)者基于IDEA重構(gòu)工具人工選擇重構(gòu);基于指標(biāo)識(shí)別消除代碼壞味道的自動(dòng)重構(gòu);基于多目標(biāo)優(yōu)化算法搜索優(yōu)化代碼質(zhì)量的自動(dòng)重構(gòu)等。上述方法主要集中在解決代碼級(jí)別的問(wèn)題,如代碼的質(zhì)量、壞味道等,缺乏解決軟件架構(gòu)層面的問(wèn)題例如架構(gòu)不一致。架構(gòu)不一致性體現(xiàn)在代碼的設(shè)計(jì)架構(gòu)和實(shí)現(xiàn)架構(gòu)相違背,出現(xiàn)架構(gòu)漂移,導(dǎo)致軟件系統(tǒng)難以維護(hù)和健康演化。

面向架構(gòu)不一致問(wèn)題,作者及其團(tuán)隊(duì)提出了基于代碼依賴(lài)的架構(gòu)逆向幫助定位候選重構(gòu)文件的方法,加速重構(gòu)方案搜索過(guò)程的收斂。例如,如果從代碼實(shí)現(xiàn)逆向的架構(gòu)與其包結(jié)構(gòu)之間存在顯著差異,這可能代表了關(guān)鍵的架構(gòu)問(wèn)題,需要優(yōu)先進(jìn)行重構(gòu)。該方法同時(shí)引入了多類(lèi)前置條件和后置策略,提升重構(gòu)操作的可行性,減少實(shí)時(shí)重構(gòu)的編譯錯(cuò)誤、運(yùn)行錯(cuò)誤?;谠摲椒ǎ髡呒捌鋱F(tuán)隊(duì)實(shí)現(xiàn)了一個(gè)命名為3ERefactor的VSCode插件,為開(kāi)發(fā)者在IDE環(huán)境中提供自動(dòng)化重構(gòu)方案推薦,從而消除當(dāng)前代碼與目標(biāo)架構(gòu)相違約的實(shí)現(xiàn),提升架構(gòu)一致性。

701c5ee4-cf89-11ee-b759-92fbcf53809c.png

綜上所述,自動(dòng)化、智能化技術(shù)使得代碼級(jí)問(wèn)題解決成本越來(lái)越低。相比代碼級(jí)問(wèn)題,架構(gòu)級(jí)問(wèn)題貫穿軟件生命周期,發(fā)現(xiàn)難、影響廣、代價(jià)高。開(kāi)發(fā)者工具不僅要關(guān)注代碼級(jí)問(wèn)題,也要關(guān)注架構(gòu)級(jí)問(wèn)題,利用代碼依賴(lài)填補(bǔ)代碼與架構(gòu)間的鴻溝,基于代碼依賴(lài)分析、定位、解決軟件架構(gòu)級(jí)問(wèn)題,實(shí)現(xiàn)全生命周期的軟件架構(gòu)看護(hù)和治理。

E N D

關(guān)注我們,獲取更多精彩。

原文標(biāo)題:第二屆大會(huì)回顧第13期 | 以架構(gòu)為中心的開(kāi)發(fā)者工具的核心技術(shù)與應(yīng)用

文章出處:【微信公眾號(hào):OpenHarmony TSC】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    1

    文章

    575

    瀏覽量

    17013
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3722

    瀏覽量

    16323
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    第二屆開(kāi)放原子大賽首批賽項(xiàng)頒獎(jiǎng)儀式在武漢舉辦

    近日,在2024開(kāi)放原子開(kāi)發(fā)者大會(huì)暨首屆開(kāi)源技術(shù)學(xué)術(shù)大會(huì)開(kāi)幕式上,第二屆開(kāi)放原子大賽首批賽項(xiàng)頒獎(jiǎng)儀式成功舉辦。
    的頭像 發(fā)表于 12-23 11:24 ?204次閱讀

    第二屆開(kāi)放原子大賽首批創(chuàng)新成果集結(jié)武漢

    12月20日至21日,武漢將迎來(lái)一場(chǎng)開(kāi)源技術(shù)的盛會(huì)——2024開(kāi)放原子開(kāi)發(fā)者大會(huì)暨首屆開(kāi)源技術(shù)學(xué)術(shù)大會(huì)。屆時(shí),
    的頭像 發(fā)表于 12-18 15:22 ?242次閱讀

    美光科技第二屆鏈博會(huì)精彩回顧

    此前,11月26-30日,歷時(shí)5天,第二屆中國(guó)國(guó)際供應(yīng)鏈促進(jìn)博覽會(huì)在北京圓滿落幕,一起來(lái)回顧美光科技在本次鏈博會(huì)的精彩時(shí)刻吧。
    的頭像 發(fā)表于 12-03 13:35 ?159次閱讀

    智芯公司亮相2024第二屆中國(guó)電氣工程大會(huì)

    近日,由智芯公司和北京郵電大學(xué)協(xié)同組織的2024第二屆中國(guó)電氣工程大會(huì)“先進(jìn)通信技術(shù)賦能新型電力系統(tǒng)”專(zhuān)題分會(huì)場(chǎng)在安徽合肥成功舉辦。
    的頭像 發(fā)表于 12-02 14:18 ?233次閱讀

    帝奧微第二屆代理商大會(huì)圓滿召開(kāi)

    近日,“帝奧微2024年第二屆全國(guó)代理商大會(huì)” 在上海研發(fā)中心圓滿召開(kāi)。本次大會(huì)聚焦“智領(lǐng)芯程,合作共贏”主題,齊聚 80+代理商代表,共同探討未來(lái)發(fā)展趨勢(shì)。
    的頭像 發(fā)表于 11-29 13:45 ?288次閱讀

    成都華微亮相第二屆腦機(jī)接口大會(huì)

    日前,第二屆腦機(jī)接口大會(huì)在武漢市成功舉辦。本次大會(huì)“腦機(jī)互聯(lián)·共創(chuàng)未來(lái)”為主題,匯聚了來(lái)自全球各地的1500余位醫(yī)學(xué)科學(xué)、腦科學(xué)、腦機(jī)接口領(lǐng)域企業(yè)代表,共同探討腦機(jī)接口
    的頭像 發(fā)表于 11-27 11:06 ?316次閱讀

    知存科技邀您相約第二屆集成芯片和芯粒大會(huì)

    2024年11月8日-10日,“集成芯片:邁進(jìn)大芯片時(shí)代”為主題的第二屆集成芯片和芯粒大會(huì)將在北京嘉里大酒店舉行。本次大會(huì)由基金委集成芯片前沿科學(xué)基礎(chǔ)重大研究計(jì)劃指導(dǎo)專(zhuān)家組指導(dǎo),由中
    的頭像 發(fā)表于 11-06 15:25 ?432次閱讀

    第二屆openEuler生態(tài)大會(huì)圓滿結(jié)束

    近日,第二屆openEuler生態(tài)大會(huì)(中國(guó)·湖南)成功舉辦。大會(huì)“根植openEuler共建開(kāi)源生態(tài)”為主題,旨在響應(yīng)國(guó)家開(kāi)源產(chǎn)業(yè)發(fā)展戰(zhàn)略,推動(dòng)建設(shè)
    的頭像 發(fā)表于 10-31 16:02 ?275次閱讀

    50萬(wàn)獎(jiǎng)金池!開(kāi)放原子大賽——第二屆OpenHarmony創(chuàng)新應(yīng)用挑戰(zhàn)賽正式啟動(dòng)

    位大咖導(dǎo)師指導(dǎo):你答疑解惑,啟發(fā)靈感 各位開(kāi)發(fā)者們,你們準(zhǔn)備好了嗎?運(yùn)用OpenHarmony突破極限,用創(chuàng)新定義未來(lái)。 報(bào)名鏈接: 第二屆OpenHarmony創(chuàng)新應(yīng)用挑戰(zhàn)賽-開(kāi)放原子大賽 (atomgit.com)
    發(fā)表于 10-24 15:40

    第二屆開(kāi)放原子大賽火熱開(kāi)啟

    第二屆開(kāi)放原子大賽(簡(jiǎn)稱(chēng)“大賽”)是由開(kāi)放原子開(kāi)源基金會(huì)組織舉辦的開(kāi)源技術(shù)領(lǐng)域?qū)I(yè)賽事,聚焦解決“真問(wèn)題”,重點(diǎn)覆蓋基礎(chǔ)軟件、工業(yè)軟件、人工智能大模型等領(lǐng)域。
    的頭像 發(fā)表于 10-18 11:39 ?437次閱讀

    第二屆大會(huì)回顧24 | 面向OpenHarmony的軟件工程研究:機(jī)遇與挑戰(zhàn)

    隨著萬(wàn)物智聯(lián)時(shí)代的到來(lái),OpenHarmony作為一個(gè)開(kāi)源的智能終端設(shè)備操作系統(tǒng)的框架和平臺(tái),將會(huì)遇到哪些機(jī)遇和挑戰(zhàn)?北京航空航天大學(xué)教授、OpenHarmony技術(shù)俱樂(lè)部主任黎立在第二屆OpenHarmony技術(shù)
    的頭像 發(fā)表于 08-07 18:14 ?1046次閱讀
    <b class='flag-5'>第二屆</b><b class='flag-5'>大會(huì)</b><b class='flag-5'>回顧</b><b class='flag-5'>第</b>24<b class='flag-5'>期</b> | 面向OpenHarmony的軟件工程研究:機(jī)遇與挑戰(zhàn)

    報(bào)名開(kāi)啟!第二屆OpenHarmony開(kāi)發(fā)者大會(huì)2024重磅來(lái)襲!

    /jishu_2429449_1_1.html 預(yù)約直播: 第二屆OpenHarmony開(kāi)發(fā)者大會(huì)主論壇 第二屆OpenHarmony開(kāi)發(fā)者
    發(fā)表于 05-14 15:23

    華工科技智賦能,亮相第二屆船舶行業(yè)安全生產(chǎn)大會(huì)

    4月18-19日,第二屆船舶行業(yè)安全生產(chǎn)與應(yīng)急管理技術(shù)交流大會(huì)在山東煙臺(tái)舉行。華工科技智能制造業(yè)務(wù)板塊應(yīng)邀參加,并發(fā)表題為《船體結(jié)構(gòu)部件智能制造助力安全生產(chǎn)》的主題演講。
    的頭像 發(fā)表于 04-19 17:44 ?638次閱讀
    華工科技<b class='flag-5'>以</b>智賦能,亮相<b class='flag-5'>第二屆</b>船舶行業(yè)安全生產(chǎn)<b class='flag-5'>大會(huì)</b>

    思爾芯亮相第二屆玄鐵RISC-V生態(tài)大會(huì)

    由達(dá)摩院主辦的第二屆玄鐵RISC-V生態(tài)大會(huì)近日在深圳隆重舉行,大會(huì)聚焦RISC-V技術(shù)在各行業(yè)的商業(yè)化成功案例及其最新研發(fā)成果,“開(kāi)放·
    的頭像 發(fā)表于 03-16 10:11 ?1574次閱讀

    第二屆大會(huì)回顧15 | OpenHarmony性能調(diào)優(yōu)工具介紹

    演講嘉賓 | 劉? ?洋 回顧整理 | 廖? ?濤 排版校對(duì) | 李萍萍 嘉賓介紹 ?開(kāi)發(fā)者工具分論壇? 劉洋 ,江蘇潤(rùn)和軟件股份有限公司副總裁,聚焦芯片設(shè)計(jì)及底層軟件、操作系統(tǒng)移植及核心
    的頭像 發(fā)表于 03-05 08:40 ?695次閱讀
    <b class='flag-5'>第二屆</b><b class='flag-5'>大會(huì)</b><b class='flag-5'>回顧</b><b class='flag-5'>第</b>15<b class='flag-5'>期</b> | OpenHarmony性能調(diào)優(yōu)<b class='flag-5'>工具</b>介紹