WO2020174578A1 - シーケンス図生成装置 - Google Patents

シーケンス図生成装置 Download PDF

Info

Publication number
WO2020174578A1
WO2020174578A1 PCT/JP2019/007298 JP2019007298W WO2020174578A1 WO 2020174578 A1 WO2020174578 A1 WO 2020174578A1 JP 2019007298 W JP2019007298 W JP 2019007298W WO 2020174578 A1 WO2020174578 A1 WO 2020174578A1
Authority
WO
WIPO (PCT)
Prior art keywords
diagram
tree diagram
sequence diagram
tree
software components
Prior art date
Application number
PCT/JP2019/007298
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 US17/429,961 priority Critical patent/US20220147347A1/en
Priority to JP2021501429A priority patent/JPWO2020174578A1/ja
Priority to PCT/JP2019/007298 priority patent/WO2020174578A1/ja
Publication of WO2020174578A1 publication Critical patent/WO2020174578A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code

Definitions

  • the present invention relates to a sequence diagram generation device that generates a sequence diagram from a source code including a plurality of software components.
  • the source code of a computer program is composed of various software components such as functions, processes, modules, packages, classes, function blocks (functions).
  • a sequence diagram also referred to as a "call sequence diagram”
  • calling sequence diagram a sequence diagram based on the calling and returning relationships among the software components included in the source code.
  • the starting point of the sequence diagram indicates the position in the source code where the process according to the sequence diagram starts or ends.
  • the extent of the sequence diagram indicates, for example, the depth of calls and returns between each software component included in the sequence diagram.
  • the granularity of the sequence diagram indicates, for example, which level of the software component of the function, the process, the module, the package, the class, or the function block (function group) creates the sequence diagram.
  • the starting point or range of the sequence diagram may be changed. Unnecessary data is deleted by limiting the range of the sequence diagram, making it easy to understand the outline of the process. Further, the granularity of the sequence diagram may be changed in order to make the sequence diagram easier to understand. By grouping a plurality of functions into one functional block, the sequence diagram is simplified and the outline of the process is easy to understand.
  • Patent Documents 1 and 2 disclose an exemplary sequence diagram creation device.
  • the source code may include a large number of software components, and the source code may include a plurality of starting software components. Further, in this case, the starting software component may be located at a very deep position in the hierarchical structure of the source code. In such a case, there is a problem that it takes a lot of time to specify the starting point, the range, and the granularity of the sequence diagram, and it takes time to change them.
  • An object of the present invention is to solve the above problems and provide a sequence diagram generation device capable of generating a sequence diagram by easily specifying the starting point, range, and granularity of a sequence diagram more easily than before. is there.
  • a sequence diagram generation device for generating a sequence diagram from a source code including a plurality of software components, A source code analyzer that extracts the software components from the source code and extracts a call relationship indicating a call and return relationship between the software components, A tree diagram generator that generates a tree diagram of the source code based on each of the software components extracted by the source code analyzer and the calling relationship; A sequence diagram generator that generates a sequence diagram of the source code based on each of the software components extracted by the source code analyzer and the calling relationship, The tree diagram generator generates a tree diagram that includes the software components within a specified range and excludes the software components outside the specified range; The sequence diagram generator includes the software components included in the tree diagram generated by the tree diagram generator, and the software components excluded in the tree diagram generated by the tree diagram generator Generate a sequence diagram that excludes.
  • FIG. 6 is a flowchart showing an operation of the sequence diagram generation device 100 according to the embodiment.
  • 7 is a table showing a first example of generation parameters used by sequence diagram generation device 100 according to the exemplary embodiment.
  • 4 is a first exemplary tree diagram corresponding to the generation parameters of FIG. 3.
  • FIG. 4 is a first exemplary sequence diagram corresponding to the generation parameters of FIG. 3.
  • 6 is a table showing a second example of generation parameters used by sequence diagram generation device 100 according to the exemplary embodiment.
  • 7 is a second exemplary tree diagram corresponding to the generation parameters of FIG. 6.
  • FIG. 7 is a second exemplary sequence diagram corresponding to the generation parameter of FIG. 6.
  • FIG. 9 is a table showing a third example of generation parameters used by the sequence diagram generation device 100 according to the embodiment.
  • FIG. 10 is a third exemplary tree diagram corresponding to the generation parameters of FIG. 9.
  • FIG. 10 is a third exemplary sequence diagram corresponding to the generation parameter of FIG. 9.
  • 9 is a table showing a fourth example of generation parameters used by the sequence diagram generation device 100 according to the embodiment.
  • FIG. 13 is a fourth exemplary tree diagram corresponding to the generation parameters of FIG. 12.
  • FIG. 13 is a fourth exemplary sequence diagram corresponding to the generation parameter of FIG. 12. It is a 5th example tree figure displayed by the sequence diagram generation apparatus 100 which concerns on embodiment. It is a 6th example tree figure displayed by the sequence diagram generation apparatus 100 which concerns on embodiment. It is a 7th example tree figure displayed by the sequence diagram generation apparatus 100 which concerns on embodiment.
  • FIG. 16 is an eighth exemplary tree diagram displayed by the sequence diagram generation device 100 according to the embodiment.
  • FIG. 1 is a block diagram showing a configuration of a sequence diagram generation device 100 according to an embodiment. An outline of the configuration of the sequence diagram generation device 100 will be described with reference to FIG. 1.
  • the sequence diagram generation device 100 includes storage devices 1, 4, 7, 9, 11, 14, a data input device 2, a source code analyzer 3, a user input device 5, a control device 6, a tree diagram generator 8, and a sequence diagram generation device. It includes a container 10, a display device 12, and a data output device 13.
  • the sequence diagram generation device 100 generates a sequence diagram from a source code including a plurality of software components.
  • the storage device 1 stores at least one source code in advance.
  • Each source code includes multiple software components.
  • the software component includes, for example, a process, module, package, class, functional block (function group).
  • the software component includes a plurality of functions and a plurality of functional blocks each including at least one function. In other words, the software component has a two-step granularity of functions and functional blocks.
  • the source code stored in the storage device 1 is read by the source code analyzer 3 via the data input device 2.
  • the source code analyzer 3 analyzes the source code, extracts a plurality of software (SW) components from the source code, and extracts a call relationship indicating a call and return relationship between each software component. ..
  • the source code analyzer 3 stores the extracted software components and calling relationships in the storage device 4.
  • the user input device 5 acquires user input for designating the starting point, range, and granularity of the sequence diagram.
  • the user input device 5 specifies the starting point, the range, and the granularity of the tree diagram generated by the tree diagram generator 8 described later.
  • User input also referred to as “tree diagram generation parameter”.
  • the tree diagram generation parameter individually designates software components included in the tree diagram and software components excluded in the tree diagram.
  • the user input device 5 includes a keyboard and a pointing device.
  • the control device 6 controls the operation of each component of the sequence diagram generation device 100.
  • the storage device 7 stores the generation parameter of the tree diagram acquired by the user input device 5 under the control of the control device 6.
  • the tree diagram generator 8 generates a tree diagram of the source code (also called “call tree diagram”) based on each software component extracted by the source code analyzer 3 and the call relationship.
  • the tree diagram shows the calling relationship of each software component of the source code in a tree shape.
  • the tree diagram generator 8 generates a tree diagram that includes software components specified by user input and excludes other software components specified by user input.
  • the tree diagram generator 8 stores the generated tree diagram in the storage device 9 and displays the generated tree diagram on the display device 12.
  • the sequence diagram generator 10 generates a sequence diagram of the source code based on each software component and call relationship extracted by the source code analyzer 3.
  • the sequence diagram generator 10 includes a software component included in the tree diagram generated by the tree diagram generator 8 and excludes a software component excluded in the tree diagram generated by the tree diagram generator 8. Generate the diagram.
  • the sequence diagram generator 10 stores the generated sequence diagram in the storage device 11 and displays the generated sequence diagram on the display device 12.
  • the sequence diagram generator 10 also outputs the sequence diagram finally accepted by the user via the data output device 13 and stores it in the storage device 14.
  • the storage devices 1, 4, 7, 9, 11, and 14 are shown as separate components in FIG. 1, they may be provided as a single component. Further, the sequence diagram generation device 100 including each component of FIG. 1 may be provided as an integrated device such as a personal computer, or may be provided as a combination of a plurality of devices.
  • the data input device 2 and the data output device 13 may be an interface such as a USB (universal serial bus), and in this case, the storage device 1 or 14 is a removable storage medium.
  • at least one of the data input device 2 and the data output device 13 may be a network interface. In this case, the storage device 1 or 14 is a remote storage medium connected via a network.
  • FIG. 2 is a flowchart showing the operation of the sequence diagram generation device 100 according to the embodiment. An outline of the operation of the sequence diagram generation device 100 for generating a sequence diagram from a source code will be described with reference to FIG.
  • the control device 6 When the sequence diagram generation device 100 is activated, the control device 6 initializes the sequence diagram generation process in step S101.
  • the control device 6 displays a menu and/or guidance display for generating the sequence diagram on the display device 12.
  • the user uses the user input device 5 to specify one of the source codes stored in advance in the storage device 1 according to the menu and/or the guidance display.
  • the control device 6 also sets initial values of the tree diagram generation parameters and stores the set initial values in the storage device 7. For example, the control device 6 may set the initial value of the generation parameter of the tree diagram so as to generate the tree diagram of the entire source code including all the functions of the source code and not including the functional block.
  • step S102 the control device 6 causes the source code analyzer 3 to analyze the source code.
  • the source code analyzer 3 reads the source code designated by the user in step S101 from the storage device 1, and extracts each software component and call relationship from the read source code.
  • the source code analyzer 3 extracts a plurality of functions as software components from the source code, and extracts a calling relationship between the functions.
  • the source code analyzer 3 stores the extracted software components and calling relationships in the storage device 4.
  • the control device 6 reads each software component from the storage device 4 and stores the read software component in the storage device 7 for use in setting the generation parameter of the tree diagram.
  • the control device 6 causes the tree diagram generator 8 to generate a tree diagram of the source code in step S103.
  • the tree diagram generator 8 reads out the tree diagram generation parameters stored in the storage device 7, and reads out each software component and calling relationship stored in the storage device 4.
  • the tree diagram generator 8 generates a tree diagram from each software component and calling relationship based on the tree diagram generation parameter.
  • the tree diagram generator 8 generates, for example, a tree diagram of the entire source code that includes all the functions of the source code and does not include functional blocks, based on the initial values of the tree diagram generation parameters.
  • the tree diagram generator 8 stores the generated tree diagram in the storage device 9 and displays the generated tree diagram on the display device 12.
  • the control device 6 controls the tree diagram generation parameters (that is, the starting point and the range of the tree diagram) according to the user input in step S104. , And granularity) are specified or changed.
  • the control device 6 displays on the display device 12 a menu and/or guidance display for designating or changing the generation parameter of the tree diagram.
  • the user individually designates the software components included in the tree diagram and the software components excluded in the tree diagram through the user input device 5. For example, the user groups some functions via the user input device 5 and sets them as functional blocks. Further, the control device 6 may automatically group a plurality of functions having a function name or argument including a common character string as functions belonging to the same functional block.
  • the user individually designates the functions included in the tree diagram and the functions excluded in the tree diagram through the user input device 5, and identifies the functional blocks included in the tree diagram and the functional blocks excluded in the tree diagram. Specify individually. Thereby, the starting point, the range, and the granularity of the tree diagram are designated or changed.
  • the control device 6 stores the designated or changed tree diagram generation parameter in the storage device 7.
  • the control device 6 causes the tree diagram generator 8 to generate an updated tree diagram based on the designated or changed tree diagram generation parameter, as in step S103.
  • the tree diagram generator 8 stores the updated tree diagram in the storage device 9 and displays the updated tree diagram on the display device 12.
  • step S105 the user confirms the tree diagram displayed on the display device 12 and accepts the generated tree diagram (i.e., the starting point, the range, and the granularity of the tree diagram need not be further changed. Or not)).
  • the control device 6 obtains, via the user input device 5, a user input indicating whether or not the user accepts the generated tree diagram. If step S105 is YES, the process proceeds to step S106, and if step S105 is NO, the process returns to step S104.
  • step S106 the control device 6 causes the sequence diagram generator 10 to generate a sequence diagram of the source code.
  • the sequence diagram generator 10 reads out tree diagram generation parameters stored in the storage device 7, and reads out each software component and calling relationship stored in the storage device 4.
  • the sequence diagram generator 10 generates a sequence diagram from each software component and calling relationship based on the tree diagram generation parameter.
  • the sequence diagram generator 10 stores the generated tree diagram in the storage device 11 and displays the generated tree diagram on the display device 12.
  • step S107 the user confirms the sequence diagram displayed on the display device 12 and whether or not to accept the generated sequence diagram (that is, further change of the starting point, the range, and the granularity of the sequence diagram is unnecessary. Or not)).
  • the control device 6 obtains, via the user input device 5, a user input indicating whether or not the user accepts the generated sequence diagram.
  • step S107 is YES
  • the control device 6 causes the sequence diagram generator 10 to output the sequence diagram to the storage device 14 via the data output device 13, and ends the processing.
  • step S105 is NO, the process returns to step S103.
  • step S104 the generation parameter of the tree diagram is changed, and thereafter, in step S106, the updated sequence diagram is generated based on the changed generation parameter.
  • step S107 again, the user confirms the sequence diagram displayed on the display device 12 and determines whether to accept the generated sequence diagram.
  • FIG. 3 is a table showing a first example of generation parameters used by the sequence diagram generation device 100 according to the embodiment.
  • the generation parameter in FIG. 3 includes the identification information of the function extracted by the source code analyzer 3, for example, function names F(1), F(2,1) and the like.
  • the function name may be extracted from the source code or may be acquired from the user via the user input device 5.
  • the generation parameter of FIG. 3 includes identification information of a functional block in which some functions are grouped, for example, functional block names B(1) and B(2).
  • the function block name may be set to any one of the functions included in the function block (for example, the function name of the function called first), and is acquired from the user via the user input device 5. Good.
  • the generation parameter of FIG. 3 includes a flag that individually designates a function included in the tree diagram (displayed function) and a function excluded in the tree diagram (hidden function). Further, the generation parameter of FIG. 3 includes a flag for individually designating a functional block (displayed functional block) included in the tree diagram and a functional block (non-displayed functional block) excluded in the tree diagram. In addition, the generation parameter of FIG. 3 includes a flag that specifies whether a certain function and/or functional block is highlighted as the starting point of the tree diagram and the sequence diagram.
  • the generation parameters are set to generate a tree diagram of the entire source code that includes all functions of the source code and does not include functional blocks.
  • the plurality of functions are arranged in the order of increasing depth of calls from the function F(1) with the function F(1) as a starting point where the processing starts, and at the same depth. They are arranged in the order in which they are called.
  • the function F(1) is specified to be highlighted as the starting point of the tree diagram and the sequence diagram.
  • FIG. 4 is a first exemplary tree diagram corresponding to the generation parameters of FIG.
  • the tree diagram includes all the functions of the source code, while the “hidden” functional blocks are also indicated by dashed lines. Further, in the example of FIG. 4, the function F(1) is highlighted as the starting point of the tree diagram.
  • the purpose of using the tree diagram and its generation parameter is to finally generate a sequence diagram.
  • “included” in a tree diagram a software component essentially means that the software component is included in a sequence diagram.
  • a software component being “excluded” in a tree diagram essentially means that the software component is excluded in the sequence diagram.
  • software components that are excluded in the tree diagram are displayed by dashed lines, as shown in Figure 4, or by a changed color (such as gray or translucent). Alternatively, it may be made completely invisible instead.
  • the control device 6 may display the content of the generation parameter of FIG. 3 on the display device 12.
  • the control device 6 and the tree diagram generator 8 may simultaneously display the generation parameters of FIG. 3 and the tree diagram of FIG. 4 on the display device 12, or may alternately display these on the display device 12.
  • FIG. 5 is a first exemplary sequence diagram corresponding to the generation parameters of FIG.
  • Call messages CM01 to CM11 and return messages RM01 to RM11 are issued between the respective functions.
  • the call message CM01 indicates a call (call) from the function F(1) to the function F(2,1)
  • the return message RM01 is the function F(2,1) to the function F corresponding to the call message CM01.
  • the sequence diagram generator 10 When the sequence diagram includes all functions of the source code, the sequence diagram generator 10 generates a sequence diagram including all call messages CM01 to CM11 and all return messages RM01 to RM11. Further, in the example of FIG. 5, the function F(1) is highlighted as the starting point of the sequence diagram.
  • FIG. 6 is a table showing a second example of generation parameters used by the sequence diagram generation device 100 according to the embodiment.
  • FIG. 6 shows, for the same source code as in FIG. 3, generation parameters that specify different granularity from that in FIG.
  • the functional block B(1) obtained by grouping the functions F(1) and F(2,1) is designated.
  • the generation parameter is set so as to generate a tree diagram of the entire source code including all the functional blocks and not including the function.
  • the plurality of functional blocks are arranged with the functional block B(1) as a starting point where the processing starts, and are arranged in order of increasing depth of call from the functional block B(1), and the same. In depth they are arranged in the order they are called.
  • the functional block B(1) is designated to be highlighted as the starting point of the tree diagram and the sequence diagram.
  • FIG. 7 is a second exemplary tree diagram corresponding to the generation parameters of FIG.
  • the tree diagram contains all functional blocks, while not containing any functions. Further, in the example of FIG. 7, the functional block B(1) is highlighted as the starting point of the tree diagram.
  • FIG. 8 is a second exemplary sequence diagram corresponding to the generation parameters of FIG. Call messages CM02 to CM09 and return messages RM02 to RM09 are issued between the respective functional blocks.
  • the call message CM02 is a function call (call) from the function F(2,1) included in the function block B(1) to the function F(3,1,1) included in the function block B(3).
  • the return message RM02 indicates a return from the function F(3,1,1) corresponding to the call message CM02 to the function F(2,1).
  • the sequence diagram generator 10 does not include a call message and a return message (CM01, RM01, etc.) issued between a plurality of functions included in the same functional block.
  • a sequence diagram including a call message and a return message (CM02, RM02, etc.) issued between the functions included in different function blocks is generated.
  • the functional block B(1) is highlighted as the starting point of the sequence diagram.
  • the tree diagram and sequence diagram may contain the function instead of the functional block.
  • the sequence diagram generation device 100 operates as follows.
  • step S101 nothing is stored in the storage device 7 as a tree diagram generation parameter in the initial state.
  • step S102 the source code analyzer 3 extracts each function and call relationship from the source code and stores them in the storage device 4.
  • step S103 the tree diagram generator 8 generates a tree diagram from each function and call relationship based on the tree diagram generation parameters.
  • the tree diagram generator 8 is configured to process all the source code as shown in FIG. Generates a tree diagram of the entire source code that includes the functions of and no functional blocks.
  • step S104 when the tree diagram generation parameter (that is, the starting point, range, and granularity of the tree diagram) is not changed, the control device 6 sets the function name of each function extracted from the source code as the tree diagram generation parameter. It is stored in the storage device 7. Further, the control device 6 stores, in the storage device 7, flags that individually specify these functions as those included in the tree diagram, as generation parameters of the tree diagram.
  • the tree diagram generation parameter that is, the starting point, range, and granularity of the tree diagram
  • step S104 is repeated to change the tree diagram generation parameter.
  • the control device 6 designates, as shown in FIG. 6, for example, a flag that designates each function as being excluded in the tree diagram, and a flag that individually designates each function block as being included in the tree diagram. It is stored in the storage device 7 as a generation parameter of.
  • the tree diagram generator 8 generates a tree diagram of the entire source code including function blocks and not including functions.
  • step S105 When it is determined in step S105 that the user accepts the generated tree diagram, the sequence diagram generator 10 determines in step S106, for example, the sequence diagram of FIG. 5 based on the generation parameter of the tree diagram of FIG.
  • the sequence diagram of FIG. 8 is generated based on the generation parameters of the tree diagram of FIG. 7.
  • step S107 If it is determined in step S107 that the user does not accept the generated sequence diagram, steps S103 to S06 are repeated, and in step S104, the tree diagram generation parameter is changed. On the other hand, if it is determined in step S107 that the user accepts the generated sequence diagram, the process ends.
  • the sequence diagram generation device 100 has the following unique effects.
  • the sequence diagram generation device 100 can easily generate the tree diagram by changing the starting point, the range, and the granularity of the tree diagram. Therefore, the starting point, the range of the sequence diagram corresponding to such a tree diagram, Also, the particle size can be easily changed and generated.
  • the user selects the software component included in the tree diagram while checking the structure of the source code.
  • the sequence diagram generation device 100 easily changes the starting point and range of the sequence diagram, and from a large granularity for grasping the entire source code to, for example, a small granularity including only a single functional block. , It is possible to easily change the granularity of the sequence diagram.
  • sequence diagram generation device 100 it is possible to generate and display a desired sequence diagram while confirming the structure of the source code with an appropriate granularity. Therefore, the analysis work of the source code can be made efficient, and the quality of the source code can be improved.
  • FIG. 9 is a table showing a third example of generation parameters used by the sequence diagram generation device 100 according to the embodiment.
  • FIG. 10 is a third exemplary tree diagram corresponding to the generation parameters of FIG.
  • FIG. 11 is a third exemplary sequence diagram corresponding to the generation parameters of FIG.
  • the example of FIG. 3 shows the case where the generation parameter includes the function and does not include the function block
  • the example of FIG. 6 shows the case where the generation parameter includes the function block and does not include the function.
  • the generation parameters may include both functions and functional blocks.
  • FIG. 10 is a third exemplary tree diagram corresponding to the generation parameters of FIG.
  • FIG. 11 is a third exemplary sequence diagram corresponding to the generation parameters of FIG.
  • the example of FIG. 3 shows the case where the generation parameter includes the function and does not include the function block
  • the example of FIG. 6 shows the case where the generation parameter includes the function block and does not include the function.
  • the generation parameters may include both functions and functional blocks.
  • FIG. 10 is a third
  • the generation parameter includes the functional blocks B(1), B(2), and B(3), does not include the functional blocks B(4) and B(5), and does not include each functional block B( 1), B(2), and B(3) functions F(1), F(2,1), etc. are not included, and function blocks B(4), B(5) function F(4,1) are not included. It is set up to generate a tree diagram containing etc. Further, as shown in FIG. 10, a partially simplified tree diagram is partially shown in each functional block B(1), B(2), and B(3), and a partially detailed tree diagram is shown in functional block B(4). Can be generated. As shown in FIG. 11, the functional blocks B(1), B(2), and B(3) are partially simplified, and the functional blocks B(4) and B(5) are partially simplified. A detailed sequence diagram can be generated.
  • FIG. 12 is a table showing a fourth example of generation parameters used by the sequence diagram generation device 100 according to the embodiment.
  • FIG. 13 is a fourth exemplary tree diagram corresponding to the generation parameters of FIG.
  • FIG. 14 is a fourth exemplary sequence diagram corresponding to the generation parameters of FIG.
  • the generation parameter is set so as to generate a tree diagram that does not include the functions F(1), F(2,1) and the functional block B(1).
  • a tree diagram having functions G(2,m1) and F(3,1,1) as the starting points at which the process starts is generated.
  • the function F(3,m1,1) calls the function F(4,m4).
  • FIG. 13 is a table showing a fourth example of generation parameters used by the sequence diagram generation device 100 according to the embodiment.
  • FIG. 13 is a fourth exemplary tree diagram corresponding to the generation parameters of FIG.
  • FIG. 14 is a fourth exemplary sequence diagram corresponding to the generation parameters of FIG.
  • the generation parameter is set so as to generate a tree diagram that does not include the functions F(1)
  • a call message CM21 and a return message RM21 are issued between the function F(3,m1,1) and the function F(4,m4), and the functions F(3,m1,1) and F(2) are issued.
  • M1 a call message CM22 and a return message RM22 are issued.
  • sequence diagram generation device 100 not only the granularity of the sequence diagram is designated and changed as shown in FIGS. 3 to 7, but also the starting point of the sequence diagram as shown in FIGS. You can also specify and change the range. Therefore, in the sequence diagram or the tree diagram, the granularity of any software component can be changed at any time.
  • Generation parameters are not limited to functions and function blocks, and may include software components of other granularity (eg, process, module, package, class, etc.).
  • the plurality of software components has a plurality of first software components having a smaller granularity and at least one second software component having a larger granularity and including at least one first software component. including.
  • the tree diagram generator 8 may generate a tree diagram that includes the first software component, the second software component, or a combination of the first and second software components.
  • the sequence diagram generator 10 may generate a sequence diagram that includes the first software component, the second software component, or a combination of the first and second software components.
  • the source code analyzer 3 is not limited to a function, and may extract software components of other granularity from the source code.
  • the tree diagram generator 8 displays the generated tree diagram on the display device 12
  • the tree diagram generator 8 associates the software component included in the tree diagram with the additional tree component as described with reference to FIGS. 15 to 18. Information may be displayed.
  • FIG. 15 is a fifth exemplary tree diagram displayed by the sequence diagram generation device 100 according to the embodiment.
  • the tree diagram generator 8 may display the calling depth of the software component on the display device 12 in association with the software component included in the tree diagram.
  • the tree diagram generator 8 uses the function F(1) as a starting point where the processing starts, and displays the calling depth of each function on the display device 12 in association with each function.
  • FIG. 16 is a sixth exemplary tree diagram displayed by the sequence diagram generation device 100 according to the embodiment.
  • the tree diagram generator 8 associates each software component included in the tree diagram with the number of sub-components included in each software component (that is, each software component). The size of the component) may be displayed on the display device 12.
  • the tree diagram generator 8 sets the functional block B(1) as the starting point of the process, associates with each functional block, the depth of call of each functional block, and the function included in each functional block. And the number of are displayed on the display device 12.
  • FIG. 17 is a seventh exemplary tree diagram displayed by the sequence diagram generation device 100 according to the embodiment.
  • the controller 6 may automatically group the plurality of software components extracted from the source code by the source code analyzer 3.
  • the function call depth in the entire tree diagram is “6”
  • the function block call depth in the entire tree diagram is “3”
  • a plurality of functions are grouped and set as a function block so that the function call depth in the function block is “2”.
  • a plurality of called functions corresponding to the common calling function are included in the same functional block.
  • the functional block B(11) includes the functions F(1), F(2,1), and F(2,m1).
  • FIG. 18 is an eighth exemplary tree diagram displayed by the sequence diagram generation device 100 according to the embodiment.
  • the sequence diagram generation device 100 is not limited to generating a tree diagram of the entire source code including all functions of the source code in the initial state, and generates a tree diagram including some software components of the source code. May be configured as follows.
  • the tree diagram generator 8 identifies the software components included in the tree diagram and the software components excluded in the tree diagram based on a predetermined parameter indicating the depth of invocation of the software component in the entire tree diagram. You may decide.
  • the tree diagram generator 8 includes function blocks B(11) to B(14) so that the depth of invocation of software components in the entire tree diagram is “3”, and Generate a tree diagram that does not include.
  • the depth of invocation of a software component in the entire source code is greater than a predetermined threshold, multiple software components are grouped and the entire source code is It may be displayed by several groups with depth. This makes it possible to generate a tree diagram and a sequence diagram showing the entire source code even in the case of a large-scale source code including many software components. It is possible to improve the efficiency of source code analysis work and improve the quality of source code.
  • the software components included in this group may be regrouped and displayed in several groups. For example, if the call depth of the software component in the entire source code is “30” and the threshold value is “3”, first, the software component of the source code has the depth “10”, respectively. Grouped into three groups. Then, when selecting and displaying one of the three groups, the software components of the selected group are regrouped into three groups of depth “3”+“3”+“4”, for example. To be done. Furthermore, when selecting and displaying one of these three groups, the software component of the selected group may be, for example, depth “1”+“1”+“2” or depth “1”+. It is grouped again into three groups of “1”+“1”.
  • the tree diagram generator 8 generates a tree diagram so as to distinguishably highlight some of the plurality of software components from other software components.
  • the tree diagram generator 8 may highlight certain software components using, for example, marks, colors, frame line decorations (such as thick lines), and display of call depth and order.
  • control device 6 may store supplementary information to be referred to when grouping a plurality of functions into functional blocks or when determining a starting point for starting a process together with a generation parameter.
  • the supplementary information includes, for example, a file name, a function name of a function, a function description, an outline of processing, a variable name to be used or updated, dependency relationships, and the like.
  • the control device 6 may extract the supplementary information from the source code, or may obtain it from the user via the user input device 5.
  • the tree diagram and the sequence diagram are generated based on the software components and call relationships extracted by the source code analyzer 3. Instead, a software component and a calling relationship may be extracted from the analysis result of the operation log output when the computer program is executed, and a tree diagram and a sequence diagram may be generated based on the extracted software component and the calling relation.
  • the software component can be directly input from the user input device 5 so that the starting point, range, and You may specify the granularity.
  • the sequence diagram generation device is useful for making the analysis work of the source code efficient and improving the quality of the source code.
  • 1 storage device (source code), 2 data input device, 3 source code analyzer, 4 storage device (software component and calling relationship), 5 user input device, 6 control device, 7 storage device (generation parameter), 8 tree Diagram generator, 9 storage device (tree diagram), 10 sequence diagram generator, 11 storage device (sequence diagram), 12 display device, 13 data output device, 14 storage device (sequence diagram), 100 sequence diagram generation device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Stored Programmes (AREA)

