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

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

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

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

OpenHarmony TSC ? 來源:OpenHarmony TSC ? 作者:OpenHarmony TSC ? 2024-02-25 17:59 ? 次閱讀

演講嘉賓 | 晉武俠

回顧整理 | 廖 濤

排版校對 | 李萍萍

嘉賓介紹

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

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

視頻回顧

打開嗶哩嗶哩APP,觀看更清晰視頻

正文內(nèi)容

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

作者及其團(tuán)隊(duì)提出了面向代碼沖突的架構(gòu)問題檢測,通過檢測上下游代碼之間的耦合切面,識(shí)別導(dǎo)致沖突頻繁的架構(gòu)反模式。一旦修復(fù)這類架構(gòu)反模式,則可以緩解下次版本升級(jí)沖突量,預(yù)警沖突,實(shí)現(xiàn)風(fēng)險(xiǎn)左移,帶來長遠(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)的過程。根據(jù)最新文獻(xiàn)調(diào)研,開發(fā)人員在重構(gòu)活動(dòng)上花費(fèi)了大量的時(shí)間和精力?,F(xiàn)有的解決方案主要有:開發(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í)別的問題,如代碼的質(zhì)量、壞味道等,缺乏解決軟件架構(gòu)層面的問題例如架構(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)不一致問題,作者及其團(tuán)隊(duì)提出了基于代碼依賴的架構(gòu)逆向幫助定位候選重構(gòu)文件的方法,加速重構(gòu)方案搜索過程的收斂。例如,如果從代碼實(shí)現(xiàn)逆向的架構(gòu)與其包結(jié)構(gòu)之間存在顯著差異,這可能代表了關(guān)鍵的架構(gòu)問題,需要優(yōu)先進(jìn)行重構(gòu)。該方法同時(shí)引入了多類前置條件和后置策略,提升重構(gòu)操作的可行性,減少實(shí)時(shí)重構(gòu)的編譯錯(cuò)誤、運(yùn)行錯(cuò)誤?;谠摲椒ǎ髡呒捌鋱F(tuán)隊(duì)實(shí)現(xiàn)了一個(gè)命名為3ERefactor的VSCode插件,為開發(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í)問題解決成本越來越低。相比代碼級(jí)問題,架構(gòu)級(jí)問題貫穿軟件生命周期,發(fā)現(xiàn)難、影響廣、代價(jià)高。開發(fā)者工具不僅要關(guān)注代碼級(jí)問題,也要關(guān)注架構(gòu)級(jí)問題,利用代碼依賴填補(bǔ)代碼與架構(gòu)間的鴻溝,基于代碼依賴分析、定位、解決軟件架構(gòu)級(jí)問題,實(shí)現(xiàn)全生命周期的軟件架構(gòu)看護(hù)和治理。

