WO2012096001A1 - フローチャート描画装置、フローチャート描画方法およびプログラム - Google Patents

フローチャート描画装置、フローチャート描画方法およびプログラム Download PDF

Info

Publication number
WO2012096001A1
WO2012096001A1 PCT/JP2011/053396 JP2011053396W WO2012096001A1 WO 2012096001 A1 WO2012096001 A1 WO 2012096001A1 JP 2011053396 W JP2011053396 W JP 2011053396W WO 2012096001 A1 WO2012096001 A1 WO 2012096001A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
flowchart
connector
input
display position
Prior art date
Application number
PCT/JP2011/053396
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 US13/991,300 priority Critical patent/US20130278638A1/en
Priority to JP2012552616A priority patent/JP5564579B2/ja
Publication of WO2012096001A1 publication Critical patent/WO2012096001A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/067Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Definitions

  • the present invention relates to a flowchart drawing device, a flowchart drawing method, and a program.
  • This work flow chart is composed of nodes indicating the work and processing contents performed in the work, connection lines between the nodes, and the like.
  • the object moving operation (2) needs to be performed by the user so that the flow is easy to see, and a lot of work time is required depending on the size and complexity of the flow. It was.
  • Patent Document 1 cannot be edited after viewing the entire flow chart.
  • it is a method that does not take visibility into consideration.
  • an adjustment work for the purpose of appearance such as aligning indents with other objects or taking a space to make it easier for the user to see is made by looking at a flowchart completed by adding a new object.
  • the work of visual adjustment is indispensable, and a lot of man-hours are required although it is a secondary work.
  • the technique described in Patent Document 2 focuses on the arrangement of connection lines whose shape is determined by a tool.
  • a user who creates a flowchart needs to manually adjust not only the connection line but also the position of the object by looking at the shape of the entire flowchart. That is, when adding an object, the user needs to adjust the shape of the entire flowchart by the user himself, which is troublesome.
  • the present invention has been made in view of such a background, and an object of the present invention is to provide a flowchart drawing apparatus, a flowchart drawing method, and a program capable of improving the editing efficiency of flowchart creation.
  • the flowchart drawing apparatus stores coordinate information indicating the display position of a connector, which is a connection line connecting nodes and nodes, and part information (part information table) including connection information between the node and the connector.
  • a storage unit is provided.
  • FIG. 1 It is a functional block diagram which shows the structural example of the flowchart drawing apparatus which concerns on this embodiment. It is the figure which displayed the existing flowchart on the display apparatus by the flowchart drawing apparatus which concerns on this embodiment. It is a figure which shows an example of a data structure of the parts information table which concerns on this embodiment. It is a flowchart which shows the flow of the flowchart drawing process (forward connection) which the flowchart drawing apparatus which concerns on this embodiment performs. It is a figure which illustrates the flowchart in the process in the flowchart drawing process (forward connection) which concerns on this embodiment. It is a figure which shows an example of a data structure of the parts information table which concerns on this embodiment.
  • the flowchart in which the flowchart drawing apparatus 1 according to the present embodiment performs processing is, for example, a flowchart illustrated in FIG.
  • These flowcharts are composed of nodes indicating processes, branches, etc., and the nodes are connected by lines with arrows (hereinafter referred to as “connectors”). These nodes and connectors are collectively referred to as parts.
  • nodes and connectors are collectively referred to as parts.
  • the node indicating the start is referred to as a “start node”.
  • the process merge in the flow may be displayed in the flowchart as a diamond-shaped merge node.
  • the flowchart drawing apparatus 1 allows the user to place a new process on the existing part of the flowchart displayed on the display screen so that a new process is performed based on a preset connection relationship. Determine the layout of the flowchart to which the process has been added. Specifically, the execution of the two connection-related processes shown below is set in the user operation for adding a new process.
  • a new process C006 is arranged by the user so as to overlap the connector (arrow) 004 between the process A003 and the process B005 as shown in FIG.
  • the flowchart drawing apparatus 1 determines that a process for inserting a new process C006 is inserted between the process A003 and the process B005, as shown in FIG. To do.
  • processing for inserting a new process between nodes connected from the upper side to the lower side of the flow in this way, or a connection relationship between nodes is hereinafter referred to as “forward connection”.
  • a new process C006 is arranged by the user so as to overlap the existing process (process A003). Then, the flowchart drawing apparatus 1 according to the present embodiment determines that a process for connecting a new process C006 and an existing process A003 in parallel is performed as shown in FIG. After adding a branch node (branch node 007), an existing process (process A003) and a new process C006 are connected in parallel. In this way, the process of branching a flow according to a certain condition and connecting one process of the branch destination and the other process in parallel or the connection relationship between nodes is hereinafter referred to as “parallel connection”.
  • the flowchart drawing apparatus 1 defines the connection relationship of the flowchart in advance in association with the user's operation so that a newly input process can be referred to as “forward connection” or “parallel connection”. ”Is executed. In this way, when the user inputs a new process, the user does not need to change the arrangement of the existing process himself and can improve work efficiency. Further, the flowchart drawing apparatus 1 automatically shapes the whole according to the size of an existing part after the connection of the newly input process is completed. This eliminates the need for the user to fine-tune the layout of the added part while considering the balance with existing parts (details will be described later).
  • FIG. 1 is a functional block diagram illustrating a configuration example of a flowchart drawing device 1 according to the present embodiment.
  • the flowchart drawing apparatus 1 includes a CPU (Central Processing Unit) 10, a memory unit 20, a storage unit 30, and an input / output unit 40.
  • CPU Central Processing Unit
  • the CPU 10 performs control and calculation of the entire flowchart drawing device 1.
  • the input / output unit 40 includes an input interface 41 and an output interface 42.
  • the input / output unit 40 receives an input of information from the input device 2 such as a mouse or a keyboard via the input interface 41. Further, the input / output unit 40 displays a flowchart as a processing result of the flowchart drawing device 1 on the display of the display device 3 or the like via the output interface 42.
  • the input interface 41 can be connected to a portable storage device (not shown). When a portable storage device that stores a program for executing a flowchart drawing unit 200 described later is connected, the storage unit 30 is connected. Or may be directly stored in the memory unit 20.
  • the storage unit 30 includes storage means such as a flash memory and a hard disk, and stores a parts information table 300 and the like.
  • FIG. 3 is a diagram illustrating an example of a data configuration of a parts information table (part information) 300 according to the present embodiment.
  • the data of the parts information table 300 shown in FIG. 3 indicates information regarding each part in the flowchart shown in FIG.
  • the parts information table 300 includes ID 301, Type 302, Name 303, connection source part 304, connection destination part 305, position coordinates 306, size 307, barycentric position 308, node group 309, and temporary information 310.
  • the information on the connection source part 304 and the connection destination part 305 corresponds to the connection information in the claims.
  • the information of the position coordinates 306, the dimension 307, and the gravity center position 308 corresponds to the coordinate information indicating the display position of the claims.
  • the ID 301 is an identifier uniquely assigned to each part of the target flowchart.
  • Type 302 indicates the type of part, and stores “Terminal” indicating a start node, “Connector” indicating a connector (arrow), “Process” indicating a process, “Branch” (not shown) indicating a branch node, and the like.
  • the Name 303 represents the name of the part. If no part name is assigned, “NONAME” is stored.
  • the connection source part 304 includes information from From 341 and From Port 342.
  • This From 341 stores the ID number (ID 301) of the connection source part connected to the upper part of the part.
  • the From Port 342 is connected to the connection source connector at any of the upper (Upper), the lower (Lower), the left (Left), and the right (Right) of the rectangle on the display screen. Indicates whether or not For example, in the case of process A003 whose ID 301 is “003”, as shown in FIG. 2, it is shown that it is connected to the connector 002 (ID: 002) above the rectangle representing the process A003.
  • the connection destination part 305 includes information on To351 and ToPort352.
  • This To 351 stores the ID number (ID 301) of the connection destination part connected to the lower part of the part.
  • ID 301 the ID number of the connection destination part connected to the lower part of the part.
  • the ToPort 352 is connected to the connector on the display screen at any position of the upper (Upper), lower (Lower), left (Left), and right (Right) rectangles indicating the process. Indicates whether it is connected. For example, in the case of process A003 whose ID 301 is “003”, as shown in FIG. 2, it is connected to the connector 004 (ID: 004) below the rectangle representing the process A003 (Lower).
  • the part type is a branch node (Branch)
  • a plurality of connectors are set in the connection destination part 305 (details will be described later).
  • the position coordinate 306 represents the coordinate (x value, y value) of the upper left corner of the smallest rectangle surrounding the node.
  • the position coordinate 306 of the start node 001 whose ID 301 is “001” represents the coordinates (100, 20) of the upper left corner of the smallest rectangle surrounding the ellipse representing the start node 001 (see FIG. 2).
  • the part is a connector, it represents the starting point of the arrow of the connection source part.
  • the position coordinate 306 of the connector 004 whose ID 301 is “004” represents the coordinates (120, 100) that are the start point of the arrow of the connector 004 (see FIG. 2).
  • Dimension 307 represents the width (w value) and height (h value) of the part.
  • the width (w value) of the process (rectangle) is “60”, and the height (h value) is “20”.
  • the width (w value) of the connector (arrow) is “0”, and the height (h value) is “40”.
  • the description will be given assuming that the width (w value) of the branch node (diamond) is “40” and the height (h value) is “20”, the basic dimension 307 of each part can be arbitrarily set.
  • the center-of-gravity position 308 represents the x-coordinate and y-coordinate (cx value) and (cy value) of the center of gravity of each part.
  • the node group 309 represents a set of parts with a branch node or a merge node as a boundary.
  • the display position adjustment process (see FIGS. 10 and 18) of the flowchart described later is performed for parts in the same node group 309 (details will be described later).
  • “N1” that is the same node group 309 is set for each part.
  • a merge node indicating a merge of a plurality of flows is not illustrated in the flowchart as a diamond-shaped node (indicating a flow merge only with an arrow), but even in that case, the parts information table in the present embodiment
  • the node group 309 may be organized by assuming that a merge node is virtually present.
  • Temporary information 310 includes information of Add 311 and Target 312.
  • Add 311 is temporary information 310 indicating a node additionally input to the flowchart.
  • a target 312 is temporary information 310 indicating a part that overlaps a node that is additionally input in the flowchart. The temporary information 310 will be described in detail with reference to FIGS.
  • the memory unit 20 includes a primary storage device such as a RAM (Random Access Memory), and a flowchart drawing unit 200 is read as a program on the memory unit 20.
  • a primary storage device such as a RAM (Random Access Memory)
  • a flowchart drawing unit 200 is read as a program on the memory unit 20.
  • the flowchart drawing unit 200 controls the entire flowchart drawing apparatus 1 and includes a data input unit 201, a parts information management unit 202, a flow position calculation unit 203, and a flow display unit 204.
  • the flowchart drawing unit 200 is realized, for example, when the CPU 10 develops and executes a program stored in the storage unit 30 of the flowchart drawing apparatus 1 in the memory unit 20. Further, the flowchart drawing unit 200 may be realized by hardware, for example, as an integrated circuit.
  • the data input unit 201 receives an input of a newly added part via the input / output unit 40 by the operation of the input device 2 by the user. Then, the data input unit 201 outputs the received part information to the part information management unit 202.
  • the part information management unit 202 stores the input part information as temporary information 310 in the part information table 300 in the storage unit 30. In addition, the part information management unit 202 determines whether or not the input part is a process, and the arrangement of the process overlaps with a connector or a process that is an existing part stored in the part information table 300. .
  • the part information management unit 202 determines to execute “forward connection” that inserts the input process between nodes, and A connector for connecting a process positioned at the upper level and a connector for connecting an input process and a process positioned at the lower level are newly set in the part information table 300.
  • the part information management unit 202 determines to execute “parallel connection” that connects the input process and the existing overlapping process in parallel. To do. Then, after setting a branch node in the parts information table 300, the parts information management unit 202 connects the duplicated process and the newly input process in parallel.
  • the flow position calculation unit 203 identifies the upper and lower processes connected to the input process, and based on the position coordinates of the upper process, The X coordinate of the input process is changed, and the Y coordinate is changed so that the processes are arranged at equal intervals. Details will be described in the display position adjustment process (forward connection) shown in FIG.
  • the flow position calculation unit 203 arranges the parts that are connected to the lower level than the branch node with the branch node as the center so as to be symmetrical. To do. Details will be described in the display position adjustment processing (parallel connection) shown in FIG.
  • the flow position calculation unit 203 performs the node group shaping process after the display position adjustment process in the node group to which the input process belongs.
  • the flow position calculation unit 203 sets the left and right symmetry so that the node groups do not overlap with each other with the branch node serving as a reference as a fulcrum. Details will be described in the node group shaping process shown in FIG.
  • the flow display unit 204 acquires the flowchart information stored in the parts information table 300 via the parts information management unit 202, and outputs the flowchart information to the display device 3 via the input / output unit 40. It is displayed on the display device 3.
  • FIG. 4 is a flowchart showing a flow of a flowchart drawing process (forward connection) performed by the flowchart drawing apparatus 1 according to the present embodiment.
  • the flowchart drawing apparatus 1 performs the forward connection process. It is assumed that
  • the parts information management unit 202 of the flowchart drawing apparatus 1 organizes the node group 309 in the parts information table 300 (step S101). Specifically, the parts information management unit 202 groups the node group 309 in the parts information table 300 with the branch / merging node as a boundary. In this embodiment, as shown in the part information table 300 of FIG. 3, all parts belong to the same node group (N1).
  • the flow display unit 204 of the flowchart drawing device 1 acquires the information of the part information table 300, outputs the flowchart to the display device 3, and draws it (step S102).
  • the flowchart displayed here is a flowchart before editing by the user, and is displayed as shown in FIG.
  • the data input unit 201 receives an input of a newly added part via the input / output unit 40 (step S103). Specifically, the data input unit 201 receives an input from the process C006 (see FIG. 5).
  • the part information management unit 202 stores the inputted part information, here, the information of the process C006 in the parts information table 300 as the temporary information 310 (step S104). Specifically, as shown in FIG. 6, a process C006 is added to the part information table 300.
  • the parts information management unit 202 stores ID 301 (“006”), Type 302 (“Process”), and Name 303 (“C”) from the information of the display position where the process C 006 is added by the user, and the position coordinates. Information on 306, dimension 307, and barycentric position 308 is calculated and stored.
  • the part information management unit 202 sets a value “NEW” indicating that the connection destination and the connection source are unconfirmed for the connection source part 304 and the connection destination part 305 that have not been determined. Then, the part information management unit 202 sets “1” to Add 311 of the temporary information 310, indicating that the input information is information (temporary information) before adjustment of the display position for all parts. Set.
  • the part information management unit 202 determines whether or not the part input by the user in step S103 is a process and overlaps with a connector that is an existing part (step S105).
  • “duplicate” means that a newly added process and an existing part are displayed overlapping each other on the display of the display device 3.
  • the process C006 input by the user is displayed overlapping the connector 004 that is an existing part.
  • step S105 if the input part is a process and overlaps with an existing connector (step S105 ⁇ Yes), the process proceeds to the next step S106. On the other hand, if the input part is not a process, or if it is a process and does not overlap with an existing connector (step S105 ⁇ No), the process proceeds to step S110.
  • step S106 the parts information management unit 202 extracts connector connection source and connection destination processes that overlap the input process, and determines the connection relationship.
  • the connection source and connection destination processes of the connector 004 that overlap with the input process C006 are extracted from the From 341 and To 351 items of the parts information table 300, and the process A003 as the connection source and the process B005 as the connection destination. Get.
  • the parts information management unit 202 connects the input process to each of the upper process (extracted connection source process) and the lower process (extracted connection destination process) of the input process.
  • a connector is set and stored in the parts information table 300 as temporary information 310 (step S107).
  • step S107 will be specifically described using the parts information table 300 shown in FIG.
  • the parts information management unit 202 sets “1” in the Target 312 of the temporary information 310 of the connector 004 that is a part overlapping with the process C006 input by the user in the parts information table 300.
  • the parts information management unit 202 adds a connector 007 between the process C006 and the process A003 and a connector 008 between the process C006 and the process B005 as new connectors.
  • “1” is set in Add 311 of the temporary information 310 of the connector 007 and the connector 008.
  • FIG. 8 shows a flowchart of the state after the processing of step S107 for explanation.
  • the flow position calculation unit 203 of the flowchart drawing device 1 adjusts the display positions of all parts in the node group (N1) including the newly added process and connector (step S108). .
  • FIG. 9 shows the result of adjusting the position of the flowchart in step S108. Details of the display position adjustment processing (forward connection) of this flowchart will be described with reference to FIG.
  • step S109 the flow position calculation unit 203 performs node group shaping processing.
  • This node group shaping process is executed when a plurality of node groups exist in the item of the node group 309 of the parts information table 300.
  • the node group shaping process is not performed, but the node group shaping process will be described later (see FIG. 26).
  • the flowchart drawing apparatus 1 will determine the temporary information 310 of the parts information table 300, if the display position of a flowchart is determined by step S108 and step S109, and the parts information management part 202 will determine (step S110).
  • the confirmation of the temporary information 310 by the parts information management unit 202 is specifically a process of deleting the values set in the Add 311 and the Target 312 of the temporary information 310 of the parts information table 300.
  • the flow display unit 204 draws the determined flowchart on the display of the display device 3 via the input / output unit 40 (step S111).
  • FIG. 10 is a flowchart showing the flow of display position adjustment processing (forward connection) of the flowchart drawing apparatus 1 according to the present embodiment.
  • the flow position calculation unit 203 of the flowchart drawing device 1 identifies the upper process and the lower process connected to the input process (step S201). Specifically, first, the flow position calculation unit 203 searches the part information table 300 for an upper process having a connection relationship with the input process C006. Here, the flow position calculation unit 203 extracts from the item 341 of the connection source part 304 of the process C006 that the upper part is the connector 007 with the ID number “007” in the part information table 300 of FIG. Further, it is specified from the item of From 341 of the connection source part 304 of the connector 007 that the part above the connector 007 is the process A003.
  • the flow position calculation unit 203 determines that the lower part is the connector 008 with the ID number “008” from the item To351 of the connection destination part 305 of the process C006 for the lower process connected to the process C006. Extract. Then, from the To351 item of the connection destination part 305 of the connector 008, it is specified that the part below the connector 008 is the process B005.
  • the flow position calculation unit 203 cx value that is the X coordinate of the centroid position 308 of the upper process and the lower process specified in step S201 and the cx value that is the X coordinate of the centroid position 308 of the input process. And whether or not only the cx value at the center of gravity position 308 of the input process is different is determined (step S202).
  • the cx value of the process A003 which is the upper process and the cx value of the process B005 which is the lower process are compared with the cx value of the process C006 which is the input process.
  • step S202 ⁇ Yes When the cx values of the upper process and the lower process are the same and only the cx values of the input processes are different (step S202 ⁇ Yes), the flow position calculation unit 203 proceeds to the next step S203. move on.
  • step S203 the flow position calculation unit 203 changes the cx value of the input process gravity center position 308 to the same value as the cx value of the upper process (step S203).
  • the cx value of the process A003, which is the upper process is the same as the cx value of the process B005, which is the lower process, and only the cx value of the process C006, which is the input process, is different.
  • the cx value of the center of gravity position 308 of the process is set to the same value as the cx value of the process A003.
  • FIG. 11 shows a parts information table 300 at the time when the processing of step S203 is completed, and FIG. 12 shows a flowchart of this state. As shown in FIG. 12, the cx value at the center of gravity position 308 is the same in each process.
  • step S202 the cx values of the upper process and the lower process are compared with the cx values of the input process, and only the cx value of the centroid position 308 of the input process is different.
  • step S202 ⁇ No that is, when the cx values of the upper process, the lower process, and the input process are different from each other, or the cx values of the upper process and the input process are the same value. If the cx value differs only in the lower processes, the process proceeds to step S204.
  • step S204 the flow position calculation unit 203 sets the cx value of the centroid position 308 of the input process and the cx value of the centroid position 308 of the lower process to the same value as the cx value of the centroid position 308 of the upper process. change. That is, the cx values of the input process C006 and the lower process B005 are aligned with the cx value of the process A003 which is the upper process.
  • Step S205 when the processing of step S203 or step S204 is completed, the flow position calculation unit 203 changes the cx value, cy value, x value, and y value for each part so that the processes are arranged at equal intervals.
  • the flow position calculation unit 203 first identifies the height (h value of the dimension 307) of the connector that is not the adjustment target. In the case of the present embodiment, the height (h value) “40” of the connector 002 connected to the higher level of the higher level process A003 is stored. The flow position calculation unit 203 adjusts the Y coordinate based on the h value “40”. Then, the flow position calculation unit 203 sets the height (h value) of the newly inserted connector to “40” and the width (w value) of the dimension 307 of the connector to “0”. Adjust the display position of the entire part. In addition, the flow position calculation unit 203 deletes the connector in which “1” is set in the item of Target 312 of the temporary information 310 of the part information table 300. Specifically, the flow position calculation unit 203 deletes the connector 004 that has become unnecessary by setting the connector 007 and the connector 008 that are connected to the newly added process C006.
  • FIG. 13 shows the parts information table 300 adjusted by executing step S205 of FIG. 10 so that the parts are equally spaced.
  • the connector 004 is deleted. If the flowchart is shown using the parts information table 300 shown in FIG. 13, a process C006 is inserted between the process A003 and the process B005 as shown in FIG. 9, and the processes are arranged at equal intervals.
  • the adjustment policy regarding the layout of the display position varies depending on the user's preference and the work using the flowchart. Therefore, the adjustment of the display position of the flowchart illustrated in the present embodiment may be stored in the storage unit 30 based on another adjustment logic so that the user can change it.
  • connection relation of the process input by the user can be specified by the overlap of the figure on a display screen, and edit operation of a flowchart can be performed. It can be simplified. Further, the user does not have to fine-tune the layout of the added part while considering the balance with the existing parts.
  • FIG. 14A a case where a new process (process C006) is superimposed on an existing process (process A003) as shown in FIG. 14A will be described, but as shown in FIG. 14B,
  • the flowchart drawing apparatus 1 can perform the parallel connection process in the same manner even when a new branch node is superimposed on a higher-level connector (connector 002) connected to an existing process (process A003).
  • the branch node is overlapped with the upper connector 002 connected to the process A003
  • the flowchart drawing apparatus 1 arranges the parts after the process A003 on the left side of the branch node, and adds a new process on the right side of the branch node. Then, as shown in FIG.
  • the newly input branch node is rearranged at the same center of gravity position 308 as the process A003, thereby performing the parallel connection process described below, as shown in FIG.
  • a flowchart of various processing results can be displayed.
  • the newly input part is a process, and the input process overlaps with an existing connector, so that the flowchart drawing apparatus 1 determines that the forward connection process is performed.
  • the flowchart drawing apparatus 1 determines that the parallel connection process is performed, and the user performs the operation illustrated in FIG. Similar results are obtained.
  • step S101 to S104 of FIG. 4 the organization of the node group 309 and the drawing of the flowchart are performed, and the existing flowchart is displayed on the display device 3. Then, the part information input by the user is stored in the parts information table 300 as temporary information 310.
  • step S103 in the forward connection shown in FIG. 4, the user places an additional process so as to overlap the existing connector (arrow). However, in order to perform the parallel connection process, Arrange the process to be added to overlap.
  • the part information management unit 202 of the flowchart drawing device 1 determines whether or not the input part and the existing part overlap (overlap) (step S301). If the input part does not overlap with the existing part (step S301 ⁇ No), the process proceeds to the next step S110. On the other hand, when the input part and the existing part overlap (step S301 ⁇ Yes), the process proceeds to the next step S302. In the present embodiment, as shown in FIG. 14A, the input process C006 overlaps with the existing process A003, so that the process proceeds to step S302.
  • step S302 the part information management unit 202 determines whether the part input by the user in step S103 is a process, and whether an existing part that overlaps the input part is a connector or a process. If the existing part that overlaps the input process is a connector (step S302 ⁇ connector), the same processing as in steps S106 to S108 in FIG. 4 is performed.
  • step S302 ⁇ process the process proceeds to the parallel connection process from steps S303 to S305.
  • the parts information management unit 202 sets a branch node for connecting the overlapping process and the newly input process in parallel in the parts information table 300 (step S303).
  • a branch node 007 for connecting the process A003, which is an overlapping process, and the input process C006 in parallel is added to the part information table 300.
  • the parts information management unit 202 stores a plurality of connectors connected to the set (inserted) branch node as temporary information 310 in the parts information table 300 (step S304). Specifically, the parts information management unit 202 adds a connector 008 between the newly added branch node 007 and the overlapping process (process A003), and the newly input process (process C006) with the branch node 007. The connector 009 is added between and the connection relation is determined. The parts information management unit 202 changes the connector 002 connected between the overlapping process (process A003) and the start node 001 as a connector connecting the branch node 007 and the start node 001.
  • FIG. 16 shows the parts information table 300 at the time when the process of step S304 is completed.
  • newly input process C006, branch node 007, connector 008, and connector 009 are newly set. Further, the ID of To 351 to which the connector 002 is connected is changed to “007” (branch node). Then, “1” is set in the Target 312 of the temporary information 310 of the process A003 which is an overlapping process.
  • the flow position calculation unit 203 arranges the newly set insertion position of the branch node 007 so that it becomes the same center of gravity position 308 as the overlapping process A003. Further, the newly set connector 008 and connector 009 are indicated as “undecided” because the drawing position coordinates 306, dimension 307, and barycentric position are not specified.
  • the flow position calculation unit 203 calculates the position coordinates 306, the dimensions 307, and the center of gravity position 308 of the other parts such as the process C006 and the branch node 007 that are input based on the arrangement position at the present time.
  • FIG. 17 shows the parts information table 300 shown in FIG. 16 for explanation. In FIG.
  • the newly set branch node 007 is arranged at the same center of gravity position 308 as the overlapping process A003.
  • the display positions of the connector 008 and the connector 009 are “undecided”, but in order to indicate the presence of the connector 008 and the connector 009, in FIG.
  • the destination is temporarily displayed as the “Upper” port of each of the processes A003 and C006.
  • the flow position calculation unit 203 adjusts the display positions of all parts in the node group 309 including newly input processes, branch nodes, and connectors (step S305). Details of the display position adjustment processing (parallel connection) in this flowchart will be described later with reference to FIG.
  • the flowchart drawing device 1 performs the shaping process of the node group 309 and draws the determined flowchart on the display of the display device 3.
  • FIG. 18 is a flowchart showing the flow of display position adjustment processing (parallel connection) of the flowchart drawing apparatus 1 according to the present embodiment.
  • the flowchart drawing device 1 inserts a branch node and arranges the parts to be connected below the branch node so as to be symmetrical with respect to the inserted branch node. To do. This will be specifically described below.
  • the parts information management unit 202 organizes a node group 309 including newly input processes, branch nodes, and newly set connectors (step S401).
  • the parts information management unit 202 groups the node group 309 in the parts information table 300 with the branch node 007 as a boundary.
  • the parts information management unit 202 sets the node group 309 to “N1” for the start node 001 and the connector 002.
  • the node group 309 is set to “N2”.
  • the node group 309 is set to “N3” for the process C006 and the connector 009.
  • the flow position calculation unit 203 identifies a process connected to the inserted branch node (step S402).
  • a process A003 connected to the branch node 007 via the connector 008 and a process C006 connected via the connector 009 are specified.
  • step S403 based on the node group 309 to which each process specified in step S402 belongs, the parts belonging to the same node group 309 are specified and extracted as adjustment target parts (step S403).
  • the node group 309 to which the process A003 belongs is “N2”, and the connector 004, the process B005, and the connector 008 belonging to the same node group 309 are specified as the adjustment target parts.
  • the node group 309 to which the process C006 belongs is “N3”, and the connector 009 belonging to the same node group 309 is specified as the adjustment target part.
  • the flow position calculation unit 203 changes the centroid position (cx value) of the two processes so that the two processes are arranged equally on the left and right around the branch node in order to determine the horizontal arrangement of the flowchart.
  • Step S404 the flow position calculation unit 203 adjusts the process A003, the process A003 according to the position of the left end and the right end of the rhombus of the branch node 007 based on the branch node width (w value) and the process width (w value), respectively.
  • the cx value is changed so that the process C006 is arranged.
  • the flow position calculation unit 203 changes the cx value of the adjustment target part (step S405). Specifically, the flow position calculation unit 203 changed the center-of-gravity position (cx value) of the part located in the lower part of the process identified in step S402 among the adjustment target parts identified in step S403, in step S404. The value is changed to the same value as the cx value of the process connected to the higher level. In this embodiment, among the adjustment target parts whose node group 309 is “N2”, the cx values of the connector 004 and the process B005 are changed to the same value as the cx value of the upper process (process A003).
  • step S405 The result of executing the processing up to step S405 is shown in the flowchart of FIG. 20 for explanation. Centering on the branch node 007, the center-of-gravity positions (cx values) of the processes A003 and C006 are changed so as to be evenly arranged on the left and right. Further, the process A003, the connector 004, and the process B005 are arranged at the same center of gravity (cx value).
  • the flow position calculation unit 203 determines the height in the vertical direction between the branch node and the two processes identified in step S402, and changes the cy value of the two processes. Specifically, the flow position calculation unit 203 first stores the height (h value) “40” of the connector 002 that connects the start node 001 and the process A003. Then, the flow position calculation unit 203 determines the center of gravity (cy value) of the process A003 and the process C006 from the center of gravity (cy value) of the branch node 007 as the stored connector height (h value) “40”. The height (h value) of the dimension 307 is determined so as to be positioned below the half of the height (h value) (here, “10”) (ie, “50”).
  • step S407 the flow position calculation unit 203 changes the cy value of the adjustment target part. Specifically, the flow position calculation unit 203 lowers the center-of-gravity position (cy value) of the parts located in the lower part of the process identified in step S402 among the adjustment target parts identified in step S403 by “50” below. Decide to be located. Then, the flow position calculation unit 203 specifies the position of the connector that connects the two processes specified in step S402 and the branch node 007 (step S408).
  • cy value center-of-gravity position
  • FIG. 21 shows a flowchart of the result of executing this display position adjustment process (parallel connection), and FIG. 22 shows the parts information table 300 thereof.
  • the center of gravity position 308 of the two added connectors, connector 008 and connector 009 is set so as to be positioned at an angle obtained by bending each connector line at a right angle. .
  • the flow position calculation unit 203 calculates from the position of the corner, thereby facilitating the calculation of equal left and right and up and down equal positions.
  • the calculated value of the original center-of-gravity position may be set, as long as the arrangement of the parts is arranged and the position calculation can be performed equally on the left and right and the top and bottom.
  • the user can execute the parallel connection process by overlaying a new process on the existing process, and the layout of each part can be finely determined.
  • the display position of the flowchart can be determined and drawn without performing an additional operation such as adjustment.
  • step S109 of FIGS. 4 and 15 the node group shaping process executed in step S109 of FIGS. 4 and 15 will be described using an example in which parallel connection processing is performed on an existing flowchart including branch nodes.
  • FIG. 23 it is assumed that the user performs an operation of a parallel connection in which a process C012 is newly superimposed on a process A007 of an existing flowchart including a branch node (branch node E003).
  • step S101 of the processing procedure of the flowchart drawing apparatus 1 according to the present embodiment shown in FIG. 15 node groups are organized.
  • a set of parts with the branch node E003 as a boundary is indicated by a broken line as a node group 309.
  • the result of organization of this node group 309 is shown in the parts information table 300 of FIG.
  • the parts information table 300 is divided into three node groups 309 of “N1”, “N2”, and “N3” with the branch node E003 as a boundary.
  • step S103 of FIG. 15 the data input part 201 receives the input of the part added newly (process C012) by operation of the input device 2 by a user. Subsequently, the parts information management unit 202 stores the received information of the process C012 in the parts information table 300. Then, the processing of steps S301 to S305 in FIG. 15 is performed to execute the display position adjustment processing (parallel connection). This parallel connection display position adjustment (step S305) is performed in the node group (N2) to which the existing part (process A007) overlapping the input part (process C012) belongs.
  • FIG. 25 is a tentative display of a flowchart when the display position adjustment processing (parallel connection) up to step S305 in FIG. 15 is completed.
  • the rectangle indicating the node group “N2” including the process C012 and the rectangle indicating the node group “N3” are overlapped.
  • the distance between the connector 015 and the process C012 of the node group “N2” and the process B011 of the node group “N3” is short. Therefore, when nodes are added to the process C012 or the process B011 in the future, it is expected that the parts in each node group will overlap with the parts in the adjacent node group. Therefore, the node group shaping process is performed after the display position adjustment process in the node group.
  • FIG. 26 is a flowchart showing the flow of the node group shaping process according to the present embodiment.
  • the flow position calculation unit 203 of the flowchart drawing device 1 calculates, for each node group, a minimum rectangle including all parts belonging to the node group (step S501).
  • the processing result is a rectangle indicated by a broken line in FIG.
  • the flow position calculation unit 203 determines whether or not the calculated rectangles overlap with the rectangles of other node groups (step S502). Then, if the flow position calculation unit 203 does not overlap with the rectangles of other node groups (step S502 ⁇ No), the flow position calculation unit 203 proceeds to step S504.
  • the flow position calculation unit 203 determines the moving distance of the rectangle based on the branch node that divides the node group (step S503). ). As shown in FIG. 25, when two node groups overlap with each other between branch nodes, one node group is not arranged on the other node group side than the reference branch node. Avoid overlapping rectangles in node groups. For example, in this embodiment, the flow position calculation unit 203 moves so that the left node group “N2” is arranged on the left side of the left end coordinate of the rhombus of the branch node E003. In FIG.
  • the left node group “N2” is moved to the left by “50” in order to align the right end of the rectangle of the node group N2 with the left end of the rhombus of the branch node 003.
  • the right node group “N3” has no possibility of overlap, but the node group “N2” is also set to have a movement distance of “50” on the right side in order to shape it symmetrically with the branch node 003 as a fulcrum.
  • the flow position calculation unit 203 moves the flowchart including each node group so as to be within the drawing area (step S504). For example, as shown in FIG. 25, when the X coordinate of the left end of the node group “N2” is “40” and the movement distance set in step S503 cannot be moved to the left “50”, , Move other parts based on the position of the leftmost node group part.
  • FIG. 27 shows the result of finishing this node group shaping process.
  • the user can determine the parallel connection process simply by overlaying a new process on the existing process, and move the flowchart to the position coordinates where the node groups do not overlap without any additional operations. Can be drawn.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

 フローチャート描画装置(1)は、入力装置(2)から新たなプロセスの入力を受け付ける。そして、パーツ情報管理部(202)は、入力されたプロセスの表示位置が、パーツ情報テーブル(300)に記憶された既存のフローチャートのコネクタの表示位置と重複する場合には、コネクタの上位と下位に位置するプロセスの間に、入力されたプロセスを挿入する処理を行う。次に、フロー位置計算部(203)が、各プロセスが均等に配置されるように表示位置を計算し、フロー表示部(204)が処理結果のフローチャートを表示装置(3)に表示させる。

