A method, device and electronic device for evaluating the development delay of a software system

By mining the timing relationship and non-temporal characteristics in software system development projects and using neural network models for evaluation, the problems of limitations in data collection, insufficient prediction timeliness and low accuracy in the existing technology are solved, and accurate and timely early warning of the risk of delayed software system development projects are achieved.

CN119647984BActive Publication Date: 2025-05-30SHOUSHI SECURITY TECHNOLOGY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510181094.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-02-19
Publication Date
2025-05-30
Estimated Expiration
2045-02-19

AI Technical Summary

Technical Problem

The prior art has problems such as data collection limitations, insufficient prediction timeliness and low accuracy in the assessment of delay risk of software system development projects.

Method used

By mining the timing relationships of various problem events and integrating the non-temporal characteristics of software projects, a comprehensive evaluation is used using the target delay risk assessment neural network model to obtain the delay evaluation results of the software system development project.

Benefits of technology

It realizes early or real-time early warning of delay risks during software system development, and improves the accuracy of delay evaluation results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119647984B_ABST
    Figure CN119647984B_ABST
Patent Text Reader

Abstract

An embodiment of the present application provides a method, device and electronic device for evaluating the development delay of a software system. The method includes: obtaining a plurality of event vectors, where each event vector in the plurality of event vectors is respectively used to characterize the attributes of timing events obtained from the software system to be evaluated at different times; inputting the plurality of event vectors and the non-timing feature vector corresponding to the software system to be evaluated into a target delay risk assessment neural network model to obtain a delay development risk assessment result for the software system to be evaluated. The target delay risk assessment neural network model includes a timing feature extraction layer, a self-attention layer, and a projection conversion layer, and the non-timing feature vector is used to characterize the inherent attribute information corresponding to the software system to be evaluated. The embodiments of the present application can predict risks during the development process of the software system and effectively improve the accuracy of the delay evaluation result.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of software development risk assessment. Specifically, embodiments of the present application relate to a method, device, and electronic device for assessing software system development delay. Background Art

[0002] As system integration functions become more complex, automated operation and maintenance projects face potential risk management issues. How to predict the risks of software systems is key. During the implementation of information technology projects, delivery delays are often faced due to lack of user feedback, incomplete demand analysis, frequent demand changes, irregular project management, and insufficient technical capabilities of the team. These factors not only lead to budget overruns and delivery delays, but may also cause project functions to fail to meet expectations, and even lead to project acceptance failure or cancellation. Therefore, providing timely and accurate warnings for delays in the construction period of information technology projects is crucial to increasing project success rates and reducing delays, and is a key issue that needs to be addressed urgently.

[0003] In the field of information technology project delay warning research, related technologies provide a variety of prediction methods based on statistical learning and artificial intelligence. With the improvement of computer hardware and the popularization of big data technology, the research on project risk prediction tends to adopt more sophisticated and complex models. For example, the Bayesian network based on causal constraints can automatically learn the causal relationship in project data, showing better prediction performance than other algorithms; the use of ensemble learning methods effectively avoids overfitting and improves prediction accuracy.

[0004] The inventors of this application found in their research that the above technical solution still has at least the following technical problems. First, there are limitations in data collection. It mainly relies on questionnaires, which may introduce subjective bias and sample collection may also be biased. Secondly, there is the timeliness of prediction. Existing models mostly predict risks after the project is completed, which limits the model's ability to provide early or real-time warnings and affects the practical value of the model. Finally, the existing technology has low accuracy in evaluating the risk of delay in software system development projects. Summary of the invention

[0005] The purpose of the embodiments of the present application is to provide a method, device and electronic device for evaluating the development delay of a software system. The embodiments of the present application obtain the delay evaluation result of the development project of the software system by mining the temporal relationship of various problem events (represented by event vectors that change with time) and integrating various status indexes of the software project (represented by non-temporal feature vectors that do not change with time). This can predict risks in the development process of the software system and effectively improve the accuracy of the delay evaluation results.

[0006] In a first aspect, an embodiment of the present application provides a method for evaluating the development delay of a software system. The method includes: obtaining a plurality of event vectors, where each event vector in the plurality of event vectors is respectively used to characterize the attributes of timing events obtained from the software system to be evaluated at different times; inputting the plurality of event vectors and the non-timing feature vector corresponding to the software system to be evaluated into a target delay risk assessment neural network model to obtain a delay development risk assessment result for the software system to be evaluated. The target delay risk assessment neural network model includes a timing feature extraction layer, a self-attention layer, and a projection conversion layer, and the non-timing feature vector is used to characterize the inherent attribute information corresponding to the software system to be evaluated.

[0007] The embodiment of the present application obtains an evaluation result on whether there is a delay risk in the software system development by considering the features corresponding to different development events and non-timing features. On the one hand, it can evaluate the delay risk at any stage during the software system development process. On the other hand, it can improve the accuracy of the delay evaluation result for the software system development project.

[0008] In some embodiments of the present application, the obtaining of the plurality of event vectors includes: obtaining multiple types of information to be quantified respectively corresponding to each timing event, where the multiple types of information to be quantified include: event type, initiating department, software component, filler, development stage, timestamp, and event text. The timestamp is used to characterize the time information when the corresponding event is released, the event type is used to characterize the category to which the corresponding event belongs, and the development stage is used to characterize the stage of the project when the event is recorded; if it is confirmed that the timestamp belongs to numerical data, then write the timestamp into the time dimension of the event vector of the corresponding timing event; if it is confirmed that the event type, the initiating department, the software component, the filler, and the development stage all belong to type data, then perform data conversion on each type of data to obtain multiple variables and write the multiple variables into the type dimension of the event vector of the corresponding timing event respectively; if it is confirmed that the event text is text type data, then integrate different text information in the text type data and map it to a standardized multi-dimensional vector space to obtain a text vector, and write the text vector into the event text dimension of the event vector of the corresponding timing event.

[0009] The embodiment of the present application obtains a timing feature vector, that is, an event vector, according to the multi-field event attribute information of each determined event. Since the multiple types of information to be quantified obtained in the embodiment of the present application can better reflect the features of timing events, the accuracy of determining the delay risk based on these features can be ultimately improved.

[0010] In some embodiments of the present application, the event types include five types of event data: personnel messages, progress reports, functional feedbacks, functional and requirement changes, and technical communications. Among them, the process of separately converting various types of data into multiple variables includes: constructing an initial vector composed entirely of first numerical values in a set order for the five types of event data, where one position in the five-dimensional initial vector corresponds to one type of event data; when it is confirmed that the corresponding time-series event includes one or more types of event data, modifying the numerical value of the corresponding position in the initial vector to a second numerical value to obtain an event type variable. The process of writing the multiple variables into the type class dimension of the event vector corresponding to the time-series event includes: writing the event type variable into the corresponding dimension of the event vector.

[0011] Embodiments of the present application define the specific types included in the event type and provide a process for quantifying the event type based on these type data, improving the accuracy of the sub-vector results corresponding to the event type, and further improving the accuracy of evaluating the delay risk based on this value.

[0012] In some embodiments of the present application, the software components include five types of software component data: architecture components, functional interface components, algorithm and database components, front-end components, and other components. Among them, the process of separately converting various types of data into multiple variables includes: constructing a five-dimensional initial vector composed entirely of first numerical values in a set order for the five types of software component data, where one position in the five-dimensional initial vector corresponds to one type of software component data; when it is confirmed that the corresponding event includes one or more types of software component data, modifying the numerical value of the corresponding position in the five-dimensional initial vector to a second numerical value to obtain a software component variable. The process of writing the multiple variables into the type class dimension of the event vector corresponding to the time-series event includes: writing the software component variable into the corresponding dimension of the event vector.

[0013] Embodiments of the present application define the specific types included in the software components and provide a process for quantifying the event type based on these type data, improving the accuracy of the sub-vector results corresponding to the software components, and further improving the accuracy of evaluating the delay risk based on this value.

