Method and device for evaluating development delay of software system and electronic equipment
By using a neural network model that integrates timing and non-timing features in software system development projects, the problems of data collection limitations, insufficient prediction timeliness and low evaluation accuracy in the prior art are solved, and accurate and real-time evaluation of software system development delays are achieved.
Patent Information
- Application Number
- CN202510181094.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-19
- Publication Date
- 2025-03-18
- Estimated Expiration
- 2045-02-19
AI Technical Summary
The prior art has problems such as data collection limitations, insufficient prediction timeliness and low evaluation accuracy in risk prediction in software system development projects.
By mining the timing relationships of various problem events and integrating the non-timing characteristics of software projects, the target delay risk assessment neural network model is used to evaluate the delay of software system development. The model includes a timing feature extraction layer, a self-attention layer and a projection conversion layer, which can provide early or real-time early warning during software system development.
It improves the accuracy of delay evaluation of software system development projects, enables real-time risk warnings during the development process, enhances project success rate and reduces delays.
Smart Images

Figure CN119647984A_ABST
Abstract
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 software system development delay, the method comprising: obtaining multiple event vectors, wherein each event vector in the multiple event vectors is used to characterize the attributes of time series events obtained from the software system to be evaluated at different times; inputting the multiple event vectors and 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 for 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.
[0007] The embodiments of the present application obtain an evaluation result of whether there is a delay risk in software system development by considering the features and non-timing features corresponding to different development events. On the one hand, the delay risk can be evaluated at any stage of the software system development process, and on the other hand, the accuracy of the delay evaluation results for the software system development project can be improved.
[0008] In some embodiments of the present application, the obtaining of multiple event vectors includes: obtaining multiple categories of information to be quantified corresponding to each time series event, wherein the multiple categories 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 the event is recorded; if it is confirmed that the timestamp belongs to numerical data, the timestamp is written into the time dimension of the event vector of the corresponding time series event; if it is confirmed that the event type, the initiating department, the software component, the filler and the development stage are all type data, then the various type data are respectively converted to obtain multiple variables and the multiple variables are respectively written into the type dimension of the event vector of the corresponding time series event; if it is confirmed that the event text is text type data, the different text information in the text type data is integrated and mapped into a standardized multidimensional vector space to obtain a text vector, and the text vector is written into the event text dimension of the event vector of the corresponding time series event.
[0009] The embodiment of the present application obtains a time series feature vector, i.e., an event vector, based on the multi-field event attribute information of each determined event. Since the multiple categories of information to be quantified obtained by the embodiment of the present application can better reflect the characteristics of the time series events, it can ultimately improve the accuracy of determining the delay risk based on these characteristics.
[0010] In some embodiments of the present application, the event types include five types of event data: personnel messages, progress reports, function feedback, function and requirement changes, and technical communication; wherein, the data conversion of various types of class data to obtain multiple variables includes: constructing an initial vector composed entirely of first numerical values for the five types of event data in a set order, wherein one bit in the five-dimensional initial vector is set to correspond 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 numerical value of the corresponding bit of the initial vector is modified to a second numerical value to obtain an event type variable; the writing of the multiple variables into the type class dimension of the event vector of the corresponding time series event includes: writing the event type variable into the corresponding dimension of the event vector.
[0011] The embodiments of the present application define the specific types of event types and provide a process for quantifying event types based on these types of data, thereby improving the accuracy of sub-vector results corresponding to event types and further improving the accuracy of evaluating delay risks based on these values.
[0012] In some embodiments of the present application, the software component includes: five types of software component data, namely, architecture component, functional interface component, algorithm and database component, front-end component and other components; wherein, the data conversion of various types of class data to obtain multiple variables includes: constructing a five-dimensional initial vector composed entirely of first numerical values for the five types of software component data in a set order, wherein one bit in the five-dimensional 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 numerical value of the corresponding bit of the five-dimensional initial vector is modified to a second numerical value to obtain a software component variable; the writing of the multiple variables into the type class dimension of the event vector of the corresponding timing event includes: writing the software component variable into the corresponding dimension of the event vector.
[0013] The embodiments of the present application define the specific types of software components and provide a process for quantifying event types based on these types of data, thereby improving the accuracy of sub-vector results corresponding to software components and further improving the accuracy of delay risk assessment based on this value.
[0014] In some embodiments, the development stage includes four stages: design stage, development stage, test delivery stage and maintenance stage; wherein, the data conversion of various types of class data to obtain multiple variables includes: constructing a four-dimensional initial vector composed of all 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 numerical value of the corresponding bit of the four-dimensional initial vector is modified to a second numerical value to obtain a development stage variable; the writing of the multiple variables into the type class dimension of the event vector of the corresponding timing event includes: writing the development stage variable into the corresponding dimension of the event vector.
[0015] The embodiments of the present application define the specific types included in the development phase and provide a process for quantifying event types based on these types of data, thereby improving the accuracy of the corresponding sub-vector results in the development phase, and further improving the accuracy of assessing the risk of delay based on this value.
[0016] In some embodiments, the obtaining of multiple categories of information to be quantified corresponding to each time series event includes: collecting source data of development events of the software system to be evaluated to obtain event source data; identifying sensitive information in the event source data according to field names, wherein the field names include at least one of project names, project personnel names, and company names; desensitizing the sensitive information in the event source data to obtain project record metadata; if it is verified that no sensitive information exists in the project record metadata, obtaining the multiple categories of information to be quantified according to the project record metadata.
[0017] Some embodiments of the present application perform desensitization processing on the acquired development event source data to 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] The embodiment of the present application adopts the department identification to represent the initiating part, which can improve the security of the privacy information corresponding to this type of information data.
[0020] In some embodiments, the non-time series feature vector is used to characterize the following attributes that do not change with time: development team size, development budget size, development plan duration, development workload, number of development collaborators, and development technology complexity; the non-time series feature vector is obtained by quantizing the information corresponding to the attributes that do not change with time according to the quantization principles of numerical data and type data.
[0021] Some embodiments of the present application provide types of attribute information that do not change over time and provide methods for quantifying this information to obtain non-time series feature vectors. By defining attribute data corresponding to non-time series features, the accuracy of subsequent assessment of the risk of software development project delays based on the vector can be improved.
[0022] In some embodiments, the temporal feature extraction layer includes multiple gated recurrent unit network GRU units, and the input of each GRU (Gated Recurrent Unit) is an event vector, and the output is a target hidden state vector, and the target hidden state vector is used to represent a series of events of different categories occurring in chronological order.
[0023] The embodiment of the present application uses the GRU unit of the recurrent neural network to capture and encode event information to form a time series feature vector, which can fully explore the time series relationship between different events.
[0024] In some embodiments, the GRU unit determines the target hidden state vector by the following algorithm:
[0025] 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 The quantity corresponding to the current hidden state vector.
[0026] The embodiments of the present application can accurately capture the long-term patterns and short-term changes in time series data through an algorithm for obtaining intermediate hidden states, and can also extract the long-term patterns and short-term changes of a variety of different time series feature data, providing a richer and more robust feature representation for subsequent prediction and classification tasks.
[0027] In some embodiments, the candidate hidden state vector is determined by the following formula:
[0028] 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.
[0029] The embodiments of the present application can accurately capture the long-term patterns and short-term changes in time series data through an algorithm for determining candidate hidden state vectors, and can also extract the long-term patterns and short-term changes of a variety of different time series feature data, providing a richer and more robust feature representation for subsequent prediction and classification tasks.
[0030] In a second aspect, some embodiments of the present application provide a device for evaluating software system development delays, the device comprising: an event vector acquisition module, configured to acquire multiple event vectors, wherein each event vector in the multiple event vectors is used to characterize attribute information of time series events obtained from the software system to be evaluated at different times; a delayed development risk assessment module, configured to input the multiple event vectors and 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 for the software system to be evaluated, wherein the target delay risk assessment neural network model comprises 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 inherent attribute information corresponding to the software system to be evaluated.
[0031] In a third aspect, some embodiments of the present application provide a computer-readable storage medium having a computer program stored thereon, and when the program is executed by a processor, the method described in any embodiment of the first aspect above can be implemented.
[0032] In a fourth aspect, some embodiments of the present application provide an electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor can implement the method described in any embodiment of the first aspect when executing the program.
[0033] In a fifth aspect, some embodiments of the present application provide a computer program product, wherein the computer program product comprises 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
[0034] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required for use in the embodiments of the present application will be briefly introduced below. It should be understood that the following drawings only show certain embodiments of the present application and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.
[0035] Figure 1 A system for evaluating software system development delay provided in an embodiment of the present application; Figure 2One of the flowcharts of the method for evaluating software system development delay provided in an embodiment of the present application; Figure 3 Flow chart 2 of the method for evaluating software system development delay provided in an embodiment of the present application; Figure 4 A block diagram of the composition of the device for evaluating software system development delay provided in an embodiment of the present application; Figure 5 A schematic diagram of the composition of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0036] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.
[0037] It should be noted that similar reference numerals and letters represent similar items in the following drawings, so 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 this application, the terms "first", "second", etc. are only used to distinguish the description and cannot be understood as indicating or implying relative importance.
[0038] At least to solve the technical problems existing in the background technology part, the embodiment of the present application proposes a method for evaluating the delay of software system development, which uses a recurrent neural network to capture the temporal relationship between temporal events in the software system development project, and integrates the non-temporal characteristics of the software project, and finally realizes the effective evaluation of the construction delay of the software system development project. Compared with the software system risk prediction research method provided by the related art, the embodiment of the present application has obvious advantages in performance and effectiveness. This is because the inventor of the present application found that the risk factors have important temporal characteristics and interactive effects in the project. Therefore, the embodiment of the present application takes into account the dynamics and temporal nature of the risk factors when determining the delay risk of the software system, while the model of the related art fails to consider the time series and interactions between the risk factors, i.e., the related events.
[0039] Please see Figure 1 , Figure 1 A system for evaluating software system development delay provided in some embodiments of the present application can execute the method for evaluating software system development delay in the embodiments of the present application.
[0040] Figure 1 The 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.
[0041] 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.
[0042] 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.
[0043] 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.
[0044] 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.
[0045] like Figure 2 As shown, an embodiment of the present application provides a method for evaluating software system development delay, the method comprising: S101, obtaining multiple event vectors.
[0046] 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.
[0047] 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: Resignation of developers (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).
[0048] In some embodiments of the present application, to obtain these time series events, the following methods can be used: 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.
[0049] For example, in the embodiment of the present application, multiple event vectors correspond to x0 to x1 as described below. 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.
[0050] 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, code development reaches a specific milestone, such as the completion of the development of a certain module; 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.
[0051] 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.
[0052] It should be noted that the target delay risk assessment neural network model includes a timing feature extraction layer, a self-attention layer and a projection conversion layer. The non-time feature vector is used to characterize the inherent attribute information corresponding to the software system to be evaluated, and the inherent attribute information is information that does not change with the development process of the software system.
[0053] It is understandable that the embodiments of the present application obtain the evaluation result of whether there is a delay risk in the software system development by considering the features and non-timing features corresponding to different development events. On the one hand, the delay risk can be evaluated at any stage of the software system development process, and on the other hand, the accuracy of the delay evaluation results for the software system development project can be improved. In other words, some embodiments of the present application obtain the features that reflect the timing events by extracting features from the original timing information, and based on this, the accuracy of the delay risk is improved.
[0054] The following is an example of Figure 2 The implementation process of each step.
[0055] For example, in some embodiments of the present application, S101 exemplarily includes: The first step is to obtain multiple types of information to be quantified corresponding to each time series event. It can be understood that the multiple types of information to be quantified are the attributes of the time series event.
[0056] It should be noted that the multiple categories 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 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 the event is recorded.
[0057] In the second step, the multiple types of information to be quantified are divided into: numerical data, type data and text type data, and each type of data obtained by the division is quantified separately to obtain vector data that can be recognized and read by the computer.
[0058] 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.
[0059] 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.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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.
[0064] 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.
[0065] For example, in some embodiments of the present application, the acquisition of multiple categories of information to be quantified corresponding to each time series event also 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, wherein the field names include at least one of project names, project personnel names, and company names; desensitizing the sensitive information in the development event source data to obtain project record metadata; if it is verified that no sensitive information exists in the project record metadata, then obtaining the multiple categories of information to be quantified according to the project record metadata. It can be understood that some embodiments of the present application can better protect privacy information by desensitizing the acquired development event source data.
[0066] It is understandable that, since some implementations of this application perform desensitization processing on the development event source data, in some embodiments of this 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 not understandable that the embodiments of this application use the department identification to represent the initiating part to improve the security of the privacy information corresponding to this type of information data.
[0067] As described above, in order to improve the accuracy of the prediction of the delay of the development project of the software system, the embodiment of the present application not only obtains the event vector but also obtains the time-invariant information of the software system to be evaluated to obtain the non-time series feature.
[0068] For example, in some embodiments of the present application, the non-time series feature vector is used to characterize the following attributes that do not change with time: the size of the development team, the size of the development budget, the development plan duration, the development workload, the number of development collaborators, and the complexity of the development technology; the non-time series feature vector is obtained by quantizing the information corresponding to the attributes that do not change with time according to the quantization principles of numerical data and type data. For example, for the inherent attributes belonging to numerical data (that is, the inherent attributes are characterized by numerical values), the data corresponding to the corresponding inherent attributes can be directly written into the dimension of the non-time series feature vector, and for the inherent attributes belonging to type data (that is, the inherent attributes are distinguished by multiple categories), the above-mentioned process of quantizing multiple types of information to be quantified can be referred to for quantization. It is not difficult to understand that some embodiments of the present application provide the types of attribute information that do not change with time and provide a method for quantizing this information to obtain a non-time series feature vector. By defining the attribute data corresponding to the non-time series feature, the accuracy of the subsequent assessment of the risk of delay of the software development project based on the vector can be improved.
[0069] The target delay risk assessment neural network model involved in S102 is exemplarily described below.
[0070] The target delay risk assessment neural network model described in S102 of the embodiment of the present application is obtained by parameter training 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 (its architecture can be referred to Figure 3 The target delay risk assessment neural network model shown in the figure) both include: a temporal feature extraction layer, a self-attention layer, and a projection transformation layer.
[0071] The self-attention layer (Self-Attention Layer) of some embodiments of the present application is configured to capture the dependencies and importance between the various parts of the input data. It can redistribute the 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 of the embodiment of the present application include at least: 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 understand the global information in the data more comprehensively. Second, improve parallel processing capabilities: The self-attention mechanism allows parallel computing, unlike RNN, which needs to process each time step in the sequence step by step, thereby significantly improving computational efficiency, especially when processing long sequences. Third, enhance feature representation: Through the self-attention mechanism, the input features can be dynamically weighted, which helps the model to more accurately identify important information and ignore irrelevant information, and improve the accuracy of feature representation.
[0072] The projection transformation layer (Projection Layer) of 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 generally includes linear transformation and activation function, which is intended to adjust the feature dimension and extract higher-level features. For example, in some embodiments of the present application, the functions of this layer include at least: First, feature space transformation: the projection transformation layer projects the input features to a new feature space through linear transformation (usually matrix multiplication). This process can extract and combine higher-level features, which helps to improve the expressiveness and generalization ability of the model. Second, nonlinear enhancement: In the projection transformation process, nonlinear activation functions (such as ReLU, tanh, etc.) are usually added, which enables the model to capture the complex nonlinear relationship between the input features and enhance the flexibility and adaptability of the model. Third, dimensionality reduction and compression: the projection transformation layer can also be used to reduce the dimensionality and compress the input features, reduce the computational complexity and memory usage, and improve the computational efficiency of the model.
[0073] It should be noted that, in some embodiments of the present application, the temporal feature extraction layer includes multiple 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 temporal relationship between time-related events. The embodiment of the present application uses the GRU unit of the 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.
[0074] In order to better mine time series features, in some embodiments, the GRU unit determines the target hidden state vector by the following algorithm:
[0075] Among them, the For the update gate, the Used to represent the current hidden state vector, For representing the target hidden state vector, the update gate Used to represent the current hidden state vector The extent to which the target hidden state vector is preserved , the target hidden state vector is used to represent the hidden state of the next time step, ⊙ represents element multiplication, represents a candidate hidden state vector, which is a vector corresponding to the event vector A quantity related to the current hidden state vector. The embodiments of the present application can accurately capture long-term patterns and short-term changes in time series data through an algorithm for obtaining intermediate hidden states, providing a richer and more robust feature representation for subsequent prediction and classification tasks. It should be noted that the update gate is part of the model composition and is actually a vector structure. The function of the update gate is: when this vector is calculated with the hidden state vector, it indicates which of the hidden states need to be retained and which need to be updated.
[0076] It should be noted that in some embodiments of the present application: Event vector input: input vector The event vector representing the current time step contains the event information that occurred in the system at the current moment. These event vectors reflect specific events in the software project.
[0077] Hidden state at the previous moment: hidden state vector Represents the memory state of the previous time step, which contains all historical information up to the previous moment.
[0078] Update gate calculation: Weight Matrix and : Through two weight matrices and The hidden state of the previous moment and the event vector of the current time step Perform a linear transformation.
[0079] Bias :Add the bias term .
[0080] Activation function: Through a sigmoid activation function σ, the result of the above linear transformation is converted into an update gate The sigmoid function limits the result to between 0 and 1, indicating the degree of switching of the update gate.
[0081] Status Update: Update Gate The output of determines how much of the current hidden state comes from the hidden state at the previous moment, and how much needs to be updated by the event vector of the current time step. Specifically, if If a 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 used.
[0082] For example, in some embodiments of the present application, the candidate hidden state vector is determined by the following formula:
[0083] 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. t The formula is as follows:
[0084] r t This vector is calculated using the trained model parameters and previous data, and is used to control the degree of memory of historical information. The specific meanings of the relevant parameters in the formula can be found in the description below, and will not be elaborated on here to avoid repetition.
[0085] The embodiments of the present application can accurately capture long-term patterns and short-term changes in time series data through an algorithm for determining candidate hidden state vectors, thereby providing a richer and more robust feature representation for subsequent prediction and classification tasks.
[0086] Combine the following Figure 3 The provided architecture exemplifies a method for evaluating software system development delays in some embodiments of the present application.
[0087] It should be noted that through Figure 3 Before exemplarily describing the method for evaluating software system development delay according to some embodiments of the present application, the inventive concept of the embodiments of the present application will first be described exemplarily.
[0088] The embodiment of the present application proposes a method for predicting the delay of the project engineering period of a software system. The method can automatically obtain the project engineering log (corresponding to Figure 3 The event source data of the software project can be used to extract event information (the event information corresponds to the event type, initiating department, software component, filler, development stage, timestamp and event text of the event vector, and the specific meaning can be referred to the description below), and predict whether the project has a delay risk based on this information. When it is determined that there is a delay risk, an early warning signal can be generated. The embodiment 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 delay risk prediction of the embodiment of the present application is defined as follows: Some embodiments of the present application symbolize time series events x and non-time series events s, and provide relevant calculation formulas. For example, assuming that the potential risk Y of the development project corresponding to the software system is represented as: , there are different risks of delay in the total m. By collecting the logs of the software system to be evaluated, various time series events that occur can be automatically recorded, or the developers can record various time series events through project progress management and other methods. These time series events constitute different events in the development process of the software system to be evaluated (for example, Figure 3 The example shows the process from x0, x1, to x n There are n timing events in total, where n is an integer greater than 1), and each timing event can be expressed as follows sequence (This sequence is represented by an event vector), in some embodiments of the present application, each e i They correspond to one of the “event type, initiating department, software component, filler, development stage, timestamp, event text” respectively, and the corresponding t value is 7. At the same time, it is assumed that the factors in the development project of the software system to be evaluated do not change over time. (This factor is characterized by non-time series characteristics) As an example, each factor corresponds to one of the "development team size, development budget size, development plan duration, development workload, number of development collaborators, and development technology complexity". Therefore, the prediction task of the delay risk of the development project of the software system in the embodiment of the present application is It is expressed as:
[0089] in, It indicates that there is no risk of delay in the software system to be evaluated.
[0090] Combine the following Figure 3 The core concept of the above task algorithm exemplifies the method for evaluating software system development delay provided by some embodiments of the present application, which exemplarily includes: The first step is to obtain the event source data and perform desensitization preprocessing on the event source data, that is, to desensitize the source data of the time series event.
[0091] It is understandable that some embodiments of the present application protect data privacy and security by desensitizing the source data of a series of development events (or time series events) in a software system (including the software system to be evaluated or the software system included in the training data) project, where the data fields are screened according to the log of the project and input into Figure 3 Desensitization preprocessing module.
[0092] For example, in some embodiments of the present application, Figure 3 The desensitization preprocessing module is configured to perform desensitization on the event source data to protect user privacy and ensure data security. For example, the desensitization process 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 the project content, such as project name, project personnel name, company name, etc., is sensitive information; applying desensitization rules to process the sensitive data in the event source data, remove sensitive information items, and only retain project record metadata; the processed data needs to be verified again to ensure that sensitive information has been completely removed while maintaining the validity and integrity of the data.
[0093] In the second step, the desensitized data obtained from the desensitization operation in the first step is quantized and the data after text preprocessing is quantized to obtain n event vectors x0, x1, until x n (correspond Figure 3 The event feature construction module and preprocessing, text preprocessing and subsequent feature splicing), each event vector is used to quantify 7 features corresponding to each time series event: event type, initiating department, software component, filler, development stage, timestamp, and event text.
[0094] Figure 3The event feature construction and preprocessing are used for data preprocessing and event feature construction. After the first step of desensitization, the semantic information of the text data (corresponding to the event text) needs to be extracted and converted into a semantic feature vector, and then concatenated with other numerical information (corresponding to the event type, initiating department, software component, filler, development stage and timestamp information) as the feature vector of a single event (i.e., 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, and 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.
[0095] That is to say, after the first step of data desensitization, some embodiments of the present application need to perform data preprocessing and event feature construction (exemplarily including: obtaining feature data to be quantified; quantifying each feature data to obtain event vectors of each event in the event source data) to convert it into a form that can be understood by the computer model.
[0096] For example, in some embodiments of the present application, the process of obtaining the data to be quantified and quantifying it exemplarily includes: 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, the corresponding vector will be [1,1,0,0,0]. Text data includes event text descriptions. The PV-DM (Distributed Memory Model of Paragraph Vectors) model is used to integrate and map different text information into a standardized multidimensional vector space for analysis. The PV-DM model is further developed based on the word2vec word vector model. It adds a paragraph vector (. ), whose mathematical form is similar to word vector ( ) is consistent, and can be likened to a special "word" in the text, The dimension of the word vector model encoding. During the model training phase, a fixed context length is set and a sliding window technique is used to generate training data. Paragraph vectors are shared in the context to complete the parameter learning of the PV-DM model. For example, the training goal of the model is to minimize the loss function L, which is based on the paragraph vector P and word vectors W To predict each word in a given context The loss function is calculated as shown in formula (3-1). In a given paragraph vector P and context word vector W In the case of w The probability of occurrence ( w Refers to the window size, w≥1 , usually a smaller value of 5 or 10). By optimizing the model parameters through stochastic gradient descent (SGD), the paragraph vector P can learn the features that express the main idea and semantics of the paragraph.
[0097] (3-1) In the inference phase of the model, for new paragraphs, the paragraph vector is iteratively updated using gradient ascent P , in order to maximize the logarithmic 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 resulting paragraph vector It can accurately capture and express the theme and semantics of new paragraphs, thus providing an effective text representation method for text analysis tasks.
[0098] (3-2) The events in the source data are converted into event vectors expressed in vector form using formula 3-2, expressed as ( ).
[0099] As an example of the present application, the dimensions of the corresponding event vector include 5 dimensions of event type, 13 dimensions of initiating department, 5 dimensions of software component, 133 dimensions of filler (employees in the same position are regarded as one person), 4 dimensions of development stage, 1 dimension of timestamp and 100 dimensions of text expression, totaling 261 dimensions. That is to say, in some embodiments of the present application, Figure 3 Each event vector x is a vector of 261.
[0100] In the third step, a delay risk assessment result is obtained according to the target delay risk assessment neural network model 300, and the model obtains a delay risk prediction result based on the following first sub-step and second sub-step.
[0101] The first sub-step is to use Figure 3 The temporal feature extraction layer performs temporal feature information processing, which is done by Figure 3 The temporal feature extraction layer 310 is processed. As described above, the temporal feature extraction layer includes multiple GRU units, and the input of each GRU unit is an event vector x, and the output is a hidden state vector h.
[0102] The following is an exemplary description of the algorithm for obtaining the target hidden state vector h disclosed in some embodiments of the present application. t The algorithm is as follows.
[0103] Define the event window and feature data. Determined characteristic data ; Input signal ( ) is input into each unit in order and then transmitted to the next layer (the hidden state at each time step is represented as ) and transmit it to the next unit in parallel, so that the signal output of the previous state can provide additional information for the processing of the signal of the next state. In view of the problems of gradient vanishing and gradient exploding in RNN, the embodiment of the present application adopts gated recurrent unit as the core component of recurrent neural network to realize the temporal relationship mining between two inputs with a long distance, and solves the gradient vanishing problem of traditional RNN by introducing update gate and reset gate to learn long-term dependencies. Using update gate ( ) and the reset gate ( ) is processed as shown in (3-3) and (3-4). Update gate Indicates the current hidden state To what extent the hidden state is retained to the next time step middle( ). Reset the gate Indicates the current input To what extent is it consistent with the previous hidden state Combined with ( ).in, express sigmoid The activation function maps the input to a value between 0 and 1, which is suitable for the calculation of gating because gating is probabilistic and determines the degree of information passing. and are the weight matrices corresponding to the input to the hidden state of the update gate and the reset gate, respectively ( , ,d Enter the number of samples, h is the number of hidden units). and is the weight matrix from hidden state to hidden state corresponding to update gate and reset gate ( , ). and is the corresponding bias parameter ( , ). is the time step t-1 The hidden state of is at the time step t Input.
[0104] (3-3) (3-4) The update gate determines how much previous information should be retained in the current state, and the reset gate determines how much previous information should be retained in the current state. Determine how much previous information should be ignored in the current state, and combine the reset gate to obtain the candidate hidden state of the current time step as shown in formula (3-5). Combine the update gate and the candidate hidden state to generate the final hidden state, as shown in formula (3-6). tanh represents the hyperbolic tangent activation function, and ⊙ represents element-wise multiplication. In this way, the scheme is able to process the current input At the same time, according to the update gate Selectively retain or forget the previous state information by the reset gate Controls the degree of memory for previous information. represents the candidate hidden state ( , n is the number of samples, h is the number of hidden units), represents the hidden state. W is the weight matrix, .
[0105] (3-5) (3-6) 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 richer and more robust feature representations for subsequent prediction and classification tasks.
[0106] The second sub-step is to use Figure 3 The self-attention layer obtains the contextual features, scales the dot product attention temporal features, and integrates them with the non-temporal features.
[0107] Some embodiments of the present application use context feature scaling dot product attention temporal features and non-temporal fusion technology, and use the scaling dot product attention mechanism to further process the temporal feature vector (i.e. Figure 3 Each h i ), and construct a fully connected network decoding component that fuses time series and non-time series features to form warning outputs of the impact of three types of log events on the construction period: "high, medium, and low". It can be understood that the accuracy of model prediction is improved by fusing context features and time series features in the embodiments of the present application.
[0108] For example, some embodiments of the present application introduce a scaled dot product attention mechanism through a self-attention layer to enhance the signal screening and processing capabilities in a recurrent neural network (RNN) layer. This mechanism allows the model to dynamically allocate attention between different parts of a 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, which 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 computational complexity, because there is no need to perform complex cyclic calculations on the entire sequence, but instead focus directly on important information through attention weights.
[0109] In some embodiments of the present application, the scaled dot product attention calculation includes the following steps: The steps are: (1) Dot product similarity calculation: The first step of the attention mechanism involves the input query vector With each potential input value vector A dot product operation is performed to calculate a similarity score for each query-value pair using the following formula (4-1).
[0110]
[0111] (2) Weight allocation: Next, use the Softmax function to transform these similarity scores to generate a set of weights. This set of weights is normalized on all input values so that their sum is equal to 1, thereby simulating a probability distribution. The calculation formula is as shown in Formula (4-2).
[0112]
[0113] (3) Weighted summation: The last step is to sum each input value The corresponding weight Multiply them together and sum all the products to get a single output, which represents the weighted aggregate representation of the input value after considering the query context. The calculation formula is as shown in formula (4-3).
[0114]
[0115] For example, some embodiments of the present application concatenate the temporal features after filtering the input vector through the self-attention layer with the non-temporal features. As mentioned above, the non-temporal features of some embodiments of the present application include: the size of the development team, the size of the development budget, the development plan duration, the development workload (or called thousands of lines of code), the number of development collaborators, and the complexity of the development technology. The size of the development team refers to the approximate number of people 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 size of the development budget refers to the budget amount of the project, reflecting the workload and difficulty of the project, and is divided into very low budget (less than RMB 100,000), low budget (RMB 100,000-500,000), medium budget (RMB 500,000-1 million) and high budget (more than RMB 1 million); the development plan duration reflects the workload and urgency of the project, and is counted in natural months; thousands of lines of code directly reflect the workload of the project; the number of development collaborators, when the project has subcontracting or collaborative relationships, the success of the project is determined by itself and the collaborators. When the number of development collaborators increases and communication becomes difficult, the risk of the project will also increase; the technical complexity of development refers to the difficulty of the project, which is divided into categories from 1 (low complexity) to 5 (high complexity). These six non-time series features are quantized according to the aforementioned numerical data and category data to form vectors, and the non-time series feature vectors are cascaded with the attention signals constructed according to the event vectors in the previous text.
[0116] Some embodiments of the present application combine the non-time series feature vector with the attention weighted signal generated in the previous step, and then use the 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 acting on the subsequent part of the network through an activation function, as shown in formula (3-7). In order 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 some neurons during the training process (i.e. set their outputs to zero), thereby reducing the model's dependence on certain features and forcing the neural network to learn in a wider feature space. ) , which is achieved by randomly "discarding" (setting to zero) a portion of the network signal. 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. b Add a constant to the output of the weight matrix to provide the ability to translate, b The dimension is n。
[0117] (3-7) Two sequential fully connected layers are used, and the first fully connected layer is followed by dropout Operation. In the final output stage of the model, after a sigmoid The signal processed by the function is used to generate the prediction result. Depending on the specific requirements of the experimental task, the design of the output layer can be in two forms. On the one hand, when the task is defined as a binary classification problem to evaluate whether a risk exists or not, the output layer is simplified to a single value, representing the model's prediction of whether the risk exists (1) or does not exist (0). In this case, the loss function Loss It can be expressed as shown in formula (3-8). is the sample label. If the sample is a positive example (there is a risk), the value is 1, otherwise the value is 0. is the probability that the model predicts that the sample is a positive example.
[0118] (3-8) On the other hand, when the task involves multi-label classification, that is, one sample may correspond to multiple risk types, the output layer and loss function need to be adjusted accordingly to adapt to the characteristics of multi-label. In this case, the expression of the loss function needs to consider multiple labels. Loss 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.
[0119] (3-9) 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 conversion layer, any result among no risk, schedule risk, performance risk or functional risk can be output.
[0120] 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.
[0121] 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.
[0122] 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.
[0123] 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.
[0124] Some embodiments of the present application provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, can implement the method described in any of the embodiments of the method for evaluating software system development delay.
[0125] like Figure 5 As shown, some embodiments of the present application provide an electronic device 500, including a memory 510, a processor 520, and a computer program stored in the memory 510 and executable on the processor 520, wherein the processor 520 can implement the method described in any embodiment of the method for evaluating software system development delay when reading the program through a bus 530 and executing the program.
[0126] Processor 520 can process digital signals and can include various computing structures, such as complex instruction set computer structure, reduced instruction set computer structure, or a structure that implements a combination of multiple instruction sets. In some examples, processor 520 can be a microprocessor.
[0127] The memory 510 may be used to store instructions executed by the processor 520 or data related to the execution of instructions. These instructions and / or data may include code to implement some or all functions of one or more modules described in the embodiments of the present application. The processor 520 of the present disclosure embodiment may be used to execute the instructions in the memory 510 to implement Figure 2 The memory 510 includes a dynamic random access memory, a static random access memory, a flash memory, an optical memory or other memory known to those skilled in the art.
[0128] Some embodiments of the present application provide a computer program product, which includes a computer program. When the computer program is executed by a processor, it implements the method described in any embodiment of the method for evaluating software system development delay.
[0129] In several embodiments provided in 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 schematic. For example, the flowcharts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the devices, methods and computer program products according to multiple embodiments of the present application. In this regard, each box in the flowchart or block diagram can represent a module, a program segment or a part of a code, and the module, a program segment or a part of a 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 box can also occur in a different order from the order marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and the combination of boxes in the block diagram and / or flowchart can be implemented with a dedicated hardware-based system that performs a specified function or action, or can be implemented with a combination of dedicated hardware and computer instructions.
[0130] In addition, the functional modules in the various embodiments of the present application may be integrated together to form an independent part, or each module may exist separately, or two or more modules may be integrated to form an independent part.
[0131] If the function is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application can be essentially or partly embodied in the form of a software product that contributes to the prior art. The computer software product is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, server, or network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk, and other media that can store program codes.
[0132] The above description is only an embodiment of the present application and is not intended to limit the scope of protection of the present application. For those skilled in the art, the present application may have various changes and variations. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application should be included in the scope of protection of the present application. It should be noted that similar reference numerals and letters represent similar items in the following drawings, so once an item is defined in one drawing, it does not need to be further defined and explained in the subsequent drawings.
[0133] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
[0134] It should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or device including the elements.
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; The multiple event vectors and the non-temporal feature vectors corresponding to the software system to be evaluated are input 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 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.
2. The method according to claim 1, characterized in that 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; If the event text is confirmed as text type data, different text information in the text type data is integrated and mapped into a standardized multi-dimensional vector space to obtain a text vector, and the text vector is written into the event text dimension of the event vector corresponding to the time series event.
3. The method according to claim 2, 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.
4. The method according to claim 2, 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.
5. The method according to claim 2, 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.
6. The method according to any one of claims 1 or 2, characterized in that: 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.
7. The method according to claim 6, characterized in that 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 The quantity corresponding to the current hidden state vector.
8. The method according to claim 7, characterized in that 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.
9. 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 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.
10. 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 8 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
Method and device for evaluating anti-damage capability of aircraft
CN116720311A
Multi-modal clinical risk prediction method and system based on sampling time interval
CN117457209A
Target detection method based on pyramid pooling graph neural network
CN118196393A