CN116382759A - 一种软件资产管理方法及装置 - Google Patents

一种软件资产管理方法及装置 Download PDF

Info

Publication number
CN116382759A
CN116382759A CN202310228262.2A CN202310228262A CN116382759A CN 116382759 A CN116382759 A CN 116382759A CN 202310228262 A CN202310228262 A CN 202310228262A CN 116382759 A CN116382759 A CN 116382759A
Authority
CN
China
Prior art keywords
software asset
information
asset information
software
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310228262.2A
Other languages
English (en)
Inventor
史海
徐运佳
孙彦臣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Huawei Cloud Computing Technology Co ltd
Original Assignee
Shenzhen Huawei Cloud Computing Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Huawei Cloud Computing Technology Co ltd filed Critical Shenzhen Huawei Cloud Computing Technology Co ltd
Priority to CN202310228262.2A priority Critical patent/CN116382759A/zh
Publication of CN116382759A publication Critical patent/CN116382759A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)

Abstract

一种软件资产管理方法及装置,用以对软件资产信息进行统一管理。该方法包括:获取软件资产管理服务中开发工具链的第一软件资产信息;开发工具链包括多个开发工具,第一软件资产信息用于表征开发工具链运行时产生的信息;对第一软件资产信息进行提取,得到第二软件资产信息,并将第二软件资产信息存储至软件资产库;第二软件资产信息用于表征软件资产管理服务所需的软件资产信息;对第二软件资产信息进行特性分析,得到特性分析结果。由于本申请实施例从第一软件资产信息中提取出第二软件资产信息后,对第二软件资产信息进行特性分析,实现了对软件资产管理服务所需的软件资产信息的统一管理,从而可以提高软件资产信息的统一管理效率。

Description

