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

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

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

第二屆大會回顧第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)博;主持參與多項國家自然科學(xué)基金項目、國家重點研發(fā)項目等;擔(dān)任多個國際知名會議期刊審稿人。

視頻回顧

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

正文內(nèi)容

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

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

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

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

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

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

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

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

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

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

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

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

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

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

代碼依賴解析旨在從軟件制品中提取出代碼結(jié)構(gòu)性實體或者符號級實體之間的依賴關(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等特性使得編程靈活高效,但同時導(dǎo)致代碼行為隱匿,使得代碼依賴難以準(zhǔn)確解析。

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

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

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

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

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

作者及其團(tuán)隊提出了面向代碼沖突的架構(gòu)問題檢測,通過檢測上下游代碼之間的耦合切面,識別導(dǎo)致沖突頻繁的架構(gòu)反模式。一旦修復(fù)這類架構(gòu)反模式,則可以緩解下次版本升級沖突量,預(yù)警沖突,實現(xiàn)風(fē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)的過程。根據(jù)最新文獻(xiàn)調(diào)研,開發(fā)人員在重構(gòu)活動上花費了大量的時間和精力?,F(xiàn)有的解決方案主要有:開發(fā)者基于IDEA重構(gòu)工具人工選擇重構(gòu);基于指標(biāo)識別消除代碼壞味道的自動重構(gòu);基于多目標(biāo)優(yōu)化算法搜索優(yōu)化代碼質(zhì)量的自動重構(gòu)等。上述方法主要集中在解決代碼級別的問題,如代碼的質(zhì)量、壞味道等,缺乏解決軟件架構(gòu)層面的問題例如架構(gòu)不一致。架構(gòu)不一致性體現(xiàn)在代碼的設(shè)計架構(gòu)和實現(xiàn)架構(gòu)相違背,出現(xiàn)架構(gòu)漂移,導(dǎo)致軟件系統(tǒng)難以維護(hù)和健康演化。

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

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

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

E N D

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

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

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

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

    關(guān)注

    1

    文章

    544

    瀏覽量

    16958
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3613

    瀏覽量

    15974
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

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

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

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

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

    亮點速遞 | 一圖看懂第二屆OpenHarmony技術(shù)大會

    點擊藍(lán)字 ╳ 關(guān)注我們 開源項目 OpenHarmony 是每個人的 OpenHarmony 原文標(biāo)題:亮點速遞 | 一圖看懂第二屆OpenHarmony技術(shù)大會 文章出處:【微信公眾號:OpenAtom OpenHarmony
    的頭像 發(fā)表于 11-06 19:40 ?390次閱讀

    大咖金句 | 第二屆OpenHarmony技術(shù)大會演講集錦

    點擊藍(lán)字 ╳ 關(guān)注我們 開源項目 OpenHarmony 是每個人的 OpenHarmony 第二屆OpenHarmony技術(shù)大會圓滿結(jié)束 行業(yè)大咖與開源生態(tài)伙伴們齊聚北京 共同見證思潮交相輝映
    的頭像 發(fā)表于 11-06 19:40 ?445次閱讀

    第二屆OpenHarmony技術(shù)大會隆重揭幕年度課題,OpenHarmony技術(shù)發(fā)展指明方向

    點擊藍(lán)字 ╳ 關(guān)注我們 開源項目 OpenHarmony 是每個人的 OpenHarmony 11月4日,技術(shù)筑生態(tài),智聯(lián)贏未來”為主題的第二屆開放原子開源基金會OpenHarmony技術(shù)
    的頭像 發(fā)表于 11-04 14:55 ?382次閱讀
    <b class='flag-5'>第二屆</b>OpenHarmony<b class='flag-5'>技術(shù)</b><b class='flag-5'>大會</b>隆重揭幕年度課題,<b class='flag-5'>為</b>OpenHarmony<b class='flag-5'>技術(shù)</b>發(fā)展指明方向

    高能有料 | 第二屆OpenHarmony技術(shù)大會議程速遞

    第二屆開放原子開源基金會OpenHarmony技術(shù)大會如約而至 讓我們一起 開封無限驚喜的技術(shù)成果 開放無限前沿的議題干貨 開啟無限可能的未來之門 點擊此處報名參會!
    發(fā)表于 11-02 17:07

    議程直擊 | 第二屆OpenHarmony技術(shù)大會——開發(fā)者工具分論壇

    點擊藍(lán)字 ╳ 關(guān)注我們 開源項目 OpenHarmony 是每個人的 OpenHarmony 原文標(biāo)題:議程直擊 | 第二屆OpenHarmony技術(shù)大會——開發(fā)者
    的頭像 發(fā)表于 11-01 16:10 ?256次閱讀

    高能有料 | 第二屆OpenHarmony技術(shù)大會議程速遞

    點擊藍(lán)字 ╳ 關(guān)注我們 開源項目 OpenHarmony 是每個人的 OpenHarmony 第二屆開放原子開源基金會OpenHarmony技術(shù)大會如約而至 讓我們一起 開封無限驚喜的技術(shù)
    的頭像 發(fā)表于 11-01 09:25 ?346次閱讀
    高能有料 | <b class='flag-5'>第二屆</b>OpenHarmony<b class='flag-5'>技術(shù)</b><b class='flag-5'>大會</b>議程速遞

    議程直擊 | 第二屆OpenHarmony技術(shù)大會——OS安全分論壇

    E N D ??? 關(guān)注我們,持續(xù)獲取OpenHarmony技術(shù)大會最新消息! 原文標(biāo)題:議程直擊 | 第二屆OpenHarmony技術(shù)大會
    的頭像 發(fā)表于 11-01 08:44 ?344次閱讀
    議程直擊 | <b class='flag-5'>第二屆</b>OpenHarmony<b class='flag-5'>技術(shù)</b><b class='flag-5'>大會</b>——OS安全分論壇

    技術(shù)筑生態(tài),智聯(lián)贏未來 第二屆OpenHarmony技術(shù)大會即將在京啟幕

    基于OpenHarmony打造的行業(yè)落地產(chǎn)品和軟硬件解決方案將集中亮相,參會帶來集合視覺與思想的雙重盛宴體驗! 11月4日,讓我們相約北京,齊聚第二屆OpenHarmony技術(shù)
    發(fā)表于 10-31 11:27

    亮點劇透 | 第二屆開放原子開源基金會 OpenHarmony技術(shù)大會精彩來襲

    點擊藍(lán)字 ╳ 關(guān)注我們 開源項目 OpenHarmony 是每個人的 OpenHarmony 探討開源創(chuàng)新實踐,共筑開源技術(shù)未來 第二屆開放原子開源基金會OpenHarmony技術(shù)大會
    的頭像 發(fā)表于 10-27 19:50 ?529次閱讀