CN109947428B - High-quality software recommendation method based on software stability measurement - Google Patents

High-quality software recommendation method based on software stability measurement Download PDF

Info

Publication number
CN109947428B
CN109947428B CN201910033598.7A CN201910033598A CN109947428B CN 109947428 B CN109947428 B CN 109947428B CN 201910033598 A CN201910033598 A CN 201910033598A CN 109947428 B CN109947428 B CN 109947428B
Authority
CN
China
Prior art keywords
software
class
stability
cdn
classes
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
CN201910033598.7A
Other languages
Chinese (zh)
Other versions
CN109947428A (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.)
Zhejiang Gongshang University
Original Assignee
Zhejiang Gongshang University
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 Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN201910033598.7A priority Critical patent/CN109947428B/en
Publication of CN109947428A publication Critical patent/CN109947428A/en
Application granted granted Critical
Publication of CN109947428B publication Critical patent/CN109947428B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

The invention discloses a high-quality software recommendation method based on software stability measurement, which comprises the following steps of: abstracting a method calling process of software written by Java language during operation into a method calling network; constructing a class dependence network based on a method call network; constructing the stability of the measurement index measurement class based on the class dependence network; constructing the stability of measurement index measurement software based on the stability measurement indexes of the classes; and (4) performing descending arrangement on the software with similar functions according to stability, and recommending according to the sequence. In the prior art, the stability of the measurement index measurement software is constructed mainly based on static analysis of software source codes, and the constructed model is not accurate enough. The measurement indexes constructed in the prior art cannot fully utilize the internal structure of software. The invention uses the dynamic analysis technology to construct a more accurate model for measuring the software stability, further recommends high-quality software for users, and provides technical support for selecting high-quality software with high stability from a plurality of software with similar functions for understanding the software.

Description

High-quality software recommendation method based on software stability measurement
Technical Field
The invention relates to a high-quality software recommendation method, in particular to a high-quality software recommendation method based on software stability measurement.
Background
Computer software has entered into all aspects of our lives and is an indispensable part of our lives. The software is changing and will continue to change our lives. The demand for software functions and performance is higher and higher, which results in the scale of software being increased rapidly, and many software products with similar functions exist. Open source software is an important class of software. In reality, many enterprises use a lot of open source software under the protocol of the open source software. However, the size of the open source software is very large, many similar software products exist, and how to select software with better quality from the similar software becomes a technical problem.
Software complexity is an important factor that leads to a degradation of software quality. Therefore, measuring the inherent complexity of software is an important way to measure the quality of software. Software stability is an indication of the inherent complexity of software, often expressing the ability of software to resist modification. The software stability is high, and the software quality is better. There are currently a number of tasks on software complexity metrics: wolverton proposes to measure the programmer's code rate with loc (lines of code) statement lines. McCabe sets forth the McCabe circle Complexity (cyclic Complexity) based on graph theory to measure the Complexity of the program. Halstead measures the complexity of a program by computing the number of operators (operators) and operands (operands) in the program. From the requirement specification, Albrecht proposes a function point analysis method. Oviedo constructs a model to combine control and data flows and measures the complexity of the program by calculating the control and data flow complexity. Harrison and Magel propose a method to measure software complexity through flow chart decomposition. Tai proposes a data-flow-based measure of program complexity. Bieman proposes a framework for measuring software reusability, and defines some metrics for evaluating software reusability, such as public/private reusability (public/private reuse). Lake and Cook investigated the metrology problem of the C + + software. Sharble and Cohen studied the metrics of object-oriented software design. Lorenz presents 11 object-oriented metrics, such as average method scale (Loc), average number of methods in each class, average number of instance variables in each class, etc., and also presents some measure-specific check rules. Chidameter and Kemerer set forth the theoretical basis of object-oriented software metrology, and propose 6 object-oriented software design and complexity metrics, such as a set of object-oriented metrics including weighted Method number WMC (weighted Method per class), depth of Inheritance tree DIT (depth of Inheritance Tree), inter-class coupling CBO (coupling between objects). Abreu proposes a MOOD metric set containing 6 metrics for the encapsulation, inheritance, coupling, and polymorphism of object-oriented software.
Although there are many studies on the complexity measure of software to provide some help for understanding the quality of software, the following disadvantages still exist:
(1) existing work has focused primarily on measuring the complexity of the code elements themselves, and lacks a measure of the overall quality of the software, such as software stability.
(2) The existing work mainly focuses on static analysis of software codes and lacks dynamic analysis of the actual running of the software. Static analysis does not need to run software, only depends on software source codes, and the relationship among the extracted elements is actually a relationship under the 'worst' condition and may contain redundant relationships; the dynamic analysis needs to run software, collect elements and relationships among the elements in the software running process, and represent the real interaction among the elements. Dynamic analysis is more accurate than static analysis.
(3) The existing work only considers whether the interaction exists between elements, and the influence of the strength of the interaction between the elements on the metric value is ignored.
The invention provides a high-quality software recommendation method based on software stability measurement, which can make up the defects of the existing work by constructing measurement index measurement software stability through software dynamic analysis, and provides technical support for selecting high-quality software with high stability from a plurality of pieces of software with similar functions for understanding the software.
Disclosure of Invention
The invention aims to provide a high-quality software recommendation method based on software stability measurement aiming at the defects of the prior art.
The technical problem of the invention is mainly solved by the following technical scheme: a high-quality software recommendation method based on software stability measurement comprises the following steps:
(1) the Java languageThe method call procedure of the software written at runtime is abstracted to a method call net FCN ═ N, D. Wherein N is a set of method nodes in software; d { < f { [ equation ]i,fj>}(fi∈N,fje.N) is a set of directed edges, representing the calling relationship between methods, from fiDirection fj
(2) Building a dependent network CDN (N) based on the FCN completed in the step (1)c,Dc). Wherein N iscThe method is a set of class nodes where methods in the FCN are located; dc={<ci,cj>}(ci∈Nc,cj∈Nc) Is a set of directed edges representing dependencies between classes, from ciPoint of direction cj(ii) a Each edge in the CDN is assigned a non-negative real number as an intensity value for the dependency between classes.
(3) And (3) calculating the stability s (i) of the class node i based on the CDN constructed in the step (2) to be used as a stability metric value of the corresponding class of the node.
(4) And (4) calculating the Stability of the whole software based on the Stability values of the various classes calculated in the step (3).
(5) And (4) calculating the stability of a plurality of pieces of software with similar functions based on the steps (1) to (4), and performing descending order according to the stability of the plurality of pieces of software, wherein the software with the top rank is the high-quality software recommended to the user.
Further, the method and the call relationship between the methods in the step (1) are obtained according to the actual running process of the Java software on the Java virtual machine, and are a dynamic analysis, rather than a static analysis based on source codes.
Further, the class in the above step (2) is obtained according to the method in the FCN. The class in the FCN where the method is defined becomes a class in the CDN. Meanwhile, the classes in the CDN are a collective name of classes, internal classes, abstract classes, and interfaces in Java.
Further, the dependency relationship between the classes in step (2) is obtained according to the call relationship between the methods in the FCN, that is, if there is a call relationship between the methods included in the classes, there is a dependency relationship between the corresponding classes.
Further, the strength value of the dependency relationship between the classes in the step (2) is obtained according to the calling relationship between the methods in the FCN.
Further, the CDN construction in the step (2) specifically includes the following sub-steps:
(2.1) extracting all classes where the method is located in the FCN, and constructing a CDN with nodes and no edges, namely (N ═ CDNc,DcΦ). Φ represents the edge set as null.
(2.2) taking one side in the step (1) D to be less than fi,fjIs > ∈ D, according to fiAnd fjThe naming rule of (2) determines the class it defines, let fiDefined in class k, fjDefined in class p. If k is not equal to p and < k, p > is not in DcIf internal, adding < k, p > to DcOtherwise, no processing is performed.
(2.3) the intensity value on the side < k, p > is defined as the proportion of the class p that directly or indirectly affects the class k, i.e.:
Figure GDA0003540448220000031
wherein, mcnt (p) returns the number of methods included in class p (the number of methods belonging to class p in FCN); po (p) returns the number of methods in class p that may have an impact on class k (there is a directional path (in the direction of the reverse arrow) to a method in class k for a method in class p, and the path does not go through other classes, and such a method in class p is called an impact method on class k); w (k, p) is the intensity value at edge < k, p >.
(2.4) repeating steps (2.2) and (2.3) until all edges in the FCN have been traversed.
Further, the calculating of the stability s (i) of the class node i in the step (3) specifically includes the following sub-steps:
and (3.1) solving the weighted incomes of all class nodes in the CDN obtained in the step (2). Weighted incomes wi of class nodes iiDefined as the sum of the strength values of all incoming edges connected to this type of node in the CDN, that is:
Figure GDA0003540448220000032
wherein v isiIs a neighbor class node set of class node i; w (m, i) is the intensity value at edge < m, i >.
And (3.2) solving the weighted out-degree of all the class nodes in the CDN obtained in the step (2). Weighted out degree wo of class node iiDefined as the sum of the strength values of all outgoing edges connected to this type of node in the CDN, that is:
Figure GDA0003540448220000033
wherein v isiIs a neighbor class node set of class node i; w (i, m) is the intensity value at edge < i, m >.
(3.3) calculating the stability s (i) of the node i based on the weighted in degree and the weighted out degree of the node i obtained in the steps (3.1) and (3.2):
Figure GDA0003540448220000034
further, the stability of the whole software in the step (4) is defined as:
Figure GDA0003540448220000035
wherein, | NcI Return to NcNumber of class nodes in.
Compared with the prior art, the invention has the following advantages and positive effects:
(1) the FCN and the CDN are constructed based on dynamic analysis of Java software in operation, represent methods in the software and real interactive relations among the methods, classes and classes, are more accurate than a static analysis method based on software source codes, and solve the problem of software complexity measurement work based on static analysis to a certain extent.
(2) The invention provides a high-quality software recommendation method based on software stability measurement, which constructs a more accurate interaction model among software elements through software dynamic analysis, integrates interaction strength into the software stability measurement, makes up the defects of the existing work, and provides technical support for selecting high-quality software with high stability from a plurality of pieces of software with similar functions for understanding the software.
Drawings
FIG. 1 source code written in the Java language of the present invention;
FIG. 2 is a FCN constructed by an embodiment of the present invention;
FIG. 3 is a CDN constructed with only nodes and no edges constructed by embodiments of the present invention;
FIG. 4 is a CDN constructed by an embodiment of the present invention to include an edge;
fig. 5 is a final CDN constructed by an embodiment of the present invention.
Detailed Description
The technical scheme of the invention is further explained by the embodiment and the accompanying drawings:
the invention provides a high-quality software recommendation method based on software stability measurement, which comprises the following specific steps:
(1) the method calling process of software written in Java language at runtime is abstracted into a software running network-method calling network FCN ═ N, D. Fig. 1 shows a Java source code. According to the Java source code given in fig. 1, when it runs on the JVM, first, a call. Sub1(int augend, int addend) calls sub2(int augend, int addend) and add. Sub2(int authed, int addenda) calls the call mul (int authed, int addenda) method at run time. The methods are named according to the form of 'class name, method name and parameter list', and are complete names of the methods. According to the operating condition of the Java source code shown in fig. 1, the FCN shown in fig. 2 can be obtained, and the text of the node edge is the name of the corresponding method of the node. Wherein, N ═ { main, sub1, sub2, add, mul } is a set of method nodes (for simplicity, the class name of the class in which each method is located and the parameter list of each method are ignored); d { < main, sub1>, < main, add >, < sub1, sub2>, < sub2, mul >, < sub2, add > } is a set of directed edges, which represents the calling relationship between methods.
(2) Building a dependent network CDN (N) based on the FCN completed in the step (1)c,Dc). The construction of the CDN specifically includes the following sub-steps:
(2.1) extracting all classes where the method is located in the FCN, and constructing a CDN with nodes and no edges, namely (N ═ CDNc,DcΦ). Φ represents the edge set as null. According to the Java source code fragment given in fig. 1, a corresponding CDN (N) can be constructedc,DcΦ) (as shown in fig. 3), where N iscThe { Calculator, ADD, SUB } is the set of class nodes in the source code, and the characters of the node edges are the names of the corresponding classes of the nodes.
(2.2) taking one side in the step (1) D to be less than fi,fjIs > ∈ D, according to fiAnd fjThe naming rule of (2) determines the class it defines, let fiDefined in class k, fjDefined in class p. If k is not equal to p and < k, p > is not in DcIf internal, adding < k, p > to DcOtherwise, no processing is performed. If the edge is taken, as shown in FIG. 2<sub2,mul>Since SUB2 is defined in the SUB class, mul is defined in the class caller, and SUB and caller are not the same class, it will<sub2,mul>Addition of Dc
(2.3) the intensity value on the side < k, p > is defined as the proportion of the class p that directly or indirectly affects the class k, i.e.:
Figure GDA0003540448220000041
wherein, mcnt (p) returns the number of methods included in class p (the number of methods belonging to class p in FCN); po (p) returns the number of methods in class p that may have an impact on class k (there is a directed path (in the direction of the inverse arrow) to a method within class k for methods within class p that do not pass through other classes. w (k, p) is the intensity value at edge < k, p >. As shown in fig. 2, mul affects sub2 through mul ← sub2, so po (mul) | { mul } | 1, while mcnt (p) | { main, mul } | 2, so w (sub2, mul) ═ 1/2.
(2.4) repeating the steps (2.2) and (2.3) until all edges in the FCN are traversed, the final CDN shown in fig. 5 can be obtained.
(3) And (3) calculating the stability s (i) of the class node i based on the CDN constructed in the step (2) to be used as a stability metric value of the corresponding class of the node. The calculation of the stability s (i) of the class node i specifically comprises the following substeps:
and (3.1) solving the weighted incomes of all class nodes in the CDN obtained in the step (2). Weighted incomes wi of class nodes iiDefined as the sum of the strength values of all incoming edges connected to this type of node in the CDN, that is:
Figure GDA0003540448220000051
wherein v isiIs a neighbor class node set of class node i; w (m, i) is the intensity value at edge < m, i >. Thus, the weighted in-degree wi of the class node Calculator in FIG. 5CalculatorWeighted in-degree of SUB is wi, 1/2SUBWeighted incomes wi of ADD ═ 1ADD1, the degree of weighting of ADD is wi'ADD=1+1=2。
And (3.2) solving the weighted out-degree of all the class nodes in the CDN obtained in the step (2). Weighted out degree wo of class node iiDefined as the sum of the strength values of all outgoing edges connected to this type of node in the CDN, that is:
Figure GDA0003540448220000052
wherein v isiIs a neighbor class node set of class node i; w (i, m) is the intensity value at edge < i, m >. Thus, the weighted out degree wo of the class node Calculator in FIG. 5CalculatorAddition of 1+1 to 2, SUBThe authority degree is woSUB1+ 1/2-1.5, ADD weighted out of woADD=0。
(3.3) calculating the stability s (i) of the node i based on the weighted in degree and the weighted out degree of the node i obtained in the steps (3.1) and (3.2):
Figure GDA0003540448220000053
therefore, in fig. 5, s (predictor) of the class node predictor (1/2)/(1/2+2) is 0.2, S (SUB) of SUB is 1/(1+1.5) is 0.4, and s (ADD) of ADD is 2/(2+0) is 1.
(4) Calculating the stability of the whole software based on the stability values of the various classes calculated in the step (3)
Figure GDA0003540448220000054
Therefore, the stability value of the code shown in fig. 1 is (0.2+0.4+1)/3 is 0.533.
(5) And (4) calculating the stability of a plurality of pieces of software with similar functions based on the steps (1) to (4), and performing descending order according to the stability of the plurality of pieces of software, wherein the software with the top rank is the high-quality software recommended to the user. Assuming that the calculated stability of the other 1 functionally similar software is 0.4, the results in descending order of their stability are 0.533> 0.4. Therefore, the first ranked software (software corresponding to 0.533) can be recommended as the high-quality software.
The particular embodiments described herein are illustrative only of the spirit of the invention, which is one possible scenario in reality, and is not intended to represent all scenarios. Various modifications or additions may be made to the described embodiments or alternatives may be employed by those skilled in the art without departing from the spirit or ambit of the invention as defined in the appended claims.

Claims (8)

1. A high-quality software recommendation method based on software stability measurement is characterized by comprising the following steps:
(1) abstracting a method calling process of software written by Java language during operation into a method calling network FCN (N, D); wherein N is a set of method nodes in software; d { < f { [ equation ]i,fj>}(fi∈N,fje.N) is a set of directed edges, representing the calling relationship between methods, from fiDirection fj
(2) Building a dependent network CDN (N) based on the FCN completed in the step (1)c,Dc) (ii) a Wherein N iscThe method is a set of class nodes where methods in the FCN are located; dc={<ci,cj>}(ci∈Nc,cj∈Nc) Is a set of directed edges representing dependencies between classes, from ciPoint of direction cj(ii) a Each edge in the CDN is endowed with a nonnegative real number as an intensity value of the dependency relationship between the classes;
(3) calculating the stability s (i) of the class node i based on the CDN constructed in the step (2) and taking the stability s (i) as a stability metric value of a corresponding class of the node;
(4) calculating the Stability of the whole software based on the Stability values of all classes calculated in the step (3);
(5) and (4) calculating the stability of a plurality of pieces of software with similar functions based on the steps (1) to (4), and performing descending order according to the stability of the plurality of pieces of software, wherein the software with the top rank is the high-quality software recommended to the user.
2. The method for recommending high-quality software based on software stability metric of claim 1, wherein the calling relationship between the method and the method in step (1) is obtained according to the actual running process of the Java software on the Java virtual machine, and is a dynamic analysis rather than a static analysis based on source code.
3. A method for recommending high-quality software based on software stability metric according to claim 1, wherein said class in step (2) is obtained according to the method in FCN; the class in the FCN where the method is defined becomes the class in the CDN; meanwhile, the classes in the CDN are a collective name of classes, internal classes, abstract classes, and interfaces in Java.
4. The method according to claim 1, wherein the dependency relationship between the classes in step (2) is obtained according to a call relationship between the methods in the FCN, that is, if a call relationship exists between the methods included in a class, the dependency relationship exists between the corresponding classes.
5. A method for recommending high-quality software based on software stability metric according to claim 1, wherein said strength value of the dependency relationship between classes in step (2) is obtained from the call relationship between methods in FCN.
6. The method for recommending high-quality software based on software stability metric of claim 1, wherein the CDN construction in the step (2) specifically comprises the following sub-steps:
(2.1) extracting all classes where the method is located in the FCN, and constructing a CDN with nodes and no edges, namely (N ═ CDNc,DcΦ); phi represents that the edge set is empty;
(2.2) taking one side in the step (1) D to be less than fi,fjIs > ∈ D, according to fiAnd fjThe naming rule of (2) determines the class it defines, let fiDefined in class k, fjDefined in class p; if k is not equal to p and < k, p > is not in DcIf internal, adding < k, p > to DcOtherwise, no processing is carried out;
(2.3) the intensity value on the side < k, p > is defined as the proportion of the class p that directly or indirectly affects the class k, i.e.:
Figure FDA0003540448210000021
wherein, mcnt (p) returns the number of methods contained in class p; po (p) returning the number of methods in the class p which may affect the class k, wherein the methods in the class p have a method that a directed path reaches the class k, and the path does not pass through other classes, and the method in the class p is called the method which affects the class k; w (k, p) is the intensity value at edge < k, p >;
(2.4) repeating steps (2.2) and (2.3) until all edges in the FCN have been traversed.
7. A method for recommending high-quality software based on software stability metric according to claim 1, wherein the calculation of the stability s (i) of class node i in step (3) specifically comprises the following sub-steps:
(3.1) solving the weighted incomes of all class nodes in the CDN obtained in the step (2); weighted incomes wi of class nodes iiDefined as the sum of the strength values of all incoming edges connected to this type of node in the CDN, that is:
Figure FDA0003540448210000022
wherein v isiIs a neighbor class node set of class node i; w (m, i) is the intensity value at which the side < m, i > is greater;
(3.2) solving the weighted output degree of all class nodes in the CDN obtained in the step (2); weighted out degree wo of class node iiDefined as the sum of the strength values of all outgoing edges connected to this type of node in the CDN, that is:
Figure FDA0003540448210000023
wherein v isiIs a neighbor class node set of class node i; w (i, m) is the intensity value at edge < i, m > is;
(3.3) calculating the stability s (i) of the node i based on the weighted in degree and the weighted out degree of the node i obtained in the steps (3.1) and (3.2):
Figure FDA0003540448210000024
8. the method for recommending high-quality software based on software stability metric according to claim 1, wherein the stability of the whole software in step (4) is defined as:
Figure FDA0003540448210000025
wherein, | NcI Return to NcNumber of class nodes in.
CN201910033598.7A 2019-01-14 2019-01-14 High-quality software recommendation method based on software stability measurement Active CN109947428B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910033598.7A CN109947428B (en) 2019-01-14 2019-01-14 High-quality software recommendation method based on software stability measurement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910033598.7A CN109947428B (en) 2019-01-14 2019-01-14 High-quality software recommendation method based on software stability measurement

Publications (2)

Publication Number Publication Date
CN109947428A CN109947428A (en) 2019-06-28
CN109947428B true CN109947428B (en) 2022-04-26

Family

ID=67007256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910033598.7A Active CN109947428B (en) 2019-01-14 2019-01-14 High-quality software recommendation method based on software stability measurement

Country Status (1)

Country Link
CN (1) CN109947428B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114365095A (en) * 2019-11-04 2022-04-15 码睿科技(北京)有限公司 System and method for evaluating code contribution of software developer

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104932944A (en) * 2015-06-15 2015-09-23 浙江金大科技有限公司 Cloud computing resource service combination method based on weighted bipartite graph
CN105389192A (en) * 2015-12-18 2016-03-09 浙江工商大学 Method for measuring importance of software class based on weighted q2 index
CN106293800A (en) * 2015-06-29 2017-01-04 中兴通讯股份有限公司 Software recommendation method and device
US9830392B1 (en) * 2013-12-18 2017-11-28 BloomReach Inc. Query-dependent and content-class based ranking
CN107608872A (en) * 2016-07-11 2018-01-19 北京京东尚科信息技术有限公司 A kind of horizontal method and apparatus of the modularization of inspection software system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830392B1 (en) * 2013-12-18 2017-11-28 BloomReach Inc. Query-dependent and content-class based ranking
CN104932944A (en) * 2015-06-15 2015-09-23 浙江金大科技有限公司 Cloud computing resource service combination method based on weighted bipartite graph
CN106293800A (en) * 2015-06-29 2017-01-04 中兴通讯股份有限公司 Software recommendation method and device
CN105389192A (en) * 2015-12-18 2016-03-09 浙江工商大学 Method for measuring importance of software class based on weighted q2 index
CN107608872A (en) * 2016-07-11 2018-01-19 北京京东尚科信息技术有限公司 A kind of horizontal method and apparatus of the modularization of inspection software system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于软件网络的服务自动分类和推荐方法研究";潘伟丰等;《2011年中国计算机学会服务计算学术会议(CCF NCSC2011)论文集》;20110818;1-11页 *

Also Published As

Publication number Publication date
CN109947428A (en) 2019-06-28

Similar Documents

Publication Publication Date Title
EP3631618B1 (en) Automated dependency analyzer for heterogeneously programmed data processing system
CN109739494B (en) Tree-LSTM-based API (application program interface) use code generation type recommendation method
Ludwig Applying particle swarm optimization to quality-of-service-driven web service composition
JP2010522397A (en) Using collaboration development information in a team environment
CA3050159C (en) Artificial intelligence (ai) based automatic rule generation
US20110016447A1 (en) Method for improving execution efficiency of a software package customization
Wang et al. Lightweight global and local contexts guided method name recommendation with prior knowledge
US20210117313A1 (en) Language agnostic automation scripting tool
US20220365870A1 (en) Intelligent generation of automated user interface testing methods
US20220365872A1 (en) Intelligent generation of page objects for user interface testing
CN109285024B (en) Online feature determination method and device, electronic equipment and storage medium
US9367307B2 (en) Staged points-to analysis for large code bases
Munnelly et al. An aspect-oriented approach to the modularisation of context
CN109947428B (en) High-quality software recommendation method based on software stability measurement
Pawade et al. Exploring software complexity metric from procedure oriented to object oriented
Spillner et al. Rule-Based Resource Matchmaking for Composite Application Deployments across IoT-Fog-Cloud Continuums
US11442724B2 (en) Pattern recognition
Sarhan et al. Effective spectrum based fault localization using contextual based importance weight
US20190087165A1 (en) System and method for implementing dynamic strategies of computing infrastructure using a domain-specific language for cloud services infrastructure
CN109976807B (en) Key package identification method based on software operation network
CN109871318B (en) Key class identification method based on software operation network
Lee et al. Feature-oriented engineering of PBX software
CN109918129B (en) Software key function identification method based on g-kernel decomposition
US20230266951A1 (en) Method and system for learning based dynamic software system adaptation
Guojie et al. Enhancing software reuse through application-level component approach

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