WO2014118981A1 - プログラム図作成装置、プログラム図作成方法、および、プログラム図作成プログラム - Google Patents

プログラム図作成装置、プログラム図作成方法、および、プログラム図作成プログラム Download PDF

Info

Publication number
WO2014118981A1
WO2014118981A1 PCT/JP2013/052422 JP2013052422W WO2014118981A1 WO 2014118981 A1 WO2014118981 A1 WO 2014118981A1 JP 2013052422 W JP2013052422 W JP 2013052422W WO 2014118981 A1 WO2014118981 A1 WO 2014118981A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
source code
visualization
test
program diagram
Prior art date
Application number
PCT/JP2013/052422
Other languages
English (en)
French (fr)
Inventor
玄太 是木
大輔 福井
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2013/052422 priority Critical patent/WO2014118981A1/ja
Publication of WO2014118981A1 publication Critical patent/WO2014118981A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Definitions

  • the present invention relates to a program diagram creation apparatus, a program diagram creation method, and a program diagram creation program, and is a program diagram suitable for drawing only program diagrams related to necessary modules and improving efficiency during debugging and development.
  • the present invention relates to a creation device, a program diagram creation method, and a program diagram creation program.
  • Patent Document 1 proposes a method for generating a flowchart specialized for program understanding by embedding a determination statement for controlling the output range of the flowchart and creating a flowchart only for a portion that meets the display conditions. Has been.
  • a judgment sentence is embedded in a computer program, a variable value is judged at the time of generating a flowchart, and a syntactic program part having a judgment sentence having a variable not corresponding to the set variable is included. Exclude and generate a flowchart.
  • a flowchart with a good prospect over a wide range that can easily grasp the flow based on specific execution conditions and viewpoints Can be automatically generated.
  • Patent Document 1 a part of a program to be visualized in advance by a developer or a user is selected from the source code, and a new coding work (FIG. 5) is also required. There was a problem that man-hours were required.
  • the present invention has been made to solve the above-described problems, and its purpose is to newly edit a source code even when a developer or a user has not previously selected a module to be visualized in the source code.
  • the program that can reduce the man-hours for creating the program diagram and improve the development efficiency by automatically selecting the module to be visualized and building and displaying the program diagram based on the module type specified by the user.
  • the object is to provide a diagram creation device.
  • the program diagram creation apparatus of the present invention analyzes a source code and a test code corresponding to the source code by a computer, and visualizes information related to the source code based on the source code and the test code.
  • This is a program diagram creation device for creating a program diagram to be displayed.
  • a source code acquisition unit that acquires source code
  • a test code acquisition unit that acquires test code corresponding to the source code
  • a data analysis unit that extracts information necessary for visualization determination from the source code and test code
  • a module extraction unit that extracts modules from the source code, a visualization determination usage table that describes the visualization items to be analyzed for the source code and the test code by the data analysis unit, and threshold data that describes the thresholds related to the visualization items
  • the value of the visualization item described in the visualization determination usage table obtained by analyzing the source code and the test code by the data analysis unit and the threshold value described in the threshold data related to the visualization item.
  • Visualization determination unit that performs visualization determination of the module extracted by the module extraction unit from the source code It is as it has. Then, the display element of the module determined to be visualized by the visualization determination unit is displayed on the program diagram, and the program diagram is created so that the display element of the module determined not to be visualized is not displayed on the program diagram. is there.
  • the threshold data is a module evaluation amount calculation formula table.
  • the module evaluation amount threshold defined, and the data analysis unit calculates the module evaluation amount by analyzing the source code and the test code and obtaining the value of the visualization item described in the visualization determination usage table.
  • the visualization determination unit compares the calculated value of the module evaluation amount with the threshold value described in the threshold data related to the module evaluation amount, and performs the visualization determination of the module extracted from the source code by the module extraction unit. It is a thing.
  • the module to be visualized even if a developer or a user does not select a module to be visualized in the source code in advance, the module to be visualized based on the module type designated by the user without newly editing the source code.
  • a program diagram creation device capable of reducing the man-hour for creating a program diagram and improving the development efficiency.
  • the user designates a program diagram composed only of modules with high complexity or modules with high importance according to the contents specified by the user for the source code to be visualized including a plurality of modules.
  • the present invention relates to a method of creating a program diagram that can be generated as described above.
  • FIG. 1 is a hardware configuration diagram of the program diagram creation device according to the first embodiment of the present invention.
  • FIG. 2 is a software configuration diagram of the program diagram creation device according to the first embodiment of the present invention.
  • the program diagram creation apparatus has a configuration in which an information processing apparatus 100, an information apparatus A110, and an information apparatus B120 are connected via a communication network 130, as shown in FIG.
  • the information processing apparatus 100 includes a central processing unit 101, an input device 102, a secondary storage device 103, a main storage device 104, a display device 105 such as a display, and a communication device 107.
  • Each device is connected by a bus 106, and is configured so that data can be transmitted and received between the devices.
  • a central processing unit (CPU: Central Processing Unit) 101 controls each part of the information processing device 100, loads a program diagram creation program into the main storage device 104, and executes it.
  • the main storage device 104 is usually composed of a volatile memory such as a RAM, and stores a program executed by the central processing unit 101 and data to be referred to.
  • the communication device 106 is a device that performs an interface for connecting to the communication network 50.
  • the display device 105 is a device for displaying an image such as an LCD (Liquid Crystal Display).
  • the input device 102 is a device for a user such as a keyboard and a mouse to input characters and information.
  • the secondary storage device 103 is a device having a large storage capacity such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive), and stores a program diagram creation program for executing this embodiment. .
  • HDD Hard Disk Drive
  • SSD Solid State Drive
  • an information apparatus A110 and an information apparatus B120 that can store data, such as an information processing apparatus and a network storage, and these are connected by a communication network 130 such as the Internet.
  • a communication network 130 such as the Internet.
  • the hardware configuration of the information device A110 and the information device B120 may be the same as that of the information processing device 100, or may be a device specialized for storing data.
  • the software configurations of the information processing apparatus 100, the information apparatus A110, and the information apparatus B120 are as shown in FIG.
  • all the functional blocks of the information processing apparatus 100 are described as software programs and data that are executed or operated by the central processing unit 101, but some or all of them are realized as hardware. May be.
  • OS Operating System
  • control program etc. that activates and manages each functional block, but in the description of this embodiment, the cooperative operation of these functional blocks
  • the OS and the control program will not be described, and the operation and function of the program diagram creation program as application software will be mainly described.
  • the information processing apparatus 100 includes a program diagram creation program 20 and data 30 as shown in FIG. 2.
  • the program diagram creation program 20 includes source code.
  • the source code acquisition unit 200 is a part that acquires the source code stored in the information device A110 or the like.
  • the test code acquisition unit 201 is a part that acquires a test code stored in the information device B120 or the like. The test code will be described in detail later.
  • the data analysis unit 202 is a part that analyzes the structure of the source code and the test code and collects data for determining program visualization.
  • the visualization determination unit 203 is a part that performs visualization determination for creating a program diagram with reference to the data collected by the data analysis unit 202 and the threshold data 213 of the data 30.
  • the drawing instruction unit 204 is a part that gives an instruction to display a program diagram display element (such as a box representing a module).
  • the program creation control unit 205 is a part that performs overall control for creating a program diagram.
  • the visualization determination usage table 212 is a table that stores source code and items for analyzing the test code.
  • the threshold data 213 is a table storing threshold data for determining each item of the visualization determination usage table 212.
  • the information device A110 stores a source code group 206 that is a set of various source codes 207, a source code 211 that is integrated with a test code, and a source code group 210 that is a set of source codes.
  • the integration of the test code and the source code means that they are stored in the same file in association with each other under a certain rule so as to facilitate maintenance.
  • the source code 211 integrated with the source code 207 and the test code is configured by a partial program called “module”. Details of the source code and test code will be described later.
  • the information device B120 stores test code groups 208 and 209, which are a set of various test codes 209.
  • the source code group 206, the source code group 210 integrated with the test code, and the test code group 208 are not necessarily arranged as shown in FIG. 2, and the information processing apparatus 100, the information apparatus A110, and the information apparatus B120 are not necessarily arranged.
  • the information device A110 may not be stored in the information device B120, and all the source code and test code may be stored in the information processing device 100.
  • FIG. 3 is a diagram for conceptually explaining the source code and the test code.
  • FIG. 4 is a diagram for explaining a module relation diagram.
  • the test code A of the code for testing the source code A is associated, and the module a constituting the source code A,
  • the module a constituting the source code A
  • the test code A has a module a call statement 1, a module a call statement 2,..., And the module a is tested.
  • each module call statement can be tested by changing parameters, and each call statement of the test code A is one test item for debugging.
  • JUnit which is a framework for automating unit tests (unit tests) in a program developed with Java (registered trademark) matches this concept.
  • the call statement of the above module corresponds to the call statement of the asertXXXXXXXX (assertEquals etc.) method in the test code.
  • FIG. 4 a module relation diagram as shown in FIG. 4 is created as a program diagram.
  • the module relation diagram illustrates the module calling relation.
  • the program developer displays only the modules that are important or have a complicated structure in the module relation diagram.
  • module relation diagram For example, what a program developer thinks is important for a module is that the number of test items related to that module (that is, the number of call statements for that module in this example) is assumed to be large. If the number is greater than a certain threshold, the module is visualized in the module relation diagram, and if it is less than that, the module is not visualized. In the module relation diagram of FIG. 4, module a, module b, and module c are visualized, and module d and module e are not visualized.
  • FIG. 5 is a diagram illustrating an example of the visualization determination usage table 212.
  • FIG. 6 is a diagram illustrating an example of the threshold data 213 (part 1).
  • the visualization determination usage table 212 stores items used for module visualization determination.
  • information that can be acquired from the test code and source code is used as an item to be used in module visualization determination.
  • the number of test items for a module refers to the number of statements that are required to use the call statement that calls the module and the call statement shown on the left according to the test viewpoint. For example, in JUnit Although defined as a method, it can be obtained by counting the number of methods on the left.
  • the number of test lines (x2) for the module can be obtained by counting the number of lines of statements described in the test code and necessary for using the calling statement for the module and the calling statement on the left.
  • the ratio of the number of module test items to the total number of module test items (x3) is the number of test items of a module divided by the number of test items of the entire source code to be tested.
  • the ratio (x4) of the number of module test lines to the total number of module test lines is obtained by dividing the number of test lines of a module by the number of lines of the entire test code.
  • the module's cyclic complexity (y1) is one of the metrics representing the complexity of the program, and is obtained from the structure on the control flow graph (for details, see Wikipedia "Circular complexity", Internet (See Web pages such as ⁇ URL: http://en.wikipedia.org/wiki/cyclic complexity>).
  • the number of module lines (y2) is the number of lines constituting the module of the source code, and the number of module statements (y3) is the number of statements counted from the viewpoint of the grammar of the programming language.
  • the nesting depth (y4) is one of metrics (scale) representing the complexity of the program, and is an amount representing the depth when the program is nested by an if statement or the like.
  • any type of visualization module that can be considered and any information that can be used for the visualization determination can be used.
  • information that can be acquired from source code or test code use of complexity, dependency, coupling, aggregation, number of lines, comments, number of code clones, number of parts that violate coding rules, etc. can be considered.
  • information that can be obtained from sources other than source code and test code the number of commits to the version control system, the number of bug management slips, the number of tests, the number of test executions, the number of test items described in the PCL (program check list) Can be considered.
  • the threshold value data 213 stores various threshold values relating to the determination items defined in the visualization determination usage table 212 used when performing the visualization determination of the module in the source code.
  • the number of test items for the module (x1), the cyclic complexity (y1) of the module, and the number of test rows (x2) for the module are (z2).
  • a threshold value in this case, a method using a fixed value or a method using a variable value according to the property of the module can be considered. In the case of a fixed value, it is necessary to input the value into the threshold data 213 in advance.
  • FIG. 7 is a flowchart showing a program diagram creation process in the program diagram creation device according to the first embodiment of the present invention.
  • the program diagram creation control unit 205 starts creating a program diagram (S600).
  • S600 program diagram
  • an example of creating a program diagram composed only of modules determined to be “complex” or “important” without visualizing all the modules in the program as a program diagram will be described.
  • the user designates the visualization source code and the visualization module type from the source code group 206 (S601).
  • the source code 207 is designated as the visualization source code.
  • the visualization source code may be specified in advance without being input by the user as in the processing 601.
  • the visualization module type designates “complex” and “important” expressed in logical expressions.
  • the processing when the user designates “complex” or “important” as the visualization module type is exemplified.
  • the visualization determination unit 203 picks up items to be used for extracting the module of the type input by the user from the visualization determination usage table 212.
  • the number of test items (x1) for the module described in the visualization determination usage table 212 is used.
  • the visualization determination unit 203 picks up items used for visualization determination from the visualization determination usage table 212, in this example, the number of test items (x1) for the module is used to determine a complex or important module.
  • the number of test lines (x2) for the module in addition to the number of test items (x1) for the module acquired from the test code, the number of test lines (x2) for the module, Either the ratio (x3) of the number of module test items to the total number of module test items, the ratio (x4) of the number of module test lines to the total number of module test lines, or a combination thereof may be used.
  • the top item of the visualization determination usage table 212 is used has been described. However, a method of switching in order from the top by a user instruction is also conceivable.
  • the source code acquisition unit 200 acquires the source code 207 to be visualized from the source code group 206 via the communication device 107 (S602).
  • the test code acquisition unit 201 acquires a test code 209 that is a test code for the source code 207 from the test code group 208 via the communication device 107. If the source code group 206 and the test code group 208 are huge and it takes a long time to search the source code 207 and the test code 209, a file that is likely to be used in advance according to a user instruction, for example, an information processing apparatus It is also possible to move or copy to a place where a high-speed search such as 100 is possible.
  • the source code 207 in which the test code exists as a separate file is to be visualized.
  • the source code 211 integrated with the test code may be visualized.
  • the test code acquisition unit 201 grasps that the corresponding test code exists in the source code 211 integrated with the test code acquired by the source code acquisition unit 200, and integrates it with the test code. It is assumed that the source code 211 is handled in the same manner as the source code 207 and the test code 209. At this time, when the source code 211 integrated with the test code is handled, it is necessary to separate the source code and the test code.
  • the test code corresponding to the source code is arranged at a fixed position according to the test framework and settings used, it can be automatically acquired.
  • the program diagram creation control unit 205 acquires one of the modules not yet analyzed included in the source code 207 acquired in the process 602 (S603).
  • the visualization determination unit 203 determines whether to visualize the module acquired in the process 603 (S604). If the determination is yes, the process proceeds to S605, and if the determination is no, the process proceeds to S606. The details of this process will be described later.
  • the drawing instruction unit 204 displays the module (S605).
  • the drawing instruction unit 204 hides the module (S606).
  • the program diagram creation control unit 205 determines whether there is a module that has not been analyzed yet in the source code 207 acquired in the process 602 (S607). , The process proceeds to S603, and if there is no unanalyzed process, the process proceeds to process 608.
  • the program diagram creation control unit 205 ends the program diagram creation (S608).
  • the visualization module determination method of S604 is changed by the visualization determination unit 203 using the visualization determination usage table 212 according to the visualization module type specified by the user in the process 601.
  • processing for extracting a complex or important module will be described with reference to FIG.
  • FIG. 8 is a flowchart showing the details of the visualization determination (part 1).
  • an item of the number of test items (x1) for a module is used as a visualization determination item for extracting a complex or important module.
  • the data analysis unit 202 acquires the number of test items corresponding to the module acquired in process 603 from the test code 209 acquired in process 602 (S700). This is performed by the data analysis unit 202 counting the number of calling statements for the module.
  • the visualization determination unit 203 acquires the threshold of the number of test items for the module from the threshold data 213, and determines whether or not the number of test items acquired in the process 700 is greater than or equal to the acquired threshold (S701). If the determination is yes, the process proceeds to process 605, and if the determination is no, the process proceeds to process 606. In addition, when extracting a complex or important module, it is determined whether the number of test items is equal to or greater than a threshold. This is generally a test when the module structure is complicated or when a module is important. This is because the number increases.
  • the problem that existed in the visualization method of Patent Document 1 described above, that is, the program needs to be modified by selecting a process to be visualized in advance by a developer, a user, or the like.
  • the visualization module can be determined by estimating the importance and complexity of the module in the program. By automatically extracting and building and displaying the program diagram, it is possible to expect improvement in program development efficiency.
  • the module visualization determination method is changed according to the visualization module type designated by the user in S601. Therefore, in the present embodiment, a specification example different from the first embodiment will be described with respect to the specification of the module type.
  • “complex” or “important” modules are extracted and visualized.
  • “uncomplicated” and “important” modules are extracted and visualized. To do. Since most of the structure of the program diagram creation device, its processing, etc. is the same as in the first embodiment, this embodiment will be described with respect to the differences from the first embodiment.
  • FIG. 9 is a flowchart showing the details of the visualization determination (part 2).
  • the visualization determination unit 203 has previously picked up items used for visualization determination from the visualization determination usage table 212 according to the visualization module type by user input.
  • two items of the number of test items (x1) for the module and the cyclic complexity (y1) of the module are used.
  • the data analysis unit 202 acquires the number of test items corresponding to the module acquired in process 603 from the test code 209 acquired in process 602 (S800).
  • the visualization determination unit 203 acquires the threshold of the number of test items for the module from the threshold data 213, and determines whether or not the number of test items acquired in the process 800 is greater than or equal to the left threshold (S801). If the determination is yes, the process proceeds to process 802, and if the determination is no, the process proceeds to process 606.
  • the data analysis unit 202 acquires the cyclic complexity corresponding to the module acquired in S603 from the source code 207 acquired in the process 602 (S802).
  • the visualization determination unit 203 acquires a cyclic complexity threshold value for the module from the threshold data 213, and determines whether or not the cyclic complexity acquired in the process 802 is equal to or less than the left threshold value. If the determination is yes (not complex), the process proceeds to process 605, and if the determination is no (complex), the process proceeds to process 606. In this way, in the present embodiment, at the time of module visualization determination, two determinations are made: whether the number of test items is equal to or greater than a threshold value and whether the cyclic complexity is equal to or less than the threshold value. This makes it possible to extract modules with a complicated structure or modules that are important in the former judgment, and to remove those with a complicated structure from the modules extracted on the left in the latter judgment.
  • development improvement can be expected by automatically extracting the visualization module and constructing and displaying the program diagram.
  • the module visualization determination method is changed according to the visualization module type designated by the user in S601. Therefore, in this embodiment, an example will be described in which module visualization is determined using a different evaluation measure (metric) from the first embodiment and the second embodiment.
  • metric evaluation measure
  • “complex” or “important” modules, and in the second embodiment, “uncomplicated” and “important” modules are extracted and visualized with only a single item.
  • visualization determination is performed using a module evaluation amount calculated using a calculation formula combining various metrics, and “important” modules are extracted and visualized. Since the configuration of the program diagram creation device and the process of creating the program diagram are mostly the same as those in the first embodiment and the second embodiment, in this embodiment, the first embodiment and the second embodiment. Different parts from the embodiment will be described.
  • FIG. 10 is a software configuration diagram of the program diagram creation device according to the third embodiment of the present invention.
  • the data 30 includes a module evaluation amount calculation formula table 214 and module-specific module evaluation amount data 215.
  • the module evaluation amount calculation formula table 214 is a table for storing a module evaluation amount calculation formula.
  • the module evaluation amount data 215 for each module is a table that stores module evaluation amount data for each module.
  • FIG. 11 is a diagram illustrating an example of the module evaluation amount calculation formula table 214.
  • FIG. 12 is a diagram illustrating an example of the threshold data 213 (part 2).
  • FIG. 13 is a diagram showing an example of module evaluation amount data 215 for each module.
  • the figure module evaluation amount calculation formula table 214 stores formula definition formulas used to calculate the module evaluation amount.
  • the module evaluation amount 2 (z2) for an important module, for example, the ratio of the number of module test items to the total number of module test items (x3), the number of module test rows to the total number of module test rows
  • the module evaluation amount 2 (z2) has the same significance as the module evaluation amount 1 (z1).
  • the calculation formula for the module evaluation amount is not limited to the above, and various formulas can be used. In the case of different visualization module types, as a matter of course, even in the case of the same visualization module type, as shown in the example of FIG.
  • the data related to the module evaluation amount 1 (z1) and the data related to the module evaluation amount 2 (z2) are added to the threshold data described in FIG. 6 of the first embodiment. ing.
  • the module evaluation amount data 215 for each module stores the module evaluation amount calculated for each module of the program for each module evaluation amount item described in the module evaluation amount calculation formula table 214.
  • the module evaluation amount items of the module evaluation amount 1 (z1) and the module evaluation amount 2 (z2) illustrated in FIG. 11 the calculation modules of the modules a, b, and c included in the source code to be visualized The module evaluation amount is described.
  • FIG. 14 is a flowchart showing a program diagram creation process in the program diagram creation device according to the third embodiment of the present invention.
  • the user inputs the visualization source code and the visualization module type using the input device 102, as in S601.
  • the user inputs a threshold value for the module evaluation amount of the visualization module.
  • a value of 60 is input by the user as a threshold of the module module evaluation amount 1 (z1)
  • the program creation control unit 205 has a value of 60 input by the user. Is stored in the threshold data 213.
  • the visualization determination unit 203 picks up an item to be used for extracting the module of the user input type from the module evaluation amount calculation formula table 214. To do. In this example, it is assumed that the module evaluation amount 1 (z1) is used.
  • FIG. 15 is a flowchart showing the details of the visualization determination (part 2).
  • the visualization determination unit 203 has previously picked up items to be used for visualization determination from the module evaluation amount calculation formula table 214 in accordance with the visualization module type input by the user.
  • the module evaluation amount 1 (z1) that is the first entry of the module evaluation amount calculation formula table 214 is used, and the number of test items for the module (x1) is used as an item for extracting an important module.
  • two items of cyclic complexity (y1) of the module are used.
  • the data analysis unit 202 calculates the number of test items (x1) for the module acquired in the process 1000, the cyclic complexity (y1) corresponding to the module, and the module module evaluation amount 1 (z1) using the left data.
  • the module module evaluation amount for the important module is calculated from the equation, and the program diagram creation control unit 205 stores the calculated module evaluation amount of the module in the module-specific module evaluation amount data 215 (S1001).
  • the visualization determination unit 203 acquires a threshold for the module evaluation amount 1 (z1) from the threshold data 213, and determines whether or not the module evaluation amount of the module calculated in the processing 1001 is equal to or greater than the left threshold (S1002). . If the determination is yes, the process proceeds to process 905, and if the determination is no, the process proceeds to process 906.
  • development improvement can be expected by automatically extracting the visualization module and constructing and displaying the program diagram.
  • a module evaluation amount corresponding to the module type input by the user is calculated for each module, and only the modules whose module evaluation amount is equal to or greater than the threshold described in the threshold data 213 are calculated. Is visualized.
  • the module evaluation amount of the module thus calculated can be visualized by storing the calculated value for each module in the module-specific module evaluation amount data 215 according to the type, for example, as performed in S1001.
  • the program diagram can be changed by changing the module to be changed at any time.
  • FIG. 16 is a flowchart showing a process for changing the program diagram as needed.
  • FIG. 17 is a flowchart showing the details of the visualization determination (part 3).
  • FIG. 18 is a diagram showing a user interface screen when the visualization target of the program diagram is dynamically changed.
  • the threshold value of the module evaluation amount of the visualization module is input using the input device 102.
  • the input of the module evaluation amount is not limited to inputting the value of the module evaluation amount with a keyboard which is a form of the input device 102.
  • a module evaluation amount slider as displayed at the bottom of the screen in FIG.
  • the threshold of the module evaluation amount may be changed by moving.
  • the threshold value of the input module evaluation amount is set, for example, in the corresponding item of the threshold data 213 after the program diagram creation control unit 205 acquires the module type visualized from the currently displayed program diagram. Set as a threshold.
  • the source code acquisition unit 200 acquires the source code 207 to be visualized from the source code group 206. At this time, the test code acquisition unit 201 does not read the test code 209 for the source code A207.
  • the program diagram creation control unit 205 acquires the module evaluation amount related to the module acquired in the processing 1303 from the module-specific module evaluation amount data 215.
  • the visualization determination unit 203 obtains the module input evaluation amount of the user input stored in the threshold data 213 in S1300 from the threshold data 213, and the module evaluation amount of the module acquired in processing 1400 is the former. It is determined whether or not the module evaluation amount is exceeded. If the determination is yes, the process proceeds to process 1305, and if the determination is no, the process proceeds to process 1306.
  • the example in which the program diagram displayed on the display device 105 of the information processing apparatus 100 changes in response to a user's module evaluation amount change instruction is configured with modules having a module evaluation amount of 10 or more, as shown in FIG.
  • the figure When the figure is displayed, it becomes a complicated figure as shown in FIG.
  • the module evaluation amount slider displayed on the screen is operated to change the module evaluation amount of the module to be visualized from 10 to 80, the program changes to a simple program diagram as shown in FIG.
  • the visualization module can be flexibly changed when it is desired to display a program diagram that fits the screen size.
  • DESCRIPTION OF SYMBOLS 100 ... Information processing device 101 ... Central processing unit 102 ... Input device 103 ... Secondary storage device 104 ... Main storage device 105 ... Display device 106 ... Bus 107 ... Communication device 110 ... Information device A 120: Information device B 130 ... Communication network 200 ... Source code acquisition unit 201 ... Test code acquisition unit 202 ... Data analysis unit 203 ... Visualization determination unit 204 ... Drawing instruction unit 205 ... Program diagram creation control unit 206 ... Source code group 207 ... Source code A 208 ... Test code group 209 ... Test code A 210 ... Source code group 211 integrated with test code ... Source code A integrated with test code 212 ... Visualization determination usage table 213 ... Threshold data 214 ... Module evaluation amount calculation formula table 215 ... Module evaluation amount data by module

Landscapes

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

Abstract

 プログラム図作成装置の可視化判定部は、データ解析部によりソースコードとテストコードに対して解析されて求められた可視化判定利用表に記載された可視化項目の値と、その可視化項目に係る閾値データに記載された閾値とを比較してモジュール抽出部がソースコードより抽出したモジュールの可視化判定をおこない、可視化すると判定されたモジュールの表示要素をプログラム図に表示し、可視化しない判定されたモジュールの表示要素をプログラム図に表示しないようにプログラム図を作成する。 これにより、ソースコード内の可視化するモジュールを予め開発者やユーザ等が選択していない場合でも、新たにソースコードを編集することなく、可視化するモジュールを自動で選択してプログラム図を構築・表示することができ、プログラム図作成の工数を削減し、開発効率を向上させることができる。

Description

プログラム図作成装置、プログラム図作成方法、および、プログラム図作成プログラム
 本発明は、プログラム図作成装置、プログラム図作成方法、および、プログラム図作成プログラムに係り、必要なモジュールに関するプログラム図のみを描画し、デバッグ時や開発時の能率を向上させるのに好適なプログラム図作成装置、プログラム図作成方法、および、プログラム図作成プログラムに関する。
 コンピュータソフトウェア開発時に、プログラムを理解する方法として、例えば、フローチャート図、モジュール関連図といったプログラム図を生成・利用して処理の流れを追う方法がある。プログラム図は、視覚的に理解しやすく、仕様設計、コーディングのみならず、デバッグ時にも有用なツールである。
 しかしながら、複雑なプログラムを対象として生成したプログラム図は、プログラム全体に渡って詳細に出力され、注目する必要のないプログラム部分が含まれてしまうため、プログラム全体の概要を把握したい場合や特定の箇所に着目して調査したい場合に時間が掛かるという問題があった。そこで従来、例えば、特許文献1では、フローチャートの出力範囲を制御する判定文を埋め込んで、表示条件にあった部分のみフローチャートを作成することにより、プログラム理解に特化したフローチャートを生成する方法が提案されている。
特開平5-257666号公報
 上記従来技術は、表示条件として、判定文をコンピュータプログラム上の埋め込み、フローチャート生成の際に変数の値を判定し、設定した変数に対応しない変数を持つ判定文が存在する構文上のプログラム部分を除外して、フローチャートを生成する。それにより、様々な条件で実行される処理が混在した複雑な流れを持つコンピュータプログラムについて、その流れを特定の実行条件や観点に基づいて容易に把握することが可能な広い範囲にわたる見通しの良いフローチャートを自動生成することができるとしている。
 しかしながら、特許文献1の方法では、開発者やユーザ等が予め可視化するプログラムの部分をソースコード内から選択しておき、新たなコーディング作業(図5)も必要となり、この選択作業とコーディング作業に工数を要するという問題点があった。
 本発明は、上記問題点を解決するためになされたもので、その目的は、ソースコード内の可視化するモジュールを予め開発者やユーザ等が選択していない場合でも、新たにソースコードを編集することなく、ユーザが指定するモジュールタイプに基づき、可視化するモジュールを自動で選択してプログラム図を構築・表示することにより、プログラム図作成の工数を削減し、開発効率を向上させることが可能なプログラム図作成装置を提供することにある。
 上記課題を解決するために、本発明のプログラム図作成装置は、コンピュータによりソースコードとそのソースコードに対応するテストコードを解析し、ソースコードとテストコードに基づいて、ソースコードに関する情報を可視化して表示するプログラム図を作成するプログラム図作成装置である。
 より詳細には、ソースコードを取得するソースコード取得部と、ソースコードに対応するテストコードを取得するテストコード取得部と、ソースコードとテストコードから可視化判定で必要な情報を抽出するデータ解析部と、ソースコード内からモジュールを抽出するモジュール抽出部と、データ解析部でソースコードとテストコードに対して解析する可視化項目を記載した可視化判定利用表と、可視化項目に係る閾値を記載した閾値データと、データ解析部によりソースコードとテストコードに対して解析されて求められた可視化判定利用表に記載された可視化項目の値と、その可視化項目に係る閾値データに記載された閾値とを比較してモジュール抽出部がソースコードより抽出したモジュールの可視化判定をおこなう可視化判定部とを備えるものである。そして、可視化判定部により、可視化すると判定されたモジュールの表示要素をプログラム図に表示し、可視化しない判定されたモジュールの表示要素をプログラム図に表示しないようにプログラム図を作成するようにしたものである。
 また、さらに、可視化判定利用表に記載された可視化項目を、四則演算した得られるモジュール評価量の定義式を記載するモジュール評価量算出式表を有し、閾値データは、モジュール評価量算出式表に定義されたモジュール評価量の閾値を含み、データ解析部は、ソースコードとテストコードに対して解析し可視化判定利用表に記載された可視化項目の値を求めて、モジュール評価量を算出し、可視化判定部は、算出されたモジュール評価量の値と、そのモジュール評価量に係る閾値データに記載された閾値とを比較してモジュール抽出部がソースコードより抽出したモジュールの可視化判定をおこなうようにしたものである。
 本発明によれば、ソースコード内の可視化するモジュールを予め開発者やユーザ等が選択していない場合でも、新たにソースコードを編集することなく、ユーザが指定するモジュールタイプに基づき、可視化するモジュールを自動で選択してプログラム図を構築・表示することにより、プログラム図作成の工数を削減し、開発効率を向上させることが可能なプログラム図作成装置を提供することができる。
本発明の第一の実施形態に係るプログラム図作成装置のハードウェア構成図である。 本発明の第一の実施形態に係るプログラム図作成装置のソフトウェア構成図である。 ソースコードとテストコードについて概念的に説明する図である。 モジュール関連図を説明する図である。 可視化判定利用表212の例を示す図である。 閾値データ213の例を示す図である(その一)。 本発明の第一の実施形態に係るプログラム図作成装置におけるプログラム図作成の処理を示すフローチャートである。 可視化判定の詳細を示すフローチャートである(その一)。 可視化判定の詳細を示すフローチャートである(その二)。 本発明の第三の実施形態に係るプログラム図作成装置のソフトウェア構成図である。 モジュール評価量算出式表214の一例を示す図である。 閾値データ213の例を示す図である(その二)。 モジュール別モジュール評価量データ215の一例を示す図である。 本発明の第三の実施形態に係るプログラム図作成装置におけるプログラム図作成の処理を示すフローチャートである。 可視化判定の詳細を示すフローチャートである(その二)。 プログラム図を随時変更する処理を示すフローチャートである。 可視化判定の詳細を示すフローチャートである(その三)。 プログラム図の可視化対象を動的に変更する場合のユーザインターフェース画面を示す図である。
 以下、本発明に係る各実施形態を、図1ないし図18を用いて説明する。
  〔実施形態1〕
 以下、本発明に係る第一の実施形態を、図1ないし図8を用いて説明する。
 本実施形態は、複数のモジュールを含む可視化対象ソースコードに対して、ユーザが指定した内容に応じて、複雑度の高いモジュールや重要度の高いモジュールのみで構成されたプログラム図を、ユーザが指定して生成することができるプログラム図作成の方法に関するものである。
 先ず、図1および図2を用いて本発明の第一の実施形態に係るプログラム図作成装置の構成について説明する。
  図1は、本発明の第一の実施形態に係るプログラム図作成装置のハードウェア構成図である。
  図2は、本発明の第一の実施形態に係るプログラム図作成装置のソフトウェア構成図である。
 本発明の第一の実施形態に係るプログラム図作成装置は、図1に示されるように、情報処理装置100、情報装置A110、情報装置B120が通信ネットワーク130で接続された形態である。
 情報処理装置100は、ハードウェアとして、図1に示されるように、中央処理装置101、入力装置102、二次記憶装置103、主記憶装置104、ディスプレイ等の表示装置105、および、通信装置107を備えており、各装置が、バス106によって接続され、各装置間で相互にデータの送受信が可能なように構成されている。
 中央処理装置(CPU:Central Processing Unit)101は、情報処理装置100各部を制御し、主記憶装置104にプログラム図作成プログラムをロードして実行する。
 主記憶装置104は、通常、RAMなどの揮発メモリで構成され、中央処理装置101が実行するプログラム、参照するデータが記憶される。
 通信装置106は、通信ネットワーク50と接続するためのインタフェースをおこなう装置である。
 表示装置105は、LCD(Liquid Crystal Display)などの画像を表示するための装置である。
 入力装置102は、キーボードやマウスなどのユーザが文字や情報を入力するための装置である。
 二次記憶装置103は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの大容量の記憶容量を有する装置であり、本実施形態を実行するためのプログラム図作成プログラムが格納されている。
 また、情報処理装置100の他に、情報処理装置やネットワークストレージといったデータを保存する事が可能な情報装置A110と情報装置B120があり、これらの間が、例えば、インターネット等の通信ネットワーク130により接続されている。情報装置A110、情報装置B120のハードウェア構成は、情報処理装置100と同じものでもよく、また、データを保存することに特化した装置でもよい。
 情報処理装置100、情報装置A110、および、情報装置B120のソフトウェア構成は、図2に示されるようになる。なお、本実施形態においては、情報処理装置100の機能ブロックの全てが中央処理装置101によって実行または操作されるソフトウェアプログラムやデータであるものとして説明するが、一部または全ては、ハードウェアとして実現されてもよい。また、本来は、これらの機能ブロックに加え、各機能ブロックの起動や管理等をおこなうOS(Operating System)や制御プログラム等が存在するが、本実施形態の説明では、これらの機能ブロックの連携動作を適宜説明することとし、OSや制御プログラムについては、説明を省略し、アプリケーションソフトウェアとしてのプログラム図作成プログラムの動作と機能を中心に説明する。
 さて、本実施形態の情報処理装置100は、ソフトウェア構成として、図2に示されるように、プログラム図作成プログラム20と、データ類30からなり、機能ブロックとして、プログラム図作成プログラム20は、ソースコード取得部200、テストコード取得部201、データ解析部202、可視化判定部203、描画指示部204、プログラム図作成制御部205の各機能を有し、データ類30には、可視化判定利用表212、閾値データ213が含まれる。
 ソースコード取得部200は、情報装置A110などに格納されたソースコードを取得する部分である。
 テストコード取得部201は、情報装置B120などに格納されたテストコードを取得する部分である。テストコードについては、後に詳説する。
 データ解析部202は、ソースコードやテストコードの構造を解析して、プログラム可視化判定のためのデータを収集する部分である。
 可視化判定部203は、データ解析部202で収集されたデータとデータ類30の閾値データ213などを参照して、プログラム図作成のための可視化判定をおこなう部分である。
 描画指示部204は、プログラム図の表示要素(モジュールを表すボックスなど)の表示指示を与える部分である。
 プログラム作成制御部205は、プログラム図作成のための全体の制御をする部分である。
 可視化判定利用表212は、ソースコードと、テストコードを解析するための項目を格納するテーブルである。
 閾値データ213は、可視化判定利用表212の項目の各々についての判定するための閾値のデータを格納したテーブルである。
 情報装置A110には、様々な複数のソースコード207の集合であるソースコード群206、テストコードと一体化したソースコード211複数のソースコードの集合であるソースコード群210が格納されている。ここで、テストコードとソースコードの一体化とは、保守しやすいように、一定のルールの下で、対応付けられて同一ファイルとして保持されていることを意味する。
 なお、ソースコード207やテストコードと一体化したソースコード211は、「モジュール」という単位の部分的プログラムで構成されている。ソースコードとテストコードの詳細については、後に説明する。
 情報装置B120には、様々な複数のテストコード209の集合であるテストコード群208ド209が格納されている。ソースコード群206、テストコードと一体化したソースコード群210、テストコード群208は、必ずしも、図2のような配置である必要はなく、情報処理装置100、情報装置A110、および、情報装置B120のいずれに格納されていてもよく、情報装置A110が情報装置B120なく、全てのソースコードとテストコードが、情報処理装置100に格納されていてもよい。
 次に、図3および図4を用いて、本発明の第一の実施形態に係るプログラム図作成装置で解析するソースコードとテストコードについて説明する。
  図3は、ソースコードとテストコードについて概念的に説明する図である。
  図4は、モジュール関連図を説明する図である。
 本発明のソースコードとテストコードのモデルについては、図3に示されるように、ソースコードAをテストするためのコードのテストコードAが対応付けられていて、ソースコードAを構成するモジュールa、モジュールb、…があり、それをテストコードAのモジュールの呼び出し文から呼び出すことにより、モジュールのユニットテストをする場合を考える。例えば、モジュールaに対して、テストコードAには、モジュールa呼び出し文1、モジュールa呼び出し文2、…が存在し、モジュールaをテストするというシナリオになっている。図示していないが、各々のモジュールの呼び出し文は、パラメタを変えて、結果をテストできるようになっており、テストコードAの各々の呼び出し文が、デバッグにおける一つのテスト項目になっている。
 このような概念に合致するのが、例えば、Java(登録商標)で開発されたプログラムにおいてユニットテスト(単体テスト)の自動化をおこなうためのフレームワークであるJUnitである。JUnitの場合は、上記のモジュールの呼び出し文は、テストコードにおけるasertXXXXXXXX(assertEqualsなど)メソッドの呼び出し文がこれに該当する。
 ここで、プログラム図としては、図4に示されるようなモジュール関連図を作成する場合を考える。モジュール関連図は、モジュールの呼び出し関係を図示したものである。ここで、プログラム開発者がモジュールで重要なものや構造が複雑なもののみをモジュール関連図で表示することを考える。
 例えば、プログラム開発者がモジュールで重要であると考えられるものは、そのモジュールに関するテスト項目の数(すなわち、この例では、そのモジュールに対する呼び出し文の数)が多いと想定されるので、テスト項目に関する数が一定の閾値以上ものについては、モジュール関連図においてそのモジュールを可視化するものとし、それ未満のものについては、そのモジュールを可視化しないものとする。図4のモジュール関連図においては、モジュールa、モジュールb、モジュールcが可視化されており、モジュールd、モジュールeについては、可視化されていない。
 次に、図5ないし図6を用いて本発明の第一実施形態に係るプログラム図作成装置に使用されるデータ構造について説明する。
  図5は、可視化判定利用表212の例を示す図である。
  図6は、閾値データ213の例を示す図である(その一)。
 可視化判定利用表212は、モジュールの可視化判定で利用する項目を格納する。
 本例では、モジュールの可視化判定で利用する項目として、テストコードとソースコードから取得できる情報を利用する。
 可視化モジュールタイプとして、テストコードから取得できる情報に関する項目については、ユーザによって「複雑」または「重要」が指定された場合(図示しないが、プログラム図作成のオプションを指定するダイアローグ、または、設定ファイルなどより指定する)に、モジュールに対するテスト項目数(x1)、モジュールに対するテスト行数(x2)、全モジュールテスト項目数に対するモジュールテスト項目数の割合(x3)、または全モジュールテスト行数に対するモジュールテスト行数の割合(x4)を利用する。
 モジュールに対するテスト項目数(x1)とは、そのモジュールを呼び出す呼び出し文や左記呼び出し文を利用するのに必要な文をテスト観点別に纏めたものの数を指し、このように纏めたものは例えばJUnitではメソッドとして定義するが、左記メソッドの数をカウントすることにより、取得できる。モジュールに対するテスト行数(x2)は、テストコード内に記述された、モジュールに対する呼び出し文や左記呼び出し文を利用するのに必要な文の行数をカウントすることにより、取得できる。
 全モジュールテスト項目数に対するモジュールテスト項目数の割合(x3)とは、あるモジュールのテスト項目数をテストの対象となるソースコード全体のテスト項目数で割ったものである。全モジュールテスト行数に対するモジュールテスト行数の割合(x4)とは、あるモジュールのテスト行数をテストコード全体の行数で割ったものである。
 また、可視化モジュールタイプとして、ソースコードから取得できる情報である、項目については、ユーザによって「複雑」が指定された場合に、モジュールの循環的複雑度(y1)、モジュールの行数(y2)、モジュールのステートメント数(y3)、またはモジュールのネスト深度(y4)を利用する。
 モジュールの循環的複雑度(y1)とは、プログラムの複雑さを表すメトリクス(尺度)の一つであり、制御フローグラフ上の構造から求められる(詳細は、ウィキペディア「循環的複雑度」、インターネット<URL:http://ja.wikipedia.org/wiki/循環的複雑度>などのWebページを参照)。
 モジュールの行数(y2)は、ソースコードのモジュールを構成する行数であり、モジュールのステートメント数(y3)は、プログラム言語の文法の観点から数えられるステートメントの数である。ネスト深度(y4)は、プログラムの複雑さを表すメトリクス(尺度)の一つであり、プログラムがif文などにより、入れ子となるときの深さを表す量である。
 なお、可視化判定で利用する項目を抽出するために利用する対象、可視化判定で利用する項目、および、可視化モジュールタイプはいずれも上記で述べたもののみに限定される事はない。考え得る可視化モジュールのタイプやその可視化判定に利用可能な情報であれば、いずれも利用可能である。例えば、ソースコードやテストコードから取得できる情報として、複雑度、依存度、結合度、凝集度、行数、コメント、コードクローン数、コーディング規約に反する箇所の数等の利用が考えられる。また、例えば、ソースコードやテストコード以外から取得できる情報として、バージョン管理システムへのコミット回数、バグ管理票の数、テスト人数、テスト実行回数、PCL(プログラムチェックリスト)記載テスト項目数等の利用が考えられる。
 次に、閾値データ213には、ソースコード内にあるモジュールの可視化判定をおこなう際に利用する可視化判定利用表212に定義されている判定項目に関する様々な閾値が格納される。本例では、図6に示されるように、モジュールに対するテスト項目数(x1)、モジュールの循環的複雑度(y1)、モジュールに対するテスト行数(x2)が(z2)を挙げられている。この際の閾値として、固定値を利用する方法や、モジュールの性質に応じて可変値を用いる方法が考えられる。固定値の場合は、予め、値を閾値データ213に入力しておく必要がある。
 次に、図7および図8を用いて本発明の第一の実施形態に係るプログラム図作成装置におけるプログラム図作成の処理について説明する。
 図7は、本発明の第一の実施形態に係るプログラム図作成装置におけるプログラム図作成の処理を示すフローチャートである。
 先ず、プログラム図作成制御部205が、プログラム図作成を開始する(S600)。本実施形態では、プログラム図としてプログラム内のモジュールを全て可視化せず、「複雑」または「重要」と判定されたモジュールのみで構成されたプログラム図を作成する例を示すことにする。
 次に、入力装置102を用いて、ソースコード群206の中から可視化ソースコードを、また可視化モジュールタイプを、ユーザが指定する(S601)。本実施形態では、可視化ソースコードとしてソースコード207を指定する。この際、可視化ソースコードは、本処理601のようにユーザが入力せずとも、予め指定しておいてもよい。可視化モジュールタイプは、「複雑」「重要」を論理式で表現したものを指定する。本実施形態では、可視化モジュールタイプとして、ユーザが、「複雑」または「重要」なものを指定した場合の処理を例示する。本処理601で可視化モジュールタイプがユーザにより入力されると、可視化判定部203は、可視化判定利用表212から、ユーザ入力されたタイプのモジュールを抽出するために利用する項目をピックアップする。
 本実施形態では、複雑または重要なモジュールを判定するために、可視化判定利用表212に記載されている、モジュールに対するテスト項目数(x1)を利用するものとする。なお、可視化判定部203が、可視化判定で利用する項目を可視化判定利用表212からピックアップする際、本例では、複雑または重要なモジュールを判定するためにモジュールに対するテスト項目数(x1)を利用したが、図3に挙げているように、複雑または重要なモジュールを抽出するための項目として、テストコードから取得するモジュールに対するテスト項目数(x1)の他に、モジュールに対するテスト行数(x2)、全モジュールテスト項目数に対するモジュールテスト項目数の割合(x3)、または全モジュールテスト行数に対するモジュールテスト行数の割合(x4)のいずれか、あるいは、それらの複数を組み合わせて利用してもよい。さらに、本例では、複雑または重要なモジュールを判定するために、可視化判定利用表212の先頭の項目を使用する例を示したが、ユーザ指示により上から順番に切り替えるといった方法も考えられる。
 次に、ソースコード取得部200が、通信装置107を介し、ソースコード群206の中から、可視化対象であるソースコード207を取得する(S602)。また、同時に、テストコード取得部201が、通信装置107を介し、テストコード群208の中から、ソースコード207用のテストコードであるテストコード209を取得する。もし、ソースコード群206やテストコード群208が巨大で、ソースコード207やテストコード209の検索に時間が掛かりそうな場合には、ユーザ指示により、予め、使いそうなファイルを、例えば情報処理装置100といった高速な検索が可能となる場所へ移動またはコピーしておく事も考えられる。本実施形態では、テストコードが別ファイルとして存在しているソースコード207を可視化しようとしているが、テストコードと一体化したソースコード211を可視化する場合も考えられる。この場合には、テストコード取得部201は、ソースコード取得部200が取得したテストコードと一体化したソースコード211内に該当テストコードが存在している事を把握し、テストコードと一体化したソースコード211を、ソースコード207およびテストコード209と同様に扱うものとする。また、この際、テストコードと一体化したソースコード211を扱う際には、ソースコードとテストコードの分離が必要になる。なお、ここで、ソースコードに対応するテストコードは、使用しているテストフレームワークや設定に応じて定位置に配置されるため、自動で取得が可能である。
 次に、プログラム図作成制御部205が、処理602で取得したソースコード207に含まれる、まだ解析していないモジュールの内、一つのモジュールを取得する(S603)。
 次に、可視化判定部203が、処理603で取得したモジュールを可視化するか否かを判定する(S604)。判定がyesであれば、S605へ進み、判定がnoであれば、S606へ進む。なお、本処理内容は後に詳述する。
 判定の結果、描画指示部204が、該モジュールを表示する(S605)。
 判定の結果、描画指示部204が、該モジュールを非表示にする(S606)。
 次に、プログラム図作成制御部205が、処理602で取得したソースコード207にまだ解析していないモジュールがあるか否かを判定する(S607)判定の結果、解析していない処理がある場合は、S603へ進み、解析していない処理がない場合は、処理608へ進む。
 解析していないモジュールがない場合には、プログラム図作成制御部205が、プログラム図作成を終了する(S608)。
 S604の可視化モジュール判定方法は、処理601でユーザが指定した可視化モジュールタイプに応じて、可視化判定部203が可視化判定利用表212を利用して変更する。本実施形態では、複雑または重要なモジュールを抽出したい場合の処理について、図8を用いて説明する。
  図8は、可視化判定の詳細を示すフローチャートである(その一)。
 本実施形態では、複雑または重要なモジュールを抽出するための可視化判定項目として、モジュールに対するテスト項目数(x1)の項目を利用するものとする。
 先ず、データ解析部202が、処理602で取得したテストコード209から、処理603で取得したモジュールに対応するテスト項目数を取得する(S700)。これは、データ解析部202が、そのモジュールに対する呼び出し文の数をカウントすることによりおこなわれる。
 次に、可視化判定部203が、閾値データ213からモジュールに対するテスト項目数の閾値を取得し、処理700で取得したテスト項目数が、取得した閾値以上か否かを判定する(S701)。判定がyesであれば、処理605へ進み、判定がnoであれば、処理606へ進む。なお、複雑または重要なモジュールを抽出する際にテスト項目数が閾値以上かという判定をおこなうが、これは一般的にテストは、モジュールの構造が複雑なもの、またはモジュールが重要なものはテスト項目数が多くなるからである。
 本実施形態の効果として、上述した特許文献1の可視化方法に存在した課題、すなわち、開発者やユーザ等が予め可視化する処理を選択して、プログラムを改変しておく必要があり、可視化の工数がかかるという課題を解決し、ソースコード内の可視化する処理やモジュールを予め開発者やユーザ等が選択していない場合でも、プログラム内モジュールの重要度や複雑度を推定することにより、可視化モジュールを自動で抽出してプログラム図を構築・表示する事で、プログラムの開発効率の向上を見込むことができる。
  〔実施形態2〕
 以下、本発明の第二の実施形態を、図9を用いて説明する。
 第一の実施形態で述べたように、モジュールの可視化判定方法は、S601でユーザが指定した可視化モジュールタイプに応じて変更される。そこで、本実施形態では、モジュールタイプの指定に関して、第一の実施形態とは別の指定例について説明する。プログラム図作成において、第一の実施形態では「複雑」または「重要」なモジュールを抽出して可視化したが、本実施形態では「複雑でない」かつ「重要」なモジュールを抽出して可視化するものとする。なお、プログラム図作成装置の構造、その処理などの大部分は、第一の実施形態と同じであるため、本実施形態では、第一の実施形態と異なる部分に関して説明する。
 本実施形態では、S604の判定方法として、「複雑でない」かつ「重要」と指定されたモジュールを抽出する場合の処理について、図9を用いて説明する。
  図9は、可視化判定の詳細を示すフローチャートである(その二)。
 なお、第一実施形態のS601で述べたように、ユーザ入力による可視化モジュールタイプに従い、可視化判定部203が予め可視化判定利用表212から可視化判定で利用する項目をピックアップしているものとする。本実施形態では、複雑でない重要なモジュールを抽出するために、モジュールに対するテスト項目数(x1)とモジュールの循環的複雑度(y1)の二項目を利用するものとする。
 先ず、データ解析部202が、処理602で取得したテストコード209から、処理603で取得したモジュールに対応するテスト項目数を取得する(S800)。
 次に、可視化判定部203が、閾値データ213からモジュールに対するテスト項目数の閾値を取得し、処理800で取得したテスト項目数が、左記の閾値以上か否かを判定する(S801)。判定がyesであれば、処理802へ進み、判定がnoであれば、処理606へ進む。
 次に、データ解析部202が、処理602で取得したソースコード207から、S603で取得したモジュールに対応する循環的複雑度を取得する(S802)。
 次に、可視化判定部203が、閾値データ213からモジュールに対する循環的複雑度の閾値を取得し、処理802で取得した循環的複雑度が、左記の閾値以下か否かを判定する。判定がyes(複雑でない)であれば、処理605へ進み、判定がno(複雑)であれば、処理606へ進む。本実施形態は、このように、モジュールの可視化判定の際に、テスト項目数が閾値以上かという判定と循環的複雑度が閾値以下かという二つの判定をおこなう。これにより、前者の判定で、モジュールの構造が複雑なもの、またはモジュールが重要なものを抽出することができ、さらに、後者の判定で、左記で抽出したモジュールから構造が複雑なものを取り除く事により、最終的に構造が複雑でなく、かつ、重要なモジュールを抽出することができる。プログラムの広い範囲に対する処理の流れを把握したり、理解したりする目的のためにプログラム図を作成する場合、複雑であるが重要でないモジュールはユーザの誤解を招く恐れがある。本実施形態の方法により、複雑なモジュールを除去する事によって、ユーザに誤解を与えずに、重要なモジュールを解析するために好適なプログラム図を作成することができる。
 本実施形態の効果として、第一の実施形態と同様に、可視化モジュールを自動で抽出してプログラム図を構築・表示する事で、開発向上を見込むことができる。
 また、複雑なモジュールを除去する事によって、ユーザに誤解を与えずに、重要なモジュールを解析するために好適なプログラム図を作成することができる。
  〔実施形態3〕
 以下、本発明の第三の実施形態を、図10ないし図18を用いて説明する。
 第一の実施形態および第二の実施形態で述べたように、モジュールの可視化判定方法は、S601でユーザが指定した可視化モジュールタイプに応じて変更される。そこで、本実施形態では、第一の実施形態および第二の実施形態とは、別の評価尺度(メトリクス)を用いて、モジュールの可視化について判断する例について説明する。第一の実施形態では、「複雑」または「重要」なモジュールを、また、第二の実施形態では、「複雑でない」かつ「重要」なモジュールを、単一の項目のみで抽出して可視化したが、本実施形態では、様々なメトリクスを組み合わせた算出式を用いて算出したモジュール評価量を用いて可視化判定をおこない、「重要」なモジュールを抽出して可視化するものである。なお、プログラム図作成装置の構成、プログラム図作成の処理について、大部分は、第一の実施形態および第二の実施形態と同じであるため、本実施形態では、第一の実施形態および第二の実施形態と異なる部分に関して説明する。
 先ず、図10を用いて本発明の第三の実施形態に係るプログラム図作成装置の構成について説明する。
  図10は、本発明の第三の実施形態に係るプログラム図作成装置のソフトウェア構成図である。
 本発明の第三の実施形態に係るプログラム図作成装置では、データ類30の中に、モジュール評価量算出式表214、および、モジュール別モジュール評価量データ215が含まれている。
 モジュール評価量算出式表214は、モジュール評価量の算出式を記憶するテーブルである。
 モジュール別モジュール評価量データ215は、モジュール毎のモジュール評価量のデータを格納するテーブルである。
 次に、図11ないし図13を用いて本発明の第三の実施形態に係るプログラム図作成装置に用いられデータ構造について説明する。
  図11は、モジュール評価量算出式表214の一例を示す図である。
  図12は、閾値データ213の例を示す図である(その二)。
  図13は、モジュール別モジュール評価量データ215の一例を示す図である。
 図モジュール評価量算出式表214には、モジュール評価量を算出するために利用する式の定義式が格納される。ここでは、重要なモジュールに対するモジュールモジュール評価量1(z1)を算出するための式として、例えば、モジュールに対するテスト項目数(x1)とモジュールの循環的複雑度(y1)を用いた式「z1=x1/y1」を記載している。複雑度が同じモジュールであれば、テスト項目数は重要度に比例すると考えられるため、テスト項目数(x1)をモジュールの複雑度(y1)で除算する事により、プログラムの中で相対的に重要なモジュールが分かる。すなわち、開発者は、プログラムの複雑度に関するよりも、テスト項目数を増やしているため、そのモジュールを相対的に重要であると考えていることを暗示している。また、重要なモジュールに対するモジュール評価量2(z2)を算出するための式として、例えば、全モジュールテスト項目数に対するモジュールテスト項目数の割合(x3)、全モジュールテスト行数に対するモジュールテスト行数の割合(x4)、モジュールの循環的複雑度(y1)、および、モジュールのステートメント数(y3)を用いた式「z2=(x3+x4)/(y1+y3)」を記載している。モジュール評価量2(z2)も、モジュール評価量1(z1)と同様の意義を有する。なお、モジュール評価量の算出式として上記に限らず様々な式の利用が考えられる。異なる可視化モジュールタイプの場合は、もちろん、図11の例のように、同じ可視化モジュールタイプの場合でも、算出式は一つとは限らず、複数存在する事も考えられる。
 閾値データとしては、図12に示されるように、第一の実施形態の図6で説明した閾値データに、モジュール評価量1(z1)に関するものと、モジュール評価量2(z2)に関するものが付け加わっている。
 モジュール別モジュール評価量データ215には、モジュール評価量算出式表214記載のモジュール評価量項目毎に、プログラムの各モジュールに対して算出したモジュール評価量が格納される。本例では、図11に記載したモジュール評価量1(z1)およびモジュール評価量2(z2)のモジュール評価量項目に関し、可視化対象ソースコードに含まれるモジュールa、モジュールb、およびモジュールcの算出モジュールに対するモジュール評価量が記載されている。
 次に、図14および図15を用いて本発明の第三の実施形態に係るプログラム図作成装置におけるプログラム図作成の処理について説明する。
  図14は、本発明の第三の実施形態に係るプログラム図作成装置におけるプログラム図作成の処理を示すフローチャートである。
 ここで、第一の実施形態の図7と大部分の処理が同じであるため、その差異部分であるS901に関してのみ説明する。
 S901では、S601と同じように、入力装置102を用いて、可視化ソースコード、および可視化モジュールタイプをユーザが入力する。また、左記に加えて、ユーザは、可視化モジュールのモジュール評価量の閾値を入力する。この際、本例では、図12に示されるように、ユーザにより60という値がモジュールモジュール評価量1(z1)の閾値として入力され、プログラム作成制御部205が、ユーザに入力された60という値を閾値データ213に格納したと想定する。また、本処理のS901で可視化モジュールタイプがユーザにより入力されると、可視化判定部203は、モジュール評価量算出式表214から、ユーザ入力されたタイプのモジュールを抽出するために利用する項目をピックアップする。本例では、モジュール評価量1(z1)を利用する事を想定する。
 本実施形態では、処理904の可視化判定方法として、「重要」なモジュールを抽出する場合の処理について、図15を用いて説明する。
  図15は、可視化判定の詳細を示すフローチャートである(その二)。
 なお、処理901で述べたように、ユーザが入力した、可視化モジュールタイプに従い、可視化判定部203が予めモジュール評価量算出式表214から、可視化判定で利用する項目をピックアップしているものとする。本実施形態では、モジュール評価量算出式表214の最初のエントリであるモジュール評価量1(z1)を利用するものとし、重要なモジュールを抽出するための項目として、モジュールに対するテスト項目数(x1)とモジュールの循環的複雑度(y1)の二項目を利用する。
 先ず、データ解析部202が、S902で取得したテストコード209から、処理903で取得したモジュールに対応するテスト項目数(x1)を取得する(S1000)。また、データ解析部202が、S902で取得したソースコード207から、S903で取得したモジュールに対応する循環的複雑度(y1)を取得する。さらに、データ解析部202が、モジュール評価量算出式表214から、モジュールに対するテスト項目数(x1)とモジュールの循環的複雑度(y1)を用いてモジュールモジュール評価量1(z1)を算出する式z1=x1/y1を取得する。
 次に、データ解析部202が、処理1000で取得したモジュールに対するテスト項目数(x1)、モジュールに対応する循環的複雑度(y1)、および左記データを利用するモジュールモジュール評価量1(z1)算出式から、重要なモジュールに対するモジュールモジュール評価量を算出し、さらに、プログラム図作成制御部205が、算出したモジュールのモジュール評価量を、モジュール別モジュール評価量データ215に格納する(S1001)。
 次に、可視化判定部203が、閾値データ213からモジュール評価量1(z1)に関する閾値を取得し、処理1001で算出したモジュールのモジュール評価量が左記の閾値以上か否かを判定する(S1002)。判定がyesであれば、処理905へ進み、判定がnoであれば、処理906へ進む。
 本実施形態の効果として、第一の実施形態と同様に、可視化モジュールを自動で抽出してプログラム図を構築・表示する事で、開発向上を見込むことができる。
 なお、本実施形態では、可視化判定をおこなう際に、モジュール毎にユーザが入力したモジュールタイプに応じたモジュール評価量を算出し、該モジュール評価量が閾値データ213に記載された閾値以上のモジュールのみを可視化する。このように算出したモジュールのモジュール評価量は、例えば、S1001でおこなったように、モジュール別モジュール評価量データ215に、タイプに応じてモジュール毎に算出値を格納しておく事により、ユーザは可視化するモジュールを随時変更してプログラム図を変更できる。
 このプログラム図を随時変更する処理について、図16ないし図18を用いて説明する。
  図16は、プログラム図を随時変更する処理を示すフローチャートである。
  図17は、可視化判定の詳細を示すフローチャートである(その三)。
  図18は、プログラム図の可視化対象を動的に変更する場合のユーザインターフェース画面を示す図である。
 ユーザが既に可視化しているプログラム図を変更する際の処理は、図16および図17のフローチャートに示されるようになるが、大部分の処理は、第一の実施形態の図14および図15と同じであるため、異なる部分のみを説明する。
 S1300において、入力装置102を用いて、可視化モジュールのモジュール評価量の閾値を入力する。なお、モジュール評価量の入力は、モジュール評価量の値を入力装置102の一形態であるキーボードで入力するのに限らず、例えば、図18の画面下に表示しているようなモジュール評価量スライダを動かす事により、モジュール評価量の閾値を変更してもよい。この際、入力したモジュール評価量の閾値は、例えば、プログラム図作成制御部205が、現在表示しているプログラム図から可視化しているモジュールタイプを取得した上で、閾値データ213の対応する項目に閾値として設定しておく。なお、本例では、プログラム図として10以上のモジュールモジュール評価量1(z1)の値を持つモジュールで構成されたものを、予め表示している事を想定している。予め表示されている図は、図18(a)の通りである。
 S1302においては、ソースコード取得部200が、ソースコード群206の中から、可視化対象であるソースコード207を取得する。この際、テストコード取得部201は、ソースコードA207用のテストコード209を読み込まない。
 可視化判定S1304のS1400において、プログラム図作成制御部205が、モジュール別モジュール評価量データ215から、処理1303で取得したモジュールに関するモジュール評価量を取得する。
 次に、S1401において、可視化判定部203が、S1300で閾値データ213へ格納した、ユーザ入力のモジュールモジュール評価量を、閾値データ213から取得し、処理1400で取得したモジュールのモジュール評価量が前者のモジュール評価量以上か否かを判定する。判定がyesであれば、処理1305へ進み、判定がnoであれば、処理1306へ進む。
 ユーザのモジュール評価量変更指示に応じて、情報処理装置100の表示装置105で表示されるプログラム図が変化する例は、図18に示されるように、モジュール評価量10以上のモジュールで構成された図を表示すると、図18(a)のように複雑な図となる。ここで、例えば画面上に表示されるモジュール評価量スライダを操作し、可視化するモジュールのモジュール評価量を10から80へ変更すると、図18(b)のように簡単なプログラム図へと変化する。
 本実施形態のように、モジュール別のモジュール評価量を算出しておく事により、画面サイズに収まる程度のプログラム図を表示したい場合等、可視化モジュールの柔軟な変更が可能となる。
100…情報処理装置
101…中央処理装置
102…入力装置
103…二次記憶装置
104…主記憶装置
105…表示装置
106…バス
107…通信装置
110…情報装置A
120…情報装置B
130…通信ネットワーク
200…ソースコード取得部
201…テストコード取得部
202…データ解析部
203…可視化判定部
204…描画指示部
205…プログラム図作成制御部
206…ソースコード群
207…ソースコードA
208…テストコード群
209…テストコードA
210…テストコードと一体化したソースコード群
211…テストコードと一体化したソースコードA
212…可視化判定利用表
213…閾値データ
214…モジュール評価量算出式表
215…モジュール別モジュール評価量データ

Claims (11)

  1.  コンピュータによりソースコードとそのソースコードに対応するテストコードを解析し、前記ソースコードと前記テストコードに基づいて、前記ソースコードに関する情報を可視化して表示するプログラム図を作成するプログラム図作成装置であって、
     前記ソースコードを取得するソースコード取得部と、
     前記ソースコードに対応するテストコードを取得するテストコード取得部と、
     前記ソースコードと前記テストコードから可視化判定で必要な情報を抽出するデータ解析部と、
     前記ソースコード内からモジュールを抽出するモジュール抽出部と、
     前記データ解析部で前記ソースコードと前記テストコードに対して解析する可視化項目を記載した可視化判定利用表と、
     前記可視化項目に係る閾値を記載した閾値データと、
     前記データ解析部により前記ソースコードと前記テストコードに対して解析されて求められた可視化判定利用表に記載された可視化項目の値と、その可視化項目に係る前記閾値データに記載された閾値とを比較して前記モジュール抽出部が前記ソースコードより抽出したモジュールの可視化判定をおこなう可視化判定部とを備え、
     前記可視化判定部により、可視化すると判定されたモジュールの表示要素を前記プログラム図に表示し、可視化しない判定されたモジュールの表示要素を前記プログラム図に表示しないように前記プログラム図を作成することを特徴とするプログラム図作成装置。
  2.  前記可視化判定部は、前記テストコードから抽出したモジュールに対するテスト項目数と前記閾値データに含まれるテスト項目数に係る閾値とを比較し、前記テストコードから抽出したモジュールのテスト項目数が閾値データから取得したテスト項目数に係る閾値以上の場合には、モジュールを可視化し、前記テストコードから抽出したモジュールのテスト項目数が閾値データから取得したテスト項目数に係る閾値未満の場合には、モジュール可視化しないと判定することを特徴としたことを特徴とする請求項1記載のプログラム図作成装置。
  3.  さらに、前記可視化判定部は、前記テストコードから抽出したモジュールに対するテスト項目数を用いた可視化判定に加え、前記ソースコードから抽出したモジュールの循環的複雑度と前記閾値データから取得した循環的複雑度に係る閾値とを比較し、前記ソースコードから抽出したモジュールの循環的複雑度が閾値データから取得した循環的複雑度に係る閾値以下の場合には、モジュールを可視化し、前記ソースコードから抽出したモジュールの循環的複雑度が閾値データから取得した循環的複雑度に係る閾値より大きい場合には、モジュールを可視化しないと判定することを特徴とした請求項2記載のプログラム図作成装置。
  4.  さらに、前記可視化判定利用表に記載された可視化項目を、四則演算した得られるモジュール評価量の定義式を記載するモジュール評価量算出式表を有し、
     前記閾値データは、前記モジュール評価量算出式表に定義されたモジュール評価量の閾値を含み、
     前記データ解析部は、前記ソースコードと前記テストコードに対して解析し可視化判定利用表に記載された可視化項目の値を求めて、前記モジュール評価量を算出し、
     前記可視化判定部は、前記算出されたモジュール評価量の値と、そのモジュール評価量に係る前記閾値データに記載された閾値とを比較して前記モジュール抽出部が前記ソースコードより抽出したモジュールの可視化判定をおこなうことを特徴とする請求項1記載のプログラム図作成装置。
  5.  さらに、モジュール別のモジュール評価量の値を記載したモジュール別モジュール評価量データを有し、
     前記データ解析部は、算出したモジュール評価量を該当するモジュールのモジュール評価量の値として格納し、
     前記可視化判定部は、前記モジュール別モジュール評価量データのモジュール評価量の値と、そのモジュール評価量に係る前記閾値データに記載された閾値とを比較し、
     前記モジュール別モジュール評価量データのモジュール評価量の値がそのモジュール評価量に係る前記閾値データに記載された閾値以上の場合は、モジュールを可視化し、前記モジュール別モジュール評価量データのモジュール評価量の値がそのモジュール評価量に係る前記閾値データに記載された閾値未満の場合は、モジュールを可視化しないことを特徴とする請求項4記載のプログラム図作成装置。
  6.  前記モジュール評価量に係る前記閾値を動的に変換する画面を出力することを特徴とする請求項5記載のプログラム図作成装置。
  7.  前記モジュール評価量は、前記テストコードから抽出したモジュールに対するテスト項目数、モジュールに対するテスト行数、全モジュールテスト項目数に対するモジュールテスト項目数の割合、全モジュールテスト行数に対するモジュールテスト行数の割合、または、前記ソースコードから抽出したモジュールの循環的複雑度、モジュールの行数、モジュールのステートメント数、モジュールのネスト深度のいずれかの四則演算より得られることを特徴とする請求項4記載のプログラム図作成装置。
  8.  前記モジュール評価量は、モジュールに対するテスト項目数を前記モジュールの循環的複雑度で割った値であることを特徴とする請求項7記載のプログラム図作成装置。
  9.  前記モジュール評価量は、全モジュールテスト項目数に対するモジュールテスト項目数の割合と全モジュールテスト行数に対するモジュールテスト行数の割合とを加えた値を、モジュールの循環的複雑度とモジュールのステートメント数を加えた値で割った値であることを特徴とする請求項7記載のプログラム図作成装置。
  10.  コンピュータによりソースコードとそのソースコードに対応するテストコードを解析し、前記ソースコードと前記テストコードに基づいて、前記ソースコードに関する情報を可視化して表示するプログラム図を作成するプログラム図作成方法であって、
     前記ソースコードを取得するステップと、
     前記ソースコードに対応するテストコードを取得するステップと、
     前記ソースコードと前記テストコードから可視化判定で必要な情報を抽出するステップと、
     前記ソースコード内からモジュールを抽出するステップと、
     可視化判定利用表に前記ソースコードと前記テストコードに対して解析する可視化項目を記載するステップと、
     閾値データに前記可視化項目に係る閾値を記載するステップと、
     前記データ解析部により前記ソースコードと前記テストコードに対して解析されて求められた可視化判定利用表に記載された可視化項目の値と、その可視化項目に係る前記閾値データに記載された閾値とを比較して前記モジュール抽出部が前記ソースコードより抽出したモジュールの可視化判定をおこなうステップとを備え、
     前記可視化判定部により、可視化すると判定されたモジュールの表示要素を前記プログラム図に表示し、可視化しない判定されたモジュールの表示要素を前記プログラム図に表示しないように前記プログラム図を作成することを特徴とするプログラム図作成方法。
  11.  コンピュータによりソースコードとそのソースコードに対応するテストコードを解析し、前記ソースコードと前記テストコードに基づいて、前記ソースコードに関する情報を可視化して表示するプログラム図を作成するプログラム図作成プログラムであって、
     前記ソースコードを取得するステップと、
     前記ソースコードに対応するテストコードを取得するステップと、
     前記ソースコードと前記テストコードから可視化判定で必要な情報を抽出するステップと、
     前記ソースコード内からモジュールを抽出するステップと、
     可視化判定利用表に前記ソースコードと前記テストコードに対して解析する可視化項目を記載するステップと、
     閾値データに前記可視化項目に係る閾値を記載するステップと、
     前記データ解析部により前記ソースコードと前記テストコードに対して解析されて求められた可視化判定利用表に記載された可視化項目の値と、その可視化項目に係る前記閾値データに記載された閾値とを比較して前記モジュール抽出部が前記ソースコードより抽出したモジュールの可視化判定をおこなうステップとを実行し、
     前記可視化判定部により、可視化すると判定されたモジュールの表示要素を前記プログラム図に表示し、可視化しない判定されたモジュールの表示要素を前記プログラム図に表示しないように前記プログラム図を作成することを特徴とするプログラム図作成プログラム。
PCT/JP2013/052422 2013-02-01 2013-02-01 プログラム図作成装置、プログラム図作成方法、および、プログラム図作成プログラム WO2014118981A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/052422 WO2014118981A1 (ja) 2013-02-01 2013-02-01 プログラム図作成装置、プログラム図作成方法、および、プログラム図作成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/052422 WO2014118981A1 (ja) 2013-02-01 2013-02-01 プログラム図作成装置、プログラム図作成方法、および、プログラム図作成プログラム

Publications (1)

Publication Number Publication Date
WO2014118981A1 true WO2014118981A1 (ja) 2014-08-07

Family

ID=51261723

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/052422 WO2014118981A1 (ja) 2013-02-01 2013-02-01 プログラム図作成装置、プログラム図作成方法、および、プログラム図作成プログラム

Country Status (1)

Country Link
WO (1) WO2014118981A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1097403A (ja) * 1996-09-20 1998-04-14 Fujitsu Ltd 再帰的数式の対話型表示方式
JP2010204877A (ja) * 2009-03-03 2010-09-16 Hitachi Ltd ソフトウェア開発支援装置およびソフトウェア開発支援方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1097403A (ja) * 1996-09-20 1998-04-14 Fujitsu Ltd 再帰的数式の対話型表示方式
JP2010204877A (ja) * 2009-03-03 2010-09-16 Hitachi Ltd ソフトウェア開発支援装置およびソフトウェア開発支援方法

Similar Documents

Publication Publication Date Title
US8631392B1 (en) Analysis of a sequence of data in object-oriented environments
Elish et al. Empirical comparison of three metrics suites for fault prediction in packages of object-oriented systems: A case study of Eclipse
CN109408102B (zh) 一种版本比对方法和装置、家电设备、网络设备
US9165029B2 (en) Navigating performance data from different subsystems
US8904299B1 (en) Graphical user interface for analysis of a sequence of data in object-oriented environment
US8661415B2 (en) Path-sensitive visualizations of aggregated profiling and trace date
US20160283362A1 (en) Software Component Recommendation Based on Multiple Trace Runs
JP2015043198A (ja) 解析システム、解析方法および解析プログラム
US10719645B1 (en) Model structure analysis with integration of transformed slice
JP3842592B2 (ja) 変更危険度測定システム、変更危険度測定方法及び変更危険度測定プログラム
US10721152B2 (en) Automated analysis and recommendations for highly performant single page web applications
JP2015230582A (ja) プログラム可視化装置、プログラム可視化方法、及びプログラム可視化プログラム
JP2009230420A (ja) ソースコード品質管理装置
Baum et al. Visualizing design erosion: How big balls of mud are made
Hauck et al. Ginpex: deriving performance-relevant infrastructure properties through goal-oriented experiments
CN103853554A (zh) 一种软件重构位置确定方法及装置
US20160063744A1 (en) Data Quality Test and Report Creation System
WO2014118981A1 (ja) プログラム図作成装置、プログラム図作成方法、および、プログラム図作成プログラム
Hauck et al. Deriving performance-relevant infrastructure properties through model-based experiments with Ginpex
Pouchard et al. Capturing provenance as a diagnostic tool for workflow performance evaluation and optimization
CN107239373B (zh) 一种嵌入式继电保护设备的仿真方法及系统
KR20130060523A (ko) 데이터 마이닝 프로세스 자동화 시스템, 방법 및 그에 대한 기록매체
JP6335329B2 (ja) プログラム依存部可視化装置、方法、およびプログラム
JP6087472B2 (ja) プログラム図作成装置、プログラム図作成方法、及びプログラム図作成プログラム
JP6087473B2 (ja) プログラム抽象図作成装置、及びプログラム抽象図作成プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13873156

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13873156

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP