0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

第二届大会回顾第13期 | 以架构为中心的开发者工具的核心技术与应用

OpenHarmony TSC 来源:OpenHarmony TSC 作者:OpenHarmony TSC 2024-02-25 17:59 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

演讲嘉宾 | 晋武侠

回顾整理 | 廖 涛

排版校对 | 李萍萍

嘉宾介绍

开发者工具分论坛

晋武侠,西安交通大学软件学院副教授。研究领域包括:代码分析、软件架构治理、智能软件工程。获2022年陕西省优博;主持参与多项国家自然科学基金项目、国家重点研发项目等;担任多个国际知名会议期刊审稿人。

视频回顾

打开哔哩哔哩APP,观看更清晰视频

正文内容

在软件生命周期各个阶段,有不同形态的工具辅助开发维护人员的实践活动,提高工作效率。应对代码级问题的方法工具广泛存在,特别是智能化技术使得代码级问题解决成本越来越低。然而,相比代码级问题,架构级问题贯穿软件生命周期,发现难、影响广、代价高。如何分析、定位、解决这类架构级问题呢?西安交通大学副教授晋武侠在第二届OpenHarmony技术大会上进行了精彩分享。

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

开发者工具贯穿了软件开发的全生命周期,提供了项目管理、原型设计、高效代码开发、自动化测试与集成以及性能监测等能力。随着人工智能技术的快速发展,软件开发者工具从自动化向智能化演进。传统的自动化工具更倾向于执行预定义的、重复的任务,而智能化工具旨在模拟人类的思维过程,做出更复杂的决策。

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

尤其,智能化技术使得代码级问题解决成本越来越低。然而,相比于代码层问题,架构层问题可能更加棘手,主要有以下特点:

发现难:代码级问题大部分都是01问题,是显性的,能够及时感知,通常影响功能和性能;而架构级问题大部分为非01问题,是隐性的,影响可维护性,会随着演化过程症状逐渐凸显。

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

影响广:代码级问题往往影响单一模块,大部分修复往往在较小范围内进行;而架构层问题可能影响整个系统,修复经常需要重大设计调整或重构。

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

成本高:由于架构腐化会导致维护困难、性能下降等问题,使开发团队需要投入更多的时间和资源来解决,增加了开发和维护的成本。此外,如果架构腐化严重到一定程度,可能还需要进行大规模的系统重构。

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

如何解决架构层问题?本次报告提倡以架构为中心的开发者工具的解题思路,从“根”上促进软件系统长期健康演化。怎样实施以架构为中心?架构管理的复杂性在于依赖的复杂性,基于代码依赖的架构分析旨在利用代码依赖弥补底层代码细节和高层架构之间的鸿沟,从架构视角来分析、定位、解决开发者日常活动遇到的问题,帮助从“根”上提前预警、避免、消除软件的可维护性问题,促进软件系统长期健康演化,提高软件研发效能。

接下来,首先介绍工具底层基础技术(即代码依赖解析)的最新进展;再以开发者日常代码合入为例,分享如何以架构视角定位致使冲突频发的根因;最后以代码重构活动为应用,展示架构驱动的思路如何帮助推荐重构方案,消除潜在架构问题。

核心技术:代码依赖解析

代码依赖解析旨在从软件制品中提取出代码结构性实体或者符号级实体之间的依赖关系。目前,已有的代码依赖解析技术包括:继承体系分析(CHA)、抽象解释、模块摘要分析、深度学习、指向分析(PA)、快速类型分析技术(RTA)、基于中间表示的分析、启发式规则等;已有的代码依赖解析工具或产品包括:、CodeScene、Doxygen、SCITool Understand等。现代编程语言的duck typing、first-class function/class /module、object change等特性使得编程灵活高效,但同时导致代码行为隐匿,使得代码依赖难以准确解析。

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

为此,作者及其团队提出了多语言代码依赖抽取框架——ENRE,解决了隐式依赖难以精准分析的难题,增强了已有代码静态分析工具的能力。ENRE目前支持C/C++JavaPython、JavaScript/TypeScript等编程语言的代码静态分析,能够解析出50余类实体和50余类依赖。基于ENRE解析的代码依赖,能够增强已有开发者工具代码度量的准确性,使已有的质量扫描工具减少漏报。

