[go: up one dir, main page]

JP7546493B2 - Information processing device, software creation support system - Google Patents

Information processing device, software creation support system Download PDF

Info

Publication number
JP7546493B2
JP7546493B2 JP2021002530A JP2021002530A JP7546493B2 JP 7546493 B2 JP7546493 B2 JP 7546493B2 JP 2021002530 A JP2021002530 A JP 2021002530A JP 2021002530 A JP2021002530 A JP 2021002530A JP 7546493 B2 JP7546493 B2 JP 7546493B2
Authority
JP
Japan
Prior art keywords
software
identification information
data
component
information
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2021002530A
Other languages
Japanese (ja)
Other versions
JP2022107874A (en
Inventor
大生 伊藤
ティエンチエン レ
昭吾 國岡
洋 津久井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Construction Machinery Co Ltd
Original Assignee
Hitachi Construction Machinery Co Ltd
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 Hitachi Construction Machinery Co Ltd filed Critical Hitachi Construction Machinery Co Ltd
Priority to JP2021002530A priority Critical patent/JP7546493B2/en
Publication of JP2022107874A publication Critical patent/JP2022107874A/en
Application granted granted Critical
Publication of JP7546493B2 publication Critical patent/JP7546493B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、ユーザがソフトウェアを作成することを支援する技術に関する。 The present invention relates to technology that assists users in creating software.

ネットワーク技術やセンシング技術の発展により、IoTデバイスを活用したデータ収集が進んでいる。近年においては、データ収集システムを通じて収集されたデータに対して、データサイエンティストと呼ばれるデータ分析に詳しい専門の技術者が、データを分析する。 With the development of network and sensing technologies, data collection using IoT devices is progressing. In recent years, data collected through data collection systems is analyzed by specialized engineers who are knowledgeable in data analysis, known as data scientists.

このようなデータ収集システムを構築するにあたっては、プログラムに関して高い専門知識が必要である。たとえばC言語、C++言語、JAVA(登録商標)などのプログラミング言語でソースプログラムを作成し、それをコンパイラでコンパイルすることにより、コンピュータが実行可能なマシン語のプログラムが作られる。コンパイルが必要ないJAVASCRIPTなどのプログラミング言語も存在する。 Building such a data collection system requires a high level of programming expertise. For example, a source program is written in a programming language such as C, C++, or JAVA (registered trademark), and then compiled with a compiler to create a machine language program that can be executed by a computer. There are also programming languages such as JAVASCRIPT that do not require compiling.

データ分析の目的や分析手法によって必要とされるデータは異なるので、複数のデータ収集システムが必要になる場面が想定される。しかしながら、システム作成には労力や工数が発生するので、必要な時にデータ収集システムの供給を受けることができない、また時間がかかるといった懸念がある。 The data required differs depending on the purpose and method of data analysis, so it is conceivable that multiple data collection systems will be required. However, creating a system requires effort and man-hours, so there are concerns that a data collection system may not be available when needed, and that it will take a long time.

下記特許文献1は、プログラムの開発に必要な労力が少なく、高度な知識を必要とせずにプログラムを容易に作成できるデータ収集システムを提供する方法を開示している。 The following Patent Document 1 discloses a method for providing a data collection system that requires little effort in program development and allows programs to be easily created without requiring advanced knowledge.

特許第4568262号公報Patent No. 4568262

特許文献1記載の技術により、ユーザは高度なプログラム設計技術や知識を必要とせずに、直接ソースコードを入力しなくても、データ収集プログラム、テーブル生成プログラム、およびテーブルアクセスプログラムを生成することが可能となる。しかしながら、その簡便性に起因して、有効ではないデータ収集システムが作成される可能性がある。一般的に、ソフトウェア開発において、効率的な開発のためには既存コンポーネントの再利用が有効とされているが、これはユーザが高度なプログラム設計技術や知識を持っていることが前提である。したがってコンポーネント再利用によって簡便にデータ収集システムを作成すると、収集効率や収集項目などの観点から必ずしも有用ではないデータ収集システムが生成される可能性がある。 The technology described in Patent Document 1 enables users to generate data collection programs, table generation programs, and table access programs without requiring advanced program design techniques or knowledge, and without directly inputting source code. However, due to its simplicity, there is a possibility that an ineffective data collection system will be created. In general, in software development, reusing existing components is considered effective for efficient development, but this presupposes that the user has advanced program design techniques and knowledge. Therefore, if a data collection system is created easily by reusing components, there is a possibility that a data collection system will be created that is not necessarily useful in terms of collection efficiency, collection items, etc.

また、作成されたシステムがどのようなデータを収集しているかを把握しなければ、データ分析者が目的のシステムにたどり着けない可能性がある。しかし、すべてのシステムについてこれらの情報を把握することは難しい。したがって、ユーザがソフトウェアを作成することを支援できる仕組みが望まれている。 Furthermore, if data analysts do not know what kind of data the created system is collecting, they may not be able to find the system they are looking for. However, it is difficult to understand this information for all systems. Therefore, there is a need for a mechanism that can assist users in creating software.

本発明は、上記事情に鑑みてなされたものであり、ユーザが専門知識を有していなくともソフトウェアを作成することを支援することを目的とする。 The present invention was made in consideration of the above circumstances, and aims to help users create software even if they do not have specialized knowledge.

本発明に係る情報処理装置は、ソフトウェアの属性情報と使用実績を対応付けて格納しており、ユーザが所望するソフトウェアの属性情報を検索してその使用実績とともに出力する。 The information processing device according to the present invention stores software attribute information and usage history in association with each other, searches for attribute information of software desired by the user, and outputs the information together with the usage history.

本発明に係る情報処理装置によれば、ユーザが専門知識を有していなくとも、ユーザのニーズに合致するとともに使用実績があるソフトウェアを容易に見つけることができる。これにより、ユーザがソフトウェア開発に関する専門知識を有していなくとも、有用なソフトウェアを作成することを支援できる。 The information processing device according to the present invention allows a user to easily find software that meets the user's needs and has a proven track record, even if the user does not have specialized knowledge. This helps the user to create useful software, even if the user does not have specialized knowledge about software development.

実施形態1に係るソフトウェア作成支援システム1の全体構成図である。1 is an overall configuration diagram of a software creation support system 1 according to a first embodiment. 管理データベース120が保持するデータテーブルの例を示す。4 shows an example of a data table held in the management database 120. ソフトウェア情報を登録するために用いるソフトウェア登録画面の例である。13 is an example of a software registration screen used to register software information. 管理装置140がソフトウェア情報を登録する手順を示すフローチャートである。10 is a flowchart showing a procedure in which the management device 140 registers software information. 管理装置140が検索インデックスを作成して登録する手順を示すフローチャートである。11 is a flowchart showing a procedure in which the management device 140 creates and registers a search index. ソフトウェアの使用実績を登録するために用いる使用実績登録画面の例である。13 is an example of a usage history registration screen used to register the usage history of software. ソフトウェアを作成するようにユーザがソフトウェア作成支援システム1に対して指示する作成指示画面の例である。13 is an example of a creation instruction screen on which a user instructs the software creation support system 1 to create software. ソフトウェアの作成支援の手順を示すシーケンス図である。FIG. 11 is a sequence diagram showing a procedure for supporting software creation. 検索装置150による検索処理を説明するフローチャートである。11 is a flowchart illustrating a search process performed by a search device 150. ソフトウェアの作成支援の別手順を示すシーケンス図である。FIG. 11 is a sequence diagram showing another procedure for supporting software creation. 端末200に表示される管理画面の例を示す。13 shows an example of a management screen displayed on the terminal 200. 作成装置300がソフトウェアを作成する手順を示すフローチャートである。10 is a flowchart showing a procedure for creating software by creating device 300. 実施形態2に係るソフトウェア作成支援システム1の構成図である。FIG. 11 is a configuration diagram of a software creation support system 1 according to a second embodiment. 実施形態3に係るソフトウェア作成支援システム1の構成図である。FIG. 11 is a configuration diagram of a software creation support system 1 according to a third embodiment.

<実施の形態1>
図1は、本発明の実施形態1に係るソフトウェア作成支援システム1の全体構成図である。ソフトウェア作成支援システム1は、ユーザがソフトウェア(以下、アプリと称する場合もある)を作成することを支援するシステムである。ここではユーザが作成するソフトウェアとして、ユーザが様々なデータを収集するために用いるデータ収集システムを例とする。
<First embodiment>
1 is an overall configuration diagram of a software creation support system 1 according to a first embodiment of the present invention. The software creation support system 1 is a system that supports a user in creating software (hereinafter, may be referred to as an application). In this example, a data collection system used by a user to collect various data is taken as an example of the software created by the user.

ソフトウェア作成支援システム1は概略として、情報処理装置100、端末200、作成装置300、テンプレートデータベース310を備える。データ収集システム400は、ソフトウェア作成支援システム1が作成したデータ収集ソフトウェアを実行するシステムである。図1においては2つのデータ収集システム400aと400bを示した。これらシステムは同じ構成を有するので、これらを区別しないときはアルファベット添え字を省略する。 The software creation support system 1 generally comprises an information processing device 100, a terminal 200, a creation device 300, and a template database 310. The data collection system 400 is a system that executes data collection software created by the software creation support system 1. Two data collection systems 400a and 400b are shown in FIG. 1. These systems have the same configuration, so the alphabetical suffixes are omitted when there is no need to distinguish between them.

情報処理装置100は 、適宜なネットワーク10を介して、端末200、作成装置300、データ収集システム400と通信可能に接続されている。ソフトウェアの作成支援と管理は、情報処理装置100が実行主体となって実施する。作成装置300は、データ収集システム400を作成する実行主体である。 The information processing device 100 is communicably connected to the terminal 200, the creation device 300, and the data collection system 400 via an appropriate network 10. The information processing device 100 is the executing entity that supports and manages the creation of software. The creation device 300 is the executing entity that creates the data collection system 400.

端末200において、ユーザ(例えば作成されたソフトウェアを使用する予定になっている者)は、作成しようとするソフトウェアの属性情報を入力する。情報処理装置100はその入力を受け付けて後述のように処理する。端末200は、PC(Personal Computer)、タブレット端末、スマートフォン、携帯電話などのように、後述する表示・入力装置110が提供する情報について操作者が閲覧や操作することができる、コンピュータ端末である。 In terminal 200, a user (e.g., a person who plans to use the created software) inputs attribute information for the software to be created. Information processing device 100 accepts the input and processes it as described below. Terminal 200 is a computer terminal such as a PC (Personal Computer), tablet terminal, smartphone, or mobile phone, which allows an operator to view and operate information provided by display/input device 110, which will be described later.

情報処理装置100は、管理データベース120に蓄積している過去に開発されたソフトウェアの属性情報を検索して利用者に提示することにより、利用者へ過去のソフトウェアを再利用するように促した上で、そのソフトウェアを配布するように作成装置300へ指示する。 The information processing device 100 searches for attribute information of previously developed software stored in the management database 120 and presents it to the user, encouraging the user to reuse the previously developed software, and then instructs the creation device 300 to distribute the software.

作成装置300は、情報処理装置100から受け渡されたソフトウェアの属性情報に基づいて、ソフトウェアを生成・提供するサーバ装置である。作成装置300は、仮想化されたソフトウェア機能、プラットフォーム機能、ハードウェア機能などの各種ソフトウェア実行用の機能を提供し、ソフトウェアを提供するとともにサービスを提供している。本実施形態においては、作成装置300が、仮想化されたWEBサーバ、ソフトウェアサーバ、データベースサーバなど、各種ソフトウェア実行用のプラットフォーム機能と、その上で実行されるソフトウェアを実行することを想定する。 The creation device 300 is a server device that generates and provides software based on attribute information of the software transferred from the information processing device 100. The creation device 300 provides functions for executing various types of software, such as virtualized software functions, platform functions, and hardware functions, and provides software and services. In this embodiment, it is assumed that the creation device 300 executes platform functions for executing various types of software, such as a virtualized web server, software server, and database server, and the software that is executed thereon.

情報処理装置100は、表示・入力装置110、実績収集装置130、管理装置140、検索装置150、実行装置160を備える。これら各装置はハードウェアとして実装することもできるし、情報処理装置100が備えるプログラムを演算装置が実行することによって実装することもできる。以下では記載の便宜上、これらを「装置」と表記するが、これらの実装はハードウェアによるものに限らない。 The information processing device 100 comprises a display/input device 110, a performance collection device 130, a management device 140, a search device 150, and an execution device 160. Each of these devices can be implemented as hardware, or can be implemented by a computing device executing a program provided in the information processing device 100. For ease of description, these will be referred to as "devices" below, but their implementation is not limited to hardware.

表示・入力装置110は、端末200に対し、GUI(Graphical User Interface)、API(Application Programming Interface)、CLI(Command Line Interface)などのような、入出力用のインターフェースを提供する。表示・入力装置110は、このインターフェースを介して、ソフトウェアを作成するための設定や作成されたソフトウェアを検索するための検索キーワードなどに関する入出力動作を受け付ける。端末200は、表示・入力装置110が提供するインターフェースを介して、情報の閲覧や操作をユーザに実行させる。 The display/input device 110 provides the terminal 200 with an input/output interface such as a GUI (Graphical User Interface), an API (Application Programming Interface), or a CLI (Command Line Interface). Through this interface, the display/input device 110 accepts input/output operations related to settings for creating software and search keywords for searching the created software. The terminal 200 allows the user to view and operate information through the interface provided by the display/input device 110.

実績収集装置130は、端末200から入力されたソフトウェアやコンポーネントの使用実績を収集するための設定に基づいて、ソフトウェアやコンポーネントの使用実績を収集する。 The performance collection device 130 collects the usage history of software and components based on the settings for collecting the usage history of software and components input from the terminal 200.

管理装置140は、(a)端末200から入力された設定に基づいて、管理データベース120にソフトウェアの属性情報を新しく登録する機能、(b)実績収集装置130にて収集された情報と端末200から入力された情報に基づいて、管理データベース120にソフトウェアとコンポーネントの使用実績を新しく登録する機能、(c)端末200を通じて作成されたソフトウェアやコンポーネントの情報を表示する機能、を備える。 The management device 140 has the following functions: (a) a function for newly registering software attribute information in the management database 120 based on settings input from the terminal 200; (b) a function for newly registering software and component usage records in the management database 120 based on information collected by the performance collection device 130 and information input from the terminal 200; and (c) a function for displaying information on software and components created via the terminal 200.

検索装置150は、(a)端末200から入力された検索対象を特定する検索キーワードやソフトウェアを作成するための設定に基づいて、管理データベース120から適したソフトウェア(またはソフトウェアを構成するコンポーネント)を検索する機能、(b)検索の結果、複数のソフトウェアまたはコンポーネントの候補を特定した場合、この複数の候補の中で適性順位がより高いソフトウェア、またはコンポーネントを複数の候補から特定する機能、を備える。適性順位は、管理データベース120のソフトウェア使用実績テーブル520、またはコンポーネント使用実績テーブル540(後述)を参照することによって、決定できる。 The search device 150 has the following functions: (a) a function for searching the management database 120 for suitable software (or components constituting the software) based on search keywords that specify the search target and settings for creating the software input from the terminal 200; and (b) a function for, when multiple software or component candidates are identified as a result of the search, identifying the software or component with the highest suitability ranking from among the multiple candidates. The suitability ranking can be determined by referring to the software usage history table 520 or the component usage history table 540 (described below) in the management database 120.

実行装置160は、端末200から入力された設定に基づいて、後述する作成装置300に対して、ソフトウェアをデプロイするように指示する。 The execution device 160 instructs the creation device 300 (described below) to deploy the software based on the settings input from the terminal 200.

情報処理装置100のハードウェア構成としては、(a)SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される記憶装置、(b)RAMなど揮発性記憶素子で構成されるメモリ、(c)記憶装置に保持されるプログラムをメモリに読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を実施するCPUなどの演算装置、(d)処理データの表示を行うディスプレイ等の出力装置、(e)ネットワーク10と接続し他装置との通信処理を担う通信装置、を備える。 The hardware configuration of the information processing device 100 includes: (a) a storage device configured with suitable non-volatile storage elements such as an SSD (Solid State Drive) or a hard disk drive; (b) a memory configured with volatile storage elements such as a RAM; (c) a calculation device such as a CPU that reads out and executes programs stored in the storage device into the memory, thereby controlling the device itself and carrying out various judgments, calculations, and control processes; (d) an output device such as a display that displays processed data; and (e) a communication device that is connected to the network 10 and handles communication processes with other devices.

作成装置300は、端末200から入力された設定に基づいて、データ収集ソフトウェアを生成する。データ収集ソフトウェアは、データ収集内容を携帯端末420に表示させ、収集結果を受け付けるためのソフトウェアである。作成装置300は、ネットワーク10を介してデータ収集ソフトウェアを携帯端末420に対して提供する。作成装置300はさらに、データレイク生成プログラムとデータ管理ソフトウェアを作成する。データレイク生成プログラムは、ネットワーク10を介して携帯端末420から収集結果を受信し格納するためのデータレイクを作成するプログラムである。データ管理ソフトウェアは、データレイクからデータを抽出し適宜ユーザに提供するための管理機能を有する。作成装置300は、ネットワーク10を介してデータレイク生成プログラムとデータ管理ソフトウェアをデータ管理装置410に対して提供する。データ収集作業者は、そのデータ収集ソフトウェアを実行することにより収集されたデータを携帯端末420上で閲覧することができる。収集データはネットワーク10を通じてデータ管理装置410によって収集される。 The creation device 300 generates data collection software based on the settings input from the terminal 200. The data collection software is software for displaying data collection contents on the mobile terminal 420 and accepting collection results. The creation device 300 provides the data collection software to the mobile terminal 420 via the network 10. The creation device 300 further creates a data lake generation program and data management software. The data lake generation program is a program for creating a data lake for receiving and storing collection results from the mobile terminal 420 via the network 10. The data management software has a management function for extracting data from the data lake and providing it to the user as appropriate. The creation device 300 provides the data lake generation program and data management software to the data management device 410 via the network 10. The data collection worker can view the collected data on the mobile terminal 420 by executing the data collection software. The collected data is collected by the data management device 410 via the network 10.

携帯端末420は、パーソナルコンピュータ、スマートフォン、タブレット端末装置等の携帯可能な携帯装置である。より具体的には、携帯端末420は、データ収集者がデータを収集する時に携帯し、データ収集ソフトウェアを実行することにより表示されたデータ収集内容に基づいてデータ収集を実施し、データ管理装置410へデータを送信するために利用される。データ収集者は、携帯端末420のカメラを利用して対象物を撮影したり、携帯端末420のマイクを利用して対象の音を録音したり、携帯端末420に表示された入力フォームに対してキーパッドなどを利用して携帯端末420に入力したりする。これらの画像、音声、およびデータ収集者に直接入力された情報以外に取得される情報としては、携帯端末420の加速度センサ、地磁気センサ、GPS(Global Positioning System)ユニットなどの内蔵のセンサの他、外付けセンサで取得される情報も挙げられる。これらの情報の取得は、データ収集者が意図的に収集する以外に、データ収集ソフトウェアにより自動的に情報収集してもよい。たとえば、携帯端末420のGPSユニットを用いて、自動的に位置情報を取得してもよい。 The mobile terminal 420 is a portable device such as a personal computer, a smartphone, or a tablet terminal device. More specifically, the mobile terminal 420 is carried by the data collector when collecting data, and is used to collect data based on the data collection content displayed by executing the data collection software and to transmit the data to the data management device 410. The data collector takes a picture of the target object using the camera of the mobile terminal 420, records the sound of the target object using the microphone of the mobile terminal 420, and inputs the input form displayed on the mobile terminal 420 into the mobile terminal 420 using a keypad or the like. Information acquired other than these images, sounds, and information directly input by the data collector includes information acquired by built-in sensors such as the acceleration sensor, geomagnetic sensor, and GPS (Global Positioning System) unit of the mobile terminal 420, as well as information acquired by an external sensor. In addition to being acquired intentionally by the data collector, the information may also be acquired automatically by the data collection software. For example, location information may be obtained automatically using a GPS unit in the mobile terminal 420.

携帯端末420のハードウェア構成の1例としては、上述の演算装置と、上述のメモリと、上述の記憶装置と、上述の通信装置と、を備える。データを取得する手段として例えば、加速度センサと、ジャイロセンサと、地磁気センサと、カメラと、マイクと、GPSユニットと、を備える。ユーザインターフェースとして、入力を受け付ける入力装置と、出力装置と、を備える。記憶装置内には、本実施形態の携帯端末420として必要な機能を実現するプログラムが格納される。 An example of the hardware configuration of the mobile terminal 420 includes the above-mentioned arithmetic device, the above-mentioned memory, the above-mentioned storage device, and the above-mentioned communication device. As means for acquiring data, for example, an acceleration sensor, a gyro sensor, a geomagnetic sensor, a camera, a microphone, and a GPS unit are provided. As a user interface, an input device for accepting input and an output device are provided. A program for realizing the functions required for the mobile terminal 420 of this embodiment is stored in the storage device.

データ管理装置410のハードウェア構成に関しては、上述の情報処理装置100と同様であるので、割愛する。後述のとおり、データ管理装置410に関しては、仮想的なハードウェア機能を用いて実現されてもよい。データ管理装置410の記憶装置内には、本実施形態のデータ管理装置410として必要な機能を実現するプログラムが格納される。 The hardware configuration of the data management device 410 is the same as that of the information processing device 100 described above, and therefore will not be described here. As described below, the data management device 410 may be realized using virtual hardware functions. A program that realizes the functions required for the data management device 410 of this embodiment is stored in the storage device of the data management device 410.

図2は、管理データベース120が保持するデータテーブルの例を示す。管理データベース120は、既に作成されたソフトウェアの説明やソフトウェアを作成するために入力されたパラメータ(ソフトウェア上で実装される収集コンポーネントや収集項目など)の情報、およびソフトウェアの使用実績を管理するデータベースである。管理データベース120は、ソフトウェア情報テーブル510、ソフトウェア使用実績テーブル520、コンポーネント情報テーブル530、およびコンポーネント使用実績テーブル540を格納している。 Figure 2 shows an example of a data table held by management database 120. Management database 120 is a database that manages information on descriptions of software that has already been created, parameters entered to create the software (such as collected components and collected items implemented in the software), and software usage history. Management database 120 stores a software information table 510, a software usage history table 520, a component information table 530, and a component usage history table 540.

ソフトウェア情報テーブル510は、ソフトウェアの固有の識別子であるソフトウェアID511をキーとして、該当ソフトウェアの名前を示すソフトウェア名512、該当ソフトウェアの説明を示すソフトウェア説明513、後述する検索語514、該当ソフトウェアを作成した作成者515、の各値を対応付けたレコードの集合体となっている。ソフトウェアID511およびソフトウェア名512は必須の値である。 The software information table 510 is a collection of records that use a software ID 511, which is a unique identifier for the software, as a key to associate the following values: software name 512, which indicates the name of the software in question; software description 513, which indicates a description of the software in question; search term 514, which will be described later; and creator 515, who created the software in question. Software ID 511 and software name 512 are required values.

ソフトウェア使用実績テーブル520は、ソフトウェア使用実績の固有の識別子であるソフトウェア使用実績ID521をキーとして、該当ソフトウェアの収集データ数を示すデータ数522、該当ソフトウェアの利用者数を示すソフトウェア利用者数523、該当ソフトウェアが最後に更新された日付を示す最終更新日524、該当ソフトウェアの最新のデータ収集日を示す最新のデータ収集日525、該当ソフトウェアのデータを収集したデータ収集者から与えられたデータ収集者評価526、該当ソフトウェアの収集データを分析したデータ分析者から与えられたデータ分析者評価527、の各値を対応付けたレコードの集合体となっている。ソフトウェア使用実績ID521、最終更新日524は必須の値である。 The software usage history table 520 is a collection of records that use a software usage history ID 521, which is a unique identifier for the software usage history, as a key to associate the following values: number of data 522 indicating the number of collected data for the software; number of software users 523 indicating the number of users of the software; last update date 524 indicating the date the software was last updated; latest data collection date 525 indicating the date on which the most recent data was collected for the software; data collector evaluation 526 given by the data collector who collected the data for the software; and data analyst evaluation 527 given by the data analyst who analyzed the collected data for the software. The software usage history ID 521 and last update date 524 are required values.

コンポーネント情報テーブル530は、コンポーネントの固有の識別子であるコンポーネントID531をキーとして、該当コンポーネントの名前を示すコンポーネント名532、該当コンポーネントの説明を示すコンポーネント説明533、後述する検索語534、該当コンポーネントを作成した作成者535、の各値を対応付けたレコードの集合体となっている。コンポーネントID531およびコンポーネント名532は必須の値である。 The component information table 530 is a collection of records that use a component ID 531, which is a unique identifier for a component, as a key to associate the following values: a component name 532 indicating the name of the corresponding component, a component description 533 indicating a description of the corresponding component, a search term 534 described below, and a creator 535 who created the corresponding component. The component ID 531 and component name 532 are required values.

コンポーネント使用実績テーブル540は、コンポーネント使用実績の固有の識別子であるコンポーネント使用実績ID541をキーとして、該当コンポーネントが使用されているソフトウェア数を示すソフトウェア使用数542、該当コンポーネントが最後に更新された日付を示す最終更新日543、該当コンポーネントの最新のデータ収集日を示す最新のデータ収集日544、該当コンポーネントのデータを収集したデータ収集者から与えられたデータ収集者評価545、該当コンポーネントの収集データを分析した分析者から与えられたデータ分析者評価546、の各値を対応付けたレコードの集合体となっている。コンポーネント使用実績ID541、最終更新日543は必須の値である。 The component usage history table 540 is a collection of records that use a component usage history ID 541, which is a unique identifier for the component usage history, as a key, and associates the following values with each other: software usage count 542, which indicates the number of software programs in which the component is used; last update date 543, which indicates the date the component was last updated; latest data collection date 544, which indicates the date on which the most recent data was collected for the component; data collector evaluation 545 given by the data collector who collected the data for the component; and data analyst evaluation 546 given by the analyst who analyzed the collected data for the component. The component usage history ID 541 and last update date 543 are required values.

以下、本実施形態におけるソフトウェアの作成支援・管理方法の実施手順について説明する。以下で説明するソフトウェアの作成支援・管理方法に対応する各種動作は、情報処理装置100がメモリ等に読み出して実行するプログラムによって実現される。このプログラムは、以下に説明される各種の動作を実施するためのコードから構成されている。 The procedure for implementing the software creation support and management method in this embodiment will be described below. The various operations corresponding to the software creation support and management method described below are realized by a program that the information processing device 100 reads into a memory or the like and executes. This program is composed of code for implementing the various operations described below.

図3は、ソフトウェア情報を登録するために用いるソフトウェア登録画面の例である。ソフトウェア登録画面は、すでに開発されたソフトウェアの属性情報を登録するために用いるものであり、端末200上に表示される。端末200上で所定の操作を行うことにより、図3の登録画面が表示される。ソフトウェアの属性としては、そのソフトウェアが有するコンポーネントおよびそのコンポーネントの属性情報を含むものとする。登録画面は情報処理装置100が提供してもよいし、端末200上のアプリケーションが提供してもよい。 Figure 3 is an example of a software registration screen used to register software information. The software registration screen is used to register attribute information of software that has already been developed, and is displayed on the terminal 200. The registration screen in Figure 3 is displayed by performing a specified operation on the terminal 200. The attributes of the software include the components that the software has and attribute information of those components. The registration screen may be provided by the information processing device 100, or may be provided by an application on the terminal 200.

ソフトウェア基本情報入力領域610は、「ソフトウェア名」「ソフトウェア説明」「作成者名・部署」などのように、ソフトウェアの基本属性パラメータをそれぞれ入力する領域である。 The software basic information input area 610 is an area for inputting basic attribute parameters of the software, such as "software name," "software description," and "creator name/department."

コンポーネント基本情報入力領域611は、「コンポーネントの名称」「コンポーネントの説明」「コンポーネントタイプ」を選択・入力する領域である。コンポーネント設定領域612は、コンポーネントのタイプに応じて表示文や収集データのフィールド名、収集する際の設定などを入力する領域である。コンポーネント情報領域613は、コンポーネント基本情報入力領域611とコンポーネント設定領域612をコンポーネントごとにまとめたものである。コンポーネント追加ボタン614を押下すると、コンポーネント情報領域613が1つ追加される。コンポーネント削除ボタン615を押下すると、コンポーネント情報領域613が1つ削除される。登録開始ボタン616を押下すると、端末200は入力した情報を管理データベース120へ送信する。図3においては、3つのコンポーネントそれぞれのコンポーネント情報領域613を例示している。図3において、コンポーネント基本情報入力領域611、コンポーネント設定領域612、コンポーネント情報領域613はそれぞれ複数存在するので、添え字a~cによって区別している。 The component basic information input area 611 is an area for selecting and inputting the "Component Name", "Component Description", and "Component Type". The component setting area 612 is an area for inputting display statements, field names for collected data, and settings for collection according to the type of component. The component information area 613 is a collection of the component basic information input area 611 and the component setting area 612 for each component. When the component addition button 614 is pressed, one component information area 613 is added. When the component deletion button 615 is pressed, one component information area 613 is deleted. When the registration start button 616 is pressed, the terminal 200 transmits the input information to the management database 120. In FIG. 3, the component information area 613 for each of the three components is illustrated. In FIG. 3, there are multiple component basic information input areas 611, component setting areas 612, and component information areas 613, so they are distinguished by the suffixes a to c.

コンポーネントタイプ選択ボックス620は、利用するコンポーネントのタイプを指定するためのボックスである。選択可能なコンポーネントのタイプとしては、例えばユーザにテキスト入力させるテキストボックスのコンポーネント(図中ではテキストと表記)、複数の選択肢の中からユーザに選択させる選択肢のコンポーネント(図中では選択肢と表記)、マイクを用いてユーザに音声を録音させる音声のコンポーネント(図中では音声と表記)、などがある。希望する任意のタイプをコンポーネントタイプ選択ボックス620から選択することにより、選択したタイプに応じたコンポーネント設定領域612が表示される。 The component type selection box 620 is a box for specifying the type of component to be used. Selectable component types include, for example, a text box component (represented as text in the figure) that allows the user to input text, an option component (represented as option in the figure) that allows the user to select from multiple options, and an audio component (represented as audio in the figure) that allows the user to record audio using a microphone. By selecting any desired type from the component type selection box 620, a component setting area 612 corresponding to the selected type is displayed.

第1コンポーネント情報領域613aは、コンポーネントタイプとして「テキスト」を選択した場合の表示例である。第1コンポーネント設定領域612aには、データベースに格納する際のフィールド名を入力するためのフィールド名入力領域621、テキストボックスに入力する内容をユーザに対してガイドする表示文入力領域622が設けられている。図示の例では、テキストコンポーネントにより、ユーザに機種IDの入力を促す表示文を提示し、収集結果をフィールド名MachineIDとして格納する。 The first component information area 613a is an example of the display when "Text" is selected as the component type. The first component setting area 612a is provided with a field name input area 621 for inputting the field name when storing in the database, and a display statement input area 622 that guides the user to enter the content into the text box. In the illustrated example, the text component presents a display statement that prompts the user to enter the model ID, and the collected result is stored as the field name MachineID.

第2コンポーネント情報領域613bは、コンポーネントタイプとして「選択肢」を選択した場合の表示例である。第2コンポーネント設定情報領域612bには、データベースに格納する際のフィールド名を入力するためのフィールド名入力領域、ユーザに提示する選択肢を設定する回答入力領域623、回答入力領域623を追加する回答追加ボタン624、回答入力領域623を削除する回答削除ボタン625、が設けられている。図示の例では、選択肢コンポーネントにより、ユーザに部位の選択を促す表示文を提示し、ユーザがポンプやエンジンなどの選択肢から選択し、収集結果をフィールド名Componentとして格納する。 The second component information area 613b is an example of the display when "Choice" is selected as the component type. The second component setting information area 612b is provided with a field name input area for inputting the field name when storing in the database, an answer input area 623 for setting the options to be presented to the user, an answer add button 624 for adding the answer input area 623, and an answer delete button 625 for deleting the answer input area 623. In the example shown, the option component presents a display statement prompting the user to select a part, and the user selects from options such as pump or engine, and the collected results are stored as a field named Component.

第3コンポーネント情報領域613cは、コンポーネントタイプとして「音声」を選択した場合の表示例である。第3コンポーネント設定情報領域612cには、マイクにより録音するときのサンプリングレートを設定するサンプリングレート入力領域627、ユーザに提示する録音条件を入力するための条件入力領域628が設けられている。図示の例では、音声コンポーネントにより、サンプリングレート44.1kHzで、対象から1m離れた場所で録音することをユーザに促す。 The third component information area 613c is an example of the display when "audio" is selected as the component type. The third component setting information area 612c includes a sampling rate input area 627 for setting the sampling rate when recording with a microphone, and a condition input area 628 for inputting recording conditions to be presented to the user. In the example shown, the audio component prompts the user to record at a sampling rate of 44.1 kHz, at a location 1 m away from the target.

これらコンポーネントは、過去に作成されたコンポーネントであり、後述する作成装置300が作成できるものである。コンポーネント設定情報領域は、適用するコンポーネントごとに変更される場合がある。たとえば、同じ音声を集めるコンポーネントにおいても、ユーザへ1m離れた場所へ行くことを促すことに追加して、実際に加速度センサやカメラを用いて、ユーザが対象物から1m離れているか判断し、その場合にのみ録音を可能とするコンポーネントも考えられる。これらは別々のコンポーネントと扱われるので、コンポーネントタイプ選択ボックス620において別々のタイプとして扱われる。 These components are components that were created in the past and can be created by the creation device 300, which will be described later. The component setting information area may be changed for each component to which it is applied. For example, even with the same component that collects audio, in addition to prompting the user to go to a location 1 m away, a component may actually use an acceleration sensor or camera to determine whether the user is 1 m away from an object, and only enable recording in that case. These are treated as separate components, and therefore as separate types in the component type selection box 620.

登録者が、図3の画面において、ソフトウェア基本情報入力領域610、コンポーネント情報領域613を入力し、登録開始ボタン616を押すと、管理装置140は情報登録を開始する。登録者がマニュアル入力することに代えて、設定ファイル読み込み領域を設け、ソフトウェア情報を記述した設定情報ファイルを読み込むことにより、自動入力されるようにしてもよい。設定ファイルの形式はJSON形式やCSVなどの任意の形式でよい。 When the registrant enters information in the software basic information input area 610 and component information area 613 on the screen in FIG. 3 and presses the start registration button 616, the management device 140 starts registering information. Instead of the registrant manually entering information, a setting file reading area may be provided and the information may be automatically entered by reading a setting information file that describes the software information. The setting file may be in any format, such as JSON or CSV.

図4は、管理装置140がソフトウェア情報を登録する手順を示すフローチャートである。ユーザが図3の画面を用いて入力したパラメータを表示・入力装置110が受け付けると、管理装置140は本フローチャートを開始する。 Figure 4 is a flowchart showing the procedure for the management device 140 to register software information. When the display/input device 110 accepts the parameters input by the user using the screen in Figure 3, the management device 140 starts this flowchart.

管理装置140は、まず入力されたパラメータを取り込む(S101)。検索装置150はコンポーネント毎(S102)に、既に管理データベース120に登録済みの既存コンポーネントかどうかを確認する(S103)。既存コンポーネントでなければ、コンポーネントIDを付与して(S104)、管理データベース120のコンポーネント情報テーブル530に登録する(S105)。コンポーネント情報テーブル530において必須の項目以外が入力されていない場合、初期値としてNULLを設定する。既存コンポーネントの場合はS104~S105を実施しない。以上のS102~S105の動作をコンポーネント毎に繰り返す。 The management device 140 first retrieves the input parameters (S101). The search device 150 checks for each component (S102) whether it is an existing component already registered in the management database 120 (S103). If it is not an existing component, a component ID is assigned (S104) and the component is registered in the component information table 530 of the management database 120 (S105). If items other than the required items are not entered in the component information table 530, NULL is set as the initial value. In the case of an existing component, S104 to S105 are not performed. The above operations of S102 to S105 are repeated for each component.

コンポーネントごとの処理が完了した後に(S106)、検索装置150は、既に管理データベース120に登録済みの既存ソフトウェアかどうかを確認する(S107)。既存ソフトウェアでなければ、ソフトウェアIDを付与して(S108)、管理データベース120のソフトウェア情報テーブル510に登録する(S109)。ソフトウェア情報テーブル510において必須の項目以外が入力されていない場合、初期値としてNULLを設定する。既存ソフトウェアの場合はS108~S109を実施しない。 After processing for each component is completed (S106), the search device 150 checks whether the software is existing and has already been registered in the management database 120 (S107). If it is not existing software, a software ID is assigned (S108) and the software is registered in the software information table 510 of the management database 120 (S109). If items other than the required items have not been entered in the software information table 510, NULL is set as the initial value. If it is existing software, S108 to S109 are not performed.

以上の処理により、ユーザが図3の画面を用いて入力したパラメータに基づいて、各コンポーネントとソフトウェアの属性情報が、管理データベース120のソフトウェア情報テーブル510とコンポーネント情報テーブル530に設定される。 Through the above process, attribute information for each component and software is set in the software information table 510 and component information table 530 of the management database 120 based on the parameters entered by the user using the screen in Figure 3.

図5は、管理装置140が検索インデックスを作成して登録する手順を示すフローチャートである。この処理は、図4の登録処理と同様に、ユーザが図3の画面を用いて入力したパラメータを表示・入力装置110が受け付け、管理装置140がそのパラメータを読み込み、該当のパラメータから検索用のキーワードを抽出し、管理データベース120の検索語514または534として登録する処理である。 Figure 5 is a flowchart showing the procedure by which the management device 140 creates and registers a search index. In this process, similar to the registration process in Figure 4, the display/input device 110 accepts parameters entered by the user using the screen in Figure 3, the management device 140 reads the parameters, extracts search keywords from the parameters, and registers them as search terms 514 or 534 in the management database 120.

管理装置140は、表示・入力装置110からパラメータを受け付け(S201)、コンポーネント毎(S202)に以下を実施する。まず、取り込んだファイルの書式や書かれている言語特性を把握する(S203)。日本語の場合、日本語の特徴に合せて、文節毎に区切って、キーワードを抽出していく。その後、助詞や助動詞などを分離し、特徴のあるキーワードのみを抽出する(S204)。あらかじめ特徴語のリストを用意しておき、それを重点的に抽出してもよい。たとえば、建設現場においてデータ収集するソフトウェアに関しては、寒冷地や通常地などの想定される条件に関する単語や、エンジンやポンプなどの機械の部位に関する単語が、特徴語の候補として考えられる。事前に特徴語を抽出するようなモデルを作成してもよい。モデルを構築するための統計量の1例として、TF-IDFを用いてもよい。これは、文章中で多く使われている単語の内、他の文章においてあまり使用されていない単語が大きな値となる指標である。この指標は、「ある文章中において出現頻度が多い単語は重要な単語である」という仮定に基づく。ソフトウェアが属しているカテゴリの情報、ソフトウェア名、および説明文に含まれる名詞(言葉または文字列)の出現頻度を学習させ、モデル化することにより、ソフトウェアの特徴語を算出してもよい。同じ目的を達成するソフトウェアは、同じカテゴリに属していると考えられ、同様に、同じ目的を達成するならば、ソフトウェア名や説明文に対して、ソフトウェアの特性を表すキーワードの出現頻度が似ている傾向があるからと想定されるからである。管理装置140は、抽出したキーワードを検索語としてコンポーネント情報テーブル530に登録する(S205)。 The management device 140 receives parameters from the display/input device 110 (S201) and performs the following for each component (S202). First, the format of the imported file and the language characteristics of the written file are understood (S203). In the case of Japanese, keywords are extracted by dividing the file into phrases according to the characteristics of Japanese. Then, particles and auxiliary verbs are separated and only characteristic keywords are extracted (S204). A list of characteristic words may be prepared in advance and extracted with a focus on them. For example, for software that collects data at a construction site, words related to expected conditions such as cold regions and normal regions, and words related to parts of machines such as engines and pumps are considered as candidates for characteristic words. A model that extracts characteristic words in advance may be created. TF-IDF may be used as an example of a statistic for constructing a model. This is an index in which words that are used frequently in a sentence but are not used often in other sentences have a large value. This index is based on the assumption that "words that appear frequently in a sentence are important words." The characteristic words of the software may be calculated by learning and modeling the information on the category to which the software belongs, the software name, and the frequency of occurrence of nouns (words or character strings) included in the description. Software that achieves the same purpose is considered to belong to the same category, and similarly, if software achieves the same purpose, it is assumed that the frequency of occurrence of keywords that express the characteristics of the software tends to be similar in the software name and description. The management device 140 registers the extracted keywords as search terms in the component information table 530 (S205).

コンポーネントごとの処理が完了した後に(S206)、パラメータ全体を用いて、ソフトウェアに関するパラメータの言語特性を把握し(S207)、ソフトウェアの特徴語を抽出し(S208)、抽出したキーワードを検索語としてソフトウェア情報テーブル510に登録する(S209)。特徴語を抽出する手法は、コンポーネントの特徴語を抽出する手法と同じである。 After the processing for each component is completed (S206), the parameters as a whole are used to understand the language characteristics of the parameters related to the software (S207), characteristic words of the software are extracted (S208), and the extracted keywords are registered as search terms in the software information table 510 (S209). The method for extracting characteristic words is the same as the method for extracting characteristic words of components.

以上の処理により、ユーザが図3の画面を用いて入力したパラメータから抽出された、各コンポーネントとソフトウェアの検索キーワードが、管理データベース120のソフトウェア情報テーブル510とコンポーネント情報テーブル530に検索インデックス(検索語514と534)として設定される。これにより、特徴語による検索が可能となるので、効果的な検索が可能となる。 Through the above process, the search keywords for each component and software extracted from the parameters entered by the user using the screen in FIG. 3 are set as search indexes (search terms 514 and 534) in the software information table 510 and component information table 530 in the management database 120. This enables searches using characteristic words, making searches more effective.

図3の画面に対してユーザが入力する内容に応じて、抽出される特徴語は異なる。適切な特徴語を抽出するためには、図3の画面における入力方法を指定すると望ましい。たとえば、必須の項目を設定するほか、入力文字数の下限を設定し、それ以上の文字数であることを強制してもよい。また、上述の特徴語抽出処理を用いて、該当のアプリまたはコンポーネントの情報からどのような特徴語が登録されるかをリアルタイムで表示してもよいし、下記で説明する検索処理により過去の類似の登録情報を検索し、参考情報として提示してもよい。 The extracted feature words will vary depending on what the user inputs on the screen in Figure 3. In order to extract appropriate feature words, it is desirable to specify the input method on the screen in Figure 3. For example, in addition to setting required items, a minimum number of characters may be set and the number of characters must be greater than this limit. Furthermore, using the above-mentioned feature word extraction process, it is possible to display in real time what feature words will be registered from the information on the relevant app or component, or to search for similar registered information in the past using the search process described below and present it as reference information.

ユーザとしては、適切な特徴語が登録されるように、入力する情報を適切に選択する必要がある。たとえば、機械のエンジンの異常診断のために、エンジンの稼働音を収集する目的のアプリを登録する場合、「アプリ名」に「エンジンの稼働音収集アプリ」、「アプリ説明」に「稼働音を用いたエンジンの異常診断用です」などのように、アプリの収集目的が分かるように入力内容を選択することが望ましい。上記のエンジンの稼働音を収集する目的のアプリを構成するコンポーネントを登録する場合、「コンポーネント名」に「エンジンの稼働音収集」、「コンポーネント説明」に「エンジンの稼働音収集用です」などのように、コンポーネントの収集対象に関する情報が分かるように入力内容を選択することが望ましい。図3の表示例では、寒冷地や通常地などの想定される条件に関する単語や、エンジンやポンプなどの機械の部位に関する単語を「名称」または「説明」に入力することが、適切な特徴語を抽出するために有効である。 The user must select the appropriate information to be entered so that the appropriate feature words are registered. For example, when registering an app that collects engine operating sounds to diagnose engine abnormalities, it is desirable to select the input content so that the purpose of the app is clear, such as "App name" being "Engine operating sound collection app" and "App description" being "For engine abnormality diagnosis using operating sounds." When registering a component that constitutes the app that collects engine operating sounds, it is desirable to select the input content so that the information on the component's collection target is clear, such as "Component name" being "Engine operating sound collection" and "Component description" being "For collecting engine operating sounds." In the display example of FIG. 3, it is effective to enter words related to expected conditions such as cold regions and normal regions, or words related to machine parts such as engines and pumps in "Name" or "Description" in order to extract appropriate feature words.

図6は、ソフトウェアの使用実績を登録するために用いる使用実績登録画面の例である。使用実績登録画面は、すでに開発されたソフトウェアの使用実績を登録するために用いる画面であり、端末200上に表示される。端末200上で所定の操作を行うことにより、図6の画面が表示される。 Figure 6 is an example of a usage history registration screen used to register software usage history. The usage history registration screen is a screen used to register usage history of software that has already been developed, and is displayed on terminal 200. The screen in Figure 6 is displayed by performing a specified operation on terminal 200.

収集条件入力領域630は、収集方法を手入力/自動から選択し、収集対象をソフトウェア/コンポーネントから選択し、該当のIDを選択する領域である。諸情報入力領域631は、選択された登録方法に応じてユーザがAPI(Application Program Interface)の設定を入力する領域である。格納情報入力領域632は、収集された使用実績の登録形式を設定する領域、登録開始ボタン633は、使用実績の登録を開始するボタンである。 The collection condition input area 630 is an area where the collection method is selected from manual input/automatic input, the collection target is selected from software/components, and the corresponding ID is selected. The miscellaneous information input area 631 is an area where the user inputs API (Application Program Interface) settings according to the selected registration method. The storage information input area 632 is an area where the registration format of the collected usage history is set, and the start registration button 633 is a button that starts registering the usage history.

収集方法選択ボックス634は、利用する実績収集の方法を選択するボックスである。選択可能な収集方法としては例えば、(a)格納情報入力領域632を介してユーザに使用実績をテキスト入力させる「手入力」方法、(b)一般に各種のソフトウェアにあらかじめ所定の処理を実現するために用意されているAPIを用いて、ソフトウェアに格納されている、該当ソフトウェアの最終更新日、該当ソフトウェアの最新のデータ収集日、などの使用実績を取得する「自動」方法、がある。自動のタイプを収集方法選択ボックス634から選択することにより、諸情報入力領域631が表示される。 The collection method selection box 634 is a box for selecting the method of collecting results to be used. Selectable collection methods include, for example, (a) a "manual input" method in which the user inputs usage results as text via the stored information input area 632, and (b) an "automatic" method in which usage results such as the last update date of the software and the most recent data collection date of the software are obtained using an API that is generally provided in advance in various software to realize predetermined processing. By selecting the automatic type from the collection method selection box 634, the various information input area 631 is displayed.

登録者が、図6の画面において、収集条件入力領域630、諸情報入力領域631、格納情報入力領域632を入力し、登録開始ボタン633を押すと、実績収集装置130は情報収集の処理を開始する。図3と同様に設定ファイルによって自動入力してもよい。後述する作成装置300が登録処理を実施する場合は、端末200を介さずに、自動で作成装置300より各情報が入力され、登録指示がなされる。 When the registrant enters information in the collection condition input area 630, miscellaneous information input area 631, and storage information input area 632 on the screen in FIG. 6 and presses the registration start button 633, the performance collection device 130 starts the information collection process. As in FIG. 3, the information may be entered automatically using a setting file. When the creation device 300, which will be described later, performs the registration process, each piece of information is entered automatically from the creation device 300, without going through the terminal 200, and a registration instruction is issued.

諸情報入力領域631と格納情報入力領域632の詳細については、後述する具体例を用いて説明する。 Details about the miscellaneous information input area 631 and the storage information input area 632 will be explained using specific examples later.

実績収集装置130は、まず入力されたパラメータを取り込む。実績収集装置130は、指定された方法に応じて収集項目を収集し、対象のソフトウェアまたはコンポーネントの使用実績として、管理装置140を介して、管理データベース120のソフトウェア使用実績テーブル520またはコンポーネント使用実績テーブル540に登録する。収集できなかった項目については、初期値としてNULLを設定する。 The performance collection device 130 first takes in the input parameters. The performance collection device 130 collects the collection items according to the specified method, and registers them in the software usage performance table 520 or component usage performance table 540 of the management database 120 via the management device 140 as usage performance of the target software or component. For items that could not be collected, NULL is set as the initial value.

使用実績を「手入力」によって収集する方法の詳細を説明する。格納情報入力領域632の各項目についてユーザが入力し、実績収集装置130はその入力された値を使用実績として取得する。実績収集装置130は、収集条件入力領域630と格納情報入力領域632に基づいて、各項目をテーブルに格納する。 A method for collecting usage records by "manual input" is explained in detail below. The user inputs information for each item in the storage information input area 632, and the performance record collecting device 130 acquires the input values as usage records. The performance record collecting device 130 stores each item in a table based on the collection condition input area 630 and the storage information input area 632.

諸情報入力領域631と格納情報入力領域632の詳細について、使用実績を「自動」によって収集する場合における例を用いて説明する。登録者は、諸情報入力領域631の自動収集設定に、使用実績を収集するために用いるプログラムを入力する。図6の「実行プログラム」欄はそのソースコード例である。この例は、収集ターゲットのソフトウェアに対するHTTPリクエストによって使用実績を収集するものである。したがって、HTTPリクエストのリクエストタイプ(GETまたはPOST)、リクエスト先URL、リクエストパラメータ(keyとvalueのペア)、も入力する必要がある。格納情報入力領域632においては、管理データベース120に格納するデータ項目として、ソースコード内の変数を指定する。図6の例においては、データ数522に対して、ソースコード内の変数dataNumberの値を格納することが指定されている。 Details of the miscellaneous information input area 631 and the stored information input area 632 will be explained using an example in which usage history is collected "automatically." The registrant inputs the program used to collect usage history into the automatic collection setting of the miscellaneous information input area 631. The "Executed Program" field in FIG. 6 is an example of the source code. This example collects usage history by HTTP request to the collection target software. Therefore, it is necessary to input the request type of the HTTP request (GET or POST), the request destination URL, and the request parameters (key and value pair). In the stored information input area 632, variables in the source code are specified as data items to be stored in the management database 120. In the example of FIG. 6, it is specified that the value of the variable dataNumber in the source code is stored for the number of data 522.

以上により、ソフトウェアやコンポーネントについて、使用実績が収集され、管理データベース120に格納される。 As a result, usage history for software and components is collected and stored in the management database 120.

上記では図3と図6の画面を用いて、それぞれ登録開始ボタン616、登録開始ボタン633を押下することによって、登録処理を実行する例を説明したが、後述する作成装置300が登録処理を実施する場合は、入力されたパラメータを対象として、自動で登録処理が実行される。特に、本実施形態については、作成装置300と連動して、自動的に上記の自動登録が実施される。 The above describes an example of executing the registration process by pressing the registration start button 616 and the registration start button 633 using the screens in Figures 3 and 6, respectively. However, when the creation device 300, which will be described later, executes the registration process, the registration process is executed automatically for the input parameters. In particular, in this embodiment, the above-mentioned automatic registration is executed automatically in conjunction with the creation device 300.

図7は、ソフトウェアを作成するようにユーザがソフトウェア作成支援システム1に対して指示する作成指示画面の例である。作成指示画面は、図3の登録開始ボタン616の部分を作成開始ボタン642(作成開始を指示するボタン)と変更したものであり、その他の画面構成は図3と同様である。ユーザが図7の画面において、ソフトウェア基本情報入力領域640、コンポーネント情報入力領域641を入力し、作成開始ボタン642を押すと、情報処理装置100は作成支援の処理を開始する。 Figure 7 is an example of a creation instruction screen on which the user instructs the software creation support system 1 to create software. The creation instruction screen has the registration start button 616 in Figure 3 replaced with a creation start button 642 (a button that instructs the user to start creation), and the other screen configuration is the same as in Figure 3. When the user enters information in the software basic information input area 640 and component information input area 641 on the screen in Figure 7 and presses the creation start button 642, the information processing device 100 starts the creation support process.

図8は、ソフトウェアの作成支援の手順を示すシーケンス図である。新たにデータ収集ソフトウェアを作成しようとしているユーザは、端末200を通じて、構築の対象となる新システムの要件を入力することとなる。管理データベース120には、すでに開発されたソフトウェアの属性情報が既に登録されているものとする。 Figure 8 is a sequence diagram showing the procedure for supporting software creation. A user who is creating new data collection software will input the requirements for the new system to be built via terminal 200. It is assumed that attribute information for software that has already been developed has already been registered in management database 120.

ユーザが図7の画面を用いて、作成しようとしているソフトウェアの属性情報パラメータを入力する(S302)。表示・入力装置110がパラメータを受け付け(S302)、検索装置150はそのパラメータを受け取る。検索装置150は、受け付けたパラメータファイルに含まれるパラメータに基づいて、管理データベース120に対して後述する検索処理を実施することにより、過去に作成した類似のソフトウェアまたはコンポーネントを検索する(S303)。この検索の結果、過去の類似のソフトウェアまたはコンポーネントが見つかった場合(S304:Y)、検索装置150は後述の使用実績を用いてソフトウェアまたはコンポーネントを抽出し(S305)、その結果を端末200に返信する。端末200はその結果を表示する(S306)。これによりユーザは、作成しようとしているソフトウェアと類似する過去のソフトウェアおよびコンポーネントを提示されることになる。 The user inputs attribute information parameters for the software to be created using the screen of FIG. 7 (S302). The display/input device 110 accepts the parameters (S302), and the search device 150 receives the parameters. The search device 150 searches for similar software or components created in the past by performing a search process (described later) on the management database 120 based on the parameters contained in the accepted parameter file (S303). If similar software or components from the past are found as a result of this search (S304: Y), the search device 150 extracts the software or components using usage records (described later) (S305) and returns the results to the terminal 200. The terminal 200 displays the results (S306). This allows the user to be presented with past software and components similar to the software to be created.

S303における検索の結果、過去の類似のソフトウェアまたはコンポーネントが見つからない場合(S304:N)、検索装置150は見つからなかったことを示すフラグを端末200に返信し(S307)、処理を終了する。 If the search in S303 does not find any similar past software or components (S304: N), the search device 150 returns a flag indicating that no similar software or components were found to the terminal 200 (S307), and ends the process.

ユーザは端末200上において、図8の検索によって特定されたソフトウェアまたはコンポーネントを認識し、表示された検索結果の中からソフトウェアやコンポーネントを選択することができる。選択されたソフトウェアやコンポーネントの作成時に入力されたパラメータが自動的に図7の画面に入力される。これにより、過去の類似のソフトウェアやコンポーネントの中から、実績のあるソフトウェアやコンポーネントを参考にしながら、新しいソフトウェアを作成することが可能となる。 On the terminal 200, the user can recognize the software or components identified by the search in FIG. 8, and select the software or component from the displayed search results. The parameters entered when the selected software or component was created are automatically entered into the screen in FIG. 7. This makes it possible to create new software by referring to proven software or components from similar software or components from the past.

図9は、検索装置150による検索処理を説明するフローチャートである。検索装置150は、表示・入力装置110からパラメータを受け付け(S401)、コンポーネント毎(S402)に以下の処理を実施する。検索装置150は、取り込んだパラメータ言語特性を把握する(S403)。日本語の場合、日本語の特徴に合せて、パラメータを文節毎に区切って、キーワード(特徴語)を抽出していく。その後、助詞や助動詞などを分離し、特徴のあるキーワードのみを抽出する(S404)。検索装置150は、抽出した特徴語を用いて、あらかじめ管理データベース120のコンポーネント情報テーブル530に登録されている検索語を探索することにより、検索を実施する(S405)。この検索においては、管理データベース120に登録されている検索語の中から、検索装置150によって抽出された特徴語と一致するものを抽出する。検索装置150は、コンポーネント使用実績テーブル540が格納している使用実績にしたがって優先度を計算し、その優先度にしたがってコンポーネントを順位付けする。その結果に基づきコンポーネントを並び替えて抽出する(S406)。優先度の詳細については後述する。コンポーネントごとの処理が完了した後に(S407)、パラメータ全体を用いて、ソフトウェア属性情報の言語特性を把握し(S408)、ソフトウェア属性情報の特徴語を抽出する(S409)。検索装置150は、ソフトウェア情報テーブル510に登録されている検索語を活用して検索を実施する(S410)。検索装置150は、ソフトウェア使用実績テーブル520が格納している使用実績にしたがって優先度を計算し、その結果に基づきソフトウェアを順位付けして並び替え、結果を抽出する(S411)。 Figure 9 is a flowchart explaining the search process by the search device 150. The search device 150 accepts parameters from the display/input device 110 (S401) and performs the following process for each component (S402). The search device 150 grasps the language characteristics of the imported parameters (S403). In the case of Japanese, the parameters are divided into phrases according to the characteristics of Japanese, and keywords (characteristic words) are extracted. Then, particles and auxiliary verbs are separated, and only characteristic keywords are extracted (S404). The search device 150 performs a search by searching for search terms registered in advance in the component information table 530 of the management database 120 using the extracted characteristic words (S405). In this search, search terms registered in the management database 120 that match the characteristic words extracted by the search device 150 are extracted. The search device 150 calculates a priority according to the usage history stored in the component usage history table 540, and ranks the components according to the priority. Based on the result, the components are rearranged and extracted (S406). Details of the priority will be described later. After the processing for each component is completed (S407), the entire parameters are used to grasp the language characteristics of the software attribute information (S408), and characteristic words of the software attribute information are extracted (S409). The search device 150 performs a search using search terms registered in the software information table 510 (S410). The search device 150 calculates the priority according to the usage history stored in the software usage history table 520, ranks and rearranges the software based on the result, and extracts the results (S411).

使用実績は、例えばデータ数522やソフトウェア利用者数523が多いソフトウェアほど実績が高いものとみなすことができる。ソフトウェア使用数542についても同様である。これらの評価項目を組み合わせて評価する適当な評価関数を用いてもよい。 In terms of usage history, for example, the more data items 522 or the more software users 523 there are, the better the software's performance can be considered to be. The same is true for the number of software uses 542. An appropriate evaluation function that combines these evaluation items for evaluation may be used.

検索処理(S405)については、共通する検索語を特定する他に、検索語間の類似度を用いて、類似する検索語を特定してもよい。その場合、類似度の指標の1例としては、コサイン類似度がある。コサイン類似度とは、テキストが似ているとき同じ単語が近い確率で各テキストに出現すると考えられるので、テキスト間に共通する単語がどれだけあるかに基づき類似度を計算するものである。あるいは、似た意味を持つ単語はその単語の周辺に出現する単語が類似するという仮定に基づき、構築された単語をベクトル化する手法を用いて、類似度を計算してもよい。 In the search process (S405), in addition to identifying common search terms, similar search terms may be identified using the similarity between search terms. In this case, one example of an index of similarity is cosine similarity. Cosine similarity is calculated based on how many words are common between texts, since it is believed that when texts are similar, the same words will appear in each text with a similar probability. Alternatively, similarity may be calculated using a method of vectorizing constructed words based on the assumption that words with similar meanings are similar in the words that appear around them.

優先度について詳細を以下に記載する。優先度は、使用実績があり有効なソフトウェアやコンポーネントと評価できるものがより上位の優先順位で表示されるようにするために用いる指標である。優先度をどのように決定するかについて、本実施形態では、2通りの観点で優先度を決定する。1つ目は「データ分析者に基づく優先度決定」、2つ目は「データ収集者に基づく優先度決定」である。 Details about the priority are provided below. The priority is an index used to display software or components that have a history of use and can be evaluated as effective with a higher priority. In this embodiment, the priority is determined from two perspectives. The first is "priority determination based on the data analyst" and the second is "priority determination based on the data collector".

「データ分析者に基づく優先度決定」においては、データ分析者の評価が優先される。たとえば、データ分析者による評価が、ソフトウェアAは「4」、ソフトウェアBは「2」だった場合、ソフトウェアAの方が優先度は高くなる。データ分析者の評価が存在しない、または同じ場合、データ数の多いソフトウェアの方が、データ分析者の観点では、より多くのデータが分析に使用可能なため望ましく、優先度が高くなる。 In "priority determination based on data analysts," the data analyst's evaluation takes precedence. For example, if the data analyst evaluates software A as a "4" and software B as a "2," software A will have a higher priority. If there is no data analyst evaluation or the evaluations are the same, software with a larger amount of data is more desirable from the data analyst's perspective because more data is available for analysis, and so it will have a higher priority.

「データ収集者に基づく優先度決定」においては、データ収集者の評価が優先される。たとえば、データ収集者による評価が、ソフトウェアAは「4」、ソフトウェアBは「2」だった場合、ソフトウェアAの方が優先度は高くなる。データ収集者の評価が存在しない、または同じ場合、データ数の多いソフトウェアの方が、データ収集者の観点では、より多くの使用されたソフトウェアであり、データ収集作業が煩雑でないことが類推可能なため望ましく、優先度が高くなる。コンポーネントの優先度については、データ収集時間の短いコンポーネントの方が、データ収集作業が容易であるため望ましく、優先度が高くなる。 In "priority determination based on data collector", the data collector's evaluation takes precedence. For example, if the data collector's evaluations of software A and software B are "4" and "2", respectively, software A will have a higher priority. If there are no evaluations from the data collector or the evaluations are the same, software with a larger amount of data is preferable because, from the data collector's point of view, it is software that has been used more often and it can be inferred that data collection work is not cumbersome, so it has a higher priority. Regarding component priority, components with shorter data collection times are preferable because data collection work is easier, and so have a higher priority.

検索装置150は、これら2つの観点に基づき、優先度を計算する。例えば、データ数1000以上は5、1000~500は4、500~100は2、100~10は1、10以下は0などと評価し、優先度=データ収集者の評価+データ分析者の評価+データ数の評価、などとして評価する。これらの計算式や点数の配分は、適用するシステムにより変更してもよい。優先度は、適切な如何なる方法で算出されてもよい。優先度のこの計算方法は単なる1例に過ぎない。優先度は使用実績のあるものほど大きい値であるので、より実績があるソフトウェアやコンポーネントが上位の優先順位になるように検索結果が表示されることになる。表示されるソフトウェアやコンポーネントの数については、あらかじめ決めておいてもよいし、一定以上の優先度のソフトウェアやコンポーネントのみを表示することとしてもよい。 The search device 150 calculates the priority based on these two viewpoints. For example, 1000 or more data items are evaluated as 5, 1000-500 as 4, 500-100 as 2, 100-10 as 1, and 10 or less as 0, and the evaluation is performed as follows: priority = data collector's evaluation + data analyst's evaluation + number of data items. These calculation formulas and point distributions may be changed depending on the system to be applied. The priority may be calculated by any appropriate method. This method of calculating the priority is merely one example. The priority value is higher for items with a history of use, so the search results are displayed so that software and components with a history of use are given higher priority. The number of software and components to be displayed may be determined in advance, or only software and components with a certain or higher priority may be displayed.

以上により、利用者がソフトウェアやコンポーネントを検索する上で、より使用実績があるものを利用者に提示し、より効率的なソフトウェアやコンポーネントの再利用を促すことができる。 As a result, when users search for software or components, they can be presented with software or components that have a longer history of use, encouraging more efficient reuse of software and components.

端末200は、上述の検索処理によって情報処理装置100から送信されたソフトウェアとコンポーネントの情報を、所定のGUI上でソフトウェア・コンポーネント一覧として表示する。端末200は、この一覧のうちどのソフトウェアとコンポーネントの情報を参照するかについて、利用者からの指示を受け付ける。ユーザが選択したソフトウェアやコンポーネントを作成するとき入力されたパラメータが、自動的に図7の画面に入力される。 The terminal 200 displays the software and component information sent from the information processing device 100 by the above-mentioned search process as a software and component list on a specified GUI. The terminal 200 accepts instructions from the user as to which software and component information from this list to refer to. The parameters entered when creating the software and components selected by the user are automatically entered into the screen of FIG. 7.

これら一連の処理により、過去の類似のソフトウェアやコンポーネントの中から、実績のあるソフトウェアやコンポーネントを参考にしながら、新しいソフトウェアを作成することが可能となる。 This series of processes makes it possible to create new software by referring to proven software and components from similar software and components from the past.

図10は、ソフトウェアの作成支援の別手順を示すシーケンス図である。新たにデータ収集ソフトウェアを構築しようとしている利用者は、端末200を通じて、構築の対象となる新システムの要件を入力することとなる。管理データベース120には、既に開発されたソフトウェアの属性情報が既に登録されているものとする。 Figure 10 is a sequence diagram showing another procedure for supporting software creation. A user who is building new data collection software will input the requirements for the new system to be built via terminal 200. It is assumed that attribute information for software that has already been developed has already been registered in management database 120.

ユーザが図7の画面を用いて設定情報を入力し(S501)、表示・入力装置110が設定情報を受け付ける(S502)。検索装置150は表示・入力装置110からパラメータを受け取り、受け付けたパラメータに基づいて、管理データベース120に対して後述する検索処理を実施することにより、過去に作成した類似のソフトウェアまたはコンポーネントを検索する(S503)。検索の結果、過去の類似のソフトウェアまたはコンポーネントが見つかった場合(S504:Y)、検索によって特定したソフトウェアの属性情報を表示・入力装置110に返信する(S505)。この返信にともなって、「過去に類似のソフトウェアが作成されているが、それでも作成するかどうか」を、利用者に対して照会する。端末200は、利用者からデプロイ可否の最終指示を受け付ける(S506)。その後、利用者がデプロイすると判断し、その指示を端末200に入力した場合(S507:Y)、端末200は、デプロイ実行の指示を受けて、これを実行装置160に通知する(S508)。利用者がデプロイしないと判断し、その指示を端末200に入力した場合(S507:N)、デプロイ指示はされずに、処理は終了する。 The user inputs the setting information using the screen of FIG. 7 (S501), and the display/input device 110 accepts the setting information (S502). The search device 150 receives parameters from the display/input device 110, and searches for similar software or components created in the past by performing a search process described later on the management database 120 based on the accepted parameters (S503). If similar software or components are found in the past as a result of the search (S504: Y), attribute information of the software identified by the search is returned to the display/input device 110 (S505). Along with this reply, the user is asked, "Similar software has been created in the past, but do you still want to create it?" The terminal 200 accepts a final instruction from the user as to whether or not to deploy (S506). If the user then decides to deploy and inputs that instruction into the terminal 200 (S507: Y), the terminal 200 receives an instruction to execute the deployment and notifies the execution device 160 of this (S508). If the user decides not to deploy and inputs that instruction into the terminal 200 (S507: N), no deployment instruction is issued and the process ends.

S503の検索の結果、過去の類似のソフトウェアまたはコンポーネントが見つからない場合(S504:N)、デプロイ実行の指示を受けて、これを実行装置160に通知する(S508)。この通知を受けた実行装置160は、作成装置300を介して、端末200によって指定された該当ソフトウェアのデプロイを後述の処理により実行する(S508)。 If the search in S503 does not find any similar software or components from the past (S504: N), an instruction to execute the deployment is received and notified to the execution device 160 (S508). Upon receiving this notification, the execution device 160 executes the deployment of the software specified by the terminal 200 via the creation device 300 by the process described below (S508).

以上により、要件に応じた過去の類似ソフトウェアを参照させることによって、類似のソフトウェアの乱立を防ぎ、意味のあるソフトウェア作成のみを許可することができる。 By referencing similar software from the past that meets the requirements, it is possible to prevent the proliferation of similar software and to allow only meaningful software to be created.

図11は、端末200に表示される管理画面の例を示す。図11に示すように、管理画面は、ユーザが表示対象を選択する表示対象選択ボックス650と、ユーザが表示する対象をあらかじめ用意された候補から選択する表示対象カテゴリー選択ボックス651と、ユーザが検索する条件やキーワードを入力する検索ボックス652と、表示部653とを表示する。 Figure 11 shows an example of a management screen displayed on terminal 200. As shown in Figure 11, the management screen displays a display target selection box 650 in which the user selects a display target, a display target category selection box 651 in which the user selects a display target from pre-prepared candidates, a search box 652 in which the user inputs search conditions and keywords, and a display section 653.

管理画面の表示部653には、後述する表示対象選択ボックス650、表示対象カテゴリー選択ボックス651、検索ボックス652により入力された表示条件をもとに、管理データベース120に登録されているソフトウェアまたはコンポーネントが一覧表示されている。ユーザは、表示されている一覧からソフトウェアまたはコンポーネントを選択し、対象の詳細情報を表示する。 The display section 653 of the management screen displays a list of software or components registered in the management database 120 based on the display conditions entered in the display target selection box 650, the display target category selection box 651, and the search box 652, which will be described later. The user selects software or a component from the displayed list and displays detailed information about the selected software or component.

表示対象選択ボックス650においてユーザは、表示対象として、ソフトウェア(アプリ)とコンポーネントのいずれかを選択する。表示対象カテゴリー選択ボックス651においてユーザは、表示対象のカテゴリーを、あらかじめ用意されたカテゴリーの候補から選択する。表示対象カテゴリー選択ボックス651で選択したキーワードは表示・入力装置110が受け付け、検索装置150に受け渡す。検索装置150において、受け付けたキーワードに基づいて、前述の検索処理を実施し、過去に作成した類似のソフトウェアまたはコンポーネントを検索し、検索結果を表示部653に表示する。表示対象カテゴリー選択ボックス651は、図のように選択肢を選ぶ形に限られない。たとえば、機械のある部位に関連するソフトウェアを表示させたい場合、部位ごとの画像を用意しておき(車体の前面部、後部、足回りなど)部位に対応する影絵を表示して、いずれかをクリックすると、関連するソフトウェアが表示されるようにしてもよい。 In the display target selection box 650, the user selects either software (apps) or components as the display target. In the display target category selection box 651, the user selects the category of the display target from a list of category candidates prepared in advance. The display/input device 110 accepts the keyword selected in the display target category selection box 651 and passes it to the search device 150. The search device 150 performs the above-mentioned search process based on the accepted keyword, searches for similar software or components created in the past, and displays the search results on the display unit 653. The display target category selection box 651 is not limited to the form of selecting an option as shown in the figure. For example, if you want to display software related to a certain part of a machine, you can prepare an image for each part (such as the front part, rear part, or chassis of the vehicle) and display a silhouette corresponding to the part, so that clicking on one of them will display the related software.

検索ボックス652は、ユーザ自身が任意のキーワードを入力するボックスである。具体的には、この手入力ボックスでは、ユーザにキーボード等から任意のキーワードを入力させ、入力したキーワードを表示・入力装置110が受け付け、検索装置150に受け渡す。検索装置150は、受け付けたキーワードに基づいて、前述の検索処理を実施し、過去に作成した類似のソフトウェアまたはコンポーネントを検索し、検索結果を表示部653に表示し、ユーザに提示する。 The search box 652 is a box into which the user himself/herself inputs any keyword. Specifically, in this manual input box, the user inputs any keyword from a keyboard or the like, and the input keyword is accepted by the display/input device 110 and passed to the search device 150. The search device 150 performs the above-mentioned search process based on the accepted keyword, searches for similar software or components created in the past, and displays the search results on the display unit 653 and presents them to the user.

これら一連の操作により、複数作成されたソフトウェアの中で有効なソフトウェアを労力少なく見つけることができるので、ユーザがソフトウェアを作成する際に情報処理装置100がサポートすることができる。 This series of operations allows the user to easily find useful software among multiple created software programs, so the information processing device 100 can support the user when creating software.

本実施形態におけるソフトウェアの作成方法の実施手順について図12に基づき説明する。以下で説明するソフトウェアの作成方法に対応する各種動作は、作成装置300がメモリ等に読み出して実行するプログラムによって実現される。このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。 The procedure for implementing the software creation method in this embodiment will be described with reference to FIG. 12. The various operations corresponding to the software creation method described below are realized by a program that the creation device 300 reads into a memory or the like and executes. This program is composed of code for performing the various operations described below.

図12は、作成装置300がソフトウェアを作成する手順を示すフローチャートである。過去のソフトウェアとコンポーネントのなかで、ユーザが所望する機能を備えるものが見つからない場合、作成装置300はユーザが所望するソフトウェアを新規作成する。ここではデータレイク作成プログラムとデータ管理ソフトウェアを作成する例を説明する。データレイク作成プログラムは、端末200から入力された設定に基づいて、データ収集内容を携帯端末420に表示させ、収集結果を受け付けるためのデータ収集ソフトウェアを生成し、ネットワーク10を介してデータ収集ソフトウェアを携帯端末420に提供し、ネットワーク10を介して携帯端末420から収集結果を受信し格納するプログラムである。データ管理ソフトウェアは、当該データレイクからデータを抽出し適宜ユーザに提供するソフトウェアである。 Figure 12 is a flowchart showing the procedure by which the creation device 300 creates software. If the user cannot find any software and components with the functions he or she desires among the past software and components, the creation device 300 creates new software that meets the user's desire. Here, an example of creating a data lake creation program and data management software will be described. The data lake creation program is a program that displays data collection contents on the mobile terminal 420 based on settings input from the terminal 200, generates data collection software for accepting the collection results, provides the data collection software to the mobile terminal 420 via the network 10, and receives and stores the collection results from the mobile terminal 420 via the network 10. The data management software is software that extracts data from the data lake and provides it to the user as appropriate.

具体的には、本フローチャートにおけるソフトウェア作成は、テンプレートとパラメータを入力として、テンプレート中の変数をパラメータに基づき置き換えるテンプレートエンジンによって、あらかじめ用意されたテンプレートから、利用者が入力したパラメータを反映した各種ソースコードを作成することにより、実現可能である。 Specifically, the software in this flowchart can be created by using a template engine that takes a template and parameters as input and replaces variables in the template based on the parameters, creating various source codes from pre-prepared templates that reflect the parameters entered by the user.

あるデータ収集の目的を持って、その要件を満たすデータ収集ソフトウェアを作成したい利用者は、端末200を操作し、情報処理装置100にアクセスして作成処理を開始する。 A user who has a specific data collection objective and wishes to create data collection software that meets those requirements operates the terminal 200, accesses the information processing device 100, and starts the creation process.

はじめに、表示・入力装置110は、適宜なインターフェースを介して、上述の要件を満たす要求を受け付ける。ユーザは図7の画面を用いて、作成するソフトウェアの属性情報パラメータを入力する。端末200はそのパラメータを作成装置300へ送信する。端末200と作成装置300との間の情報授受は表示・入力装置110が仲介することを前提としているが、説明の簡明化のため、以降の説明においては表示・入力装置110の仲介処理については省略するものとする(以下同様)。 First, the display/input device 110 accepts a request that meets the above requirements via an appropriate interface. The user inputs attribute information parameters for the software to be created using the screen in FIG. 7. The terminal 200 transmits the parameters to the creation device 300. It is assumed that the display/input device 110 mediates the exchange of information between the terminal 200 and the creation device 300, but for the sake of simplicity, the mediation process of the display/input device 110 will be omitted from the following explanation (same below).

作成装置300は、表示・入力装置110からパラメータを受け付ける(S601)。作成装置300は、受け付けたパラメータに基づいて、テンプレートデータベース310からデータ収集ソフトウェア用のテンプレートを選択し(S602)、そのテンプレート中の所定の引数を、受け取ったパラメータに置き換えることにより、データ収集ソフトウェアのソースコードを生成する(S603)。データ収集ソフトウェアのソースコードが完成したとき、コンパイルが必要な言語でソースコードが記述されている場合、データ収集ソフトウェアのソースコードのコンパイルを実行する。 The creation device 300 receives parameters from the display/input device 110 (S601). The creation device 300 selects a template for the data collection software from the template database 310 based on the received parameters (S602), and generates source code for the data collection software by replacing a specific argument in the template with the received parameters (S603). When the source code for the data collection software is complete, if the source code is written in a language that requires compilation, the source code for the data collection software is compiled.

作成装置300は、データ収集ソフトウェアを携帯端末420に提供する(S604)。たとえば、データ収集ソフトウェアをネットワーク10上で公開することにより、携帯端末420にダウンロードさせることもできる。あるいは、JSON形式などの適当なフォーマットでパラメータを携帯端末420上に存在するソフトウェアに対して送信し、ソフトウェアがパラメータを読み込むことにより、データ収集ソフトウェアが作成されるようにしてもよい。この技術は、近年Javascriptによってスマートフォンソフトウェア開発を可能としているReactNative等の公知技術により、実現可能である。 The creation device 300 provides the data collection software to the mobile terminal 420 (S604). For example, the data collection software can be made public on the network 10 so that it can be downloaded to the mobile terminal 420. Alternatively, parameters can be sent to software present on the mobile terminal 420 in an appropriate format such as JSON format, and the software can read the parameters to create the data collection software. This technology can be realized using publicly known technology such as ReactNative, which has recently enabled smartphone software development using Javascript.

データ収集ソフトウェアは、データレイクへアクセスするためのパラメータを保持しているので、データレイクに対して収集したデータを送信することができる。このアクセス情報に関しては、ユーザに入力させてもよいし、データレイク生成プログラムやデータ管理ソフトウェアを生成する際に、自動でアクセス情報をデータ収集ソフトウェアへ送信してもよい。 The data collection software holds parameters for accessing the data lake, so it can send collected data to the data lake. This access information may be entered by the user, or it may be sent automatically to the data collection software when the data lake generation program or data management software is generated.

データ収集ソフトウェアは、上述のユーザが入力したパラメータに基づき変更されるコンポーネント以外に、基本的なコンポーネントがデフォルトで含まれている。たとえば、データレイクへのアクセス情報をもとにデータを格納する機能に関しては、図7の画面上では定義していないが、これはそのアクセス情報がデータ収集ソフトウェアのソースコードに含まれているからである。このように、あらかじめ実現されている機能に関しては説明を割愛する。データ収集ソフトウェアは基本的な機能の他にも例えば、携帯端末420がネットワーク10に接続していないとき、すなわちオフラインのときには収集データを格納しておき、携帯端末420がネットワーク10に接続したとき、すなわちオンラインになったときに格納されたデータをデータレイクへ送信する機能を有する。これにより、基本的にオフラインが想定される建設現場においても、携帯端末420の移動にともない、オフラインからオンラインになった際にデータをデータレイクへ送信することができるので、効果的にデータを収集可能である。 The data collection software includes basic components by default, in addition to the components that are changed based on the parameters entered by the user. For example, the function of storing data based on access information to the data lake is not defined on the screen of FIG. 7, because the access information is included in the source code of the data collection software. Thus, the description of functions that are realized in advance will be omitted. In addition to the basic functions, the data collection software also has a function of storing collected data when the mobile terminal 420 is not connected to the network 10, i.e., offline, and transmitting the stored data to the data lake when the mobile terminal 420 connects to the network 10, i.e., goes online. As a result, even at a construction site where offline is basically expected, data can be transmitted to the data lake when the mobile terminal 420 goes from offline to online as it moves, making it possible to collect data effectively.

作成装置300は、データレイク生成プログラムのソースコードテンプレート中の所定の引数を、受け取ったパラメータに置き換えることにより、データレイク生成プログラムのソースコードを生成する(S605)。そして、データレイク生成プログラムのソースコードが完成したとき、コンパイルが必要な言語でソースコードが記述されている場合、データレイク生成プログラムのソースコードのコンパイルを実行する。作成装置300は、ネットワーク10を介してデータレイク生成プログラムをデータ管理装置410に対して送信する(S606)。作成装置300は、データ管理装置410に対して、そのデータレイク生成プログラムを実行するように指示する(S607)。データ管理装置410は、受信したデータレイク生成プログラムを実行することにより、データベースを含むデータレイクを作成する。 The creation device 300 generates source code for the data lake generation program by replacing a specific argument in the source code template of the data lake generation program with the received parameters (S605). Then, when the source code of the data lake generation program is completed, if the source code is written in a language that requires compilation, the creation device 300 compiles the source code of the data lake generation program. The creation device 300 transmits the data lake generation program to the data management device 410 via the network 10 (S606). The creation device 300 instructs the data management device 410 to execute the data lake generation program (S607). The data management device 410 creates a data lake including a database by executing the received data lake generation program.

ここで作成されるデータベースが持つデータテーブルは、データ収集ソフトウェアが収集するデータ項目と対応したデータ構造を有する。ただし、音声や画像といった非構造化データは、データベースで管理することが難しいので、非構造化データの格納場所を示すUniform Resource Identifier(URI)形式でデータテーブルに蓄積し、非構造化データは指定の格納場所に蓄積する。このように、構造化データと非構造化データを格納するデータレイクが作成される。データ管理装置410は、携帯端末420によって収集されたデータを格納する際、データレイクのアクセス情報に基づきデータレイクにアクセスし、該当するデータレイクに収集結果のデータを格納する。 The data tables in the database created here have a data structure that corresponds to the data items collected by the data collection software. However, since unstructured data such as audio and images are difficult to manage in a database, they are stored in the data tables in the Uniform Resource Identifier (URI) format that indicates the storage location of the unstructured data, and the unstructured data is stored in a specified storage location. In this way, a data lake that stores structured data and unstructured data is created. When storing data collected by the mobile terminal 420, the data management device 410 accesses the data lake based on the data lake access information and stores the collected data in the relevant data lake.

作成装置300は、データ管理ソフトウェア用のテンプレート中の所定の引数を、パラメータファイル中のパラメータに置き換え、データ管理ソフトウェアのソースコードを生成する(S608)。そして、データ管理ソフトウェアのソースコードが完成したとき、コンパイルが必要な言語でソースコードが記述されている場合、データ管理ソフトウェアのソースコードのコンパイルを実行する。作成装置300は、ネットワーク10を介してデータ管理ソフトウェアをデータ管理装置410に対して送信する(S609)。作成装置300は、データ管理装置410に対してそのデータ管理ソフトウェアをデプロイするように指示する(S610)。データ管理装置410は、受信したデータ管理ソフトウェアをデプロイする。 The creating device 300 replaces the specified arguments in the template for the data management software with the parameters in the parameter file to generate source code for the data management software (S608). Then, when the source code for the data management software is completed, if the source code is written in a language that requires compilation, the creating device 300 compiles the source code of the data management software. The creating device 300 transmits the data management software to the data management device 410 via the network 10 (S609). The creating device 300 instructs the data management device 410 to deploy the data management software (S610). The data management device 410 deploys the received data management software.

データ管理ソフトウェアは、データレイクへアクセスするためのパラメータを保持しているので、データレイクからデータを読み出し、ユーザへ提示することができる。これにより、ユーザはデータ管理ソフトウェアを通じてデータの確認やダウンロードをすることができる。たとえば、CSV形式で書き出せば、ダウンロードしたデータを表計算ソフトなどに読み込むことにより、簡単に集計および図表化することができ、様々な解析が可能となる。 The data management software holds the parameters for accessing the data lake, so it can read data from the data lake and present it to the user. This allows the user to check and download the data through the data management software. For example, if the data is written in CSV format, the downloaded data can be easily compiled and graphed by loading it into a spreadsheet program, enabling various analyses.

データ管理ソフトウェアは、分析環境と連携するために、分析に用いる各データをダウンロードする機能のほかに、選択したデータを分析環境上で読み取るコードを発行する連携機能があってもよい。これによって、分析者は分析環境との連携機能によってすぐさまデータ分析を実施できる。この機能は例えばGraphQLという公知の手法によって実現できる。GraphQLは、データの関係性を含めてデータ型を定義するスキーマと、スキーマに基づきデータ型毎にどのようにデータにアクセスするのかという定義をするリゾルバを用いることにより、既存のデータ蓄積方式を変更せず、データ活用を可能とする。 In order to link with the analysis environment, the data management software may have a function to download each data used in the analysis, as well as a linking function to issue a code to read selected data in the analysis environment. This allows the analyst to immediately perform data analysis using the linking function with the analysis environment. This function can be realized, for example, by a well-known technique called GraphQL. GraphQL makes it possible to utilize data without changing the existing data storage method by using a schema that defines data types including data relationships, and a resolver that defines how to access data for each data type based on the schema.

データレイクとデータ管理ソフトウェアが用意されるデータ管理装置410は、物理的に用意されたサーバ以外にも、仮想化されたソフトウェア機能やプラットフォーム機能、ハードウェア機能を用いてもよい。たとえば、近年利用が拡大されているソフトウェアをファイルシステムや依存するライブラリといった実行環境ごとパッケージ化(コンテナ化)することが可能なコンテナ技術を用いることが考えられる。具体的には、Docker社が中心になって開発しているOpen Source Software(OSS)のコンテナ実行・管理ツールであるDockerを用いた場合は、Dockerfileスクリプトからコンテナのイメージを作成することが可能であり、コンテナのイメージ(ソフトウェア)のビルド、デプロイ、実行が可能である。これを用いることにより、データレイク生成プログラムをコンテナのビルドの際に実行し、データレイクを生成し、同時にデータ管理ソフトウェアをビルド、デプロイ、実行することが可能である。また、Dockerの場合、遠隔にある機能をネットワーク越しに呼び出すためのインターフェースであるWebAPIを用いて、Dockerに上述の処理を指示することができる。 The data management device 410 on which the data lake and data management software are prepared may use virtualized software functions, platform functions, and hardware functions in addition to physically prepared servers. For example, it is possible to use container technology, which has been widely used in recent years, that can package (containerize) software with its execution environment, such as a file system and dependent libraries. Specifically, when using Docker, a container execution and management tool of Open Source Software (OSS) developed mainly by Docker Inc., it is possible to create a container image from a Dockerfile script, and it is possible to build, deploy, and execute the container image (software). By using this, it is possible to execute a data lake generation program when building a container, generate a data lake, and simultaneously build, deploy, and execute the data management software. In addition, in the case of Docker, the above-mentioned processing can be instructed to Docker using WebAPI, which is an interface for calling a remote function over a network.

以上により、利用者は、プログラミングの知識を必要とせず、データを収集するためのシステムを作成することが可能になる。 This allows users to create systems for collecting data without needing programming knowledge.

<実施の形態1:まとめ>
本実施形態1に係るソフトウェア作成支援システム1によれば、ユーザが高度な知識を必要とせず、過去に作成された類似のソフトウェアの中から、使用実績のあるソフトウェアを掲示することにより、過去に作成されたソフトウェアの中で有効なソフトウェアを労力少なく見つけることができる。これにより、ユーザがソフトウェアを作成する際に、情報処理装置100によってサポートすることができる。
<Embodiment 1: Summary>
According to the software creation support system 1 of the first embodiment, the user does not need to have advanced knowledge, and by displaying software that has a proven track record among similar software created in the past, the user can easily find effective software among the software created in the past. This allows the information processing device 100 to support the user when creating software.

本実施形態1に係るソフトウェア作成支援システム1は、ユーザが所望する属性を有する既存ソフトウェア(またはコンポーネント)が見つからない場合は、ソースコードテンプレートの変数をユーザが指定する属性情報にしたがって置き換えることにより、ソフトウェアを新規作成する。これにより、過去に作成されたソフトウェアの中で有効なソフトウェアが存在しない場合であっても、ユーザのリクエストに合致するソフトウェアを作成できる。例えばアルゴリズムなどの基本的部分はユーザのリクエストに合致するソフトウェアであっても、属性情報がユーザのリクエストに合致しないことにより、検索において所望のソフトウェアがヒットしない可能性がある。そのようなソフトウェアであっても、既存ソースコードを利用しつつユーザが指定する属性情報によってパラメータを置き換えることにより、ユーザのリクエストに合致するソフトウェアを作成できる。 When existing software (or components) having the attributes desired by the user cannot be found, the software creation support system 1 according to the first embodiment creates new software by replacing variables in a source code template according to attribute information specified by the user. This makes it possible to create software that meets the user's request even if there is no valid software among previously created software. For example, even if the basic parts of the software, such as an algorithm, meet the user's request, the desired software may not be found in a search because the attribute information does not match the user's request. Even with such software, software that meets the user's request can be created by using existing source code and replacing parameters with attribute information specified by the user.

<実施の形態2>
実施形態1は、作成装置300がソフトウェアを作成することについて説明した。本発明の実施形態2では、作成装置300を用いず、外部の事業者が提供するソフトウェア作成サービスを用いて、ソフトウェアを作成する構成例を説明する。以下では、実施形態1との相違点を中心に説明する。
<Embodiment 2>
In the first embodiment, the creation device 300 creates software. In the second embodiment of the present invention, a configuration example is described in which software is created using a software creation service provided by an external business operator, without using the creation device 300. The following mainly describes the differences from the first embodiment.

図13は、本実施形態2に係るソフトウェア作成支援システム1の構成図である。情報処理装置100は、適宜なネットワーク10を介して、端末200およびソフトウェア提供システム770と通信可能に接続されている。実施形態1と比較すると、作成装置300がソフトウェア提供システム770と変更になっている。 Figure 13 is a configuration diagram of a software creation support system 1 according to the second embodiment. An information processing device 100 is communicably connected to a terminal 200 and a software provision system 770 via an appropriate network 10. Compared to the first embodiment, the creation device 300 has been changed to the software provision system 770.

ソフトウェア提供システム770は、提供事業者が提供する画面を通じて、ユーザが入力した設定に基づき、データ収集システム400が提供されるサービスである。この提供形態は、提供事業者がデータ収集システム400のハードウェアあるいはソフトウェア等の各種リソースをサービスとしてユーザに提供する形式を想定したものである。こうしたサービスの詳細仕様は、利用者側にオープンになるとは限らず、またサービスの仕様が非公開下で変更になる場合もある。したがってこのようなサービスに対して上述の作成支援・管理をする場合、ソフトウェア提供システム770における図7の画面に相当する入力画面が、サービス事業者によって提供されるものに変更される。ソフトウェア提供システム770の公知サービスの1例としては、Teamscopeが提供するMobile Form Builderが挙げられる。 The software provision system 770 is a service that provides the data collection system 400 based on settings entered by the user through a screen provided by the provider. This form of provision is intended to provide the user with various resources, such as the hardware or software of the data collection system 400, as a service. The detailed specifications of such services are not necessarily made public to the user, and the specifications of the service may be changed without disclosure. Therefore, when providing the above-mentioned creation support and management for such services, the input screen corresponding to the screen in Figure 7 in the software provision system 770 is changed to one provided by the service provider. One example of a well-known service of the software provision system 770 is Mobile Form Builder provided by Teamscope.

情報処理装置100に関して、実施形態1と大きく異なる部分について説明する。ソフトウェア提供システム770における図7の画面に相当する入力画面が変更となることが最も大きな相違となる。そこで本実施形態2の情報処理装置100では、表示・入力装置110を介して、ソフトウェア提供システム770の画面を端末200へ表示する。端末200が入力した内容は、表示・入力装置110を介して、ソフトウェア提供システム770の画面に反映される。管理装置140は、表示・入力装置110を介して、出力されている画面からユーザの入力部分を取得し、ソフトウェア情報として管理データベース120へ登録する。登録処理、作成支援、管理に関しては、実施形態1と同じである。また、適宜ソフトウェア提供システム770の画面に応じて、図7の画面に相当する入力画面の項目を変更することにより、実施形態1と同じように、ユーザがソフトウェアを作成することを、情報処理装置100によってサポートすることができる。 The information processing device 100 will be described below with respect to the major differences from the first embodiment. The biggest difference is that the input screen corresponding to the screen of FIG. 7 in the software provision system 770 is changed. Therefore, in the information processing device 100 of the second embodiment, the screen of the software provision system 770 is displayed on the terminal 200 via the display/input device 110. The contents input by the terminal 200 are reflected on the screen of the software provision system 770 via the display/input device 110. The management device 140 acquires the user's input from the output screen via the display/input device 110 and registers it as software information in the management database 120. The registration process, creation support, and management are the same as those of the first embodiment. In addition, by appropriately changing the items on the input screen corresponding to the screen of FIG. 7 according to the screen of the software provision system 770, the information processing device 100 can support the user in creating software in the same way as in the first embodiment.

本実施形態2によれば、既存のソフトウェア提供サービスに対して、過去に作成された類似のソフトウェアの中から、使用実績のあるソフトウェアの設定を掲示することにより、複数のソフトウェアの中で有効なソフトウェアを労力少なく見つけることができる。 According to the second embodiment, by displaying settings for software that has been used successfully among similar software created in the past for existing software provision services, it is possible to find effective software among multiple software with little effort.

<実施の形態3>
実施形態1と2において、作成装置300または外部のソフトウェア提供システム770によって、ソフトウェアを作成する構成例を説明した。本発明の実施形態3では、ソフトウェアの管理のみに特化した構成例を説明する。以下、実施形態1~2との相違点を中心に説明する。
<Third embodiment>
In the first and second embodiments, configuration examples have been described in which software is created by the creation device 300 or the external software providing system 770. In the third embodiment of the present invention, a configuration example specialized only for software management will be described. The following description will focus on the differences from the first and second embodiments.

図14は、本実施形態3に係るソフトウェア作成支援システム1の構成図である。情報処理装置100は、適宜なネットワーク10を介して、端末200と通信可能に接続されている。実施形態1と比較すると、作成装置300と実行装置160が削除されている。 Figure 14 is a configuration diagram of a software creation support system 1 according to the third embodiment. An information processing device 100 is communicably connected to a terminal 200 via an appropriate network 10. Compared to the first embodiment, the creation device 300 and execution device 160 have been deleted.

本実施形態では、ソフトウェア登録画面と実績収集画面を介してのみ、ソフトウェア属性情報とソフトウェア使用実績を管理データベース120へ登録する。本実施形態では、ソフトウェアの検索により、登録されたソフトウェアを管理する。ソフトウェア登録画面は、登録するソフトウェアに応じて柔軟に変更される。 In this embodiment, software attribute information and software usage history are registered in the management database 120 only via the software registration screen and the history collection screen. In this embodiment, registered software is managed by searching for the software. The software registration screen is flexibly changed depending on the software to be registered.

本実施形態によれば、作成装置300やソフトウェア提供システム770以外によって作成されたシステムに関しても、管理することができる。例えば、プログラマーが自分の手で作成したソフトウェアに関しても、本実施形態によれば、管理することができる。 According to this embodiment, it is possible to manage systems created by means other than the creation device 300 or the software provision system 770. For example, according to this embodiment, it is possible to manage software created by a programmer himself.

<本発明の変形例について>
本発明は、前述した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
<Modifications of the present invention>
The present invention is not limited to the above-described embodiment, and includes various modified examples. For example, the above-described embodiment has been described in detail to clearly explain the present invention, and is not necessarily limited to those having all of the configurations described. In addition, it is possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. In addition, it is possible to add, delete, or replace a part of the configuration of each embodiment with another configuration.

1 ソフトウェア作成支援システム
10 ネットワーク
100 情報処理装置
110 表示・入力装置
120 管理データベース
130 実績収集装置
140 管理装置
150 検索装置
160 実行装置
200 端末
300 作成装置
310 テンプレートデータベース
400 データ収集システム
410 データ管理装置
420 携帯端末
510 ソフトウェア情報テーブル
520 ソフトウェア使用実績テーブル
530 コンポーネント情報テーブル
540 コンポーネント使用実績テーブル
1 Software creation support system 10 Network 100 Information processing device 110 Display/input device 120 Management database 130 Performance collection device 140 Management device 150 Search device 160 Execution device 200 Terminal 300 Creation device 310 Template database 400 Data collection system 410 Data management device 420 Portable terminal 510 Software information table 520 Software usage performance table 530 Component information table 540 Component usage performance table

Claims (11)

ユーザが使用するソフトウェアを作成することを支援する情報処理装置であって、
過去に作成されたソフトウェアを識別するソフトウェア識別情報を格納する記憶装置、 前記記憶装置が格納している前記ソフトウェア識別情報を検索する演算装置、
を備え、
前記記憶装置は、前記ソフトウェア識別情報と、前記ソフトウェアの属性を表すソフトウェア属性情報と、前記ソフトウェアの使用実績とを対応付けて格納しており、
前記演算装置は、
前記ユーザが所望する所望ソフトウェアを要求するリクエストを、前記所望ソフトウェアの属性を表す所望ソフトウェア属性情報とともに受け取り、
前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索し、
前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力し、
前記情報処理装置はさらに、前記ソフトウェア識別情報と前記ソフトウェア属性情報を対応付けて前記記憶装置に格納する登録リクエストをユーザが入力するための登録インターフェースを備え、
前記演算装置は、
前記登録インターフェースにおいて入力された前記ソフトウェア属性情報のなかから検索キーワードとして用いることができる第1特徴語を抽出し、
前記抽出した前記第1特徴語を、前記ソフトウェア属性情報としてまたは前記ソフトウェア属性情報とともに、前記記憶装置に格納する
ことを特徴とする情報処理装置。
An information processing device that supports creation of software for use by a user,
a storage device for storing software identification information for identifying software created in the past; and a computing device for searching for the software identification information stored in the storage device.
Equipped with
the storage device stores the software identification information, software attribute information representing attributes of the software, and a usage record of the software in association with each other;
The computing device includes:
receiving a request for desired software desired by the user together with desired software attribute information representing attributes of the desired software;
searching the storage device for software attribute information that matches the desired software attribute information;
outputting the software identification information obtained by the search together with the usage record associated with the software identification information as a response to the request ;
the information processing device further comprises a registration interface for a user to input a registration request for storing the software identification information and the software attribute information in the storage device in association with each other;
The computing device includes:
extracting a first characteristic word that can be used as a search keyword from the software attribute information inputted in the registration interface;
The extracted first characteristic word is stored in the storage device as the software attribute information or together with the software attribute information.
23. An information processing apparatus comprising:
ユーザが使用するソフトウェアを作成することを支援する情報処理装置であって、
過去に作成されたソフトウェアを識別するソフトウェア識別情報を格納する記憶装置、 前記記憶装置が格納している前記ソフトウェア識別情報を検索する演算装置、
を備え、
前記記憶装置は、前記ソフトウェア識別情報と、前記ソフトウェアの属性を表すソフトウェア属性情報と、前記ソフトウェアの使用実績とを対応付けて格納しており、
前記演算装置は、
前記ユーザが所望する所望ソフトウェアを要求するリクエストを、前記所望ソフトウェアの属性を表す所望ソフトウェア属性情報とともに受け取り、
前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索し、
前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力し、
前記ソフトウェアは、前記ソフトウェアの使用実績を出力するためのAPIを備え、
前記演算装置は、
前記APIを介して前記ソフトウェアの使用実績を収集し、
前記収集した前記ソフトウェアの使用実績を、前記ソフトウェア識別情報と対応付けて前記記憶装置に格納する
ことを特徴とする情報処理装置。
An information processing device that supports creation of software for use by a user,
a storage device for storing software identification information for identifying software created in the past; a computing device for searching for the software identification information stored in the storage device;
Equipped with
the storage device stores the software identification information, software attribute information representing attributes of the software, and a usage record of the software in association with each other;
The computing device includes:
receiving a request for desired software desired by the user together with desired software attribute information representing attributes of the desired software;
searching the storage device for software attribute information that matches the desired software attribute information;
outputting the software identification information obtained by the search together with the usage record associated with the software identification information as a response to the request ;
The software includes an API for outputting a usage record of the software,
The computing device includes:
Collecting usage records of the software via the API;
The collected usage record of the software is stored in the storage device in association with the software identification information.
23. An information processing apparatus comprising:
ユーザが使用するソフトウェアを作成することを支援する情報処理装置であって、
過去に作成されたソフトウェアを識別するソフトウェア識別情報を格納する記憶装置、 前記記憶装置が格納している前記ソフトウェア識別情報を検索する演算装置、
を備え、
前記記憶装置は、前記ソフトウェア識別情報と、前記ソフトウェアの属性を表すソフトウェア属性情報と、前記ソフトウェアの使用実績とを対応付けて格納しており、
前記演算装置は、
前記ユーザが所望する所望ソフトウェアを要求するリクエストを、前記所望ソフトウェアの属性を表す所望ソフトウェア属性情報とともに受け取り、
前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索し、
前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力し、
前記ソフトウェアは、データを収集する処理を実装したデータ収集プログラムであり、
前記記憶装置は、前記データを収集する作業を実施するデータ収集者が前記ソフトウェアを評価した結果を表すデータ収集者評価値と、前記データを分析する作業を実施するデータ分析者が前記ソフトウェアを評価した結果を表すデータ分析者評価値とを、前記ソフトウェア識別情報と対応付けて格納しており、
前記演算装置は、複数の前記ソフトウェア識別情報が前記検索によって得られた場合においては、前記検索によって得られた前記ソフトウェア識別情報を、前記データ収集者評価値と前記データ分析者評価値とに基づく優先度にしたがって整列した上で、前記レスポンスとして出力する
ことを特徴とする情報処理装置。
An information processing device that supports creation of software for use by a user,
a storage device for storing software identification information for identifying software created in the past; and a computing device for searching for the software identification information stored in the storage device.
Equipped with
the storage device stores the software identification information, software attribute information representing attributes of the software, and a usage record of the software in association with each other;
The computing device includes:
receiving a request for desired software desired by the user together with desired software attribute information representing attributes of the desired software;
searching the storage device for software attribute information that matches the desired software attribute information;
outputting the software identification information obtained by the search together with the usage record associated with the software identification information as a response to the request ;
the software is a data collection program that implements a process for collecting data;
the storage device stores a data collector evaluation value representing a result of evaluation of the software by a data collector who performs an operation of collecting the data, and a data analyst evaluation value representing a result of evaluation of the software by a data analyst who performs an operation of analyzing the data, in association with the software identification information;
When a plurality of pieces of software identification information are obtained by the search, the arithmetic device sorts the pieces of software identification information obtained by the search in accordance with a priority based on the data collector evaluation value and the data analyst evaluation value, and outputs the sorted pieces of software identification information as the response.
23. An information processing apparatus comprising:
ユーザが使用するソフトウェアを作成することを支援する情報処理装置であって、
過去に作成されたソフトウェアを識別するソフトウェア識別情報を格納する記憶装置、 前記記憶装置が格納している前記ソフトウェア識別情報を検索する演算装置、
を備え、
前記記憶装置は、前記ソフトウェア識別情報と、前記ソフトウェアの属性を表すソフトウェア属性情報と、前記ソフトウェアの使用実績とを対応付けて格納しており、
前記演算装置は、
前記ユーザが所望する所望ソフトウェアを要求するリクエストを、前記所望ソフトウェアの属性を表す所望ソフトウェア属性情報とともに受け取り、
前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索し、
前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力し、
前記記憶装置は、前記ソフトウェアを構成するコンポーネントを識別するコンポーネント識別情報と、前記コンポーネントの属性を表すコンポーネント属性情報と、前記コンポーネントの使用実績とを、前記ソフトウェア識別情報と対応付けて格納しており、
前記演算装置は、
前記所望ソフトウェア属性情報として、前記所望ソフトウェアを構成するコンポーネントの属性を表す所望コンポーネント属性情報を受け取り、
前記所望コンポーネント属性情報に適合する前記コンポーネント属性情報を前記記憶装置から検索し、
前記検索によって得られた前記コンポーネント識別情報を、前記コンポーネント識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力し、
前記コンポーネントは、データを収集する処理を実装したデータ収集コンポーネントであり、
前記記憶装置は、前記データを収集する作業を実施するデータ収集者が前記コンポーネントを評価した結果を表すデータ収集者評価値と、前記データを分析する作業を実施するデータ分析者が前記コンポーネントを評価した結果を表すデータ分析者評価値とを、前記ソフトウェア識別情報と対応付けて格納しており、
前記演算装置は、複数の前記コンポーネント識別情報が前記検索によって得られた場合においては、前記検索によって得られた前記コンポーネント識別情報を、前記データ収集者評価値と前記データ分析者評価値とに基づく優先度にしたがって整列した上で、前記レスポンスとして出力し、
前記データ収集者評価値は、前記コンポーネントによって前記データを収集する時間間隔が短いほど評価値が高いように構成されている
ことを特徴とする情報処理装置。
An information processing device that supports creation of software for use by a user,
a storage device for storing software identification information for identifying software created in the past; and a computing device for searching for the software identification information stored in the storage device.
Equipped with
the storage device stores the software identification information, software attribute information representing attributes of the software, and a usage record of the software in association with each other;
The computing device includes:
receiving a request for desired software desired by the user together with desired software attribute information representing attributes of the desired software;
searching the storage device for software attribute information that matches the desired software attribute information;
outputting the software identification information obtained by the search together with the usage record associated with the software identification information as a response to the request ;
the storage device stores component identification information for identifying components constituting the software, component attribute information representing attributes of the components, and usage records of the components in association with the software identification information;
The computing device includes:
receiving, as the desired software attribute information, desired component attribute information representing attributes of components constituting the desired software;
retrieving the component attribute information that matches the desired component attribute information from the storage device;
outputting the component identification information obtained by the search together with the usage record associated with the component identification information as a response to the request;
The component is a data collection component that implements a process for collecting data,
the storage device stores, in association with the software identification information, a data collector evaluation value representing a result of evaluation of the component by a data collector who performs an operation of collecting the data, and a data analyst evaluation value representing a result of evaluation of the component by a data analyst who performs an operation of analyzing the data;
when a plurality of pieces of component identification information are obtained by the search, the calculation device sorts the pieces of component identification information obtained by the search in accordance with a priority based on the data collector evaluation value and the data analyst evaluation value, and outputs the sorted pieces of component identification information as the response;
The data collector evaluation value is configured such that the shorter the time interval at which the component collects the data, the higher the evaluation value.
23. An information processing apparatus comprising:
前記記憶装置は、前記ソフトウェアを構成するコンポーネントを識別するコンポーネント識別情報と、前記コンポーネントの属性を表すコンポーネント属性情報と、前記コンポーネントの使用実績とを、前記ソフトウェア識別情報と対応付けて格納しており、
前記演算装置は、
前記所望ソフトウェア属性情報として、前記所望ソフトウェアを構成するコンポーネントの属性を表す所望コンポーネント属性情報を受け取り、
前記所望コンポーネント属性情報に適合する前記コンポーネント属性情報を前記記憶装置から検索し、
前記検索によって得られた前記コンポーネント識別情報を、前記コンポーネント識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力する
ことを特徴とする請求項1から3のいずれか1項記載の情報処理装置。
the storage device stores component identification information for identifying components constituting the software, component attribute information representing attributes of the components, and usage records of the components in association with the software identification information;
The computing device includes:
receiving, as the desired software attribute information, desired component attribute information representing attributes of components constituting the desired software;
retrieving the component attribute information that matches the desired component attribute information from the storage device;
4. The information processing apparatus according to claim 1, further comprising: an information processing device that outputs the component identification information obtained by the search together with the usage record associated with the component identification information as a response to the request.
前記演算装置は、
前記リクエストとともに受け取った前記所望ソフトウェア属性情報のなかから、検索キーワードとして用いることができる第2特徴語を抽出し、
前記抽出した前記第2特徴語に合致する前記第1特徴語を前記記憶装置から検索することにより、前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索する
ことを特徴とする請求項記載の情報処理装置。
The computing device includes:
extracting a second characteristic word that can be used as a search keyword from the desired software attribute information received together with the request;
2. The information processing apparatus according to claim 1, further comprising: searching said storage device for said first characteristic word that matches said extracted second characteristic word, thereby searching said storage device for said software attribute information that matches said desired software attribute information.
前記演算装置は、複数の前記ソフトウェア識別情報が前記検索によって得られた場合においては、前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績が多い順に整列した上で、前記レスポンスとして出力する
ことを特徴とする請求項1から4のいずれか1項記載の情報処理装置。
5. The information processing device according to claim 1, wherein, when a plurality of pieces of software identification information are obtained by the search, the computing device sorts the pieces of software identification information obtained by the search in order of the most frequent usage history associated with the software identification information, and outputs the sorted pieces of software identification information as the response.
前記演算装置は、前記データ収集者評価値と前記データ分析者評価値が同じである場合においては、前記ソフトウェア識別情報に対応付けられている前記使用実績が多い順に整列した上で、前記レスポンスとして出力する
ことを特徴とする請求項記載の情報処理装置。
4. The information processing device according to claim 3, wherein when the data collector evaluation value and the data analyst evaluation value are the same, the calculation device sorts the software identification information in descending order of usage history and outputs the sorted software identification information as the response.
ユーザが使用するソフトウェアを作成することを支援するソフトウェア作成支援システムであって、
請求項1から8のいずれか1項記載の情報処理装置、
前記ソフトウェアを作成する作成装置、
を備え、
前記作成装置は、前記情報処理装置が検索した前記ソフトウェアを組み合わせることにより、ユーザが使用するソフトウェアを作成する
ことを特徴とするソフトウェア作成支援システム。
A software creation support system that supports a user in creating software to be used, comprising:
An information processing device according to any one of claims 1 to 8 .
a creating device for creating said software;
Equipped with
The software creation device creates software for use by a user by combining the software searched for by the information processing device.
ユーザが使用するソフトウェアを作成することを支援するソフトウェア作成支援システムであって、
ユーザが使用するソフトウェアを作成することを支援する情報処理装置、
前記ソフトウェアを作成する作成装置、
を備え、
前記情報処理装置は、
過去に作成されたソフトウェアを識別するソフトウェア識別情報を格納する記憶装置、
前記記憶装置が格納している前記ソフトウェア識別情報を検索する演算装置、
を備え、
前記記憶装置は、前記ソフトウェア識別情報と、前記ソフトウェアの属性を表すソフトウェア属性情報と、前記ソフトウェアの使用実績とを対応付けて格納しており、
前記演算装置は、
前記ユーザが所望する所望ソフトウェアを要求するリクエストを、前記所望ソフトウェアの属性を表す所望ソフトウェア属性情報とともに受け取り、
前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索し、
前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力し、
前記作成装置は、前記情報処理装置が検索した前記ソフトウェアを組み合わせることにより、ユーザが使用するソフトウェアを作成し、
前記ソフトウェア作成支援システムはさらに、前記ソフトウェアのソースコードのテンプレートを格納したテンプレートデータベースを備え、
前記作成装置は、
前記演算装置が前記検索によって取得した前記ソフトウェア識別情報に対応する前記テンプレートを前記テンプレートデータベースから取得し、
前記取得した前記テンプレートによって前記ソフトウェアを作成し、
前記テンプレートは、置換可能なパラメータを含んでおり、
前記作成装置は、
前記ソフトウェアを作成するように要求するリクエストを、前記パラメータの指定値とともに受け取り、
前記テンプレート内の前記パラメータを、前記指定値によって置き換えることにより、前記ソースコードを作成し、
前記作成した前記ソースコードによって前記ソフトウェアを作成する
ことを特徴とするソフトウェア作成支援システム。
A software creation support system that supports a user in creating software to be used, comprising:
an information processing device that supports the creation of software used by a user ;
a creating device for creating said software;
Equipped with
The information processing device includes:
a storage device for storing software identification information for identifying software created in the past;
a computing device for retrieving the software identification information stored in the storage device;
Equipped with
the storage device stores the software identification information, software attribute information representing attributes of the software, and a usage record of the software in association with each other;
The computing device includes:
receiving a request for desired software desired by the user together with desired software attribute information representing attributes of the desired software;
searching the storage device for software attribute information that matches the desired software attribute information;
outputting the software identification information obtained by the search together with the usage record associated with the software identification information as a response to the request;
the creation device creates software for use by a user by combining the software searched for by the information processing device ;
The software creation support system further includes a template database storing templates of source codes of the software,
The creating device includes:
The computing device obtains, from the template database, the template corresponding to the software identification information obtained by the search;
creating the software using the acquired template;
The template includes replaceable parameters;
The creating device includes:
receiving a request to create said software along with specified values for said parameters;
creating said source code by replacing said parameters in said template with said specified values;
The software is created using the created source code.
A software creation support system comprising:
前記ソフトウェアは、
データを収集する処理を実装したデータ収集プログラム、
前記データ収集プログラムが収集した前記データを蓄積するデータレイクを作成する処理を実装したデータレイク作成プログラム、
前記データレイクが格納している前記データを管理する処理を実装したデータ管理プログラム、
のうち少なくともいずれかである
ことを特徴とする請求項1記載のソフトウェア作成支援システム。
The software comprises:
a data collection program that implements a process for collecting data;
a data lake creation program implementing a process for creating a data lake for storing the data collected by the data collection program;
A data management program that implements a process for managing the data stored in the data lake;
11. The software creation support system according to claim 10, characterized in that the software creation support system is at least one of the above.
JP2021002530A 2021-01-12 2021-01-12 Information processing device, software creation support system Active JP7546493B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021002530A JP7546493B2 (en) 2021-01-12 2021-01-12 Information processing device, software creation support system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021002530A JP7546493B2 (en) 2021-01-12 2021-01-12 Information processing device, software creation support system

Publications (2)

Publication Number Publication Date
JP2022107874A JP2022107874A (en) 2022-07-25
JP7546493B2 true JP7546493B2 (en) 2024-09-06

Family

ID=82556245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021002530A Active JP7546493B2 (en) 2021-01-12 2021-01-12 Information processing device, software creation support system

Country Status (1)

Country Link
JP (1) JP7546493B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024218987A1 (en) * 2023-04-21 2024-10-24 ファナック株式会社 Programming device, setting adjustment method, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005234814A (en) 2004-02-18 2005-09-02 Fujitsu Ltd Program, program construction method, storage medium, program construction system, terminal device
JP2012108710A (en) 2010-11-17 2012-06-07 Hitachi Solutions Ltd Program component retrieval method, program component retrieval system, and component retrieval program
WO2017072872A1 (en) 2015-10-28 2017-05-04 株式会社日立製作所 Business program generation assistance system and business program generation assistance method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005234814A (en) 2004-02-18 2005-09-02 Fujitsu Ltd Program, program construction method, storage medium, program construction system, terminal device
JP2012108710A (en) 2010-11-17 2012-06-07 Hitachi Solutions Ltd Program component retrieval method, program component retrieval system, and component retrieval program
WO2017072872A1 (en) 2015-10-28 2017-05-04 株式会社日立製作所 Business program generation assistance system and business program generation assistance method

Also Published As

Publication number Publication date
JP2022107874A (en) 2022-07-25

Similar Documents

Publication Publication Date Title
CN102385483B (en) User interface based on context, search and navigation
Biswas et al. Boa meets python: A boa dataset of data science software in python language
US10013238B2 (en) Predicting elements for workflow development
JP5452030B2 (en) Integrated log generation device, integrated log generation program, and recording medium
US11016758B2 (en) Analysis software managing system and analysis software managing method
CN104412227A (en) Query-based software system design representation
JP5221664B2 (en) Information map management system and information map management method
JP7546493B2 (en) Information processing device, software creation support system
CN113268500A (en) Service processing method and device and electronic equipment
Adhikari et al. SimIMA: a virtual Simulink intelligent modeling assistant: Simulink intelligent modeling assistance through machine learning and model clones
US11960492B2 (en) Methods and systems for display of search item scores and related information for easier search result selection
JP5703165B2 (en) Program generating apparatus, method and program
JP2013033333A (en) Business process/business rule execution system, business process/business rule execution method and program
US20220269744A1 (en) Methods and systems for enabling dynamic filters for software search optimization
Bakaev et al. Component-based engineering of web user interface designs for evolutionary optimization
Mondelli et al. Exploring reproducibility and FAIR principles in data science using ecological niche modeling as a case study
CN116225522A (en) Method and device for generating software prototype, electronic equipment and storage medium
CN104660697B (en) Based on Kepler scientific workflow Sensor Network service combining methods
KR20220067820A (en) The bigdata intergared-processing user interface method for increasing interoperability of heterogeneous platforms
JP5835447B2 (en) Information processing apparatus, information processing system, control method, and program
CN117891531B (en) System parameter configuration method, system, medium and electronic equipment for SAAS software
JP7638431B1 (en) Systems, Computer Devices and Methods
JP4895373B2 (en) Software product reuse method and system
Dey et al. A semantic algorithm repository and workflow designer tool: signal processing use case
Domínguez et al. Developing provenance-aware query systems: an occurrence-centric approach

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240626

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240730

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240827

R150 Certificate of patent or registration of utility model

Ref document number: 7546493

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150