Abstract

ソースコード解析器(3)は、ソースコードから各ソフトウェア構成要素を抽出し、各ソフトウェア構成要素の間における呼び出し及び戻りの関係を示す呼び出し関係を抽出する。ツリー図生成器(8)は、抽出された各ソフトウェア構成要素及び呼び出し関係に基づいて、ソースコードのツリー図を生成する。シーケンス図生成器(10)は、抽出された各ソフトウェア構成要素及び呼び出し関係に基づいて、ソースコードのシーケンス図を生成する。ツリー図生成器(8)は、指定されたソフトウェア構成要素を含み、指定されたソフトウェア構成要素を除外するツリー図を生成し、シーケンス図生成器(10)は、ツリー図生成器(8)によって生成されたツリー図に含まれたソフトウェア構成要素を含み、ツリー図生成器(8)によって生成されたツリー図において除外されたソフトウェア構成要素を除外するシーケンス図を生成する。

Description

シーケンス図生成装置
 本発明は、複数のソフトウェア構成要素を含むソースコードからシーケンス図を生成するシーケンス図生成装置に関する。
 コンピュータプログラムのソースコードは、関数、プロセス、モジュール、パッケージ、クラス、機能ブロック(関数群)など、さまざまなソフトウェア構成要素から構成される。ソースコードを解析するために、ソースコードに含まれる各ソフトウェア構成要素の間における呼び出し及び戻りの関係に基づいてシーケンス図(「呼び出しシーケンス図」ともいう)を作成することが知られている。
 シーケンス図を作成するとき、ユーザは、例えば、シーケンス図の起点、範囲、及び粒度を指定する。シーケンス図の起点は、ソースコードにおいて、シーケンス図に係る処理が開始又は終了する位置を示す。シーケンス図の範囲は、例えば、シーケンス図に含まれる各ソフトウェア構成要素の間における呼び出し及び戻りの深さを示す。シーケンス図の粒度は、例えば、関数、プロセス、モジュール、パッケージ、クラス、機能ブロック(関数群)のうち、どのレベルのソフトウェア構成要素に基づいてシーケンス図を作成するかを示す。
 シーケンス図を理解しやすくするために、シーケンス図の起点又は範囲を変更してもよい。シーケンス図の範囲を限定することにより不要なデータが削除され、処理の概要が理解しやすくなる。また、シーケンス図を理解しやすくするために、シーケンス図の粒度を変更してもよい。複数の関数を1つの機能ブロックにまとめることによりシーケンス図が簡素化され、処理の概要が理解しやすくなる。
 例えば、特許文献1及び2は、例示的なシーケンス図作成装置を開示している。
特開2004-94496号公報 特開2007-41638号公報
 大規模なソースコードを解析する場合、ソースコードは多数のソフトウェア構成要素を含み、また、ソースコードは、起点となる複数のソフトウェア構成要素を含むことがある。また、この場合、起点となるソフトウェア構成要素が、ソースコードの階層構造における非常に深い位置にあることがある。このような場合、シーケンス図の起点、範囲、及び粒度の指定に手間がかかり、また、それらの変更にも手間がかかるという課題がある。
 本発明の目的は、以上の課題を解決し、シーケンス図の起点、範囲、及び粒度を従来よりも手間なく容易に指定してシーケンス図を生成することができるシーケンス図生成装置を提供することにある。
 本発明の一態様に係るシーケンス図生成装置は、
 複数のソフトウェア構成要素を含むソースコードからシーケンス図を生成するシーケンス図生成装置であって、
 前記ソースコードから前記各ソフトウェア構成要素を抽出し、前記各ソフトウェア構成要素の間における呼び出し及び戻りの関係を示す呼び出し関係を抽出するソースコード解析器と、
 前記ソースコード解析器によって抽出された前記各ソフトウェア構成要素及び前記呼び出し関係に基づいて、前記ソースコードのツリー図を生成するツリー図生成器と、
 前記ソースコード解析器によって抽出された前記各ソフトウェア構成要素及び前記呼び出し関係に基づいて、前記ソースコードのシーケンス図を生成するシーケンス図生成器とを備え、
 前記ツリー図生成器は、指定された範囲の内部における前記ソフトウェア構成要素を含み、前記指定された範囲の外部における前記ソフトウェア構成要素を除外するツリー図を生成し、
 前記シーケンス図生成器は、前記ツリー図生成器によって生成された前記ツリー図に含まれた前記ソフトウェア構成要素を含み、前記ツリー図生成器によって生成された前記ツリー図において除外された前記ソフトウェア構成要素を除外するシーケンス図を生成する。
 本発明の一態様によれば、シーケンス図の起点、範囲、及び粒度を従来よりも手間なく
容易に指定してシーケンス図を生成することができる。
実施の形態に係るシーケンス図生成装置100の構成要素を示すブロック図である。 実施の形態に係るシーケンス図生成装置100の動作を示すフローチャートである。 実施の形態に係るシーケンス図生成装置100によって使用される生成パラメータの第1の例を示す表である。 図3の生成パラメータに対応する第1の例示的なツリー図である。 図3の生成パラメータに対応する第1の例示的なシーケンス図である。 実施の形態に係るシーケンス図生成装置100によって使用される生成パラメータの第2の例を示す表である。 図6の生成パラメータに対応する第2の例示的なツリー図である。 図6の生成パラメータに対応する第2の例示的なシーケンス図である。 実施の形態に係るシーケンス図生成装置100によって使用される生成パラメータの第3の例を示す表である。 図9の生成パラメータに対応する第3の例示的なツリー図である。 図9の生成パラメータに対応する第3の例示的なシーケンス図である。 実施の形態に係るシーケンス図生成装置100によって使用される生成パラメータの第4の例を示す表である。 図12の生成パラメータに対応する第4の例示的なツリー図である。 図12の生成パラメータに対応する第4の例示的なシーケンス図である。 実施の形態に係るシーケンス図生成装置100によって表示される第5の例示的なツリー図である。 実施の形態に係るシーケンス図生成装置100によって表示される第6の例示的なツリー図である。 実施の形態に係るシーケンス図生成装置100によって表示される第7の例示的なツリー図である。 実施の形態に係るシーケンス図生成装置100によって表示される第8の例示的なツリー図である。
実施の形態.
 以下、図面を参照して、本発明の実施形態について説明する。各図面において、同じ符号は同様の構成要素を示す。
[全体構成]
 図1は、実施の形態に係るシーケンス図生成装置100の構成を示すブロック図である。図1を参照して、シーケンス図生成装置100の構成の概要を説明する。
 シーケンス図生成装置100は、記憶装置1,4,7,9,11,14、データ入力装置2、ソースコード解析器3、ユーザ入力装置5、制御装置6、ツリー図生成器8、シーケンス図生成器10、表示装置12、及びデータ出力装置13を備える。シーケンス図生成装置100は、複数のソフトウェア構成要素を含むソースコードからシーケンス図を生成する。
 記憶装置1は少なくとも1つのソースコードを予め格納する。各ソースコードは、複数のソフトウェア構成要素を含む。ソフトウェア構成要素は、例えば、プロセス、モジュール、パッケージ、クラス、機能ブロック(関数群)を含む。以下、本明細書の例では、ソフトウェア構成要素は、複数の関数と、少なくとも1つの関数をそれぞれ含む複数の機能ブロックとを含む。言い換えると、ソフトウェア構成要素は、関数及び機能ブロックからなる2段階の粒度を有する。記憶装置1に格納されたソースコードは、データ入力装置2を介して、ソースコード解析器3によって読み出される。
 ソースコード解析器3は、ソースコードを解析し、これにより、ソースコードから複数のソフトウェア(SW)構成要素を抽出し、各ソフトウェア構成要素の間における呼び出し及び戻りの関係を示す呼び出し関係を抽出する。ソースコード解析器3は、抽出した各ソフトウェア構成要素及び呼び出し関係を記憶装置4に格納する。
 ユーザ入力装置5は、シーケンス図の起点、範囲、及び粒度を指定するためのユーザ入力を取得する。本明細書の例では、シーケンス図の起点、範囲、及び粒度を指定するために、ユーザ入力装置5は、後述のツリー図生成器8によって生成されるツリー図の起点、範囲、及び粒度を指定するユーザ入力(「ツリー図の生成パラメータ」ともいう)を取得する。ツリー図の生成パラメータは、ツリー図に含まれるソフトウェア構成要素及びツリー図において除外されるソフトウェア構成要素を個別に指定する。ユーザ入力装置5は、キーボード及びポインティングデバイスなどを含む。
 制御装置6は、シーケンス図生成装置100の各構成要素の動作を制御する。
 記憶装置7は、制御装置6の制御下で、ユーザ入力装置5によって取得されたツリー図の生成パラメータを格納する。
 ツリー図生成器8は、ソースコード解析器3によって抽出された各ソフトウェア構成要素及び呼び出し関係に基づいて、ソースコードのツリー図(「呼び出しツリー図」ともいう)を生成する。ここで、ツリー図は、図4などを参照して後述するように、ソースコードの各ソフトウェア構成要素の呼び出し関係をツリー状に示す。ツリー図生成器8は、ユーザ入力において指定されたソフトウェア構成要素を含み、ユーザ入力において指定された他のソフトウェア構成要素を除外するツリー図を生成する。ツリー図生成器8は、生成したツリー図を記憶装置9に格納し、また、生成したツリー図を表示装置12に表示する。
 シーケンス図生成器10は、ソースコード解析器3によって抽出された各ソフトウェア構成要素及び呼び出し関係に基づいて、ソースコードのシーケンス図を生成する。シーケンス図生成器10は、ツリー図生成器8によって生成されたツリー図に含まれたソフトウェア構成要素を含み、ツリー図生成器8によって生成されたツリー図において除外されたソフトウェア構成要素を除外するシーケンス図を生成する。シーケンス図生成器10は、生成したシーケンス図を記憶装置11に格納し、また、生成したシーケンス図を表示装置12に表示する。また、シーケンス図生成器10は、ユーザによって最終的に承諾されたシーケンス図を、データ出力装置13を介して出力し、記憶装置14に格納する。
 図1では、記憶装置1,4,7,9,11,14を別個の構成要素として示しているが、これらは単一の構成要素として提供されてもよい。また、図1の各構成要素を備えるシーケンス図生成装置100は、パーソナルコンピュータなど、一体の装置として提供されてもよく、複数の装置の組み合わせとして提供されてもよい。例えば、データ入力装置2及びデータ出力装置13の少なくとも一方はUSB(universal serial bus)などのインターフェースであってもよく、この場合、記憶装置1又は14は着脱可能な記憶媒体である。また、データ入力装置2及びデータ出力装置13の少なくとも一方はネットワークインターフェースであってもよく、この場合、記憶装置1又は14はネットワークを介して接続された遠隔の記憶媒体である。
[動作の概要]
 図2は、実施の形態に係るシーケンス図生成装置100の動作を示すフローチャートである。図2を参照して、シーケンス図生成装置100がソースコードからシーケンス図を生成する動作の概要を説明する。
 シーケンス図生成装置100が起動すると、ステップS101において、制御装置6は、シーケンス図生成処理の初期設定を行う。制御装置6は、シーケンス図を生成するためのメニュー及び/又はガイダンス表示を表示装置12に表示する。ユーザは、メニュー及び/又はガイダンス表示に従って、ユーザ入力装置5を用いて、記憶装置1に予め格納されたソースコードのうちの1つを指定する。また、制御装置6は、ツリー図の生成パラメータの初期値を設定し、設定された初期値を記憶装置7に格納する。例えば、制御装置6は、ソースコードのすべての関数を含み、機能ブロックを含まないソースコード全体のツリー図を生成するように、ツリー図の生成パラメータの初期値を設定してもよい。
 ステップS102において、制御装置6は、ソースコード解析器3によりソースコードを解析させる。ソースコード解析器3は、ステップS101においてユーザによって指定されたソースコードを記憶装置1から読み出し、読み出したソースコードから、各ソフトウェア構成要素及び呼び出し関係を抽出する。本明細書の例では、ソースコード解析器3は、ソースコードから、ソフトウェア構成要素として複数の関数を抽出し、各関数の間の呼び出し関係を抽出する。ソースコード解析器3は、抽出した各ソフトウェア構成要素及び呼び出し関係を記憶装置4に格納する。また、制御装置6は、ツリー図の生成パラメータの設定に使用するために、記憶装置4から各ソフトウェア構成要素を読み出し、読み出したソフトウェア構成要素を記憶装置7に格納する。
 ソースコード解析器3によるソースコードの解析が終了すると、ステップS103において、制御装置6は、ツリー図生成器8によりソースコードのツリー図を生成させる。ツリー図生成器8は、記憶装置7に格納されたツリー図の生成パラメータを読み出し、記憶装置4に格納された各ソフトウェア構成要素及び呼び出し関係を読み出す。ツリー図生成器8は、ツリー図の生成パラメータに基づいて、各ソフトウェア構成要素及び呼び出し関係からツリー図を生成する。ツリー図生成器8は、ツリー図の生成パラメータの初期値に基づいて、例えば、ソースコードのすべての関数を含み、機能ブロックを含まないソースコード全体のツリー図を生成する。ツリー図生成器8は、生成したツリー図を記憶装置9に格納し、また、生成したツリー図を表示装置12に表示する。
 ツリー図生成器8によりツリー図が生成されて表示装置12に表示されると、ステップS104において、制御装置6は、ユーザ入力に応じて、ツリー図の生成パラメータ(すなわち、ツリー図の起点、範囲、及び粒度)を指定又は変更する。制御装置6は、ツリー図の生成パラメータを指定又は変更するためのメニュー及び/又はガイダンス表示を表示装置12に表示する。ユーザは、ユーザ入力装置5を介して、ツリー図に含まれるソフトウェア構成要素及びツリー図において除外されるソフトウェア構成要素を個別に指定する。例えば、ユーザは、ユーザ入力装置5を介して、いくつかの関数をグループ化して機能ブロックとして設定する。また、制御装置6は、共通の文字列を含む関数名又は引数を有する複数の関数を、同じ機能ブロックに属する関数として自動的にグループ化してもよい。また、ユーザは、ユーザ入力装置5を介して、ツリー図に含まれる関数及びツリー図において除外される関数を個別に指定し、ツリー図に含まれる機能ブロック及びツリー図において除外される機能ブロックを個別に指定する。これにより、ツリー図の起点、範囲、及び粒度が指定又は変更される。制御装置6は、指定又は変更されたツリー図の生成パラメータを記憶装置7に格納する。次いで、制御装置6は、指定又は変更されたツリー図の生成パラメータに基づいて、ツリー図生成器8により、ステップS103と同様に、更新されたツリー図を生成させる。ツリー図生成器8は、更新されたツリー図を記憶装置9に格納し、また、更新されたツリー図を表示装置12に表示する。
 ステップS105において、ユーザは、表示装置12に表示されたツリー図を確認し、生成されたツリー図を承諾するか否か(すなわち、ツリー図の起点、範囲、及び粒度のさらなる変更が不要であるか否か)を判断する。制御装置6は、ユーザ入力装置5を介して、ユーザが生成されたツリー図を承諾するか否かを示すユーザ入力を取得する。ステップS105がYESである場合、処理はステップS106に進み、ステップS105がNOである場合、処理はステップS104に戻る。
 ステップS106において、制御装置6は、シーケンス図生成器10により、ソースコードのシーケンス図を生成させる。シーケンス図生成器10は、記憶装置7に格納されたツリー図の生成パラメータを読み出し、記憶装置4に格納された各ソフトウェア構成要素及び呼び出し関係を読み出す。シーケンス図生成器10は、ツリー図の生成パラメータに基づいて、各ソフトウェア構成要素及び呼び出し関係からシーケンス図を生成する。シーケンス図生成器10は、生成したツリー図を記憶装置11に格納し、また、生成したツリー図を表示装置12に表示する。
 ステップS107において、ユーザは、表示装置12に表示されたシーケンス図を確認し、生成されたシーケンス図を承諾するか否か(すなわち、シーケンス図の起点、範囲、及び粒度のさらなる変更が不要であるか否か)を判断する。制御装置6は、ユーザ入力装置5を介して、ユーザが生成されたシーケンス図を承諾するか否かを示すユーザ入力を取得する。ステップS107がYESである場合、制御装置6は、シーケンス図生成器10からデータ出力装置13を介して記憶装置14にシーケンス図を出力させ、処理を終了する。一方、ステップS105がNOである場合、処理はステップS103に戻る。次いで、ステップS104においてツリー図の生成パラメータを変更することにより、その後、ステップS106において、変更された生成パラメータに基づいて更新されたシーケンス図が生成される。再びステップS107において、ユーザは、表示装置12に表示されたシーケンス図を確認し、生成されたシーケンス図を承諾するか否かを判断する。
[動作例]
 次に、図3~図8を参照して、シーケンス図生成装置100の動作例を説明する。
 図3は、実施の形態に係るシーケンス図生成装置100によって使用される生成パラメータの第1の例を示す表である。図3の生成パラメータは、ソースコード解析器3によって抽出された関数の識別情報、例えば関数名F(1),F(2,1)等を含む。関数名は、ソースコードから抽出されてもよく、ユーザからユーザ入力装置5を介して取得されてもよい。また、図3の生成パラメータは、いくつかの関数をグループ化した機能ブロックの識別情報、例えば機能ブロック名B(1),B(2)等を含む。機能ブロック名は、機能ブロックに含まれる関数のうちのいずれかの関数名(例えば、最初に呼び出される関数の関数名)に設定されてもよく、ユーザからユーザ入力装置5を介して取得されてもよい。また、図3の生成パラメータは、ツリー図に含まれる関数(表示される関数)及びツリー図において除外される関数(非表示の関数)を個別に指定するフラグを含む。また、図3の生成パラメータは、ツリー図に含まれる機能ブロック(表示される機能ブロック)及びツリー図において除外される機能ブロック(非表示の機能ブロック)を個別に指定するフラグを含む。また、図3の生成パラメータは、ある関数及び/又は機能ブロックをツリー図及びシーケンス図の起点として強調表示するか否かを指定するフラグを含む。
 図3の例では、生成パラメータは、ソースコードのすべての関数を含み、機能ブロックを含まないソースコード全体のツリー図を生成するように設定されている。また、図3の例では、複数の関数は、関数F(1)を処理が開始する起点とし、関数F(1)からの呼び出しの深さが増大する順に配列され、かつ、同じ深さでは呼び出される順に配列されている。また、図3の例では、関数F(1)が、ツリー図及びシーケンス図の起点として強調表示されるように指定されている。
 図4は、図3の生成パラメータに対応する第1の例示的なツリー図である。図4の例では、ツリー図は、ソースコードのすべての関数を含み、一方、「非表示」の各機能ブロックも破線により示す。また、図4の例では、関数F(1)がツリー図の起点として強調表示される。
 本実施の形態において、ツリー図及びその生成パラメータを使用する目的は、最終的には、シーケンス図を生成することにある。従って、本明細書では、ソフトウェア構成要素がツリー図に「含まれる」とは、実質的には、そのソフトウェア構成要素がシーケンス図に含まれることを意味する。同様に、ソフトウェア構成要素がツリー図において「除外される」とは、実質的には、そのソフトウェア構成要素がシーケンス図において除外されることを意味する。このため、ツリー図において除外されるソフトウェア構成要素(すなわち、「非表示」のソフトウェア構成要素)は、図4に示すように破線によって、又は、変化した色(グレーもしくは半透明など)によって表示されてもよく、それに代わって、完全に不可視にされてもよい。
 表示装置12にツリー図が表示されているとき、ユーザは、ユーザ入力装置5を介して、ツリー図に含まれるソフトウェア構成要素及びツリー図において除外されるソフトウェア構成要素を個別に指定してもよい。また、制御装置6は、図3の生成パラメータの内容を表示装置12に表示してもよい。表示装置12に図3の生成パラメータの内容が表示されているとき、ユーザは、ユーザ入力装置5を介して、ツリー図に含まれるソフトウェア構成要素及びツリー図において除外されるソフトウェア構成要素を個別に指定してもよい。制御装置6及びツリー図生成器8は、図3の生成パラメータ及び図4のツリー図を同時に表示装置12に表示してもよく、これらを交互に表示装置12に表示してもよい。
 図5は、図3の生成パラメータに対応する第1の例示的なシーケンス図である。各関数の間において、呼び出しメッセージCM01~CM11及び戻りメッセージRM01~RM11が発行される。例えば、呼び出しメッセージCM01は、関数F(1)から関数F(2,1)への呼び出し(コール)を示し、戻りメッセージRM01は、呼び出しメッセージCM01に対応する関数F(2,1)から関数F(1)への戻り(リターン)を示す。シーケンス図がソースコードのすべての関数を含む場合、シーケンス図生成器10は、すべての呼び出しメッセージCM01~CM11及びすべての戻りメッセージRM01~RM11を含むシーケンス図を生成する。また、図5の例では、関数F(1)がシーケンス図の起点として強調表示される。
 図6は、実施の形態に係るシーケンス図生成装置100によって使用される生成パラメータの第2の例を示す表である。図6は、図3の場合と同じソースコードについて、図3の場合とは異なる粒度を指定する生成パラメータを示す。例えば、関数F(1),F(2,1)をグループ化した機能ブロックB(1)が指定される。図6の例では、生成パラメータは、すべての機能ブロックを含み、関数を含まないソースコード全体のツリー図を生成するように設定されている。また、図6の例では、複数の機能ブロックは、機能ブロックB(1)を処理が開始する起点とし、機能ブロックB(1)からの呼び出しの深さが増大する順に配列され、かつ、同じ深さでは呼び出される順に配列されている。また、図6の例では、機能ブロックB(1)が、ツリー図及びシーケンス図の起点として強調表示されるように指定されている。
 図7は、図6の生成パラメータに対応する第2の例示的なツリー図である。図7の例では、ツリー図は、すべての機能ブロックを含み、一方、関数を含んでいない。また、図7の例では、機能ブロックB(1)がツリー図の起点として強調表示される。
 図8は、図6の生成パラメータに対応する第2の例示的なシーケンス図である。各機能ブロックの間において、呼び出しメッセージCM02~CM09及び戻りメッセージRM02~RM09が発行される。例えば、呼び出しメッセージCM02は、機能ブロックB(1)に含まれる関数F(2,1)から機能ブロックB(3)に含まれる関数F(3,1,1)への関数の呼び出し(コール)を示し、戻りメッセージRM02は、呼び出しメッセージCM02に対応する関数F(3,1,1)から関数F(2,1)への戻り(リターン)を示す。シーケンス図が機能ブロックを含むが関数を含まない場合、シーケンス図生成器10は、同じ機能ブロックに含まれる複数の関数の間において発行される呼び出しメッセージ及び戻りメッセージ(CM01、RM01など)を含まず、異なる機能ブロックに含まれる関数の間において発行される呼び出しメッセージ及び戻りメッセージ(CM02、RM02など)を含むシーケンス図を生成する。また、図8の例では、機能ブロックB(1)がシーケンス図の起点として強調表示される。
 表示される機能ブロックが1つの非表示の関数のみを含む場合、ツリー図及びシーケンス図は機能ブロックに代えて関数を含んでもよい。
 図6~図8を図3~図5と比較すると、ソフトウェア構成要素の粒度を関数から機能ブロックへ変更したことにより、ツリー図及びシーケンス図のいずれにおいても、ソフトウェア構成要素の個数が減少し、呼び出しメッセージ及び戻りメッセージの個数もまた減少している。これにより、ツリー図及びシーケンス図の両方が簡単化され、理解しやすくなっている。
 実施の形態に係るシーケンス図生成装置100は以下のように動作する。
 シーケンス図生成装置100が起動されたとき、ステップS101において、初期状態では、記憶装置7にはツリー図の生成パラメータとして何も格納されていない。
 ステップS102において、ソースコード解析器3は、ソースコードから各関数及び呼び出し関係を抽出して記憶装置4に格納する。
 ステップS103において、ツリー図生成器8は、ツリー図の生成パラメータに基づいて、各関数及び呼び出し関係からツリー図を生成する。ここで、前述のように、初期状態では、記憶装置7にはツリー図の生成パラメータとして何も格納されていないので、ツリー図生成器8は、例えば図4に示すように、ソースコードのすべての関数を含み、機能ブロックを含まないソースコード全体のツリー図を生成する。
 ステップS104において、ツリー図の生成パラメータ(すなわち、ツリー図の起点、範囲、及び粒度)を変更しない場合、制御装置6は、ソースコードから抽出された各関数の関数名をツリー図の生成パラメータとして記憶装置7に格納する。また、制御装置6は、これらの関数をツリー図に含まれるものとして個別に指定するフラグを、ツリー図の生成パラメータとして記憶装置7に格納する。
 ステップS105において、ユーザが生成されたツリー図を承諾しないと判断した場合、ステップS104を繰り返し、ツリー図の生成パラメータを変更する。この場合、制御装置6は、例えば図6に示すように、各関数をツリー図において除外されるものとして指定し、各機能ブロックをツリー図に含まれるものとして個別に指定するフラグを、ツリー図の生成パラメータとして記憶装置7に格納する。ツリー図生成器8は、例えば図7に示すように、機能ブロックを含み、関数を含まないソースコード全体のツリー図を生成する。
 ステップS105において、ユーザが生成されたツリー図を承諾すると判断した場合、ステップS106において、シーケンス図生成器10は、例えば、図4のツリー図の生成パラメータに基づく図5のシーケンス図、又は、図7のツリー図の生成パラメータに基づく図8のシーケンス図を生成する。
 ステップS107において、ユーザが生成されたシーケンス図を承諾しないと判断した場合、ステップS103~S06を繰り返し、ステップS104において、ツリー図の生成パラメータを変更する。一方、ステップS107において、ユーザが生成されたシーケンス図を承諾すると判断した場合、処理を終了する。
 実施の形態に係るシーケンス図生成装置100は、以下のような特有の効果を有する。
 実施の形態に係るシーケンス図生成装置100は、ツリー図の起点、範囲、及び粒度を容易に変更して生成することができ、従って、このようなツリー図に対応するシーケンス図の起点、範囲、及び粒度を容易に変更して生成することができる。ユーザは、ソースコードの構造を確認しながらツリー図に含まれるソフトウェア構成要素を選択する。これに応じて、シーケンス図生成装置100は、シーケンス図の起点及び範囲を容易に変更し、また、ソースコード全体を把握するための大きな粒度から、例えば単一の機能ブロックのみを含む小さな粒度まで、シーケンス図の粒度を容易に変更することができる。これにより、実施の形態に係るシーケンス図生成装置100によれば、ソースコードの構造を適切な粒度で確認しながら、所望のシーケンス図を生成して表示することができる。従って、ソースコードの解析作業を効率化し、また、ソースコードの品質を向上することができる。
 選択されたソフトウェア構成要素(機能ブロック又は関数)のみを含むツリー図を表示することによって、ソースコード全体からシーケンス図を出力する範囲を確認しながら変更することができる。
