AutoArk:一种基于模型的ArkTS应用代码生成方法
《Science of Computer Programming》:AutoArk: A model-based approach for ArkTS application code generation
【字体:
大
中
小
】
时间:2026年07月15日
来源:Science of Computer Programming 1.6
编辑推荐:
张润坤|朱勇|叶茂森|唐明宇|王晓燕|王伟茹
摘要:随着物联网(IoT)和5G技术的快速发展,针对HarmonyOS生态系统的应用开发需求日益增加,应用场景也愈发多样化,吸引了众多开发者关注。然而,HarmonyOS所依赖的ArkTS开发框架与其他网页框架相比具有独特特点。与传
张润坤|朱勇|叶茂森|唐明宇|王晓燕|王伟茹
摘要:随着物联网(IoT)和5G技术的快速发展,针对HarmonyOS生态系统的应用开发需求日益增加,应用场景也愈发多样化,吸引了众多开发者关注。然而,HarmonyOS所依赖的ArkTS开发框架与其他网页框架相比具有独特特点。与传统框架不同,ArkTS采用声明式UI语法、集成式状态管理以及专为HarmonyOS应用设计的独特布局系统。这些特性要求开发者采用不同的设计和编码方法,这会给他们带来较大的技术挑战,增加学习难度,提升新开发者的开发难度。本文提出了一种高效的基于模型的HarmonyOS代码生成方法——AutoArk,该方法通过构建建模语言,使开发者能够高效地生成完整的HarmonyOS应用,同时让用户和产品经理能够通过可视化模型快速确认需求,从而加快产品需求确认和迭代速度。AutoArk设计了新的元模型和领域特定建模语言(DSL),用于描述ArkTS应用的结构和行为特征。该元模型能够全面表示GUI组件、布局配置和逻辑工作流,帮助开发者在一个统一的框架内定义和组织这些元素。我们在HarmonyOS系统上选择了三个商业应用进行对比实验,实验结果表明了该方法的有效性。与手动开发相比,生成的代码CodeBLEU得分达到63.5%,正确生成率为98%。此外,在我们的实验环境中,开发效率提升了大约3倍,而在大型语言模型的辅助下,效率甚至可提升16倍。
引言:自诞生以来,HarmonyOS生态系统便备受关注,近年来发展迅速,导致该生态系统内的应用开发需求激增。不过,HarmonyOS的开发采用了更新的句法范式和UI开发框架,如具备响应式编程和声明式语法的ArkTS语言。这些进步会使得开发者需要经历较长的学习过程,以适应这些新范式。由于HarmonyOS生态系统相对不成熟、技术支持有限,以及与HarmonyOS专用开发语言相关的较高学习门槛,开发者往往面临较长的开发周期。如图1所示,这一过程包含一系列迭代步骤,包括详细的需求阐述、反复的需求确认以及手动编码,所有这些都会延长项目周期。不过,越来越多的研究人员开始将代码生成技术引入开发流程,以解决效率问题[1]。代码生成技术旨在自动化编码过程,作为一种开发方法,它通过视觉拖放功能辅以少量代码,帮助用户快速构建应用系统。在代码开发过程中,低代码技术通过支持可视化视图构建、便于快速原型设计以及提高整体工作质量,显著提升了效率[2][3]。例如,一些研究人员使用UML图表来表示需求模型,从而实现目标逻辑代码的自动生成[4];类似地,预训练的神经网络也被用来直接从图像输入生成静态GUI页面代码[5]。最近,一种新兴趋势是使用自然语言模型来解析自然语言输入,从而实现文本到对象代码的生成[6][7]。对于HarmonyOS而言,采用代码生成技术可以简化开发流程,有可能降低学习难度并提高应用开发的效率。虽然这些方法已被证明能够在特定领域实现自动代码生成,但将其直接应用于ArkTS语言时,还需要解决一些特定的范式转变问题,比如声明式UI结构与响应式状态管理之间的深度耦合。我们将主要问题总结如下:•现有的代码生成工具通常依赖简化的输入,但由于应用领域和业务需求的复杂性,代码生成技术难以完整捕捉和表达开发信息;•由于难以精确定义和表达详细的输入信息,代码生成方法往往难以生成成熟度较高的代码;•将输入信息中的句法特征映射到特定编程语言的过程本身就十分复杂,导致代码生成的可靠性较低。另一方面,用ArkTS语言开发的HarmonyOS应用具有独特的特点,使得模型驱动方法尤为适用。ArkTS支持自动数据与UI关联,这使得数据处理与UI设计分离,简化了GUI建模和代码生成中的状态管理。此外,其声明式语法擅长捕捉组件间的嵌套关系,能够精准抽象出应用页面建模所需的层次结构和逻辑结构。再者,HarmonyOS的“一次开发,多端部署”功能与模型驱动架构(MDA)的原则十分契合,有助于实现计算独立性和跨平台适应性。这些特点使得模型驱动开发成为提升HarmonyOS应用开发效率和灵活性的有效策略。本文提出了一种名为AutoArk的模型驱动方法,能够从领域模型高效生成HarmonyOS应用代码。整体框架如图2所示。AutoArk由三个主要部分组成:元模型、一组建模语言以及代码转换算法。元模型对HarmonyOS领域的开发过程进行了低级抽象,实现了对开发需求的精确且全面的表达[8]。文本建模语言和图形建模语言则是HarmonyOS领域的领域特定语言(DSL)。AutoArk中的代码转换算法负责将领域模型转换为ArkTS代码,它包含了信息衍生算法和信息转换算法,以支持生成完整的项目代码。具体而言,AutoArk提升了代码的成熟度,使其模型在与不同移动开发环境的兼容性方面表现更好,同时在信息补全和推理能力上也有所增强。为评估其有效性,我们对华为的三个商业软件应用进行了案例研究,这些研究展示了AutoArk在现实应用中简化HarmonyOS开发的潜力。总之,我们的贡献如下:•ArkModel语言:我们设计并实现了一个针对HarmonyOS应用领域的元模型,以及与之配套的文本建模语言和图形建模语言——ArkModel,它能准确定义并全面表达开发过程信息。与通用的移动UI模型不同,ArkModel明确抽象了ArkTS所固有的声明式UI范式和响应式状态管理机制,从而能够精准捕捉UI结构与动态数据状态之间的深度耦合,这是ArkTS开发中的一个独特挑战;•AutoArk方法:我们提出了AutoArk,这是一种综合方法,它将成熟的MDE技术(EMF、Xtext、Sirius)与基于大语言模型的工作流程相结合。通过使用图形或文本建模方法降低构建DSL的门槛,并结合严格的基于模板的转换规则,我们的方法既保证了建模的效率,又确保了生成的ArkTS项目的工程一致性;•AutoArk工具:据我们所知,大多数代码生成方法都难以实现自动生成完整的HarmonyOS应用,而AutoArk工具却可以做到这一点。实验结果表明,我们的领域特定集成在测试场景中显著缩短了开发时间,证明了将MDE应用于HarmonyOS独特架构的可行性。我们已将此方法的代码开源到GitHub上1,其中包含了AutoArk的源代码以及三个测试案例的源代码,旨在方便其他研究人员和从业者复制我们的工作并验证他们的研究成果。本文的其余部分结构如下:第2节介绍背景知识,第3节概述现有的代码生成方法及相关研究,第4节详细阐述AutoArk工具的设计,第5节介绍三个案例研究及实验分析,第6节探讨影响有效性的因素,第7节总结本文内容并说明未来的研究方向。
章节节选:
初步部分:在本节中,我们介绍了与本研究相关的背景知识,重点关注两个关键方面:作为我们代码生成框架目标语言的ArkTS编程语言,以及为将高级模型转化为可执行应用提供方法论基础的模型驱动工程(MDE)方法。
相关研究:本节回顾了三种主流的自动代码生成范式:基于文本的方法、基于图像的方法和基于模型的方法,同时重点介绍了近期将大语言模型与MDE相结合的趋势。最后,我们比较了这些方法的能力,并说明了本文相对于现有研究的定位和贡献。
AutoArk简介:在本节中,我们首先介绍AutoArk代码生成方法的整体架构以及ArkTS的三个主要组成部分。接着,我们会详细介绍该方法中使用的各种分支技术和设计理念。最后,将通过案例研究展示该方法的有效性并评估其性能。
评估:在本节中,我们首先阐述研究问题和动机,然后介绍实验案例和实验设置。最后,通过定量和定性分析来总结和讨论实验结果。
有效性威胁:逻辑代码表示过程涉及众多基础操作,而UI设计过程则需要复杂的嵌套结构以及多种组件的组合。这就强调了在元模型中进行预先抽象以及在代码转换算法中预定义代码块的必要性。目前,元模型包含了ArkUI的所有官方原生组件以及测试案例中使用的基本操作。但在实验过程中,当……
结论与未来工作:在本文中,我们提出了一种名为AutoArk的高效模型驱动方法,用于生成ArkTS代码。与传统的模型驱动和代码生成方法相比,AutoArk方法中的元模型定义更为全面,使得DSL能够更准确地表示信息。此外,代码转换过程能够实现应用代码的完整生成,极大地提升了该方法的实用性。在三个案例实验中……
CRediT作者贡献声明:杨一龙:写作——审阅与编辑、方法论、概念构思。张润坤:方法论、研究。朱勇:写作——初稿、方法论。叶茂森:写作——初稿、数据整理。唐明宇:软件、数据整理。王晓燕:监督。王伟茹:写作——审阅与编辑。
利益冲突声明:作者声明不存在任何可能影响本文所述工作的已知财务利益或个人关系。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号