WO2022130943A1 - モデリング支援方法、情報処理装置、及び、プログラム - Google Patents

モデリング支援方法、情報処理装置、及び、プログラム Download PDF

Info

Publication number
WO2022130943A1
WO2022130943A1 PCT/JP2021/043501 JP2021043501W WO2022130943A1 WO 2022130943 A1 WO2022130943 A1 WO 2022130943A1 JP 2021043501 W JP2021043501 W JP 2021043501W WO 2022130943 A1 WO2022130943 A1 WO 2022130943A1
Authority
WO
WIPO (PCT)
Prior art keywords
line
display device
input operation
displaying
control structure
Prior art date
Application number
PCT/JP2021/043501
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 カシオ計算機株式会社
Publication of WO2022130943A1 publication Critical patent/WO2022130943A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Definitions

  • the disclosure of this specification relates to modeling support methods, information processing devices, and programs.
  • the conventional programming language used for programming requires writing program code, and the hurdle is too high for beginners including elementary school students to learn programming for the first time.
  • branching and iteration are the basic control structures of a program as well as sequential.
  • the control structure is represented graphically, the graphical representation of branching and iteration is more complicated than that of sequential. Therefore, even in visual programming, GUI operations for realizing branching and repetition tend to be more complicated than those in sequence.
  • the explanation was made assuming a programming tool for visual programming, but similar problems can occur not only in the program implementation process but also in the design process. Therefore, the above-mentioned problems are common to all modeling tools including programming tools. Further, the above-mentioned problems in the modeling tool are not limited to the design of the program running on the computer, but may occur in the design of the entire processing flow including, for example, the business flow.
  • an object of one aspect of the present invention is to provide a technique for improving the operability of a modeling tool used for designing or programming a processing flow.
  • the modeling support method is a process performed by a computer for displaying on a display device a line on which one or more elements indicating a control structure, each of which is classified into sequential, branching, or iterative, can be arranged.
  • a computer for displaying on a display device a line on which one or more elements indicating a control structure, each of which is classified into sequential, branching, or iterative, can be arranged.
  • the process of detecting an input operation on the line or an element on the line displayed on the display device and the detected input operation include an operation in a direction intersecting the line, the branch or the branch or the element on the line is included.
  • the process includes displaying a new element indicating a control structure classified into the iteration on the display device.
  • the information processing apparatus includes one or more non-temporary computer-readable media including instructions and one or more processors that execute the instructions.
  • the instruction is configured to cause the one or more processors to perform an operation, where the operation is a line on which one or more elements can be placed, each representing a control structure classified as sequential, branching, or iterative.
  • the display device comprises displaying a new element on the line indicating a control structure classified into the branch or the iteration.
  • the program according to one aspect of the present invention causes a computer to display on a display device a line on which one or more elements can be arranged, indicating a control structure in which each is classified into sequential, branching, or iterative.
  • a computer to display on a display device a line on which one or more elements can be arranged, indicating a control structure in which each is classified into sequential, branching, or iterative.
  • the input operation is classified as the branch or the iteration on the line.
  • the process of displaying a new element indicating the control structure on the display device is executed.
  • the operability of the modeling tool can be improved.
  • the modeling tool means an application program that supports the modeling work performed by the user, and / or a computer on which the program operates. That is, the modeling tool is at least one of software, hardware, or a combination thereof that supports the modeling work.
  • the modeling tool is a desktop application program or an information processing device (hereinafter, also referred to as a user terminal) directly operated by a user in which the desktop application program is installed will be described as an example. ..
  • the modeling tool may be a web application program, or may be an information processing device different from the user terminal on which the web application program is deployed. That is, the modeling tool may provide a GUI on the web browser of the user terminal.
  • the modeling tool is a visual programming tool that converts a program represented graphically using elements (objects) such as figures into a text format program code (source code) and executes it.
  • objects elements
  • source code text format program code
  • the modeling tool is not limited to a programming tool that creates and executes source code, and may be, for example, a drawing tool that draws a flowchart of processing executed by a computer. Further, the modeling tool may be used as a drawing tool for drawing a business flow.
  • FIG. 1 is an external view of the information processing apparatus 10 according to the present embodiment.
  • FIG. 2 is a hardware configuration diagram of the information processing apparatus 10 according to the present embodiment.
  • the information processing apparatus 10 is, for example, a tablet terminal provided with a touch panel display, and is a computer in which a program for visual programming is installed.
  • the information processing device 10 may be a touch device having a touch panel display, and is not limited to a tablet terminal.
  • the information processing device 10 may be, for example, a laptop computer, a smartphone, an electronic dictionary, or the like.
  • the present invention is not limited to a mobile terminal, and may be, for example, a table-type computer in which a touch panel display is embedded in a table.
  • the information processing device 10 includes one or more processors 1, one or more storage devices 2, an input device 3, a display device 4, and a communication device 5. Further, in the information processing apparatus 10, they are connected through the bus 6.
  • the input device 3 and the display device 4 constitute a touch panel display, and are arranged so as to overlap each other as shown in FIG.
  • Each of the one or more processors 1 is hardware including, for example, a CPU (Central Processing Unit), and executes a program 2a stored in the storage device 2.
  • the CPU includes a control device, an arithmetic unit, a register, a cache memory, and the like, and further includes an interface with another device and the like.
  • One or more processors 1 may include a GPU (Graphics processing unit), an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), a DSP (Digital Sensor), etc.
  • Each of the one or more storage devices 2 is a non-temporary computer-readable medium, for example, an arbitrary semiconductor memory.
  • the one or more storage devices 2 include a volatile memory such as a RAM (Random Access Memory), a non-volatile memory such as a ROM (Read Only Memory), and a flash memory. Further, the storage device 2 may include a magnetic storage device, an optical storage device, and other types of storage devices.
  • At least one of the one or more storage devices 2 contains the program 2a.
  • Program 2a is a visual programming tool and includes instructions for programming support processing described later. Further, the instructions included in the program 2a are configured to cause one or more processors 1 to execute a predetermined operation.
  • the input device 3 is a device directly operated by the user.
  • the input device 3 is a touch sensor constituting a touch panel display.
  • the detection method of the touch sensor is not particularly limited. For example, any detection method such as a resistance film method, a capacitance method, an electromagnetic induction method, an ultrasonic surface acoustic wave method, and an infrared method can be adopted.
  • the display device 4 is, for example, a liquid crystal display, an organic EL display, or the like, but may be another type of display.
  • the communication device 5 is a device for communicating with an external device.
  • the communication device 5 is, for example, a wireless communication device such as a Wi-Fi module.
  • the visual programming performed by the user using the information processing device 10 configured as described above is to create a program by arranging the elements showing the control structure of the programming on the screen.
  • the programming support process performed by the information processing apparatus 10 controls the screen display according to the input operation of the user when the visual programming is performed.
  • FIG. 3 is a flowchart showing an example of programming support processing performed by the information processing apparatus 10.
  • FIG. 4 is a diagram showing a configuration example of a screen displayed on the information processing apparatus 10.
  • the programming support process shown in FIG. 3 is an example of the modeling support process, and is started by executing an instruction included in the program 2a stored in the storage device 2 by one or more processors 1.
  • the processor 1 causes the display device 4 to display a line on which one or more elements indicating a control structure, each of which is classified into sequential, branching, or repeating, can be arranged (step S1).
  • step S1 for example, when the user taps the software button described as “New” in the area 12, the processor 1 causes the line L to be displayed in the area 12 of the display device 4 shown in FIG.
  • Area 12 is a programming area in which a program designed by a user is expressed using a graphic.
  • the line L displayed in the region 12 shows the flow of processing of the program from one end of the line L described as “START” to the other end of the line L described as “END”.
  • Elements indicating the control structure displayed in the area 11 can be selectively arranged on the line L according to the operation of the user.
  • an element indicating a control structure classified into sequential, branching, or iterative will be simply referred to as a control element.
  • the processor 1 monitors the input operation to the input device 3. Then, when the input operation is performed, the processor 1 detects the input operation based on the output from the input device 3 (step S2). In step S2, the processor 1 detects the user's input operation based on the operation signal output by the input device 3 (touch sensor) in response to the input operation on the user's touch panel display.
  • step S3 When it is determined in step S3 that the input operation detected in step S2 is (1) an operation on the line L or a control element on the line L, and (2) includes an operation in a direction intersecting the line L. ,
  • the processor 1 causes the display device 4 to display a new control element classified as a branch or an iteration on the line L (steps S4 to S7, step S9).
  • the processor 1 detects an input operation on the line L or an element on the line L, and if the detected input operation includes an operation in a direction intersecting the line L, the processor 1 is classified as a branch or an iteration on the line L.
  • the new control element is displayed on the display device 4.
  • step S2 when the input operation detected in step S2 is a one-way operation in a direction intersecting the line L with respect to the line L or an element on the line (step S4: one direction), the processor 1 is on the line L.
  • a new control element (branch element) classified as a branch is displayed on the display device 4. More specifically, the processor 1 branches the line L (step S5), adds a branch element to the branch point (step S6), and updates the screen display (step S9).
  • the one-way operation is, for example, flicking, swiping, sliding, or the like.
  • step S2 when the input operation detected in step S2 is a bidirectional operation in a direction intersecting the line L with respect to the line L or an element on the line (step S4: bidirectional), the processor 1 classifies the input operation into iterations on the line L.
  • the new control element (repetition element) to be displayed is displayed on the display device 4. That is, the processor 1 adds a repeating element (step S7) and updates the screen display (step S9).
  • the bidirectional operation is, for example, a set of flicks in opposite directions, a set of swipes in opposite directions, a slide that draws a trajectory that folds back and forth in the middle, and the like.
  • step S4 arc straddling the line
  • the processor 1 is a new control element (repetition) classified as an iteration on the line L. Element) is displayed on the display device 4. That is, the processor 1 adds a repeating element (step S7) and updates the screen display (step S9).
  • step S3 determines whether the input operation detected in step S2 does not satisfy the operations (1) and (2) described later.
  • the processor 1 performs a process according to the input operation (step S8).
  • the screen display of the display device 4 is updated (step S9).
  • the input operation targeted in step S8 is not particularly limited, and may include, for example, taps, double taps, long taps, pinch-ins, pinch-outs, flicks, swipes, slides, and the like for the area 11 or the area 12. ..
  • the process corresponding to these input operations may include, for example, a process of displaying new control elements classified sequentially on the line L.
  • the processor 1 determines whether or not the end instruction has been input (step S10), and when it is determined that the end instruction has been input, the processor 1 ends the programming support process shown in FIG. On the other hand, if it is determined that the end instruction has not been input, the processor 1 repeats the processes of steps S2 to S9 until the end instruction is input.
  • the information processing apparatus 10 can add a control structure classified into branching and repetition to the program by intuitive and simple operation by executing the programming support process shown in FIG. 3 described above.
  • the operability of the programming tool is improved as compared with the conventional case, so that the user of the programming tool can concentrate on programming without interrupting thinking and can efficiently perform programming learning. ..
  • even beginners who are unfamiliar with programming and programming tools can operate it intuitively, so compared to conventional programming tools, there is less confusion about how to use programming tools. Therefore, it is possible to avoid a situation in which programming learning itself is abandoned at an initial stage due to difficulty in mastering programming tools.
  • FIG. 5 is a diagram for explaining an example of a method of adding an element showing a control structure.
  • FIG. 6 is a diagram for explaining an example of a method of setting element parameters.
  • FIG. 7 is a diagram for explaining an example of a method of changing the order of the elements showing the control structure.
  • a method of adding a control element to the region 12 will be described with reference to FIGS. 5 to 7.
  • the user When adding a control element, the user may long-tap on the line L as shown in FIG. 5, and the new control element 21 is added to the long-tapped position. Further, the type of the control element can be freely switched from any control element displayed in the area 11 by flicking the control element 21 added on the line L to the left or right.
  • control element may be added by dragging the control element displayed in the area 11 onto the line L and dropping it at the position to be added.
  • parameter settings for each control element can be performed by long-tapping the control element added on the line L.
  • the setting window 23 for parameter setting is displayed.
  • Parameters can be set for control elements by entering or selecting information in the items in the settings window 23.
  • the order of the control elements added on the line L can be changed later. For example, as shown in FIG. 7, tap the control element 25 to select it as a movement target. After that, the control element 25 selected as the movement target can be moved to a desired position by dragging and dropping the control element 25 at a desired position. For example, if the control elements are set to be aligned at regular intervals, the intervals between the control elements may be maintained by moving other control elements in accordance with the movement of the control element 25. .. In the example shown in FIG. 7, it is shown that each of the control elements 29 moves forward from the control element 26 due to the backward movement of the control element 25.
  • FIG. 8 is a diagram for explaining an example of a method of adding an element indicating a branch.
  • FIG. 9 is a diagram for explaining an example of a method of setting parameters of elements indicating branches.
  • FIG. 10 is a diagram for explaining an example of an operation method for branching.
  • FIG. 11 is a diagram for explaining another example of the operation method for branching.
  • the method of adding an arbitrary control element has been described, but hereinafter, a method peculiar to the case of adding a control element (branch element) classified into a branch will be described with reference to FIGS. 8 to 11. do.
  • the user When adding a branch element, as shown in FIG. 8, the user first taps and selects the control element 31 corresponding to the process to be executed only under specific conditions. After that, the selected control element 31 may be dragged and dropped or flicked in the direction intersecting the line L.
  • the operation on the control element 31 is not limited to drag and drop and flick, and may be a one-way operation in a direction intersecting the line L. Specifically, for example, it may be a swipe, a slide, or the like.
  • a new line L1 branched from the line L is added to the control element 31 on the line L1 as shown in FIG.
  • a branch element 32 is added as a new control element to the branch point where the line L branches to the line L1.
  • the parameter setting for the branch element can be performed by long-tapping the branch element 32 added on the line L. This point is the same as the case where the parameter is set for an arbitrary control element as described above in FIG.
  • the branch condition can be set in the setting window 33.
  • control element 34 corresponding to the process is dragged to branch the line (line L, line L1). ) Just drop it at the desired position above.
  • the position of another control element may be automatically adjusted by moving the control element 34.
  • FIG. 10 shows how a new control element 36 is added to the space secured by such an operation.
  • the flick may be programmed so that the branches merge at the end of the processing flow, and the merge position moves backward by one control element for each flick. You may. Further, by flicking the merging point toward the start end of the line L described as "START", the merging position may be moved forward by one control element for each flick.
  • FIG. 12 is a diagram for explaining another example of how to add an element indicating a branch.
  • FIG. 13 is a diagram for explaining an example of a method of adding elements indicating branches in a nested manner.
  • the control element branch element classified into a branch without selecting the control element while referring to FIGS. 12 and 13.
  • the user When adding a branch element without selecting a control element, the user first taps the line L to select it, as shown in FIG. After that, the line L may be dragged and dropped or flicked in the direction intersecting the line L.
  • the operation on the line L is not limited to drag and drop and flick, and may be a one-way operation in a direction intersecting the line L. Specifically, for example, it may be a swipe, a slide, or the like. Further, the operation for the line L may be a one-way operation performed after selecting the line L as described above, or a one-way operation performed so as to straddle the line L (for example, above the line L). Swipe operation from the area of to the lower area, etc.).
  • the processor 1 When the processor 1 detects a one-way operation in a direction intersecting the line L with respect to the line L, as shown in FIG. 12, the processor 1 adds a new line L2 branched from the line L and branches from the line L to the line L2.
  • a branch element 38 is added to the branch point as a new control element.
  • the user can add a branch element only by performing a one-way operation in the direction intersecting the line.
  • One-way operation in the direction of crossing a line is an operation that is easily recalled when imagining a branch from a series of processes, and even a beginner can intuitively grasp and memorize it as an operation for branching processes. It is easy to remain in. Therefore, according to the information processing apparatus 10, a more complicated program using branch elements can be easily assembled by intuitive operation without interrupting thinking.
  • FIG. 14 is a diagram for explaining an example of a method of adding an element indicating repetition.
  • FIG. 15 is a diagram for explaining an example of a method of setting parameters of elements indicating repetition.
  • FIG. 16 is a diagram for explaining another example of how to add an element indicating repetition.
  • a method peculiar to the case of adding a control element (repetition element) classified into an iteration will be described with reference to FIGS. 14 to 16.
  • the user may draw an arc so as to surround the control element 40 corresponding to the process to be repeatedly executed, as shown in FIG. As a result, an arc straddling the line L is drawn at least once.
  • the repeat element 41 and the repeat element 42 are lined as new control elements. Add on L.
  • the repeating element 41 and the repeating element 42 are added in front of and behind the control element 40 so as to sandwich the control element 40 indicating the process to be repeated.
  • the parameter setting for the repeating element can be performed by tapping or long tapping the repeating element 41 added on the line L. This point is the same as the case where the parameter is set for an arbitrary control element as described above in FIG. The number of iterations can be set in the setting window 43. Further, by setting the parameter "Block" to ON, as shown in FIG. 15, the iterative element (repetitive element 41, iterative element 42) and the control element 40 corresponding to the process to be repeatedly executed are combined into one element. Can be blocked into.
  • the positions of the start and end of the arc are not particularly limited.
  • an arc may be drawn from the region above the line L to the region below the line L, and as shown in FIG. 16, the region below the line L passes through the region above the line L. You may draw an arc down to the lower area.
  • an arc may be drawn from the region above the line L to the region above the region L through the region below the line L.
  • the user can add a repeating element only by performing an input operation so that the trajectory of the input operation draws an arc straddling the line.
  • the operation of drawing an arc in which the trajectory straddles the line is an operation that is easily recalled when imagining the repetition in which the processing is repeated, and even a beginner can intuitively grasp and remember it as an operation for the iterative processing. Easy to remain. Therefore, according to the information processing apparatus 10, a more complicated program using repetitive elements can be easily assembled by intuitive operation without interrupting thinking.
  • FIGS. 17 and 18 are diagrams for explaining yet another example of the method of adding an element indicating repetition.
  • an example of adding a repeating element when the locus of the detected input operation draws an arc straddling the line L has been shown, but in the following, the detected input operation is performed with reference to FIGS. 17 and 18.
  • An example of adding a repeating element to a line L or an element on the line L in a bidirectional operation in a direction intersecting the line L will be described.
  • the user may flick up and down on the left and right of the control element 40 corresponding to the process to be repeatedly executed, as shown in FIG. Further, as shown in FIG. 18, flicking may be performed up and down at the same position with respect to the line L.
  • flicking up and down at the same position as shown in FIG. 18, since there is no control element between the added repeating elements (repeating element 41, repeating element 42), after the repeating element is added, The desired control element (control element 46) may be moved between repeating elements by dragging and dropping.
  • a set of flicks may be performed in the order of up and down or in the order of bottom and top.
  • the user can add a repeating element only by performing a bidirectional operation in a direction intersecting the line.
  • Bidirectional operation in the direction of crossing the line is an operation that is easy to recall when imagining an iteration in which the process is repeated, and even a beginner can intuitively grasp and remember it as an operation for iterative processing. Easy to remain. Therefore, according to the information processing apparatus 10, a more complicated program using repetitive elements can be easily assembled by intuitive operation without interrupting thinking.
  • FIG. 19 is a diagram for explaining an example of an operation method for elements showing iterations created in a nested manner.
  • FIG. 15 shows an example of blocking an iterative element and a control element corresponding to a process to be repeatedly executed into one element.
  • the target to be blocked together with the iterative element is It may be a control element (control element 52), or may include a block of a control element and a repeating element (element 56).
  • the element 56 in which the elements 51 to the element 53 are blocked can be displayed with an arbitrary name
  • the element 57 in which the element 59 to the element 55 is blocked can also be similarly given an arbitrary name. It is possible to display with. By changing the name of the blocked element to an appropriate name indicating the processing content, the processing content performed by that element can be recognized at a glance.
  • the information processing device 10 having a built-in touch panel display is illustrated, but the information processing device that executes a program to realize the modeling support as described above is connected to the touch panel display by wire or wirelessly.
  • the touch panel display may be a desktop computer.
  • the input device 3 is a touch sensor constituting the touch panel has been described as an example, but the input device 3 does not necessarily have to be a touch sensor.
  • an information processing device including a keyboard as an input device will be described.
  • FIG. 20 is an external view of the information processing apparatus 60 according to the present embodiment.
  • the information processing apparatus 60 is, for example, a laptop computer in which a program for visual programming is installed.
  • the information processing device 60 includes a display device 61 and an input device 62.
  • the information processing device 60 is different from the information processing device 10 in that the display device 61 is not a touch panel display but the input device 62 is a keyboard. That is, the information processing device 60 differs from the information processing device 10 in that visual programming is performed by operating the keyboard, but other configurations include, for example, one or more processors and one or more storage devices 2.
  • the points to be provided are the same as those of the information processing apparatus 10.
  • FIG. 21 is a diagram for explaining an example of a method of adding an element indicating a branch.
  • FIG. 22 is a diagram for explaining an example of a method of adding an element indicating repetition.
  • any control element including branching and repetition can be added to the program by a simple operation.
  • a method of adding a branching element and a repeating element to the region 12 will be described with reference to FIGS. 21 and 22.
  • the user When adding a branch element, as shown in FIG. 21, the user first selects a control element corresponding to the process to be executed only under specific conditions by using the cross key 80 and the selection key 90. For example, if it is desired to execute the process corresponding to the control element 72 only under specific conditions, the cursor 70 is moved from the control element 71 to the control element 72 with the right key of the cross key 80, and further, the selection key 90 is used. Press the enter key to select the control element 72.
  • a branch element is added using the cross key 80.
  • the down key of the cross key 80 is pressed.
  • a new line L1 branched from the line L is added, the control element 72 is displayed on the line L1, and a new control is performed at the branch point branching from the line L to the line L1.
  • a branch element 73 is added as an element.
  • FIG. 21 shows an example of adding a branch element with the lower key
  • the branch element may be added by pressing the upper key. That is, one-way operation in the direction intersecting the line L may be performed.
  • the user when adding an iterative element, as shown in FIG. 22, the user first selects a control element corresponding to the process to be repeatedly executed by using the cross key 80 and the selection key 90. For example, if it is desired to repeatedly execute the process corresponding to the control element 72, move the cursor 70 from the control element 71 to the control element 72 with the right key of the cross key 80, and further press the enter key of the selection key 90. And select the control element 72.
  • a repeating element using the cross key 80 For example, the up and down keys of the cross key 80 are pressed in order. As a result, as shown in FIG. 22, a repeating element 74 and a repeating element 75 are added on the line L as new control elements. The repeating element 74 and the repeating element 75 are added in front of and behind the control element 72 so as to sandwich the control element 72 indicating the process to be repeated.
  • FIG. 22 shows an example in which the up key and the down key are pressed in this order
  • the repeating element may be added by pressing the down key and the up key in this order. That is, bidirectional operation in the direction intersecting the line L may be performed.
  • the information processing apparatus 60 can also add a control structure classified into branching and repetition to the program by an intuitive and simple operation.
  • Appendix 2 In the modeling support method described in Appendix 1, The process of displaying the new element on the display device is the branching on the line when the detected input operation is a one-way operation in a direction intersecting the line with respect to the line or the element on the line. A modeling support method comprising a process of displaying the new element indicating a control structure classified into the above on the display device.
  • Appendix 3 In the modeling support method described in Appendix 1 or Appendix 2, The process of displaying the new element on the display device is the repetition on the line when the detected input operation is a bidirectional operation in a direction intersecting the line with respect to the line or the element on the line.
  • a modeling support method comprising a process of displaying the new element indicating a control structure classified into the above on the display device.
  • Appendix 4 In the modeling support method described in any one of Supplementary Note 1 to Supplementary Note 3, The modeling support method, wherein the computer detects the input operation based on an output from a touch sensor that detects the input operation to the display device.
  • Appendix 5 In the modeling support method described in Appendix 4, In the process of displaying the new element on the display device, when the detected trajectory of the input operation draws an arc straddling the line, the new element showing the control structure classified into the iteration is displayed on the line.
  • a modeling support method comprising a process of displaying on the display device.
  • One or more non-temporary computer-readable media containing instructions Includes one or more processors that execute the instructions.
  • the instruction is configured to cause the one or more processors to perform an operation.
  • the above operation is Displaying on the display device a line on which one or more elements can be placed indicating a control structure, each of which is classified as sequential, branching, or repeating.
  • the display device may display a new element indicating a control structure classified into the branch or the iteration on the line.
  • An information processing device characterized by including.
  • Processor 2 Memory 2a Program 3, 62 Input device 4, 61 Display device 10, 60 Information processing device 21, 22, 24-31, 34-36, 40, 45, 46, 52, 54, 71, 72 Control element 32 , 37-39, 73 Branching element 41, 42, 47-49, 51, 53, 55, 74, 75 Repeating element 44, 50, 56, 57 element L, L1-L3 line

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

コンピュータは、各々が順次、分岐、又は反復に分類される制御構造を示す1つ以上の要素が配置可能なラインを表示装置に表示させる処理(S1)と、表示装置に表示されたライン又はライン上の要素に対する入力操作を検出する処理(S2)と、検出した入力操作がラインに交差する方向の操作を含む場合、ライン上に分岐又は反復に分類される制御構造を示す新たな要素を表示装置に表示させる処理(S5、S7、S9)と、を行う。

Description

モデリング支援方法、情報処理装置、及び、プログラム
 本明細書の開示は、モデリング支援方法、情報処理装置、及び、プログラムに関する。
 論理的思考や課題解決力を養うことができるプログラミング教育の重要性は、現在、世界中で認識されている。近年では、日本でも小学校でプログラミング教育が必修化されるなど、若年層からのプログラミング教育の普及が推進されている。
 一方で、プログラミングに用いられる従来のプログラミング言語は、プログラムコードを記述する必要があり、小学生などを含む初学者が初めてプログラミングを学習するにはハードルが高すぎる。
 このため、初学者でも容易に学習可能なGUI(Graphical User Interface:グラフィカルユーザインターフェース)ベースの教育向けのプログラミング言語が様々に開発されている。このような教育向けのプログラミング言語は、一般にビジュアルプログラミング言語と呼ばれている。ビジュアルプログラミングでは、アルゴリズムが図形的に表現されるため、テキストでコードを記述する必要がなく、GUIを操作するだけでプログラミングが可能である。ビジュアルプログラミングに関連する技術は、例えば、特許文献1に記載されている。
日本国特開平9-258971号公報
 ところで、分岐と反復は、順次と同様にプログラムの基本的な制御構造である。制御構造を図形的に表現する場合、分岐と反復の図形的表現は、順次のそれよりも複雑になる。従って、ビジュアルプログラミングにおいても、分岐、反復を実現するためのGUI操作は、順次のそれに比べて煩雑なものと成りがちである。
 煩雑な操作は、操作自体に注意が行ってしまい、アルゴリズムを検討する思考の中断を招きやすい。このため、ビジュアルプログラミングにおいて、特に、分岐と反復について、思考の中断を招くことなく直感的な操作でプログラミングを可能とする技術的改善が求められている。
 なお、以上では、ビジュアルプログラミング用のプログラミングツールを想定して説明したが、同様の課題は、プログラムの実装工程に限らず設計工程でも生じ得る。このため、上記の課題は、プログラミングツールを含むモデリングツール全般において共通した課題である。また、モデリングツールにおける上記の課題は、コンピュータ上で動作するプログラムの設計に限らず、例えば業務フローなどを含む、処理フロー全般の設計において生じ得る。
 以上のような実情を踏まえ、本発明の一側面に係る目的は、処理フローの設計又はプログラミングに用いられるモデリングツールの操作性を改善する技術を提供することである。
 本発明の一態様に係るモデリング支援方法は、コンピュータが行う、各々が順次、分岐、又は反復に分類される制御構造を示す1つ以上の要素が配置可能なラインを表示装置に表示させる処理と、前記表示装置に表示された前記ライン又は前記ライン上の要素に対する入力操作を検出する処理と、検出した前記入力操作が前記ラインに交差する方向の操作を含む場合、前記ライン上に前記分岐又は前記反復に分類される制御構造を示す新たな要素を前記表示装置に表示させる処理と、を含む。
 本発明の一態様に係る情報処理装置は、命令を含む1つ以上の非一時的なコンピュータ読取可能媒体と、前記命令を実行する1つ以上のプロセッサと、を含む。前記命令は、前記1つ以上のプロセッサに動作を実行させるよう構成され、前記動作は、各々が順次、分岐、又は反復に分類される制御構造を示す1つ以上の要素が配置可能なラインを表示装置に表示させることと、前記表示装置に表示された前記ライン又は前記ライン上の要素に対する入力操作を検出することと、検出した前記入力操作が前記ラインに交差する方向の入力操作である場合、前記ライン上に前記分岐又は前記反復に分類される制御構造を示す新たな要素を前記表示装置に表示させることと、を含む。
 本発明の一態様に係るプログラムは、コンピュータに、各々が順次、分岐、又は反復に分類される制御構造を示す、1つ以上の要素が配置可能なラインを表示装置に表示させ、前記表示装置に表示された前記ライン又は前記ライン上の要素に対する入力操作を検出し、検出した前記入力操作が前記ラインに交差する方向の入力操作である場合、前記ライン上に前記分岐又は前記反復に分類される制御構造を示す新たな要素を前記表示装置に表示させる処理を実行させる。
 上記の態様によれば、モデリングツールの操作性を改善することができる。