一种软件资产管理方法及装置
技术领域
本申请实施例涉及软件开发技术领域,尤其涉及一种软件资产管理方法及装置。
背景技术
随着软件开发规模和开发组织的不断扩展,通过项目管理软件对开发项目进行管理是必不可少的一环。这类软件实际是软件工程领域的企业资源计划(enterpriseresource planning administration,ERP)管理系统。
当前市场上的项目管理软件有很多,主要的项目管理软件有:Jira、Confluence、Trello、Mingle等。这类管理软件只要输入时间、人、事件、状态后,即可在管理系统页面上进行管理。比如:通过事件+状态汇总可以看当前遗留问题的总数和问题进展情况。但是,该管理软件还停留在ERP管理系统的层面上,需要用户输入各类需要被管理的内容后才能进行管理,无法对管理的内容进行有效扩展。
发明内容
本申请实施例提供一种软件资产管理方法及装置,用以对软件资产信息进行统一管理。
第一方面,本申请提供一种软件资产管理方法,下面以对软件资产信息进行管理的处理器为执行主体进行说明。在该方法中,处理器获取软件资产服务中开发工具链的第一软件资产信息;其中,开发工具链包括多个开发工具,第一软件资产信息用于表征开发工具链运行时产生的信息;处理器对获取到的第一软件资产信息进行提取,得到第二软件资产信息,并将第二软件资产信息存储至软件信息库;其中,第二软件资产信息用于表征软件资产管理服务所需的软件资产信息。然后,处理器对第二软件资产信息进行特性分析,得到特性分析结果。
通过该方法,处理器可以从获取到的多个开发工具的第一软件资产信息中,提取出软件资产管理服务所需的软件资产信息,实现对软件资产信息的自动化获取,无需用户手动输入软件资产信息,从而可以实现对软件资产信息的自动化管理。并且,处理器通过对第二软件资产信息进行特性分析,实现对软件资产服务所需的软件资产信息的统一管理,从而可以提高对软件资产信息的统一管理效率。
在一种可能的设计中,处理器根据软件资产管理服务的配置信息,确定开发工具链;其中,配置信息包含开发工具链的网络地址。然后,处理器可以获取并存储开发工具链的第一软件资产信息。
通过该设计,处理器可以根据配置信息中的开发工具链的网络地址,自动获取软件资产信息。
在一种可能的设计中,处理器还可以获取软件资产提取规则,并根据该软件资产提取规则,从第一软件资产信息中获取第二软件资产信息。
通过该设计,处理器可以基于软件资产提取规则,从第一软件资产信息中提取出第二软件资产信息,实现对第二软件资产信息的自动化提取。
在一种可能的设计中,处理器还可以通过标签模型,确定第二软件资产信息对应的标签,并将第二软件资产信息对应的标签存储至软件资产库中。
通过该设计,处理器将第二软件资产信息对应的标签存储至软件资产库中,可以为后续进行软件资产分析,提供数据基础。
在一种可能的设计中,当第二软件资产信息为代码资产信息时,处理器可以对第二软件资产信息进行结构分析,得到结构分析结果;或者,当第二软件资产信息为非代码资产信息时,处理器还可以对第二软件资产信息进行质量分析,得到质量分析结果。
通过该设计,处理器可以基于第二软件资产信息的类型,对第二软件资产信息进行特性分析。
在一种可能的设计中,当第二软件资产信息为代码资产信息时,处理器还可以对第二软件资产信息进行代码特征提取,得到代码特征。处理器可以对得到的代码特征进行结构分析,得到代码特征的结构分析结果。然后,处理器还可以将代码特征和结构分析结果存储至软件资产库中。
通过该设计,处理器可以对非结构化的第二软件资产信息进行代码特征提取,得到结构化的代码特征,进而可以通过对代码特征进行结构分析,完成对非结构的第二软件资产信息的特性分析。
在一种可能的设计中,处理器还可以接收查询请求,查询请求包括查询信息,查询信息用于表征软件资产管理服务需在第二软件资产信息中查询到的信息。当查询信息为关键字是,处理器还可以从软件资产库中查询包含关键字的第二软件资产信息,得到查询结果。或者,当查询信息为代码数据时,处理器还可以对代码数据进行代码特征提取,得到代码数据的代码特征;处理器可以从软件资产库中查询与代码数据的代码特征相同的代码特征,得到查询结果。
通过该设计,处理器可以根据接收到查询请求,对软件资产库中的第二软件资产信息进行查询。
第二方面,本申请提供一种软件资产管理装置,该装置包括:
获取模块,用于获取软件资产管理服务中开发工具链的第一软件资产信息;开发工具链包括多个开发工具;第一软件资产信息用于表征开发工具链运行时产生的信息;
提取模块,用于对第一软件资产信息进行提取,得到第二软件资产信息,并将第二软件资产信息存储至软件资产库;第二软件资产信息用于表征软件资产管理服务所需的软件资产信息;
分析模块,用于对第二软件资产信息进行特性分析,得到特性分析结果。
在一种可能的设计中,获取模块具体用于:
根据软件资产管理服务的配置信息,确定开发工具链;配置信息包含开发工具链的网络地址;
获取并存储开发工具链的第一软件资产信息。
在一种可能的设计中,提取模块具体用于:
获取软件资产提取规则;
根据软件资产提取规则,从第一软件资产信息中获取第二软件资产信息。
在一种可能的设计中,在从第一软件资产信息中获取第二软件资产信息之后,提取模块还用于:
通过标签模型,确定第二软件资产信息对应的标签;
将第二软件资产信息对应的标签存储至软件资产库中。
在一种可能的设计中,分析模块具体用于:
当第二软件资产信息为代码资产信息时,对第二软件资产信息进行结构分析,得到结构分析结果;或者,
当第二软件资产信息为非代码资产信息时,对第二软件资产信息进行质量分析,得到质量分析结果。
在一种可能的设计中,分析模块具体用于:
对第二软件资产信息进行代码特征提取,得到代码特征;
对代码特征进行结构分析,得到代码特征的结构分析结果;
将代码特征和结构分析结果存储至软件资产库中。
在一种可能的设计中,装置还包括查询模块;查询模块用于:
接收查询请求;查询请求包含查询信息;查询信息用于表征软件资产管理服务需在第二软件资产信息中查询到的信息;
当查询信息为关键字时,从软件资产库中查询包含关键字的第二软件资产信息,得到查询结果;或者,
当查询信息为代码数据时,对代码数据进行代码特征提取,得到代码数据的代码特征;从软件资产库中查询与代码数据的代码特征相同的代码特征,得到查询结果。
第三方面,本申请还提供一种电子设备,包括一个或多个处理器、一个或多个存储器。其中,一个或多个存储器用于存储一个或多个计算机程序;当一个或多个存储器存储的一个或多个计算机程序被一个或多个处理器执行时,使得该电子设备执行上述第一方面以及第一方面的任意可能的实现方式中的方法。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在电子设备上运行时,使得所述电子设备执行上述第一方面以及第一方面的任意可能的实现方式中的方法。
第五方面,本申请还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行上述第一方面以及第一方面的任意可能的实现方式中的方法。
第六方面,本申请还提供一种计算机芯片,芯片与存储器相连,芯片用于读取并执行存储器中存储的软件程序,执行上述第一方面以及第一方面的各个可能的实现方式中的方法。
附图说明
图1为本申请实施例提供的一种软件资产管理的应用场景示意图;
图2为本申请实施例提供的一种软件资产管理方法的示意图;
图3为本申请实施例提供的一种软件资产管理服务的用例视图;
图4为本申请实施例提供的一种代码数据检视用例的示意图;
图5为本申请实施例提供的一种软件资产管理服务的应用架构图;
图6为本申请实施例提供的一种可能的软件资产管理服务的组件架构图;
图7为本申请实施例提供的一种软件资产管理方法的完整流程示意图;
图8为本申请实施例提供的一种软件资产管理装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了便于理解,示例性的给出了与本申请相关概念的说明以供参考。
1)开发工具,是指一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的特殊软件。
2)软件资产,是指构成服务的要素,例如代码仓、配置项信息和软件运行时产生的数据、需求信息、漏洞信息等信息。
3)软件资产管理服务,是一种对开发项目进行管理的软件,是一种逻辑服务。
随着软件开发规模和开发组织的不断扩展,通过项目管理软件对开发项目进行管理是必不可少的一环。这类软件实际是软件工程领域的企业资源计划(enterpriseresource planning administration,ERP)管理系统。
当前市场上的项目管理软件有很多,主要的项目管理软件有:Jira、Confluence、Trello、Mingle等。这类管理软件只要输入时间、人、事件、状态后,即可在管理系统页面上进行管理。比如:通过事件+状态汇总可以看当前遗留问题的总数和问题进展情况。但是,该管理软件还停留在ERP管理系统的层面上,需要用户输入各类需要被管理的内容后才能进行管理,无法对管理的内容进行有效扩展。
有鉴于此,本申请实施例提供一种软件资产管理方法及装置,用以获取并分析开发工具链的软件资产信息,实现对软件资产信息的自动化管理。
下面将结合附图,对本申请实施例进行详细描述。
图1为本申请实施例提供的一种软件资产管理的应用场景示意图。如图1所示,该应用场景包括软件资产管理服务和开发工具链。其中,该软件资产管理服务可以应用于电子设备中的处理器,由处理器执行本申请实施例提供的软件资产管理方法。
其中,开发工具链包括多个开发工具。示例性的,开发工具链可以由一组必要的开发工具构成,用于编译和调试软件。例如,开发工具链可以包括以下至少一项:用于编辑源代码的文本编辑器,生成可执行文件的编译器及链接器,连接操作系统的库,除错器。
在一些实施例中,软件资产管理服务可以与开发工具链连接。处理器在搭载软件资产管理服务后,可以获取与软件资产管理服务连接的开发工具链的第一软件资产信息。其中,第一软件资产信息用于表征开发工具链运行时产生的信息。并且,处理器对第一软件资产信息进行提取,得到第二软件资产信息,并将第二软件资产信息存储至软件资产库;其中,第二软件资产信息用于表征软件资产管理服务所需的软件资产信息。然后,处理器可以对第二软件资产信息进行特性分析,得到特性分析结果,实现对第二软件资产信息的统一管理。
下面结合具体实施例对本申请进行说明。
图2为本申请实施例提供的一种软件资产管理方法的示意图。该方法应用于搭载软件资产服务的处理器中。如图2所示,该方法包括:
S201:处理器获取软件资产管理服务中开发工具链的第一软件资产信息。
其中,开发工具链包括多个开发工具,第一软件资产信息用于表征开发工具链运行时产生的信息。
在一些实施例中,处理器可以根据软件资产管理服务的配置信息,确定开发工具链。然后,处理器可以获取并存储开发工具链的第一软件资产信息。
在一些示例中,配置管理信息可以但不限于包括:开发工具链的网络地址。
处理器可以响应于用户触发的软件资产管理服务的配置操作,确定软件资产管理服务的配置信息。
在一些实施例中,本申请实施例中的软件资产管理服务面向的用户主要为软件开发团队岗位人员。其中,开发团队岗位人员包括但不限于:软件资产管理人员,软件质量运营人员和软件开发人员。其中,不同类型的用户在使用软件资产管理服务时,会形成不同的用户场景。
在一些示例中,软件资产管理人员可以设置软件资产管理服务的配置信息,为软件资产管理服务进行周边开发工具链配置。
图3为本申请实施例提供的一种软件资产管理服务的用例视图。其中,软件资产管理人员可以通过软件资产管理服务中的工具链接口管理模块,为软件资产管理服务配置开发工具链。示例的,软件资产管理人员可以将开发工具链中各开发工具的网络地址设置于工具链接口管理模块,使得软件资产管理服务可以通过工具链接口管理模块调用开发工具链。然后,处理器在运行软件资产管理服务时,可以通过工具链接口管理模块获取该开发工具链的第一软件资产信息。
例如,当配置的开发工具链为代码托管服务-Github时,第一软件资产信息包括但不限于:代码资产信息、页面文档信息、issues和二进制发布包。
在一些实施例中,软件资产管理人员还可以配置软件资产管理服务中的软件资产信息的存储方式。其中,该存储方式包括手动存储方式和自动存储方式。示例性地,当存储方式设置为自动存储方式时,处理器获取并存储软件资产信息。又例如,当存储方式设置为手动存储方式时,处理器在获取到软件资产信息后,可以生成提示信息以提示用户存储该软件资产信息。
在一些实施例中,处理器可以在获取软件资产管理服务已配置的开发工具链的第一软件资产信息后,将第一软件资产信息进行存储。
S202:处理器对第一软件资产信息进行提取,得到第二软件资产信息,并将第二软件资产信息存储至软件资产库。
在一些实施例中,第二软件资产信息用于表征软件资产管理服务所需的软件资产信息。
在一些示例中,处理器可以获取软件资产提取规则,并根据软件资产提取规则,从第一软件资产信息中获取第二软件资产信息。
在一些实施例中,软件资产提取规则可以配置为以下至少一项:软件资产信息为架构文档资产信息;软件资产信息为需求单管理资源信息;或者软件资产信息为代码资产信息。其中,架构文档资产信息可以但不限于包括:软件的架构设计信息;需求单管理资源信息可以但不限于包括:软件的开发信息,业务需求信息;代码资产信息可以但不限于包括:软件的代码信息。
处理器基于该软件资产提取规则,在第一软件资产信息中确定架构文档资产信息、需求单管理资源信息和代码资产信息,并将确定出的信息作为第二软件资产信息。
在一些实施例中,如图3所示,软件资产管理人员还可以为软件资产管理服务配置软件资产模型。其中,软件资产模型配置有软件资产提取规则。软件资产模型可以对第一软件资产信息进行分析提取,获取其中的代码资产信息、需求单管理资产信息和架构文档资产信息。
在一些实施例中,处理器将第二软件资产信息存储至软件资产库后,还可以响应用户对第二软件资产的调整操作,修改或增加第二软件资产信息。示例性的,如图3所示,软件开发人员还可以修改和增加代码资产信息、需求单管理资产信息和架构文档资产信息。
在一些实施例中,处理器在获取到第二软件资产信息后,可以通过标签模型,确定第二软件资产信息对应的标签。
处理器可以将第二软件资产信息输入到标签模型中,通过标签模型对第二软件资产信息进行标签识别,确定第二软件资产信息对应的标签。处理器还可以将第二软件资产信息对应的标签存储至软件资产管理服务中的软件资产库中。
如图3所示,软件资产管理人员还可以在软件资产管理服务中配置标签模型,来确定软件资产信息对应的标签。示例性的,标签模型包括但不限于:单资产标签模型,关联资产标签模型。
在一些示例中,处理器在确定获取到的软件资产信息对应的开发工具为A、B、C。其中,A为单独一类软件,B和C为A的关联软件时,处理器可以通过单资产标签模型为A的软件资产信息贴上单资产标签,为B的软件资产信息和C的软件资产信息贴上关联资产标签。
在一些实施例中,软件资产管理服务中的软件资产标签为软件资产管理人员配置的。例如,软件资产管理人员可以在软件资产管理服务中创建不安全代码标签、禁用标签,以使后续处理器可以为软件资产信息贴标。
S203:处理器对第二软件资产信息进行特性分析,得到特性分析结果。
在一些实施例中,处理器在确定软件资产库中的第二软件资产信息达到一定量时,可以对软件资产库中的第二软件资产信息进行特性分析,得到特性分析结果。
例如,处理器在确定软件资产库中的第二软件资产信息达到10G时,可以对软件资产库中的第二软件资产信息进行特性分析,得到特性分析结果。
在一些示例中,处理器可以对软件资产库中的第二软件资产信息进行多维度分析,得到多维度分析的结果。例如,处理器可以对第二软件资产信息进行当前软件资产维度积累情况分析,还可以进行各个研发人员的代码开发和上线情况分析。
在一些实施例中,处理器还可以根据第二软件资产信息的类型,对第二软件资产信息进行特性分析,得到特性分析结果。下面根据第二软件资产信息的两种类型,对第二软件资产信息的特性分析过程进行说明。
类型1:第二软件资产信息为代码资产信息。
在一些实施例中,处理器可以对第二软件资产信息进行结构分析,得到结构分析结果。
在一些实施例中,处理器可以对代码资产信息进行代码特征提取,得到代码特征。并且,处理器还可以对代码特征进行结构分析,得到代码特征的结构分析结果。
在一些示例中,代码资产信息为高度非结构化的软件资产信息,无法使用普通的文本解析方式提取其关键的结构化特征。因此,处理器可以调用相关code2seq等序列化算法对代码资产信息进行结构化特征提取,得到代码特征。示例性的,代码特征可以为代码函数。
在一些实施例中,结构分析结果可以用于表征该代码特征的结构化描述信息。例如,代码特征的结构分析结果可以为该代码特征为不安全函数。
处理器还可以将得到的代码特征和结构分析结果存储至软件资产库中。
类型2:第二软件资产信息为非代码资产信息。
在一些实施例中,处理器可以对非代码资产信息进行质量分析,得到质量分析结果。
例如,处理器可以对架构文档资产信息进行质量分析,得到架构文档资产信息的质量分析结果。处理器可以将得到的质量分析结果展示给用户。
在一些实施例中,处理器可以响应于软件质量运营人员触发的操作,可以对软件资产库中的第二软件资产信息进行各独立维度或联合维度的统计分析。
如图3所示,软件质量运营人员可以在软件资产管理人员为软件资产管理服务配置结束后,进行软件资产运营分析,得到第二软件资产信息的分析结果。其中,软件资产运营分析包括但不限于:质量分析,结构分析。软件质量运营人员可以根据分析结果,确定后续的改进策略。
在一些实施例中,处理器还可以接收查询请求,查询请求包含查询信息,查询信息用于表征软件资产管理服务需在第二软件资产信息中查询到的信息。
在一些实施例中,查询信息包括但不限于:关键字,代码数据。示例性地,关键字可以为“加密算法”,代码数据可以为开发人员编译的代码。
在一些实施例中,当查询信息为关键字时,处理器可以从软件资产库中查询包含关键字的第二软件资产信息,得到查询结果。
在一些示例中,处理器可以将软件资产库中包含该关键字的第二软件资产信息,作为查询结果。另外,当处理器在软件资产库中未查询到包含该关键字的第二软件资产信息时,处理器确定查询结果为空。
例如,当查询信息为关键字“加密算法”时,处理器从软件资产库中查询包含加密算法的第二软件资产信息,并将查询到的第二软件资产信息作为查询结果。
如图3所示,软件质量运营人员可以在软件资产管理服务上触发软件资产查询。其中,软件资产查询包括但不限于:查询软件资产信息的类别,查询软件资产信息。
例如,软件质量运营人员可以在软件资产管理服务中输入“加密算法”的关键字后,软件资产管理服务根据软件质量运营人员输入的关键字,从软件资产库中获取包含“加密算法”的第二软件资产信息,例如,加密算法开发文档、加密算法函数归属软件包、加密算法所属的函数和类信息。然后,软件资产管理服务可以将确定出的包含“加密算法”的第二软件资产信息返回给软件质量运营人员。
在一些实施例中,当查询信息为代码数据时,处理器可以对代码数据进行代码特征提取,得到代码数据的代码特征。处理器还可以从软件资产库中查询与代码数据的代码特征相同的代码特征,得到查询结果。
基于上述实施例,处理器可以从软件资产管理服务中的开发工具链中获取第一软件资产信息,并从第一软件资产信息中提取出软件资产管理服务所需的第二软件资产信息,从而可以实现自动化获取第二软件资产信息。并且,处理器还可以对第二软件资产信息进行特性分析,实现对软件资产管理服务所需的软件资产信息的统一管理,从而可以提高对软件资产的统一管理效率。
如图4所示,本申请实施例提供一种代码数据检视用例。软件开发人员可以在软件资产管理服务上提交代码数据。处理器在接收到代码数据后,对代码数据进行代码特征提取,得到代码数据的代码特征。然后,处理器从软件资产库中确定与代码数据的代码特征相同的代码特征,并将代码特征对应的结构分析结果作为查询结果。
图4中的软件质量运营人员可以对代码资产信息进行结构分析,为图4中的代码片段贴上“不安全函数”和“x开发团队禁止使用”的标签。示例性地,软件质量运营人员可以将该代码片段和其对应的标签,存储至软件资产库中。
其中,代码片段如下所示:
Figure BDA0004119656970000081
-不安全函数
-X开发团队内禁止使用。
在一些实施例中,处理器可以根据查询结果,生成检视意见,并将检视意见返回至开发人员。
其中,当处理器确定用户输入的代码数据中包含代码片段时,生成的检视意见如下所示:
#xxxx
subprocess.call(command,shell=True)#a bad idea!
检视意见:你提交的代码有不安全函数,此函数在X开发团队内禁止使用,请修改提交代码,谢谢!
在一些实施例中,处理器确定查询结果为软件资产库中没有与该代码数据中的代码特征相同的代码特征时,处理器可以将代码数据传输给专家,由专家进行检视,并将检视结果存储至软件资产库中。
在本申请实施例中,处理器可以通过软件资产管理服务,对其配置的开发工具链的软件资产信息进行统一管理,提高软件资产信息统一管理的效率。处理器还可以对软件资产信息进行分析,实现对开发工具链的工程能力的分析,为后续改进提供数据基础。
图5为本申请实施例提供的一种软件资产管理服务的应用架构图。该应用包括展现层、缓存层、处理层、服务层和数据层。
其中,展现层包括商务智能(business intelligence,BI)分析界面、应用程序接口(application programming interface,API)集合、软件开发工具包(softwaredevelopment kit,SDK)客户端、Web管理界面和基础设施平台接口。该展现层用于对软件资产管理服务所提供的服务进行展现,以便用户对软件资产管理服务进行管理和应用。其中,用户可以通过web管理界面对软件资产管理服务进行手动管理。BI分析界面、API集合和SDK客户端则是为用户提供应用软件资产管理服务的入口。
缓存层包括内容分发网络(content delivery network,CDN)和高速缓存系统(memcached)。该缓存层用于缓存软件资产管理服务运行时产生的数据。
处理层包括代码特征序列化提取器和人工智能学习引擎。其中,处理层主要用于复杂的非结构化软件资产信息的分析和人工智能训练。例如,代码资产信息为高度非结构化的软件资产信息,可以通过代码特征序列化提取器,对代码资产信息进行代码特征提取,得到代码特征。然后,代码特征序列化提取器将提取出的代码特征输入到人工智能引擎中,进行人工智能训练和学习。经过训练后的人工智能引擎可以对后续新产生的代码数据进行分析应用。
服务层用于对开发工具链中的第一软件资产信息自动采集和管理。其中,服务层包括软件资产管理引擎、标签管理引擎、软件资产分析引擎、代码资产结构化分析引擎和资源控制器。其中,软件资产分析引擎是对数据层中已采集的软件资产信息进行软件质量分析和问题发掘。资源控制器是确保有外部结构化或半结构化的软件资产信息时,可以通过此控制器对开发工具链中存放的软件资产信息的获取和存储。标签管理引擎是对软件资产信息进行贴标。代码资产结构化分析引擎是对代码资产信息进行结构分析,得到代码资产信息的结构分析结果。软件资产管理引擎是将软件资产信息及其相关联的信息存储至数据层中。
数据层用于对各维度采集到的软件资产信息进行存储和管理。其中,数据层可以为软件资产库。示例性地,数据层可以包括关系型数据管理系统(mysql)和图型数据库(neo4j)。
图6为本申请实施例提供的一种可能的软件资产管理服务的组件架构图。其中,该软件资产管理服务包括外部软件资产管理服务组件、软件资产控制器组件、软件资产管理服务组件、代码智能检视服务组件和代码资产分析服务组件。
其中,外部软件资产管理服务组件用于管理和配置周边开发工具链的网络地址。该外部软件资产管理服务组件中包括服务管理器。示例性的,外部软件资产管理服务组件通过服务管理器来管理和配置开发工具链的网络地址。
软件资产控制器组件用于对开发工具链的第一软件资产信息进行提取和存储。其中,该软件资产控制器组件可以包括资源控制器。资源控制器可以接收用户设置的软件资产提取规则,并将软件资产提取规则和获取到的第一软件资产信息发送给软件资产管理服务组件。
软件资产管理服务组件主要用于对软件资产信息和标签的存储管理。其中,软件资产管理服务组件可以包括软件资产分析引擎、软件资产管理引擎和标签管理引擎。软件资产管理引擎可以根据软件资产提取规则,对第一软件资产信息进行提炼,得到第二软件资产信息,并将第二软件资产信息存储至软件资产库中。标签引擎可以对第二软件资产信息进行标签分析,确定其对应的标签,并存储第二软件资产信息对应的标签。软件资产分析引擎可以对第二软件资产信息进行分析,得到分析结果。其中,该第二软件资产信息为非代码资产信息。
代码资产分析服务组件用于对代码资产信息进行结构分析。该代码资产分析服务组件包括代码资产分析引擎。其中,代码资产分析引擎包括函数抽象语法树(abstractsyntax tree,AST)分析引擎和人工智能(artificial intelligence,AI)训练引擎。
在一些实施例中,代码资产分析服务组件在接收到代码资产信息后,通过函数AST分析引擎对非结构化的代码资产信息进行函数级别拆分和相关AST的分析并输出各个函数的AST树的多个可能路径。代码资产分析服务组件将各个函数的多个可能路径作为多个代码特征,并将得到的多个代码特征输入到AI训练引擎,通过AI训练引擎输出各个函数的结构分析结果。
代码智能检视服务组件用于对代码数据进行软件资产库的查询。其中,代码智能检视服务组件包括代码检视引擎。
在一些实施例中,代码检视引擎可以获取代码托管服务中的代码数据,并将获取到的代码数据传输给代码资产分析服务组件进行结构分析。然后,代码检视引擎接收代码资产分析服务组件返回的代码特征,并在软件资产库中查询与该代码特征相同的代码特征,得到查询结果。代码检视引擎还可以根据查询结果确定代码数据的检视意见,将查询结果和检视意见返回至代码托管服务。
图7为本申请实施例提供的一种软件资产管理方法的完整流程示意图;其中,以对软件资产信息进行管理的处理器为执行主体进行说明。如图7所示,该方法包括以下步骤:
S701:处理器根据软件资产管理服务的配置信息,确定开发工具链。
在一些实施例中,开发工具链包括多个开发工具,配置信息包括但不限于:开发工具链的网络地址。
S702:处理器获取并存储开发工具链的第一软件资产信息。其中,第一软件资产信息用于表征开发工具链运行时产生的信息。
S703:处理器获取软件资产提取规则,并根据软件资产提取规则,从第一软件资产信息中获取第二软件资产信息。
其中,第二软件资产信息用于表征软件资产管理服务所需的软件资产信息。
S704:处理器通过标签模型,确定第二软件资产信息对应的标签。
在一些实施例中,标签可以为用户预先为软件资产管理服务配置的。
S705:处理器将第二软件资产信息和第二软件资产信息对应的标签存储至软件资产库中。
S706:处理器对第二软件资产信息进行特性分析,得到特性分析结果。
在一些实施例中,当第二软件资产信息为代码资产信息时,处理器对第二软件资产信息进行结构分析,得到结构分析结果。
处理器在确定第二软件资产信息为代码资产信息时,对代码资产信息进行代码特征提取,得到代码特征。处理器对代码特征进行结构分析,得到代码特征的结构分析结果。
在一些实施例中,当第二软件资产信息为非代码资产信息时,处理器对第二软件资产信息进行质量分析,得到质量分析结果。
S707:处理器接收查询请求。其中,查询请求包含查询信息,查询信息用于表征软件资产管理服务需在第二软件资产信息中查询到的信息。
S708:处理器确定查询信息是否为代码数据;若是,则执行步骤S709;若否,则执行步骤S711。
S709:处理器对代码数据进行代码特征提取,得到代码数据的代码特征。
S710:处理器从软件资产库中查询与代码数据的代码特征相同的代码特征,得到查询结果。
S711:处理器从软件资产库中查询包括关键字的第二软件资产信息,得到查询结果。
基于图7所示的内容,处理器获取开发工具链的软件资产信息,并对其进行统一管理,提升了软件资产统一管理的效率。
基于以上实施例及相同构思,本申请实施例还提供了一种软件资产管理装置,所述界面更新装置应用于处理器。如图8所示,所述软件资产管理装置800包括:
获取模块801,用于获取软件资产管理服务中开发工具链的第一软件资产信息;开发工具链包括多个开发工具;第一软件资产信息用于表征开发工具链运行时产生的信息;
提取模块802,用于对第一软件资产信息进行提取,得到第二软件资产信息,并将第二软件资产信息存储至软件资产库;第二软件资产信息用于表征软件资产管理服务所需的软件资产信息;
分析模块803,用于对第二软件资产信息进行特性分析,得到特性分析结果。
在一些实施方式中,获取模块801具体用于:
根据软件资产管理服务的配置信息,确定开发工具链;配置信息包含开发工具链的网络地址;
获取并存储开发工具链的第一软件资产信息。
在一些实施方式中,提取模块802具体用于:
获取软件资产提取规则;
根据软件资产提取规则,从第一软件资产信息中获取第二软件资产信息。
在一些实施方式中,在从第一软件资产信息中获取第二软件资产信息之后,提取模块802还用于:
通过标签模型,确定第二软件资产信息对应的标签;
将第二软件资产信息对应的标签存储至软件资产库中。
在一些实施方式中,分析模块803具体用于:
当第二软件资产信息为代码资产信息时,对第二软件资产信息进行结构分析,得到结构分析结果;或者,
当第二软件资产信息为非代码资产信息时,对第二软件资产信息进行质量分析,得到质量分析结果。
在一些实施方式中,分析模块803具体用于:
对第二软件资产信息进行代码特征提取,得到代码特征;
对代码特征进行结构分析,得到代码特征的结构分析结果;
将代码特征和结构分析结果存储至软件资产库中。
在一些实施方式中,装置还包括查询模块804;查询模块804用于:
接收查询请求;查询请求包含查询信息;查询信息用于表征软件资产管理服务需在第二软件资产信息中查询到的信息;
当查询信息为关键字时,从软件资产库中查询包含关键字的第二软件资产信息,得到查询结果;或者,
当查询信息为代码数据时,对代码数据进行代码特征提取,得到代码数据的代码特征;从软件资产库中查询与代码数据的代码特征相同的代码特征,得到查询结果。
基于以上实施例,如图9所示,本申请还提供一种电子设备。该电子设备用于实现以上实施例提供的方法,具有以上图8所示的装置的功能。图9示出了一种电子设备1000的结构示意图。
该电子设备1000可以包括显示器1001,用于显示用户界面。
电子设备1000还可以包括至少一个处理器1002,用于实现或用于支持电子设备1000实现本申请实施例提供的方法中软件资产管理装置的功能。示例性地,处理器1002可以从获取到的开发工具链的第一软件信息中得到第二软件资产信息,并对该第二软件资产信息进行特性分析得到特性分析结果,具体参见方法示例中的详细描述,此处不做赘述。
电子设备1000还可以包括至少一个存储器1003,用于存储程序指令和/或数据。存储器1003和处理器1002耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1002可能和存储器1003协同操作。处理器1002可能执行存储器1003中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。
本申请实施例中不限定上述显示器1001、处理器1002以及存储器1003之间的具体连接介质。本申请实施例在图9中以显示器1001、处理器1002以及存储器1003之间通过总线1004连接,总线在图9中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器1002可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器1003可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于以上实施例,本申请还提供一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行本申请实施例所描述的软件资产管理方法。
基于以上实施例,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被计算机执行时,使得所述计算机执行本申请实施例所描述的软件资产管理方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (17)

1.一种软件资产管理方法,其特征在于,所述方法包括:
获取软件资产管理服务中开发工具链的第一软件资产信息;所述开发工具链包括多个开发工具;所述第一软件资产信息用于表征所述开发工具链运行时产生的信息;
对所述第一软件资产信息进行提取,得到第二软件资产信息,并将所述第二软件资产信息存储至软件资产库;所述第二软件资产信息用于表征所述软件资产管理服务所需的软件资产信息;
对所述第二软件资产信息进行特性分析,得到特性分析结果。
2.根据权利要求1所述的方法,其特征在于,所述获取软件资产管理服务中开发工具链的第一软件资产信息,包括:
根据所述软件资产管理服务的配置信息,确定所述开发工具链;所述配置信息包含所述开发工具链的网络地址;
获取并存储所述开发工具链的所述第一软件资产信息。
3.根据权利要求1或2所述的方法,其特征在于,所述对所述第一软件资产信息进行提取,得到第二软件资产信息,包括:
获取软件资产提取规则;
根据所述软件资产提取规则,从所述第一软件资产信息中获取所述第二软件资产信息。
4.根据权利要求3所述的方法,其特征在于,在从所述第一软件资产信息中获取所述第二软件资产信息之后,所述方法还包括:
通过标签模型,确定所述第二软件资产信息对应的标签;
将所述第二软件资产信息对应的标签存储至所述软件资产库中。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述对所述第二软件资产信息进行特性分析,得到特性分析结果,包括:
当所述第二软件资产信息为代码资产信息时,对所述第二软件资产信息进行结构分析,得到结构分析结果;或者,
当所述第二软件资产信息为非代码资产信息时,对所述第二软件资产信息进行质量分析,得到质量分析结果。
6.根据权利要求5所述的方法,其特征在于,所述对所述第二软件资产信息进行结构分析,得到结构分析结果,包括:
对所述第二软件资产信息进行代码特征提取,得到代码特征;
对所述代码特征进行结构分析,得到所述代码特征的结构分析结果;
将所述代码特征和所述结构分析结果存储至所述软件资产库中。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
接收查询请求;所述查询请求包含查询信息;所述查询信息用于表征所述软件资产管理服务需在所述第二软件资产信息中查询到的信息;
当所述查询信息为关键字时,从所述软件资产库中查询包含所述关键字的第二软件资产信息,得到所述查询结果;或者,
当所述查询信息为代码数据时,对所述代码数据进行代码特征提取,得到所述代码数据的代码特征;从所述软件资产库中查询与所述代码数据的代码特征相同的代码特征,得到所述查询结果。
8.一种软件资产管理装置,其特征在于,所述装置包括:
获取模块,用于获取所述软件资产管理服务中开发工具链的第一软件资产信息;所述开发工具链包括多个开发工具;所述第一软件资产信息用于表征所述开发工具链运行时产生的信息;
提取模块,用于对所述第一软件资产信息进行提取,得到第二软件资产信息,并将所述第二软件资产信息存储至软件资产库;所述第二软件资产信息用于表征所述软件资产管理服务所需的软件资产信息;
分析模块,用于对所述第二软件资产信息进行特性分析,得到特性分析结果。
9.根据权利要求8所述的装置,其特征在于,所述获取模块具体用于:
根据所述软件资产管理服务的配置信息,确定所述开发工具链;所述配置信息包含所述开发工具链的网络地址;
获取并存储所述开发工具链的所述第一软件资产信息。
10.根据权利要求8或9所述的装置,其特征在于,所述提取模块具体用于:
获取软件资产提取规则;
根据所述软件资产提取规则,从所述第一软件资产信息中获取所述第二软件资产信息。
11.根据权利要求10所述的装置,其特征在于,在从所述第一软件资产信息中获取所述第二软件资产信息之后,所述提取模块还用于:
通过标签模型,确定所述第二软件资产信息对应的标签;
将所述第二软件资产信息对应的标签存储至所述软件资产库中。
12.根据权利要求8-11任一项所述的装置,其特征在于,所述分析模块具体用于:
当所述第二软件资产信息为代码资产信息时,对所述第二软件资产信息进行结构分析,得到结构分析结果;或者,
当所述第二软件资产信息为非代码资产信息时,对所述第二软件资产信息进行质量分析,得到质量分析结果。
13.根据权利要求12所述的装置,其特征在于,所述分析模块具体用于:
对所述第二软件资产信息进行代码特征提取,得到代码特征;
对所述代码特征进行结构分析,得到所述代码特征的结构分析结果;
将所述代码特征和所述结构分析结果存储至所述软件资产库中。
14.根据权利要求8-13任一项所述的装置,其特征在于,所述装置还包括查询模块;所述查询模块用于:
接收查询请求;所述查询请求包含查询信息;所述查询信息用于表征所述软件资产管理服务需在所述第二软件资产信息中查询到的信息;
当所述查询信息为关键字时,从所述软件资产库中查询包含所述关键字的第二软件资产信息,得到所述查询结果;或者,
当所述查询信息为代码数据时,对所述代码数据进行代码特征提取,得到所述代码数据的代码特征;从所述软件资产库中查询与所述代码数据的代码特征相同的代码特征,得到所述查询结果。
15.一种电子设备,其特征在于,包括:一个或多个处理器;一个或多个存储器;
其中,所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1至7中任意一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至7中任意一项所述的方法。
17.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如上述权利要求1至7中任意一项所述的方法。
CN202310228262.2A 2023-02-28 2023-02-28 一种软件资产管理方法及装置 Pending CN116382759A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310228262.2A CN116382759A (zh) 2023-02-28 2023-02-28 一种软件资产管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310228262.2A CN116382759A (zh) 2023-02-28 2023-02-28 一种软件资产管理方法及装置

