CN116303026B - Evolution history-based software architecture degradation prediction method, device and equipment - Google Patents

Evolution history-based software architecture degradation prediction method, device and equipment Download PDF

Info

Publication number
CN116303026B
CN116303026B CN202310271213.7A CN202310271213A CN116303026B CN 116303026 B CN116303026 B CN 116303026B CN 202310271213 A CN202310271213 A CN 202310271213A CN 116303026 B CN116303026 B CN 116303026B
Authority
CN
China
Prior art keywords
evolution
software architecture
calculating
quality
history
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310271213.7A
Other languages
Chinese (zh)
Other versions
CN116303026A (en
Inventor
王桐
陈业斌
李雪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui University of Technology AHUT
Original Assignee
Anhui University of Technology AHUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anhui University of Technology AHUT filed Critical Anhui University of Technology AHUT
Priority to CN202310271213.7A priority Critical patent/CN116303026B/en
Publication of CN116303026A publication Critical patent/CN116303026A/en
Application granted granted Critical
Publication of CN116303026B publication Critical patent/CN116303026B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

The invention relates to the technical field of software measurement and evaluation, in particular to a software architecture degradation prediction method, device and equipment based on evolution history, wherein the method comprises the following steps: extracting evolution operation executed by each evolution of a software architecture based on evolution history, and recording the type and the number of the evolution operation according to the function classification of the evolution operation in evolution; calculating quality attributes of the software architecture before and after evolution and calculating the degree of decomposition of the software architecture based on the quality attributes; constructing a degradation prediction model based on the evolution operation, the quality attribute and the degradation degree; extracting information of a pre-development software architecture, wherein the information comprises evolution operation and quality attribute of the pre-development architecture; calculating the degree of decay of the pre-modeling architecture based on the decay prediction model and the information. According to the method, the decay of the software architecture is predicted from the characteristics, the quality and the evolution scheme of the software architecture, so that the prediction result has higher pertinence, intuitiveness and accuracy.

Description

Evolution history-based software architecture degradation prediction method, device and equipment
Technical Field
The invention relates to the technical field of software measurement and evaluation, in particular to a software architecture degradation prediction method, device and equipment based on evolution history.
Background
The software architecture is an important component of software. When the software architecture is corrupted, it can have negative effects that reduce the quality, performance, etc. of the software. Therefore, before the evolution of the software architecture, the method predicts whether the current evolution scheme can cause the corruption of the software architecture based on the evolution history data of the software architecture, and has important significance for avoiding the corruption of the software architecture and saving the evolution cost. However, there is no technical solution in the industry that can effectively predict the corruption of the software architecture.
In view of this, the present invention provides a software architecture degradation prediction method based on evolution history.
Disclosure of Invention
The invention aims to provide a software architecture decomposition prediction method, device and equipment based on evolution history, which are used for solving the problem that a software architecture decomposition prediction method is lack in the prior art so as to achieve the technical effect of effectively and accurately predicting the software architecture decomposition degree.
In order to achieve the above object, the present invention provides the following solutions:
in a first aspect of the present application, a method for predicting software architecture corruption based on evolution history is provided, including the following steps:
extracting evolution operation executed by each evolution of the software architecture based on the evolution history; wherein the evolution history has a plurality of versions and has differences between versions;
recording the type and the number of the evolution operation according to the function classification of the evolution operation in evolution; wherein the type of evolution operation includes at least one of adding new functionality, promoting existing functionality, and repairing a failure;
respectively calculating quality attributes of the software architecture before evolution and after evolution;
calculating the degree of decay of the software architecture based on the quality attributes before evolution and after evolution;
constructing a decomposition prediction model based on the classified evolution operation, the quality attribute and the decomposition degree; wherein the decay prediction model is a multiple regression equation describing that the degree of decay is dependent on the evolution operation and the quality attribute;
extracting information of a pre-development software architecture, wherein the information comprises evolution operation and quality attribute of the pre-development architecture;
calculating the degree of decay of the pre-modeling architecture based on the decay prediction model and the information.
Further, the quality attribute includes at least one of understandability, modifiable and testability.
Further, the calculating the quality attribute of the software architecture before evolution and after evolution respectively includes:
calculating the understandability of the software architecture:
where U represents the understandability of the current software architecture, n represents the number of components in the current software architecture, C i Representing the ith component, C, in the current software architecture j Represents the jth component, f (C i ,C j ) Represent C i And C j When C is the calling relation of i Call C j F (C) i ,C j ) Has a value of 1, otherwise f (C i ,C j ) The value of (a) is 0, and the symbol ∈ represents the calling relation;
calculating the easy modification of the software architecture:
wherein M represents the easy modification of the current software architecture, n represents the number of components in the current software architecture, and C i Represents the ith component, g (C i ) Represent C i Calling depth at component layer;
calculating testability of the software architecture:
wherein T represents testability of the current software architecture, n represents the number of components in the current software architecture, and C i Represents the ith component, h (C i ) Represent C i Whether a drive module is required, if so, h (C i ) Has a value of 1, otherwise h (C i ) The value of (2) is 0;
and calculating and obtaining the measurement values of easy comprehensibility, easy testability and easy modification of the software architecture before evolution and after evolution respectively based on the three calculation formulas.
Further, the calculating the degree of corruption of the software architecture based on the evolution operation includes:
the degree of decay ED (a, b) was calculated according to the following formula:
wherein a represents a pre-evolution software architecture, b represents a post-evolution software architecture, ED (a, b) represents an average value of differences of respective quality attributes of a and b, N is a set of quality attributes of the software architecture, N is the number of elements contained in N, N i_a Is the metric value of the ith quality attribute of a, N i_b Is the metric value of the ith quality attribute of b
Further, the constructing a degradation prediction model based on the evolution operation, the quality attribute, and the degradation degree includes:
calculating weights of the evolution operation, the quality attribute and the degree of decomposition;
constructing a decay prediction model based on the evolution operation, the quality attribute and the weight of the decay degree:
E=w 1 *U+w 2 *M+w 3 *T+w 4 *A+w 5 *I+w 6 *F+C
wherein E represents the software architecture decomposition degree, w 1 Weights indicating easy understanding, w 2 Represents the weight of the easy-to-repair modification, w 3 Weights, w, representing testability 4 Indicating the weight of the new function, w 5 Representing weights to promote existing functions, w 6 Representing the weight to repair the fault, C represents a constant.
Further, the software architecture is represented in the form of a component dependency graph.
Further, the number of versions of the evolution history is not less than 9.
In a second aspect of the present application, a software architecture degradation prediction apparatus based on evolution history is provided, including:
the extraction module is used for extracting evolution operation executed by each evolution of the software architecture based on the evolution history; wherein the evolution history has a plurality of versions and has differences between versions;
the recording module is used for recording the types and the quantity of the evolution operation according to the function classification of the evolution operation in the evolution; wherein the type of evolution operation includes at least one of adding new functionality, promoting existing functionality, and repairing a failure;
the first calculation module is used for calculating the quality attribute of the software architecture before evolution and after evolution respectively;
the second calculation module is used for calculating the degree of decay of the software architecture based on the quality attributes before evolution and after evolution;
the model construction module is used for constructing a decomposition prediction model based on the classified evolution operation, the classified quality attribute and the classified decomposition degree; wherein the decay prediction model is a multiple regression equation describing that the degree of decay is dependent on the evolution operation and the quality attribute;
the extraction module is used for extracting information of a pre-development software architecture, wherein the information comprises evolution operation and quality attribute of the pre-development architecture;
and a third calculation module for calculating the degree of decay of the pre-development architecture based on the decay prediction model and the information.
In a third aspect of the present application, there is also provided an electronic device, including:
at least one processor;
a memory communicatively coupled to the at least one processor;
wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of the first aspect of the present application.
In a fourth aspect of the present application, there is provided a non-transitory computer readable storage medium storing computer instructions for causing a computer to perform the method of the first aspect of the present application.
The beneficial effects are that:
1. according to the technical scheme, the method, the device and the equipment for predicting the software architecture degradation based on the evolution history are provided, and the corrosion of the software architecture is predicted from the perspective of the software architecture, so that the prediction result has higher pertinence;
2. according to the invention, the degree of degradation of the software architecture is measured based on the quality of the software architecture, so that the result of predicting the degree of degradation has better intuitiveness;
3. according to the method, the degree of decomposition of the software architecture is predicted based on the evolution operation of the software architecture, and the parameters of the decomposition prediction model comprise a plurality of factors influencing the evolution effect of the software architecture so as to reduce prediction errors and improve the accuracy of a prediction result.
It should be understood that all combinations of the foregoing concepts, as well as additional concepts described in more detail below, may be considered a part of the inventive subject matter of the present disclosure as long as such concepts are not mutually inconsistent.
The foregoing and other aspects, embodiments, and features of the present teachings will be more fully understood from the following description, taken together with the accompanying drawings. Other additional aspects of the invention, such as features and/or advantages of the exemplary embodiments, will be apparent from the description which follows, or may be learned by practice of the embodiments according to the teachings of the invention.
Drawings
The drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures may be represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing. Embodiments of various aspects of the invention will now be described, by way of example, with reference to the accompanying drawings, in which:
FIG. 1 is a schematic flow chart of a method in an embodiment of the present application.
Detailed Description
In order to make the purpose and technical solution of the embodiments of the present invention more clear, the technical solution of the present invention will be clearly and completely described below in connection with the embodiments of the present invention. It will be apparent that the described embodiments are some, but not all, embodiments of the invention. All other embodiments, which can be made by a person skilled in the art without creative efforts, based on the described embodiments of the present invention fall within the protection scope of the present invention.
It will be understood by those skilled in the art that, unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the prior art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
After a period of operation of a software product, the project scale is generally increased continuously, the code library is disordered, errors are accumulated and the like due to the adjustment of requirements and the change of developers, and finally, the software structure is decomposed, and the degree of the decomposition is gradually difficult to control and maintain.
For the phenomenon that easily occurs in the running process of the software product, the existing means generally reconstruct the architecture locally or globally, but the reconstruction means a great deal of investment of manpower and material resources. Therefore, before the evolution of the software architecture, the method predicts whether the current evolution scheme can cause the corruption of the software architecture based on the evolution history data of the software architecture, and has important significance for avoiding the corruption of the software architecture and saving the evolution cost. However, in the present stage, the research on the part is deficient, and the method capable of accurately predicting the software architecture degradation degree is still deficient, and the specific situations are as follows:
(1) Methods to predict software architecture corruption are lacking. The software architecture is a high-level abstraction of the source code, so that the software architecture is greatly different from the software source code in terms of quality measurement, degradation analysis, cost estimation and the like, and the degradation of the software architecture needs to be estimated based on the characteristics of the software architecture;
(2) There is a lack of methods to correlate software architecture quality with software architecture corruption. A measure of software architecture corruption is whether the quality of the software architecture has degraded after evolution of the software architecture, however, methods for correlating software architecture quality with software architecture corruption are currently lacking;
(3) Methods to associate evolution schemes with software architecture corruption are lacking. Whether or not the software architecture is corrupted depends on which evolution operations are performed in the evolution process, however, there is currently a lack of methods to associate evolution schemes with software architecture corruption.
Based on the current situation, the embodiment of the invention starts from the characteristics, quality and evolution scheme of the software architecture, and when the prediction model is built, a plurality of factors influencing the evolution effect of the software architecture are listed as parameters of the prediction model, so that the reliability of the model is improved, and the more accurate result can be provided when the degree of decay of the software architecture is specifically checked.
The embodiment of the invention provides a software architecture degradation prediction method, device and equipment based on evolution history, which are respectively described below.
Referring to fig. 1, a flow chart of a software architecture degradation prediction method based on evolution history according to an embodiment of the present invention is shown, and the method includes the following steps:
step 101, extracting evolution operation executed by each evolution of the software architecture based on evolution history; wherein the evolution history has a plurality of versions and has a difference between versions.
102, recording the type and the number of the evolution operation according to the function classification of the evolution operation in evolution; wherein the type of evolution operation includes at least one of adding new functionality, promoting existing functionality, and repairing a failure.
And 103, calculating quality attributes of the software architecture before evolution and after evolution respectively.
Step 104, calculating the degree of decay of the software architecture based on the quality attributes before evolution and after evolution.
Step 105, constructing a degradation prediction model based on the classified evolution operation, the quality attribute and the degradation degree; wherein the decay prediction model is a multiple regression equation describing that the degree of decay is dependent on the evolution operation and the quality attribute.
Step 106, extracting information of the pre-development software architecture; wherein the information includes evolution operations and quality attributes of the pre-evolution architecture.
And 107, calculating the degree of decay of the pre-modeling framework based on the decay prediction model and the information.
For convenience of description, this embodiment is exemplified by the following 9 versions of evolution history in table 1, and in some embodiments, the number of versions of evolution history in step 101 is not limited to 9, and the minimum sample size is not less than 9 to ensure accuracy of the calculation model. That is, the number of versions of the evolution history used in step S101 is not less than 9, and in the implementation, the number of version statistics samples of the evolution history may be increased to further improve the prediction accuracy of the later-built decay prediction model based on the evolution history.
The number information of various evolution operations in the evolution histories of the 9 versions is shown in the following table 1:
TABLE 1 quantity information of various evolution operations
In certain embodiments, the quality attribute in the step 103 comprises at least one of understandability, modifiable and testability.
In order to improve the calculation accuracy of the degree of degradation and further ensure the accuracy of the prediction result, in this embodiment, the quality attribute includes three kinds of understandability, modifiable property and testability, and the software architecture before and after the three kinds of evolution is calculated includes the following steps:
calculating the understandability of the software architecture:
wherein U represents the currentEasy understanding of software architecture, n represents the number of components in the current software architecture, C i Representing the ith component, C, in the current software architecture j Represents the jth component, f (C i ,C j ) Represent C i And C j When C is the calling relation of i Call C j F (C) i ,C j ) Has a value of 1, otherwise f (C i ,C j ) The value of (2) is 0, and the symbol ∈ indicates the calling relationship.
Calculating the easy modification of the software architecture:
wherein M represents the easy modification of the current software architecture, n represents the number of components in the current software architecture, and C i Represents the ith component, g (C i ) Represent C i Call depth at component level.
Calculating testability of the software architecture:
wherein T represents testability of the current software architecture, n represents the number of components in the current software architecture, and C i Represents the ith component, h (C i ) Represent C i Whether a drive module is required, if so, h (C i ) Has a value of 1, otherwise h (C i ) The value of (2) is 0.
The above three quality attributes are calculated to obtain the quality attribute metrics of version 1 to version 9 in table 1, and the specific data are shown in table 2 below:
table 2 metrics of quality attributes
Easy understanding U Easy modification M Testability T
Version 1 0.61 0.8 0.51
Version 2 0.67 0.7 0.77
Version 3 0.55 1.05 0.59
Version 4 0.8 0.76 0.64
Version 5 0.7 0.86 0.59
Version 6 0.45 0.87 0.94
Version 7 0.5 0.88 0.71
Version 8 0.73 0.8 0.76
Version 9 0.54 0.64 0.61
In some embodiments, the step 104 specifically includes the following steps:
the degree of decay ED (a, b) was calculated according to the following formula:
wherein a represents a pre-evolution software architecture, b represents a post-evolution software architecture, ED (a, b) represents an average value of differences of respective quality attributes of a and b, N is a set of quality attributes of the software architecture, N is the number of elements contained in N, N i_a Is the metric value of the ith quality attribute of a, N i_b Is the metric value of the ith quality attribute of b.
Through the formula, the degree of decomposition of the software architecture can be calculated, when the degree of decomposition is less than or equal to 0, the software architecture does not generate decomposition phenomenon, and when the degree of decomposition is greater than 0, the software architecture is decomposed, and the higher the value is, the more serious the degree of decomposition is.
In this embodiment, the quality attributes of the 9 versions and the metric values calculated in step 103 are still used as parameters of the prediction model, and after the step 104, the software architecture degradation degrees corresponding to the versions 1 to 9 are calculated, and specific data are shown in the following table 3:
TABLE 3 software architecture corruption degree
Version 1 Version 2 Version 3 Version 4 Version 5 Version 6 Version 7 Version 8 Version 9
0.10631 0.20457 0.34007 0.21468 0.08808 0.13639 0.40116 0.52717 0.46724
In some embodiments, the step 105 specifically includes the following steps:
calculating weights of the evolution operation and the quality attribute based on the degree of degradation;
constructing a degradation prediction model based on the classified evolution operation, the weight of the quality attribute and the degradation degree:
E=w 1 *U+w 2 *M+w 3 *T+w 4 *A+w 5 *I+w 6 *F+C
as can be seen from the above equation, in this embodiment, the degradation prediction model is a six-element linear regression model describing that the degradation degree depends on the evolution operation and the quality attribute, and weights of the evolution operation and the quality attribute respectively correspond to regression coefficients in the equation. Wherein E represents the software architecture decomposition degree, w 1 Regression coefficient, w, representing easy understanding U 2 Regression coefficient, w, representing easy-to-repair modification M 3 Regression coefficient, w, representing testability T 4 Regression coefficient indicating addition of new function A, w 5 Representing regression coefficients, w, to promote existing function I 6 The regression coefficient representing the repair failure F, C represents a constant. It should be noted that the decay prediction model is not limited to the above-mentioned six-membered linear regression model, and the number of dependent variables represented by U, M and a and the like in the formula may be selected as required in practical implementation, that is, if p evolution operations and quality attributes are taken into account, the decay prediction model established correspondingly is a p-membered regression model.
In this embodiment, taking the evolution histories of the above 9 versions as an example, the evolution operation, the quality attribute and the data of the degradation degree obtained in the above steps 101 to 104 are combined, and each parameter value in the degradation prediction model is calculated, where specific data is shown in the following table 4:
table 4 values of various parameters in a software architecture corrosion prediction model
w 1 w 2 w 3 w 4 w 5 w 6 C
0.3276 0.3814 0.0443 -0.0224 -0.0812 -0.0520 0.2079
The decay prediction model was obtained from the data of table 4 above:
E=0.3276U+0.3814M+0.0443T-0.0224A-0.0812T-0.0520I+0.2079
in some embodiments, the step 106 is illustrated with a pre-evolved software architecture, and the information of the pre-evolved software architecture is shown in the following table 5:
table 5 information of pre-evolved software architecture
Easy understanding U Easy modification M Testability T Adding new function A Promote the existing function I Repair failure F
0.67 0.57 0.44 0 3 2
In some embodiments, taking the pre-development software architecture illustrated in step 106 and the information in table 5 thereof as an example, the degree of degradation of the pre-development software architecture is calculated based on the degradation prediction model obtained in step 105:
E=w 1 *U+w 2 *M+w 3 *T+w 4 *A+w 5 *I+w 6 *F+C
=0.3276*0.67+0.3814*0.57+0.0443*0.44-0.0224*0-0.0812*3-0.0520*2+0.2079=0.30736
as can be seen from the measurement result, the software architecture is decomposed according to 0.30736 predicted by the information of the current software architecture.
Based on the distributed program slicing method based on natural language processing, the embodiment of the invention also provides a distributed program slicing device based on natural language processing.
For example, a distributed program slicing method based on natural language processing may be divided into a plurality of modules, which are stored in a memory, and executed by a processor to accomplish the present invention. The modules or units may be a series of computer program instruction segments capable of performing specific functions for describing the execution of a distributed program slicing method based on natural language processing. For example, a recording module, an extracting module, etc., and specific functions of each module are as follows:
the recording module is used for extracting evolution operation executed by each evolution of the software architecture based on the evolution history, and recording the quantity of the evolution operation according to the function classification of the evolution operation in the evolution; wherein the evolution history has a plurality of versions and has differences between versions;
the first calculation module is used for calculating the quality attribute of the software architecture before evolution and after evolution respectively;
the second calculation module is used for calculating the degree of decay of the software architecture based on the quality attributes before evolution and after evolution;
the model construction module is used for constructing a decomposition prediction model based on the evolution operation, the quality attribute and the decomposition degree;
the extraction module is used for extracting information of a pre-development software architecture, wherein the information comprises evolution operation and quality attribute of the pre-development architecture;
and a third calculation module for calculating the degree of decay of the pre-development architecture based on the decay prediction model and the information.
Correspondingly, the embodiment of the invention also provides electronic equipment, which comprises:
at least one processor;
a memory communicatively coupled to the at least one processor;
wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of any one of the embodiments of the invention.
These computer programs may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks and/or block diagram block or blocks, and corresponding steps may be implemented in different modules.
The above-described programs may be run on a processor or may also be stored in memory (or referred to as computer-readable media), including both permanent and non-permanent, removable and non-removable media, and information storage may be implemented by any method or technique. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by a computing device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
Accordingly, the present invention also provides a non-transitory computer readable storage medium storing computer instructions for causing a computer to perform the method described in any of the embodiments of the present invention.
While the invention has been described with reference to preferred embodiments, it is not intended to be limiting. Those skilled in the art will appreciate that various modifications and adaptations can be made without departing from the spirit and scope of the present invention. Accordingly, the scope of the invention is defined by the appended claims.

Claims (6)

1. The evolution history-based software architecture degradation prediction method is characterized by comprising the following steps of:
extracting evolution operation executed by each evolution of the software architecture based on the evolution history; wherein the evolution history has a plurality of versions and has differences between versions;
recording the type and the number of the evolution operation according to the function classification of the evolution operation in evolution; wherein the type of evolution operation includes at least one of adding new functionality, promoting existing functionality, and repairing a failure;
the quality attributes of the software architecture before evolution and after evolution are calculated respectively, wherein the quality attributes comprise at least one of easy comprehensibility, easy modification and easy testability:
calculating an understandability in the quality attribute:
in the above formula, U represents the understandability of the current software architecture, n represents the number of components in the current software architecture, and C i Representing the ith component, C, in the current software architecture j Represents the jth component, f (C i ,C j ) Represent C i And C j When C is the calling relation of i Call C j F (C) i ,C j ) Has a value of 1, otherwise f (C i ,C j ) The value of (2) is 0;
calculating easy modification in the quality attribute:
in the above formula, M represents an easy-to-modify modification of the current software architecture, n represents the number of components in the current software architecture, and C i Represents the ith component, g (C i ) Represent C i Calling depth at component layer;
calculating testability in the quality attributes:
in the above formula, T represents testability of the current software architecture, n represents the number of components in the current software architecture, and C i Represents the ith component, h (C i ) Represent C i Whether a drive module is required, if so, h (C i ) Has a value of 1, otherwise h (C i ) The value of (2) is 0;
calculating the degree of degradation of the software architecture corresponding to an evolution history formed by a software architecture from a pre-evolution version to a post-evolution version based on the quality attributes before evolution and after evolution;
in the above formula, a represents a pre-evolution software architecture corresponding to an evolution history, b represents a post-evolution software architecture corresponding to the evolution history, wherein N is a set of quality attributes of the software architecture, N is the number of elements contained in N, and N i_a Is the metric value of the ith quality attribute of a, N i_b Is the metric value of the ith quality attribute of b;
constructing a degradation prediction model based on the classified evolution operation, the quality attribute and the degradation degree:
E=w 1 *U+w 2 *M+w 3 *T+w 4 *A+w 5 *I+w 6 *F+C
in the above description, E represents the software architecture decomposition degree, w 1 Weights indicating intelligibility U, w 2 Weights, w, representing easy-to-modify M 3 Weights, w, representing testability T 4 Indicating the addition of the weight of the new function A, w 5 Represents the weight of the lifting existing function I, w 6 Representing the weight of repairing the fault F, and C represents a constant;
extracting information of a pre-development software architecture; wherein the information includes evolution operations and quality attributes of the pre-evolved software architecture;
calculating the degree of decay of the pre-evolved software architecture based on the decay prediction model and the information.
2. The method of claim 1, wherein the software architecture is represented in the form of a component dependency graph.
3. The method of claim 1, wherein the evolution history has a number of versions of no less than 9.
4. The utility model provides a software architecture corruption prediction unit based on evolution history which characterized in that includes:
the extraction module is used for extracting evolution operation executed by each evolution of the software architecture based on the evolution history; wherein the evolution history has a plurality of versions and has differences between versions;
the recording module is used for recording the types and the quantity of the evolution operation according to the function classification of the evolution operation in the evolution; wherein the type of evolution operation includes at least one of adding new functionality, promoting existing functionality, and repairing a failure;
the first computing module is configured to compute quality attributes of the software architecture before evolution and after evolution, where the quality attributes include at least one of understandability, modifiable and testability:
calculating an understandability in the quality attribute:
in the above formula, U represents the understandability of the current software architecture, n represents the number of components in the current software architecture, and C i Representing the ith component, C, in the current software architecture j Represents the jth component, f (C i ,C j ) Represent C i And C j When C is the calling relation of i Call C j F (C) i ,C j ) Has a value of 1, otherwise f (C i ,C j ) The value of (2) is 0;
calculating easy modification in the quality attribute:
in the above formula, M represents an easy-to-modify modification of the current software architecture, n represents the number of components in the current software architecture, and C i Represents the ith component, g (C i ) Represent C i Calling depth at component layer;
calculating testability in the quality attributes:
in the above formula, T represents testability of the current software architecture, n represents the number of components in the current software architecture, and C i Represents the ith component, h (C i ) Represent C i Whether a drive module is required, if so, h (C i ) Has a value of 1, otherwise h (C i ) The value of (2) is 0;
the second calculation module is used for calculating the degree of degradation of the software architecture corresponding to the evolution history formed by the software architecture from the version before evolution to the version after evolution based on the quality attributes before evolution and after evolution:
in the above formula, a represents a pre-evolution software architecture corresponding to an evolution history, b represents a post-evolution software architecture corresponding to the evolution history, wherein N is a set of quality attributes of the software architecture, N is the number of elements contained in N, and N i_a Is the metric value of the ith quality attribute of a, N i_b Is the ith mass of bA measure of sex;
the model construction module is used for constructing a decomposition prediction model based on the classified evolution operation, the classified quality attribute and the classified decomposition degree:
E=w 1 *U+w 2 *M+w 3 *T+w 4 *A+w 5 *I+w 6 *F+C
in the above description, E represents the software architecture decomposition degree, w 1 Weights indicating intelligibility U, w 2 Weights, w, representing easy-to-modify M 3 Weights, w, representing testability T 4 Indicating the addition of the weight of the new function A, w 5 Represents the weight of the lifting existing function I, w 6 Representing the weight of repairing the fault F, and C represents a constant;
the extraction module is used for extracting information of the pre-developed software architecture, wherein the information comprises evolution operation and quality attribute of the pre-developed software architecture;
and the third calculation module is used for calculating the decomposition degree of the pre-development software architecture based on the decomposition prediction model and the information.
5. An electronic device, comprising:
at least one processor;
a memory communicatively coupled to the at least one processor;
wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of any one of claims 1 to 3.
6. A non-transitory computer readable storage medium storing computer instructions for causing the computer to perform the method of any one of claims 1 to 3.
CN202310271213.7A 2023-03-20 2023-03-20 Evolution history-based software architecture degradation prediction method, device and equipment Active CN116303026B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310271213.7A CN116303026B (en) 2023-03-20 2023-03-20 Evolution history-based software architecture degradation prediction method, device and equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310271213.7A CN116303026B (en) 2023-03-20 2023-03-20 Evolution history-based software architecture degradation prediction method, device and equipment

Publications (2)

Publication Number Publication Date
CN116303026A CN116303026A (en) 2023-06-23
CN116303026B true CN116303026B (en) 2024-01-23

Family

ID=86818284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310271213.7A Active CN116303026B (en) 2023-03-20 2023-03-20 Evolution history-based software architecture degradation prediction method, device and equipment

Country Status (1)

Country Link
CN (1) CN116303026B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893257A (en) * 2016-03-30 2016-08-24 东南大学 Software architecture evaluation method based on evolution
CN107368303A (en) * 2017-06-28 2017-11-21 东南大学 A kind of evolution measure based on software architecture
CN108614778A (en) * 2018-05-10 2018-10-02 天津大学 Prediction technique is changed based on the Android App program evolutions that Gaussian process returns

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130311229A1 (en) * 2012-05-16 2013-11-21 Ca, Inc. Proactive risk assessment for system architecture evolutions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893257A (en) * 2016-03-30 2016-08-24 东南大学 Software architecture evaluation method based on evolution
CN107368303A (en) * 2017-06-28 2017-11-21 东南大学 A kind of evolution measure based on software architecture
CN108614778A (en) * 2018-05-10 2018-10-02 天津大学 Prediction technique is changed based on the Android App program evolutions that Gaussian process returns

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"软件结构可持续演进性评估技术研究";王桐;《中国博士学位论文全文数据库(信息科技辑)》(第01期);第12页第1行至第81页第10行 *

Also Published As

Publication number Publication date
CN116303026A (en) 2023-06-23

Similar Documents

Publication Publication Date Title
US7660884B2 (en) Apparatus, system, and method for generating a resource utilization description for a parallel data processing system
US9696786B2 (en) System and method for optimizing energy consumption by processors
CN111881023B (en) Software aging prediction method and device based on multi-model comparison
CN111400164A (en) Software testing method and device
CN110209560A (en) Data exception detection method and detection device
CN111045939B (en) Weibull distributed fault detection open source software reliability modeling method
CN117726240B (en) Quality evaluation classification method and system based on convolutional neural network
CN114091281A (en) Product life prediction method and device, electronic equipment and storage medium
CN114356577A (en) System capacity estimation method and device
CN111581036A (en) Internet of things fault detection method, detection system and storage medium
CN114726581B (en) Abnormality detection method and device, electronic equipment and storage medium
CN110334012B (en) Risk assessment method and device
CN116306806A (en) Fault diagnosis model determining method and device and nonvolatile storage medium
CN116303026B (en) Evolution history-based software architecture degradation prediction method, device and equipment
CN110619413A (en) Method and device for evaluating health degree of wind generating set
CN116560968A (en) Simulation calculation time prediction method, system and equipment based on machine learning
CN116682479A (en) Method and system for testing enterprise-level solid state disk time delay index
CN116304699A (en) Critical sample set generation method and system based on new energy multi-station short circuit ratio
CN115293735A (en) Unmanned factory industrial internet platform monitoring management method and system
CN114139625A (en) Part quality classification method and system based on degradation trajectory curve analysis
CN114116482A (en) Method and device for testing stability of CAD (computer-aided design) software, storage medium and processor
WO2022165152A1 (en) Constructing a statistical model and evaluating model performance
CN117785643B (en) Performance test platform for software development
CN111913805B (en) CPU utilization rate calculation method and device
CN111461446B (en) Prediction method and device for complaint report cases based on machine learning

Legal Events

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