第1の実施形態に係る情報処理装置10の外観図である。 第1の実施形態に係る情報処理装置10のハードウェア構成図である。 情報処理装置10が行うプログラミング支援処理の一例を示すフローチャートである。 情報処理装置10に表示される画面の構成例を示した図である。 制御構造を示す要素の追加方法の一例を説明するための図である。 要素のパラメータの設定方法の一例を説明するための図である。 制御構造を示す要素の並び順の変更方法の一例を説明するための図である。 分岐を示す要素の追加方法の一例を説明するための図である。 分岐を示す要素のパラメータの設定方法の一例を説明するための図である。 分岐に対する操作方法の一例を説明するための図である。 分岐に対する操作方法の別の例を説明するための図である。 分岐を示す要素の追加方法の別の例を説明するための図である。 分岐を示す要素を入れ子状に追加する方法の一例を説明するための図である。 反復を示す要素の追加方法の一例を説明するための図である。 反復を示す要素のパラメータの設定方法の一例を説明するための図である。 反復を示す要素の追加方法の別の例を説明するための図である。 反復を示す要素の追加方法の更に別の例を説明するための図である。 反復を示す要素の追加方法の更に別の例を説明するための図である。 入れ子状に作成された反復を示す要素に対する操作方法の一例を説明するための図である。 第2の実施形態に係る情報処理装置60の外観図である。 分岐を示す要素の追加方法の一例を説明するための図である。 反復を示す要素の追加方法の一例を説明するための図である。
 以下、モデリングツールによって提供されるGUIを具体的に例示しながら、本発明の実施形態に係るモデリング支援方法、情報処理装置、及び、プログラムについて説明する。なお、本明細書において、モデリングツールとは、利用者が行うモデリング作業を支援するアプリケーションプログラム、及び/又は、そのプログラムが動作するコンピュータのことを意味する。即ち、モデリングツールは、モデリング作業を支援するソフトウェア、ハードウェア、又は、それらの組み合わせのうちの少なくとも1つである。
 本明細書では、モデリングツールが、デスクトップアプリケーションプログラム、又は、デスクトップアプリケーションプログラムがインストールされている利用者が直接操作する情報処理装置(以降、利用者端末とも記す。)である場合を例に説明する。ただし、モデリングツールは、ウェブアプリケーションプログラムであってもよく、ウェブアプリケーションプログラムがデプロイされた、利用者端末とは異なる情報処理装置であってもよい。即ち、モデリングツールは、利用者端末のウェブブラウザ上にGUIを提供してもよい。
 また、本明細書では、モデリングツールが、図形などの要素(オブジェクト)を用いてグラフィカルに表現されたプログラムをテキスト形式のプログラムコード(ソースコード)に変換して実行するビジュアルプログラミングツールである場合を例に説明する。ただし、モデリングツールは、ソースコードを作成して実行するプログラミングツールに限らず、例えば、コンピュータで実行される処理のフローチャートなどを描く描画ツールであってもよい。また、モデリングツールは、業務フローを描く描画ツールとして用いられてもよい。