Publications (1)

Publication Number Publication Date
CN116382759A true CN116382759A (zh) 2023-07-04

Family

ID=86966530

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310228262.2A Pending CN116382759A (zh) 2023-02-28 2023-02-28 一种软件资产管理方法及装置

Country Status (1)

Country Link
CN (1) CN116382759A (zh)

Similar Documents

Publication Publication Date Title
US11789715B2 (en) Systems and methods for transformation of reporting schema
US8959481B2 (en) Determining system level dependencies
CN115617327A (zh) 低代码页面搭建系统、方法及计算机可读存储介质
US8719784B2 (en) Assigning runtime artifacts to software components
US20200348929A1 (en) Provenance-based reuse of software code
CN108171528B (zh) 一种归因方法及归因系统
CN111428451B (zh) 文本在线编辑方法、装置、电子设备及存储介质
US11171835B2 (en) Automated generation of an information technology asset ontology
KR101877828B1 (ko) 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템
CN114327374A (zh) 业务流程的生成方法、装置及计算机设备
CN111427577A (zh) 代码处理方法、装置及服务器
CN112148343A (zh) 规则发布方法、装置及终端设备
CN114218315A (zh) 接口生成方法、装置、计算机设备及存储介质
US20110055373A1 (en) Service identification for resources in a computing environment
De Alwis et al. Microservice remodularisation of monolithic enterprise systems for embedding in industrial IoT networks
CN115202639A (zh) 基于自定义模块的代码生成方法、装置、设备及存储介质
CN113434542B (zh) 数据关系识别方法、装置、电子设备及存储介质
CN113495723B (zh) 一种调用功能组件的方法、装置及存储介质
CN113687827A (zh) 基于微件的数据列表生成方法、装置、设备及存储介质
US20140122159A1 (en) License Meta-Model for Automatic License Reasoning
CN112613792A (zh) 数据处理方法、系统、计算机设备和存储介质
US10339037B1 (en) Recommendation engine for recommending prioritized performance test workloads based on release risk profiles
Layzell et al. A rule-based approach to the construction and evolution of business information systems
Abbas et al. An approach for optimized feature selection in software product lines using union-find and genetic algorithms
CN115774672A (zh) 测试用例的生成方法、生成装置、服务器和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination