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

    文章

    553

    浏览量

    16990
  • OpenHarmony
    +关注

    关注

    25

    文章

    3660

    浏览量

    16156
收藏 人收藏

    评论

    相关推荐

    知存科技邀您相约第二届集成芯片和芯粒大会

    2024年11月8日-10日,“集成芯片:迈进大芯片时代”为主题的第二届集成芯片和芯粒大会将在北京嘉里大酒店举行。本次大会由基金委集成芯片前沿科学基础重大研究计划指导专家组指导,由中
    的头像 发表于 11-06 15:25 340次阅读

    第二届openEuler生态大会圆满结束

    近日,第二届openEuler生态大会(中国·湖南)成功举办。大会“根植openEuler共建开源生态”为主题,旨在响应国家开源产业发展战略,推动建设
    的头像 发表于 10-31 16:02 217次阅读

    50万奖金池!开放原子大赛——第二届OpenHarmony创新应用挑战赛正式启动

    位大咖导师指导:你答疑解惑,启发灵感 各位开发者们,你们准备好了吗?运用OpenHarmony突破极限,用创新定义未来。 报名链接: 第二届OpenHarmony创新应用挑战赛-开放原子大赛 (atomgit.com)
    发表于 10-24 15:40

    第二届开放原子大赛火热开启

    第二届开放原子大赛(简称“大赛”)是由开放原子开源基金会组织举办的开源技术领域专业赛事,聚焦解决“真问题”,重点覆盖基础软件、工业软件、人工智能大模型等领域。
    的头像 发表于 10-18 11:39 377次阅读

    第二届大会回顾24 | 面向OpenHarmony的软件工程研究:机遇与挑战

    随着万物智联时代的到来,OpenHarmony作为一个开源的智能终端设备操作系统的框架和平台,将会遇到哪些机遇和挑战?北京航空航天大学教授、OpenHarmony技术俱乐部主任黎立在第二届OpenHarmony技术
    的头像 发表于 08-07 18:14 951次阅读
    <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的软件工程研究:机遇与挑战

    龙芯中科亮相第二届中国计算机学会芯片大会

    近日,由CCF体系结构专业委员会、集成电路设计专业委员会、容错计算专业委员会、计算机工程与工艺专业委员会联合举办的第二届中国计算机学会芯片大会在上海成功举办。大会“发展芯
    的头像 发表于 07-30 15:47 698次阅读

    第二届英飞凌汽车创新峰会IACE开幕在即

    第二届英飞凌汽车创新峰会IACE开幕在即
    的头像 发表于 05-20 11:42 509次阅读
    <b class='flag-5'>第二届</b>英飞凌汽车创新峰会IACE开幕在即

    报名开启!第二届OpenHarmony开发者大会2024重磅来袭!

    /jishu_2429449_1_1.html 预约直播: 第二届OpenHarmony开发者大会主论坛 第二届OpenHarmony开发者
    发表于 05-14 15:23

    华工科技智赋能,亮相第二届船舶行业安全生产大会

    4月18-19日,第二届船舶行业安全生产与应急管理技术交流大会在山东烟台举行。华工科技智能制造业务板块应邀参加,并发表题为《船体结构部件智能制造助力安全生产》的主题演讲。
    的头像 发表于 04-19 17:44 582次阅读
    华工科技<b class='flag-5'>以</b>智赋能,亮相<b class='flag-5'>第二届</b>船舶行业安全生产<b class='flag-5'>大会</b>

    李彦宏官宣第二届“文心杯”创业大赛,最高投资奖励达5000万

    4月16日,百度创始人、董事长兼首席执行官李彦宏在Create 2024百度AI开发者大会上宣布,第二届“文心杯”创业大赛正式启动,参赛选手有机会获得最高5000万人民币投资。
    的头像 发表于 04-16 16:20 376次阅读

    中软国际携AIGC整体能力亮相第二届北京人工智能产业创新发展大会

    “2024中关村论坛系列活动——第二届北京人工智能产业创新发展大会”在北京国家会议中心成功举办。
    的头像 发表于 03-21 15:01 808次阅读
    中软国际携AIGC整体能力亮相<b class='flag-5'>第二届</b>北京人工智能产业创新发展<b class='flag-5'>大会</b>

    思尔芯亮相第二届玄铁RISC-V生态大会

    由达摩院主办的第二届玄铁RISC-V生态大会近日在深圳隆重举行,大会聚焦RISC-V技术在各行业的商业化成功案例及其最新研发成果,“开放·
    的头像 发表于 03-16 10:11 1511次阅读

    第二届大会回顾15 | OpenHarmony性能调优工具介绍

    演讲嘉宾 | 刘   洋 回顾整理 | 廖   涛 排版校对 | 李萍萍 嘉宾介绍  开发者工具分论坛  刘洋 ,江苏润和软件股份有限公司副总裁,聚焦芯片设计及底层软件、操作系统移植及核心
    的头像 发表于 03-05 08:40 588次阅读
    <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性能调优<b class='flag-5'>工具</b>介绍

    第二届大会回顾6 | OpenHarmony游戏生态建设

    演讲嘉宾 | 黄   然 回顾整理 | 廖   涛 排版校对 | 李萍萍 嘉宾介绍  OS内核及视窗分论坛  黄然 ,华为终端图形图像资深技术专家,华为终端游戏标准、工具和分析创始人,GPU
    的头像 发表于 12-26 08:36 376次阅读
    <b class='flag-5'>第二届</b><b class='flag-5'>大会</b><b class='flag-5'>回顾</b><b class='flag-5'>第</b>6<b class='flag-5'>期</b> | OpenHarmony游戏生态建设

    近200人共聚第二届华南工业特种线缆线缆大会!

    第二届华南工业特种线缆大会(以下简称“线缆大会”)在深圳龙华顺利举行! ▲第二届华南工业特种线缆大会现场 会议伊始,深圳市龙华区政协副主席
    的头像 发表于 12-15 10:16 671次阅读
    近200人共聚<b class='flag-5'>第二届</b>华南工业特种线缆线缆<b class='flag-5'>大会</b>!