[第1の実施形態]
 図1は、本実施形態に係る情報処理装置10の外観図である。図2は、本実施形態に係る情報処理装置10のハードウェア構成図である。情報処理装置10は、図1に示すように、例えば、タッチパネルディスプレイを備えたタブレット端末であり、ビジュアルプログラミングのためのプログラムがインストールされたコンピュータである。
 情報処理装置10は、タッチパネルディスプレイを有するタッチデバイスであればよく、タブレット端末に限らない。情報処理装置10は、例えば、ラップトップ型のコンピュータ、スマートフォン、電子辞書などであってもよい。また、モバイル端末に限らず、例えば、テーブルにタッチパネルディスプレイが埋め込まれたテーブル型のコンピュータなどであってもよい。
 情報処理装置10は、図2に示すように、1つ以上のプロセッサ1と、1つ以上の記憶装置2と、入力装置3と、表示装置4と、通信装置5を備えている。また、情報処理装置10では、それらはバス6を通じて接続されている。入力装置3と表示装置4は、タッチパネルディスプレイを構成し、図1に示すように、互いに重なって配置されている。
 1つ以上のプロセッサ1のそれぞれは、例えば、CPU(Central Processing Unit)などを含むハードウェアであり、記憶装置2に記憶されているプログラム2aを実行する。なお、CPUには、制御装置、演算装置、レジスタ、キャシュメモリなどが含まれ、さらに、他の装置とのインタフェースなどが含まれている。1つ以上のプロセッサ1には、GPU(Graphics processing unit)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、DSP(Digital Signal Processor)などが含まれてもよい。
 1つ以上の記憶装置2のそれぞれは、非一時的なコンピュータ読取可能媒体であり、例えば、任意の半導体メモリである。1つ以上の記憶装置2は、RAM(Random Access Memory)などの揮発性メモリ、ROM(Read Only Memory)、フラッシュメモリなどの不揮発性メモリを含んでいる。また、記憶装置2は、磁気記憶装置、光学記憶装置、その他の種類の記憶装置を含んでもよい。
 1つ以上の記憶装置2の少なくとも1つには、プログラム2aが含まれている。プログラム2aは、ビジュアルプログラミングツールであり、後述するプログラミング支援処理のための命令を含んでいる。また、プログラム2aに含まれる命令は、1つ以上のプロセッサ1に所定の動作を実行させるように構成されている。
 入力装置3は、利用者が直接操作する装置である。具体的には、入力装置3は、タッチパネルディスプレイを構成するタッチセンサである。タッチセンサの検出方式は、特に限定しない。例えば、抵抗膜方式、静電容量方式、電磁誘導方式、超音波表面弾性波方式、赤外線方式などの任意の検出方式が採用し得る。
 表示装置4は、例えば、液晶ディスプレイ、有機ELディスプレイなどであるが、他の種類のディスプレイであってもよい。通信装置5は、外部機器と通信するための装置である。通信装置5は、例えば、Wi-Fiモジュールなどの無線通信装置である。
 以上のように構成された情報処理装置10を用いて利用者が行うビジュアルプログラミングは、プログラミングの制御構造を示す要素を画面上に並べることでプログラムを作成するというものである。そして、情報処理装置10が行うプログラミング支援処理は、ビジュアルプログラミングが行われている際に、利用者の入力操作に従って画面表示を制御するものである。
 図3は、情報処理装置10が行うプログラミング支援処理の一例を示すフローチャートである。図4は、情報処理装置10に表示される画面の構成例を示した図である。以下、情報処理装置10を用いて実施されるプログラミング支援方法について、図3及び図4を参照しながら概説する。なお、図3に示すプログラミング支援処理は、モデリング支援処理の一例であり、1つ以上のプロセッサ1が記憶装置2に格納されているプログラム2aに含まれる命令を実行することによって開始される。
 プロセッサ1は、まず、各々が順次、分岐、又は反復に分類される制御構造を示している1つ以上の要素が配置可能なラインを表示装置4に表示させる(ステップS1)。ステップS1では、例えば、利用者が領域12の“New”と記載されたソフトウェアボタンをタップすると、プロセッサ1は、図4に示す表示装置4の領域12にラインLを表示させる。領域12は、利用者によって設計されたプログラムが図形を用いて表現されるプログラミング領域である。領域12に表示されたラインLは、“START”と記載されたラインLの一端から“END”と記載されたラインLの他端に向かうプログラムの処理の流れを示している。ラインL上には、利用者の操作に応じて、領域11に表示されている制御構造を示す要素が選択的に配置可能である。なお、以降では、順次、分岐、又は反復に分類される制御構造を示す要素を、単に、制御要素とも記す。
 その後、プロセッサ1は、入力装置3への入力操作を監視する。そして、入力操作が行われると、プロセッサ1は、入力装置3からの出力に基づいて入力操作を検出する(ステップS2)。ステップS2では、利用者のタッチパネルディスプレイに対する入力操作に応じて入力装置3(タッチセンサ)が出力する操作信号に基づいて、プロセッサ1は、利用者の入力操作を検出する。
 ステップS2で検出した入力操作が(1)ラインL又はラインL上の制御要素に対する操作であって、且つ、(2)ラインLに交差する方向の操作を含む、とステップS3において判定された場合、プロセッサ1は、ラインL上に分岐又は反復に分類される新たな制御要素を表示装置4に表示させる(ステップS4からステップS7、ステップS9)。換言すると、プロセッサ1は、ラインL又はラインL上の要素に対する入力操作を検出し、検出した入力操作がラインLに交差する方向の操作を含む場合、ラインL上に分岐又は反復に分類される新たな制御要素を表示装置4に表示させる。
 具体的には、プロセッサ1は、ステップS2で検出した入力操作がラインLまたはライン上の要素に対するラインLに交差する方向の一方向操作である場合(ステップS4:一方向)、ラインL上に分岐に分類される新たな制御要素(分岐要素)を表示装置4に表示させる。さらに具体的には、プロセッサ1は、ラインLを分岐させるとともに(ステップS5)、分岐点に分岐要素を追加し(ステップS6)、画面表示を更新する(ステップS9)。なお、一方向操作は、例えば、フリック、スワイプ、スライドなどである。
 また、プロセッサ1は、ステップS2で検出した入力操作がラインLまたはライン上の要素に対するラインLに交差する方向の双方向操作である場合(ステップS4:双方向)、ラインL上に反復に分類される新たな制御要素(反復要素)を表示装置4に表示させる。つまり、プロセッサ1は、反復要素を追加し(ステップS7)、画面表示を更新する(ステップS9)。なお、双方向操作は、例えば、互いに反対向きの1組のフリック、互いに反対向きの1組のスワイプ、途中で折り返して往復するような軌跡を描くスライドなどである。
 また、プロセッサ1は、ステップS2で検出した入力操作の軌跡がラインLを跨る弧を描く場合も(ステップS4:ラインを跨る弧)、ラインL上に反復に分類される新たな制御要素(反復要素)を表示装置4に表示させる。つまり、プロセッサ1は、反復要素を追加し(ステップS7)、画面表示を更新する(ステップS9)。
 一方、ステップS2で検出した入力操作が後述する(1)、(2)を満たす操作でないとステップS3において判定された場合、プロセッサ1は、その入力操作に応じた処理を行い(ステップS8)、その後、表示装置4の画面表示を更新する(ステップS9)。なお、ステップS8で対象とする入力操作については特に限定しないが、例えば、領域11又は領域12に対するタップ、ダブルタップ、ロングタップ、ピンチイン、ピンチアウト、フリック、スワイプ、スライドなどの操作が含まれ得る。これらの入力操作に応じた処理には、例えば、順次に分類される新たな制御要素をラインL上に表示させる処理が含まれ得る。
 表示が更新されると、プロセッサ1は、終了指示が入力されたか判定し(ステップS10)、終了指示が入力された判定すると、プロセッサ1は、図3に示すプログラミング支援処理を終了する。一方、終了指示が入力されていないと判定すると、プロセッサ1は、終了指示が入力されるまでステップS2からステップS9の処理を繰り返す。
 情報処理装置10は、上述した図3に示すプログラミング支援処理を実行することで、直感的で且つシンプルな操作で分岐及び反復に分類される制御構造をプログラムに追加することができる。これにより、従来に比べてプログラミングツールの操作性が改善されるため、プログラミングツールの利用者は、思考の中断を招くことなくプログラミングに集中することが可能となり、効率よくプログラミング学習を行うことができる。また、プログラミングやプログラミングツールに不慣れな初学者であっても直感的に操作可能なため、従来のプログラミングツールに比べて、プログラミングツールの使い方がわからず戸惑うといったことも少なくなる。このため、プログラミングツールを使いこなすことが難しいことに起因して初期段階でプログラミング学習自体を断念してしまうといった事態を回避することができる。以上のように、情報処理装置10によれば、プログラミング学習の敷居を下げることが可能である。
 以下、図5から図19を参照しながら、情報処理装置10を用いて実施されるプログラミング支援方法について、さらに具体的に説明する。図5は、制御構造を示す要素の追加方法の一例を説明するための図である。図6は、要素のパラメータの設定方法の一例を説明するための図である。図7は、制御構造を示す要素の並び順の変更方法の一例を説明するための図である。まず、図5から図7を参照しながら、領域12に制御要素を追加する方法について説明する。
 制御要素を追加する場合、利用者は、図5に示すように、ラインL上をロングタップすればよく、新たな制御要素21は、ロングタップした位置に追加される。さらに、制御要素の種類は、ラインL上に追加された制御要素21を左右にフリックすることで、領域11に表示される任意の制御要素の中から自由に切り替えることができる。
 制御要素を追加する処理を繰り返すことで、図6に示すように、ラインLに複数の制御要素を並べて表示することができる。これにより、全体的なプログラムの骨格を作ることができる。例えば、図6に示すプログラムの場合であれば、入力処理(“Input”)、表示処理(“Disp”)、移動処理(“Move”)、待機処理(“Wait”)、移動処理(“Move”)、待機処理(“Wait”)、移動処理(“Move”)といった処理フローが表されている。
 なお、制御要素を追加する方法は、この方法に限らない。例えば、領域11に表示されている制御要素をラインL上までドラッグして、追加したい位置でドロップすることによって制御要素を追加してもよい。
 各制御要素に対するパラメータ設定は、図6に示すように、ラインL上に追加された制御要素をロングタップすることで行うことができる。制御要素をロングタップすることでパラメータ設定のための設定ウィンドウ23が表示される。設定ウィンドウ23内の項目に情報を入力又は選択することで、制御要素に対してパラメータを設定することができる。
 また、ラインL上に追加された制御要素の並び順は、後から変更することができる。例えば、図7に示すように、制御要素25をタップして移動対象として選択する。その後、移動対象として選択された制御要素25をドラッグし、所望の位置でドロップすることで、制御要素25を所望の位置へ移動させることができる。なお、例えば、制御要素が一定間隔で整列するように設定される場合であれば、制御要素25の移動に合わせて他の制御要素も移動することで、制御要素間の間隔を保ってもよい。図7に示す例では、制御要素25の後方への移動により、制御要素26から制御要素29のそれぞれが前方へ移動した様子が示されている。
 図8は、分岐を示す要素の追加方法の一例を説明するための図である。図9は、分岐を示す要素のパラメータの設定方法の一例を説明するための図である。図10は、分岐に対する操作方法の一例を説明するための図である。図11は、分岐に対する操作方法の別の例を説明するための図である。以上では、任意の制御要素を追加する方法について説明したが、以降では、図8から図11を参照しながら、分岐に分類される制御要素(分岐要素)を追加する場合に特有の方法について説明する。
 分岐要素を追加する場合、利用者は、図8に示すように、まず、特定の条件下でのみ実行させたい処理に対応する制御要素31をタップして選択する。その後、選択した制御要素31に対してラインLに交差する方向にドラッグ&ドロップ又はフリックすればよい。なお、制御要素31に対する操作は、ドラッグ&ドロップ、フリックに限らず、ラインLに交差する方向の一方向操作であればよい。具体的には、例えば、スワイプ、スライドなどであってもよい。
 プロセッサ1は、制御要素31に対するラインLに交差する方向の一方向操作を検出すると、図8に示すように、ラインLから分岐した新たなラインL1を追加してラインL1上に制御要素31を表示するとともに、ラインLからラインL1へ分岐する分岐点に、新たな制御要素として分岐要素32を追加する。
 分岐要素に対するパラメータ設定は、図9に示すように、ラインL上に追加された分岐要素32をロングタップすることで行うことができる。この点は、図6において上述したように、任意の制御要素に対してパラメータを設定する場合と同様である。なお、設定ウィンドウ33内では、分岐条件を設定可能である。
 また、特定の条件下でのみ実行させたい処理が他にも存在する場合には、図10に示すように、その処理に対応する制御要素34をドラッグし、分岐したライン(ラインL、ラインL1)上の所望の位置でドロップすればよい。この場合、制御要素34の移動により、他の制御要素(制御要素35など)の位置が自動的に調整されてもよい。
 また、特定の条件下でのみ実行させたい処理を配置するスペースが不足している場合には、図10に示すように、分岐したライン(ラインL、ラインL1)が合流する合流点をドラッグ&ドロップで移動させてスペースを確保してもよい。図10では、このような操作により確保されたスペースに新たな制御要素36を追加する様子が示されている。
 また、合流点を“END”と記載されたラインLの終端に向けてフリックすることで、分岐したラインの合流位置を調整可能であってもよい。例えば、図11に示すように、フリックによって、処理フローの最後で分岐が合流するようにプログラムされてもよく、また、1回のフリック毎に1つの制御要素分だけ合流位置が後方に移動してもよい。また、合流点を“START”と記載されたラインLの始端に向けてフリックすることで、1回フリック毎に1つの制御要素分だけ合流位置が前方に移動してもよい。
 図12は、分岐を示す要素の追加方法の別の例を説明するための図である。図13は、分岐を示す要素を入れ子状に追加する方法の一例を説明するための図である。以上では、制御要素を選択して処理を分岐させる方法を説明したが、以降では、図12及び図13を参照しながら、制御要素を選択することなく分岐に分類される制御要素(分岐要素)を追加する方法について説明する。
 制御要素を選択することなく分岐要素を追加する場合、利用者は、利用者は、図12に示すように、まず、ラインLをタップして選択する。その後、ラインLをラインLに交差する方向にドラッグ&ドロップ又はフリックすればよい。なお、ラインLに対する操作は、ドラッグ&ドロップ、フリックに限らず、ラインLに交差する方向の一方向操作であればよい。具体的には、例えば、スワイプ、スライドなどであってもよい。また、ラインLに対する操作は、上記のようにラインLを選択してから行う一方向操作であってもよく、又は、ラインLを跨ぐように行われる一方向操作(例えば、ラインLよりも上側の領域から下側の領域までのスワイプ操作など)であってもよい。
 プロセッサ1は、ラインLに対するラインLに交差する方向の一方向操作を検出すると、図12に示すように、ラインLから分岐した新たなラインL2を追加するとともに、ラインLからラインL2へ分岐する分岐点に、新たな制御要素として分岐要素38を追加する。
 ラインL2から更に処理を分岐させた場合には、利用者は、ラインL2をラインL2に交差する方向にドラッグ&ドロップ又はフリックすればよい。これにより、図13に示すように、ラインL2から分岐した新たなラインL3が追加されるとともに、ラインL2からラインL3へ分岐する分岐点に、新たな制御要素として分岐要素39が追加される。このように、ラインの分岐を繰り返すことで、複雑な条件分岐を簡単な操作でプログラムすることができる。
 このように、情報処理装置10では、利用者は、ラインに交差する方向の一方向操作を行うだけで分岐要素を追加することができる。ラインに交差する方向の一方向操作は、一連の処理からの分岐をイメージしたときに想起されやすい操作であり、処理を分岐するための操作として初学者であっても直感的に把握可能で記憶に残りやすい。従って、情報処理装置10によれば、分岐要素を用いたより複雑なプログラムを、思考を中断することなく直感的な操作によって容易に組み上げることができる。
 図14は、反復を示す要素の追加方法の一例を説明するための図である。図15は、反復を示す要素のパラメータの設定方法の一例を説明するための図である。図16は、反復を示す要素の追加方法の別の例を説明するための図である。以降では、図14から図16を参照しながら、反復に分類される制御要素(反復要素)を追加する場合に特有の方法について説明する。
 反復要素を追加する場合、利用者は、図14に示すように、繰り返し実行させたい処理に対応する制御要素40を囲むように円弧を描けばよい。これにより、少なくとも1回はラインLを跨る弧が描かれることになる。
 プロセッサ1は、利用者によって行われた入力操作の軌跡がラインLを跨る弧を描いていることを検出すると、図14に示すように、新たな制御要素として反復要素41、反復要素42をラインL上に追加する。反復要素41と反復要素42は、繰り返し対象の処理を示す制御要素40を挟むように、それぞれ制御要素40の前方、後方に追加される。
 反復要素に対するパラメータ設定は、図15に示すように、ラインL上に追加された反復要素41をタップ又はロングタップすることで行うことができる。この点は、図6において上述したように、任意の制御要素に対してパラメータを設定する場合と同様である。なお、設定ウィンドウ43内では、反復回数を設定可能である。また、パラメータ“Block”をONに設定することで、図15に示すように、反復要素(反復要素41、反復要素42)と、繰り返し実行する処理に対応する制御要素40と、を1つの要素にブロック化することができる。
 なお、円弧の始端と終端の位置は特に限定しない。例えば、図14に示すように、ラインLよりも上側の領域から下側の領域へ円弧を描いてもよく、図16に示すように、ラインLよりも下側の領域から上側の領域を通って下側の領域まで円弧を描いてもよい。また、図示しないが、ラインLよりも上側の領域から下側の領域を通って上側の領域まで円弧を描いてもよい。
 このように、情報処理装置10では、利用者は、入力操作の軌跡がラインを跨る弧を描くように入力操作を行うだけで反復要素を追加することができる。軌跡がラインを跨る弧を描く操作は、処理が繰り返し行われる反復をイメージしたときに想起されやすい操作であり、反復処理のための操作として初学者であっても直感的に把握可能で記憶に残りやすい。従って、情報処理装置10によれば、反復要素を用いたより複雑なプログラムを、思考を中断することなく直感的な操作によって容易に組み上げることができる。
 図17及び図18は、反復を示す要素の追加方法の更に別の例を説明するための図である。以上では、検出した入力操作の軌跡がラインLを跨る弧を描いている場合に反復要素を追加する例を示したが、以下では、図17及び図18を参照しながら、検出した入力操作がラインLまたはラインL上の要素に対するラインLに交差する方向の双方向操作である場合に反復要素を追加する例について説明する。
 反復要素を追加する場合、利用者は、図17に示すように、繰り返し実行させたい処理に対応する制御要素40の左右で、上下にフリックしてもよい。また、図18に示すように、ラインLに対して同じ位置で上下にフリックしてもよい。同じ位置で上下にフリックした場合には、図18に示すように、追加される反復要素(反復要素41、反復要素42)間に制御要素が存在しないため、反復要素が追加された後で、所望の制御要素(制御要素46)をドラッグ&ドロップで反復要素間に移動させてもよい。なお、1組のフリックは、上下の順に行われても、下上の順に行われてもよい。
 このように、情報処理装置10では、利用者は、ラインに交差する方向の双方向操作を行うだけで反復要素を追加することができる。ラインに交差する方向の双方向操作は、処理が繰り返し行われる反復をイメージしたときに想起されやすい操作であり、反復処理のための操作として初学者であっても直感的に把握可能で記憶に残りやすい。従って、情報処理装置10によれば、反復要素を用いたより複雑なプログラムを、思考を中断することなく直感的な操作によって容易に組み上げることができる。
 図19は、入れ子状に作成された反復を示す要素に対する操作方法の一例を説明するための図である。図15では、反復要素と、繰り返し実行する処理に対応する制御要素と、を1つの要素にブロック化する例を示したが、図19に示すように、反復要素とともにブロック化される対象は、制御要素(制御要素52)であってもよく、制御要素と反復要素とがブロック化したもの(要素56)が含まれてもよい。また、要素51から要素53がブロック化した要素56には、任意の名称を付けて表示することが可能であり、要素49から要素55がブロック化した要素57にも、同様に、任意の名称を付けて表示することが可能である。ブロック化した要素の名称を、処理内容を示す適切な名称に変更することで、その要素で行われる処理内容を一目で認識することができる。
 本実施形態では、タッチパネルディスプレイを内蔵した情報処理装置10を例示したが、上述したようなモデリング支援を実現するためにプログラムを実行する情報処理装置は、タッチパネルディスプレイと有線又は無線で接続される、例えば、デスクトップ型のコンピュータであってもよい。タッチパネルディスプレイを用いることで、キーボード操作に不慣れな利用者であっても容易にプログラミングを行うことが可能である。