应用一:面向代码合入冲突的架构问题定位

在下游系统基于上游定制开发过程中,由于各原因无法与上游代码同步合并、小步基线升级,下游扩展代码相对于上游代码形成一个长期存在大版本分支。当大版本升级时,势必两个版本分支合并出现代码“冲突爆炸”。现有工作提出了基于K-shot学习和 GPT等预训练模型的自动合并冲突消解方法,侧重于在代码层面解决合并冲突问题,可以有效消解当次冲突。

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

作者及其团队提出了面向代码冲突的架构问题检测,通过检测上下游代码之间的耦合切面,识别导致冲突频繁的架构反模式。一旦修复这类架构反模式,则可以缓解下次版本升级冲突量,预警冲突,实现风险左移,带来长远效益。

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

应用二:面向架构一致性的代码重构推荐

重构是在不改变代码外部行为的情况下改进软件系统内部结构的过程。根据最新文献调研,开发人员在重构活动上花费了大量的时间和精力。现有的解决方案主要有:开发者基于IDEA重构工具人工选择重构;基于指标识别消除代码坏味道的自动重构;基于多目标优化算法搜索优化代码质量的自动重构等。上述方法主要集中在解决代码级别的问题,如代码的质量、坏味道等,缺乏解决软件架构层面的问题例如架构不一致。架构不一致性体现在代码的设计架构和实现架构相违背,出现架构漂移,导致软件系统难以维护和健康演化。

面向架构不一致问题,作者及其团队提出了基于代码依赖的架构逆向帮助定位候选重构文件的方法,加速重构方案搜索过程的收敛。例如,如果从代码实现逆向的架构与其包结构之间存在显著差异,这可能代表了关键的架构问题,需要优先进行重构。该方法同时引入了多类前置条件和后置策略,提升重构操作的可行性,减少实时重构的编译错误、运行错误。基于该方法,作者及其团队实现了一个命名为3ERefactor的VSCode插件,为开发者在IDE环境中提供自动化重构方案推荐,从而消除当前代码与目标架构相违约的实现,提升架构一致性。

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

综上所述,自动化、智能化技术使得代码级问题解决成本越来越低。相比代码级问题,架构级问题贯穿软件生命周期,发现难、影响广、代价高。开发者工具不仅要关注代码级问题,也要关注架构级问题,利用代码依赖填补代码与架构间的鸿沟,基于代码依赖分析、定位、解决软件架构级问题,实现全生命周期的软件架构看护和治理。

E N D

关注我们,获取更多精彩。

原文标题:第二届大会回顾第13期 | 以架构为中心的开发者工具的核心技术与应用

