广西智汇佳人力资源有限公司 广西南宁 530000
摘要:为了满足社会创新后的需要,建立公共平台。创建企业智能软件开发环境,提高企业创新能力。开发基于数据的智能软件开发技术系统,是开发智能软件开发的重要工具。
关键词:软件复用;大数据;智能化软件开发
互联网开源软件的开发与开放边界、分布式群体、频繁知识交付和知识复杂性相关。同时,企业软件发展成为一个基于一体化系统(DevOps)开发、运行和维护的云开发平台。智能软件开发是软件开发的主要目标之一。著名的软件自动化核心主题始于1980年代。近年来,ICSE、FSE和其他高级软件越来越多地研究和开发了基于数据和知识的智能技术。
一、系统架构
智能大数据的软件开发方法和环境,整个方法和环境都基于不同的软件开发数据源,包括开源项目存储和企业软件、实施结果、部署、操作和技术监控。它由三个级别组成,软件知识的数据收集和提取、软件智能开发支持和软件智能开发服务。特别是通过自动收集和汇总各种类型的软件信息,为软件的独立增长、异构性和通用性创造了条件。智能软件开发分为四个主要领域:软件开发、测试和认证、团队协作和操作开发。智能支持相关软件开发活动。智能软件的发展主要基于集成技术,这种分布式环境,为信息环境的软件仓库开发创建了操作和集成框架。它集成并提供了一个高度可用的智能开发环境,为个人和企业提供了一个智能软件开发平台。
二、核心技术
1.大数据汇聚软件。软件项目的基本数据主要由(如代码、文档、开发记录等)组成。根据对当前软件开发过程中获得的数据的分析,总结了数据类型、格式、使用和软件生命周期,建立了一个综合、多维度、多谱系、贯通性数据分类网络,以提取和传播软件知识。该系统包括在多个子类别中开发、提供和应用数据,并将特定数据格式分配给软件存储库、社区和论坛。基于基于软件的大型数据分类系统,为整个链和所有数据收集、存储和处理软件建立大型数据库,并提供智能开发服务。
2.提炼软件知识。智能软件要实现开发的目标,需要比这些数据得到的更多元化的软件知识,从而建立智能软件开发能力。为此,开发了基于机器学习、知识图谱、数据提取和信息可视化等智能技术的各种提取和应用方法。具体而言,来自机器学习和绘制知识的知识图谱法是智能分析方法。智能机器学习(包括含深度)分析基于软件开发数据,如源代码、软件开发数据库、项目文档、众包网站、众包问答、API等。数据准备和建模以创建包含建议的服务表单数据准备和模型选择至关重要。在数据准备阶段,培训模块从软件开发源数据中提取出来,以满足建议的要求,例如API管理模块与API用户建议的代码上下文之间的源链接。并提出了故障报告与设备及其模块维护的关系该项目使用各种分析方法,例如程序分析、信息提取和过滤、从源软件的源数据中提取相关信息以及开发包含必要背景材料的培训模块。在模型选择中,项目采用了包括LSTM、APIbiRNN模型和缺陷修复分派在内的扩展学习方法。
3.智能软件元素。智能软件的创建分为三个活动:编码、评审和重建。它提供智能代码支持、代码差异分析和智能功能。软件开发人员通常依靠各种公共API(如JDK和Android)来执行开发任务。但是,API太多,使开发人员难以理解API的所有特性并知道它们可以在哪里使用。对于开发人员来说,在特定的代码上下文中选择和使用相应的API通常是一个问题。为此,设计团队提出了一种基于代码生成方法,该方法由LSTM模型和基于抽象代码树代码表示。节点是抽象API,使用表达式、变量说明、赋值表达式或控制结构来表示它们对控制流。代码更改差异分析,开发人员花费大量时间了解、集成和返回测试期间的代码更改。代码更改的偏差分析是常用的第二种通信方法。由于基于现有文本和语法框架,结构树不完善的方法,小组设计提供了基于抽象语法树的代码差异。基于抽象算法,这一方法计算规则代码差异分析的结果。这将大大减小基于抽象的语法模式的编辑的规模,并允许提取其他差异和从属关系。软件智能和自动重构是提高软件质量的重要技术手段。对软件的内部结构进行优化和调整,以提高软件质量,特别是可读性和可扩展性,而不改变软件的外部文本特性。IDE中对软件结构重构的自动支持目前仅限于结构调整的实施阶段,没有功能强大的工具来研究结构调整的可能性并提出解决方案。在软件开发过程中,代码的实现往往与预期的扩展设计不兼容。它必须将业务逻辑与设计知识结合起来才能获得所需的设计。因此,设计团队提出了基于顶层设计检索算法的自动重构,并开发了设计自动化软件。该方法允许通过先进的设计和自动代码表示以及及时的损坏检测,对长期开发过程中开发的复杂软件系统进行交互重组。提高软件开发质量,确保顺利实施。
4.智能测试。智能测试和验证旨在通过克服软件测试和认证的障碍,提高相关技术和工具的效率和可扩展性。问题复杂性管理基于软件开发和维护过程中开发的各种智能软件和机器学习方法。数据基于软件开发过程中获得,程序执行信息、错误报告、编程共享经验、分析静态信号、技术文档、历史操作报告和用户报告、机器学习、启发式搜索等。了解自然语言等智能方法旨在确保连接软件(如测试、验证、分析、调试和维护)的质量,以及静态警报检测和分析、程序故障检测和信息维护建议。
对于开发大量数据的智能软件的方法和条件,项目小组提供了一系列基于智能数据管理软件的方法,这些方法可以集成到许多重要的软件开发过程中。项目团队开发了各种软件开发工具的原型,这些工具可为开发复杂问题提供智能建议和帮助,例如知识图谱、数据验证和大型数据库软件、智能开发和全面决策。
参考文献:
[1]张韩.软件分析实践[J].电气电子工程师学会软件,2019,30(5):30-37。
[2]辛贝.论软件的自然性[J].美国计算机学会通讯,2019,59(5):122-131.