[第2の実施形態]
 第1の実施形態では、入力装置3がタッチパネルを構成するタッチセンサである場合を例に説明したが、入力装置3は、必ずしもタッチセンサでなくてもよい。本実施形態では、キーボードを入力装置として備える情報処理装置について説明する。
 図20は、本実施形態に係る情報処理装置60の外観図である。情報処理装置60は、図20に示すように、例えば、ラップトップ型のコンピュータであり、ビジュアルプログラミングのためのプログラムがインストールされている。
 情報処理装置60は、表示装置61と、入力装置62を備えている。情報処理装置60は、表示装置61がタッチパネルディスプレイではなく、入力装置62がキーボードである点が、情報処理装置10とは異なっている。即ち、情報処理装置60では、キーボード操作によりビジュアルプログラミングが行われる点が、情報処理装置10とは異なるが、その他の構成は、例えば、1つ以上のプロセッサと1つ以上の記憶装置2などを備える点は、情報処理装置10と同様である。
 図21は、分岐を示す要素の追加方法の一例を説明するための図である。図22は、反復を示す要素の追加方法の一例を説明するための図である。情報処理装置60でも、情報処理装置10と同様に、簡単な操作で分岐及び反復を含む任意の制御要素をプログラムに追加することができる。以下、図21及び図22を参照しながら、領域12に分岐要素と反復要素を追加する方法について説明する。
 分岐要素を追加する場合、利用者は、図21に示すように、まず、特定の条件下でのみ実行させたい処理に対応する制御要素を、十字キー80と選択キー90を用いて選択する。例えば、制御要素72に対応する処理を特定の条件下でのみ実行させたい場合であれば、十字キー80の右キーでカーソル70を制御要素71から制御要素72に移し、さらに、選択キー90の決定キーを押下して制御要素72を選択する。
 その後、制御要素72が選択された状態で、十字キー80を用いて分岐要素を追加する。例えば、十字キー80の下キーを押下する。これにより、図21に示すように、ラインLから分岐した新たなラインL1が追加されラインL1上に制御要素72が表示されるとともに、ラインLからラインL1へ分岐する分岐点に、新たな制御要素として分岐要素73が追加される。
 なお、図21では、下キーで分岐要素を追加する例を示したが、分岐要素は上キーの押下によって追加されてもよい。即ち、ラインLに交差する方向の一方向操作が行われればよい。
 一方、反復要素を追加する場合、利用者は、図22に示すように、まず、繰り返し実行させたい処理に対応する制御要素を、十字キー80と選択キー90を用いて選択する。例えば、制御要素72に対応する処理を繰り返し実行させたい場合であれば、十字キー80の右キーでカーソル70を制御要素71から制御要素72に移し、さらに、選択キー90の決定キーを押下して制御要素72を選択する。
 その後、制御要素72が選択された状態で、十字キー80を用いて反復要素を追加する。例えば、十字キー80の上下キーを順番に押下する。これにより、図22に示すように、新たな制御要素として反復要素74、反復要素75がラインL上に追加される。反復要素74と反復要素75は、繰り返し対象の処理を示す制御要素72を挟むように、それぞれ制御要素72の前方、後方に追加される。
 なお、図22では、上キー、下キーの順に押下する例を示したが、反復要素は下キー、上キーの順に押下することによって追加されてもよい。即ち、ラインLに交差する方向の双方向操作が行われればよい。
 以上のように、情報処理装置60によっても、直感的で且つシンプルな操作で分岐及び反復に分類される制御構造をプログラムに追加することができる。
 上述した実施形態は、発明の理解を容易にするために具体例を示したものであり、本発明はこれらの実施形態に限定されるものではなく、上述の実施形態の各種変形形態および代替形態を包含するものとして理解されるべきである。例えば、各実施形態は、その趣旨および範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、上述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して、または実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。即ち、モデリング支援方法、情報処理装置、及び、プログラムは、特許請求の範囲の記載を逸脱しない範囲において、さまざまな変形、変更が可能である。
 以下、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[付記1]
 各々が順次、分岐、又は反復に分類される制御構造を示す1つ以上の要素が配置可能なラインを表示装置に表示させる処理と、
 前記表示装置に表示された前記ライン又は前記ライン上の要素に対する入力操作を検出する処理と、
 検出した前記入力操作が前記ラインに交差する方向の操作を含む場合、前記ライン上に前記分岐又は前記反復に分類される制御構造を示す新たな要素を前記表示装置に表示させる処理と、