[変形例]
 図9は、実施の形態に係るシーケンス図生成装置100によって使用される生成パラメータの第3の例を示す表である。図10は、図9の生成パラメータに対応する第3の例示的なツリー図である。図11は、図9の生成パラメータに対応する第3の例示的なシーケンス図である。図3の例では、生成パラメータが関数を含み機能ブロックを含まない場合を示し、図6の例では、生成パラメータが機能ブロックを含み関数を含まない場合を示した。それに代わって、図9に示すように、生成パラメータは、関数及び機能ブロックの両方を含んでいてもよい。図9の例では、生成パラメータは、機能ブロックB(1)、B(2)、及びB(3)を含み、機能ブロックB(4)、B(5)を含まず、各機能ブロックB(1)、B(2)、及びB(3)の関数F(1)、F(2,1)等を含まず、機能ブロックB(4)、B(5)の関数F(4,1)等を含むツリー図を生成するように設定されている。また、図10に示すように、各機能ブロックB(1)、B(2)、及びB(3)において部分的に簡単化され、機能ブロックB(4)において部分的に詳細なツリー図を生成することができる。また、図11に示すように、各機能ブロックB(1)、B(2)、及びB(3)において部分的に簡単化され、機能ブロックB(4)及びB(5)において部分的に詳細なシーケンス図を生成することができる。
 図12は、実施の形態に係るシーケンス図生成装置100によって使用される生成パラメータの第4の例を示す表である。図13は、図12の生成パラメータに対応する第4の例示的なツリー図である。図14は、図12の生成パラメータに対応する第4の例示的なシーケンス図である。図12の例では、生成パラメータは、関数F(1)、F(2,1)及び機能ブロックB(1)を含まないツリー図を生成するように設定されている。図13の例では、関数G(2,m1)及びF(3,1,1)を処理が開始する起点とするツリー図が生成される。また、図13の例では、関数F(3,m1,1)から関数F(4,m4)が呼び出される。図14の例では、関数F(3,m1,1)及び関数F(4,m4)の間において呼び出しメッセージCM21及び戻りメッセージRM21が発行され、関数F(3,m1,1)及びF(2,m1)の間において呼び出しメッセージCM22及び戻りメッセージRM22が発行される。
 実施の形態に係るシーケンス図生成装置100によれば、図3~図7に示すようにシーケンス図の粒度を指定及び変更するだけでなく、図8~図14に示すようにシーケンス図の起点及び範囲を指定及び変更することもできる。従って、シーケンス図又はツリー図において、任意のソフトウェア構成要素の粒度を、任意の時点で変更することができる。
 生成パラメータは、関数及び機能ブロックに限らず、他の粒度のソフトウェア構成要素(例えば、プロセス、モジュール、パッケージ、クラスなど)を含んでもよい。複数のソフトウェア構成要素は、より小さな粒度を有する複数の第1のソフトウェア構成要素と、より大きな粒度を有し、少なくとも1つの第1のソフトウェア構成要素を含む少なくとも1つの第2のソフトウェア構成要素とを含む。ツリー図生成器8は、第1のソフトウェア構成要素、第2のソフトウェア構成要素、又は、第1及び第2のソフトウェア構成要素の組み合わせを含むツリー図を生成してもよい。シーケンス図生成器10は、第1のソフトウェア構成要素、第2のソフトウェア構成要素、又は、第1及び第2のソフトウェア構成要素の組み合わせを含むシーケンス図を生成してもよい。
 また、ソースコード解析器3は、関数に限らず、ソースコードから他の粒度のソフトウェア構成要素を抽出してもよい。
 また、ツリー図生成器8は、生成したツリー図を表示装置12に表示するとき、図15~図18を参照して説明するように、ツリー図に含まれるソフトウェア構成要素に関連付けて、追加の情報を表示してもよい。
 図15は、実施の形態に係るシーケンス図生成装置100によって表示される第5の例示的なツリー図である。ツリー図生成器8は、ツリー図に含まれるソフトウェア構成要素に関連付けて、ソフトウェア構成要素の呼び出しの深さを表示装置12に表示してもよい。図15の例では、ツリー図生成器8は、関数F(1)を処理が開始する起点とし、各関数に関連付けて、各関数の呼び出しの深さを表示装置12に表示する。
 図16は、実施の形態に係るシーケンス図生成装置100によって表示される第6の例示的なツリー図である。ソフトウェア構成要素が複数のサブ構成要素を含む場合、ツリー図生成器8は、ツリー図に含まれる各ソフトウェア構成要素に関連付けて、各ソフトウェア構成要素に含まれるサブ構成要素の個数(すなわち、各ソフトウェア構成要素のサイズ)を表示装置12に表示してもよい。図16の例では、ツリー図生成器8は、機能ブロックB(1)を処理が開始する起点とし、各機能ブロックに関連付けて、各機能ブロックの呼び出しの深さと、各機能ブロックに含まれる関数の個数とを、表示装置12に表示する。
 図15及び図16の例によれば、各ソフトウェア構成要素の呼び出しの深さと、各ソフトウェア構成要素に含まれるサブ構成要素の個数とを表示することにより、ソースコードにおける各ソフトウェア構成要素の位置及びサイズを容易に確認することができる。これにより、シーケンス図の起点、範囲、及び粒度を容易に指定及び変更することができる。ソースコードの解析作業を効率化し、また、ソースコードの品質を向上することができる。
 図17は、実施の形態に係るシーケンス図生成装置100によって表示される第7の例示的なツリー図である。制御装置6は、ソースコード解析器3によってソースコードから抽出された複数のソフトウェア構成要素を自動的にグループ化してもよい。図17の例では、ツリー図の全体における関数の呼び出しの深さが「6」である場合、ツリー図の全体における機能ブロックの呼び出しの深さが「3」になるように、言い換えると、各機能ブロックにおける関数の呼び出しの深さが「2」になるように、複数の関数をグループ化して機能ブロックとして設定する。また、図17の例では、共通の呼び出す関数に対応する複数の呼び出される関数は、同じ機能ブロックに含まれる。例えば、機能ブロックB(11)は、関数F(1)、F(2,1)、及びF(2,m1)を含む。
 図18は、実施の形態に係るシーケンス図生成装置100によって表示される第8の例示的なツリー図である。シーケンス図生成装置100は、初期状態において、ソースコードのすべての関数を含むソースコード全体のツリー図を生成する場合に限定されず、ソースコードの一部のソフトウェア構成要素を含むツリー図を生成するように構成されてもよい。ツリー図生成器8は、ツリー図の全体におけるソフトウェア構成要素の呼び出しの深さを示す予め指定されたパラメータに基づいて、ツリー図に含まれるソフトウェア構成要素及びツリー図において除外されるソフトウェア構成要素を決定してもよい。図18の例では、ツリー図生成器8は、ツリー図の全体におけるソフトウェア構成要素の呼び出しの深さが「3」になるように、機能ブロックB(11)~B(14)を含み、関数を含まないツリー図を生成する。
 このように、ソースコード全体におけるソフトウェア構成要素の呼び出しの深さが、予め決められたしきい値より大きい場合、複数のソフトウェア構成要素をグループ化し、ソースコード全体を、しきい値以下の呼び出しの深さを有するいくつかのグループにより表示してもよい。これにより、多数のソフトウェア構成要素を含む大規模なソースコードの場合であっても、ソースコードの全体を示すツリー図及びシーケンス図を生成することができる。ソースコードの解析作業を効率化し、また、ソースコードの品質を向上することができる。
 しきい値に基づいてグループ化されたソフトウェア構成要素のグループのうちの1つのグループのみを選択して表示する場合を考える。選択されたグループに含まれるソフトウェア構成要素の呼び出しの深さがしきい値よりもなお大きい場合、このグループに含まれるソフトウェア構成要素をいくつかのグループに再びグループ化して表示してもよい。例えば、ソースコード全体におけるソフトウェア構成要素の呼び出しの深さが「30」であり、しきい値が「3」である場合、まず、ソースコードのソフトウェア構成要素は、深さ「10」をそれぞれ有する3つのグループにグループ化される。次いで、3つのグループのうちの1つを選択して表示する場合、選択されたグループのソフトウェア構成要素は、例えば深さ「3」+「3」+「4」の3つのグループに再びグループ化される。さらに、これら3つのグループのうちの1つを選択して表示する場合、選択されたグループのソフトウェア構成要素は、例えば深さ「1」+「1」+「2」又は深さ「1」+「1」+「1」の3つのグループに再びグループ化される。
[他の変形例]
 例示したツリー図及びシーケンス図では、それらの起点を強調表示したが、ツリー図及びシーケンス図における他のソフトウェア構成要素を識別可能に強調表示してもよい。例えば、特定の文字列を条件式として予め設定し、一般的な文字列検索の機能を用いて、当該文字列を含む関数名又は機能ブロック名を有する関数又は機能ブロックを抽出し、当該関数又は機能ブロックを識別可能に強調表示してもよい。ツリー図生成器8は、複数のソフトウェア構成要素のうちの一部を他のソフトウェア構成要素から識別可能に強調表示するようにツリー図を生成する。ツリー図生成器8は、例えば、マーク、色彩、枠線の修飾(太線など)、呼び出しの深さ及び順序の表示などを用いて、あるソフトウェア構成要素を強調表示してもよい。ツリー図においてあるソフトウェア構成要素を識別可能に強調表示することによって、ソフトウェア構成要素のサイズに関わらず、当該ソフトウェア構成要素を指定してシーケンス図の範囲を確認しながら絞り込むことができる。また、ツリー図において複数のソフトウェア構成要素が存在する場合、それらのソフトウェア構成要素が識別可能に強調表示され、各ソフトウェア構成要素を指定してシーケンス図を出力する範囲を確認しながら絞り込むことができる。また、ツリー図において複数のソフトウェア構成要素が存在する場合、サブ構成要素の個数を表示し、また、呼び出しの深さ及び順序を表示することによって、注目すべき関数及び/又は機能ブロックをもれなく含むシーケンス図を容易に生成することができる。
 また、制御装置6は、複数の関数を機能ブロックにグループ化する場合、又は、処理を開始する起点を決定する場合に参照する補足情報を、生成パラメータとともに格納してもよい。補足情報は、例えば、ファイル名、関数の機能名、機能説明、処理の概要、使用又は更新する変数名、依存関係、などを含む。制御装置6は、ソースコードから補足情報を抽出してもよく、ユーザからユーザ入力装置5を介して取得してもよい。
 実施の形態では、ソースコード解析器3によって抽出されたソフトウェア構成要素及び呼び出し関係に基づいてツリー図及びシーケンス図が生成された。それに代わって、コンピュータプログラムの実行時に出力される動作ログの解析結果からソフトウェア構成要素及び呼び出し関係を抽出し、それらに基づいてツリー図及びシーケンス図が生成されてもよい。
 また、シーケンス図に含まれるソフトウェア構成要素(関数及び/又は機能ブロック)が予めわかっている場合、そのソフトウェア構成要素をユーザ入力装置5から直接に入力することにより、シーケンス図の起点、範囲、及び粒度を指定してもよい。
 本発明の一態様に係るシーケンス図生成装置は、ソースコードの解析作業を効率化し、また、ソースコードの品質を向上するために有用である。