文章出处:【微信公众号:OpenHarmony TSC】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发者
    +关注

    关注

    1

    文章

    780

    浏览量

    18063
  • OpenHarmony
    +关注

    关注

    33

    文章

    3974

    浏览量

    21355
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AAC瑞声科技精彩亮相第二届焉知人形机器人大会

    2026年3月27日,AAC瑞声科技精彩亮相第二届焉知人形机器人大会
    的头像 发表于 03-30 11:15 1164次阅读

    Faraday Future即将参加Cantor第二届全球科技与工业增长大会

    “公司”)今日宣布,公司将参加Cantor 第二届全球科技与工业增长大会(Cantor Global Technology & Industrial Growth Conference)。本次大会
    的头像 发表于 03-11 14:42 365次阅读

    普强荣登毕马威第二届智能制造科技50榜单

    普强荣登毕马威“第二届智能制造科技50"榜单,凭借深厚的技术沉淀、创新实践及行业影响力,成功跻身榜单,与众多优秀企业共同彰显中国制造的强劲活力。
    的头像 发表于 02-28 15:28 1030次阅读

    沐曦受邀出席第二届开源产业生态大会

    “开源筑基·数实维新”为主题的第二届开源产业生态大会将于1月13日在上海举行。沐曦受邀出席本次行业盛会,联合创始人、CTO兼首席软件架构
    的头像 发表于 01-14 13:51 401次阅读

    超声赋能新生态!Aigtek安泰功放技术核心亮相第二届全国超声大会

    会议回顾2025年11月21-11月24日,第二届全国超声大会于在在江苏无锡圆满召开。本次会议聚焦超声学科之前沿,围绕生物医学超声、检测超声、物理声学、功率超声及微声学等领域的新发现、新技术
    的头像 发表于 12-01 18:45 387次阅读
    超声赋能新生态!Aigtek安泰功放<b class='flag-5'>以</b><b class='flag-5'>技术</b><b class='flag-5'>核心</b>亮相<b class='flag-5'>第二届</b>全国超声<b class='flag-5'>大会</b>

    见合八方亮相第二届分布式光纤传感技术及应用大会

    2025年11月22日至23日,第二届分布式光纤传感技术及应用大会(DOFS2025)在珠海圆满举办,大会“学术引领·
    的头像 发表于 11-30 14:17 699次阅读

    云天励飞出席湛江市第二届企业家大会

    近日,湛江市第二届企业家大会隆重举行。本届大会“聚合力 兴产业 谋发展 创未来”为主题,吸引了央企、国企、外企、民企、侨商以及在外创业的湛江籍企业家齐聚湛江,共同探讨城市高质量发展的
    的头像 发表于 11-25 11:25 856次阅读

    Aigtek安泰电子诚邀您莅临2025第二届全国超声大会

    第二届全国超声大会,将于2025年11月21-11月24日在江苏无锡召开,本次Aigtek将携最新技术成果与解决方案亮相本次会议,期待与您相见!-时间:2025年11月21日-11月24日-地点
    的头像 发表于 11-13 18:47 1152次阅读
    Aigtek安泰电子诚邀您莅临2025<b class='flag-5'>第二届</b>全国超声<b class='flag-5'>大会</b>!

    梦芯科技出席第二届中国测绘地理信息大会主题论坛

    11月5-7日,“科技融智创新,产业新质发展,北斗服务全球”为主题的第二届中国测绘地理信息大会在浙江湖州德清举行。大会围绕地理信息产业新质发展、北斗导航系统全球应用和测绘地理信息科技
    的头像 发表于 11-11 16:40 750次阅读

    南方测绘亮相第二届中国测绘地理信息大会

    11月6日,第二届中国测绘地理信息大会在浙江省湖州市的德清国际展览中心开幕。本届大会由中国地理信息产业协会、中国测绘学会、中国卫星导航定位协会共同主办。
    的头像 发表于 11-11 16:12 1216次阅读

    北斗星通亮相第二届中国测绘地理信息大会

    11月6日,第二届中国测绘地理信息大会在浙江德清盛大开幕。本届大会“科技融智创新 产业新质发展 北斗服务全球”为主题,旨在进一步打造测绘地理信息行业
    的头像 发表于 11-06 17:46 1408次阅读

    易灵思与思特威第二届机器视觉方案大会圆满收官

    近日,由易灵思与思特威联合举办的第二届机器视觉方案大会在深圳福田会展中心成功举行。本次大会技术
    的头像 发表于 09-02 12:51 1046次阅读

    第二届Vector中国技术日即将举办

    第二届Vector中国技术日将于9月16日-17日在上海国家会展中心举办。
    的头像 发表于 08-21 11:30 1200次阅读

    龙芯中科亮相第二届算力之都开发者大会

    近日,“开源·开放 融合·服务”为主题的第二届算力之都开发者大会暨天翼云AI生态合作大会在银川召开。
    的头像 发表于 08-16 13:52 1898次阅读

    易灵思与思特威第二届机器视觉大会即将举办

    去年盛夏,首届易灵思与思特威机器视觉技术大会点燃了行业创新的火花。易灵思惊艳亮相的 TJ375 FPGA与思特威的工业CMOS图像传感器系列交相辉映,机器人视觉领域注入澎湃动力。时隔一年,机器视觉“芯”引擎再度启幕——
    的头像 发表于 08-13 09:53 1563次阅读