をコンピュータが行うことを特徴とするモデリング支援方法。
[付記2]
 付記1に記載のモデリング支援方法において、
 前記新たな要素を前記表示装置に表示させる処理は、検出した前記入力操作が前記ラインまたは前記ライン上の前記要素に対する前記ラインに交差する方向の一方向操作である場合、前記ライン上に前記分岐に分類される制御構造を示す前記新たな要素を前記表示装置に表示させる処理、を含む
ことを特徴とするモデリング支援方法。
[付記3]
 付記1又は付記2に記載のモデリング支援方法において、
 前記新たな要素を前記表示装置に表示させる処理は、検出した前記入力操作が前記ラインまたは前記ライン上の前記要素に対する前記ラインに交差する方向の双方向操作である場合、前記ライン上に前記反復に分類される制御構造を示す前記新たな要素を前記表示装置に表示させる処理、を含む
ことを特徴とするモデリング支援方法。
[付記4]
 付記1乃至付記3のいずれか1つに記載のモデリング支援方法において、
 前記コンピュータは、前記表示装置への前記入力操作を検出するタッチセンサからの出力に基づいて前記入力操作を検出する
ことを特徴とするモデリング支援方法。
[付記5]
 付記4に記載のモデリング支援方法において、
 前記新たな要素を前記表示装置に表示させる処理は、検出した前記入力操作の軌跡が前記ラインを跨る弧を描く場合、前記ライン上に前記反復に分類される制御構造を示す前記新たな要素を前記表示装置に表示させる処理、を含む