E N D

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

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

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

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

    關(guān)注

    1

    文章

    548

    瀏覽量

    16970
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3647

    瀏覽量

    16071
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

    第二屆開放原子大賽火熱開啟

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

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

    隨著萬物智聯(lián)時(shí)代的到來,OpenHarmony作為一個(gè)開源的智能終端設(shè)備操作系統(tǒng)的框架和平臺(tái),將會(huì)遇到哪些機(jī)遇和挑戰(zhàn)?北京航空航天大學(xué)教授、OpenHarmony技術(shù)俱樂部主任黎立在第二屆OpenHarmony技術(shù)
    的頭像 發(fā)表于 08-07 18:14 ?892次閱讀
    <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)

    龍芯中科亮相第二屆中國計(jì)算機(jī)學(xué)會(huì)芯片大會(huì)

    近日,由CCF體系結(jié)構(gòu)專業(yè)委員會(huì)、集成電路設(shè)計(jì)專業(yè)委員會(huì)、容錯(cuò)計(jì)算專業(yè)委員會(huì)、計(jì)算機(jī)工程與工藝專業(yè)委員會(huì)聯(lián)合舉辦的第二屆中國計(jì)算機(jī)學(xué)會(huì)芯片大會(huì)在上海成功舉辦。大會(huì)“發(fā)展芯
    的頭像 發(fā)表于 07-30 15:47 ?679次閱讀

    第二屆英飛凌汽車創(chuàng)新峰會(huì)IACE開幕在即

    第二屆英飛凌汽車創(chuàng)新峰會(huì)IACE開幕在即
    的頭像 發(fā)表于 05-20 11:42 ?498次閱讀
    <b class='flag-5'>第二屆</b>英飛凌汽車創(chuàng)新峰會(huì)IACE開幕在即

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

    /jishu_2429449_1_1.html 預(yù)約直播: 第二屆OpenHarmony開發(fā)者大會(huì)主論壇 第二屆OpenHarmony開發(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 ?574次閱讀
    華工科技<b class='flag-5'>以</b>智賦能,亮相<b class='flag-5'>第二屆</b>船舶行業(yè)安全生產(chǎn)<b class='flag-5'>大會(huì)</b>

    中軟國際攜AIGC整體能力亮相第二屆北京人工智能產(chǎn)業(yè)創(chuàng)新發(fā)展大會(huì)

    “2024中關(guān)村論壇系列活動(dòng)——第二屆北京人工智能產(chǎn)業(yè)創(chuàng)新發(fā)展大會(huì)”在北京國家會(huì)議中心成功舉辦。
    的頭像 發(fā)表于 03-21 15:01 ?793次閱讀
    中軟國際攜AIGC整體能力亮相<b class='flag-5'>第二屆</b>北京人工智能產(chǎn)業(yè)創(chuàng)新發(fā)展<b class='flag-5'>大會(huì)</b>

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

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

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

    演講嘉賓 | 劉? ?洋 回顧整理 | 廖? ?濤 排版校對 | 李萍萍 嘉賓介紹 ?開發(fā)者工具分論壇? 劉洋 ,江蘇潤和軟件股份有限公司副總裁,聚焦芯片設(shè)計(jì)及底層軟件、操作系統(tǒng)移植及核心
    的頭像 發(fā)表于 03-05 08:40 ?559次閱讀
    <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>介紹

    第二屆大會(huì)回顧6 | OpenHarmony游戲生態(tài)建設(shè)

    演講嘉賓 | 黃? ?然 回顧整理 | 廖? ?濤 排版校對 | 李萍萍 嘉賓介紹 ?OS內(nèi)核及視窗分論壇? 黃然 ,華為終端圖形圖像資深技術(shù)專家,華為終端游戲標(biāo)準(zhǔn)、工具和分析創(chuàng)始人,GPU
    的頭像 發(fā)表于 12-26 08:36 ?367次閱讀
    <b class='flag-5'>第二屆</b><b class='flag-5'>大會(huì)</b><b class='flag-5'>回顧</b><b class='flag-5'>第</b>6<b class='flag-5'>期</b> | OpenHarmony游戲生態(tài)建設(shè)

    近200人共聚第二屆華南工業(yè)特種線纜線纜大會(huì)!

    第二屆華南工業(yè)特種線纜大會(huì)(以下簡稱“線纜大會(huì)”)在深圳龍華順利舉行! ▲第二屆華南工業(yè)特種線纜大會(huì)現(xiàn)場 會(huì)議伊始,深圳市龍華區(qū)政協(xié)副主席
    的頭像 發(fā)表于 12-15 10:16 ?654次閱讀
    近200人共聚<b class='flag-5'>第二屆</b>華南工業(yè)特種線纜線纜<b class='flag-5'>大會(huì)</b>!

    實(shí)地探展 | 別樣視角一站式感受第二屆OpenHarmony技術(shù)大會(huì)

    點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們 開源項(xiàng)目 OpenHarmony 是每個(gè)人的 OpenHarmony 金黃的秋天 是什么吸引了全國技術(shù)愛好齊聚北京? 跟隨科技媒體腦極體的腳步 一同探訪第二屆
    的頭像 發(fā)表于 11-14 15:10 ?279次閱讀