Description

フローチャート描画装置、フローチャート描画方法およびプログラム
 本発明は、フローチャート描画装置、フローチャート描画方法およびプログラムに関する。
 企業における業務知識やノウハウ等を用いた業務を行う手順を可視化するツールとして業務フローチャートがある。この業務フローチャートは、その業務で行われる作業や処理内容を示すノードやノード間の接続線等で構成される。
 業務フロー等のように、オブジェクトをフローチャート形式で、表示装置に表示させるソフトウェアの編集機能において、従来技術では、オブジェクトの配置作業時に以下の作業をユーザ自らが行う必要があった。
 (1)新規に追加したオブジェクトの配置
 (2)描画領域を考慮した配置済みオブジェクトの移動
 (3)オブジェクト間の結線(不要な結線の削除や追加したオブジェクトと既存のオブジェクトとの結線)
 特に、上記(2)のオブジェクトの移動作業については、フローが見やすい形になるようにユーザが考慮して行う必要があり、フローの大きさや複雑さに応じて、多くの作業時間を要していた。
 この業務フローチャートの作成を効率的に行うための技術として、フローチャートを描画する編集機能を持たず、業務フローの各々の処理を示す表形式のファイルを入力としてフローチャートを作図する方法が開示されている(特許文献1参照)。
 また、作成中のフローチャートの接続線が交差しないように自動的に制御する方法が開示されている(特許文献2参照)。
特開2001-134653号公報 特開2009-110274号公報
 この特許文献1に記載の技術は、完成したフローチャートの全貌を見た後に編集することができない。また、対象とする業務フローの構成要素が少なく、複雑な形をとらないため、見やすさを考慮に入れていない方法である。
 通常、新規オブジェクトの追加によって完成したフローチャートを見て、他のオブジェクトとインデントをそろえたり、ユーザに見やすくするためにスペースをとるなどの見た目を目的とした調整作業が発生する。フローチャートのオブジェクトを描画・編集するソフトウェアにおいて、見た目調整の作業は必須であり、かつ、二次的な作業であるにもかかわらず多くの工数を要していた。
 また、特許文献2に記載の技術は、ツールによって形の決まる接続線の配置に着目しているものである。しかしながら、フローチャートを作成するユーザは、フローチャート全体の形を見て、接続線だけでなくオブジェクトの位置を更に手作業により調整する必要があった。
 つまり、ユーザは、オブジェクトを追加する場合に、ユーザ自身により、フローチャート全体の形を調整する必要があり、手間のかかるものであった。
 このような背景に鑑みて本発明がなされたのであり、本発明は、フローチャート作成の編集効率を向上することができる、フローチャート描画装置、フローチャート描画方法およびプログラムを提供することを目的とする。
 本発明に係るフローチャート描画装置は、ノードおよびノード間を接続する接続線であるコネクタの表示位置を示す座標情報、並びに、ノードとコネクタとの接続情報を含むパーツ情報(パーツ情報テーブル)を記憶する記憶部を備える。そして、入力装置からフローチャートに追加されるノードに関する情報の入力を受け付けると、入力されたノードの表示位置と、フローチャートを構成するコネクタの表示位置とが重複するか否かをパーツ情報に基づき判定する。そして、入力されたノードがコネクタと重複すると判定した場合に、重複したコネクタと接続する上位のノードと下位のノードとの間に、入力されたノードを挿入するように、ノード間の接続関係を決定する。そして、フローチャート描画装置は、上位のノードの表示位置を基準として、フローチャートを構成するノードおよびコネクタの表示位置を決定し、表示装置にフローチャートを表示させる。
 本発明によれば、フローチャート作成の編集効率を向上する、フローチャート描画装置、フローチャート描画方法およびプログラムを提供することができる。
本実施形態に係るフローチャート描画装置の構成例を示す機能ブロック図である。 本実施形態に係るフローチャート描画装置により、既存のフローチャートを表示装置に表示させた図である。 本実施形態に係るパーツ情報テーブルのデータ構成の一例を示す図である。 本実施形態に係るフローチャート描画装置が行うフローチャート描画処理(順接接続)の流れを示すフローチャートである。 本実施形態に係るフローチャート描画処理(順接接続)の処理過程におけるフローチャートを例示する図である。 本実施形態に係るパーツ情報テーブルのデータ構成の一例を示す図である。 本実施形態に係るパーツ情報テーブルのデータ構成の一例を示す図である。 本実施形態に係るフローチャート描画処理(順接接続)の処理過程におけるフローチャートを例示する図である。 本実施形態に係るフローチャート描画処理(順接接続)の処理結果のフローチャートを例示する図である。 本実施形態に係るフローチャート描画装置の表示位置調整処理(順接接続)の流れを示すフローチャートである。 本実施形態に係るパーツ情報テーブルのデータ構成の一例を示す図である。 本実施形態に係る表示位置調整処理(順接接続)の処理過程におけるフローチャートを例示する図である。 本実施形態に係るパーツ情報テーブルのデータ構成の一例を示す図である。 本実施形態に係るフローチャート描画処理(並接接続)の処理過程におけるフローチャートを例示する図である。 本実施形態に係るフローチャート描画装置が行うフローチャート描画処理(並接接続)の流れを示すフローチャートである。 本実施形態に係るパーツ情報テーブルのデータ構成の一例を示す図である。 本実施形態に係るフローチャート描画処理(並接接続)の処理過程におけるフローチャートを例示する図である。 本実施形態に係るフローチャート描画装置の表示位置調整処理(並接接続)の流れを示すフローチャートである。 本実施形態に係るパーツ情報テーブルのデータ構成の一例を示す図である。 本実施形態に係る表示位置調整処理(並接接続)の処理過程におけるフローチャートを例示する図である。 本実施形態に係る表示位置調整処理(並接接続)の処理結果のフローチャートを例示する図である。 本実施形態に係るパーツ情報テーブルのデータ構成の一例を示す図である。 本実施形態に係るノードグループ整形処理の処理過程におけるフローチャートを例示する図である。 本実施形態に係るパーツ情報テーブルのデータ構成の一例を示す図である。 本実施形態に係るノードグループ整形処理の処理過程におけるフローチャートを例示する図である。 本実施形態に係るフローチャート描画装置のノードグループ整形処理の流れを示すフローチャートである。 本実施形態に係るノードグループ整形処理の処理結果のフローチャートを例示する図である。
(処理概要)
 まず、本実施形態に係るフローチャート描画装置1の処理概要を説明する。
 本実施形態に係るフローチャート描画装置1が処理を行うフローチャートは、例えば、後記する図2や図21等に示すフローチャートである。これらのフローチャートは、処理や分岐等を示すノードで構成され、各ノード間が矢印付きの線(以下、「コネクタ」と呼ぶ。)で結線される。このノードとコネクタとを総称してパーツと呼ぶ。
 また、ノードには、以下の種類がある。
 (1)開始および終了を示し、楕円形で表示されるノード。以下、開始を示すノードを、「開始ノード」と呼ぶ。
 (2)処理を示し、矩形で表示されるノード。以下、「プロセス」と呼ぶ。
 (3)分岐を示し、ひし形で表示されるノード。以下、「分岐ノード」と呼ぶ。なお、本実施形態においては、例示していないが、フローにおける処理の合流をひし形の合流ノードとしてフローチャートに表示させてもよい。
 本実施形態に係るフローチャート描画装置1は、表示画面上に表示されたフローチャートの既存のパーツに、ユーザが、新たなプロセスを重ねて配置させることで、予め設定された接続関係に基づき、新たなプロセスを追加したフローチャートの配置を決定する。
 具体的には、新たなプロセスを追加するユーザの操作に、以下に示す2つの接続関係の処理の実行を設定しておく。
 まず、図2に示したフローチャートが表示されている場合、図5に示すように、プロセスA003とプロセスB005との間のコネクタ(矢印)004に重なるように、新たなプロセスC006がユーザにより配置される。すると、本実施形態に係るフローチャート描画装置1は、後記する図9に示すように、新たなプロセスC006を、プロセスA003とプロセスB005との間に挿入する処理を行うものと判定し、処理を実行する。なお、このように、フローの上方から下方に向けて接続されたノード間に新たなプロセスを挿入する処理、または、ノード間の接続関係を、以下「順接接続」と呼ぶ。
 また、図14(a)に示すように、既存のプロセス(プロセスA003)と重なるように、新たなプロセスC006がユーザにより配置される。すると、本実施形態に係るフローチャート描画装置1は、後記する図21のように、新たなプロセスC006と、既存のプロセスA003とを、並列に接続する処理を行うものと判定し、新たなノードとして分岐ノード(分岐ノード007)を追加した上で、既存のプロセス(プロセスA003)と新たなプロセスC006とを並列に接続する。なお、このように、フローをある条件によって分岐し、その分岐先の一方のプロセスと他方のプロセスを並列に接続させる処理、または、ノード間の接続関係を、以下「並接接続」と呼ぶ。
 本実施形態に係るフローチャート描画装置1は、ユーザの操作に対応付けて、フローチャートの接続関係を予め定義しておくことで、新たに入力されるプロセスを、「順接接続」あるいは「並接接続」として設定する処理を実行する。このようにすることで、ユーザは、新たなプロセスの入力を行う場合に、既存のプロセスの配置の変更を自ら行う必要がなく、作業効率を向上させることができる。
 また、フローチャート描画装置1は、新たに入力されたプロセスの接続が終了した後、既存のパーツの大きさに合わせて自動で全体の整形を行う。このようにすることで、ユーザは、既存のパーツとのバランスを考えながら、追加したパーツのレイアウトを微調整する必要がなくなる(詳細は後記する)。
(フローチャート描画装置の構成)
 図1は、本実施形態に係るフローチャート描画装置1の構成例を示す機能ブロック図である。図1に示すように、フローチャート描画装置1は、CPU(Central Processing Unit)10と、メモリ部20と、記憶部30と、入出力部40とを含んで構成される。
 CPU10は、フローチャート描画装置1全体の制御および演算を行う。
 また、入出力部40は、入力インタフェース41と出力インタフェース42とを備える。そして、入出力部40は、入力インタフェース41を介して、マウスやキーボード等の入力装置2からの情報の入力を受け付ける。また、入出力部40は、出力インタフェース42を介して、フローチャート描画装置1の処理結果であるフローチャートを、表示装置3のディスプレイ等に表示させる。
 なお、この入力インタフェース41は、図示していない可搬型記憶デバイスと接続することができ、後記するフローチャート描画部200を実行させるプログラムが格納された可搬型記憶デバイスが接続されると、記憶部30に転送したり、メモリ部20へ直接記憶させるようにすることもできる。
 記憶部30は、フラッシュメモリ、ハードディスク等の記憶手段からなり、パーツ情報テーブル300等を記憶する。
 図3は、本実施形態に係るパーツ情報テーブル(パーツ情報)300のデータ構成の一例を示す図である。図3に示すパーツ情報テーブル300のデータは、図2に示すフローチャートの各パーツに関する情報を示すものである。
 パーツ情報テーブル300は、ID301、Type302、Name303、接続元パーツ304、接続先パーツ305、位置座標306、寸法307、重心位置308、ノードグループ309、および一時情報310を含んで構成される。なお、接続元パーツ304および接続先パーツ305の情報が、請求項の接続情報に該当する。また、位置座標306、寸法307および重心位置308の情報が、請求項の表示位置を示す座標情報に該当する。
 ID301は、対象となるフローチャートの各パーツに一意に付される識別子である。
 Type302は、パーツの種類を示し、開始ノード等を示す「Terminal」、コネクタ(矢印)を示す「Connector」、プロセスを示す「Process」、分岐ノードを示す「Branch」(不図示)等が格納される。
 Name303は、パーツの名称を表す。なお、パーツの名称が付されていない場合は、「NONAME」が格納される。
 接続元パーツ304は、From341とFromPort342の情報を含んで構成される。このFrom341には、そのパーツの上位に接続する接続元のパーツのID番号(ID301)が格納される。FromPort342は、そのパーツがプロセスの場合、表示画面上において、矩形の上方(Upper)、下方(Lower)、左方(Left)、右方(Right)のどの位置で接続元のコネクタと接続されているかを示す。例えば、ID301が「003」のプロセスA003の場合は、図2に示すように、プロセスA003を表す矩形の上方(Upper)で、コネクタ002(ID:002)と接続されることを示している。
 接続先パーツ305は、To351とToPort352の情報を含んで構成される。このTo351は、そのパーツの下位に接続する接続先のパーツのID番号(ID301)が格納される。ToPort352は、そのパーツがプロセスの場合、表示画面上において、プロセスを示す矩形の上方(Upper)、下方(Lower)、左方(Left)、右方(Right)のどの位置で接続先のコネクタと接続されているかを示す。例えば、ID301が「003」のプロセスA003の場合は、図2に示すように、プロセスA003を表す矩形の下方(Lower)で、コネクタ004(ID:004)と接続されることを示している。なお、パーツの種類が分岐ノード(Branch)の場合は、複数のコネクタが接続先パーツ305に設定される(詳細は後記する)。
 位置座標306は、そのパーツがノードの場合は、ノードを囲む最小の矩形の左上端の座標(x値、y値)を表す。例えば、ID301が「001」の開始ノード001の位置座標306は、開始ノード001を表す楕円を囲む最小の矩形の左上端の座標(100、20)を表す(図2参照)。また、そのパーツがコネクタの場合は、接続元のパーツの矢印の始点を表す。例えば、ID301が「004」のコネクタ004の位置座標306は、コネクタ004の矢印の始点である座標(120、100)を表す(図2参照)。
 寸法307は、そのパーツの幅(w値)と高さ(h値)とを表す。本実施例においては、プロセス(矩形)の幅(w値)を「60」、高さ(h値)を「20」。コネクタ(矢印)の幅(w値)を「0」、高さ(h値)を「40」。分岐ノード(ひし形)の幅(w値)を「40」、高さ(h値)を「20」、として説明するが、各パーツの基本となる寸法307は任意に設定することができる。
 重心位置308は、各パーツの重心のx座標、y座標である(cx値)、(cy値)を表す。
 ノードグループ309は、分岐ノード若しくは合流ノードを境にしたパーツの集合を表す。後記するフローチャートの表示位置調整処理(図10、図18参照)は、同じノードグループ309内のパーツについて行う(詳細は後記)。図2に示すフローチャートにおいては、分岐ノード、合流ノードは存在しないので、各パーツは同じノードグループ309である「N1」が設定される。
 なお、複数のフローの合流を示す合流ノードを、ひし形のノードとしてフローチャートに図示しない場合(矢印のみでフローの合流を示す)もあるが、その場合であっても、本実施形態におけるパーツ情報テーブル300の接続元パーツ304の項目に、複数の接続元パーツが設定されている場合には、仮想的に合流ノードが存在するものとしてノードグループ309の編成処理を行うようにしてもよい。
 一時情報310は、Add311とTarget312の情報を含んで構成される。Add311は、フローチャートに、追加して入力されたノードを示す一時情報310である。また、Target312は、フローチャートに、追加して入力されたノードと重なったパーツを示す一時情報310である。なお、この一時情報310については、後記する図6、図7において詳細に説明する。
 図1に戻り、メモリ部20は、RAM(Random Access Memory)等の一次記憶装置からなり、メモリ部20上には、フローチャート描画部200がプログラムとして読み込まれている。
 このフローチャート描画部200は、フローチャート描画装置1全体の制御を行い、データ入力部201と、パーツ情報管理部202と、フロー位置計算部203と、フロー表示部204とを含んで構成される。なお、このフローチャート描画部200は、例えばフローチャート描画装置1の記憶部30に記憶されたプログラムを、CPU10がメモリ部20に展開し実行することで実現される。また、このフローチャート描画部200は、集積回路化するなどしてハードウェアで実現するようにしてもよい。
 データ入力部201は、ユーザによる入力装置2の操作により、入出力部40を介して新たに追加されたパーツの入力を受け付ける。そして、データ入力部201は、受け付けたパーツの情報を、パーツ情報管理部202に出力する。
 パーツ情報管理部202は、入力されたパーツの情報を、一時情報310として、記憶部30内のパーツ情報テーブル300に記憶する。
 また、パーツ情報管理部202は、入力されたパーツがプロセスであり、そのプロセスの配置が、パーツ情報テーブル300に記憶されている既存のパーツであるコネクタまたはプロセスと重複するか否かを判定する。
 そして、パーツ情報管理部202は、入力されたプロセスが既存のコネクタと重複する場合には、ノード間に入力されたプロセスを挿入する「順接接続」を実行すると判定し、入力されたプロセスとその上位に位置するプロセスとを接続するためのコネクタ、および、入力されたプロセスとその下位に位置するプロセスとを接続するためのコネクタを、パーツ情報テーブル300に新たに設定する。
 また、パーツ情報管理部202は、入力されたプロセスが既存のプロセスと重複する場合には、入力されたプロセスと既存の重複したプロセスとを、並列に接続する「並接接続」を実行すると判定する。そして、パーツ情報管理部202は、パーツ情報テーブル300に分岐ノードを設定した上で、重複したプロセスと新たな入力されたプロセスとを並列に接続する。
 フロー位置計算部203は、パーツ情報管理部202が、順接接続を実行すると判定した場合に、入力されたプロセスと接続する上位と下位のプロセスを特定し、上位のプロセスの位置座標に基づき、入力されたプロセスのX座標を変更し、各プロセスが等間隔に配置されるようにY座標を変更する。なお、詳細は、図10に示す表示位置調整処理(順接接続)において説明する。
 また、フロー位置計算部203は、パーツ情報管理部202が、並接接続を実行すると判定した場合に、分岐ノードを中心として、分岐ノードよりも下位に接続するパーツを左右対称となるように配置する。なお、詳細は、図18に示す表示位置調整処理(並接接続)において説明する。
 さらに、フロー位置計算部203は、入力されたプロセスの属するノードグループにおける表示位置調整処理を終えると、ノードグループ整形処理を行う。ノードグループ整形処理において、フロー位置計算部203は、基準となる分岐ノードを支点として、各ノードグループが重ならないように、左右対称に設定する。なお、詳細は、図26に示すノードグループ整形処理において説明する。
 フロー表示部204は、パーツ情報管理部202を介して、パーツ情報テーブル300に記憶されたフローチャートの情報を取得し、入出力部40を介して、表示装置3にそのフローチャートの情報を出力し、表示装置3に表示させる。
(フローチャート描画処理)
 次に、本実施形態に係るフローチャート描画装置1が行うフローチャート描画処理について説明する。
 ≪順接接続≫
 図4は、本実施形態に係るフローチャート描画装置1が行うフローチャート描画処理(順接接続)の流れを示すフローチャートである。なお、本実施例では、図5に示すように、図2で示したフローチャートのコネクタ(矢印)004に、プロセスC006がユーザにより配置されることにより、フローチャート描画装置1が、順接接続の処理を行うものとして説明する。
 まず、フローチャート描画装置1のパーツ情報管理部202は、パーツ情報テーブル300におけるノードグループ309の編成を行う(ステップS101)。具体的には、パーツ情報管理部202は、パーツ情報テーブル300内のノードグループ309を、分岐・合流ノードを境にして、グループ化を行う。本実施例では、図3のパーツ情報テーブル300に示すように、すべてのパーツが同じノードグループ(N1)に属する。
 次に、フローチャート描画装置1のフロー表示部204は、パーツ情報テーブル300の情報を取得し、フローチャートを表示装置3に出力し、描画させる(ステップS102)。ここで表示されるフローチャートは、ユーザによる編集前のフローチャートであり、図2に示すように表示される。
 続いて、ユーザによる入力装置2の操作により、入出力部40を介して、データ入力部201が、新たに追加されるパーツの入力を受け付ける(ステップS103)。具体的には、データ入力部201が、プロセスC006の入力を受け付ける(図5参照)。
 そして、パーツ情報管理部202は、入力されたパーツの情報、ここでは、プロセスC006の情報を、一時情報310としてパーツ情報テーブル300に記憶する(ステップS104)。具体的には、図6に示すように、プロセスC006がパーツ情報テーブル300に追加される。ここで、パーツ情報管理部202は、プロセスC006がユーザにより追加された表示位置の情報から、ID301(「006」)、Type302(「Process」)、Name303(「C」)を格納し、位置座標306、寸法307、重心位置308の情報を算出し格納する。また、パーツ情報管理部202は、確定していない接続元パーツ304および接続先パーツ305については、接続先、接続元が未確定であることを示す「NEW」という値を設定しておく。そして、パーツ情報管理部202は、入力された情報が、すべてのパーツに対する表示位置の調整を行う前の情報(一時情報)であることを示すものとして、一時情報310のAdd311に「1」を設定する。
 次に、パーツ情報管理部202は、ステップS103でユーザにより入力されたパーツが、プロセスであり、既存パーツであるコネクタと重複するか否かを判定する(ステップS105)。ここで、重複とは、新たに追加されたプロセスと、既存のパーツとが、表示装置3のディスプレイ上で重なって表示されていることを意味する。図5に示すように、ユーザにより入力されたプロセスC006が、既存のパーツであるコネクタ004と重なって表示されている。このように、ユーザ操作において新たなプロセスを追加する際に、既存のコネクタに重ねてプロセスと追加することは、そのコネクタに繋がる上位と下位のプロセスの間に、追加したプロセスを挿入することを意味する。
 ステップS105において、入力されたパーツがプロセスであり、既存のコネクタと重複する場合には(ステップS105→Yes)、次のステップS106に進む。一方、入力されたパーツがプロセスでない場合や、プロセスであっても既存のコネクタと重複しない場合には(ステップS105→No)、ステップS110へ進む。
 次に、ステップS106において、パーツ情報管理部202は、入力されたプロセスに重複するコネクタの接続元および接続先のプロセスを抽出し、接続関係を決定する。ここでは、入力されたプロセスC006と重複するコネクタ004の接続元、接続先の各プロセスを、パーツ情報テーブル300のFrom341およびTo351の項目から抽出し、接続元としてプロセスA003を、接続先としてプロセスB005を得る。
 そして、パーツ情報管理部202は、入力されたプロセスの上位にあるプロセス(抽出した接続元のプロセス)、下位にあるプロセス(抽出した接続先のプロセス)それぞれと、入力されたプロセスとを接続するコネクタを設定し、一時情報310としてパーツ情報テーブル300に記憶する(ステップS107)。
 ステップS107の処理を、図7に示すパーツ情報テーブル300を用いて具体的に説明する。パーツ情報管理部202は、パーツ情報テーブル300において、ユーザにより入力されたプロセスC006と重複するパーツであるコネクタ004の一時情報310のTarget312に「1」を設定する。次に、パーツ情報管理部202は、新たなコネクタとして、プロセスC006とプロセスA003との間のコネクタ007、プロセスC006とプロセスB005との間のコネクタ008を追加する。そして、コネクタ007およびコネクタ008の一時情報310のAdd311に「1」を設定する。このステップS107の処理を終えた状態のフローチャートを説明のため示すと、図8のようになる。
 図4に戻り、次に、フローチャート描画装置1のフロー位置計算部203は、新規に追加したプロセスやコネクタを含め、ノードグループ(N1)内のすべてのパーツの表示位置を調整する(ステップS108)。このステップS108により、フローチャートの位置が調整された結果を図9に示す。なお、このフローチャートの表示位置調整処理(順接接続)の詳細は、図10において説明する。
 続いて、フロー位置計算部203は、ノードグループ整形処理を行う(ステップS109)。このノードグループ整形処理は、パーツ情報テーブル300のノードグループ309の項目に複数のノードグループが存在する場合に実行されるものである。ここでは、ノードグループが「N1」の1つしか存在しないため、ノードグループ整形処理は行わないが、ノードグループ整形処理については後記において説明する(図26参照)。
 そして、フローチャート描画装置1は、ステップS108およびステップS109により、フローチャートの表示位置を決定すると、パーツ情報管理部202が、パーツ情報テーブル300の一時情報310を確定する(ステップS110)。なお、パーツ情報管理部202による一時情報310の確定は、具体的には、パーツ情報テーブル300の一時情報310のAdd311およびTarget312に設定した値の削除処理を行うことである。そして、フロー表示部204は、確定したフローチャートを、入出力部40を介して、表示装置3のディスプレイに描画する(ステップS111)。
 <表示位置調整処理(順接接続)>
 次に、図4のステップS108における表示位置調整処理(順接接続)について、図10を用いて説明する。図10は、本実施形態に係るフローチャート描画装置1の表示位置調整処理(順接接続)の流れを示すフローチャートである。
 まず、フローチャート描画装置1のフロー位置計算部203は、入力されたプロセスに接続する上位のプロセスと下位のプロセスとを特定する(ステップS201)。具体的には、まず、フロー位置計算部203は、入力されたプロセスC006と接続関係にある上位のプロセスをパーツ情報テーブル300から探索する。ここで、フロー位置計算部203は、図7のパーツ情報テーブル300において、プロセスC006の接続元パーツ304のFrom341の項目から、上位のパーツがID番号「007」のコネクタ007であると抽出し、さらに、コネクタ007の接続元パーツ304のFrom341の項目から、コネクタ007の上位にあるパーツが、プロセスA003であることを特定する。同様に、フロー位置計算部203は、プロセスC006と接続関係にある下位のプロセスについて、プロセスC006の接続先パーツ305のTo351の項目から、下位のパーツがID番号「008」のコネクタ008であると抽出する。そして、コネクタ008の接続先パーツ305のTo351の項目から、コネクタ008の下位にあるパーツが、プロセスB005であることを特定する。
 次に、フロー位置計算部203は、ステップS201で特定した上位のプロセスおよび下位のプロセスの重心位置308のX座標であるcx値と、入力されたプロセスの重心位置308のX座標であるcx値とを比較し、入力されたプロセスの重心位置308のcx値のみが異なるか否かを判定する(ステップS202)。ここでは、上位のプロセスであるプロセスA003のcx値および下位のプロセスであるプロセスB005のcx値と、入力されたプロセスであるプロセスC006のcx値とを比較する。
 そして、フロー位置計算部203は、上位のプロセスおよび下位のプロセスのcx値が同じ値であり、入力されたプロセスのcx値のみが異なる場合には(ステップS202→Yes)、次のステップS203に進む。
 ステップS203において、フロー位置計算部203は、入力されたプロセスの重心位置308のcx値を、上位のプロセスのcx値と同じ値に変更する(ステップS203)。
 本実施例においては、上位のプロセスであるプロセスA003のcx値と下位のプロセスであるプロセスB005のcx値が同じであり、入力されたプロセスであるプロセスC006のcx値のみが異なるため、入力されたプロセスの重心位置308のcx値を、プロセスA003のcx値と同じ値に設定する。このステップS203の処理を終えた時点のパーツ情報テーブル300を図11に示し、この状態のフローチャートを図12に示す。図12に示すように、重心位置308のcx値が各プロセスにおいて同じ値となっている。
 一方、図10に戻り、ステップS202において、上位のプロセスおよび下位のプロセスのcx値と、入力されたプロセスのcx値とを比較し、入力されたプロセスの重心位置308のcx値のみが異なる場合以外のとき(ステップS202→No)、つまり、上位のプロセス、下位のプロセス、入力されたプロセス、それぞれのcx値がすべて異なる場合や、上位のプロセスと入力されたプロセスのcx値が同じ値であり、下位のプロセスのみcx値が異なる場合には、ステップS204に進む。
 ステップS204において、フロー位置計算部203は、入力されたプロセスの重心位置308のcx値や、下位のプロセスの重心位置308のcx値を、上位のプロセスの重心位置308のcx値と同じ値に変更する。つまり、上位のプロセスであるプロセスA003のcx値に、入力されたプロセスC006および下位のプロセスB005のcx値を揃えるようにする。
 次に、ステップS203またはステップS204の処理を終えると、フロー位置計算部203は、各プロセスが等間隔に配置されるように、パーツ毎のcx値、cy値、およびx値、y値を変更する(ステップS205)。
 具体的には、フロー位置計算部203は、まず、調整対象となっていないコネクタの高さ(寸法307のh値)を特定する。本実施例の場合、上位のプロセスA003のさらに上位に接続するコネクタ002の高さ(h値)「40」を記憶する。フロー位置計算部203は、このh値「40」を基準にしてY座標を調整する。そして、フロー位置計算部203は、新たに挿入したコネクタの高さ(h値)が「40」になるように、そしてそのコネクタの寸法307の幅(w値)が「0」になるようにして、パーツ全体の表示位置を調整する。また、フロー位置計算部203は、パーツ情報テーブル300の一時情報310のTarget312の項目に「1」を設定したコネクタを削除する。具体的には、フロー位置計算部203は、新たに追加されたプロセスC006と接続するコネクタ007およびコネクタ008を設定することで不要となったコネクタ004を削除する。
 図13は、図10のステップS205を実行して、各パーツが等間隔となるように調整されたパーツ情報テーブル300を示している。図13に示すパーツ情報テーブル300では、コネクタ004が削除されている。この図13に示すパーツ情報テーブル300を用いて、フローチャートを示すと、図9に示すように、プロセスA003とプロセスB005との間に、プロセスC006が挿入され、各プロセスは均等な間隔で配置される。
 なお、表示位置のレイアウトに関する調整方針は、ユーザの好みやフローチャートを使用する業務によって異なる。したがって、本実施形態で例示したフローチャートの表示位置の調整を、別の調整ロジックに基づき、記憶部30に記憶させ、ユーザが変更できるようにしてもよい。
 このようにすることで、本実施形態に係るフローチャート描画装置1によれば、ユーザにより入力されたプロセスの接続関係を、表示画面上の図形の重なりで特定することができ、フローチャートの編集操作を簡便化することができる。また、ユーザは、既存のパーツとのバランスを考えながら、追加したパーツのレイアウトを微調整する必要がなくなる。
 ≪並接接続≫
 次に、本実施形態に係るフローチャート描画装置1が、ユーザにより入力された新たなプロセスが既存のプロセスに重なるように配置された場合のフローチャート描画処理(並接接続)について説明する。
 このフローチャート描画処理(並接接続)では、図14(a)に示すように、既存のプロセス(例えば、プロセスA003)に、新たに入力されたプロセス(例えば、プロセスC006)を重ねた場合に、フローチャート描画装置1において、既存のプロセスと入力されたプロセスとを並列に接続する関係を有するものと規定しておく。そして、フローチャート描画装置1は、図21の処理結果に示すように、分岐ノードを追加し、入力されたプロセスに重ねられた既存のプロセスと、その入力されたプロセスとがある条件によって分岐ノードにより分岐され、一方の条件下で既存のプロセスを、他方の条件下で入力されたプロセスを実行するという、フローを描画する。
 なお、以下においては、図14(a)に示すように、既存のプロセス(プロセスA003)に新たなプロセス(プロセスC006)を重ねた場合として説明するが、図14(b)に示すように、フローチャート描画装置1は、既存のプロセス(プロセスA003)と接続する上位のコネクタ(コネクタ002)に新たな分岐ノードを重ねる場合でも同様に並接接続の処理を行うようにすることができる。
 フローチャート描画装置1は、プロセスA003と接続する上位のコネクタ002に分岐ノードが重ねられた場合、プロセスA003以降のパーツを分岐ノードの左側に配置し、分岐ノードの右側には新たなプロセスを加える。そして、新たに入力された分岐ノードを後記する図17に示すように、プロセスA003と同じ重心位置308に配置し直すことで、以下に説明する並接接続の処理を行い、図21に示すような処理結果のフローチャートを表示させることができる。
 なお、順接接続では、新たに入力されたパーツがプロセスであり、入力されたプロセスが既存のコネクタと重複することで、フローチャート描画装置1が、順接接続の処理を行うと判定する。一方、入力されたパーツが分岐ノードであり既存のコネクタと重複する場合には、フローチャート描画装置1は、並接接続の処理を行うと判定し、ユーザが図14(a)に示す操作をした場合と同様の結果が得られる。
 次に、本実施形態に係るフローチャート描画装置1の並接接続の処理の流れを、図15を用いて説明する。なお、図4に示したフローチャート描画装置1の順接接続の処理の流れと同様の処理については、同一の符号を付し、説明を省略する。また、ここでは、図14(a)に示すように、図2で示したフローチャートに、プロセスC006を追加するものとして説明する。
 図15に示すように、まず、図4のステップS101~S104と同様に、ノードグループ309の編成、フローチャートの描画を行い、表示装置3に既存のフローチャートを表示させる。そして、ユーザにより入力されたパーツの情報を一時情報310としてパーツ情報テーブル300に記憶する。なお、ステップS103において、図4の順接接続では、ユーザが既存のコネクタ(矢印)に重なるように追加のプロセスを配置したが、並接接続の処理を行わせるため、ユーザは、既存のプロセスに重なるように追加するプロセスを配置する。
 次に、フローチャート描画装置1のパーツ情報管理部202は、入力されたパーツと既存パーツとが重複する(重なる)か否かを判定する(ステップS301)。そして、入力されたパーツと既存パーツとが重ならない場合には(ステップS301→No)、次のステップS110に進む。一方、入力されたパーツと既存パーツとが重なる場合には(ステップS301→Yes)、次のステップS302へ進む。本実施例では、図14(a)に示すように、入力されたプロセスC006が、既存のプロセスA003に重なるため、ステップS302へ進むものとして説明する。
 ステップS302において、パーツ情報管理部202は、ステップS103でユーザにより入力されたパーツがプロセスであり、入力されたパーツと重複する既存パーツが、コネクタまたはプロセスのどちらであるかを判定する。ここで、入力されたプロセスと重複する既存パーツがコネクタである場合には(ステップS302→コネクタ)、図4のステップS106~S108と同様の処理を行う。
 一方、入力されたプロセスと重複する既存パーツがプロセスである場合には(ステップS302→プロセス)、ステップS303~S305までの並接接続の処理に進む。
 次に、パーツ情報管理部202は、重複するプロセスと新たに入力されたプロセスとを並列接続するための分岐ノードをパーツ情報テーブル300に設定する(ステップS303)。本実施例では、重複するプロセスであるプロセスA003と、入力されたプロセスC006とを並接接続するための分岐ノード007を、パーツ情報テーブル300に追加する。
 続いて、パーツ情報管理部202は、設定(挿入)した分岐ノードと接続する複数のコネクタを一時情報310としてパーツ情報テーブル300に記憶する(ステップS304)。具体的には、パーツ情報管理部202は、新たに追加した分岐ノード007と重複するプロセス(プロセスA003)との間にコネクタ008を加え、分岐ノード007と新たに入力されたプロセス(プロセスC006)との間にコネクタ009を加えて、接続関係を決定する。また、パーツ情報管理部202は、重複するプロセス(プロセスA003)と開始ノード001との間に接続されていたコネクタ002を、分岐ノード007と開始ノード001との間を接続するコネクタとして変更する。
 このステップS304の処理を終えた時点でのパーツ情報テーブル300を図16に示す。図16では、新たに入力されたプロセスC006、分岐ノード007、コネクタ008、およびコネクタ009が新たに設定される。また、コネクタ002の接続先であるTo351のIDが「007」(分岐ノード)に変更されている。そして、重複するプロセスであるプロセスA003の一時情報310のTarget312に「1」が設定される。
 ここで、フロー位置計算部203は、新たに設定した分岐ノード007の挿入位置を、重複するプロセスA003と同じ重心位置308になるように配置する。また、新たに設定したコネクタ008およびコネクタ009は、描画する位置座標306、寸法307、重心位置が特定されていないので、「未定」として示す。その他の入力されたプロセスC006、分岐ノード007等のパーツの位置座標306、寸法307、重心位置308は、フロー位置計算部203が、現時点での配置位置に基づいて算出し、パーツ情報テーブル300に格納する。この図16に示すパーツ情報テーブル300を説明のため示すと図17のようになる。図17では、新たに設定した分岐ノード007が、重複するプロセスA003と同じ重心位置308に配置されている。なお、図16のパーツ情報テーブル300では、コネクタ008、コネクタ009の表示位置は「未定」だが、コネクタ008およびコネクタ009の存在を示すために、図17では、分岐ノード007を接続元とし、接続先をプロセスA003、プロセスC006それぞれの「Upper」ポートとして仮に表示している。
 図15に戻り、フロー位置計算部203は、新たに入力されたプロセスや、分岐ノード、コネクタを含め、ノードグループ309内のすべてのパーツの表示位置を調整する(ステップS305)。なお、このフローチャートの表示位置調整処理(並接接続)の詳細は、後記する図18において説明する。
 続いて、図4のステップS109~S111と同様に、フローチャート描画装置1は、ノードグループ309の整形処理を行い、確定したフローチャートを、表示装置3のディスプレイに描画する。
 <表示位置調整処理(並接接続)>
 次に、図15のステップS305における表示位置調整処理(並接接続)について図18を用いて説明する。図18は、本実施形態に係るフローチャート描画装置1の表示位置調整処理(並接接続)の流れを示すフローチャートである。この表示位置調整処理(並接接続)において、フローチャート描画装置1は、分岐ノードを挿入し、その挿入した分岐ノードを中心として、その分岐ノードより下位において接続するパーツを左右対称となるように配置する。以下、具体的に説明する。
 まず、パーツ情報管理部202は、新たに入力されたプロセス、分岐ノード、新たに設定したコネクタを含めたノードグループ309の編成を行う(ステップS401)。本実施例においては、パーツ情報管理部202は、パーツ情報テーブル300内のノードグループ309を、分岐ノード007を境にして、グループ化を行う。そして、図19に示すように、パーツ情報管理部202は、開始ノード001およびコネクタ002について、ノードグループ309を「N1」と設定する。プロセスA003、コネクタ004、プロセスB005およびコネクタ008について、ノードグループ309を「N2」と設定する。また、プロセスC006およびコネクタ009について、ノードグループ309を「N3」と設定する。
 次に、フロー位置計算部203は、挿入された分岐ノードと接続するプロセスを特定する(ステップS402)。本実施例では、分岐ノード007にコネクタ008を介して接続するプロセスA003と、コネクタ009を介して接続するプロセスC006とを特定する。
 次に、ステップS402で特定した各プロセスが属するノードグループ309に基づき、同じノードグループ309に属するパーツを特定し、調整対象パーツとして抽出する(ステップS403)。本実施例では、プロセスA003の属するノードグループ309は「N2」であり、同じノードグループ309に属する、コネクタ004、プロセスB005およびコネクタ008が調整対象パーツとして特定される。また、プロセスC006が属するノードグループ309は「N3」であり、同じノードグループ309に属するコネクタ009が調整対象パーツとして特定される。
 次に、フロー位置計算部203は、フローチャートの水平方向の配置を決定するため、分岐ノードを中心に2つのプロセスを左右均等に配置するように、2つプロセスの重心位置(cx値)を変更する(ステップS404)。本実施例では、フロー位置計算部203は、分岐ノードの幅(w値)とプロセスの幅(w値)とに基づき、分岐ノード007のひし形の左端、右端の位置に合わせてそれぞれプロセスA003、プロセスC006を配置するように、cx値を変更する。
 続いて、フロー位置計算部203は、調整対象パーツのcx値を変更する(ステップS405)。具体的には、フロー位置計算部203は、ステップS403で特定した調整対象パーツのうち、ステップS402で特定したプロセスの下位に位置するパーツの重心位置(cx値)を、ステップS404で変更した、その上位に接続するプロセスのcx値と同じ値に変更する。本実施例では、ノードグループ309が「N2」の調整対象パーツのうち、コネクタ004およびプロセスB005のcx値を、上位のプロセス(プロセスA003)のcx値と同じ値に変更する。
 ステップS405までの処理を実行した結果を説明のため示すと、図20のフローチャートのようになる。分岐ノード007を中心に、プロセスA003、プロセスC006の重心位置(cx値)は、左右均等に配置するように変更されている。また、プロセスA003とコネクタ004とプロセスB005とが、同じ重心位置(cx値)に配置されている。
 図18に戻り、ステップS406において、フロー位置計算部203は、分岐ノードとステップS402で特定した2つのプロセスとの間の縦方向の高さを決定し、2つのプロセスのcy値を変更する。
 具体的には、フロー位置計算部203は、まず、開始ノード001とプロセスA003とを接続するコネクタ002の高さ(h値)「40」を記憶する。そして、フロー位置計算部203は、プロセスA003およびプロセスC006の重心位置(cy値)を、分岐ノード007の重心位置(cy値)から、記憶したコネクタの高さ(h値)「40」と自身の寸法307の高さ(h値)の2分の1の値(ここでは「10」)とを加えた分(つまり「50」)下方に位置するように決定する。
 次に、ステップS407において、フロー位置計算部203は、調整対象パーツのcy値を変更する。
 具体的には、フロー位置計算部203は、ステップS403で特定した調整対象パーツのうち、ステップS402で特定したプロセスの下位に位置するパーツの重心位置(cy値)を、それぞれ「50」下方に位置するように決定する。
 そして、フロー位置計算部203は、ステップS402で特定した2つのプロセスと、分岐ノード007とを接続するコネクタの位置を特定する(ステップS408)。
 この表示位置調整処理(並接接続)を実行した結果のフローチャートを図21に、そのパーツ情報テーブル300を図22に示す。
 なお、図22のパーツ情報テーブル300において、追加された2つのコネクタである、コネクタ008とコネクタ009の重心位置308を、各コネクタの線を直角に曲げた角に位置するように設定している。これは、ユーザにより既存のプロセスの下方に新しいパーツが追加されたとき、フロー位置計算部203が、角の位置から計算することで、左右均等、上下均等の位置計算を容易にするためである。ただし、これは一例にすぎず、本来の重心位置の計算値を設定してもよく、パーツの配置を整理し、左右均等、上下均等の位置計算が可能であればよい。
 このようにすることで、本実施形態に係るフローチャート描画装置1によれば、ユーザが既存のプロセスに、新たなプロセスを重ねることにより、並接接続の処理を実行でき、各パーツのレイアウトについて微調整等の追加の操作を行うことなく、フローチャートの表示位置を決定し描画させることができる。
 ≪ノードグループ整形処理≫
 次に、図4および図15のステップS109で実行されるノードグループ整形処理について、分岐ノードを含む既存のフローチャートに、並接接続の処理を行う実施例を用いて説明する。本実施例では、図23に示すように、分岐ノード(分岐ノードE003)を含む既存のフローチャートのプロセスA007に、新たにプロセスC012を重ねる並接接続の操作がユーザにより行われるものとして説明する。
 まず、図15に示した本実施形態に係るフローチャート描画装置1の処理手順のステップS101において、ノードグループの編成を行う。図23の例においては、分岐ノードE003を境にしたパーツの集合をノードグループ309として破線で示している。このノードグループ309の編成の結果を、図24のパーツ情報テーブル300に示す。このパーツ情報テーブル300は、分岐ノードE003を境に、「N1」「N2」「N3」の3つのノードグループ309に分けられる。
 そして、図15のステップS103において、ユーザによる入力装置2の操作により、データ入力部201が、新たに追加されるパーツ(プロセスC012)の入力を受け付ける。続いて、パーツ情報管理部202が、受け付けたプロセスC012の情報を、パーツ情報テーブル300に記憶する。そして、図15のステップS301~S305の処理を行い、表示位置調整処理(並接接続)を実行する。なお、この並接接続の表示位置調整(ステップS305)は、入力されたパーツ(プロセスC012)と重なる既存パーツ(プロセスA007)が属するノードグループ(N2)内で行う。
 次に、図15のステップS109におけるノードグループ整形処理を具体的に説明する。図25は、図15のステップS305までの表示位置調整処理(並接接続)を終えた時点でのフローチャートを仮に表示した図である。図25に示すように、プロセスC012を含むノードグループ「N2」を示す矩形と、ノードグループ「N3」を示す矩形とが、重なったものとなっている。この状態では、ノードグループ「N2」のコネクタ015およびプロセスC012と、ノードグループ「N3」のプロセスB011との距離が近い。よって、今後、プロセスC012やプロセスB011にノードを追加していく場合、それぞれのノードグループ内のパーツが、隣接するノードグループ内のパーツと重なってしまうことが予想させる。そのため、ノードグループ内の表示位置調整処理の後に、ノードグループ整形処理を行う。
 図26は、本実施形態に係るノードグループ整形処理の流れを示すフローチャートである。
 まず、フローチャート描画装置1のフロー位置計算部203は、ノードグループ毎に、そのノードグループに属するパーツをすべて含む最小の矩形を算出する(ステップS501)。この処理結果は、図25の破線で示す矩形のようになる。
 次に、フロー位置計算部203は、算出したそれぞれの矩形が、他のノードグループの矩形と重複しているか否かを判定する(ステップS502)。そして、フロー位置計算部203は、他のノードグループの矩形と重複していない場合には(ステップS502→No)、次にステップS504に進む。
 一方、算出した矩形と重複している場合には(ステップS502→Yes)、フロー位置計算部203は、ノードグループを区切っている分岐ノードを基準にして、矩形の移動距離を決定する(ステップS503)。図25に示したように、分岐ノードをはさんで2つのノードグループが重なる場合は、一方のノードグループが、基準となる分岐ノードよりも他方のノードグループ側に配置しないようにすることで、ノードグループの矩形の重複を避ける。例えば、本実施例において、フロー位置計算部203は、左側のノードグループ「N2」を、分岐ノードE003のひし形の左端座標よりも左側に配置するように移動する。また、図25においては、分岐ノード003のひし形の左端に、ノードグループN2の矩形の右端を合わせるため、左側のノードグループ「N2」の距離を「50」左方に移動する。右側のノードグループ「N3」には、重複の可能性はないが、分岐ノード003を支点として左右対称に整形するため、ノードグループ「N2」も右側に移動距離を「50」と設定する。
 次に、フロー位置計算部203は、描画領域内に収まるように各ノードグループを含むフローチャートを移動する(ステップS504)。例えば、図25に示すように、ノードグループ「N2」の左端のX座標が「40」であり、ステップS503において設定した移動距離である「50」左方に移動できない場合は、ノードグループのうち、最も左方のノードグループのパーツの位置を基準として他のパーツを移動する。
 そして、このノードグループ整形処理を終えた結果を図27に示す。このようにすることで、ユーザが既存のプロセスに、新たなプロセスを重ねるだけで、並接接続の処理と決定でき、追加の操作を行うことなく、ノードグループが重ならない位置座標にフローチャートを移動させ、描画させることができる。
 1   フローチャート描画装置
 2   入力装置
 3   表示装置
 10  CPU
 20  メモリ部
 30  記憶部
 40  入出力部
 41  入力インタフェース
 42  出力インタフェース
 200 フローチャート描画部
 201 データ入力部
 202 パーツ情報管理部
 203 フロー位置計算部
 204 フロー表示部
 300 パーツ情報テーブル(パーツ情報)

Claims (7)

  1.  フローチャートを構成する、複数のノードと前記複数のノード間を接続し前記ノードの処理手順を示すコネクタとの表示位置を調整し、表示装置に表示させるフローチャート描画装置であって、
     前記ノードおよび前記コネクタの前記表示位置を示す座標情報、並びに、前記ノードと前記コネクタとの接続情報を含むパーツ情報が記憶される記憶部と、
     入力装置から前記フローチャートに追加されるノードに関する情報の入力を受け付けるデータ入力部と、
     前記入力されたノードの表示位置と、前記フローチャートを構成する前記コネクタの表示位置とが重複するか否かを前記パーツ情報に基づき判定し、前記入力されたノードが前記コネクタと重複すると判定した場合に、前記重複したコネクタと接続する上位のノードと下位のノードとの間に、前記入力されたノードを挿入するように、前記ノード間の接続関係を決定し、
     前記入力されたノードと前記上位のノードとを接続するコネクタ、および前記入力されたノードと前記下位のノードとを接続するコネクタを、前記フローチャートの前記パーツ情報に新たに設定するパーツ情報管理部と、
     前記上位のノードの表示位置を基準として、前記入力されたノード、前記下位のノード、前記入力されたノードと前記上位のノードとを接続するコネクタ、および、前記入力されたノードと前記下位のノードとを接続するコネクタの表示位置を決定するフロー位置計算部と、
     前記決定した表示位置に基づき、前記フローチャートを前記表示装置に表示させるフロー表示部と、
     を備えることを特徴とするフローチャート描画装置。
  2.  前記パーツ情報管理部は、
     前記入力されたノードの表示位置と、前記フローチャートを構成する前記ノードの表示位置とが重複するか否かを前記パーツ情報に基づき判定し、前記入力されたノードが前記ノードと重複すると判定した場合に、処理のフローを分岐させる分岐ノードを、前記フローチャートの前記パーツ情報に新たに設定し、前記新たに設定した分岐ノードの分岐先として、前記入力されたノードおよび前記重複したノードを設定し、
     前記フロー位置計算部は、
     前記設定した分岐ノードを基準として、前記入力されたノードおよび前記重複したノードを均等に配置するように表示位置を決定すること
     を特徴とする請求の範囲第1項に記載のフローチャート描画装置。
  3.  前記フロー位置計算部は、
     前記分岐ノードの分岐先となる、当該分岐ノードの下位に位置する前記ノードおよび前記コネクタの集合それぞれをノードグループとして設定し、前記ノードグループを構成する各ノードおよび各コネクタの表示位置の前記座標情報を前記パーツ情報から取得し、前記ノードグループを構成する各ノードおよび各コネクタを含む最小の矩形を、前記ノードグループそれぞれについて計算し、
     前記計算したノードグループの矩形が他のノードグループの矩形と重複する場合に、前記分岐ノードの表示位置を基準として、前記重複した前記ノードグループの表示位置を変更すること
     を特徴とする請求の範囲第2項に記載のフローチャート描画装置。
  4.  フローチャートを構成する、複数のノードと前記複数のノード間を接続し前記ノードの処理手順を示すコネクタとの表示位置を調整し、表示装置に表示させるフローチャート描画装置のフローチャート描画方法であって、
     前記フローチャート描画装置は、
     前記ノードおよび前記コネクタの前記表示位置を示す座標情報、並びに、前記ノードと前記コネクタとの接続情報を含むパーツ情報が記憶される記憶部を備えており、
     入力装置から前記フローチャートに追加されるノードに関する情報の入力を受け付けるステップと、
     前記入力されたノードの表示位置と、前記フローチャートを構成する前記コネクタの表示位置とが重複するか否かを前記パーツ情報に基づき判定し、前記入力されたノードが前記コネクタと重複すると判定した場合に、前記重複したコネクタと接続する上位のノードと下位のノードとの間に、前記入力されたノードを挿入するように、前記ノード間の接続関係を決定するステップと、
     前記入力されたノードと前記上位のノードとを接続するコネクタ、および前記入力されたノードと前記下位のノードとを接続するコネクタを、前記フローチャートの前記パーツ情報に新たに設定するステップと、
     前記上位のノードの表示位置を基準として、前記入力されたノード、前記下位のノード、前記入力されたノードと前記上位のノードとを接続するコネクタ、および、前記入力されたノードと前記下位のノードとを接続するコネクタの表示位置を決定するステップと、
     前記決定した表示位置に基づき、前記フローチャートを前記表示装置に表示させるステップと、
     を実行することを特徴とするフローチャート描画方法。
  5.  前記入力されたノードの表示位置と、前記フローチャートを構成する前記ノードの表示位置とが重複するか否かを前記パーツ情報に基づき判定し、前記入力されたノードが前記ノードと重複すると判定した場合に、処理のフローを分岐させる分岐ノードを、前記フローチャートの前記パーツ情報に新たに設定し、前記新たに設定した分岐ノードの分岐先として、前記入力されたノードおよび前記重複したノードを設定するステップと、
     前記設定した分岐ノードを基準として、前記入力されたノードおよび前記重複したノードを均等に配置するように表示位置を決定するステップと、
     をさらに実行することを特徴とする請求の範囲第4項に記載のフローチャート描画方法。
  6.  前記分岐ノードの分岐先となる、当該分岐ノードの下位に位置する前記ノードおよび前記コネクタの集合それぞれをノードグループとして設定し、前記ノードグループを構成する各ノードおよび各コネクタの表示位置の前記座標情報を前記パーツ情報から取得し、前記ノードグループを構成する各ノードおよび各コネクタを含む最小の矩形を、前記ノードグループそれぞれについて計算し、
     前記計算したノードグループの矩形が他のノードグループの矩形と重複する場合に、前記分岐ノードの表示位置を基準として、前記重複した前記ノードグループの表示位置を変更すること
     を特徴とする請求の範囲第5項に記載のフローチャート描画方法。
  7.  請求の範囲第4項ないし請求の範囲第6項のいずれか1項に記載のフローチャート描画方法をコンピュータの実行させるためのプログラム。
PCT/JP2011/053396 2011-01-14 2011-02-17 フローチャート描画装置、フローチャート描画方法およびプログラム WO2012096001A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/991,300 US20130278638A1 (en) 2011-01-14 2011-02-17 Flowchart drawing apparatus, flowchart drawing method and program
JP2012552616A JP5564579B2 (ja) 2011-01-14 2011-02-17 フローチャート描画装置、フローチャート描画方法およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-005558 2011-01-14
JP2011005558 2011-01-14

Publications (1)

Publication Number Publication Date
WO2012096001A1 true WO2012096001A1 (ja) 2012-07-19

Family

ID=46506921

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/053396 WO2012096001A1 (ja) 2011-01-14 2011-02-17 フローチャート描画装置、フローチャート描画方法およびプログラム

Country Status (3)

Country Link
US (1) US20130278638A1 (ja)
JP (1) JP5564579B2 (ja)
WO (1) WO2012096001A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015095214A (ja) * 2013-11-14 2015-05-18 損害保険ジャパン日本興亜株式会社 業務プロセス生成システム、業務プロセス生成方法、情報処理装置、その制御方法と制御プログラム、アプリケーションプログラム、および、プロセスフロー描画プログラム
JP2015138314A (ja) * 2014-01-21 2015-07-30 富士通株式会社 判定プログラム,判定装置,判定方法
JP2016115017A (ja) * 2014-12-12 2016-06-23 日本電信電話株式会社 フローチャート作成方法及びプログラム
CN112734353A (zh) * 2019-10-28 2021-04-30 北京国双科技有限公司 一种可视化流程动态多分支的布局方法和装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10157484B2 (en) * 2016-03-11 2018-12-18 International Business Machines Corporation Schema-driven object alignment
US11360463B2 (en) 2020-06-16 2022-06-14 Saudi Arabian Oil Company Dynamic online process flow diagraming
US20230343002A1 (en) * 2021-01-08 2023-10-26 Pricewaterhousecoopers Llp Automated flow chart generation and visualization system
CN112950744B (zh) * 2021-01-28 2024-02-27 深圳市兴海物联科技有限公司 可视化拖拽绘制流程图方法、装置、设备及存储介质
CN113421316B (zh) * 2021-06-30 2023-03-28 亿图软件(湖南)有限公司 连接线路径构建方法、装置、计算机设备及可读存储介质
CN116167365B (zh) * 2023-04-18 2023-06-30 安徽思高智能科技有限公司 一种基于表格模板的流程图生成方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296357A (ja) * 1998-04-08 1999-10-29 Oki Electric Ind Co Ltd フローチャート入力装置
JP2000276608A (ja) * 1999-03-29 2000-10-06 Fujitsu Ltd 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記憶媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2675606B1 (fr) * 1991-04-22 1993-07-16 France Telecom Procede de decompilation pour la realisation de graphes au moyen d'un ordinateur.
JP3790679B2 (ja) * 2001-04-06 2006-06-28 インターナショナル・ビジネス・マシーンズ・コーポレーション グラフデータ視覚化装置、グラフィックス作成方法、プログラム及び記憶媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296357A (ja) * 1998-04-08 1999-10-29 Oki Electric Ind Co Ltd フローチャート入力装置
JP2000276608A (ja) * 1999-03-29 2000-10-06 Fujitsu Ltd 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記憶媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015095214A (ja) * 2013-11-14 2015-05-18 損害保険ジャパン日本興亜株式会社 業務プロセス生成システム、業務プロセス生成方法、情報処理装置、その制御方法と制御プログラム、アプリケーションプログラム、および、プロセスフロー描画プログラム
JP2015138314A (ja) * 2014-01-21 2015-07-30 富士通株式会社 判定プログラム,判定装置,判定方法
JP2016115017A (ja) * 2014-12-12 2016-06-23 日本電信電話株式会社 フローチャート作成方法及びプログラム
CN112734353A (zh) * 2019-10-28 2021-04-30 北京国双科技有限公司 一种可视化流程动态多分支的布局方法和装置

Also Published As

Publication number Publication date
JPWO2012096001A1 (ja) 2014-06-09
US20130278638A1 (en) 2013-10-24
JP5564579B2 (ja) 2014-07-30

Similar Documents

Publication Publication Date Title
JP5564579B2 (ja) フローチャート描画装置、フローチャート描画方法およびプログラム
EP0640943B1 (en) Shape modeling apparatus and method
US20150294488A1 (en) Graph generating device, graph generating method and graph generating program
US8817028B2 (en) Creating dynamic sets to automatically arrange dimension annotations
US9552450B2 (en) Determining a user-specified location in a graphical user interface of an electronic design automation tool
US8166443B2 (en) Method of shield line placement for semiconductor integrated circuit, design apparatus for semiconductor integrated circuit, and design program for semiconductor integrated circuit
JP2010257317A (ja) レイアウト設計支援システム、その制御方法及び制御プログラム
KR101373442B1 (ko) 시퀀스 프로그램 작성 장치
US20060066610A1 (en) Method, device, and computer program product for displaying 3D grid in designing configuration model
CN112989737A (zh) 一种交互式模拟电路版图编辑方法及系统
CN104915053A (zh) 一种界面控件的位置确定方法和装置
US9536018B2 (en) Computer-implemented method of identifying a group of perforations
CN115510530A (zh) 一种CAD平面图纸自动化构建Revit三维模型的方法
CN115239846A (zh) 一种切割文件的可视化修改方法、装置及相关组件
US10706199B1 (en) Graphical user interface for interactive macro-cell placement
JP2012083883A (ja) 画面データ作成装置
JP2008090766A (ja) 形状モデル作成装置
JP2021033765A (ja) 加工プログラム生成支援装置
US11487911B1 (en) Systems and methods for providing incremental mid-surface for computer simulation
JP7253176B1 (ja) 構造部材設計方法、構造部材設計プログラム
CN106909721B (zh) 一种可编辑断面获取方法和装置
US11620417B1 (en) User interface for interactive skew group analysis
KR101245729B1 (ko) 로봇 작업 데이터 제공 장치 및 방법
KR101900776B1 (ko) 다중 슬라이스의 가시화를 위한 장치 및 그 방법
CN112364615A (zh) 一种Excel连线端点自动对齐方法及装置

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: 11855734

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012552616

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13991300

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11855734

Country of ref document: EP

Kind code of ref document: A1