1 記憶装置(ソースコード)、 2 データ入力装置、 3 ソースコード解析器、 4 記憶装置(ソフトウェア構成要素及び呼び出し関係)、 5 ユーザ入力装置、 6 制御装置、 7 記憶装置(生成パラメータ)、 8 ツリー図生成器、 9 記憶装置(ツリー図)、 10 シーケンス図生成器、 11 記憶装置(シーケンス図)、 12 表示装置、 13 データ出力装置、 14 記憶装置(シーケンス図)、 100 シーケンス図生成装置。

Claims (7)

  1.  複数のソフトウェア構成要素を含むソースコードからシーケンス図を生成するシーケンス図生成装置であって、
     前記ソースコードから前記各ソフトウェア構成要素を抽出し、前記各ソフトウェア構成要素の間における呼び出し及び戻りの関係を示す呼び出し関係を抽出するソースコード解析器と、
     前記ソースコード解析器によって抽出された前記各ソフトウェア構成要素及び前記呼び出し関係に基づいて、前記ソースコードのツリー図を生成するツリー図生成器と、
     前記ソースコード解析器によって抽出された前記各ソフトウェア構成要素及び前記呼び出し関係に基づいて、前記ソースコードのシーケンス図を生成するシーケンス図生成器とを備え、
     前記ツリー図生成器は、指定された前記ソフトウェア構成要素を含み、指定された前記ソフトウェア構成要素を除外するツリー図を生成し、
     前記シーケンス図生成器は、前記ツリー図生成器によって生成された前記ツリー図に含まれた前記ソフトウェア構成要素を含み、前記ツリー図生成器によって生成された前記ツリー図において除外された前記ソフトウェア構成要素を除外するシーケンス図を生成する、
    シーケンス図生成装置。
  2.  前記シーケンス図生成装置は、
     前記ツリー図及び前記シーケンス図を表示する表示装置と、
     前記ツリー図に含まれる前記ソフトウェア構成要素及び前記ツリー図において除外される前記ソフトウェア構成要素を個別に指定するユーザ入力を取得するユーザ入力装置とをさらに備えた、
    請求項1記載のシーケンス図生成装置。
  3.  前記複数のソフトウェア構成要素は、複数の第1のソフトウェア構成要素と、少なくとも1つの前記第1のソフトウェア構成要素を含む少なくとも1つの第2のソフトウェア構成要素とを含み、
     前記ツリー図生成器は、前記第1のソフトウェア構成要素、前記第2のソフトウェア構成要素、又は、前記第1及び第2のソフトウェア構成要素の組み合わせを含むツリー図を生成し、
     前記シーケンス図生成器は、前記第1のソフトウェア構成要素、前記第2のソフトウェア構成要素、又は、前記第1及び第2のソフトウェア構成要素の組み合わせを含むシーケンス図を生成する、
    請求項2記載のシーケンス図生成装置。
  4.  前記ツリー図生成器は、前記ツリー図に含まれる前記各第2のソフトウェア構成要素に関連付けて、前記各第2のソフトウェア構成要素に含まれる前記第1のソフトウェア構成要素の個数を前記表示装置に表示する、
    請求項3記載のシーケンス図生成装置。
  5.  前記ツリー図生成器は、前記ツリー図に含まれる前記ソフトウェア構成要素に関連付けて、前記ソフトウェア構成要素の呼び出しの深さを前記表示装置に表示する、
    請求項2~4のうちの1つに記載のシーケンス図生成装置。
  6.  前記ツリー図生成器は、前記複数のソフトウェア構成要素のうちの一部を他のソフトウェア構成要素から識別可能に強調表示するように前記ツリー図を生成する、
    請求項2~5のうちの1つに記載のシーケンス図生成装置。
  7.  前記ツリー図生成器は、前記ツリー図の全体における前記ソフトウェア構成要素の呼び出しの深さを示す予め指定されたパラメータに基づいて、前記ツリー図に含まれる前記ソフトウェア構成要素及び前記ツリー図において除外される前記ソフトウェア構成要素を決定する、
    請求項1~6のうちの1つに記載のシーケンス図生成装置。
PCT/JP2019/007298 2019-02-26 2019-02-26 シーケンス図生成装置 WO2020174578A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/429,961 US20220147347A1 (en) 2019-02-26 2019-02-26 Sequence diagram generation apparatus
JP2021501429A JPWO2020174578A1 (ja) 2019-02-26 2019-02-26 シーケンス図生成装置
PCT/JP2019/007298 WO2020174578A1 (ja) 2019-02-26 2019-02-26 シーケンス図生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/007298 WO2020174578A1 (ja) 2019-02-26 2019-02-26 シーケンス図生成装置

Publications (1)

Publication Number Publication Date
WO2020174578A1 true WO2020174578A1 (ja) 2020-09-03

Family

ID=72239244

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/007298 WO2020174578A1 (ja) 2019-02-26 2019-02-26 シーケンス図生成装置

Country Status (3)

Country Link
US (1) US20220147347A1 (ja)
JP (1) JPWO2020174578A1 (ja)
WO (1) WO2020174578A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07295980A (ja) * 1994-04-20 1995-11-10 Hitachi Ltd 階層構造型文書編集装置及び方法
US20060053414A1 (en) * 2004-09-09 2006-03-09 International Business Machines Corporation Generating sequence diagrams using call trees
JP2007018187A (ja) * 2005-07-06 2007-01-25 Fuji Xerox Co Ltd ツリー構造表示プログラム、ツリー構造表示方法、ツリー構造表示装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849439B2 (en) * 2005-01-19 2010-12-07 Ixia Application-generic sequence diagram generator driven by a non-proprietary language
JP5203806B2 (ja) * 2008-06-06 2013-06-05 インターナショナル・ビジネス・マシーンズ・コーポレーション シーケンス図作成装置、シーケンス図作成方法及びコンピュータプログラム
US8473928B2 (en) * 2010-04-19 2013-06-25 Sap Ag Call graph simplification/comparison and automatic initial suspects finding of performance degradations
US9218169B2 (en) * 2013-11-19 2015-12-22 Google Inc. Callpath finder
US10657031B2 (en) * 2018-03-30 2020-05-19 Oracle International Corporation Scalable execution tracing for large program codebases

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07295980A (ja) * 1994-04-20 1995-11-10 Hitachi Ltd 階層構造型文書編集装置及び方法
US20060053414A1 (en) * 2004-09-09 2006-03-09 International Business Machines Corporation Generating sequence diagrams using call trees
JP2007018187A (ja) * 2005-07-06 2007-01-25 Fuji Xerox Co Ltd ツリー構造表示プログラム、ツリー構造表示方法、ツリー構造表示装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MUNAKATA, SAORI ET AL.: "Super Re-Introduction to Linux. The 5 Strengths Needed Today", PART 1 FREELY MANIPULATING LINUX FROM COMMAND LINES, vol. 15, no. 8, 2013, pages 58 - 67, ISSN: 1345-0182 *

Also Published As

Publication number Publication date
US20220147347A1 (en) 2022-05-12
JPWO2020174578A1 (ja) 2021-09-30

Similar Documents

Publication Publication Date Title
CN104035754A (zh) 一种基于xml的自定义代码生成方法及生成器
WO1987002796A1 (en) Method of preparing nc data
CN111026670B (zh) 测试用例的生成方法、测试用例的生成装置及存储介质
AU2004200472A1 (en) Declarative sequenced report parameterization
CN110705237A (zh) 文档的自动生成方法、数据处理设备及存储介质
KR101763551B1 (ko) 작화 소프트웨어를 기록한 컴퓨터로 읽을 수 있는 매체
CN107491311B (zh) 生成页面文件的方法、系统以及计算机设备
WO2020174578A1 (ja) シーケンス図生成装置
CN113900922A (zh) 多平台应用的应用程序接口测试方法、装置、设备及介质
CN101281462A (zh) 报表产生系统及报表产生方法
CN110888711B (zh) 缺陷管理方法、缺陷管理装置及可读存储介质
US6810157B1 (en) Dynamic templates for specifying values for parameters of an operation in a video editing system
US20160085517A1 (en) Program information generating system, program information generating method, and computer program product
JPH1055339A (ja) オンライン型業務処理システム
US20200051297A1 (en) Method and system for creating and displaying derivatives and variations of existing Scalable Vector Graphic images
JPH05265736A (ja) レイアウト装置
JP2004334420A (ja) 帳票生成方法および帳票出力装置
JPH0916218A (ja) プログラマブルコントローラのプログラミング装置およびそのシーケンスプログラム作成方法
KR20220066537A (ko) 프로그램의 간편 제작방법
JP2724241B2 (ja) ブロック図部品処理機能付きプログラム自動生成装置
JPH11259337A (ja) 図形操作プログラム部品のテストプログラム自動生成方法および記録媒体
JPH01163833A (ja) システム固有情報設定方式
JP2005259169A (ja) プログラム作成方法
JP2009059110A (ja) 情報処理装置およびプログラム
JP2003085223A (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: 19917503

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021501429

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19917503

Country of ref document: EP

Kind code of ref document: A1