The present disclosure relates to an information processing apparatus, an information processing method, and a storage medium for coding a program.
In recent years, there has been an increase in the number of cloud computing systems that use, via a network, an information processing environment owned by a service provider, instead of owning an information processing apparatus that executes an application. Using the cloud computing system, various services, such as a shopping system for trading products via the Internet and a video distribution system, are provided. The cloud computing system, which can easily secure and release computing resources and reduce much of the burden of server--side management, will continue to be the standard for system development. In the system development using the cloud computing system, the system is linked with the services provided by each cloud vendor. For this purpose, it is common to use proprietary libraries and application programming interfaces (APIs) provided by each cloud vendor. Thus, in order to build a system that cooperates with each cloud service, program coding is to be performed according to the unique APIs, libraries, and conditions specified by each cloud vendor. In addition, because each cloud vendor performs more than 1,000 version upgrades per year, it is important, in the system development using the cloud computing system, to select and use the most appropriate services at the time of development. Thus, there is an issue where system developers need to investigate the mechanisms and usage of the latest services (libraries and APIs) and new ways of using the existing services, and this causes an increase in the investigation time, resulting in reduced development efficiency.
To address such an issue, Japanese Patent Application Laid-Open No. 2018-190261 discusses a method that detects the code corresponding to a specified code pattern from an implemented program, and replaces the code so that the processing corresponding to the code is performed on a cloud computing system. This method enables the system developers to perform processing on the cloud computing system without describing the program or setting information to be applied to the cloud computing system. Thus, the developers can focus on defining essential information processing procedures, thus improving the development efficiency.
The method discussed in Japanese Patent Application Laid-Open No. 2018-190261 reduces the number of investigations on the cloud computing system, but fails to reduce the number of man-hours spent on the single investigation.
The present disclosure is directed to reducing the number of man-hours spent on each investigation on coding a program.
According to an aspect of the present disclosure, an information processing apparatus for coding a program includes an acquisition unit configured to acquire an input state of a user who performs the coding, a calculation unit configured to calculate search information for searching for information about the coding, based on the acquired input state, and an output unit configured to determine necessary information based on the search information and output the determined necessary information.
Further features of the present disclosure will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
Exemplary embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. The configurations illustrated in the exemplary embodiments described below are merely examples, and the present disclosure is not limited to the illustrated configurations.
With reference to
Components of the development support apparatus 100 will be described with reference to
The development support apparatus 100 is an information processing apparatus having a configuration similar to that of a general computer and includes a central processing unit (CPU) 101, a random access memory (RAM) 102, a read only memory (ROM) 103, a storage device 104, a communication module 105, a power source 106, an input device 107, and an output device 108. The CPU 101 is a processor that performs calculation processing, and may have a single CPU or multiple CPUs. The CPU 101 is assumed to he capable of processing tasks with threads. Using the RAM 102 as a work memory, the CPU 101 executes a program stored in the ROM 103. The storage device 104 is a storage medium for storing a program to be executed by the CPU 101 and data to be processed. A hard disk drive (HDD) or a solid state drive (SSD) can be used as the storage device 104. The communication module 105 is a communication interface that connects the development support apparatus 100 with an external computer such as a cloud service. Using the communication module 105, the development support apparatus 100 can input and output data to and from the RAM 102 and the storage device 104. It is desirable that the communication module 105 have two input/output ports, one for control and the other for data transport. The power source 106 is a power supply module of the development support apparatus 100 and may have multiple redundancies or be capable of storing power. The input device 107 is used to directly input a command to the development support apparatus 100 by using a keyboard, a mouse, or the like. The output device 108 displays information to the user by using a monitor or the like.
Processing performed by the development support apparatus 100 according to the present exemplary embodiment will be described with reference to a functional block diagram illustrated in
In step S401, the input state acquisition it 301 acquires an input state from the user. In the present exemplary embodiment, the input state acquisition unit 301 constantly acquires input signals from the keyboard and the mouse that are connected to the input device 107, and states of the web browser section 202, the terminal section 203, and the output section 204. The input state acquisition unit 301 outputs the acquired input state information about the entire screen to the search timing detection unit 302. Here, the input state information refers to continuous information such as the click position, movement path, and drag path of the mouse, a keyboard input, and status of each screen.
In step S402, the search timing detection unit 302 determines and detects, based on the input state information output from the input state acquisition unit 301, whether it is the timing when the user desires to search for information about coding or error handling, Details of processing by the search timing detection unit 302 will be described next with reference to a functional block diagram illustrated in
As illustrated in
In step S601, the operation information acquisition unit 501 acquires the input state information from the input state acquisition unit 301. The operation information acquisition unit 501 outputs user operation information, which is included in the acquired input state information, to the input stop detection unit 502 and the range selection detection unit 505, and outputs status information about each screen, which is included in the acquired input state information, to the error occurrence detection unit 503 and the range selection detection unit 505.
In step S602, based on the acquired user operation information, the input stop detection unit 502 detects stop of a user's input using the keyboard. More specifically, the input stop detection unit 502 detects whether the input of the code has stopped for a certain period of time while the user describes the code in the code description section 201 illustrated in
In step S603, based on the acquired status information about each screen, the error occurrence detection unit 503 detects whether an error has occurred in the program executed by the user. If the user executes the program based on the code described in the code description section 201 of
If an error code included in the error code DB 504 is present in the displayed content, the error occurrence detection unit 503 determines that an error has occurred, and outputs information about the detection of the occurrence of the error to the subsequent processing determination unit 506. For example, assuming that “Exception” and “Environment Value Is None” are included in the error code DB 504, since this error code is present in the displayed content of the output section 802 illustrated in
In step S604, the range selection detection unit 505 detects, based on the acquired user operation information and the acquired status information about each screen, whether the user makes a range selection of a part of the code or a part of the displayed content of the terminal section 203 or the output section 204. If the user makes a range selection of a part of the document such as the code by using an instruction unit such as the keyboard or the mouse, the range selection detection unit 505 determines that the user is about to search for information about a word included in the selected range, and detects the range selection as the search timing.
In step S605, the subsequent processing determination unit 506 determines the subsequent processing based on the detection results acquired from the input stop detection unit 502, the error occurrence detection unit 503, and the range selection detection unit 505. If any one of the respective detection results acquired from the input stop detection unit 502 the error occurrence detection unit 503, and the range selection detection unit 505 indicates the detection of the search timing, the subsequent processing determination unit 506 determines that the subsequent processing is search aspiration level calculation processing in step S403. If none of the detection results acquired from the input stop detection unit 502, the error occurrence detection unit 503, and the range selection detection unit 505 indicate the detection of the search timing, the subsequent processing determination unit 506 determines that the subsequent processing is input state acquisition processing in step S401. This is the end of the processing by the search timing detection unit 302 in step S402, and the processing proceeds to the processing step determined by the subsequent processing determination unit 506.
Returning to the description of the development support apparatus 100, in step S403, in response to the determination result by the search timing detection unit 302, the search aspiration level calculation unit 303 estimates what information the user desires to search for. At this time, the search aspiration level calculation unit 303 refers to the necessary information DB 304 that stores candidates for information desired by the user, and calculates, as search information, a search aspiration level for each of the necessary information candidates. In the present exemplary embodiment, it is assumed that all data necessary for the user is registered in advance in the necessary information DB 304. The search aspiration level indicates a measure of “how strongly the user needs the information”. A specific method for calculating the search aspiration level will be described using an example in which the stop of the user's input is detected in the state illustrated in
Search aspiration level=α(x1+x2+x3+ . . . )+β(y1+y2+y3+ . . . )+γ(z1+z2+z3+ . . . ) (1)
In the formula (1), x, y, and z are flags that indicate whether any of the keywords is included in the same file, the same function, or the same line, respectively, and are set to 1 if any of the keywords is included and are set to 0 if any of the keywords is not included. Subscript numbers each indicate the number in each item. For example, in a first line illustrated in
Returning to the description of the development support apparatus 100, in step S404, based on the calculated search aspiration level of each of the necessary information candidates acquired from the search aspiration level calculation unit 303, the necessary information determination unit 305 determines the information desired by the user at the timing detected by the search timing detection unit 302. In the present exemplary embodiment, the necessary information determination unit 305 determines, as the necessary information, the necessary information candidate having the highest aspiration level among the acquired search aspiration levels of the necessary information candidates. In the example of
In step S405, based on the necessary information list acquired from the necessary information determination unit 305, the necessary information output unit 306 displays the necessary information list on the output device 108.
While the user activates the development support tool, the information that the user is likely to need may be presented all the time regardless of whether the search timing is detected or not.
The above is the flow of the processing performed by the development support apparatus 100 according to the present exemplary embodiment.
In the first exemplary embodiment, since the necessary information DB 304 is configured to register all data therein in advance, the necessary information cannot be updated based on update of a library provided by a cloud vendor, and thus the latest information desired by the user cannot be provided, for example. A second exemplary embodiment solves this issue.
In the second exemplary embodiment, the data of a necessary information DB is updated as appropriate, so that the information desired by the user including the latest information can be provided at the right timing. Processing performed by the development support apparatus 100 according to the present exemplary embodiment will be described focusing on differences from the first exemplary embodiment.
The processing performed by the development support apparatus 100 according to the present exemplary embodiment will be described with reference to a functional block diagram illustrated in
Similarly to the first exemplary embodiment, in processing from steps S1401 to S1405, the development support apparatus 100 detects the user's timing of an information search based on the input state information including the user operation information and the screen status information output by the development support apparatus 100, and outputs the necessary information. The present exemplary embodiment differs from the first exemplary embodiment in the subsequent processing.
In step S1406, the necessary information update unit 1307 acquires, from the necessary information determination unit 1305, the necessary information determined in step S1404, and acquires, from the input state acquisition unit 1301, the user operation information after step S1405.
In step S1407, the necessary information update unit 1307 updates the necessary information DB based on how the user behaves after referring to the necessary information displayed by the necessary information output unit 1306. More specifically, the user's behavior after referring to the necessary information can be roughly classified into three types. The first type is that the user has resumed the input of the code in the code description section 201 after referring to the displayed necessary information. The second type is that the user has performed an information search by himself/herself after referring to the displayed necessary information. The third type is that the user's behavior is neither of these two types. The necessary information update unit 1307 classifies the user's behavior (operation) after referring to the displayed necessary information, into one of these three types and performs necessary information DB update processing that is different for each of the types. In the case of the first type where the user has resumed the input of the code after referring to the necessary information, the necessary information update unit 1307 determines that the information desired by the user is included in the displayed necessary information, and increments the number of times of selecting the displayed necessary information by one. More specifically, the number of times of selecting the necessary information corresponding to the URL of the web page viewed immediately before the resumption of the input of the code is incremented by one. This makes it possible to easily present the information necessary for the user to any other user. In the case of the second type where the user has performed an information search by himself/herself after referring to the displayed necessary information, the necessary information update unit 1307 determines that the information desired by the user is included in the result of the information search performed by the user himself/herself. More specifically, the URL of the web page viewed immediately before the resumption of the input of the code is newly added to the necessary information list in the necessary information DB, or if the URL has already been included in the registered necessary information, the number of times of selecting the necessary information corresponding to the URL is incremented by one. This makes it possible to update the necessary information based on the update of the library provided by the cloud vendor, for example. In the case of the third type where the user's behavior is neither of the first and second types, the necessary information update unit 1307 does nothing in particular, and ends the processing. The necessary information update unit 1307 updates the necessary information DB by switching the processing based on the above three cases.
In the present exemplary embodiment, the information viewed immediately before the resumption of the input of the code is determined as the necessary information and the DB is updated. However, the method for updating the necessary information DB is not limited thereto, and a method capable of determining the information that has been referred to for the longest time as the necessary information may also be used. Furthermore, based on the necessary information DB updated according to the present exemplary embodiment, all users using the development support tool may be notified of trend information. More specifically, for example, the URL of the web page whose number of selections has rapidly increased may be displayed in the browsers of all the users.
Embodiment(s) of the present disclosure can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above--described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)?), a flash memory device, a memory card, and the like.
While the present disclosure has been described with reference to exemplary embodiments, the scope of the following claims are to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of Japanese Patent Application No. 2020-209351, filed Dec. 17, 2020, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2020-209351 | Dec 2020 | JP | national |