Software development ecology information processing method and system, electronic equipment and medium
By processing the multi-dimensional information of dependencies in the software development ecosystem, the vitality value of the software development ecosystem is calculated, and the problem that the existing technology cannot comprehensively and accurately evaluate the ecological environment of the information system is solved, and more accurate system evaluation and planning is achieved.
Patent Information
- Application Number
- CN202411769534.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-04
- Publication Date
- 2025-03-21
AI Technical Summary
The existing information system evaluation methods cannot fully and accurately reflect the impact of dynamic changes in the external environment and internal components on the system, and it is difficult to effectively evaluate and plan the ecological environment of the information system.
By obtaining the programming language information, version information, update information, etc. of multiple dependencies in the software development ecosystem, a property information set is formed, and based on this, the market share information, activity information, aging information and security information of each dependency are determined based on this, so as to calculate the vitality value of the software development ecosystem.
It realizes a comprehensive quantitative judgment of the software development ecosystem, provides more comprehensive and accurate evaluation results, can guide the development and maintenance of application systems, and maintain the healthy development of the system.
Smart Images

Figure CN119668666A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of software engineering, and in particular to an information processing method, system, electronic device and medium for software development ecology. Background Art
[0002] With the rapid development of information technology, enterprises are facing many challenges in their information construction. The information system is not only the support for enterprise operations, but also an important guarantee for its sustainable development. However, as time goes by, the existing system may face many demands and challenges such as technology updates, function expansion, and security improvement. Therefore, how to evaluate and plan the ecological environment of the information system in a more comprehensive and accurate way while ensuring the stable operation of the current system has become an urgent problem for enterprises to solve. Summary of the invention
[0003] In view of this, the present invention provides an information processing method, system, electronic device and medium for a software development ecosystem to at least partially solve the above-mentioned problems.
[0004] On the one hand, the present invention provides an information processing method for a software development ecosystem, comprising: obtaining at least one of programming language information, version information, update information, scope information, function description information, and security vulnerability repair information of multiple dependencies in the software development ecosystem to form an attribute information set, wherein the dependencies include external components and / or libraries required for the operation of the software development ecosystem; based on the attribute information set and a pre-stored reference information set, determining market share information, activity information, aging information, and security information of each dependency, wherein the reference information set is obtained by pre-collecting attribute information of software development ecosystems that have been running in the market; determining a vitality value of the software development ecosystem based on the market share information, activity information, aging information, and security information of the dependencies, wherein the vitality value is used to characterize the health status, vitality level, and development potential of the software development ecosystem.
[0005] According to an embodiment of the present invention, based on an attribute information set and a pre-stored reference information set, determining the market share information, activity information, aging information and security information of each dependency includes: screening the attribute information set to determine feature information related to the market share information, activity information, aging information and security information in the attribute information set; comparing the feature information with the reference information set, and determining the market share information, activity information, aging information and security information based on the difference information obtained by the comparison, wherein the market share information is set to the usage ratio of the programming language currently used by the dependency in the market, the activity information is set to the average version release frequency of the dependency, the aging information is set to the inverse of the remaining maintenance time of the dependency, and the security information is set to the product of the number of security vulnerabilities of the dependency and the historical average vulnerability repair time.
[0006] According to an embodiment of the present invention, determining the vitality value of the software development ecosystem based on the market share information, activity information, aging information and security information of the dependencies includes: normalizing the market share information, activity information, aging information and security information to obtain a normalized result; and determining the vitality value of the software development ecosystem based on the normalized result.
[0007] According to an embodiment of the present invention, market share information, activity information, aging information and safety information are normalized to obtain a normalized result including: determining the maximum values corresponding to each of the market share information, activity information, aging information and safety information in a reference information set; calculating the ratios of the market share information, activity information, aging information and safety information to their respective corresponding maximum values to obtain a normalized result.
[0008] According to an embodiment of the present invention, determining the vitality value of the software development ecosystem based on the normalized results includes: performing weighted summation on the normalized results to determine the vitality value, wherein positive weights are assigned to market share information and activity information, and negative weights are assigned to aging information and security information.
[0009] According to an embodiment of the present invention, the above method also includes: replacing at least one dependency in the software development ecosystem according to the size relationship between the vitality value and the target vitality value, and recalculating the vitality value of the software development ecosystem after replacing the dependency.
[0010] According to an embodiment of the present invention, the dependencies include at least one of an operating environment, a programming language, a development tool, a development dependency library, and a testing tool.
[0011] On the other hand, the present invention provides an information processing system for a software development ecosystem, including: a collection module, used to obtain programming language information, version information, update information, scope information, function description information, and security vulnerability repair information of multiple dependencies in the software development ecosystem to form an attribute information set, and the dependencies include external components and / or libraries required for the operation of the software development ecosystem; a determination module, used to determine the market share information, activity information, aging information, and security information of each dependency based on the attribute information set and a pre-stored reference information set, and the reference information set is obtained by pre-collecting the attribute information of the software development ecosystem that has been running in the market; a calculation module, used to normalize the market share information, activity information, aging information, and security information, and determine the vitality value of the software development ecosystem according to the normalization result, and the vitality value is used to characterize the health status, vitality level, and development potential of the software development ecosystem.
[0012] Yet another aspect of the present invention provides an electronic device, comprising: one or more processors; a storage device for storing one or more programs, wherein when the one or more programs are executed by the one or more processors, the one or more processors execute any one of the methods in the above embodiments.
[0013] Another aspect of the present invention provides a computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, causes the processor to execute a method according to any one of the above embodiments.
[0014] The information processing method, system, electronic device and medium provided by the embodiments of the present invention obtain the vitality value of the entire software development ecosystem by extracting the market share information, activity information, aging information and security information of each dependency from the acquired attribute information, and can make a comprehensive quantitative judgment on the vitality state of the software development ecosystem from different dimensions. Compared with a single evaluation indicator or a qualitative evaluation method, the information processing method, system, electronic device and medium provided by the embodiments of the present invention process the information of the software development ecosystem to obtain a quantifiable vitality value, so the result is more comprehensive and accurate. The method of the present invention can provide a guiding basis for the development of application systems and maintain the healthy development of application systems. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] The above and other objects, features and advantages of the present invention will become more apparent through the following description of the embodiments of the present invention with reference to the accompanying drawings, in which:
[0016] Figure 1 A flowchart schematically shows an information processing method for software development ecology according to an embodiment of the present invention;
[0017] Figure 2 A block diagram schematically shows an information processing system for a software development ecosystem according to an embodiment of the present invention;
[0018] Figure 3 A block diagram of an electronic device suitable for implementing an information processing method for software development ecology according to an embodiment of the present invention is schematically shown. DETAILED DESCRIPTION
[0019] Below, embodiments of the present invention will be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of the present invention. In the following detailed description, for ease of explanation, many specific details are set forth to provide a comprehensive understanding of embodiments of the present invention. However, it is apparent that one or more embodiments may also be implemented without these specific details. In addition, in the following description, descriptions of known structures and technologies are omitted to avoid unnecessary confusion of concepts of the present invention.
[0020] The terms used herein are only for describing specific embodiments and are not intended to limit the present invention. The terms "comprise", "include", etc. used herein indicate the existence of features, steps, operations and / or components, but do not exclude the existence or addition of one or more other features, steps, operations or components.
[0021] All terms (including technical and scientific terms) used herein have the meanings commonly understood by those skilled in the art unless otherwise defined. It should be noted that the terms used herein should be interpreted as having a meaning consistent with the context of this specification and should not be interpreted in an idealized or overly rigid manner.
[0022] When using expressions such as "at least one of A, B, and C, etc.", they should generally be interpreted according to the meaning of the expression commonly understood by those skilled in the art (for example, "a system having at least one of A, B, and C" should include but is not limited to a system having A alone, B alone, C alone, A and B, A and C, B and C, and / or A, B, C, etc.).
[0023] It should be noted that in the embodiments of the present invention, certain software, components, models and other existing solutions in the industry may be mentioned, which should be regarded as exemplary. Their purpose is only to illustrate the feasibility of implementing the technical solution of the present invention, but it does not mean that the applicant has or will necessarily use the solution.
[0024] Traditional information system evaluation methods often rely on static indicators and single-dimensional analysis, which cannot fully and accurately reflect the impact of dynamic changes in the external environment and internal components on the system. With the rise of the software ecology concept, introducing ecological ideas into the evaluation of information systems has become a new direction for solving current problems.
[0025] In view of this, the present invention provides an information processing method for software development ecology. Figure 1 The information processing method is described.
[0026] like Figure 1 As shown, the information processing method of the software development ecosystem may include operations S110 to S130.
[0027] In operation S110, attribute information of a plurality of dependencies in the software development ecosystem is obtained to form an attribute information set, wherein the dependencies include external components and / or libraries required for the operation of the software development ecosystem.
[0028] The software development ecosystem is an environment system composed of various elements, tools, environments, communities, etc. involved in the software development process that interact and influence each other. The software development ecosystem contains multiple dependencies, which can be external components and / or libraries required for the operation of the software development ecosystem, including but not limited to the operating environment, programming language, development tools, development dependency libraries, testing tools, etc. The attribute information of the dependencies can be obtained through surveys of software developers and statistical results of public data of released software. The attribute information may include but is not limited to programming language information, version information, update information, scope information, function description information, and security vulnerability repair information.
[0029] The operating environment refers to the program or component that supports the running of the software, such as JRE, CPython, and node js. Programming languages refer to all programming languages used to develop the survey object, such as Java and C language; development tools refer to tools used to write code, such as vs code, visual studio, and vim; development dependency libraries refer to components used when developing projects, such as Springboot and Django; testing tools refer to tools used for testing, such as junit and jmeter.
[0030] The programming language information, version information, update information, scope information, function description information, and security vulnerability repair information of the dependency are attribute information of the dependency in different dimensions, which can be extracted from the collected information of the software development ecosystem to form an attribute information set. The attribute information set can be a file or a database stored in a folder, and the present invention does not make specific limitations.
[0031] In operation S120, based on the attribute information set and the pre-stored reference information set, the market share information, activity information, aging information and security information of each dependency are determined, and the reference information set is obtained by pre-collecting the attribute information of the software development ecosystem that has been running in the market.
[0032] The running software development ecosystem can be the current mainstream software development ecosystem in the industry. These software development ecosystems can better represent the current software development status of the industry, and the reference information set formed by them also has good reference and comparison value. It is understandable that the information in the reference information set should cover as much of the mainstream software development ecosystem as possible. The reference information set can be formed by collecting programming language information, version information, update information, scope information, function description information, security vulnerability repair information and other information in different software development ecosystems in advance. The reference information set can be stored in a database. The information in the reference information set can be updated and supplemented regularly.
[0033] In operation S130, a vitality value of the software development ecosystem is determined based on the market share information, activity information, aging information, and security information of the dependencies. The vitality value is used to characterize the health status, vitality level, and development potential of the software development ecosystem.
[0034] By extracting the market share information, activity information, aging information and security information of each dependency from the acquired attribute information, the vitality value of the entire software development ecosystem is obtained, and a comprehensive quantitative evaluation of the vitality status of the software development ecosystem can be performed from different dimensions. Compared with a single evaluation indicator or a qualitative evaluation method, the embodiment of the present invention processes the information of the software development ecosystem to obtain a quantifiable evaluation value, which is more comprehensive and accurate.
[0035] On the basis of the above-mentioned embodiments, based on the attribute information set and the pre-stored reference information set, determining the market share information, activity information, aging information and safety information of each dependency may include: screening the attribute information set to determine the characteristic information related to the market share information, activity information, aging information and safety information in the attribute information set; comparing the characteristic information with the reference information set, and determining the market share information, activity information, aging information and safety information based on the difference information obtained by the comparison.
[0036] The market share information is set as the usage ratio of the programming language currently used by the dependency in the market. This requires first obtaining the type information and share information of the programming language used by the dependency to obtain the market share information. For example, a dependency uses Python as the programming language, and its market share information is 20%. The larger the value of the market share information, the higher the market share of the dependency.
[0037] Activity information is set as the average release frequency of the dependency. As an example, you can first obtain the release time of different versions, then calculate the time intervals between different versions, and then take the average of these time intervals to get the average release frequency of the version. The higher the value of activity information, the more active the dependency is.
[0038] The aging information is set to the inverse of the remaining maintenance time of the dependency. In other words, the aging information can be expressed as 1 divided by the difference between the current time and the date when its maintainer stops providing services to it. If the time of stopping updates is not announced, it means that the dependency has not entered the aging cycle, and the aging information is 0; if updates have stopped, it means that the dependency has entered the death period, and the aging information is 1. The value of the aging information can be between 0 and 1. The larger the value of the aging information, the more serious the aging of the dependency.
[0039] The security information is set as the product of the number of security vulnerabilities in the dependency and the historical average vulnerability repair time. The larger the value of the security information, the more security vulnerabilities the dependency has and the longer it takes to repair the vulnerabilities.
[0040] It can be seen that among the market share information, activity information, aging information and safety information, the higher the value of the market share information and activity information, the higher the vitality value, while the higher the value of the aging information and safety information, the lower the vitality value. Therefore, for the vitality value, the market share information and activity information have a positive impact, while the aging information and safety information have a negative impact. When setting weights, you can set positive weights for the market share information and activity information, and set negative weights for the aging information and safety information.
[0041] Based on the above embodiments, determining the vitality value of the software development ecosystem based on the market share information, activity information, aging information and security information of the dependencies includes: normalizing the market share information, activity information, aging information and security information to obtain a normalized result; and determining the vitality value of the software development ecosystem based on the normalized result.
[0042] In the above analysis, we can see that the dimensions and ranges of the values of market share information, activity information, aging information, and safety information are different. In order to compare and weight them, this information needs to be normalized. The purpose of normalization is to convert the values of each indicator into a value between 0 and 1 for subsequent calculations.
[0043] Based on the above embodiments, the market share information, activity information, aging information and safety information are normalized to obtain a normalized result including: determining the maximum values corresponding to the market share information, activity information, aging information and safety information in the reference information set; calculating the ratios of the market share information, activity information, aging information and safety information to their respective corresponding maximum values to obtain a normalized result.
[0044] To normalize the market share information, the market share value of the dependency to be calculated can be divided by the maximum market share value to obtain the normalized market share.
[0045] To normalize the activity information, you can set an activity upper limit based on historical data or industry standards, and divide the actual activity by the upper limit to get the normalized value.
[0046] To normalize the aging information, the aging information may be divided by 1 to obtain a normalized value.
[0047] To normalize the security information, you can set an upper limit for the security information based on historical data or industry standards, and divide the actual security information value by the upper limit to get a normalized value.
[0048] After normalization, we can get the normalized values of the four dimensions, and then we can calculate the vitality value of the software development ecosystem based on these values.
[0049] Based on the above embodiment, determining the vitality value of the software development ecosystem according to the normalized results includes: performing weighted summation on the normalized results to determine the vitality value, wherein positive weights are assigned to market share information, activity information, and security information, and negative weights are assigned to aging information.
[0050] You can assign a weight to each dimension and then calculate the weighted average. You can use the following formula to calculate the vitality value:
[0051]
[0052]
[0053] Where L represents the vitality value of the software development ecosystem, d represents the weighted value of each dependency, m represents the respective values of market share information, activity information, aging information and security information, and w represents the respective weights of market share information, activity information, aging information and security information. The distribution of weights can be determined according to business needs and expert opinions. For example, if the market share has the greatest impact on vitality, a higher weight can be given. If the w value is positive, it means that the indicator is a positive indicator, otherwise it is a negative indicator. The value range of w can be any real number between ±1. The value of m can be obtained by multiplying a fixed value by the normalized result calculated above. The fixed value can be 10, for example, so that the respective values of market share information, activity information, aging information and security information fall within the range of 0 to 10. In this way, the vitality value of the software development ecosystem can be obtained in a quantitative way.
[0054] It should be emphasized that although this article provides embodiments of market share information, activity information, aging information and security information, in some possible embodiments, when calculating the vitality value of the software development ecosystem, indicator information of other dimensions can also be included. For example, the score and weight of subjective factors can be added to the vitality value calculation as needed to meet the application requirements of different scenarios. It is understandable that regardless of increasing or decreasing the type and amount of weight information, the concept of the above embodiment should be included in the protection scope of the present invention.
[0055] In some embodiments, the information processing method of the software development ecology may also include: replacing at least one dependency in the software development ecology according to the size relationship between the vitality value and the target vitality value, and recalculating the vitality value of the software development ecology after replacing the dependency.
[0056] As an example, after replacing one or more dependencies of the software development ecosystem, its overall vitality score can be recalculated as L1 according to the above formula. The original vitality value is L. If L1>L, it means that replacing these dependencies can increase the system vitality of the software development ecosystem and is more conducive to its healthy development. In this way, the impact of different dependencies on the software development ecosystem can be intuitively reflected, and dependencies with the largest vitality value can be accurately combined.
[0057] Based on the above-mentioned information processing method for software development ecology, the present invention also provides an information processing system for software development ecology, which has the same technical features and effective effects as the above-mentioned information processing method for software development ecology. Figure 2 The device is described in detail.
[0058] Figure 2 The structure block diagram of the information processing system of the software development ecosystem according to an embodiment of the present invention is schematically shown.
[0059] like Figure 2 As shown, the information processing system 200 of the software development ecosystem of this embodiment may include a collection module 210 , a determination module 220 and a calculation module 230 .
[0060] The acquisition module 210 is used to obtain programming language information, version information, update information, scope information, function description information, and security vulnerability repair information of multiple dependencies in the software development ecosystem to form an attribute information set. The dependencies include external components and / or libraries required for the operation of the software development ecosystem. In one embodiment, the acquisition module 210 can be used to perform the operation S110 described above, which will not be repeated here.
[0061] The determination module 220 is used to determine the market share information, activity information, aging information and security information of each dependency based on the attribute information set and the pre-stored reference information set, and the reference information set is obtained by pre-collecting the attribute information of the software development ecosystem that has been running in the market. In one embodiment, the determination module 220 can be used to perform the operation S120 described above, which will not be repeated here.
[0062] The calculation module 230 is used to normalize the market share information, activity information, aging information and security information, and determine the vitality value of the software development ecosystem based on the normalization result. The vitality value is used to characterize the health status, vitality level and development potential of the software development ecosystem. In one embodiment, the calculation module 230 can be used to perform the operation S130 described above, which will not be repeated here.
[0063] In some embodiments, the information processing system 200 of the software development ecosystem may further include an update module (not shown) for replacing at least one dependency in the software development ecosystem based on the relationship between the vitality value and the target vitality value, and recalculating the vitality value of the software development ecosystem after replacing the dependency.
[0064] According to an embodiment of the present invention, any multiple modules among the acquisition module 210, the determination module 220, the calculation module 230, and the update module can be combined into one module for implementation, or any one of the modules can be split into multiple modules. Alternatively, at least part of the functions of one or more of these modules can be combined with at least part of the functions of other modules and implemented in one module. According to an embodiment of the present invention, at least one of the acquisition module 210, the determination module 220, the calculation module 230, and the update module can be at least partially implemented as a hardware circuit, such as a field programmable gate array (FPGA), a programmable logic array (PLA), a system on a chip, a system on a substrate, a system on a package, an application specific integrated circuit (ASIC), or can be implemented by hardware or firmware such as any other reasonable way of integrating or packaging the circuit, or implemented in any one of the three implementation methods of software, hardware, and firmware, or in any appropriate combination of any of them. Alternatively, at least one of the acquisition module 210, the determination module 220, the calculation module 230, and the update module can be at least partially implemented as a computer program module, and when the computer program module is run, the corresponding function can be executed.
[0065] Figure 3 A block diagram of an electronic device suitable for implementing an information processing method for software development ecology according to an embodiment of the present invention is schematically shown.
[0066] like Figure 3 As shown, the electronic device 300 according to an embodiment of the present invention includes a processor 301, which can perform various appropriate actions and processes according to the program stored in the read-only memory (ROM) 302 or the program loaded from the storage part 308 to the random access memory (RAM) 303. The processor 301 may include, for example, a general-purpose microprocessor (such as a CPU), an instruction set processor and / or a related chipset and / or a special-purpose microprocessor (for example, an application-specific integrated circuit (ASIC)), etc. The processor 301 may also include an onboard memory for caching purposes. The processor 301 may include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of the present invention.
[0067] In RAM 303, various programs and data required for the operation of electronic device 300 are stored. Processor 301, ROM 302 and RAM 303 are connected to each other via bus 304. Processor 301 performs various operations of the method flow according to the embodiment of the present invention by executing the program in ROM 302 and / or RAM 303. It should be noted that the program can also be stored in one or more memories other than ROM 302 and RAM 303. Processor 301 can also perform various operations of the method flow according to the embodiment of the present invention by executing the program stored in one or more memories.
[0068] According to an embodiment of the present invention, the electronic device 300 may further include an input / output (I / O) interface 305, which is also connected to the bus 304. The electronic device 300 may further include one or more of the following components connected to the input / output (I / O) interface 305: an input portion 306 including a keyboard, a mouse, etc.; an output portion 307 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc.; a storage portion 308 including a hard disk, etc.; and a communication portion 309 including a network interface card such as a LAN card, a modem, etc. The communication portion 309 performs communication processing via a network such as the Internet. A drive 310 is also connected to the input / output (I / O) interface 305 as needed. A removable medium 311, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 310 as needed, so that a computer program read therefrom is installed into the storage portion 308 as needed.
[0069] The present invention also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiment; or may exist independently without being assembled into the device / apparatus / system. The above computer-readable storage medium carries one or more programs, and when the above one or more programs are executed, the method according to the embodiment of the present invention is implemented.
[0070] According to an embodiment of the present invention, the computer-readable storage medium may be a non-volatile computer-readable storage medium, for example, it may include but is not limited to: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In the present invention, the computer-readable storage medium may be any tangible medium containing or storing a program, which may be used by or in combination with an instruction execution system, an apparatus or a device. For example, according to an embodiment of the present invention, the computer-readable storage medium may include the ROM 302 and / or RAM 303 described above and / or one or more memories other than ROM 302 and RAM 303.
[0071] The embodiment of the present invention also includes a computer program product, which includes a computer program, and the computer program contains program code for executing the method shown in the flowchart. When the computer program product is run in a computer system, the program code is used to enable the computer system to implement the method provided by the embodiment of the present invention.
[0072] The computer program executes the above functions defined in the system / device of the embodiment of the present invention when it is executed by the processor 301. According to the embodiment of the present invention, the system, device, module, unit, etc. described above can be implemented by a computer program module.
[0073] In one embodiment, the computer program may rely on tangible storage media such as optical storage devices, magnetic storage devices, etc. In another embodiment, the computer program may also be transmitted and distributed in the form of signals on a network medium, and downloaded and installed through the communication part 309, and / or installed from the removable medium 311. The program code contained in the computer program may be transmitted using any appropriate network medium, including but not limited to: wireless, wired, etc., or any suitable combination of the above.
[0074] In such an embodiment, the computer program can be downloaded and installed from the network through the communication part 309, and / or installed from the removable medium 311. When the computer program is executed by the processor 301, the above functions defined in the system of the embodiment of the present invention are performed. According to the embodiment of the present invention, the system, device, means, module, unit, etc. described above can be implemented by a computer program module.
[0075] According to an embodiment of the present invention, the program code for executing the computer program provided by the embodiment of the present invention can be written in any combination of one or more programming languages. Specifically, these computing programs can be implemented using high-level process and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages include, but are not limited to, Java, C++, python, "C" language or similar programming languages. The program code can be executed entirely on the user computing device, partially on the user device, partially on the remote computing device, or entirely on the remote computing device or server. In the case of a remote computing device, the remote computing device can be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (e.g., using an Internet service provider to connect through the Internet).
[0076] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present invention. In this regard, each box in the flow chart or block diagram can represent a module, a program segment, or a part of a code, and the above-mentioned module, program segment, or a part of a code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flow chart, and the combination of the boxes in the block diagram or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0077] It will be appreciated by those skilled in the art that the features described in the various embodiments of the present invention may be combined and / or combined in various ways, even if such combinations or combinations are not explicitly described in the present invention. In particular, without departing from the spirit and teachings of the present invention, the features described in the various embodiments of the present invention may be combined and / or combined in various ways. All of these combinations and / or combinations fall within the scope of the present invention.
[0078] The embodiments of the present invention are described above. However, these embodiments are only for the purpose of illustration, and are not intended to limit the scope of the present invention. Although each embodiment is described above, it does not mean that the measures in each embodiment cannot be used in combination advantageously. Without departing from the scope of the present invention, those skilled in the art may make various substitutions and modifications, which should all fall within the scope of the present invention.
Claims
1. A method for processing information in a software development ecosystem, characterized in that: include: Obtain at least one of programming language information, version information, update information, scope information, function description information, and security vulnerability repair information of multiple dependencies in the software development ecosystem to form an attribute information set, wherein the dependencies include external components and / or libraries required for the operation of the software development ecosystem; Determine the market share information, activity information, aging information and security information of each of the dependencies based on the attribute information set and the pre-stored reference information set, wherein the reference information set is obtained by pre-collecting attribute information of the software development ecosystem that has been running in the market; The vitality value of the software development ecosystem is determined based on the market share information, activity information, aging information and security information of the dependencies, and the vitality value is used to characterize the health status, vitality level and development potential of the software development ecosystem.
2. The information processing method according to claim 1, characterized in that: The determining of the market share information, activity information, aging information and safety information of each of the dependencies based on the attribute information set and the pre-stored reference information set includes: Screening the attribute information set to determine characteristic information in the attribute information set that is related to the market share information, activity information, aging information, and safety information; Compare the characteristic information with the reference information set, and determine the market share information, activity information, aging information and safety information according to the difference information obtained by the comparison, Among them, the market share information is set to the usage ratio of the programming language currently used by the dependency in the market, the activity information is set to the average release frequency of the version of the dependency, the aging information is set to the reciprocal of the remaining maintenance time of the dependency, and the security information is set to the product of the number of security vulnerabilities of the dependency and the historical average vulnerability repair time.
3. The information processing method according to claim 1, characterized in that: Determining the vitality value of the software development ecosystem based on the market share information, activity information, aging information, and security information of the dependencies includes: Normalizing the market share information, activity information, aging information, and safety information to obtain a normalized result; The vitality value of the software development ecosystem is determined according to the normalization result.
4. The information processing method according to claim 3, characterized in that: The normalization process of the market share information, activity information, aging information and safety information to obtain the normalization result includes: In the reference information set, determining the maximum values corresponding to the market share information, activity information, aging information, and safety information respectively; The ratios of the market share information, activity information, aging information and safety information to their respective corresponding maximum values are calculated to obtain the normalized result.
5. The information processing method according to claim 3, characterized in that: Determining the vitality value of the software development ecosystem according to the normalization result includes: The normalized results are weighted and summed to determine the vitality value, wherein positive weights are assigned to the market share information and activity information, and negative weights are assigned to the aging information and safety information.
6. The information processing method according to claim 1, characterized in that: Also includes: According to the relationship between the vitality value and the target vitality value, at least one dependency in the software development ecosystem is replaced, and the vitality value of the software development ecosystem after the dependency is replaced is calculated again.
7. The information processing method according to claim 1, characterized in that: The dependencies include at least one of an operating environment, a programming language, a development tool, a development dependency library, and a testing tool.
8. An information processing system for software development ecology, characterized in that: include: A collection module is used to obtain programming language information, version information, update information, scope information, function description information, and security vulnerability repair information of multiple dependencies in the software development ecosystem to form an attribute information set, wherein the dependencies include external components and / or libraries required for the operation of the software development ecosystem; A determination module, configured to determine market share information, activity information, aging information, and security information of each of the dependencies based on the attribute information set and a pre-stored reference information set, wherein the reference information set is obtained by pre-collecting attribute information of software development ecosystems already running in the market; A calculation module is used to normalize the market share information, activity information, aging information and security information, and determine the vitality value of the software development ecosystem based on the normalization result, wherein the vitality value is used to characterize the health status, vitality level and development potential of the software development ecosystem.
9. An electronic device, comprising: one or more processors; a storage device for storing one or more programs, When the one or more programs are executed by the one or more processors, the one or more processors execute the method according to any one of claims 1 to 7.
10. A computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, causes the processor to execute the method according to any one of claims 1 to 7.