Abstract: The objective of the present invention is to easily identify differential locations among a plurality of source code units and to allow the scope of effect imparted by the differential locations to be capable of being easily understood even for software which as an embedded system is relatively large scale and complex. A software analysis system for an embedded system in which a computer system has been embedded has a similarity degree measurement unit (132) which treats dependency relationships within source code controlling the embedded system as a graph structure and measures a degree of similarity for one or more source code units and an image display unit (14) which displays the degree of similarity.
SOFTWARE ANALYSIS PROGRAM AND SOFTWARE ANALYSIS SYSTEM
Technical Field
The present invention relates to a software analysis
program suitable for development, verification, and
10 maintenance support of software, and a software analysis
system that uses this program.
Background Art
[0002]
15 In technical fields of elevators, vehicles,
construction machinery, etc., an embedded control device for
controlling a control object with so-called embedded
software is used. Regarding the embedded software, there
are enumerated points as its advantages that it can realize
20 a soft and advanced control as compared with conventional
methods based on a mechanical mechanism and an electric
circuit, and a large number of derivative products can be
developed by partial alteration of the software, and the
like.
25 [0003]
In recent years, control processing that is required
in the embedded control devices become more complicated year
by year and a dependence relationship between control
variables becomes complicated, which makes it difficult to
5 develop the software. On the other hand, a software
development cycle is required to be shortened. In contrast
to this, in order to develop complicated and large-sized
software in a short time, derivational development that
reuses existing software as efficiently as possible becomes
10 important.
[0004]
In the derivational development that reuses the
existing software, a difference part between an existing
product and a new product is subjected to change development
15 or new development. During doing this, in developing
complicated software in a short time, it is an indispensable
technology to understand the difference part between the
existing product and the new product efficiently.
[0005]
20 As a technology of specifying the difference part of
software, a technology of specifying a change part by
contrasting two source codes is known and, for example, is
described in Patent Literature 1.
[0006]
Moreover, on the other hand, in order to understand a
structure of a present source code efficiently, there is
known a technology that analyzes an existing source code
control flow and a data dependence relationship and displays
5 an application structure with a graph comprised of nodes and
links, which is described, for example, in Patent Literature
Citation List
10 Patent Literature
[0007] PTL 1: Japanese Patent Application Laid-Open No.
2004-326337
PTL 2: W02009/011056
15 Summary of Invention
Technical Problem
[0008]
Among the above-mentioned conventional technologies,
one that is described in Patent Literature 1 performs
20 improvement of understandability of the source code that
proceeds toward complication by extracting a difference
between two source codes. However, for the source code that
proceeds toward large-scale and complication, if only with a
difference between the source codes, there are problems that
25 it is hard to specify a change part causing a change to
occur in a variable dependence relationship substantially
and to specify an area of influence that the change part has
on the surroundings.
[0009]
5 Moreover, in what is described in Patent Literature 2,
the variable dependence relationship of each one of source
codes cannot be understood, and besides, it remains for
proposing a refactoring candidate part based on complexity
of an application model, and cannot make it possible to
10 understand a different point of the two (new and old) source
codes.
[OOlO]
An object of the present invention is to solve the
problems of the above-mentioned conventional technologies,
15 and to make it possible to easily specify a difference part
of one or more source codes in control software of an
embedded system that is large-scaled and complicated, and to
easily specify an area of influence that the difference part
has on the surroundings.
20
Solution to Problem
[OOll]
In order to solve the above-mentioned problems, the
present invention is a software analysis system that
25 analyzes multiple source codes inputted into a computer and
specifies the change part of the source code, extracts a
dependence relationship of a variable or a function from
each of at least two source codes among multiple source
codes, creates a graphical structure comprised of nodes and
5 links, measures a similarity of the graphical structures
corresponding to two respective source codes, and outputs
it to the outside of the computer.
Advantageous Effects of Invention
According to the present invention, even in the case
of large-scaled and complicated software (computer program)
as an embedded system, it is possible to easily specify the
difference part between two pieces of software and to easily
15 understand an area on which the difference part has an
influence.
Brief Description of Drawings
[0013]
20 Figure 1 is a diagram showing a display screen of a
software analysis system of one embodiment according to the
present invention.
Figure 2 is a block diagram showing an entire
configuration of the one embodiment according to the present
25 invention.
Figure 3 is a diagram showing a source code management
unit in the one embodiment.
Figure 4 is a diagram showing source code data in the
one embodiment.
5 Figure 5 is a flowchart showing processing of the
source code management unit in the one embodiment.
Figure 6 is a diagram showing source code version data
in the one embodiment.
Figure 7 is a diagram showing a data flow management
10 unit in the one embodiment.
Figure 8 is a flowchart showing processing of a source
code analysis part in the one embodiment.
Figure 9 is a diagram showing a data flow in the one
embodiment.
15 Figure 10 is a flowchart showing processing of a data
flow registration part in the one embodiment.
Figure 11 is a diagram showing data flow version data
in the one embodiment.
Figure 12 is a diagram showing a difference analysis
I
20 unit in the one embodiment.
Figure 13 is a flowchart showing processing of a
comparison object selection part in the one embodiment.
Figure 14 is a flowchart showing processing of a
source code difference analysis part in the one embodiment.
Figure 15 is a diagram showing a source code
difference in the one embodiment.
Figure 16 is a flowchart showing processing of a
similarity measurement part in the one embodiment.
5 Figure 17 is a diagram showing a similarity in the one
embodiment.
Figure 18 is a diagram showing an image display unit
in the one embodiment.
Figure 19 is a flowchart showing processing of an
10 analysis result output part in the one embodiment.
Figure 20 is a diagram showing display in the analysis
result output part in the one embodiment.
Figure 21 is a diagram showing the display in the
analysis result output part in the one embodiment.
15 Figure 22 is a diagram showing a source code version
data in the one embodiment.
Figure 23 is a diagram showing the source code
difference in the one embodiment.
Figure 24 is a diagram showing the similarity in the
20 one embodiment.
Figure 25 is a diagram showing the display in the
analysis result output part in the one embodiment.
Description of Embodiments
25 [0014]
The present invention relates to a software part
creation support device of an embedded system in which a
computer system is embedded in order to realize a specific
function of a product that requires electronic control such
5 as household appliances, industrial apparatuses, and medical
equipment. This is suitable for software development,
verification, and maintenance support of: a system whose
necessary functions cover a lot of ground, especially,
cellular phones, digital appliances, and further
10 transportation equipment such as a vehicle, a railroad, and
an elevator; and a large-scaled system in which multiple
pieces of hardware and multiple pieces of software are
combined.
15
[0015]
Hereafter, with reference to drawings, one embodiment
according to the present invention will be explained.
Fig. 1 is a diagram showing one example of an output
20 screen of a software analysis system according to the
present invention. Not only by designating the source code
as an input and specifying a deference part of the source
code, but also by interpreting a dependence relationship in
the source code as a graphical structure comprised of links
25 and nodes and measuring a similarity of the graph, not only
a difference part of one or more source codes is found by
the source codes but also the similarity of the graph is
evaluated as an index, and an output as shown in Fig. 1 is
displayed on the screen.
5 [0016]
Fig. 2 is a block diagram showing a whole image of a
software analysis system 1. The software analysis system
has: a program that includes a source code management unit
11, a data flow management unit 12, a difference analysis
10 unit 13, and an image display unit 14; and a configuration
management DB(Data Base) 15 for storing data that is
inputted and outputted when this program is processed by a
computer. The source code management unit 11 inputs therein
the source code data 151 from the configuration management
15 DB 15 as an input, and outputs source code version data 152
for performing version management of the source code. The
data flow management unit 12 inputs therein the source code
stored in the source code data 151 as an input, creates data
flow data 153 that indicates the dependence relationship of
20 the variable used in the source code, and outputs data flow
version data 154. The difference analysis unit 13 inputs
therein the source code version data 152, the data flow
version data 154, and information that a user 5 operates to
select using an operation unit 3 from a comparison object
25 selection part 133 as its inputs, and outputs source code
difference data 155 that is difference information between
the source codes and similarity data 156 that is an index
indicating a similarity of data flows. The image display
unit 14 inputs therein the source code difference data 155
5 and the similarity data 156, and displays input information
as an image in a display unit 4. Incidentally, the software
analysis system 1 may be installed in another computer
connected to a computer 2 that the user 5 uses as a terminal
though a network etc. or may be installed inside the
10 computer 2.
[0017]
Fig. 3 is a diagram showing a detailed configuration
of the source code management unit 11. Thee source code
management unit 11 includes a source code registration part
15 111 that registers the source code newly stored in the
source code data 151 in the source code version data 152,
and the source code registration part 111 inputs therein the
source code stored in the source code data 151 as an input
and registers the source code data 151 in the source code
20 version data 152 that is a database for storing multiple
pieces of inputted source code data being associated with
respective versions. Incidentally, the source code stored
in the source code data 151 may be not only a file of the
source code described in a high-level language such as C
language, but may be also an object file after compilation
or an execution log of a program after the compilation.
[0018]
Fig. 4 is a diagram showing details of the source code
5 data 151. A source code file 1511 is comprised of a
processing procedure of a function func - d. Incidentally,
variables a, b, c, d, and e used in the source code file
1511 shall be defined as global variables. In the function
func - d, processing of updating the variable c from values of
10 the variables a and b is performed, and processing of
updating a variable e from values of the variables c and d
is performed.
[0019]
Fig. 5 is a diagram showing a detailed execution flow
15 of the source code registration part 111. The processing
begins from step S1110. At step S1111, the source code data
151 is inputted. At step S1112, the inputted source code
data 151 ?s registered in the source code version data 152
being associated with each version. This association can be
20 realized, for example, by acquiring a version of the source
code from a file name of the source code etc. stored in the
source code data 151. The processing is ended at step ,51113.
Thus, by registering the source code being associated with
each version, selection of a comparison object by the
comparison object selection part 133 being described later
becomes easy.
[0020]
Fig. 6 is a diagram showing details of the source code
5 version data 152. Both a source code file 1521 and a source
code file 1522 show source code files with different
versions that are registered in the source code version data
152, respectively. It can be seen that the source code file
1522 has an extra line in which processing of updating the
10 variable a using a value of the variable d as compared with
the source code file 1521.
[0021]
Fig. 7 is a diagram showing a detailed configuration
of the data flow management unit 12. The data flow
15 management unit 12 includes a source code analysis part 121
that inputs therein the source code stored in the source
code data 151, analyzes a variable dependence relationship
in the source code, and creates the data flow, and a data
flow registration part 122 that registers a data flow
20 diagram in the data flow version data 154, and inputs
therein the source code stored in the source code data 151,
creates the data flow whose variable dependence relationship
is graphed from the inputted source code file, and registers
the created data flow in the data flow version data 154 that
is a database for storing it being associated with each
version.
[0022]
Fig. 8 is a diagram showing a detailed execution flow
5 of the source code analysis part 121. The processing begins
from step ,91210. At step S1211, the source code data 151 is
inputted. At step S1212, the inputted source code is
analyzed and the variable dependence relationship in the
source code is extracted. At step ,51213, the data flow is
10 created from the variable dependence relationship extracted
at step S1212. At step S1214, the data flow created at step
S1213 is registered in the data flow data 153 that is a
database of the data flow. The processing is ended at step
S1215.
15 [0023]
Fig. 9 is a diagram showing details of the data flow
data 153. A matrix 1531 is a diagram that shows the
variable dependence relationship in the source code file
1511 in tabular form. A data flow 1532 is a diagram that
20 shows the variable dependence relationship in the source
code file 1511 in graphical form. In this embodiment, the
data flow 1532 shows the variable dependence relationship
with a variable represented by a node and a substitution
relationship between the variables represented by a link
25 shown by an arrow. For example, here, a situation that the
variable c is operated based on the variable a and the
variable b is expressed with nodes representing the
variables a, b, and c and links connecting these nodes.
[0024]
5 Fig. 10 is a diagram showing a detailed execution flow
of the data flow registration part 122. The processing
begins from step ,531220. At step ,51221, the data flow is
inputted from the data flow data 153. At step S1222, the
data flow inputted at step S1221 is registered in the data
10 flow version data 154 that is a version management database
of the data flow, being associated with each version of the
source code. The processing is ended at step S1223. Thus,
by registering the data flow being associated with each
version, selection of the comparison object by the
15 comparison object selection part 133 being described later
becomes easy.
[0025]
Fig. 11 is a diagram showing details of the data flow
version data 154. A matrix 1541 is a diagram that shows a
20 variable dependence relationship in the source code file
1521 of a certain version in tabular form. A data flow 1542
is a diagram that shows the variable dependence relationship
in the source code file 1521 in graphical form. A matrix
1543 is a diagram that shows a variable dependence
25 relationship in the source code file 1522 of another version
in tabular form. A data flow 1544 is a diagram that shows
the variable dependence relationship in the source code file
1522 in graphical form.
[0026]
5 Fig. 12 is a diagram showing a detailed configuration
of the difference analysis unit 13. The difference analysis
unit 13 includes: the comparison object selection part 133
for selecting data information of the version of the source
code indicating the comparison object, etc. by the user 5
10 through the operation unit 3; a source code difference
analysis part 131 for analyzing a difference between the
source code versions; and a similarity measurement part 132
for measuring the similarity between the data flows. The
difference analysis unit 13 inputs therein data information
15 indicating the comparison object from the user 5 through the
operation unit 3, analyzes a difference between the source
codes, outputs the source code difference data using the
source code version data and the data flow version as inputs
based on the data information of the comparison object, and
20 at the same time, outputs the similarity data by measuring
the similarity of the data flows.
[0027]
Fig. 13 is a diagram showing a detailed execution flow
of the comparison object selection part 133. The processing
25 begins from step S1310. At step S1311, information data of
the comparison object is inputted from the user 5 through
the operation unit 3. As the information data, version
information and release information of the source code are
enumerated. At step S1312, it is judged whether two
5 comparison objects inputted at step S1311 have been selected.
When the two comparison objects have been selected (YES),
the process proceeds to step S1313, where the processing is
ended. When the two comparison objects have not been
selected (NO), the process proceeds to step S1311, where the
10 processing is continued. Thus, input error by the user, etc.
can be prevented by further installing the processing like
S1312.
[0028]
Fig. 14 is a diagram showing a detailed execution flow
15 of the source code difference analysis part 131. The
processing begins from step S1320. At step S1321, it inputs
comparison object information from the comparison object
selection part 133. At step S1322, it inputs the source
code of the comparison object from the source code version
20 data 152 based on the comparison object information inputted
at step S1321. At step S1323, it analyzes the difference of
a source code which is the basis of the comparison and the
source code of the comparison object inputted at step S1322.
As analytic methods, techniques such as a diff command
25 currently prepared as a shell command, for example, in UNIX
(registered trademark) etc. and a comp command in MS-DOS
(registered trademark) can be used. Thereby, a difference
between source codes described in text etc. can be analyzed.
At step ,51324, the source code difference data analyzed from
5 step S1323 is registered in the source code difference data
155 that is a database of source code difference. The
difference data can be expressed by line number data of the
source code, etc., for example. The processing is ended at
step S1325.
10 [0029]
Fig. 15 is a diagram showing details of an example in
which the source code difference data 155 is displayed in
the source code of a new version. As a result of comparing
a source code file 1551 and a source code file 1552 that
15 are of old and new versions, it turns out that an update
processing of updating the variable a in the source code
file 1552 is a difference between the source code file 1551
. and the source code file 1552.
[0030]
20 Fig. 16 is a diagram showing a detailed execution flow
of the similarity measurement part 132. The processing
begins from step S1330. At step S1331, the comparison
object information is inputted from the comparison object
selection part 133. At step S1332, a data flow of the
25 comparison object is inputted from the data flow version
data 154 based on the comparison object information inputted
at step ,531331. At step S1333, the similarity of adata flow
which is the basis of the comparison and the data flow of
the comparison object inputted at step S1332 is measured.
5 Here, although the similarity may be considered to include a
correlation coefficient, a Hamming distance, centering
resonance analysis, etc., similarity measurement that uses
the correlation coefficient will be described later here.
At step S1334, the similarity measured from step S1333 is
10 registered in the similarity data 156 that is a database of
similarity information. The processing is ended at step
S1335.
[0031]
Fig. 17 is a diagram showing details of the similarity
15 data 156. Comparing a matrix 1561 that expresses a variable
dependence relationship in a source code version 152 in
tabular form and a matrix 1564 that expresses a variable
"dependence relationship in a source code version 152 in
tabular form, it turns out that values of (d, e) differ from
20 each other, being 0 and 1. Comparing a data flow 1562 and a
data flow 1565 each of which expresses the same content in
graphical form, it turns out that a dependence relationship
line toward from the variable d to the variable a is
different. Obtaining the correlation coefficient that is a
25 similarity of the data flow 1562 and the data flow 1565, it
turns out to be 0.87. The correlation coefficient computed
here is defined by r in the following formula.
Here, Xi indicates remaining components of the
matrices 1562 and 1564 each expressing the variable
dependence relationship in tabular form with their diagonal
components excluded. That is, xi1 and xi2 in this case can
10 be written in the following forms, respectively.
Fig. 18 is a dTagram showing a detailed structure of
15 the image display unit 14. The image display unit 14 has a
difference data output part 141 for displaying the source
code difference data 155 and the similarity data 156 in the
display unit 4. The image display unit 14 inputs therein
the source code difference data 155 and the similarity data
20 156 and outputs difference information of the source code
and the similarity between the data flows to the display
unit 4.
[0035]
Fig. 19 is a diagram showing a detailed execution flow
5 of the difference data output part 141. The processing
begins from step S1410. At step S1411, the source code
difference information is inputted from the source code
difference data 155. At step S1412, the similarity
information of the data flow is inputted from the similarity
10 data 156. At step S1413, the source code difference
information and the similarity information that are inputted
from step ,51411 and step 51412 are outputted to the display
unit 4. The processing is ended at step S1414.
[0036]
15 Incidentally, the source code difference information
and the similarity information may be presented to other
computers and users through a medium of a network etc.
without outputting them to the display unit 4.
[0037]
20 Fig. 20 is a diagram showing one example of an image
display result of the image display unit 14. In this
example, a result of comparing a directory A containing a
folder A-1 that has source codes a, b, c, and d and a
directory A' containing a folder A'-1 that has source codes
25 a', b', c', and d' is shown. In a display result 412,
existence of pieces of difference information between the
source codes b and b' and between the source codes d and d'
is highlighted. Moreover, it turns out that while the
similarity between the source codes b and b' is 1.00, the
5 similarity between the source codes d and d' is 0.87. This
shows at a glance that a change of the variable dependence
relationship does not exist between the source codes b and
b' among between the source codes b' and b' and between
source codes d and d', and there is a change of the variable
10 dependence relationship between the source codes d and d'.
[0038]
Incidentally, in this embodiment, although the
difference analysis unit 13 includes both the source code
difference analysis part 131 and the similarity measurement
15 part 132, the source code difference analysis part 131 may
be omitted. However, in this embodiment, since both of the
difference between the source codes and the similarity
between the data flows can be compared by including the
source code difference analysis part 131, it is possible to
20 differentiate and grasp a change of a formal description of
mere source code and a change of description of the source
code that will actually change the variable dependence
relationship. In addition, by having the source code
difference analysis part 131, a specific part where the
25 change has occurred in the source code can be checked, and
the change part can also be specified in a part finer than a
file unit, for example, in information of the line number of
the source code, etc.
[0039]
5 Fig. 21 is a diagram showing one example of the image
display result of the image display unit 14. In the image,
the source code difference between the source codes d and dl,
discrepancy of the data flow, and a value of the similarity
0.87 are displayed.
10 [0040]
Fig. 22 is a diagram showing details of a source code
b and a source code b1 in the source code version data 152.
As shown in the diagram, the source code d' differs from the
source code d in a point that a macro H is used.
15 [0041]
Fig. 23 is a diagram showing details of the source
code difference data 155. In the source code dl, a place
where the macro H is used is highlighted as a difference.
COO421
20 Fig. 24 is a diagram showing details of the similarity
data 156. Since there exists no change between the source
code b and the source code b', a matrix 15671 and a matrix
15681 each of whose variable dependence relationships is
expressed in tabular form have exactly the same values.
25 Moreover, data flows 15672 and 15682 each of whose variable
dependence relationships is expressed in graphical form also
give the same result. Therefore, a correlation coefficient
15673 and a correlation coefficient 15683 each showing the
similarity become 1.00.
5 [0043]
Fig. 25 is a diagram showing one example of the image
display result of the image display unit 14. In this
diagram, an analysis result of an analysis object 421 that
was selected by the user 5 is displayed in window 422, and
10 details of a differentiation result are displayed in window
423. This diagram shows at a glance that although the
source codes b and b' have a difference in the source code,
the data flows indicating the variable dependence relations
are equivalent and the similarity is 1.00.
15 [0044]
Thus, according to this embodiment, since not only the
difference between the source codes but also the similarity
of the'data flows are compared, it is possible to grasp
whether there was actually any change in the variable
20 dependence relationship, not a difference of only
description between mere source codes. Thereby,
specification of the substantial change part of the source
code and an influence that the change part has on the
surroundings substantially can be grasped.
25
[0045]
Hereafter, another embodiment of the present invention
will be explained focusing on a different point from Example
5 1.
[0046]
In this embodiment, as the data flow data 153 and the
data flow version data 154 that are registered in the
configuration management DB, the source code analysis part
10 121 creates a data flow with a function designated as a node
and a calling relationship between functions designated as a
link. In this case, a situation that a function represented
by a certain node is calling a function represented by
another node is represented.
15 [0047]
According to this embodiment, even in the case of a
source code such that calling between functions is
complicated, it becomes possible to easily specify the
change part between versions of the source code, and to
20 easily specify an area of influence that the change part has
on the surroundings.
(Example 3 >
[0048]
Hereafter, further another embodiment of the present
invention will be explained focusing on a different point
from the examples explained heretofore.
[0049]
5 In this embodiment, from a source code installed in an
embedded control device for controlling a control object
such as an elevator, a vehicle, and construction machinery,
a data flow is created by dividing it for each control
period, and is registered in the each data base of the data
10 flow data 153 and the data flow version data 154. In
addition, the similarity between the graphical structures
that were divided for respective control periods is measured.
Processing of dividing the source code to each control
period may be performed in the source code analysis part 121,
15 or the source codes that were divided for respective control
periods may have been inputted in the source code data 151
in advance.
[0050]
The embedded control device, for example, an elevator
20 control device, adopts a so-called data-driven type
calculation model that activates a task in a constant period
or by interruption, updates a control variable based on
inputs of sensors such as a destination floor specifying
button, a door safety sensor, etc., and controls actuators
25 of a motor for door open and shut, a motor for driving a
cage, etc. Moreover, multiple tasks are prepared in
accordance with multiple kinds of control periods or
interruptions. Then, control processing performed in each
task often forms an original feedback loop, individually.
5 Therefore, it is often the case where a reference
relationship of data and a calling relationship of functions
that accompany input from a sensor performed in each task,
and operation and updating of the control variable complete
by control processing that is performed within the same task.
10 In addition, when only the source code related to processing
that is performed at a certain control period is changed, a
range of influence that the change part has on the
surroundings is often within the source code related to the
processing performed in the same control period.
15 [0051]
In this embodiment, the data flow is created being
divided for each control period or each content of
interruption, and measurement of the similarity by the
similarity measurement part 132 is performed.
20 [0052]
According to this embodiment, since the measurement of
the similarity is performed by dividing the graphical
structure to each control period and an area of influence
that the change part has on the surroundings can be
25 predicted and limited in advance, it is possible to reduce
an operation load given by the measurement of the similarity
and to achieve simplification of the data that is presented
to the user through the display unit 4. Especially in the
case where a software scale is large-scale, it is useful to
5 simplify the data and present it to the user in order to
grasp an outline of the change part. Moreover, the change
part can be specified in a task unit smaller than a file
unit of the source code.
[0053]
10 Incidentally, the control period mentioned here is not
limited to a fixed period such as an interval of 10 ms, and
may be, for example, a period of synchronization of the
number of revolutions of an engine that is performed in
synchronization with the number of revolutions of a
15 vehicular engine, and the like.
[0054]
Hereafter, further another embodiment of the present
20 invention will be explained centering on a different point
from the examples explained heretofore.
[OOSS]
In this embodiment, processing of deciding an
important node among all nodes based on the size of the
25 dependence relationship of the variable is performed. The
source code analysis part 121 decides a node whose reference
relationship of data is large in number to be an important
node when creating the data flow, and registers a data flow
obtained by thinning out nodes except the important node and
5 unnecessary links in the data flow data 153 and the data
flow version data 154.
[0056]
Here, as one example of a size of the reference
relationship of data, a node that represents the variable a
10 and a node that represents the variable c shown in the data
flow diagram of Fig. 1 will be explained. Since the
variable c is decided based on the variables a and b and is
also referred to by the variable e, three reference
relationships of data exist for the variable c. On the
15 other hand, since the variable a is referred to only by the
variable c, only one reference relationship of data exists.
Thus, the size of the reference relationship of data can be
judged.
[0057]
20 Incidentally, the important node may be decided based
on statistical processing that sees the size of the data
reference relationship from the whole of the source code, or
may be decided based on a predetermined threshold.
[0058]
According to this embodiment, the measurement of the
similarity by the similarity measurement part 132 is
performed on the data flow represented only with the
important nodes, it is possible to reduce an arithmetic load
5 given by the measurement of the similarity, and to achieve
simplification of the data that is presented to the user
through the display unit 4.
[0059]
In the foregoing, although the embodiments of the
10 present invention were explained, each of the inventions
indicated by these embodiments shall not be grasped as an
independent invention, they can be carried out being
combined appropriately, and it is obvious that such a
combination thereof does not require trail and error for a
15 person skilled in the art.
Reference Signs List
[0060] l...Software analysis system
2...Computer
20 3...Control unit
4...Display unit
5. . .User
11 ... Source code management unit
12 ... Data flow management unit
13 ... Difference analysis unit
14 ... Image display unit
15 ... Configuration management DB
111 ... Source code registration part
121 ... Source code analysis part
122 ... Data flow registration part
131 ... Source code difference analysis part
132 ... Similarity measurement part
133.,.Comparison object selection part
141 ... Difference data output part
151 ... Source code data
152 ... Source code version data
153 ... Data flow data
154 ... Data flow version data
155 ... Source code difference data
156 ... Similarity data
CLAIMS AMENDED UNDER ARTICLE 19
We Claim:
[Claim 11
A software analysis system that analyzes a plurality
of source codes inputted into a computer and specifies a
5 change part of the source code,
characterized by:
extracting a dependence relationship of a global
variable from each of at least two source codes among the
plurality of source codes;
10 creating a graphical structure that contains a node
representing the global variable and a link representing a
substitution relationship among the global variables;
measuring a similarity between the graphical
structures corresponding to the two respective source codes;
15 and
outputting it to the outside of the computer.
[Claim 21
The software analysis system according to claim 1,
20 wherein the similarity is a Hamming distance, a
correlation coefficient, or centering resonance.
[Claim 31
The software analysis system according to claims 1 or
33
CLAIMS AMENDED UNDER ARTICLE 19
wherein the node represents a function and the link
represents a calling relationship between the functions.
[Claim 41
5 The software analysis system according to any one of
claims 1 to 3,
wherein the similarity is measured on a graphical
structure comprised of important nodes that are decided
statistically from sizes of the reference relationships of
10 the nodes.
[Claim 51
The software analysis system according to any one of
claims 1 to 4,
15 wherein the similarity is measured on a graphical
structure that is comprised for each control period of the
source code.
[Claim 61
20 The software analysis system according to any one of
claims 1 to 5,
wherein an image of the measured similarity is
displayed.
3 4
CLAIMS AMENDED UNDER ARTICLE 19
[Claim 71
The software analysis system according to claim 6,
characterized by displaying the graphical structure
together with the measured similarity.
5 [Claim 81
The software analysis system according to any one of
claims 1 to 7,
characterized by analyzing a difference between two
source codes and outputting it to the outside of the
10 computer.
[Claim 91
A software analysis program used in the software
analysis system according to any one of claims 1 to 9,
comprising:
15 a source code analysis part that makes the computer
extract a dependence relationship of a variable or a
function from an inputted source code and makes the computer
create a graphical structure comprised of nodes and links;
and
20 a similarity measurement part that makes the computer
measure a similarity of two graphical structures.
| # | Name | Date |
|---|---|---|
| 1 | Form 5.pdf | 2014-06-16 |
| 2 | Form 3.pdf | 2014-06-16 |
| 3 | 15682-377_CS.pdf | 2014-06-16 |
| 4 | FORM-13.pdf | 2014-06-27 |
| 5 | 4708-DELNP-2014.pdf | 2014-07-10 |
| 6 | 4708-delnp-2014-GPA-(30-09-2014).pdf | 2014-09-30 |
| 7 | 4708-delnp-2014-English-Translation-(30-09-2014).pdf | 2014-09-30 |
| 8 | 4708-delnp-2014-Correspondence-Others-(30-09-2014).pdf | 2014-09-30 |
| 9 | 4708-DELNP-2014-Form 3-281114.pdf | 2014-12-10 |
| 10 | 4708-DELNP-2014-Correspondence-281114.pdf | 2014-12-10 |
| 11 | 4708-DELNP-2014-FER.pdf | 2019-10-18 |
| 1 | ss_appli11_4708_DELNP_2014_15-10-2019.pdf |