CN110362538B - Relationship determination method and apparatus, electronic device, and computer-readable storage medium - Google Patents

Relationship determination method and apparatus, electronic device, and computer-readable storage medium Download PDF

Info

Publication number
CN110362538B
CN110362538B CN201910658724.8A CN201910658724A CN110362538B CN 110362538 B CN110362538 B CN 110362538B CN 201910658724 A CN201910658724 A CN 201910658724A CN 110362538 B CN110362538 B CN 110362538B
Authority
CN
China
Prior art keywords
nodes
node
output
input
type
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
CN201910658724.8A
Other languages
Chinese (zh)
Other versions
CN110362538A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201910658724.8A priority Critical patent/CN110362538B/en
Publication of CN110362538A publication Critical patent/CN110362538A/en
Application granted granted Critical
Publication of CN110362538B publication Critical patent/CN110362538B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

The present disclosure provides a method implemented by an electronic device for determining an association relationship, comprising: code for receiving a plurality of functional modules; and determining the association relationship between each functional module and a plurality of files based on the codes, and storing or outputting the association relationship. The disclosure also provides an apparatus for determining an association relationship, an electronic device and a computer-readable storage medium.

Description

Relationship determination method and apparatus, electronic device, and computer-readable storage medium
Technical Field
The present disclosure relates to the field of computer technologies, and in particular, to a method for determining an association relationship, an apparatus for determining an association relationship, an electronic device, and a computer-readable storage medium.
Background
With the development of science and technology, functions deployed on a computer become increasingly complex, more and more program codes are used for realizing each function, an intricate and complex calling relationship exists between each function module and file data, and if the association relationship between each function module and a file cannot be accurate, the influence range of the change of the file data (for example, the modification of a field of a certain data table) is difficult to quickly define.
In carrying out the presently disclosed concept, the inventors have found that there are at least the following problems in the related art.
In the prior art, the incidence relation between the function module and the file is mainly determined by two modes of manual feedback registration or source code analysis technology. However, the manual feedback registration method is time-consuming, labor-consuming and low in accuracy, the source code analysis technology can only reflect the calling relationship of the functional module to the file data, the functional module is considered to be associated with the called file as long as the functional module has a calling statement, the calling relationship is easily influenced by junk codes, and the accuracy is low.
Disclosure of Invention
In view of the above, the present disclosure provides a method and an apparatus for determining an association relationship.
One aspect of the present disclosure provides a method implemented by an electronic device for determining an incidence relation, comprising: code for receiving a plurality of functional modules; determining an association relation between each functional module and a plurality of files based on the codes, and storing or outputting the association relation; wherein the determining, based on the code, an association between each of the functional modules and a plurality of files comprises: extracting a plurality of nodes from the code of the functional module, and determining the type and the number of each node, wherein the nodes comprise nodes of an input type and nodes of an output type, the nodes of the input type are used for reading input elements from the file, and the nodes of the output type are used for writing output elements into the file; obtaining at least one execution path based on the plurality of nodes; determining at least one input-output relationship pair based on the at least one execution path, wherein the input-output relationship pair comprises a correspondence between an input element and an output element; and establishing the incidence relation between the input element and the file related to the output element in the at least one input-output relation pair and the functional module.
According to an embodiment of the present disclosure, the extracting a plurality of nodes from the code of the functional module and determining the type and number of each node includes: dividing the code into a plurality of statements according to the sequence; determining the type of a node corresponding to each statement based on the content of each statement; extracting attribute information of nodes of corresponding types from each statement so as to convert the statement into the nodes; and numbering the nodes in sequence according to the sequence of the statements in the codes.
According to an embodiment of the present disclosure, the obtaining at least one execution path based on the plurality of nodes includes: traversing the nodes, and forming an execution path every time a node of an output type is visited, wherein in the process of traversing the nodes, if the visited node is a node of a preset type, the number of the node is recorded, and if the node of the output type is visited, the recorded number of the node of the preset type and the recorded number of the node of the output type are sequentially stored as an execution path; the preset type nodes comprise at least one of input type nodes, assignment type nodes and calculation type nodes.
According to an embodiment of the present disclosure, the determining at least one input-output relationship pair based on the at least one execution path comprises: for each of the execution paths, performing the following: acquiring each output element in the nodes of the output type, traversing the nodes corresponding to the numbers in the execution path from back to front, and searching for the input element corresponding to each output element; and forming each output element and the input element corresponding to the output element into one input-output relationship pair.
According to an embodiment of the present disclosure, the output element comprises a first output element; traversing nodes corresponding to the numbers in the execution path from back to front, and searching for the input element corresponding to the first output element comprises: putting the first output element into a preset element set; traversing nodes corresponding to the numbers in the execution path from back to front, and if the result elements of the accessed nodes appear in the element set, putting the non-result elements in the nodes into the element set; and considering the input element to correspond to the first output element until the non-result element put in the element set is an input element.
According to an embodiment of the present disclosure, the segmenting the code into a plurality of statements according to a sequence includes: extracting codes of a data part and a process part in the codes; removing labels and annotations in the code of the data portion and the code of the process portion; and respectively dividing the code of the data part and the code of the process part into a plurality of statements in sequence.
According to an embodiment of the disclosure, the method further comprises: determining an association relationship between the plurality of files; and determining the association relation among the plurality of functional modules based on the association relation between each functional module and the plurality of files and the association relation among the plurality of files, and storing or outputting the association relation.
Another aspect of the present disclosure provides an apparatus for determining an association relationship, including: the receiving module is used for receiving codes of a plurality of functional modules; the association module is used for determining the association relationship between each functional module and a plurality of files based on the codes and storing or outputting the association relationship; wherein the association module comprises: a node module, configured to extract a plurality of nodes from the code of the function module, and determine a type and a number of each node, where the nodes include a node of an input type and a node of an output type, the node of the input type is used to read an input element from the file, and the node of the output type is used to write an output element to the file; a path module, configured to obtain at least one execution path based on the plurality of nodes; an input-output module for determining at least one input-output relationship pair based on the at least one execution path, wherein the input-output relationship pair comprises a correspondence between an input element and an output element; and the association module is used for establishing the association relationship between the input element and the file related to the output element in the at least one input-output relationship pair and the functional module.
Another aspect of the present disclosure provides an electronic device including: one or more processors; storage means for storing one or more programs, wherein the one or more programs, when executed by the one or more processors, cause the one or more processors to implement the method as described above.
Another aspect of the present disclosure provides a computer-readable storage medium storing computer-executable instructions for implementing the method as described above when executed.
Another aspect of the disclosure provides a computer program comprising computer executable instructions for implementing the method as described above when executed.
According to the embodiment of the disclosure, because the technical means of dividing the implementation code of the functional module into a plurality of nodes, obtaining a plurality of execution paths according to the plurality of nodes, searching the input-output relationship pairs from the execution paths, and finally associating the input-output relationship pairs with the related files and the functional module are adopted, analysis can be performed according to the execution process of the statements, the association relationship between the programs due to the input and the output of the files is considered, and the association is not considered as being associated as long as the programs have the calling statements, so that the technical problems of time consumption, labor consumption and low accuracy in the existing association relationship determination technology are at least partially overcome, and the technical effect of rapidly and accurately determining the association relationship between the functional module and the files is further achieved.
Drawings
The above and other objects, features and advantages of the present disclosure will become more apparent from the following description of embodiments of the present disclosure with reference to the accompanying drawings, in which:
fig. 1 schematically illustrates an exemplary application scenario in which an incidence relation determination method may be applied according to an embodiment of the present disclosure;
FIGS. 2 and 3 schematically illustrate a flow chart of a method of determining an association according to an embodiment of the present disclosure;
FIG. 4 schematically shows a flow diagram for extracting nodes from code of a functional module according to an embodiment of the present disclosure;
FIG. 5 schematically illustrates an association graph according to an embodiment of the disclosure;
FIG. 6 schematically shows a block diagram of an apparatus according to an embodiment of the present disclosure;
FIG. 7 schematically illustrates a block diagram of an association module according to an embodiment of the disclosure; and
fig. 8 schematically shows a block diagram of an electronic device adapted to implement the above described method according to an embodiment of the present disclosure.
Detailed Description
Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. It should be understood that the description is illustrative only and is not intended to limit the scope of the present disclosure. In the following detailed description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the disclosure. It may be evident, however, that one or more embodiments may be practiced without these specific details. Moreover, in the following description, descriptions of well-known structures and techniques are omitted so as to not unnecessarily obscure the concepts of the present disclosure.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. The terms "comprises," "comprising," and the like, as used herein, specify the presence of stated features, steps, operations, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, or components.
All terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art unless otherwise defined. It is noted that the terms used herein should be interpreted as having a meaning that is consistent with the context of this specification and should not be interpreted in an idealized or overly formal sense.
Where a convention analogous to "at least one of A, B and C, etc." is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., "a system having at least one of A, B and C" would include but not be limited to systems that have a alone, B alone, C alone, a and B together, a and C together, B and C together, and/or A, B, C together, etc.). Where a convention analogous to "A, B or at least one of C, etc." is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., "a system having at least one of A, B or C" would include but not be limited to systems that have a alone, B alone, C alone, a and B together, a and C together, B and C together, and/or A, B, C together, etc.).
An embodiment of the present disclosure provides a method implemented by an electronic device for determining an association relationship, the method including: code for receiving a plurality of functional modules; and determining the association relationship between each functional module and the plurality of files based on the codes, and storing or outputting the association relationship. Wherein determining an association between each functional module and the plurality of files based on the code comprises: and extracting a plurality of nodes from the code of the functional module, and determining the type and the number of each node, wherein the nodes comprise nodes of input types and nodes of output types, the nodes of input types are used for reading input elements from the file, and the nodes of output types are used for writing output elements into the file. At least one execution path is obtained based on the plurality of nodes. Based on the at least one execution path, at least one input-output relationship pair is determined, wherein the input-output relationship pair comprises a correspondence between an input element and an output element. And establishing an association relationship between the input element and the file related to the output element in at least one input-output relationship pair and the functional module.
Fig. 1 schematically illustrates an exemplary application scenario in which the association determination method may be applied according to an embodiment of the present disclosure. It should be noted that fig. 1 is only an example of an application scenario in which the embodiments of the present disclosure may be applied to help those skilled in the art understand the technical content of the present disclosure, but does not mean that the embodiments of the present disclosure may not be applied to other devices, systems, environments or scenarios.
As shown in fig. 1, the method of the embodiment of the present disclosure may be used to determine an association relationship between a plurality of functional modules 110 and a plurality of files 120. The plurality of functional modules 110 may be, for example, respective subroutines in an operating system, each subroutine operable to perform a function, and the file 120 may be, for example, a data table or a data file. There may be a call operation to data in a certain file 120 in the implementation code of a certain functional module 110, and the functional module 110 writes the finally obtained data into a certain file 120 after performing processing such as calculation on the data.
The method of the embodiment of the present disclosure may determine the association relationship between the plurality of functional modules 110 and the plurality of files 120, and first, divide the implementation code of the functional module 110 into a plurality of nodes, for example, an input node, a computing node, an output node, and the like. Then, each node is traversed to generate a plurality of execution paths, for example, one execution path may store input nodes and compute nodes until the output type node is encountered, so that one execution path may complete an execution process from element input to output. And searching the relation between input and output from the execution path to form a plurality of input and output relation pairs, and finally associating the file related to the input and output relation pairs with the program. Through the method, when the association relation between the function and the file is extracted, analysis can be performed according to the execution process of the statement, the situation of the statement which is possibly executed by the program is considered, the association is not considered as long as the calling statement occurs in the program, and the influence range is prevented from being expanded due to junk codes.
After obtaining the association relationship between the plurality of functional modules and the plurality of files, the relationship between the plurality of functional modules can be obtained according to the relationship between the plurality of files.
Through the above manner, when the code of a certain functional module is modified or the data in a certain file is modified, the influence range of the modification can be determined, and a user can determine which functional module codes need to be tested again according to the influence range.
Fig. 2 and 3 schematically show a flow chart of a method of determining an association according to an embodiment of the present disclosure.
As shown in fig. 2, a method according to an embodiment of the present disclosure may include operations S210 to S220.
In operation S210, codes of a plurality of functional modules are received.
The functional modules may be, for example, subroutines included in an operating system on the computing device for implementing functions, where each functional module may be, for example, a program developed using the COBOL language. The "programs" appearing in the following description each refer to a functional module.
Receiving a plurality of files or determining a plurality of files related to a plurality of function modules, the files related to the plurality of function modules may refer to files having an input-output relationship with the plurality of function modules or files located on the same computing device with the plurality of function modules. The plurality of files may be, for example, a plurality of data tables and a plurality of data files, and the plurality of function modules have operations of extracting data and writing data for the plurality of files.
Wherein each data table has a plurality of fields, each field can be used to describe a certain attribute feature in the data table. Likewise, a data file has a plurality of fields.
In operation S220, association relationships between each function module and a plurality of files are determined based on the code, and the association relationships are stored or output.
If the relationship of data extraction and writing exists between the functional module and the file, the functional module and the file can be considered to have an association relationship.
As shown in fig. 3, operation S220 may further include operations S221 through S224, and operations S221 through S224 are performed on each of the functional modules according to an embodiment of the present disclosure.
In operation S221, a plurality of nodes are extracted from the code of the function module, and the type and number of each node are determined. Wherein a node is also referred to as a syntax node in the following, a node comprises a node of an input type for reading input elements from a file and a node of an output type for writing output elements to the file.
FIG. 4 schematically illustrates an example flow diagram of a method for extracting nodes from code of a functional module according to an embodiment of this disclosure.
As shown in fig. 4, according to an embodiment of the present disclosure, extracting a plurality of nodes from the code of the function module in operation S221, and determining the type and number of each node may include operations S2211 to S2214.
In operation S2211, the code is divided into a plurality of statements in a sequential order.
According to an embodiment of the present disclosure, for programs developed using the COBOL language, the code of each program contains four parts: an identification section, an environment section, a data section, and a process section. Wherein the identification part (may also be called an identification part) is used to specify the source program name and some information as a memo. The environment section (also referred to as an environment section) is used for indicating a correspondence between a file name used in the program and the computer device, and for specifying a memory area size used by the program, and the like. The data portion (may also be referred to as a data portion) is used to process all data used in the program, including input data, output data, and intermediate data. The process portion (also referred to as a process section) is for processing an instruction to be executed by the program, i.e., the main processing portion.
And obtaining the line number range of each part according to the identification key words of each part. The sentence for each part is different in the division operation.
First, the code of the data portion and the code of the process portion in the code are extracted, and since the code of the flag portion and the code of the environment portion do not involve an operation on the file data, only the code of the data portion and the code of the process portion can be extracted for processing.
Then, the codes of the data part and the process part are preprocessed, and interference information such as labels and comments in the codes of the data part and the process part is removed.
Each row of the COBOL program may have 80 columns. Each row includes: the mark area (1-6 columns), the continuation area (7 th column), the A area (8-11 columns), the B area (also called text area, 12-72 columns) and the annotation area (73-80 columns). Therefore, the label area (1-6 columns) and the comment area (73-80 columns) of each row can be replaced with a space.
And then, scanning the preprocessed codes line by line, dividing the codes of the data part and the process part according to the statement characteristics, and sequentially dividing the codes of the data part and the process part into a plurality of statements.
For the code of the data portion, the specific division mode may be:
(1) for lines starting with "FD" or "COPY", see whether the current line ends with ". multidot.. If the current line does not end with the 'book', the current line is divided into sentences if the current line does not end with the 'book', and other line head keywords (FD, COPY and EXEC) exist in the next line or the next line conforms to the regular expression's + + \ d \ d \ s' (namely two continuous numbers with a space starting in the front, wherein the numbers represent a new head, a new section head and a new section head).
(2) For the line beginning with EXEC, when the key END-EXEC appears, the content between EXEC and END-EXEC is divided into a sentence.
(3) And searching downwards for the sentences conforming to the regular expression "\ S + + \ d \ S. -", until a certain row does not conform to the regular expression "\ S + + \ d \ S. -", and dividing the contents conforming to the regular expression before the certain row into one sentence. Or when a certain row is searched downwards and conforms to the regular expression "\ S + + \ d \ S.", but the layer number of the row is 01 or 77 or 66, the content conforming to the regular expression before the certain row is divided into one sentence.
For the codes of the process part, the specific division mode can be as follows:
searching downwards line by line from the beginning of the code of the process part, when a certain line meets one of the following characteristics, the content which is not divided before the certain line can be divided into a statement, and the certain line is used as the start of a new statement.
The method is characterized in that: zone A (columns 8-11) is non-empty;
and (2) feature: the following keywords begin after cutting the space of the sentence start: "ACCEPT", "DISPLAY", "READ", "END-READ", "WRITE", "OPEN", "CLOSE", "ADD", "END-ADD", "SUBTRACT", "END-SUBTRACT", "MULTIPLY", "END-MULTIPLY", "DIVIDE", "END-DIVIDE", "COMPUTE", "END-COMPUTE", "MOVE", "GOTO", "IF", "ELSE", "END-IF", "PERFORM", "STOP", "COPY", "CALL", "EXIT", "EXEC", "INING", "CALL", "CALCO", "GOK", "INITIALLIZE", "INITL", "THEN", "EVALUATE", "END-ALIVE", "WHEN", "INUE", "SEL", "STRING", "UNSTRING", "SEARCH", "PERINSECT-SEARCH", "REQUERITING", "REQUENCE", "REE-SEARCH", "REE-READ", "REVERAL WRITE", "END-SUBTRACT", "STOP", "AND", "WHEN", "SULTROC", "SUC", "SULTS", "SUC", "SULTROC", "SULTD-EXISTING", "SUCH", "SULTERE", "SUCH", "SULTS", "SUCH", "SUITOR", "SUCH", "SULTI", "SUCH", "SUITOR", "SUCH", "SUITOR", "SUCH A", "SUCH A", "SUCH A", "SUCH A", "SUCH A", "SUCH A", "SUCH A" and a first and a preferred "," SUCH (a preferred "," SUCH (a first, etc. and a first, etc. for a preferred "and a first, and.
For example, the first line and the second line may be divided into a sentence by searching downward line by line from the first line of the code of the procedure section until the keyword after the third line truncates the space of the sentence head is "ACCEPT". The search down continues until the area a of the eighth row (column 8-11) is not empty, and the contents of the fourth to seventh rows can be divided into one sentence.
And forming a sentence set by all the divided sentences.
In operation S2212, based on the content of each sentence, the type of the node corresponding to each sentence is determined.
And further analyzing the divided statement sets, and extracting key grammar meanings to enable the key grammar meanings to become structured data.
First, for a statement with multiple lines, the multiple lines of statements are spliced into a line.
For example:
Figure BDA0002136364330000101
can be processed into:
EXEC SQL SELECT CORPERF,OPENBRNO,LSTBAL INTO:BTHSCMAN-CORPERF,:BTHSCMAN-OPENBRNO,:BTHSCMAN-L STBAL FROM BTHSCMAN WHERE ACCNO=:BTHSCMAN-ACCNO AND CURRTYPE=:BTHSCMAN-CURRTYPE WITH UR END-EXEC
note that for multiple rows connected with a "-" connector, the "-" connector is removed and the splice is re-made.
For example:
77A PIC X(50)VALUE X′40404040404040404040
-′F1F1F1F1′
can be processed as follows:
77A PIC X(50)VALUE X′40404040404040404040′F1F1F1F1′
in operation S2213, attribute information of a node of a corresponding type is extracted from each sentence to convert the sentence into a node.
And extracting different types of grammar node types according to the keywords of each sentence. For COBOL code, there are the following types of nodes:
COBOLCallNode,COBOLIDNode,COBOLParagraphNode,COBOLSectionNode,COBOLCOPYDataNode,COBOLDataNode,COBOLEXTDataNode,COBOLFDDataNode,COBOLSimpleDataNode,COBOLAddNode,COBOLCloseNode,COBOLComputeNode,COBOLContinueNode,COBOLDisplayNode,COBOLDivideNode,COBOLELSENode,COBOLEndComputeNode,COBOLEndEvaluateNode,COBOLENDIFNode,COBOLEndTagNode,COBOLEvaluateNode,COBOLExitNode,COBOLEXTProcNode,COBOLGOBACKNode,COBOLGotoNode,COBOLIFNode,COBOLInitializeNode,COBOLMoveNode,COBOLMultiplyNode,COBOLOnErrorNode,COBOLOpenNode,COBOLPerformNode,COBOLProcNode,COBOLReadNode,COBOLSearchNode,COBOLSetNode,COBOLSimpleComputeNode,COBOLSimpleIFNode,COBOLStopRunNode,COBOLSubtractNode,COBOLWhenNode,COBOLWriteNode,COBOLExecCICSLinkNode,COBOLExecCICSNode,COBOLExecCICSStartNode,COBOLEXECNode,COBOLExecSQLDeclareCursorNode,COBOLExecSQLDeleteNode,COBOLExecSQLFetchNode,COBOLExecSQLIncludeNode,COBOLExecSQLInsertNode,COBOLExecSQLNode,COBOLExecSQLOpenCloseCursorNode,COBOLExecSQLSelectNode,COBOLExecSQLSetNode,COBOLExecSQLUpdateNode
when the type of the node corresponding to the sentence is judged, whether the keyword corresponding to the node of a certain type exists in the sentence can be judged, and if yes, the sentence is converted into the node of the type corresponding to the keyword.
For example, the statement:
EXEC SQL SELECT CORPERF,OPENBRNO,LSTBAL INTO:BTHSCMAN-CORPERF,:BTHSCMAN-OPENBRNO,:BTHSCMAN-L STBAL FROM BTHSCMAN WHERE ACCNO=:BTHSCMAN-ACCNO AND CURRTYPE=:BTHSCMAN-CURRTYPE WITH UR END-EXEC
if the statement includes the keyword SELECT, the statement may be converted into a node of the type cobblesexecsqlselectnode.
The node of the COBOLEEXECSQLSELECTODE type includes attributes: BeginRow (start line number), EndRow (end line number), NodeIndex (node number), Division (belonging part), statement, TableName, wheterstate (conditional statement), isdistint (presence or absence of distint keyword), VarNum (number of field elements), VarList (list of field elements), and intovarlsistwithoutcolon (list of actual result variable elements with colon removed).
Here, BeginRow refers to the line number of the first line of the current statement in all lines of the program, EndRow refers to the line number of the last line of the current statement in all lines of the program, NodeIndex refers to the serial number of the current node in all nodes of the program, Division refers to the part described in the current statement, for example, belonging to a data part or a procedure part, TableName refers to the file name of the file to which the data extracted by the current statement belongs, VarNum refers to the number of fields in the file extracted by the statement, and VarList refers to the list of fields in the file extracted by the statement.
Among them, BeginRow, EndRow, NodeIndex, and Division are attributes common to all types of nodes.
From the above statements, the following attributes of the COBOLExecSQLSelectNode node can be extracted:
BeginRow:1032
EndRow:1043
NodeIndex:593
Division:PROCEDURE
Statment:SELECT CORPERF,OPENBRNO,LSTBAL INTO:B THSCMAN-CORPERF,:BTHSCMAN-OPENBRNO,:BTHSCMAN-LS TBAL FROM BTHSCMAN WHERE ACCNO=:BTHSCMAN-ACCNO AND CURRTYPE=:BTHSCMAN-CURRTYPE WITH UR
TableName:BTHSCMAN
WhereStatement:ACCNO=:BTHSCMAN-ACCNO AND CURRTYPE=:BTHSCMAN-CURRTYPE WITH UR
IsDistinct:FALSE
VarNum:3
VarList:CORPERF,OPENBRNO,LSTBAL
IntoVarListWithoutColon:BTHSCMAN-CORPERF,BTHSCMAN-OPENBRNO,BTHSCMAN-LSTBAL
and sequentially converting each statement in the statement set into a node according to the mode. Thus, a COBOL program code is converted into a syntax tree with syntactic characteristic meaning, which consists of a string of syntax nodes.
In operation S2214, the nodes are numbered in sequence according to the sequence of the statements in the code.
Each grammar node carries its own unique number on the grammar tree, which is a fixed serial number such as 867 node, 1354 node, etc. generated according to the execution sequence of the sentence corresponding to the grammar node in the program code.
For example, the program code is divided into, in execution order: statement 1, statement 2, statement 3, say, statement 50, say, statement 100, then the unique number of the node to which statement 50 corresponds may be 50.
Traversing the node set, and when the following types of nodes are encountered, extracting elements, that is, according to different node types, obtaining corresponding elements such as input or output, and recording the unique number of the element node:
COBOLCallNode,COBOLExecCICSLinkNode,COBOLExecSQLUpdateNode,COBOLExecSQLSelectNode,COBOLExecSQLFetchNode,COBOLExec SQLInsertNode,COBOLReadNode,COBOLWriteNode。
wherein:
COBOLCALlNode, COBOLEEXECCICSLinkNode: and correspondingly, the interface calling node is used for extracting the interface name and the corresponding communication area field by combining the context to obtain the called element and the unique number of the node.
COBOLEEXECSQLSELECTRO, COBOLEEXECSQLFetchNode: corresponding to the read node of the data table, the element (hereinafter referred to as input element) input from the data table to the program can be extracted, and the input element is, for example, a table field in the data table read by the program, and the unique number of the node is recorded.
COBOLEEXECSQLUpdENode, COBOLEEXECSQLInsertNode: corresponding to the writing node of the data table, the element (hereinafter referred to as output element) written from the program into the data table can be extracted, and the input element is, for example, a table field in the data table updated by the program, and records the unique number of the node.
COBOLREAdNode: corresponding to the read node of the data file, the element (hereinafter referred to as input element) input from the data file into the program can be extracted, and the input element is, for example, a file field in the data file read by the program, and records the unique number of the node.
Cobolwrite enode: the corresponding is a writing node to the file, from which an element (hereinafter referred to as an output element) written from the program into the data file can be extracted, and the input element is, for example, a file field in the data file updated by the program, and records a unique number of the node.
In operation S222, at least one execution path is obtained based on the plurality of nodes.
According to an embodiment of the present disclosure, operation S222 includes: and traversing a plurality of nodes, and forming an execution path every time a node of an output type is visited, wherein in the process of traversing the plurality of nodes, if the visited node is the node of the preset type, the number of the node is recorded, and if the node of the output type is visited, the recorded number of the node of the preset type and the recorded number of the node of the output type are sequentially stored as an execution path. The preset type nodes comprise at least one of input type nodes, assignment type nodes and calculation type nodes.
For example, a plurality of nodes are traversed from a main function segment of a program, and when the following types of nodes (nodes of preset types) are encountered, the unique number of the node is recorded: (1) input nodes (nodes where input elements are located, such as COBOLCALCALLNode, COBOLEEXECSQLSELECTRON, COBOOLReadNode, etc.); (2) an assignment node (e.g., COBOLMOveNode); (3) a compute node (e.g., COBOLComputereNode, COBOLADDNode, COBOLSubtractNode, COBOLMultiplyNode, COBOLDDividedenode).
When an output node (a node where an output element is located, for example, a cobolexecsuldapted enode, a COBOLWriteNode) is encountered, the number of an input node, an assignment node, or a computation node, which is recorded before the output node, and the number of the output node are sequentially formed into an execution path (also referred to as a syntax execution path). And continuously traversing the nodes downwards, wherein each time an output node is encountered, the numbers of the input nodes, the assignment nodes or the calculation nodes which are recorded before the output node and do not form the execution path and the number of the current output node can form an execution path.
For example, the set of nodes includes: an input node 1, a compute node 2, an output node 3, an input node 4, an assignment node 5, and an output node 6. The numbers of input node 1, compute node 2, output node 3 may form an execution path (1, 2, 3) and the numbers of input node 4, assign node 5, output node 6 may form an execution path (4, 5, 6).
It should be noted that when a node of the cobolperforrnode type (i.e. a node corresponding to a perforrnode statement) is encountered, since the PERFORM process name actually calls a program segment defined by the process name, it needs to jump to the segment of the perforrnode for searching, and when the segment ends, the next node returning to the cobolperforrnode continues to traverse.
Thus, a plurality of execution paths are obtained according to a plurality of nodes.
In operation S223, at least one input-output relationship pair is determined based on the at least one execution path, wherein the input-output relationship pair includes a correspondence between an input element and an output element.
According to an embodiment of the present disclosure, the following operations are performed for each execution path: acquiring each output element in the nodes of the output type, traversing the nodes corresponding to the numbers in the execution path from back to front, and searching the input elements corresponding to each output element; and forming an input-output relationship pair by each output element and the input element corresponding to the output element.
According to an embodiment of the present disclosure, the output element includes a first output element. Traversing nodes corresponding to the numbers in the execution path from back to front, and searching the input element corresponding to the first output element comprises: putting the first output element into a preset element set; traversing nodes corresponding to the numbers in the execution path from back to front, and if the result elements of the accessed nodes appear in the element set, putting the non-result elements in the nodes into the element set; until the non-result element placed in the set of elements is an input element, the input element is considered to correspond to the first output element.
For example, the generated execution paths are fetched one by one, and the following operations are performed for each execution path:
the nodes corresponding to the numbers are traversed from the tail number of the execution path to the front, and the first output element in the tail output node is put into an element set (also called an infected variable set). Then, the node corresponding to each number in the execution route is fetched forward, when a result variable (i.e. a variable modified by assignment) appears in the element set in a certain node, then other non-result variables in the node are all considered to be infected, and the non-result variables are added to the element set. Until an infected variable in a node is encountered, the input element and the output element placed in the earliest set form an input-output association pair, and the input-output association pair is stored in the association database. In the above manner, the input element corresponding to each output element in the output node is obtained, and an input-output association relationship pair (i.e., the above input-output relationship pair) is obtained corresponding to each output element.
Taking the first execution path as an example, the first execution path includes, for example, the node number: 205, 568, 1008, 1023, 1354, 1867.
The node number 1867 is a cobolexecsulnptadenode node, i.e., a node where the data table is updated, and belongs to an output node, and the node includes a plurality of output elements OUT1, OUT2, … …, OUTn. Outl is processed first, placing Out1 in the element set. Next, a node 1354 is extracted, and it is assumed that the node is a COBOLMoveNode node, that is, a node that assigns a variable, and the statement of the node that assigns includes: MOVE VAR1 to OUT1, where OUT1 is the result variable of the value-assigned node, the non-result variable VAR1 in that node may be placed into the set of elements. Next, we take 1023 the node, and assume that the node is an input node, the result variable of the input node is VAR1, and the non-result variable is input element READ1, since VAR1 is located in the element set, READ1 can be considered infected, and the input element READ1 and the output element OUT1 can be combined into an input-output association pair.
In the above manner, the input-output association relationship pairs corresponding to OUT2, … … and OUTn are obtained in sequence.
Based on the above process, a plurality of input-output association relation pairs in each execution route can be obtained.
In operation S224, the input elements and the files related to the output elements in the input-output relationship pairs of the multiple execution paths are associated with the function modules.
For example, the first execution path includes the input and output association relationship pair: OUTn-READ, OUT1-READ1, OUT2-READ 2. The files involved in READn may be associated with the program by output elements OUT1, OUT 2. And executing the same operation on each execution path in the program to obtain a complete association relation between the program and the plurality of files.
In the above manner, the association relationship between each program and a plurality of files can be obtained.
According to an embodiment of the disclosure, the method further comprises: an incidence relation among a plurality of files is determined. And determining the association relation among the plurality of functional modules based on the association relation between each functional module and the plurality of files and the association relation among the plurality of files, and storing or outputting the association relation.
An association relationship also exists between a plurality of files, for example, the plurality of files comprise a data table OTHPPIID and a data table DTHPPIMR, and an association relationship exists between the two data tables. If it is known that there is an association between data table othppid and program P119031 and program PI19080, and there is an association between data table dthppdimr and program PI19023, program PI19024 and program PI19081, then it can be considered that there is an association between program PI19031, program PI19080 and program PI19023, program PI19024 and program PI 19081. Of course, there are also relations between programs PI19031 and PI19080, and between programs PI19023 and PI 19024.
The obtained association relationship can be stored after obtaining the association relationship between programs and files, between files and programs, and between programs and programs. When necessary, the user can inquire about a part of the incidence relation concerned by the user through the browser and can display the incidence relation in the form of an incidence relation graph.
Fig. 5 schematically shows an association diagram according to an embodiment of the present disclosure.
As shown in fig. 5, the association between each program and each file can be checked.
When the data of a certain file is changed or a certain program is changed, a user can clearly check all programs related to the modification, the influence range of the modification is defined, and the user can determine which codes of the programs need to be tested again according to the influence range.
The file of the embodiment of the present disclosure may also refer to an interface, and through the above manner, the association relationship between the program and the interface may also be obtained.
In summary, in the method provided by the embodiment of the present disclosure, the syntax node in the program code is first extracted, the interference information such as the comment is removed in the process of extracting the node, and the codes introduced from the external program are also associated to form a complete syntax node set of the program. And then, by combing the execution paths of the grammar nodes and performing traversal analysis on the paths, acquiring infection relations of fields such as transmission, operation and the like among the grammar nodes, finally judging whether the fields of different programs, interfaces, data tables and data files are associated or not, and finally recording the complete association relations into a database for use.
Therefore, when the association relation between the program and the file is extracted, analysis can be performed according to the execution process of the statement, the situation of the statement that the program can be actually executed is considered, the association is not considered as long as the calling statement occurs in the program, and the influence range is prevented from being expanded due to junk codes.
Moreover, since the association relationship between each program and a plurality of files is determined based on the fields (input elements, output elements) called or written, the method of the embodiment of the present disclosure can obtain not only the association relationship between the program and the file entity but also the association relationship between the program and the fields of the files.
Therefore, the method of the embodiment of the present disclosure can make the impact range of the modification accurate to the field level, and when there is a change in either the field (the field of the data table, the field of the data file, the parameter of the interface) or the entity (the program, the data table, the data file, the interface), such as adding or deleting a certain field, adding or subtracting a certain entity, the affected entity and the field range can be checked by the method of the embodiment of the present disclosure.
The embodiment of the disclosure also provides a device for determining the incidence relation.
Fig. 6 schematically shows a block diagram of an apparatus 600 according to an embodiment of the present disclosure.
As shown in fig. 6, the apparatus 600 includes:
a receiving module 610, configured to receive codes of a plurality of functional modules.
And the association module 620 is used for determining association relations between each functional module and the plurality of files based on the codes, and storing or outputting the association relations.
Fig. 7 schematically illustrates a block diagram of an association module 620 according to an embodiment of the present disclosure.
As shown in fig. 7, the association module 620 includes:
a node module 721, configured to extract a plurality of nodes from the code of the function module, and determine the type and number of each node, where the nodes include an input type node and an output type node, the input type node is used to read an input element from a file, and the output type node is used to write an output element to the file;
a path module 722 for deriving at least one execution path based on the plurality of nodes;
an input output module 723, configured to determine at least one input output relationship pair based on the at least one execution path, where the input output relationship pair includes a correspondence between an input element and an output element; and
and the association module 724 is used for establishing an association relationship between the file related to the input element and the output element in at least one input-output relationship pair and the functional module.
Any number of modules, sub-modules, units, sub-units, or at least part of the functionality of any number thereof according to embodiments of the present disclosure may be implemented in one module. Any one or more of the modules, sub-modules, units, and sub-units according to the embodiments of the present disclosure may be implemented by being split into a plurality of modules. Any one or more of the modules, sub-modules, units, sub-units according to embodiments of the present disclosure may be implemented at least in part as a hardware circuit, such as a Field Programmable Gate Array (FPGA), a Programmable Logic Array (PLA), a system on a chip, a system on a substrate, a system on a package, an Application Specific Integrated Circuit (ASIC), or may be implemented in any other reasonable manner of hardware or firmware by integrating or packaging a circuit, or in any one of or a suitable combination of software, hardware, and firmware implementations. Alternatively, one or more of the modules, sub-modules, units, sub-units according to embodiments of the disclosure may be at least partially implemented as a computer program module, which when executed may perform the corresponding functions.
It should be noted that, the data processing system part in the embodiment of the present disclosure corresponds to the data processing method part in the embodiment of the present disclosure, and the description of the data processing system part specifically refers to the data processing method part, which is not described herein again.
The embodiment of the disclosure also provides the electronic equipment. The electronic device includes: one or more processors and storage for storing one or more programs, wherein the one or more programs, when executed by the one or more processors, cause the one or more processors to implement the methods of the embodiments of the present disclosure.
Fig. 8 schematically shows a block diagram of an electronic device adapted to implement the above described method according to an embodiment of the present disclosure. The computer system illustrated in FIG. 8 is only one example and should not impose any limitations on the scope of use or functionality of embodiments of the disclosure.
As shown in fig. 8, an electronic device 800 according to an embodiment of the present disclosure includes a processor 801 that can perform various appropriate actions and processes according to a program stored in a Read Only Memory (ROM)802 or a program loaded from a storage section 808 into a Random Access Memory (RAM) 803. The processor 801 may include, for example, a general purpose microprocessor (e.g., a CPU), an instruction set processor and/or associated chipset, and/or a special purpose microprocessor (e.g., an Application Specific Integrated Circuit (ASIC)), among others. The processor 801 may also include onboard memory for caching purposes. The processor 801 may include a single processing unit or multiple processing units for performing different actions of the method flows according to embodiments of the present disclosure.
In the RAM 803, various programs and data necessary for the operation of the electronic apparatus 800 are stored. The processor 801, the ROM 802, and the RAM 803 are connected to each other by a bus 804. The processor 801 performs various operations of the method flows according to the embodiments of the present disclosure by executing programs in the ROM 802 and/or RAM 803. Note that the programs may also be stored in one or more memories other than the ROM 802 and RAM 803. The processor 801 may also perform various operations of method flows according to embodiments of the present disclosure by executing programs stored in the one or more memories.
Electronic device 800 may also include input/output (I/O) interface 805, input/output (I/O) interface 805 also connected to bus 804, according to an embodiment of the present disclosure. Electronic device 800 may also include one or more of the following components connected to I/O interface 805: an input portion 806 including a keyboard, a mouse, and the like; an output section 807 including a signal such as a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), and the like, and a speaker; a storage portion 808 including a hard disk and the like; and a communication section 809 including a network interface card such as a LAN card, a modem, or the like. The communication section 809 performs communication processing via a network such as the internet. A drive 810 is also connected to the I/O interface 805 as necessary. A removable medium 811 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like is mounted on the drive 810 as necessary, so that a computer program read out therefrom is mounted on the storage section 808 as necessary.
According to embodiments of the present disclosure, method flows according to embodiments of the present disclosure may be implemented as computer software programs. For example, embodiments of the present disclosure include a computer program product comprising a computer program embodied on a computer readable storage medium, the computer program containing program code for performing the method illustrated by the flow chart. In such an embodiment, the computer program can be downloaded and installed from a network through the communication section 809 and/or installed from the removable medium 811. The computer program, when executed by the processor 801, performs the above-described functions defined in the system of the embodiments of the present disclosure. The systems, devices, apparatuses, modules, units, etc. described above may be implemented by computer program modules according to embodiments of the present disclosure.
The present disclosure also provides a computer-readable storage medium, which may be contained in the apparatus/device/system described in the above embodiments; or may exist separately and not be assembled into the device/apparatus/system. The computer-readable storage medium carries one or more programs which, when executed, implement the method according to an embodiment of the disclosure.
According to an embodiment of the present disclosure, the computer-readable storage medium may be a non-volatile computer-readable storage medium. Examples may include, but are not limited to: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
For example, according to embodiments of the present disclosure, a computer-readable storage medium may include the ROM 802 and/or RAM 803 described above and/or one or more memories other than the ROM 802 and RAM 803.
The embodiments of the present disclosure have been described above. However, these examples are for illustrative purposes only and are not intended to limit the scope of the present disclosure. Although the embodiments are described separately above, this does not mean that the measures in the embodiments cannot be used in advantageous combination. The scope of the disclosure is defined by the appended claims and equivalents thereof. Various alternatives and modifications can be devised by those skilled in the art without departing from the scope of the present disclosure, and such alternatives and modifications are intended to be within the scope of the present disclosure.

Claims (9)

1. A method implemented by an electronic device of determining an associative relationship, comprising:
code for receiving a plurality of functional modules; and
determining an association relation between each functional module and a plurality of files based on the codes, and storing or outputting the association relation;
wherein the determining, based on the code, an association between each of the functional modules and a plurality of files comprises:
extracting a plurality of nodes from the code of the functional module, and determining the type and the number of each node, wherein the nodes comprise nodes of an input type and nodes of an output type, the nodes of the input type are used for reading input elements from the file, and the nodes of the output type are used for writing output elements into the file;
obtaining at least one execution path based on the plurality of nodes;
determining at least one input-output relationship pair based on the at least one execution path, wherein the input-output relationship pair comprises a correspondence between an input element and an output element; and
establishing the incidence relation between the input element and the file related to the output element in the at least one input-output relation pair and the functional module;
wherein the obtaining at least one execution path based on the plurality of nodes comprises:
traversing the plurality of nodes, forming an execution path for each node visited to an output type,
in the process of traversing the plurality of nodes, if the accessed node is a node of a preset type, recording the number of the node, and if the accessed node of an output type, sequentially storing the recorded number of the node of the preset type and the number of the node of the output type as an execution path;
the preset type nodes comprise at least one of input type nodes, assignment type nodes and calculation type nodes.
2. The method of claim 1, wherein the extracting a plurality of nodes from the code of the functional module and determining the type and number of each node comprises:
dividing the code into a plurality of statements according to the sequence;
determining the type of a node corresponding to each statement based on the content of each statement;
extracting attribute information of nodes of corresponding types from each statement so as to convert the statement into the nodes;
and numbering the nodes in sequence according to the sequence of the statements in the codes.
3. The method of claim 1, wherein the determining at least one input-output relationship pair based on the at least one execution path comprises:
for each of the execution paths, performing the following:
acquiring each output element in the nodes of the output type, traversing the nodes corresponding to the numbers in the execution path from back to front, and searching for the input element corresponding to each output element; and
and forming each output element and the input element corresponding to the output element into one input-output relationship pair.
4. The method of claim 3, wherein:
the output element comprises a first output element;
traversing nodes corresponding to the numbers in the execution path from back to front, and searching for the input element corresponding to the first output element comprises:
putting the first output element into a preset element set;
traversing nodes corresponding to the numbers in the execution path from back to front, and if the result elements of the accessed nodes appear in the element set, putting the non-result elements in the nodes into the element set;
and considering the input element to correspond to the first output element until the non-result element put in the element set is an input element.
5. The method of claim 2, wherein the segmenting the code into a plurality of statements in a sequential order comprises:
extracting codes of a data part and a process part in the codes;
removing labels and annotations in the code of the data portion and the code of the process portion;
and respectively dividing the code of the data part and the code of the process part into a plurality of statements in sequence.
6. The method of claim 1, further comprising:
determining an association relationship between the plurality of files;
and determining the association relation among the plurality of functional modules based on the association relation between each functional module and the plurality of files and the association relation among the plurality of files, and storing or outputting the association relation.
7. An apparatus for determining an associative relationship, comprising:
the receiving module is used for receiving codes of a plurality of functional modules;
the association module is used for determining the association relationship between each functional module and a plurality of files based on the codes and storing or outputting the association relationship;
wherein the association module comprises:
a node module, configured to extract a plurality of nodes from the code of the function module, and determine a type and a number of each node, where the nodes include a node of an input type and a node of an output type, the node of the input type is used to read an input element from the file, and the node of the output type is used to write an output element to the file;
a path module, configured to obtain at least one execution path based on the plurality of nodes;
an input-output module for determining at least one input-output relationship pair based on the at least one execution path, wherein the input-output relationship pair comprises a correspondence between an input element and an output element; and
the association module is used for establishing the association relationship between the input element and the file related to the output element in the at least one input and output relationship pair and the functional module;
wherein the obtaining at least one execution path based on the plurality of nodes comprises:
traversing the plurality of nodes, forming an execution path for each node visited to an output type,
in the process of traversing the plurality of nodes, if the accessed node is a node of a preset type, recording the number of the node, and if the accessed node of an output type, sequentially storing the recorded number of the node of the preset type and the number of the node of the output type as an execution path;
the preset type nodes comprise at least one of input type nodes, assignment type nodes and calculation type nodes.
8. An electronic device, comprising:
one or more processors;
a storage device for storing one or more programs,
wherein the one or more programs, when executed by the one or more processors, cause the one or more processors to implement the method of any of claims 1-6.
9. A computer readable storage medium having stored thereon executable instructions which, when executed by a processor, cause the processor to carry out the method of any one of claims 1 to 6.
CN201910658724.8A 2019-07-19 2019-07-19 Relationship determination method and apparatus, electronic device, and computer-readable storage medium Active CN110362538B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910658724.8A CN110362538B (en) 2019-07-19 2019-07-19 Relationship determination method and apparatus, electronic device, and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910658724.8A CN110362538B (en) 2019-07-19 2019-07-19 Relationship determination method and apparatus, electronic device, and computer-readable storage medium

Publications (2)

Publication Number Publication Date
CN110362538A CN110362538A (en) 2019-10-22
CN110362538B true CN110362538B (en) 2022-02-25

Family

ID=68220443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910658724.8A Active CN110362538B (en) 2019-07-19 2019-07-19 Relationship determination method and apparatus, electronic device, and computer-readable storage medium

Country Status (1)

Country Link
CN (1) CN110362538B (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214091A (en) * 2010-04-09 2011-10-12 株式会社日立制作所 Method and system for positioning required change influence range during software development
CN104965721A (en) * 2014-07-10 2015-10-07 腾讯科技(深圳)有限公司 Method and apparatus for updating an application
CN107885502A (en) * 2017-11-10 2018-04-06 广州市千钧网络科技有限公司 Interface processing method, processing unit, interface managerial method and managing device
CN109871229A (en) * 2019-01-16 2019-06-11 平安普惠企业管理有限公司 Management method, device, storage medium and the terminal device of code text

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8850268B2 (en) * 2011-11-23 2014-09-30 Brainlab Ag Analysis of system test procedures for testing a modular system
CN103136036A (en) * 2011-12-03 2013-06-05 鸿富锦精密工业(深圳)有限公司 System and method for function module order management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214091A (en) * 2010-04-09 2011-10-12 株式会社日立制作所 Method and system for positioning required change influence range during software development
CN104965721A (en) * 2014-07-10 2015-10-07 腾讯科技(深圳)有限公司 Method and apparatus for updating an application
CN107885502A (en) * 2017-11-10 2018-04-06 广州市千钧网络科技有限公司 Interface processing method, processing unit, interface managerial method and managing device
CN109871229A (en) * 2019-01-16 2019-06-11 平安普惠企业管理有限公司 Management method, device, storage medium and the terminal device of code text

Also Published As

Publication number Publication date
CN110362538A (en) 2019-10-22

Similar Documents

Publication Publication Date Title
US20200293293A1 (en) Pruning Engine
US9858270B2 (en) Converting data into natural language form
US10664660B2 (en) Method and device for extracting entity relation based on deep learning, and server
US11740876B2 (en) Method and system for arbitrary-granularity execution clone detection
US9053180B2 (en) Identifying common data objects representing solutions to a problem in different disciplines
EP4202644A1 (en) Automated dependency analyzer for heterogeneously programmed data processing system
CN108197036B (en) Method and apparatus for determining coverage information for incremental codes
CN109857641B (en) Method and device for detecting defects of program source file
US20200073927A1 (en) Contraction aware parsing system for domain-specific languages
US11556812B2 (en) Method and device for acquiring data model in knowledge graph, and medium
US20130125098A1 (en) Transformation of Computer Programs
US11531693B2 (en) Information processing apparatus, method and non-transitory computer readable medium
CN110059006B (en) Code auditing method and device
CN108563561B (en) Program implicit constraint extraction method and system
WO2021253641A1 (en) Shading language translation method
CN110362538B (en) Relationship determination method and apparatus, electronic device, and computer-readable storage medium
CN109376220B (en) Method and device for acquiring information
JP4361299B2 (en) Evaluation expression extraction apparatus, program, and storage medium
JP2007122207A (en) Program analysis program, program analyzing device and program analyzing method
Shuvo et al. Recommending Code Reviews Leveraging Code Changes with Structured Information Retrieval
US20060004863A1 (en) Method, system and program for simplifying data flow in a statement with sequenced subexpressions
US9471890B2 (en) Enterprise decision management
CN111736896B (en) Code processing method, device, electronic equipment and medium
US20220004708A1 (en) Methods and apparatus to improve disambiguation and interpretation in automated text analysis using structured language space and transducers applied on automatons
CN116755709A (en) Data processing method, device, electronic equipment and storage medium

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