[0014] In some embodiments, the development stage includes four stages: a design stage, a development stage, a test delivery stage, and a maintenance stage. Among them, the process of separately converting various types of data into multiple variables includes: constructing a four-dimensional initial vector composed entirely of first numerical values in a set order for the four stages, where one position in the four-dimensional initial vector corresponds to one stage; when it is confirmed that the corresponding event includes one or more stages, modifying the numerical value of the corresponding position in the four-dimensional initial vector to a second numerical value to obtain a development stage variable. The process of writing the multiple variables into the type class dimension of the event vector corresponding to the timing event includes: writing the development stage variable into the corresponding dimension of the event vector.

[0015] Embodiments of the present application define the specific types included in the development stage and provide a process for quantifying event types based on these type data, improving the accuracy of the sub-vector results corresponding to the development stage, and further improving the accuracy of evaluating the delay risk based on this value.

[0016] In some embodiments, the process of obtaining multiple types of information to be quantified corresponding to each timing event includes: collecting the source data of the development events of the software system to be evaluated to obtain event source data; identifying sensitive information in the event source data according to the field name, where the field name includes at least one of the project name, the name of the project personnel, and the company name; performing desensitization processing on the sensitive information in the event source data to obtain project record metadata; if it is verified that there is no sensitive information in the project record metadata, obtaining the multiple types of information to be quantified according to the project record metadata.

[0017] Some embodiments of the present application perform desensitization processing on the obtained development event source data, which can better protect privacy information.

[0018] In some embodiments, the initiating department refers to the department that fills in the corresponding event, and the initiating department is represented by a unique department identification ID.

[0019] Embodiments of the present application use department identification to represent the initiating part, which can improve the security of privacy information corresponding to such information data.

[0020] In some embodiments, the non-timing feature vector is used to represent the following attributes that do not change with time: the size of the development team, the scale of the development budget, the planned duration of the development plan, the development workload, the number of development collaboration parties, and the complexity of the development technology. The non-timing feature vector is obtained by quantifying the information corresponding to the attributes that do not change with time according to the quantification principles of numerical data and type data respectively.

[0021] Some embodiments of the present application provide the types of attribute information that do not change over time and a method for quantifying this information to obtain a non-temporal feature vector. By defining attribute data corresponding to non-temporal features, the accuracy of evaluating the risk of software development project delays based on this vector can be improved in the subsequent process.

[0022] In some embodiments, the temporal feature extraction layer includes multiple Gated Recurrent Unit (GRU) networks, and the input of each GRU (Gated Recurrent Unit) is an event vector, and the output is a target hidden state vector, where the target hidden state vector is used to represent a series of different types of events occurring in chronological order.

[0023] Embodiments of the present application use GRU units of a recurrent neural network to capture and encode event information to form a temporal feature vector, which can fully explore the temporal relationship between different events.

[0024] In some embodiments, the GRU unit determines the target hidden state vector through the following algorithm:

[0025]

[0026] Among them, the is the update gate, and the is used to represent the current hidden state vector, the is used to represent the target hidden state vector, and the update gate is used to represent the degree to which the current hidden state vector is retained in the target hidden state vector , where ⊙ represents element-wise multiplication, the represents the candidate hidden state vector, and the candidate hidden state vector is a quantity corresponding to the event vector and the current hidden state vector.

[0027] Embodiments of the present application can accurately capture long-term patterns and short-term changes in time series data through the algorithm for obtaining the intermediate hidden state, and can also extract long-term patterns and short-term changes of various different temporal feature data, providing a richer and more robust feature representation for subsequent prediction and classification tasks.

[0028] In some embodiments, the candidate hidden state vector is determined through the following formula:

[0029]

[0030] Among them, tanh represents the hyperbolic tangent activation function, the is the weight matrix for representing the input of the update gate to the hidden state, the is the reset gate, and the For controlling the degree of memory of historical information.

[0031] The embodiments of the present application can accurately capture long-term patterns and short-term changes in time series data through the algorithm for determining candidate hidden state vectors, and can also extract long-term patterns and short-term changes of various different time series feature data, providing richer and more robust feature representations for subsequent prediction and classification tasks.

[0032] In a second aspect, some embodiments of the present application provide an apparatus for evaluating the development delay of a software system. The apparatus includes: an event vector acquisition module configured to acquire a plurality of event vectors, where each event vector in the plurality of event vectors is respectively used to characterize the attribute information of time series events obtained from the software system to be evaluated at different times; a delay development risk assessment module configured to input the plurality of event vectors and a non-time series feature vector corresponding to the software system to be evaluated into a target delay risk assessment neural network model to obtain an evaluation result of the delay development risk of the software system to be evaluated, where the target delay risk assessment neural network model includes a time series feature extraction layer, a self-attention layer, and a projection conversion layer, and the non-time series feature vector is used to characterize the inherent attribute information corresponding to the software system to be evaluated.

[0033] In a third aspect, some embodiments of the present application provide a computer-readable storage medium, on which a computer program is stored, and when the program is executed by a processor, the method described in any embodiment of the first aspect above can be implemented.

[0034] In a fourth aspect, some embodiments of the present application provide an electronic device, including a memory, a processor, and a computer program stored on the memory and executable on the processor, where when the processor executes the program, the method described in any embodiment of the first aspect above can be implemented.

[0035] In a fifth aspect, some embodiments of the present application provide a computer program product, where the computer program product includes a computer program, and when the computer program is executed by a processor, the method described in any embodiment of the first aspect is implemented. BRIEF DESCRIPTION OF THE DRAWINGS

[0036] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following will briefly introduce the drawings required to be used in the embodiments of the present application. It should be understood that the following drawings only show some embodiments of the present application, and therefore should not be regarded as limiting the scope. For those of ordinary skill in the art, other related drawings can be obtained based on these drawings without creative efforts.

[0037] Figure 1 The system for evaluating the development delay of a software system provided by the embodiments of the present application;

[0038] Figure 2 One of the flowcharts of the method for evaluating the development delay of a software system provided by an embodiment of the present application;

[0039] Figure 3 Another flowchart of the method for evaluating the development delay of a software system provided by an embodiment of the present application;

[0040] Figure 4 The block diagram of the composition of the device for evaluating the development delay of a software system provided by an embodiment of the present application;

[0041] Figure 5 The schematic diagram of the composition of an electronic device provided by an embodiment of the present application. Detailed implementation manners

[0042] Next, the technical solutions in the embodiments of the present application will be described with reference to the accompanying drawings in the embodiments of the present application.

[0043] It should be noted that: Similar reference numerals and letters denote similar items in the following drawings. Therefore, once an item is defined in one drawing, it does not need to be further defined and explained in subsequent drawings. At the same time, in the description of the present application, the terms "first", "second", etc. are only used for differential description and cannot be understood as indicating or implying relative importance.

[0044] To solve at least the technical problems existing in the background art, embodiments of the present application propose a method for evaluating the development delay of a software system. This method uses a recurrent neural network to capture the temporal relationships between temporal events in a software system development project and integrates the non-temporal features of the software project, and finally realizes an effective evaluation of the project duration delay of the software system development project. Compared with the software system risk prediction research methods provided by the related art, the embodiments of the present application have obvious advantages in performance and effectiveness. This is because the inventors of the present application found that risk factors have important temporal characteristics and interactive effects in the project. Therefore, the embodiments of the present application consider the dynamics and temporality of risk factors when determining the delay risk of the software system, while the models of the related art fail to consider the time series and interactions between risk factors and related events.

[0045] Please refer to Figure 1 , Figure 1 A system for evaluating the development delay of a software system provided by some embodiments of the present application. This system can execute the method for evaluating the development delay of a software system in the embodiments of the present application.

[0046] Figure 1The system for evaluating software system development delay exemplarily includes: a first terminal 110, a second terminal 120, and a server 100 for running the method for evaluating software system development delay provided in an embodiment of the present application.

[0047] The software system to be evaluated is respectively set on the first terminal 110 or the second terminal 120, and an automated operation and maintenance system is also set on these two types of terminals. By collecting data from the automated operation and maintenance system, event source data of multiple time series events can be obtained (for example, event source data can be obtained by obtaining log data of the software system). For example, each automated operation and maintenance system will have monitored time series data, application logs, security logs, etc. The system can collect this part of the time series event data, and this data can be used to diagnose system risks.

[0048] The server 100 can predict whether the software system to be evaluated on the corresponding terminal has a risk of development delay by executing the method for evaluating software system development delay according to the embodiment of the present application.

[0049] It should be noted that Figure 1 This is only one scenario in which the method for evaluating software system development delay provided by the present application can be applied. Those skilled in the art can design different application scenario architecture diagrams according to actual needs. For example, in some embodiments, Figure 1 All functions of the terminal and the server are set on one physical device. The embodiment of the present application does not limit the scenario in which the method for evaluating software system development delay can be applied nor the composition architecture of the system in the corresponding scenario.

[0050] Combine the following Figure 2 The method for evaluating software system development delay provided by some embodiments of the present application is exemplified. As an example, the method can be applied to Figure 1 on the system shown.

[0051] like Figure 2 As shown, an embodiment of the present application provides a method for evaluating software system development delay, the method comprising:

[0052] S101, obtaining multiple event vectors.

[0053] It should be noted that each of the multiple event vectors is used to represent the attribute information of the time series events obtained from the software system to be evaluated at different times, and the attribute information of these time series events is related to time. For example, these time series events exemplarily include, and the corresponding attribute information exemplarily includes: event type, initiating department, software component, filler, development stage, timestamp, event text description, etc.

[0054] In the embodiments of the present application, a time series event refers to a series of events that occur in chronological order, and there is a causal relationship or a temporal dependency between these events. In a software system project, these events can be various problems, errors, task completion, etc. that occur during the development process. For example, 1. Event A: Change in project requirements (time point T1); 2. Event B: Developer resignation (time point T2); 3. Event C: Major vulnerabilities discovered during the testing phase (time point T3); 4. Event D: Project progress delay (time point T4), these events are arranged in chronological order, and there may be a causal relationship, such as a change in requirements (event A) may lead to an increase in the workload of developers, which in turn leads to the resignation of developers (event B), which in turn affects the progress of the project and discovers vulnerabilities during the testing phase (event C), which ultimately leads to a delay in the project progress (event D).

[0055] In some embodiments of the present application, the following methods can be used to obtain these time series events: 1. Log recording: During the project development process, the occurrence time of each important event and its related information are recorded in detail, which can be achieved through automated tools or manual recording. 2. Event sequence mining: Use data mining technology to extract the time series information of events from project log data. Specific methods may include time series analysis and causal relationship discovery algorithms. For example, recurrent neural networks (RNNs) can be used to capture and analyze the relationships between these time series events.

[0056] For example, in the embodiment of the present application, multiple event vectors correspond to the following x 0 to x n These n vectors, different x corresponds to different moments, and different x is used to represent the attribute information of development events of the software system at different moments.

[0057] For example, in some embodiments of the present application, the timing events exemplarily include the following: project launch, the official start of the project, including resource allocation and team formation; requirement review, the requirement analysis is completed and reviewed and the final requirement specifications are determined; the design phase is completed, the architectural design and detailed design of the software system are completed; development milestones, the code development reaches a specific milestone, such as the completion of the development of a certain module; the testing phase, the system enters the testing phase, including unit testing, integration testing and system testing; defect repair, defects discovered and repaired during the testing process; acceptance testing, the final acceptance test conducted by the customer or a third party; and project delivery, the software system is delivered to the customer to complete the final delivery of the project.

[0058] S102, inputting the multiple event vectors and the non-time-series feature vector corresponding to the software system to be evaluated into a target delay risk assessment neural network model to obtain a delay development risk assessment result for the software system to be evaluated.

[0059] It should be noted that the target delay risk assessment neural network model includes a time series feature extraction layer, a self-attention layer, and a projection conversion layer. The non-time series feature vector is used to represent the inherent attribute information corresponding to the software system to be evaluated, and this inherent attribute information is information that does not change with the development process of the software system.

[0060] It can be understood that the embodiments of the present application obtain an evaluation result on whether there is a delay risk in the software system development by considering the features corresponding to different development events and non-time series features. On the one hand, the delay risk can be evaluated at any stage during the software system development process. On the other hand, the accuracy of the delay evaluation result for the software system development project can be improved. That is to say, some embodiments of the present application extract features reflecting time series events from the original time series information, and based on this, the accuracy of the delay risk is improved.

[0061] The implementation processes of the following steps are described by way of example. Figure 2 in the present application.

[0062] For example, in some embodiments of the present application, S101 is exemplified as including:

[0063] First step, obtain multiple types of information to be quantified corresponding to each time series event respectively. It can be understood that the multiple types of information to be quantified are also the attributes of the time series events.

[0064] It should be noted that the multiple types of information to be quantified in some embodiments of the present application include: event type, initiating department, software component, filler, development stage, timestamp, and event text. The timestamp is used to represent the time information when the corresponding event is released. The event type is used to represent the category to which the corresponding event belongs. The development stage is used to represent the stage of the project when the event is recorded.

[0065] Second step, divide the multiple types of information to be quantified into: numerical data, type data, and text type data, and respectively quantify each type of data obtained by the division to obtain vector data that can be recognized and read by a computer.

[0066] For example, in some embodiments of the present application, the second step exemplarily includes: confirming that the timestamp belongs to numerical data, then writing the timestamp into the time dimension of the event vector of the corresponding time series event; confirming that the event type, the initiating department, the software component, the filler and the development stage all belong to type data, then performing data conversion on various type data to obtain multiple variables (for example, each variable is composed of the numbers 0 and 1) and writing the multiple variables into the type dimension of the event vector of the corresponding event; confirming that the event text is text type data, then integrating and mapping the different text information in the text type data into a standardized multidimensional vector space to obtain a text vector, and writing the text vector into the event text dimension of the event vector of the corresponding event. It can be understood that some embodiments of the present application obtain a time series feature vector, i.e., an event vector, based on the event attribute information of multiple fields of each determined time series event. Since the multiple types of information to be quantified obtained by the embodiments of the present application can better reflect the characteristics of the time series event, the accuracy of determining the risk of delay based on these characteristics can be ultimately improved.

[0067] It should be noted that in some embodiments of the present application, a one-hot encoding method is used to implement quantization operations on type class data. For example, in some embodiments of the present application, under the one-hot encoding mechanism, the position of the content associated with a specific event in the vector will be set to 1, and all other positions will be set to 0.

[0068] For example, in some embodiments of the present application, the event types include: personnel messages, progress reports, function feedback, function and demand changes, and technical communication, a total of five types of event data, then the above-mentioned process of converting various types of class data to obtain multiple variables (for example, each variable is composed of numbers 0 and 1) exemplarily includes: constructing a five-dimensional initial vector composed of all first values ​​for the five types of event data in a set order, wherein one bit in the five-dimensional initial vector is set corresponding to a type of event data; when it is confirmed that the corresponding time series event includes one or more types of event data, the value of the corresponding bit of the five-dimensional initial vector is modified to a second value to obtain an event type variable; the multiple variables are written into the type class dimension of the event vector of the corresponding time series event, including: writing the event type variable into the corresponding dimension of the event vector. That is to say, the embodiment of the present application defines the specific types included in the event type and provides a process for quantifying the event type based on these types of data, thereby improving the accuracy of the sub-vector results corresponding to the event type, and thus improving the accuracy of assessing the risk of delay based on this value.

[0069] For example, in some embodiments of the present application, the software component includes: an architecture component, a functional interface component, an algorithm and database component, a front-end component and other components, a total of five types of software component data, then the above-mentioned process of converting various types of class data to obtain multiple variables (for example, each variable is composed of numbers 0 and 1) exemplarily includes: constructing an initial vector composed of all first numerical values ​​for the five types of software component data in a set order, wherein one bit in the initial vector is set corresponding to a type of software component data; when it is confirmed that the corresponding event includes one or more software component data, the value of the corresponding bit of the initial vector is modified to a second numerical value to obtain a software component variable; the multiple variables are written into the type class dimension of the event vector of the corresponding timing event, including: writing the software component variable into the corresponding dimension of the event vector. That is to say, the embodiment of the present application defines the specific types of software components and provides a process for quantifying event types based on these type data, thereby improving the accuracy of the sub-vector results corresponding to the software component, and thus improving the accuracy of evaluating the delay risk based on this value.

[0070] For example, in some embodiments of the present application, the development stage includes: a design stage, a development stage, a test delivery stage, and a maintenance stage, a total of four stages, then the above-mentioned process of converting various types of class data to obtain multiple variables exemplarily includes: constructing a four-dimensional initial vector composed entirely of first values ​​for the four stages in a set order, wherein one bit in the four-dimensional initial vector is set corresponding to one stage; when it is confirmed that the corresponding event includes one or more stages, the value of the corresponding bit of the four-dimensional initial vector is modified to a second value to obtain a development stage variable; the multiple variables are written into the type class dimension of the event vector of the corresponding timing event, including: writing the development stage variable into the corresponding dimension of the event vector. That is to say, the embodiment of the present application defines the specific types included in the development stage and provides a process for quantifying event types based on these types of data, thereby improving the accuracy of the corresponding sub-vector results of the development stage, and thus improving the accuracy of evaluating the risk of delay based on this value.

[0071] It can be understood that, in some embodiments of the present application, the above-mentioned first value is 0, and the second value is 1; in other embodiments of the present application, the above-mentioned first value is 1, and the second value is 0.

[0072] It should be noted that, in order to avoid leakage of sensitive information, some embodiments of the present application need to perform desensitization processing on the source data of the collected development events, and then obtain the event vector based on the desensitized data.

[0073] For example, in some embodiments of the present application, the obtaining of multiple types of information to be quantified corresponding to each timing event further includes: collecting development event source data of the software system to be evaluated; identifying sensitive information in the development event source data according to field names, where the field names include at least one of a project name, a name of a project personnel, and a company name; performing desensitization processing on the sensitive information in the development event source data to obtain project record metadata; and if it is verified that there is no sensitive information in the project record metadata, obtaining the multiple types of information to be quantified according to the project record metadata. It can be understood that in some embodiments of the present application, desensitization processing is performed on the obtained development event source data, which can better protect privacy information.

[0074] It can be understood that since some embodiments of the present application perform desensitization processing on the development event source data, in some embodiments of the present application, the initiating department refers to the department that fills in the corresponding event, and the initiating department is represented by a unique department identification ID. It is understandable that the embodiments of the present application using the department identification to represent the initiating part can improve the security of the privacy information corresponding to this type of information data.

[0075] As described above, in order to improve the accuracy of predicting the development project delay of the software system, in addition to obtaining the event vector, the embodiments of the present application also need to obtain information that does not change with time of the software system to be evaluated to obtain non-temporal features.

[0076] For example, in some embodiments of the present application, the non-temporal feature vector is used to represent the following attributes that do not change with time: the size of the development team, the size of the development budget, the planned construction period of the development plan, the development workload, the number of development collaboration parties, and the development technical complexity; the non-temporal feature vector is obtained by quantifying the information corresponding to the attributes that do not change with time according to the quantization principles of numerical data and type data respectively. For example, for an inherent attribute belonging to numerical data (i.e., the inherent attribute is represented by a numerical value), the corresponding data of the inherent attribute can be directly written into the dimension of the non-temporal feature vector, and for an inherent attribute belonging to type data (i.e., the inherent attribute is distinguished by multiple categories), the quantization process for quantifying multiple types of information to be quantified can be referred to for quantization processing. It is not difficult to understand that some embodiments of the present application give the types of attribute information that do not change with time and provide a method for quantifying this information to obtain a non-temporal feature vector. By defining the attribute data corresponding to the non-temporal feature, the accuracy of evaluating the risk of software development project delay based on this vector can be improved in the future.

[0077] The target delay risk assessment neural network model involved in S102 is described below by way of example.

[0078] The target delay risk assessment neural network model described in S102 of the embodiments of the present application is obtained by training the parameters of the delay risk assessment neural network model. The architecture of the delay risk assessment neural network model is the same as that of the target delay risk assessment neural network model (the architecture can be referred to Figure 3 the target delay risk assessment neural network model shown). Both of them include: a temporal feature extraction layer, a self-attention layer, and a projection conversion layer.

[0079] The self-attention layer (Self-Attention Layer) in some embodiments of the present application is configured to capture the dependencies and importance among various parts of the input data. It can reallocate attention weights by calculating the similarity between each input vector and other input vectors, thereby emphasizing the information that is most relevant to the current task. For example, the functions of the self-attention layer in the embodiments of the present application at least include: First, capturing global dependencies: Compared with traditional sequence models (such as RNN and LSTM), the self-attention mechanism is not limited to the dependencies between adjacent time steps, but can flexibly focus on key features at any position in the entire input sequence. This enables the model to more comprehensively understand the global information in the data. Second, improving parallel processing ability: The self-attention mechanism allows parallel computing, unlike RNN which needs to process each time step in the sequence step by step, thus significantly improving the computational efficiency, especially when dealing with long sequences. Third, enhancing feature representation: Through the self-attention mechanism, the input features can be dynamically adjusted in weight, which helps the model to more accurately identify important information and ignore irrelevant information, improving the accuracy of feature representation.

[0080] The projection conversion layer (Projection Layer) in some embodiments of the present application is at least configured to map the processed features to another space for further prediction or classification. In the embodiments of the present application, this layer usually includes a linear transformation and an activation function, aiming to adjust the feature dimension and extract higher-level features. For example, the functions of this layer in some embodiments of the present application at least include: First, feature space transformation: The projection conversion layer projects the input features into a new feature space through a linear transformation (usually matrix multiplication). This process can extract and combine higher-level features, helping to improve the expression ability and generalization ability of the model. Second, non-linear enhancement: During the projection conversion process, a non-linear activation function (such as ReLU, tanh, etc.) is usually added, which enables the model to capture the complex non-linear relationships between the input features, enhancing the flexibility and adaptability of the model. Third, dimensionality reduction and compression: The projection conversion layer can also be used for dimensionality reduction and compression of the input features, reducing the computational complexity and memory occupancy, and improving the computational efficiency of the model.

[0081] It should be noted that in some embodiments of the present application, the timing feature extraction layer includes a plurality of GRU units, and the input of each GRU unit is an event vector, and the output is a target hidden state vector, and the target hidden state vector is used to characterize the timing relationship between events related to time. In the embodiments of the present application, the GRU unit of the recurrent neural network is used to capture and encode event information to form a timing feature vector, which can fully mine the timing relationship between different events.

[0082] In order to better mine the time series features, in some embodiments, the GRU unit determines the target hidden state vector through the following algorithm:

[0083]

[0084] Among them, the is the update gate, and the is used to represent the current hidden state vector, is used to represent the target hidden state vector, and the update gate is used to represent the extent to which the current hidden state vector is retained in the target hidden state vector , and the target hidden state vector is used to represent the hidden state of the next time step. ⊙ represents element-wise multiplication, represents the candidate hidden state vector, and the candidate hidden state vector is a quantity related to the corresponding event vector and the current hidden state vector. The embodiments of the present application can accurately capture the long-term patterns and short-term changes in time series data through the algorithm for obtaining the intermediate hidden state, providing a richer and more robust feature representation for subsequent prediction and classification tasks. It should be noted that the update gate is a part of the model structure. In fact, it is a vector structure. The function of the update gate is: when this vector is calculated with the hidden state vector, it represents which parts of the hidden state need to be retained and which need to be updated.

[0085] It should be noted that in some embodiments of the present application:

[0086] Event vector input: The input vector represents the event vector of the current time step, which contains the event information occurring in the system at the current moment. These event vectors reflect the specific events in the software project.

[0087] Hidden state of the previous moment: The hidden state vector represents the memory state of the previous time step, which contains all historical information up to the previous moment.