ことを特徴とするモデリング支援方法。
[付記6]
 命令を含む1つ以上の非一時的なコンピュータ読取可能媒体と、
 前記命令を実行する1つ以上のプロセッサと、を含み、
 前記命令は、前記1つ以上のプロセッサに動作を実行させるよう構成され、
 前記動作は、
  各々が順次、分岐、又は反復に分類される制御構造を示す1つ以上の要素が配置可能なラインを表示装置に表示させることと、
  前記表示装置に表示された前記ライン又は前記ライン上の要素に対する入力操作を検出することと、
  検出した前記入力操作が前記ラインに交差する方向の入力操作である場合、前記ライン上に前記分岐又は前記反復に分類される制御構造を示す新たな要素を前記表示装置に表示させることと、を含む
ことを特徴とする情報処理装置。
[付記7]
 コンピュータに、
 各々が順次、分岐、又は反復に分類される制御構造を示す、1つ以上の要素が配置可能なラインを表示装置に表示させ、
 前記表示装置に表示された前記ライン又は前記ライン上の要素に対する入力操作を検出し、
 検出した前記入力操作が前記ラインに交差する方向の入力操作である場合、前記ライン上に前記分岐又は前記反復に分類される制御構造を示す新たな要素を前記表示装置に表示させる
処理を実行させることを特徴とするプログラム。
 本願は、2020年12月18日に出願された日本国特許出願第2020-210086号を基礎出願とする優先権を主張するものであり、当該基礎出願の内容は全て本願に取り込まれる。
 1 プロセッサ
 2 メモリ
 2a プログラム
 3、62 入力装置
 4、61 表示装置
 10、60 情報処理装置
 21、22、24-31、34-36、40、45、46、52、54、71、72 制御要素
 32、37-39、73 分岐要素
 41、42、47-49、51、53、55、74、75 反復要素
 44、50、56、57 要素
 L、L1-L3 ライン

Claims (7)

  1.  各々が順次、分岐、又は反復に分類される制御構造を示す1つ以上の要素が配置可能なラインを表示装置に表示させる処理と、
     前記表示装置に表示された前記ライン又は前記ライン上の要素に対する入力操作を検出する処理と、
     検出した前記入力操作が前記ラインに交差する方向の操作を含む場合、前記ライン上に前記分岐又は前記反復に分類される制御構造を示す新たな要素を前記表示装置に表示させる処理と、
    をコンピュータが行うことを特徴とするモデリング支援方法。
  2.  請求項1に記載のモデリング支援方法において、
     前記新たな要素を前記表示装置に表示させる処理は、検出した前記入力操作が前記ラインまたは前記ライン上の前記要素に対する前記ラインに交差する方向の一方向操作である場合、前記ライン上に前記分岐に分類される制御構造を示す前記新たな要素を前記表示装置に表示させる処理、を含む
    ことを特徴とするモデリング支援方法。
  3.  請求項1又は請求項2に記載のモデリング支援方法において、
     前記新たな要素を前記表示装置に表示させる処理は、検出した前記入力操作が前記ラインまたは前記ライン上の前記要素に対する前記ラインに交差する方向の双方向操作である場合、前記ライン上に前記反復に分類される制御構造を示す前記新たな要素を前記表示装置に表示させる処理、を含む
    ことを特徴とするモデリング支援方法。
  4.  請求項1乃至請求項3のいずれか1項に記載のモデリング支援方法において、
     前記コンピュータは、前記表示装置への前記入力操作を検出するタッチセンサからの出力に基づいて前記入力操作を検出する
    ことを特徴とするモデリング支援方法。
  5.  請求項4に記載のモデリング支援方法において、
     前記新たな要素を前記表示装置に表示させる処理は、検出した前記入力操作の軌跡が前記ラインを跨る弧を描く場合、前記ライン上に前記反復に分類される制御構造を示す前記新たな要素を前記表示装置に表示させる処理、を含む
    ことを特徴とするモデリング支援方法。
  6.  命令を含む1つ以上の非一時的なコンピュータ読取可能媒体と、
     前記命令を実行する1つ以上のプロセッサと、を含み、
     前記命令は、前記1つ以上のプロセッサに動作を実行させるよう構成され、
     前記動作は、
      各々が順次、分岐、又は反復に分類される制御構造を示す1つ以上の要素が配置可能なラインを表示装置に表示させることと、
      前記表示装置に表示された前記ライン又は前記ライン上の要素に対する入力操作を検出することと、
      検出した前記入力操作が前記ラインに交差する方向の入力操作である場合、前記ライン上に前記分岐又は前記反復に分類される制御構造を示す新たな要素を前記表示装置に表示させることと、を含む
    ことを特徴とする情報処理装置。
  7.  コンピュータに、
     各々が順次、分岐、又は反復に分類される制御構造を示す、1つ以上の要素が配置可能なラインを表示装置に表示させ、
     前記表示装置に表示された前記ライン又は前記ライン上の要素に対する入力操作を検出し、
     検出した前記入力操作が前記ラインに交差する方向の入力操作である場合、前記ライン上に前記分岐又は前記反復に分類される制御構造を示す新たな要素を前記表示装置に表示させる
    処理を実行させることを特徴とするプログラム。
PCT/JP2021/043501 2020-12-18 2021-11-26 モデリング支援方法、情報処理装置、及び、プログラム WO2022130943A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020210086A JP7219868B2 (ja) 2020-12-18 2020-12-18 モデリング支援方法、情報処理装置、及び、プログラム
JP2020-210086 2020-12-18

Publications (1)

Publication Number Publication Date
WO2022130943A1 true WO2022130943A1 (ja) 2022-06-23

Family

ID=82059047

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/043501 WO2022130943A1 (ja) 2020-12-18 2021-11-26 モデリング支援方法、情報処理装置、及び、プログラム

Country Status (2)

Country Link
JP (2) JP7219868B2 (ja)
WO (1) WO2022130943A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011048477A (ja) * 2009-08-25 2011-03-10 Justsystems Corp フローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005309593A (ja) * 2004-04-19 2005-11-04 Mitsubishi Electric Corp プログラム作成装置及びプログラム作成方法
GB0426247D0 (en) * 2004-11-25 2004-12-29 Koninkl Philips Electronics Nv User interface for content authoring
KR101260834B1 (ko) * 2010-12-14 2013-05-06 삼성전자주식회사 타임라인 바를 이용한 터치스크린 제어방법, 장치 및 이를 위한 프로그램이 기록된 기록매체 및 사용자 단말
US9639184B2 (en) * 2015-03-19 2017-05-02 Apple Inc. Touch input cursor manipulation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011048477A (ja) * 2009-08-25 2011-03-10 Justsystems Corp フローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラム

Also Published As

Publication number Publication date
JP2022096859A (ja) 2022-06-30
JP7219868B2 (ja) 2023-02-09
JP2023054806A (ja) 2023-04-14

Similar Documents

Publication Publication Date Title
JP6071107B2 (ja) 携帯端末
ES2939305T3 (es) Navegación entre actividades en un dispositivo informático
KR101686581B1 (ko) 툴바 탐색(Toolbar Navigation)을 위한 사용자 인터페이스(User Interface)
WO2015151619A1 (ja) 車載情報装置
US9195387B2 (en) Separating a cursor when a touch selection continues from a first to second screen
JP2012133745A (ja) 情報処理装置およびその表示サイズ制御方法
EP3278203B1 (en) Enhancement to text selection controls
KR20160053547A (ko) 전자장치 및 전자장치의 인터렉션 방법
JP2012226516A (ja) 電子機器、表示制御方法及びプログラム
JP6041742B2 (ja) タッチパネル表示制御装置
WO2022130943A1 (ja) モデリング支援方法、情報処理装置、及び、プログラム
JP2018101054A (ja) 表示装置、表示方法及びプログラム
JP5747688B2 (ja) 計算装置およびプログラム
JP2017016594A (ja) 情報処理装置、情報表示プログラムおよび情報表示方法
KR101050671B1 (ko) 터치스크린을 이용한 한글 입력 장치, 그 방법
JP2016057747A (ja) アイコン表示装置及びアイコン表示プログラム
JP5742870B2 (ja) 電子機器およびプログラム
JP2011181104A (ja) 電子機器およびプログラム
JP2019082748A (ja) 文書処理装置及び文書処理プログラム
JP7215054B2 (ja) プログラミング表示装置、プログラミング表示方法、およびプログラム
JP2018101296A (ja) 表示装置、表示装置における表示方法及びプログラム
CN108205407B (zh) 显示装置、显示方法及存储介质
JP6661421B2 (ja) 情報処理装置、制御方法、及びプログラム
JP6770422B2 (ja) 楽譜表示プログラム
JP6194383B2 (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: 21906306

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21906306

Country of ref document: EP

Kind code of ref document: A1