文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

架构赋能 AI:知识工程推动下的软件架构数字化

2024-11-28 15:19

关注

过去几个月里,我们在各大技术大会上频繁看到生成式 AI 的应用,很多研发组织都在尝试将其引入开发的各个环节。然而,随着 AI 技术的深入应用,不少组织也发现了基础知识工程方面的种种挑战。例如,知识的缺乏规范化、流程的缺失以及标准化检测工具的不足,正成为 AI 成功落地和提升研发效能的主要阻碍。

如果说知识工程是 AI 赋能研发的基础,那么数字化架构则是 AI 赋能研发的关键。在这篇文章中,我们将探讨知识工程推动下的架构数字化:如何通过知识工程的视角, 利用 AI 技术,对系统架构进行全面分析、管理和优化的过程,以及我们的思考和实践。

引子:架构知识如何改变 AI 驱动的开发流程??

AI4SE(Artificial Intelligence for Software Engineering)是指人工智能技术应用于软件工程领域,旨在通过利用 AI 算法和工具来改进软件开发、维护、测试和管理等各个环节的效率和效果。—— https://aise.phodal.com/

从过去的、标准或者不标准的 DevOps 开发流程来看,我们会把 SDLC 流程分为 N 个阶段,取决于你的组织架构,阶段的数量可能会有所不同,以适配康威定律。在此,我们将 SDLC 流程简化为以下几个主要阶段:需求、设计、开发、测试和运维。

SDLC 中的 AI 与架构

图片图片

而毫无意外的是,当你深入 AI 4SE 的应用时,会发现每个环节都需要架构知识,以微服务架构为例:

当然,架构规范通常分散在不同的部门和团队中管理,如何高效整合和应用这些知识是当前面临的一个挑战。然而,这里我们主要关注架构知识在开发过程中的重要性。

微服务场景示例:AI 如何依赖于架构

图片图片

以基于 Protobuf 的微服务架构为例,我们可以探讨 AI 如何利用架构知识来推进开发流程的数字化。

Protobuf 是一种高效的二进制序列化协议,提供了跨语言、低延迟的数据交换能力,特别适合微服务架构中服务之间频繁的通信需求。通过解析 Protobuf 中的服务(Service)、消息(Message)和 RPC 调用等内容,AI 能够提取系统组件之间的交互关系、数据结构以及模块的职责。这些信息有助于识别系统的核心模块、数据流以及 API 接口。

对于 Spring Boot 框架,尽管具体实现和技术栈有所不同,但整体思路与上述 Protobuf 类似。Spring Boot 提供了一系列工具和库来支持微服务架构,例如 Swagger 等,这些工具可以帮助开发者快速构建和管理微服务。通过结合 Spring 工具生态,Spring Boot 应用中的服务之间的通信也能实现高效的数据交换,AI 可以同样在需求、设计、开发、测试和运维各个阶段进行有效的集成和自动化,进一步提升开发流程的智能化水平。

AI 与架构知识相互赋能:如何实现架构的数智化?

架构数智化是指通过对架构知识进行数字化和智能化的处理,提升架构设计、管理与协作的效率和质量。其核心在于将分散的架构知识进行数字化表示,构建统一的知识基础,使得人工智能(AI)能够理解和利用这些知识,从而辅助并优化架构相关的各个环节。

图片图片

实现架构数智化的关键步骤包括:

  1. 架构元模型的建立:定义架构的基本元素和关系,如组件、接口、依赖关系等。这为架构知识的数字化奠定了基础,确保了架构元素的标准化和可操作性。
  2. 知识图谱的构建:将架构元素及其关系映射到知识图谱中,形成结构化的架构知识库。知识图谱使得复杂的架构信息以可视化、关联性的方式呈现,便于知识的检索和推理。
  3. 标准化的语义定义:采用统一的描述语言和规范,如统一建模语言(UML)、领域特定语言(DSL)等。标准化确保了架构知识的可读性和可解析性,促进了人与机器之间的有效沟通。

借助数字化的架构知识,AI 能够在以下方面助力架构:

综上所述,架构数智化通过集成数字化表示和人工智能技术,实现了架构知识的高效管理和利用,推动了架构设计过程的智能化转型。这不仅提升了组织的创新能力和响应速度, 也为数字化时代的持续发展提供了坚实的技术支撑。

实践:提炼架构知识,整合 AI 工具

我们的探索围绕于三个平台/工具:

其中的 ArchGuard( https://archguard.org/ )和 Shire ( https://archguard.org/ ) 都是我们自研的开源工具,可以在 GitHub 上找到源码和文档。

1. ArchGuard:提取架构知识与数据

我们在 ArchGuard 2.2.2 版本中,提供了对 Protobuf 文件的解析和分析功能,支持自动提取服务、消息、接口等元素,构建服务地图和依赖关系图。并构建了 全新 ArchGuard Architecture Analyser 模块,支持对架构知识的智能化分析和优化。

通过,直接运行 ArchGuard CLI,就可以将 Protobuf 文件解析为 JSON 格式,并上传到自定义的远程服务器中,以便后续的分析和优化。

java -jar .scanner_cli.jar --language=go --type=architecture --output=http --server-url=http://localhost:3000 --path=.

如下是,我们在 ArchGuard 中的可视化展示:

图片图片

2. Team AI 平台:整合 AI 工具与架构知识

我们在 Team AI 平台中,整合了开发流程,并兼容 ArchGuard 接口。如下是,相同数据在 Team AI 平台中的展示:

图片图片

结合生成式 AI 的生成能力,我们可以快速构建基于代码库的接口知识,用于快速进行知识检索和查询:

图片图片

以便于我们可以从需求阶段,就可以查询到需求可能影响 的范围,方便进行架构设计和文档的编写等。Team AI 平台也提供了面向其它工具、平台的接口,诸如于 Shire IDE 插件就可以快速接入。

3. Shire AI 助手:AI 与架构知识的交互

在 Shire 可以直接调用远程的 Http API、流式 API 等:

图片图片

因此可以直接从平台获取所需要的架构知识,并将其与代码库相结合,以实现更高效的软件开发。我们还在即将发布的 Shire 新版本中添加更好的 Protobuf 支持:

图片图片

以直接在 IDE 中就可以让 AI 修改 prompt。

结语:架构知识的数字化与智能化

在我们的探索中,架构知识的数字化与智能化成为提升软件开发效率的关键。通过将 AI 应用到基于 Protobuf 的微服务架构,我们在需求、设计、开发、测试和运维等环节实现了智能化支持。

借助 ArchGuard 治理平台、Team AI 平台和 Shire AI 助手,我们构建了一套工具链,使架构知识能够被 AI 理解和应用,推动开发流程的自动化与智能化。尽管面临着规范与流程的挑战,我们相信,架构知识的有效整合将为 AI 的成功落地和研发效能提升提供强有力的支持。未来,我们将继续深入探索架构与 AI 的融合,推动软件工程的持续变革。

来源:phodal内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