[0088] Calculation of the update gate:

[0089] Weight matrix and : The previous hidden state and are linearly transformed through two weight matrices and the event vector at the current time step .

[0090] Bias term : Add the bias term .

[0091] Activation function: Through a sigmoid activation function σ, the result of the above linear transformation is converted into the output of the update gate . The sigmoid function will limit the result between 0 and 1, indicating the opening degree of the update gate

[0092] State update: The output of the update gate determines how much of the current hidden state comes from the previous hidden state and how much needs to be updated by the event vector at the current time step. Specifically, if a certain dimension of is close to 1, the hidden state of that dimension retains more information from the previous moment; if it is close to 0, more information from the current time step is adopted

[0093] For example, in some embodiments of the present application, the candidate hidden state vector is determined by the following formula:

[0094]

[0095] where tanh represents the hyperbolic tangent activation function is the weight matrix used to represent the input of the update gate to the hidden state, the is the reset gate, and the is used to control the degree of memory of historical information. r t The formula is as follows:

[0096]

[0097] r t This vector is calculated from the trained model parameters and previous data and is used to control the degree of memory of historical information. For the specific meanings of the relevant parameters in this formula, reference can be made to the following description. To avoid repetition, no more details are provided here

[0098] The embodiments of the present application can accurately capture long-term patterns and short-term changes in time series data through the algorithm for determining the candidate hidden state vector, providing a richer and more robust feature representation for subsequent prediction and classification tasks

[0099] The following will exemplarily elaborate on the method for evaluating the development delay of the software system in some embodiments of the present application in combination with Figure 3 the provided architecture.

[0100] It should be noted that before exemplarily elaborating on the method for evaluating the development delay of the software system in some embodiments of the present application, the inventive concept of the embodiments of the present application will be exemplarily elaborated first. Figure 3 Before exemplarily elaborating on the method for evaluating the development delay of the software system in some embodiments of the present application, the inventive concept of the embodiments of the present application will be exemplarily elaborated first.

[0101] Embodiments of the present application propose a method for predicting project engineering duration delay warning of a software system. This method can automatically extract event information from the project engineering log of the software system to be evaluated (corresponding Figure 3 to the event source data), and this event information corresponds to the event type, initiating department, software component, filler, development stage, timestamp, and event text for obtaining the event vector. The specific meaning can be referred to the description below. Based on this information, it can be predicted whether the project has a risk of extension, and a warning signal can be generated when it is determined that there is a risk of extension. Embodiments of the present application can predict the project delay risk of the software system that may occur in the future through the event records in the software project development process. The algorithm for predicting the delay risk in the embodiments of the present application is defined as follows:

[0102] Some embodiments of the present application symbolize the timing event x and the non-timing event s, and provide relevant calculation formulas. For example, assume that the potential risk Y of the development project corresponding to the software system is characterized as: , with a total of m risks with different degrees of extension. By collecting the logs of the software system to be evaluated, various timing events that occur can be automatically recorded, or various timing events can be recorded by developers through project progress management and other means. These timing events constitute different events in the development process of the software system to be evaluated (for example, Figure 3 exemplarily shows from x 0 、x 1 , until x n a total of n timing events, where n is an integer greater than 1). Each timing event can adopt the following sequence (this sequence is represented by an event vector). In some embodiments of the present application, each e i corresponds to one of "event type, initiating department, software component, filler, development stage, timestamp, event text" respectively, and the corresponding value of t is 7. At the same time, assume that the factors that do not change with time in the development project of the software system to be evaluated (This factor is characterized by non-temporal features) indicates that, as an example, each factor corresponds to one of "development team size, development budget size, development plan duration, development workload, number of development collaboration parties, and development technology complexity", so the prediction task of the delay risk of the software system development project in the embodiments of the present application is expressed as:

[0103]

[0104] wherein, indicates that there is no delay risk for the software system to be evaluated.

[0105] Next, in combination with Figure 3 and the core concept of the above task algorithm, some embodiments of the present application are exemplarily described for the method of evaluating software system development delay, which method exemplarily includes:

[0106] The first step is to obtain the event source data and perform desensitization preprocessing on the event source data, that is, desensitize the source data of the time-series event.

[0107] It can be understood that some embodiments of the present application desensitize the source data of a series of development events (or called time-series events) in the software system project (including the software system to be evaluated or the software system included in the training data) to protect data privacy and security, and the data fields are screened according to the project logs and input into Figure 3 the desensitization preprocessing module.

[0108] For example, in some embodiments of the present application, Figure 3 the desensitization preprocessing module is configured to desensitize the event source data to protect user privacy and ensure data security. For example, the process of this desensitization treatment exemplarily includes: collecting the source data of the development event to obtain the event source data; according to data protection regulations and user privacy requirements, data that can directly infer project content, such as project name, project personnel names, company names, etc. are sensitive information; applying desensitization rules to process the sensitive data in the event source data, removing sensitive information items, and only retaining the project record metadata; the processed data needs to be verified again to ensure that the sensitive information has been completely removed, while maintaining the validity and integrity of the data.

[0109] The second step is to quantify the desensitized data obtained from the desensitization operation in the first step and quantify the preprocessed text data to obtain n event vectors x 0 , x 1 , until, x n (corresponding to Figure 3The event feature construction module, preprocessing, text preprocessing, and subsequent feature splicing), each event vector is used to quantify the following 7 features corresponding to each time-series event respectively: event type, initiating department, software component, filler, development stage, timestamp, and event text.

[0110] Figure 3 The event feature construction and preprocessing are used for data preprocessing and event feature construction. After the first-step desensitization processing, it is necessary to extract the semantic information of the text data (corresponding to the event text) and convert it into a semantic feature vector, and then splice other numerical information (information corresponding to the event type, initiating department, software component, filler, development stage, and timestamp) to obtain the feature vector of a single event (i.e., the event vector). On the one hand, these feature vectors can be organized into W vectors according to the predefined window size and positive and negative sampling for training the delay risk assessment neural network model. On the other hand, they can be fused with non-time-series features to predict the delay risk of the software system to be evaluated.

[0111] That is to say, in some embodiments of the present application, after the first-step data desensitization, it is necessary to perform data preprocessing and event feature construction (exemplarily including: obtaining the feature data to be quantified; quantifying each feature data to obtain the event vectors of each event in the event source data), and converting it into a form that can be understood by the computer model.

[0112] For example, in some embodiments of the present application, the process of obtaining the data to be quantified and quantifying it exemplarily includes:

[0113] In the first step, the anonymized event data is preliminarily screened, deduplicated and de-noised, and the received raw data is preliminarily screened to exclude data irrelevant to the research objectives, identify and delete duplicate records in the data set, and remove noise in the data to determine the seven features of event type, initiating department, software component, filler, development stage, timestamp, and event text description. Event type refers to the category to which the event recorded by the development progress management system belongs, including personnel messages, progress reports (for example, the progress report further includes weekly progress reports or daily progress reports), functional feedback (including stage test results and code review summaries), functional and demand changes, and technical communication. The initiating department refers to the department that fills in the event. Due to the requirements of data anonymization, the initiating department is identified and distinguished by a unique department ID. Software components refer to the software content involved in the event, which are divided into five types: architecture components, functional interface components, algorithm and database components, front-end components and other components. An event may involve multiple software components. Fillers refer to employees who fill in the event. Events recorded by employees of different levels and types will have different types of impacts. The development stage refers to the stage of the project when the event is recorded, which is classified as the design stage. , development phase, test delivery phase and maintenance phase; timestamp refers to the time information of the corresponding time series event; event text description refers to the specific information of the corresponding time series event. The second step is feature data preprocessing. Some embodiments of the present application divide the above-mentioned field data into numerical data, category data, and text data according to the modality of the data, and classify them for quantitative preprocessing to turn them into a quantitative form that can be understood by the computer model. For example, in some embodiments of the present application, the quantification method exemplarily includes: the numerical data includes a timestamp, and the timestamp data is directly written into the corresponding dimension of the event feature; the category data includes event type, initiating department, software component, filler and development phase, and one-hot encoding is used to convert the above data into variables composed of the numbers 0 and 1. In One-Hot Encoding (One-Hot Under the encoding mechanism, the position of the content associated with a specific event in the vector will be set to 1, and all other positions will be set to 0. Taking the software development cycle as an example, an event that is in the development phase, then in the vector representing the development phase, the value of the corresponding position will be 1, and the remaining positions will be 0, forming a vector such as [0,1,0,0]. Similarly, the maintenance phase is represented in the vector as [0,0,0,1]. In addition, for features such as software components, they may correspond to multiple values, in which case all relevant bits will be marked as 1.If an event is associated with both the architecture and the functional interface components simultaneously, then its corresponding vector will be [1, 1, 0, 0, 0]; the text type data includes the event text description. Using the PV-DM (Distributed Memory Model of Paragraph Vectors) model, different text information is integrated and mapped into a standardized multi-dimensional vector space for analysis. The PV-DM model is further developed based on the word2vec word vector model. It adds a paragraph vector for each sentence ( ), whose mathematical form is consistent with the word vector ( ), and can be analogized to a special "word" in the text, which is the dimension encoded by the word vector model. In the model training stage, by setting a fixed context length and using the sliding window technique to generate training data, and sharing the paragraph vector in this context, the parameter learning of the PV-DM model is completed. For example, the training objective of the model is to minimize the loss function L, which is based on the paragraph vector P and the word vector W to predict the conditional probability of each word in the given context. The calculation of the loss function is shown in formula (3-1). Among them, is the probability that the word P appears under the given paragraph vector W and the context word vector w ( w refers to the window size, w≥1 , generally taking relatively small values of 5 or 10). The model parameters are optimized through stochastic gradient descent (SGD), and the paragraph vector P can learn the features expressing the paragraph's main idea and semantics.

[0114] (3-1)

[0115] In the model inference stage, for a new paragraph, the gradient ascent is used to iteratively update the paragraph vector P to maximize the log probability of the new paragraph until it converges to a stable state, as shown in formula (3-2). After sufficient training on a large-scale corpus, the obtained paragraph vector can accurately capture and express the theme and semantics of the new paragraph, thus providing an effective text representation method for text analysis tasks.

[0116] (3-2)

[0117] The event in the source data is transformed into an event vector in vectorized form through formula 3-2, denoted as ( ).

[0118] As an example of this application, the dimension of the corresponding event vector includes a 5-dimensional event type, a 13-dimensional initiating department, a 5-dimensional software component, a 133-dimensional filler (employees in the same position are regarded as one person), a 4-dimensional development stage, a 1-dimensional timestamp, and a 100-dimensional text expression, with a total dimension of 261. That is to say, in some embodiments of this application Figure 3 each event vector x is a 261-dimensional vector.

[0119] In the third step, a delay risk assessment result is obtained according to the target delay risk assessment neural network model 300, and this model obtains a delay risk prediction result based on the following first sub-step and second sub-step.

[0120] The first sub-step is to use Figure 3 the time series feature extraction layer of Figure 3 to perform time series feature information processing. This processing is carried out through

[0121] the time series feature extraction layer 310 of t . As described above, this time series feature extraction layer includes multiple GRU units. The input of each GRU unit is an event vector x, and the output is a hidden state vector h.

[0122] Define an event window and feature data. The feature data determined by the event window size ; the input signal ( ) is sequentially input into each unit according to the order. After that, it not only passes downward (the hidden state at each time step is represented as ) but also passes to the next parallel unit, so that the signal output of the previous state can provide additional information for the processing of the signal of the next state. For the problem of gradient disappearance and gradient explosion in RNN, the embodiments of this application use a gated recurrent unit as the core component of the recurrent neural network to mine the time series relationship between two relatively long inputs. By introducing an update gate and a reset gate, the problem of gradient disappearance in traditional RNN is solved to learn long-term dependence relationships. The processing of the original data information using the update gate ( ) and the reset gate ( ) is expressed as shown in (3-3) and (3-4). The update gate represents to what extent the current hidden state is retained in the hidden state of the next time step ( ). The reset gate represents the current input ​To what extent it is combined with the previous hidden state ( ). Among them, denotes sigmoid the activation function that maps the input to between 0 and 1, which is applicable to the calculation of gating because gating is probabilistic and determines the degree of information passing. and are the weight matrices from the input to the hidden state corresponding to the update gate and the reset gate respectively ( , ,d is the number of sample inputs, h is the number of hidden units). and are the weight matrices from the hidden state to the hidden state corresponding to the update gate and the reset gate ( , ). and are the corresponding bias parameters ( , ). is the hidden state at time step t-1 , is the input at time step t .

[0123] (3 - 3)

[0124] (3 - 4)

[0125] The update gate determines how much of the previous information should be retained in the current state, and the reset gate determines how much of the previous information should be ignored in the current state. Combining the reset gate gives the candidate hidden state at the current time step as shown in formula (3 - 5). Combining the update gate and the candidate hidden state generates the final hidden state, and the formula is as shown in (3 - 6). tanh denotes the hyperbolic tangent activation function, and ⊙ denotes element-wise multiplication. In this way, the scheme can, while processing the current input , selectively retain or forget the previous state information according to the update gate , and the degree of memory of the previous information is controlled by the reset gate . Among them, denotes the candidate hidden state ( , n is the number of samples, h is the number of hidden units), denotes the hidden state. W is the weight matrix, .

[0126] (3 - 5)

[0127] (3 - 6)

[0128] Some embodiments of the present application can accurately capture long - term patterns and short - term changes in time - series data through the design of this structure, providing a richer and more robust feature representation for subsequent prediction and classification tasks.

[0129] The second sub - step is to use Figure 3 the self - attention layer to obtain context - feature scaled dot - product attention time - series features and achieve the fusion with non - time - series features.

[0130] Some embodiments of the present application adopt the context - feature scaled dot - product attention time - series feature and non - time - series fusion technology, and use the scaled dot - product attention mechanism to further process the time - series feature vector (i.e., Figure 3 each h i ), and construct a fully - connected network decoding component for fusing time - series and non - time - series features, forming an early - warning output of the impact of "high, medium, and low" types of log events on the construction period. It can be understood that the fusion of context features and time - series features in the embodiments of the present application improves the model prediction accuracy.

[0131] For example, some embodiments of the present application introduce the scaled dot - product attention mechanism through the self - attention layer to enhance the signal screening and processing capabilities in the recurrent neural network (RNN) layer. This mechanism allows the model to dynamically allocate attention between different parts of the sequence, thereby capturing key information and ignoring irrelevant parts. Through the scaled dot - product attention mechanism, different parts of the input sequence are weighted at each time step to generate a context vector that aggregates the sequence information, and this vector can better represent the overall content of the sequence. The scaled dot - product attention mechanism can not only improve the model's ability to capture key information in the input sequence but also reduce the computational complexity because it does not require complex loop calculations for the entire sequence but directly focuses on important information through attention weights.

[0132] The scaled dot - product attention calculation of some embodiments of the present application includes the following steps:

[0133] The steps are as follows: (1) Dot - product similarity calculation: The first step of the attention mechanism involves performing a dot - product operation on the input query vector and each potential input value vector to calculate a similarity score for each query - value pair using the following formula (4 - 1).

[0134]

[0135] (2) Weight assignment: Next, the Softmax function is used to transform these similarity scores to generate a set of weights. This set of weights is normalized over all input values such that their sum equals 1, thus simulating a probability distribution. The calculation formula is as shown in formula (4-2).

[0136]

[0137] (3) Weighted summation: The last step is to multiply each input value by its corresponding weight and sum all the products to obtain a single output. This output represents the weighted aggregated representation of the input values considering the query context. The calculation formula is as shown in formula (4-3).

[0138]

[0139] For example, some embodiments of the present application will cascade the temporal features and non-temporal features after screening the input vectors through the self-attention layer. As described above, the non-temporal features of some embodiments of the present application include: the size of the development team, the scale of the development budget, the planned development duration, the development workload (or called thousands of lines of code), the number of development cooperation parties, and the development technical complexity. The size of the development team refers to the approximate number of personnel in the project development team, which is divided into micro teams (less than 20 people), small teams (20 - 100 people), medium teams (100 - 200 people), and large teams (more than 200 people); the scale of the development budget refers to the budget amount of the project, which reflects the workload and difficulty of the project, and is divided into extremely low budget (less than 100,000 yuan), low budget (100,000 - 500,000 yuan), medium budget (500,000 - 1,000,000 yuan), and high budget (more than 1,000,000 yuan); the planned development duration reflects the workload and urgency of the project and is counted in natural months; thousands of lines of code directly reflects the workload of the project; the number of development cooperation parties. When there are subcontracting or cooperation relationships in the project, the success of the project is determined by itself and the cooperation parties together. When the number of development cooperation parties increases and communication becomes difficult, the risk of the project also increases; the development technical complexity refers to the project difficulty, which is divided into categories from 1 (low complexity) to 5 (high complexity). After quantifying these six non-temporal features according to the aforementioned numerical data and categorical data to form vectors, the non-temporal feature vectors are cascaded with the attention signals constructed according to the event vectors above.

[0140] Some embodiments of the present application combine non-time series feature vectors with the attention weighted signals generated in the previous steps, and then use a fully connected network layer to further transmit and process these signals. The fully connected layer is constructed by multiplying the input signal with a trainable weight matrix and adding a bias term, and then passing it through an activation function to act on the subsequent part of the network, as shown in formula (3-7). To enhance the generalization ability of the model and avoid overfitting, a dropout layer is introduced after the first fully connected layer dropout( The mechanism of this layer is to randomly discard a part of the neurons during the training process (i.e., set their outputs to zero), so as to reduce the dependence of the model on certain features and force the neural network to learn in a wider feature space ) , which is achieved by randomly "discarding" (setting to zero) a part of the network signals. The ReLU function is selected as the activation function, and the output range is . W ( W ) is the weight matrix, and the output of the previous layer is used as the input of the fully connected layer. The bias term b adds a constant to the output of the weight matrix to provide the ability of translation, b The dimension of n。

[0141] (3-7)

[0142] Two sequential fully connected layers are adopted, and the dropout operation is implemented after the first fully connected layer. At the final output stage of the model, the signal processed by a sigmoid function is used to generate the prediction result. According to the specific requirements of the experimental task, the output layer is designed in two forms. On the one hand, when the task is defined as a binary classification problem for evaluating the presence or absence of risk, the output layer is simplified to a single value, representing the model's prediction of the presence (1) or absence (0) of risk. In this case, the loss function Loss can be expressed as shown in formula (3-8). Where is the sample label, which takes the value of 1 if the sample belongs to the positive example (risk exists), and 0 otherwise is the probability that the model predicts the sample as a positive example

[0143] (3-8)

[0144] On the other hand, when the task involves multi-label classification, that is, a sample may correspond to multiple risk types, the output layer and the loss function need to be adjusted accordingly to adapt to the characteristics of multi-labels. At this time, the expression of the loss function needs to consider multiple labels, and the loss function Loss is as shown in formula (3-9). for The flag of whether the class is a positive example. If the class is a positive example, it is set to 1, otherwise it is set to 0.

[0145] (3-9)

[0146] Three possible risks are defined, namely, functional risk of failing to meet functional requirements ( ), performance risk of failing to meet performance and security requirements ( ) and the risk of the construction period not meeting the expected time limit ( ). Plus the risk-free classification ( ), a multi-label binary classification task of predicting four labels is designed in the output layer. Finally, the early warning output of the impact of three types of log events on the construction period, namely "high, medium, and low", is formed. As an example, Figure 3 Through the projection transformation layer, any result among no risk, schedule risk, performance risk or functional risk can be output.

[0147] Please refer to Figure 4 , Figure 4 The apparatus for evaluating software system development delay provided in the embodiment of the present application is shown. It should be understood that the apparatus is similar to the above-mentioned Figure 2 The method embodiment corresponds to the method embodiment and can execute each step involved in the above method embodiment. The specific functions of the device can refer to the description above. To avoid repetition, the detailed description is appropriately omitted here. The device includes at least one software function module that can be stored in the memory in the form of software or firmware or fixed in the operating system of the device. The device for evaluating the development delay of the software system includes: an event vector acquisition module 401 and a delay development risk assessment module 402.

[0148] The event vector acquisition module 401 is configured to acquire multiple event vectors, wherein each event vector in the multiple event vectors is used to represent attribute information of a time series event obtained from the software system to be evaluated at different times.

[0149] The delayed development risk assessment module 402 is configured to input the multiple event vectors and the non-temporal feature vectors corresponding to the software system to be evaluated into a target delay risk assessment neural network model to obtain a delayed development risk assessment result for the software system to be evaluated, wherein the target delay risk assessment neural network model includes a temporal feature extraction layer, a self-attention layer, and a projection conversion layer, and the non-temporal feature vectors are used to characterize the inherent attribute information corresponding to the software system to be evaluated.

[0150] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the device described above can refer to the corresponding process in the aforementioned method, and will not be described in detail here.

[0151] Some embodiments of the present application provide a computer-readable storage medium, on which a computer program is stored. When the program is executed by a processor, the method for evaluating the development delay of a software system described in any of the embodiments included in the above method can be implemented.

[0152] As Figure 5 shown, some embodiments of the present application provide an electronic device 500, including a memory 510, a processor 520, and a computer program stored on the memory 510 and executable on the processor 520. Wherein, when the processor 520 reads and executes the program through a bus 530, the method for evaluating the development delay of a software system described in any of the embodiments included in the above method can be implemented.

[0153] The processor 520 can process digital signals and can include various computing architectures. For example, a complex instruction set computer architecture, a reduced instruction set computer architecture, or an architecture that implements a combination of multiple instruction sets. In some examples, the processor 520 can be a microprocessor.

[0154] The memory 510 can be used to store instructions executed by the processor 520 or data related to the instruction execution process. These instructions and / or data can include code for implementing some or all of the functions of one or more modules described in the embodiments of the present application. The processor 520 of the embodiments of the present disclosure can be used to execute the instructions in the memory 510 to implement Figure 2 the method shown in. The memory 510 includes a dynamic random access memory, a static random access memory, a flash memory, an optical memory, or other memories well known to those skilled in the art.

[0155] Some embodiments of the present application provide a computer program product, the computer program product includes a computer program, and when the computer program is executed by a processor, the method described in any of the embodiments included in the method for evaluating the development delay of a software system as described above can be implemented.

[0156] In several embodiments provided by the present application, it should be understood that the disclosed devices and methods can also be implemented in other ways. The device embodiments described above are merely illustrative. For example, the flowcharts and block diagrams in the accompanying drawings show the possible architectures, functions, and operations of devices, methods, and computer program products according to multiple embodiments of the present application. In this regard, each block in the flowchart or block diagram may represent a module, a program segment, or a part of code, and the module, program segment, or part of code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order from that marked in the accompanying drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, as well as the combination of blocks in the block diagram and / or flowchart, can be implemented by a dedicated hardware-based system that performs the specified functions or actions, or can be implemented by a combination of dedicated hardware and computer instructions.

[0157] In addition, in each embodiment of the present application, the functional modules can be integrated together to form an independent part, or each module can exist separately, or two or more modules can be integrated to form an independent part.

[0158] If the above functions are implemented in the form of software function modules and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the present application, in essence, or the part that contributes to the prior art, or a part of this technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of the present application. The aforementioned storage medium includes: USB flash drives, mobile hard disks, read-only memories (ROM, Read-Only Memory), random access memories (RAM, Random Access Memory), magnetic disks, or optical discs, etc., which can store program codes.

[0159] The above are only embodiments of the present application and are not intended to limit the protection scope of the present application. For those skilled in the art, the present application may have various changes and modifications. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included within the protection scope of the present application. It should be noted that similar reference numerals and letters denote similar items in the following drawings. Therefore, once an item is defined in one drawing, it does not need to be further defined and explained in subsequent drawings.

[0160] As described above, these are only specific implementation manners of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily conceive of changes or substitutions within the technical scope disclosed by the present application, and all such changes or substitutions should be covered within the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

[0161] It should be noted that in this text, relative terms such as "first" and "second" are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the term "comprising", "including" or any other variant thereof is intended to cover non-exclusive inclusion, such that a process, method, article or device comprising a series of elements not only includes those elements but also includes other elements not expressly listed, or further includes elements inherent to such process, method, article or device. Without further limitation, an element defined by the statement "comprising one..." does not exclude the existence of additional identical elements in the process, method, article or device comprising the said element.

Claims

1. A method for evaluating software system development delay, characterized in that: The method comprises: Acquire multiple event vectors, wherein each event vector in the multiple event vectors is used to represent the attributes of a time series event obtained from the software system to be evaluated at different times; Input the multiple event vectors and the non-time-series feature vectors corresponding to the software system to be evaluated into a target delay risk assessment neural network model to obtain a delay development risk assessment result of the software system to be evaluated, wherein the target delay risk assessment neural network model includes a time-series feature extraction layer, a self-attention layer, and a projection conversion layer, and the non-time-series feature vectors are used to characterize the inherent attribute information corresponding to the software system to be evaluated; in, The obtaining of multiple event vectors includes: Acquire multiple types of information to be quantified corresponding to each time series event, wherein the multiple types of information to be quantified include: event type, initiating department, software component, filler, development stage, timestamp and event text, the timestamp is used to represent the time information of the corresponding event release, the event type is used to represent the category to which the corresponding event belongs, and the development stage is used to represent the stage of the project when recording the event; If it is confirmed that the timestamp belongs to numerical data, the timestamp is written into the time dimension of the event vector corresponding to the time series event; Confirming that the event type, the initiating department, the software component, the filler and the development stage all belong to type class data, each type class data is respectively converted into a plurality of variables and the plurality of variables are respectively written into the type class dimension of the event vector corresponding to the time series event; Confirming that the event text is text type data, integrating and mapping different text information in the text type data into a standardized multidimensional vector space to obtain a text vector, and writing the text vector into the event text dimension of the event vector corresponding to the time series event; The temporal feature extraction layer includes a plurality of gated recurrent unit network GRU units, and the input of each GRU unit is an event vector, and the output is a target hidden state vector, wherein the target hidden state vector is used to represent a series of events of different categories occurring in chronological order; The GRU unit determines the target hidden state vector by the following algorithm: Among them, the For the update gate, the Used to represent the current hidden state vector, The update gate is used to represent the target hidden state vector, and the update gate is used to represent the current hidden state vector is retained to the target hidden state vector The degree of ⊙ represents element-wise multiplication, represents a candidate hidden state vector, which is related to the event vector A quantity corresponding to the current hidden state vector; The candidate hidden state vector is determined by the following formula: Among them, tanh represents the hyperbolic tangent activation function, The weight matrix used to characterize the input of the update gate to the hidden state, To reset the gate, the Used to control the degree of memory of historical information; The projective transformation layer is at least configured to map the processed features to another space, and the projective transformation layer includes a linear transformation and an activation function.

2. The method according to claim 1, characterized in that The event types include five types of event data: personnel news, progress report, function feedback, function and requirement changes, and technical communication; among them, The step of converting various types of class data to obtain multiple variables and writing the multiple variables into the type class dimensions of the event vector corresponding to the time series event includes: Constructing a five-dimensional initial vector consisting entirely of first values ​​for the five types of event data in a set order, wherein one bit in the five-dimensional initial vector is set corresponding to one type of event data; When it is confirmed that the corresponding time series event includes one or more types of event data, the value of the corresponding bit of the five-dimensional initial vector is modified to a second value to obtain an event type variable; The event type variable is written into the corresponding dimension of the event vector.

3. The method according to claim 1, characterized in that The software components include: architecture components, functional interface components, algorithm and database components, front-end components and other components, a total of five types of software component data; among which, The step of converting various types of class data to obtain multiple variables and writing the multiple variables into the type class dimensions of the event vector corresponding to the time series event includes: constructing an initial vector consisting entirely of first values ​​for the five types of software component data in a set order, wherein one bit in the initial vector is set corresponding to one type of software component data; When it is confirmed that the corresponding event includes one or more software component data, the value of the corresponding bit of the initial vector is modified to a second value to obtain a software component variable; The software component variables are written into corresponding dimensions of the event vector.

4. The method according to claim 1, characterized in that The development phase includes four phases: design phase, development phase, test delivery phase and maintenance phase; among them, The step of converting various types of class data to obtain multiple variables and writing the multiple variables into the type class dimensions of the event vector corresponding to the time series event includes: Constructing a four-dimensional initial vector consisting entirely of first numerical values ​​for the four stages in a set order, wherein one bit in the four-dimensional initial vector is set corresponding to one stage; When it is confirmed that the corresponding event includes one or more stages, the value of the corresponding bit of the four-dimensional initial vector is modified to a second value to obtain a development stage variable; The development phase variables are written into corresponding dimensions of the event vector.

5. A device for evaluating software system development delay, characterized in that: The device comprises: An event vector acquisition module is configured to acquire a plurality of event vectors, wherein each event vector in the plurality of event vectors is used to represent attribute information of a time series event obtained from the software system to be evaluated at different times; The delayed development risk assessment module is configured to input the multiple event vectors and the non-temporal feature vectors corresponding to the software system to be assessed into a target delayed development risk assessment neural network model to obtain a delayed development risk assessment result of the software system to be assessed, wherein the target delayed development risk assessment neural network model includes a temporal feature extraction layer, a self-attention layer, and a projection conversion layer, and the non-temporal feature vector is used to characterize the inherent attribute information corresponding to the software system to be assessed; Wherein, the event vector acquisition module is further configured to: Acquire multiple types of information to be quantified corresponding to each time series event, wherein the multiple types of information to be quantified include: event type, initiating department, software component, filler, development stage, timestamp and event text, the timestamp is used to represent the time information of the corresponding event release, the event type is used to represent the category to which the corresponding event belongs, and the development stage is used to represent the stage of the project when recording the event; If it is confirmed that the timestamp belongs to numerical data, the timestamp is written into the time dimension of the event vector corresponding to the time series event; Confirming that the event type, the initiating department, the software component, the filler and the development stage all belong to type class data, each type class data is respectively converted into a plurality of variables and the plurality of variables are respectively written into the type class dimension of the event vector corresponding to the time series event; Confirming that the event text is text type data, integrating and mapping different text information in the text type data into a standardized multidimensional vector space to obtain a text vector, and writing the text vector into the event text dimension of the event vector corresponding to the time series event; The temporal feature extraction layer includes a plurality of gated recurrent unit network GRU units, and the input of each GRU unit is an event vector, and the output is a target hidden state vector, wherein the target hidden state vector is used to represent a series of events of different categories occurring in chronological order; The GRU unit determines the target hidden state vector by the following algorithm: Among them, the For the update gate, the Used to represent the current hidden state vector, The update gate is used to represent the target hidden state vector, and the update gate is used to represent the current hidden state vector is retained to the target hidden state vector The degree of ⊙ represents element-wise multiplication, represents a candidate hidden state vector, which is related to the event vector A quantity corresponding to the current hidden state vector; The candidate hidden state vector is determined by the following formula: Among them, tanh represents the hyperbolic tangent activation function, The weight matrix used to characterize the input of the update gate to the hidden state, To reset the gate, the Used to control the degree of memory of historical information; The projective transformation layer is at least configured to map the processed features to another space, and the projective transformation layer includes a linear transformation and an activation function.

6. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the program, the method according to any one of claims 1 to 4 can be implemented.

Citation Information

Patent Citations

  • Neural network system, method and device for risk assessment

    CN111818093A

  • Risk assessment and identification method and device for illegal account

    CN116071077A