(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-29
(45)【発行日】2024-09-06
(54)【発明の名称】情報処理装置、ソフトウェア作成支援システム
(51)【国際特許分類】
G06F 8/36 20180101AFI20240830BHJP
G06F 9/44 20180101ALI20240830BHJP
【FI】
G06F8/36
G06F9/44
(21)【出願番号】P 2021002530
(22)【出願日】2021-01-12
【審査請求日】2023-05-17
(73)【特許権者】
【識別番号】000005522
【氏名又は名称】日立建機株式会社
(74)【代理人】
【識別番号】110002572
【氏名又は名称】弁理士法人平木国際特許事務所
(72)【発明者】
【氏名】伊藤 大生
(72)【発明者】
【氏名】レ ティエンチエン
(72)【発明者】
【氏名】國岡 昭吾
(72)【発明者】
【氏名】津久井 洋
【審査官】松平 英
(56)【参考文献】
【文献】特開2005-234814(JP,A)
【文献】特開2012-108710(JP,A)
【文献】国際公開第2017/072872(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
(57)【特許請求の範囲】
【請求項1】
ユーザが使用するソフトウェアを作成することを支援する情報処理装置であって、
過去に作成されたソフトウェアを識別するソフトウェア識別情報を格納する記憶装置、 前記記憶装置が格納している前記ソフトウェア識別情報を検索する演算装置、
を備え、
前記記憶装置は、前記ソフトウェア識別情報と、前記ソフトウェアの属性を表すソフトウェア属性情報と、前記ソフトウェアの使用実績とを対応付けて格納しており、
前記演算装置は、
前記ユーザが所望する所望ソフトウェアを要求するリクエストを、前記所望ソフトウェアの属性を表す所望ソフトウェア属性情報とともに受け取り、
前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索し、
前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力
し、
前記情報処理装置はさらに、前記ソフトウェア識別情報と前記ソフトウェア属性情報を対応付けて前記記憶装置に格納する登録リクエストをユーザが入力するための登録インターフェースを備え、
前記演算装置は、
前記登録インターフェースにおいて入力された前記ソフトウェア属性情報のなかから検索キーワードとして用いることができる第1特徴語を抽出し、
前記抽出した前記第1特徴語を、前記ソフトウェア属性情報としてまたは前記ソフトウェア属性情報とともに、前記記憶装置に格納する
ことを特徴とする情報処理装置。
【請求項2】
ユーザが使用するソフトウェアを作成することを支援する情報処理装置であって、
過去に作成されたソフトウェアを識別するソフトウェア識別情報を格納する記憶装置、 前記記憶装置が格納している前記ソフトウェア識別情報を検索する演算装置、
を備え、
前記記憶装置は、前記ソフトウェア識別情報と、前記ソフトウェアの属性を表すソフトウェア属性情報と、前記ソフトウェアの使用実績とを対応付けて格納しており、
前記演算装置は、
前記ユーザが所望する所望ソフトウェアを要求するリクエストを、前記所望ソフトウェアの属性を表す所望ソフトウェア属性情報とともに受け取り、
前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索し、
前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力
し、
前記ソフトウェアは、前記ソフトウェアの使用実績を出力するためのAPIを備え、
前記演算装置は、
前記APIを介して前記ソフトウェアの使用実績を収集し、
前記収集した前記ソフトウェアの使用実績を、前記ソフトウェア識別情報と対応付けて前記記憶装置に格納する
ことを特徴とする情報処理装置。
【請求項3】
ユーザが使用するソフトウェアを作成することを支援する情報処理装置であって、
過去に作成されたソフトウェアを識別するソフトウェア識別情報を格納する記憶装置、 前記記憶装置が格納している前記ソフトウェア識別情報を検索する演算装置、
を備え、
前記記憶装置は、前記ソフトウェア識別情報と、前記ソフトウェアの属性を表すソフトウェア属性情報と、前記ソフトウェアの使用実績とを対応付けて格納しており、
前記演算装置は、
前記ユーザが所望する所望ソフトウェアを要求するリクエストを、前記所望ソフトウェアの属性を表す所望ソフトウェア属性情報とともに受け取り、
前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索し、
前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力
し、
前記ソフトウェアは、データを収集する処理を実装したデータ収集プログラムであり、
前記記憶装置は、前記データを収集する作業を実施するデータ収集者が前記ソフトウェアを評価した結果を表すデータ収集者評価値と、前記データを分析する作業を実施するデータ分析者が前記ソフトウェアを評価した結果を表すデータ分析者評価値とを、前記ソフトウェア識別情報と対応付けて格納しており、
前記演算装置は、複数の前記ソフトウェア識別情報が前記検索によって得られた場合においては、前記検索によって得られた前記ソフトウェア識別情報を、前記データ収集者評価値と前記データ分析者評価値とに基づく優先度にしたがって整列した上で、前記レスポンスとして出力する
ことを特徴とする情報処理装置。
【請求項4】
ユーザが使用するソフトウェアを作成することを支援する情報処理装置であって、
過去に作成されたソフトウェアを識別するソフトウェア識別情報を格納する記憶装置、 前記記憶装置が格納している前記ソフトウェア識別情報を検索する演算装置、
を備え、
前記記憶装置は、前記ソフトウェア識別情報と、前記ソフトウェアの属性を表すソフトウェア属性情報と、前記ソフトウェアの使用実績とを対応付けて格納しており、
前記演算装置は、
前記ユーザが所望する所望ソフトウェアを要求するリクエストを、前記所望ソフトウェアの属性を表す所望ソフトウェア属性情報とともに受け取り、
前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索し、
前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力
し、
前記記憶装置は、前記ソフトウェアを構成するコンポーネントを識別するコンポーネント識別情報と、前記コンポーネントの属性を表すコンポーネント属性情報と、前記コンポーネントの使用実績とを、前記ソフトウェア識別情報と対応付けて格納しており、
前記演算装置は、
前記所望ソフトウェア属性情報として、前記所望ソフトウェアを構成するコンポーネントの属性を表す所望コンポーネント属性情報を受け取り、
前記所望コンポーネント属性情報に適合する前記コンポーネント属性情報を前記記憶装置から検索し、
前記検索によって得られた前記コンポーネント識別情報を、前記コンポーネント識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力し、
前記コンポーネントは、データを収集する処理を実装したデータ収集コンポーネントであり、
前記記憶装置は、前記データを収集する作業を実施するデータ収集者が前記コンポーネントを評価した結果を表すデータ収集者評価値と、前記データを分析する作業を実施するデータ分析者が前記コンポーネントを評価した結果を表すデータ分析者評価値とを、前記ソフトウェア識別情報と対応付けて格納しており、
前記演算装置は、複数の前記コンポーネント識別情報が前記検索によって得られた場合においては、前記検索によって得られた前記コンポーネント識別情報を、前記データ収集者評価値と前記データ分析者評価値とに基づく優先度にしたがって整列した上で、前記レスポンスとして出力し、
前記データ収集者評価値は、前記コンポーネントによって前記データを収集する時間間隔が短いほど評価値が高いように構成されている
ことを特徴とする情報処理装置。
【請求項5】
前記記憶装置は、前記ソフトウェアを構成するコンポーネントを識別するコンポーネント識別情報と、前記コンポーネントの属性を表すコンポーネント属性情報と、前記コンポーネントの使用実績とを、前記ソフトウェア識別情報と対応付けて格納しており、
前記演算装置は、
前記所望ソフトウェア属性情報として、前記所望ソフトウェアを構成するコンポーネントの属性を表す所望コンポーネント属性情報を受け取り、
前記所望コンポーネント属性情報に適合する前記コンポーネント属性情報を前記記憶装置から検索し、
前記検索によって得られた前記コンポーネント識別情報を、前記コンポーネント識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力する
ことを特徴とする請求項1
から3のいずれか1項記載の情報処理装置。
【請求項6】
前記演算装置は、
前記リクエストとともに受け取った前記所望ソフトウェア属性情報のなかから、検索キーワードとして用いることができる第2特徴語を抽出し、
前記抽出した前記第2特徴語に合致する前記第1特徴語を前記記憶装置から検索することにより、前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索する
ことを特徴とする請求項
1記載の情報処理装置。
【請求項7】
前記演算装置は、複数の前記ソフトウェア識別情報が前記検索によって得られた場合においては、前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績が多い順に整列した上で、前記レスポンスとして出力する
ことを特徴とする請求項1
から4のいずれか1項記載の情報処理装置。
【請求項8】
前記演算装置は、前記データ収集者評価値と前記データ分析者評価値が同じである場合においては、前記ソフトウェア識別情報に対応付けられている前記使用実績が多い順に整列した上で、前記レスポンスとして出力する
ことを特徴とする請求項
3記載の情報処理装置。
【請求項9】
ユーザが使用するソフトウェアを作成することを支援するソフトウェア作成支援システムであって、
請求項1
から8のいずれか1項記載の情報処理装置、
前記ソフトウェアを作成する作成装置、
を備え、
前記作成装置は、前記情報処理装置が検索した前記ソフトウェアを組み合わせることにより、ユーザが使用するソフトウェアを作成する
ことを特徴とするソフトウェア作成支援システム。
【請求項10】
ユーザが使用するソフトウェアを作成することを支援するソフトウェア作成支援システムであって、
ユーザが使用するソフトウェアを作成することを支援する情報処理装置、
前記ソフトウェアを作成する作成装置、
を備え、
前記情報処理装置は、
過去に作成されたソフトウェアを識別するソフトウェア識別情報を格納する記憶装置、
前記記憶装置が格納している前記ソフトウェア識別情報を検索する演算装置、
を備え、
前記記憶装置は、前記ソフトウェア識別情報と、前記ソフトウェアの属性を表すソフトウェア属性情報と、前記ソフトウェアの使用実績とを対応付けて格納しており、
前記演算装置は、
前記ユーザが所望する所望ソフトウェアを要求するリクエストを、前記所望ソフトウェアの属性を表す所望ソフトウェア属性情報とともに受け取り、
前記所望ソフトウェア属性情報に適合する前記ソフトウェア属性情報を前記記憶装置から検索し、
前記検索によって得られた前記ソフトウェア識別情報を、前記ソフトウェア識別情報に対応付けられている前記使用実績と併せて、前記リクエストに対するレスポンスとして出力し、
前記作成装置は、前記情報処理装置が検索した前記ソフトウェアを組み合わせることにより、ユーザが使用するソフトウェアを作成
し、
前記ソフトウェア作成支援システムはさらに、前記ソフトウェアのソースコードのテンプレートを格納したテンプレートデータベースを備え、
前記作成装置は、
前記演算装置が前記検索によって取得した前記ソフトウェア識別情報に対応する前記テンプレートを前記テンプレートデータベースから取得し、
前記取得した前記テンプレートによって前記ソフトウェアを作成し、
前記テンプレートは、置換可能なパラメータを含んでおり、
前記作成装置は、
前記ソフトウェアを作成するように要求するリクエストを、前記パラメータの指定値とともに受け取り、
前記テンプレート内の前記パラメータを、前記指定値によって置き換えることにより、前記ソースコードを作成し、
前記作成した前記ソースコードによって前記ソフトウェアを作成する
ことを特徴とするソフトウェア作成支援システム。
【請求項11】
前記ソフトウェアは、
データを収集する処理を実装したデータ収集プログラム、
前記データ収集プログラムが収集した前記データを蓄積するデータレイクを作成する処理を実装したデータレイク作成プログラム、
前記データレイクが格納している前記データを管理する処理を実装したデータ管理プログラム、
のうち少なくともいずれかである
ことを特徴とする請求項1
0記載のソフトウェア作成支援システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザがソフトウェアを作成することを支援する技術に関する。
【背景技術】
【0002】
ネットワーク技術やセンシング技術の発展により、IoTデバイスを活用したデータ収集が進んでいる。近年においては、データ収集システムを通じて収集されたデータに対して、データサイエンティストと呼ばれるデータ分析に詳しい専門の技術者が、データを分析する。
【0003】
このようなデータ収集システムを構築するにあたっては、プログラムに関して高い専門知識が必要である。たとえばC言語、C++言語、JAVA(登録商標)などのプログラミング言語でソースプログラムを作成し、それをコンパイラでコンパイルすることにより、コンピュータが実行可能なマシン語のプログラムが作られる。コンパイルが必要ないJAVASCRIPTなどのプログラミング言語も存在する。
【0004】
データ分析の目的や分析手法によって必要とされるデータは異なるので、複数のデータ収集システムが必要になる場面が想定される。しかしながら、システム作成には労力や工数が発生するので、必要な時にデータ収集システムの供給を受けることができない、また時間がかかるといった懸念がある。
【0005】
下記特許文献1は、プログラムの開発に必要な労力が少なく、高度な知識を必要とせずにプログラムを容易に作成できるデータ収集システムを提供する方法を開示している。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1記載の技術により、ユーザは高度なプログラム設計技術や知識を必要とせずに、直接ソースコードを入力しなくても、データ収集プログラム、テーブル生成プログラム、およびテーブルアクセスプログラムを生成することが可能となる。しかしながら、その簡便性に起因して、有効ではないデータ収集システムが作成される可能性がある。一般的に、ソフトウェア開発において、効率的な開発のためには既存コンポーネントの再利用が有効とされているが、これはユーザが高度なプログラム設計技術や知識を持っていることが前提である。したがってコンポーネント再利用によって簡便にデータ収集システムを作成すると、収集効率や収集項目などの観点から必ずしも有用ではないデータ収集システムが生成される可能性がある。
【0008】
また、作成されたシステムがどのようなデータを収集しているかを把握しなければ、データ分析者が目的のシステムにたどり着けない可能性がある。しかし、すべてのシステムについてこれらの情報を把握することは難しい。したがって、ユーザがソフトウェアを作成することを支援できる仕組みが望まれている。
【0009】
本発明は、上記事情に鑑みてなされたものであり、ユーザが専門知識を有していなくともソフトウェアを作成することを支援することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係る情報処理装置は、ソフトウェアの属性情報と使用実績を対応付けて格納しており、ユーザが所望するソフトウェアの属性情報を検索してその使用実績とともに出力する。
【発明の効果】
【0011】
本発明に係る情報処理装置によれば、ユーザが専門知識を有していなくとも、ユーザのニーズに合致するとともに使用実績があるソフトウェアを容易に見つけることができる。これにより、ユーザがソフトウェア開発に関する専門知識を有していなくとも、有用なソフトウェアを作成することを支援できる。
【図面の簡単な説明】
【0012】
【
図1】実施形態1に係るソフトウェア作成支援システム1の全体構成図である。
【
図2】管理データベース120が保持するデータテーブルの例を示す。
【
図3】ソフトウェア情報を登録するために用いるソフトウェア登録画面の例である。
【
図4】管理装置140がソフトウェア情報を登録する手順を示すフローチャートである。
【
図5】管理装置140が検索インデックスを作成して登録する手順を示すフローチャートである。
【
図6】ソフトウェアの使用実績を登録するために用いる使用実績登録画面の例である。
【
図7】ソフトウェアを作成するようにユーザがソフトウェア作成支援システム1に対して指示する作成指示画面の例である。
【
図8】ソフトウェアの作成支援の手順を示すシーケンス図である。
【
図9】検索装置150による検索処理を説明するフローチャートである。
【
図10】ソフトウェアの作成支援の別手順を示すシーケンス図である。
【
図11】端末200に表示される管理画面の例を示す。
【
図12】作成装置300がソフトウェアを作成する手順を示すフローチャートである。
【
図13】実施形態2に係るソフトウェア作成支援システム1の構成図である。
【
図14】実施形態3に係るソフトウェア作成支援システム1の構成図である。
【発明を実施するための形態】
【0013】
<実施の形態1>
図1は、本発明の実施形態1に係るソフトウェア作成支援システム1の全体構成図である。ソフトウェア作成支援システム1は、ユーザがソフトウェア(以下、アプリと称する場合もある)を作成することを支援するシステムである。ここではユーザが作成するソフトウェアとして、ユーザが様々なデータを収集するために用いるデータ収集システムを例とする。
【0014】
ソフトウェア作成支援システム1は概略として、情報処理装置100、端末200、作成装置300、テンプレートデータベース310を備える。データ収集システム400は、ソフトウェア作成支援システム1が作成したデータ収集ソフトウェアを実行するシステムである。
図1においては2つのデータ収集システム400aと400bを示した。これらシステムは同じ構成を有するので、これらを区別しないときはアルファベット添え字を省略する。
【0015】
情報処理装置100は 、適宜なネットワーク10を介して、端末200、作成装置300、データ収集システム400と通信可能に接続されている。ソフトウェアの作成支援と管理は、情報処理装置100が実行主体となって実施する。作成装置300は、データ収集システム400を作成する実行主体である。
【0016】
端末200において、ユーザ(例えば作成されたソフトウェアを使用する予定になっている者)は、作成しようとするソフトウェアの属性情報を入力する。情報処理装置100はその入力を受け付けて後述のように処理する。端末200は、PC(Personal Computer)、タブレット端末、スマートフォン、携帯電話などのように、後述する表示・入力装置110が提供する情報について操作者が閲覧や操作することができる、コンピュータ端末である。
【0017】
情報処理装置100は、管理データベース120に蓄積している過去に開発されたソフトウェアの属性情報を検索して利用者に提示することにより、利用者へ過去のソフトウェアを再利用するように促した上で、そのソフトウェアを配布するように作成装置300へ指示する。
【0018】
作成装置300は、情報処理装置100から受け渡されたソフトウェアの属性情報に基づいて、ソフトウェアを生成・提供するサーバ装置である。作成装置300は、仮想化されたソフトウェア機能、プラットフォーム機能、ハードウェア機能などの各種ソフトウェア実行用の機能を提供し、ソフトウェアを提供するとともにサービスを提供している。本実施形態においては、作成装置300が、仮想化されたWEBサーバ、ソフトウェアサーバ、データベースサーバなど、各種ソフトウェア実行用のプラットフォーム機能と、その上で実行されるソフトウェアを実行することを想定する。
【0019】
情報処理装置100は、表示・入力装置110、実績収集装置130、管理装置140、検索装置150、実行装置160を備える。これら各装置はハードウェアとして実装することもできるし、情報処理装置100が備えるプログラムを演算装置が実行することによって実装することもできる。以下では記載の便宜上、これらを「装置」と表記するが、これらの実装はハードウェアによるものに限らない。
【0020】
表示・入力装置110は、端末200に対し、GUI(Graphical User Interface)、API(Application Programming Interface)、CLI(Command Line Interface)などのような、入出力用のインターフェースを提供する。表示・入力装置110は、このインターフェースを介して、ソフトウェアを作成するための設定や作成されたソフトウェアを検索するための検索キーワードなどに関する入出力動作を受け付ける。端末200は、表示・入力装置110が提供するインターフェースを介して、情報の閲覧や操作をユーザに実行させる。
【0021】
実績収集装置130は、端末200から入力されたソフトウェアやコンポーネントの使用実績を収集するための設定に基づいて、ソフトウェアやコンポーネントの使用実績を収集する。
【0022】
管理装置140は、(a)端末200から入力された設定に基づいて、管理データベース120にソフトウェアの属性情報を新しく登録する機能、(b)実績収集装置130にて収集された情報と端末200から入力された情報に基づいて、管理データベース120にソフトウェアとコンポーネントの使用実績を新しく登録する機能、(c)端末200を通じて作成されたソフトウェアやコンポーネントの情報を表示する機能、を備える。
【0023】
検索装置150は、(a)端末200から入力された検索対象を特定する検索キーワードやソフトウェアを作成するための設定に基づいて、管理データベース120から適したソフトウェア(またはソフトウェアを構成するコンポーネント)を検索する機能、(b)検索の結果、複数のソフトウェアまたはコンポーネントの候補を特定した場合、この複数の候補の中で適性順位がより高いソフトウェア、またはコンポーネントを複数の候補から特定する機能、を備える。適性順位は、管理データベース120のソフトウェア使用実績テーブル520、またはコンポーネント使用実績テーブル540(後述)を参照することによって、決定できる。
【0024】
実行装置160は、端末200から入力された設定に基づいて、後述する作成装置300に対して、ソフトウェアをデプロイするように指示する。
【0025】
情報処理装置100のハードウェア構成としては、(a)SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される記憶装置、(b)RAMなど揮発性記憶素子で構成されるメモリ、(c)記憶装置に保持されるプログラムをメモリに読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を実施するCPUなどの演算装置、(d)処理データの表示を行うディスプレイ等の出力装置、(e)ネットワーク10と接続し他装置との通信処理を担う通信装置、を備える。
【0026】
作成装置300は、端末200から入力された設定に基づいて、データ収集ソフトウェアを生成する。データ収集ソフトウェアは、データ収集内容を携帯端末420に表示させ、収集結果を受け付けるためのソフトウェアである。作成装置300は、ネットワーク10を介してデータ収集ソフトウェアを携帯端末420に対して提供する。作成装置300はさらに、データレイク生成プログラムとデータ管理ソフトウェアを作成する。データレイク生成プログラムは、ネットワーク10を介して携帯端末420から収集結果を受信し格納するためのデータレイクを作成するプログラムである。データ管理ソフトウェアは、データレイクからデータを抽出し適宜ユーザに提供するための管理機能を有する。作成装置300は、ネットワーク10を介してデータレイク生成プログラムとデータ管理ソフトウェアをデータ管理装置410に対して提供する。データ収集作業者は、そのデータ収集ソフトウェアを実行することにより収集されたデータを携帯端末420上で閲覧することができる。収集データはネットワーク10を通じてデータ管理装置410によって収集される。
【0027】
携帯端末420は、パーソナルコンピュータ、スマートフォン、タブレット端末装置等の携帯可能な携帯装置である。より具体的には、携帯端末420は、データ収集者がデータを収集する時に携帯し、データ収集ソフトウェアを実行することにより表示されたデータ収集内容に基づいてデータ収集を実施し、データ管理装置410へデータを送信するために利用される。データ収集者は、携帯端末420のカメラを利用して対象物を撮影したり、携帯端末420のマイクを利用して対象の音を録音したり、携帯端末420に表示された入力フォームに対してキーパッドなどを利用して携帯端末420に入力したりする。これらの画像、音声、およびデータ収集者に直接入力された情報以外に取得される情報としては、携帯端末420の加速度センサ、地磁気センサ、GPS(Global Positioning System)ユニットなどの内蔵のセンサの他、外付けセンサで取得される情報も挙げられる。これらの情報の取得は、データ収集者が意図的に収集する以外に、データ収集ソフトウェアにより自動的に情報収集してもよい。たとえば、携帯端末420のGPSユニットを用いて、自動的に位置情報を取得してもよい。
【0028】
携帯端末420のハードウェア構成の1例としては、上述の演算装置と、上述のメモリと、上述の記憶装置と、上述の通信装置と、を備える。データを取得する手段として例えば、加速度センサと、ジャイロセンサと、地磁気センサと、カメラと、マイクと、GPSユニットと、を備える。ユーザインターフェースとして、入力を受け付ける入力装置と、出力装置と、を備える。記憶装置内には、本実施形態の携帯端末420として必要な機能を実現するプログラムが格納される。
【0029】
データ管理装置410のハードウェア構成に関しては、上述の情報処理装置100と同様であるので、割愛する。後述のとおり、データ管理装置410に関しては、仮想的なハードウェア機能を用いて実現されてもよい。データ管理装置410の記憶装置内には、本実施形態のデータ管理装置410として必要な機能を実現するプログラムが格納される。
【0030】
図2は、管理データベース120が保持するデータテーブルの例を示す。管理データベース120は、既に作成されたソフトウェアの説明やソフトウェアを作成するために入力されたパラメータ(ソフトウェア上で実装される収集コンポーネントや収集項目など)の情報、およびソフトウェアの使用実績を管理するデータベースである。管理データベース120は、ソフトウェア情報テーブル510、ソフトウェア使用実績テーブル520、コンポーネント情報テーブル530、およびコンポーネント使用実績テーブル540を格納している。
【0031】
ソフトウェア情報テーブル510は、ソフトウェアの固有の識別子であるソフトウェアID511をキーとして、該当ソフトウェアの名前を示すソフトウェア名512、該当ソフトウェアの説明を示すソフトウェア説明513、後述する検索語514、該当ソフトウェアを作成した作成者515、の各値を対応付けたレコードの集合体となっている。ソフトウェアID511およびソフトウェア名512は必須の値である。
【0032】
ソフトウェア使用実績テーブル520は、ソフトウェア使用実績の固有の識別子であるソフトウェア使用実績ID521をキーとして、該当ソフトウェアの収集データ数を示すデータ数522、該当ソフトウェアの利用者数を示すソフトウェア利用者数523、該当ソフトウェアが最後に更新された日付を示す最終更新日524、該当ソフトウェアの最新のデータ収集日を示す最新のデータ収集日525、該当ソフトウェアのデータを収集したデータ収集者から与えられたデータ収集者評価526、該当ソフトウェアの収集データを分析したデータ分析者から与えられたデータ分析者評価527、の各値を対応付けたレコードの集合体となっている。ソフトウェア使用実績ID521、最終更新日524は必須の値である。
【0033】
コンポーネント情報テーブル530は、コンポーネントの固有の識別子であるコンポーネントID531をキーとして、該当コンポーネントの名前を示すコンポーネント名532、該当コンポーネントの説明を示すコンポーネント説明533、後述する検索語534、該当コンポーネントを作成した作成者535、の各値を対応付けたレコードの集合体となっている。コンポーネントID531およびコンポーネント名532は必須の値である。
【0034】
コンポーネント使用実績テーブル540は、コンポーネント使用実績の固有の識別子であるコンポーネント使用実績ID541をキーとして、該当コンポーネントが使用されているソフトウェア数を示すソフトウェア使用数542、該当コンポーネントが最後に更新された日付を示す最終更新日543、該当コンポーネントの最新のデータ収集日を示す最新のデータ収集日544、該当コンポーネントのデータを収集したデータ収集者から与えられたデータ収集者評価545、該当コンポーネントの収集データを分析した分析者から与えられたデータ分析者評価546、の各値を対応付けたレコードの集合体となっている。コンポーネント使用実績ID541、最終更新日543は必須の値である。
【0035】
以下、本実施形態におけるソフトウェアの作成支援・管理方法の実施手順について説明する。以下で説明するソフトウェアの作成支援・管理方法に対応する各種動作は、情報処理装置100がメモリ等に読み出して実行するプログラムによって実現される。このプログラムは、以下に説明される各種の動作を実施するためのコードから構成されている。
【0036】
図3は、ソフトウェア情報を登録するために用いるソフトウェア登録画面の例である。ソフトウェア登録画面は、すでに開発されたソフトウェアの属性情報を登録するために用いるものであり、端末200上に表示される。端末200上で所定の操作を行うことにより、
図3の登録画面が表示される。ソフトウェアの属性としては、そのソフトウェアが有するコンポーネントおよびそのコンポーネントの属性情報を含むものとする。登録画面は情報処理装置100が提供してもよいし、端末200上のアプリケーションが提供してもよい。
【0037】
ソフトウェア基本情報入力領域610は、「ソフトウェア名」「ソフトウェア説明」「作成者名・部署」などのように、ソフトウェアの基本属性パラメータをそれぞれ入力する領域である。
【0038】
コンポーネント基本情報入力領域611は、「コンポーネントの名称」「コンポーネントの説明」「コンポーネントタイプ」を選択・入力する領域である。コンポーネント設定領域612は、コンポーネントのタイプに応じて表示文や収集データのフィールド名、収集する際の設定などを入力する領域である。コンポーネント情報領域613は、コンポーネント基本情報入力領域611とコンポーネント設定領域612をコンポーネントごとにまとめたものである。コンポーネント追加ボタン614を押下すると、コンポーネント情報領域613が1つ追加される。コンポーネント削除ボタン615を押下すると、コンポーネント情報領域613が1つ削除される。登録開始ボタン616を押下すると、端末200は入力した情報を管理データベース120へ送信する。
図3においては、3つのコンポーネントそれぞれのコンポーネント情報領域613を例示している。
図3において、コンポーネント基本情報入力領域611、コンポーネント設定領域612、コンポーネント情報領域613はそれぞれ複数存在するので、添え字a~cによって区別している。
【0039】
コンポーネントタイプ選択ボックス620は、利用するコンポーネントのタイプを指定するためのボックスである。選択可能なコンポーネントのタイプとしては、例えばユーザにテキスト入力させるテキストボックスのコンポーネント(図中ではテキストと表記)、複数の選択肢の中からユーザに選択させる選択肢のコンポーネント(図中では選択肢と表記)、マイクを用いてユーザに音声を録音させる音声のコンポーネント(図中では音声と表記)、などがある。希望する任意のタイプをコンポーネントタイプ選択ボックス620から選択することにより、選択したタイプに応じたコンポーネント設定領域612が表示される。
【0040】
第1コンポーネント情報領域613aは、コンポーネントタイプとして「テキスト」を選択した場合の表示例である。第1コンポーネント設定領域612aには、データベースに格納する際のフィールド名を入力するためのフィールド名入力領域621、テキストボックスに入力する内容をユーザに対してガイドする表示文入力領域622が設けられている。図示の例では、テキストコンポーネントにより、ユーザに機種IDの入力を促す表示文を提示し、収集結果をフィールド名MachineIDとして格納する。
【0041】
第2コンポーネント情報領域613bは、コンポーネントタイプとして「選択肢」を選択した場合の表示例である。第2コンポーネント設定情報領域612bには、データベースに格納する際のフィールド名を入力するためのフィールド名入力領域、ユーザに提示する選択肢を設定する回答入力領域623、回答入力領域623を追加する回答追加ボタン624、回答入力領域623を削除する回答削除ボタン625、が設けられている。図示の例では、選択肢コンポーネントにより、ユーザに部位の選択を促す表示文を提示し、ユーザがポンプやエンジンなどの選択肢から選択し、収集結果をフィールド名Componentとして格納する。
【0042】
第3コンポーネント情報領域613cは、コンポーネントタイプとして「音声」を選択した場合の表示例である。第3コンポーネント設定情報領域612cには、マイクにより録音するときのサンプリングレートを設定するサンプリングレート入力領域627、ユーザに提示する録音条件を入力するための条件入力領域628が設けられている。図示の例では、音声コンポーネントにより、サンプリングレート44.1kHzで、対象から1m離れた場所で録音することをユーザに促す。
【0043】
これらコンポーネントは、過去に作成されたコンポーネントであり、後述する作成装置300が作成できるものである。コンポーネント設定情報領域は、適用するコンポーネントごとに変更される場合がある。たとえば、同じ音声を集めるコンポーネントにおいても、ユーザへ1m離れた場所へ行くことを促すことに追加して、実際に加速度センサやカメラを用いて、ユーザが対象物から1m離れているか判断し、その場合にのみ録音を可能とするコンポーネントも考えられる。これらは別々のコンポーネントと扱われるので、コンポーネントタイプ選択ボックス620において別々のタイプとして扱われる。
【0044】
登録者が、
図3の画面において、ソフトウェア基本情報入力領域610、コンポーネント情報領域613を入力し、登録開始ボタン616を押すと、管理装置140は情報登録を開始する。登録者がマニュアル入力することに代えて、設定ファイル読み込み領域を設け、ソフトウェア情報を記述した設定情報ファイルを読み込むことにより、自動入力されるようにしてもよい。設定ファイルの形式はJSON形式やCSVなどの任意の形式でよい。
【0045】
図4は、管理装置140がソフトウェア情報を登録する手順を示すフローチャートである。ユーザが
図3の画面を用いて入力したパラメータを表示・入力装置110が受け付けると、管理装置140は本フローチャートを開始する。
【0046】
管理装置140は、まず入力されたパラメータを取り込む(S101)。検索装置150はコンポーネント毎(S102)に、既に管理データベース120に登録済みの既存コンポーネントかどうかを確認する(S103)。既存コンポーネントでなければ、コンポーネントIDを付与して(S104)、管理データベース120のコンポーネント情報テーブル530に登録する(S105)。コンポーネント情報テーブル530において必須の項目以外が入力されていない場合、初期値としてNULLを設定する。既存コンポーネントの場合はS104~S105を実施しない。以上のS102~S105の動作をコンポーネント毎に繰り返す。
【0047】
コンポーネントごとの処理が完了した後に(S106)、検索装置150は、既に管理データベース120に登録済みの既存ソフトウェアかどうかを確認する(S107)。既存ソフトウェアでなければ、ソフトウェアIDを付与して(S108)、管理データベース120のソフトウェア情報テーブル510に登録する(S109)。ソフトウェア情報テーブル510において必須の項目以外が入力されていない場合、初期値としてNULLを設定する。既存ソフトウェアの場合はS108~S109を実施しない。
【0048】
以上の処理により、ユーザが
図3の画面を用いて入力したパラメータに基づいて、各コンポーネントとソフトウェアの属性情報が、管理データベース120のソフトウェア情報テーブル510とコンポーネント情報テーブル530に設定される。
【0049】
図5は、管理装置140が検索インデックスを作成して登録する手順を示すフローチャートである。この処理は、
図4の登録処理と同様に、ユーザが
図3の画面を用いて入力したパラメータを表示・入力装置110が受け付け、管理装置140がそのパラメータを読み込み、該当のパラメータから検索用のキーワードを抽出し、管理データベース120の検索語514または534として登録する処理である。
【0050】
管理装置140は、表示・入力装置110からパラメータを受け付け(S201)、コンポーネント毎(S202)に以下を実施する。まず、取り込んだファイルの書式や書かれている言語特性を把握する(S203)。日本語の場合、日本語の特徴に合せて、文節毎に区切って、キーワードを抽出していく。その後、助詞や助動詞などを分離し、特徴のあるキーワードのみを抽出する(S204)。あらかじめ特徴語のリストを用意しておき、それを重点的に抽出してもよい。たとえば、建設現場においてデータ収集するソフトウェアに関しては、寒冷地や通常地などの想定される条件に関する単語や、エンジンやポンプなどの機械の部位に関する単語が、特徴語の候補として考えられる。事前に特徴語を抽出するようなモデルを作成してもよい。モデルを構築するための統計量の1例として、TF-IDFを用いてもよい。これは、文章中で多く使われている単語の内、他の文章においてあまり使用されていない単語が大きな値となる指標である。この指標は、「ある文章中において出現頻度が多い単語は重要な単語である」という仮定に基づく。ソフトウェアが属しているカテゴリの情報、ソフトウェア名、および説明文に含まれる名詞(言葉または文字列)の出現頻度を学習させ、モデル化することにより、ソフトウェアの特徴語を算出してもよい。同じ目的を達成するソフトウェアは、同じカテゴリに属していると考えられ、同様に、同じ目的を達成するならば、ソフトウェア名や説明文に対して、ソフトウェアの特性を表すキーワードの出現頻度が似ている傾向があるからと想定されるからである。管理装置140は、抽出したキーワードを検索語としてコンポーネント情報テーブル530に登録する(S205)。
【0051】
コンポーネントごとの処理が完了した後に(S206)、パラメータ全体を用いて、ソフトウェアに関するパラメータの言語特性を把握し(S207)、ソフトウェアの特徴語を抽出し(S208)、抽出したキーワードを検索語としてソフトウェア情報テーブル510に登録する(S209)。特徴語を抽出する手法は、コンポーネントの特徴語を抽出する手法と同じである。
【0052】
以上の処理により、ユーザが
図3の画面を用いて入力したパラメータから抽出された、各コンポーネントとソフトウェアの検索キーワードが、管理データベース120のソフトウェア情報テーブル510とコンポーネント情報テーブル530に検索インデックス(検索語514と534)として設定される。これにより、特徴語による検索が可能となるので、効果的な検索が可能となる。
【0053】
図3の画面に対してユーザが入力する内容に応じて、抽出される特徴語は異なる。適切な特徴語を抽出するためには、
図3の画面における入力方法を指定すると望ましい。たとえば、必須の項目を設定するほか、入力文字数の下限を設定し、それ以上の文字数であることを強制してもよい。また、上述の特徴語抽出処理を用いて、該当のアプリまたはコンポーネントの情報からどのような特徴語が登録されるかをリアルタイムで表示してもよいし、下記で説明する検索処理により過去の類似の登録情報を検索し、参考情報として提示してもよい。
【0054】
ユーザとしては、適切な特徴語が登録されるように、入力する情報を適切に選択する必要がある。たとえば、機械のエンジンの異常診断のために、エンジンの稼働音を収集する目的のアプリを登録する場合、「アプリ名」に「エンジンの稼働音収集アプリ」、「アプリ説明」に「稼働音を用いたエンジンの異常診断用です」などのように、アプリの収集目的が分かるように入力内容を選択することが望ましい。上記のエンジンの稼働音を収集する目的のアプリを構成するコンポーネントを登録する場合、「コンポーネント名」に「エンジンの稼働音収集」、「コンポーネント説明」に「エンジンの稼働音収集用です」などのように、コンポーネントの収集対象に関する情報が分かるように入力内容を選択することが望ましい。
図3の表示例では、寒冷地や通常地などの想定される条件に関する単語や、エンジンやポンプなどの機械の部位に関する単語を「名称」または「説明」に入力することが、適切な特徴語を抽出するために有効である。
【0055】
図6は、ソフトウェアの使用実績を登録するために用いる使用実績登録画面の例である。使用実績登録画面は、すでに開発されたソフトウェアの使用実績を登録するために用いる画面であり、端末200上に表示される。端末200上で所定の操作を行うことにより、
図6の画面が表示される。
【0056】
収集条件入力領域630は、収集方法を手入力/自動から選択し、収集対象をソフトウェア/コンポーネントから選択し、該当のIDを選択する領域である。諸情報入力領域631は、選択された登録方法に応じてユーザがAPI(Application Program Interface)の設定を入力する領域である。格納情報入力領域632は、収集された使用実績の登録形式を設定する領域、登録開始ボタン633は、使用実績の登録を開始するボタンである。
【0057】
収集方法選択ボックス634は、利用する実績収集の方法を選択するボックスである。選択可能な収集方法としては例えば、(a)格納情報入力領域632を介してユーザに使用実績をテキスト入力させる「手入力」方法、(b)一般に各種のソフトウェアにあらかじめ所定の処理を実現するために用意されているAPIを用いて、ソフトウェアに格納されている、該当ソフトウェアの最終更新日、該当ソフトウェアの最新のデータ収集日、などの使用実績を取得する「自動」方法、がある。自動のタイプを収集方法選択ボックス634から選択することにより、諸情報入力領域631が表示される。
【0058】
登録者が、
図6の画面において、収集条件入力領域630、諸情報入力領域631、格納情報入力領域632を入力し、登録開始ボタン633を押すと、実績収集装置130は情報収集の処理を開始する。
図3と同様に設定ファイルによって自動入力してもよい。後述する作成装置300が登録処理を実施する場合は、端末200を介さずに、自動で作成装置300より各情報が入力され、登録指示がなされる。
【0059】
諸情報入力領域631と格納情報入力領域632の詳細については、後述する具体例を用いて説明する。
【0060】
実績収集装置130は、まず入力されたパラメータを取り込む。実績収集装置130は、指定された方法に応じて収集項目を収集し、対象のソフトウェアまたはコンポーネントの使用実績として、管理装置140を介して、管理データベース120のソフトウェア使用実績テーブル520またはコンポーネント使用実績テーブル540に登録する。収集できなかった項目については、初期値としてNULLを設定する。
【0061】
使用実績を「手入力」によって収集する方法の詳細を説明する。格納情報入力領域632の各項目についてユーザが入力し、実績収集装置130はその入力された値を使用実績として取得する。実績収集装置130は、収集条件入力領域630と格納情報入力領域632に基づいて、各項目をテーブルに格納する。
【0062】
諸情報入力領域631と格納情報入力領域632の詳細について、使用実績を「自動」によって収集する場合における例を用いて説明する。登録者は、諸情報入力領域631の自動収集設定に、使用実績を収集するために用いるプログラムを入力する。
図6の「実行プログラム」欄はそのソースコード例である。この例は、収集ターゲットのソフトウェアに対するHTTPリクエストによって使用実績を収集するものである。したがって、HTTPリクエストのリクエストタイプ(GETまたはPOST)、リクエスト先URL、リクエストパラメータ(keyとvalueのペア)、も入力する必要がある。格納情報入力領域632においては、管理データベース120に格納するデータ項目として、ソースコード内の変数を指定する。
図6の例においては、データ数522に対して、ソースコード内の変数dataNumberの値を格納することが指定されている。
【0063】
以上により、ソフトウェアやコンポーネントについて、使用実績が収集され、管理データベース120に格納される。
【0064】
上記では
図3と
図6の画面を用いて、それぞれ登録開始ボタン616、登録開始ボタン633を押下することによって、登録処理を実行する例を説明したが、後述する作成装置300が登録処理を実施する場合は、入力されたパラメータを対象として、自動で登録処理が実行される。特に、本実施形態については、作成装置300と連動して、自動的に上記の自動登録が実施される。
【0065】
図7は、ソフトウェアを作成するようにユーザがソフトウェア作成支援システム1に対して指示する作成指示画面の例である。作成指示画面は、
図3の登録開始ボタン616の部分を作成開始ボタン642(作成開始を指示するボタン)と変更したものであり、その他の画面構成は
図3と同様である。ユーザが
図7の画面において、ソフトウェア基本情報入力領域640、コンポーネント情報入力領域641を入力し、作成開始ボタン642を押すと、情報処理装置100は作成支援の処理を開始する。
【0066】
図8は、ソフトウェアの作成支援の手順を示すシーケンス図である。新たにデータ収集ソフトウェアを作成しようとしているユーザは、端末200を通じて、構築の対象となる新システムの要件を入力することとなる。管理データベース120には、すでに開発されたソフトウェアの属性情報が既に登録されているものとする。
【0067】
ユーザが
図7の画面を用いて、作成しようとしているソフトウェアの属性情報パラメータを入力する(S302)。表示・入力装置110がパラメータを受け付け(S302)、検索装置150はそのパラメータを受け取る。検索装置150は、受け付けたパラメータファイルに含まれるパラメータに基づいて、管理データベース120に対して後述する検索処理を実施することにより、過去に作成した類似のソフトウェアまたはコンポーネントを検索する(S303)。この検索の結果、過去の類似のソフトウェアまたはコンポーネントが見つかった場合(S304:Y)、検索装置150は後述の使用実績を用いてソフトウェアまたはコンポーネントを抽出し(S305)、その結果を端末200に返信する。端末200はその結果を表示する(S306)。これによりユーザは、作成しようとしているソフトウェアと類似する過去のソフトウェアおよびコンポーネントを提示されることになる。
【0068】
S303における検索の結果、過去の類似のソフトウェアまたはコンポーネントが見つからない場合(S304:N)、検索装置150は見つからなかったことを示すフラグを端末200に返信し(S307)、処理を終了する。
【0069】
ユーザは端末200上において、
図8の検索によって特定されたソフトウェアまたはコンポーネントを認識し、表示された検索結果の中からソフトウェアやコンポーネントを選択することができる。選択されたソフトウェアやコンポーネントの作成時に入力されたパラメータが自動的に
図7の画面に入力される。これにより、過去の類似のソフトウェアやコンポーネントの中から、実績のあるソフトウェアやコンポーネントを参考にしながら、新しいソフトウェアを作成することが可能となる。
【0070】
図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)。
【0071】
使用実績は、例えばデータ数522やソフトウェア利用者数523が多いソフトウェアほど実績が高いものとみなすことができる。ソフトウェア使用数542についても同様である。これらの評価項目を組み合わせて評価する適当な評価関数を用いてもよい。
【0072】
検索処理(S405)については、共通する検索語を特定する他に、検索語間の類似度を用いて、類似する検索語を特定してもよい。その場合、類似度の指標の1例としては、コサイン類似度がある。コサイン類似度とは、テキストが似ているとき同じ単語が近い確率で各テキストに出現すると考えられるので、テキスト間に共通する単語がどれだけあるかに基づき類似度を計算するものである。あるいは、似た意味を持つ単語はその単語の周辺に出現する単語が類似するという仮定に基づき、構築された単語をベクトル化する手法を用いて、類似度を計算してもよい。
【0073】
優先度について詳細を以下に記載する。優先度は、使用実績があり有効なソフトウェアやコンポーネントと評価できるものがより上位の優先順位で表示されるようにするために用いる指標である。優先度をどのように決定するかについて、本実施形態では、2通りの観点で優先度を決定する。1つ目は「データ分析者に基づく優先度決定」、2つ目は「データ収集者に基づく優先度決定」である。
【0074】
「データ分析者に基づく優先度決定」においては、データ分析者の評価が優先される。たとえば、データ分析者による評価が、ソフトウェアAは「4」、ソフトウェアBは「2」だった場合、ソフトウェアAの方が優先度は高くなる。データ分析者の評価が存在しない、または同じ場合、データ数の多いソフトウェアの方が、データ分析者の観点では、より多くのデータが分析に使用可能なため望ましく、優先度が高くなる。
【0075】
「データ収集者に基づく優先度決定」においては、データ収集者の評価が優先される。たとえば、データ収集者による評価が、ソフトウェアAは「4」、ソフトウェアBは「2」だった場合、ソフトウェアAの方が優先度は高くなる。データ収集者の評価が存在しない、または同じ場合、データ数の多いソフトウェアの方が、データ収集者の観点では、より多くの使用されたソフトウェアであり、データ収集作業が煩雑でないことが類推可能なため望ましく、優先度が高くなる。コンポーネントの優先度については、データ収集時間の短いコンポーネントの方が、データ収集作業が容易であるため望ましく、優先度が高くなる。
【0076】
検索装置150は、これら2つの観点に基づき、優先度を計算する。例えば、データ数1000以上は5、1000~500は4、500~100は2、100~10は1、10以下は0などと評価し、優先度=データ収集者の評価+データ分析者の評価+データ数の評価、などとして評価する。これらの計算式や点数の配分は、適用するシステムにより変更してもよい。優先度は、適切な如何なる方法で算出されてもよい。優先度のこの計算方法は単なる1例に過ぎない。優先度は使用実績のあるものほど大きい値であるので、より実績があるソフトウェアやコンポーネントが上位の優先順位になるように検索結果が表示されることになる。表示されるソフトウェアやコンポーネントの数については、あらかじめ決めておいてもよいし、一定以上の優先度のソフトウェアやコンポーネントのみを表示することとしてもよい。
【0077】
以上により、利用者がソフトウェアやコンポーネントを検索する上で、より使用実績があるものを利用者に提示し、より効率的なソフトウェアやコンポーネントの再利用を促すことができる。
【0078】
端末200は、上述の検索処理によって情報処理装置100から送信されたソフトウェアとコンポーネントの情報を、所定のGUI上でソフトウェア・コンポーネント一覧として表示する。端末200は、この一覧のうちどのソフトウェアとコンポーネントの情報を参照するかについて、利用者からの指示を受け付ける。ユーザが選択したソフトウェアやコンポーネントを作成するとき入力されたパラメータが、自動的に
図7の画面に入力される。
【0079】
これら一連の処理により、過去の類似のソフトウェアやコンポーネントの中から、実績のあるソフトウェアやコンポーネントを参考にしながら、新しいソフトウェアを作成することが可能となる。
【0080】
図10は、ソフトウェアの作成支援の別手順を示すシーケンス図である。新たにデータ収集ソフトウェアを構築しようとしている利用者は、端末200を通じて、構築の対象となる新システムの要件を入力することとなる。管理データベース120には、既に開発されたソフトウェアの属性情報が既に登録されているものとする。
【0081】
ユーザが
図7の画面を用いて設定情報を入力し(S501)、表示・入力装置110が設定情報を受け付ける(S502)。検索装置150は表示・入力装置110からパラメータを受け取り、受け付けたパラメータに基づいて、管理データベース120に対して後述する検索処理を実施することにより、過去に作成した類似のソフトウェアまたはコンポーネントを検索する(S503)。検索の結果、過去の類似のソフトウェアまたはコンポーネントが見つかった場合(S504:Y)、検索によって特定したソフトウェアの属性情報を表示・入力装置110に返信する(S505)。この返信にともなって、「過去に類似のソフトウェアが作成されているが、それでも作成するかどうか」を、利用者に対して照会する。端末200は、利用者からデプロイ可否の最終指示を受け付ける(S506)。その後、利用者がデプロイすると判断し、その指示を端末200に入力した場合(S507:Y)、端末200は、デプロイ実行の指示を受けて、これを実行装置160に通知する(S508)。利用者がデプロイしないと判断し、その指示を端末200に入力した場合(S507:N)、デプロイ指示はされずに、処理は終了する。
【0082】
S503の検索の結果、過去の類似のソフトウェアまたはコンポーネントが見つからない場合(S504:N)、デプロイ実行の指示を受けて、これを実行装置160に通知する(S508)。この通知を受けた実行装置160は、作成装置300を介して、端末200によって指定された該当ソフトウェアのデプロイを後述の処理により実行する(S508)。
【0083】
以上により、要件に応じた過去の類似ソフトウェアを参照させることによって、類似のソフトウェアの乱立を防ぎ、意味のあるソフトウェア作成のみを許可することができる。
【0084】
図11は、端末200に表示される管理画面の例を示す。
図11に示すように、管理画面は、ユーザが表示対象を選択する表示対象選択ボックス650と、ユーザが表示する対象をあらかじめ用意された候補から選択する表示対象カテゴリー選択ボックス651と、ユーザが検索する条件やキーワードを入力する検索ボックス652と、表示部653とを表示する。
【0085】
管理画面の表示部653には、後述する表示対象選択ボックス650、表示対象カテゴリー選択ボックス651、検索ボックス652により入力された表示条件をもとに、管理データベース120に登録されているソフトウェアまたはコンポーネントが一覧表示されている。ユーザは、表示されている一覧からソフトウェアまたはコンポーネントを選択し、対象の詳細情報を表示する。
【0086】
表示対象選択ボックス650においてユーザは、表示対象として、ソフトウェア(アプリ)とコンポーネントのいずれかを選択する。表示対象カテゴリー選択ボックス651においてユーザは、表示対象のカテゴリーを、あらかじめ用意されたカテゴリーの候補から選択する。表示対象カテゴリー選択ボックス651で選択したキーワードは表示・入力装置110が受け付け、検索装置150に受け渡す。検索装置150において、受け付けたキーワードに基づいて、前述の検索処理を実施し、過去に作成した類似のソフトウェアまたはコンポーネントを検索し、検索結果を表示部653に表示する。表示対象カテゴリー選択ボックス651は、図のように選択肢を選ぶ形に限られない。たとえば、機械のある部位に関連するソフトウェアを表示させたい場合、部位ごとの画像を用意しておき(車体の前面部、後部、足回りなど)部位に対応する影絵を表示して、いずれかをクリックすると、関連するソフトウェアが表示されるようにしてもよい。
【0087】
検索ボックス652は、ユーザ自身が任意のキーワードを入力するボックスである。具体的には、この手入力ボックスでは、ユーザにキーボード等から任意のキーワードを入力させ、入力したキーワードを表示・入力装置110が受け付け、検索装置150に受け渡す。検索装置150は、受け付けたキーワードに基づいて、前述の検索処理を実施し、過去に作成した類似のソフトウェアまたはコンポーネントを検索し、検索結果を表示部653に表示し、ユーザに提示する。
【0088】
これら一連の操作により、複数作成されたソフトウェアの中で有効なソフトウェアを労力少なく見つけることができるので、ユーザがソフトウェアを作成する際に情報処理装置100がサポートすることができる。
【0089】
本実施形態におけるソフトウェアの作成方法の実施手順について
図12に基づき説明する。以下で説明するソフトウェアの作成方法に対応する各種動作は、作成装置300がメモリ等に読み出して実行するプログラムによって実現される。このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
【0090】
図12は、作成装置300がソフトウェアを作成する手順を示すフローチャートである。過去のソフトウェアとコンポーネントのなかで、ユーザが所望する機能を備えるものが見つからない場合、作成装置300はユーザが所望するソフトウェアを新規作成する。ここではデータレイク作成プログラムとデータ管理ソフトウェアを作成する例を説明する。データレイク作成プログラムは、端末200から入力された設定に基づいて、データ収集内容を携帯端末420に表示させ、収集結果を受け付けるためのデータ収集ソフトウェアを生成し、ネットワーク10を介してデータ収集ソフトウェアを携帯端末420に提供し、ネットワーク10を介して携帯端末420から収集結果を受信し格納するプログラムである。データ管理ソフトウェアは、当該データレイクからデータを抽出し適宜ユーザに提供するソフトウェアである。
【0091】
具体的には、本フローチャートにおけるソフトウェア作成は、テンプレートとパラメータを入力として、テンプレート中の変数をパラメータに基づき置き換えるテンプレートエンジンによって、あらかじめ用意されたテンプレートから、利用者が入力したパラメータを反映した各種ソースコードを作成することにより、実現可能である。
【0092】
あるデータ収集の目的を持って、その要件を満たすデータ収集ソフトウェアを作成したい利用者は、端末200を操作し、情報処理装置100にアクセスして作成処理を開始する。
【0093】
はじめに、表示・入力装置110は、適宜なインターフェースを介して、上述の要件を満たす要求を受け付ける。ユーザは
図7の画面を用いて、作成するソフトウェアの属性情報パラメータを入力する。端末200はそのパラメータを作成装置300へ送信する。端末200と作成装置300との間の情報授受は表示・入力装置110が仲介することを前提としているが、説明の簡明化のため、以降の説明においては表示・入力装置110の仲介処理については省略するものとする(以下同様)。
【0094】
作成装置300は、表示・入力装置110からパラメータを受け付ける(S601)。作成装置300は、受け付けたパラメータに基づいて、テンプレートデータベース310からデータ収集ソフトウェア用のテンプレートを選択し(S602)、そのテンプレート中の所定の引数を、受け取ったパラメータに置き換えることにより、データ収集ソフトウェアのソースコードを生成する(S603)。データ収集ソフトウェアのソースコードが完成したとき、コンパイルが必要な言語でソースコードが記述されている場合、データ収集ソフトウェアのソースコードのコンパイルを実行する。
【0095】
作成装置300は、データ収集ソフトウェアを携帯端末420に提供する(S604)。たとえば、データ収集ソフトウェアをネットワーク10上で公開することにより、携帯端末420にダウンロードさせることもできる。あるいは、JSON形式などの適当なフォーマットでパラメータを携帯端末420上に存在するソフトウェアに対して送信し、ソフトウェアがパラメータを読み込むことにより、データ収集ソフトウェアが作成されるようにしてもよい。この技術は、近年Javascriptによってスマートフォンソフトウェア開発を可能としているReactNative等の公知技術により、実現可能である。
【0096】
データ収集ソフトウェアは、データレイクへアクセスするためのパラメータを保持しているので、データレイクに対して収集したデータを送信することができる。このアクセス情報に関しては、ユーザに入力させてもよいし、データレイク生成プログラムやデータ管理ソフトウェアを生成する際に、自動でアクセス情報をデータ収集ソフトウェアへ送信してもよい。
【0097】
データ収集ソフトウェアは、上述のユーザが入力したパラメータに基づき変更されるコンポーネント以外に、基本的なコンポーネントがデフォルトで含まれている。たとえば、データレイクへのアクセス情報をもとにデータを格納する機能に関しては、
図7の画面上では定義していないが、これはそのアクセス情報がデータ収集ソフトウェアのソースコードに含まれているからである。このように、あらかじめ実現されている機能に関しては説明を割愛する。データ収集ソフトウェアは基本的な機能の他にも例えば、携帯端末420がネットワーク10に接続していないとき、すなわちオフラインのときには収集データを格納しておき、携帯端末420がネットワーク10に接続したとき、すなわちオンラインになったときに格納されたデータをデータレイクへ送信する機能を有する。これにより、基本的にオフラインが想定される建設現場においても、携帯端末420の移動にともない、オフラインからオンラインになった際にデータをデータレイクへ送信することができるので、効果的にデータを収集可能である。
【0098】
作成装置300は、データレイク生成プログラムのソースコードテンプレート中の所定の引数を、受け取ったパラメータに置き換えることにより、データレイク生成プログラムのソースコードを生成する(S605)。そして、データレイク生成プログラムのソースコードが完成したとき、コンパイルが必要な言語でソースコードが記述されている場合、データレイク生成プログラムのソースコードのコンパイルを実行する。作成装置300は、ネットワーク10を介してデータレイク生成プログラムをデータ管理装置410に対して送信する(S606)。作成装置300は、データ管理装置410に対して、そのデータレイク生成プログラムを実行するように指示する(S607)。データ管理装置410は、受信したデータレイク生成プログラムを実行することにより、データベースを含むデータレイクを作成する。
【0099】
ここで作成されるデータベースが持つデータテーブルは、データ収集ソフトウェアが収集するデータ項目と対応したデータ構造を有する。ただし、音声や画像といった非構造化データは、データベースで管理することが難しいので、非構造化データの格納場所を示すUniform Resource Identifier(URI)形式でデータテーブルに蓄積し、非構造化データは指定の格納場所に蓄積する。このように、構造化データと非構造化データを格納するデータレイクが作成される。データ管理装置410は、携帯端末420によって収集されたデータを格納する際、データレイクのアクセス情報に基づきデータレイクにアクセスし、該当するデータレイクに収集結果のデータを格納する。
【0100】
作成装置300は、データ管理ソフトウェア用のテンプレート中の所定の引数を、パラメータファイル中のパラメータに置き換え、データ管理ソフトウェアのソースコードを生成する(S608)。そして、データ管理ソフトウェアのソースコードが完成したとき、コンパイルが必要な言語でソースコードが記述されている場合、データ管理ソフトウェアのソースコードのコンパイルを実行する。作成装置300は、ネットワーク10を介してデータ管理ソフトウェアをデータ管理装置410に対して送信する(S609)。作成装置300は、データ管理装置410に対してそのデータ管理ソフトウェアをデプロイするように指示する(S610)。データ管理装置410は、受信したデータ管理ソフトウェアをデプロイする。
【0101】
データ管理ソフトウェアは、データレイクへアクセスするためのパラメータを保持しているので、データレイクからデータを読み出し、ユーザへ提示することができる。これにより、ユーザはデータ管理ソフトウェアを通じてデータの確認やダウンロードをすることができる。たとえば、CSV形式で書き出せば、ダウンロードしたデータを表計算ソフトなどに読み込むことにより、簡単に集計および図表化することができ、様々な解析が可能となる。
【0102】
データ管理ソフトウェアは、分析環境と連携するために、分析に用いる各データをダウンロードする機能のほかに、選択したデータを分析環境上で読み取るコードを発行する連携機能があってもよい。これによって、分析者は分析環境との連携機能によってすぐさまデータ分析を実施できる。この機能は例えばGraphQLという公知の手法によって実現できる。GraphQLは、データの関係性を含めてデータ型を定義するスキーマと、スキーマに基づきデータ型毎にどのようにデータにアクセスするのかという定義をするリゾルバを用いることにより、既存のデータ蓄積方式を変更せず、データ活用を可能とする。
【0103】
データレイクとデータ管理ソフトウェアが用意されるデータ管理装置410は、物理的に用意されたサーバ以外にも、仮想化されたソフトウェア機能やプラットフォーム機能、ハードウェア機能を用いてもよい。たとえば、近年利用が拡大されているソフトウェアをファイルシステムや依存するライブラリといった実行環境ごとパッケージ化(コンテナ化)することが可能なコンテナ技術を用いることが考えられる。具体的には、Docker社が中心になって開発しているOpen Source Software(OSS)のコンテナ実行・管理ツールであるDockerを用いた場合は、Dockerfileスクリプトからコンテナのイメージを作成することが可能であり、コンテナのイメージ(ソフトウェア)のビルド、デプロイ、実行が可能である。これを用いることにより、データレイク生成プログラムをコンテナのビルドの際に実行し、データレイクを生成し、同時にデータ管理ソフトウェアをビルド、デプロイ、実行することが可能である。また、Dockerの場合、遠隔にある機能をネットワーク越しに呼び出すためのインターフェースであるWebAPIを用いて、Dockerに上述の処理を指示することができる。
【0104】
以上により、利用者は、プログラミングの知識を必要とせず、データを収集するためのシステムを作成することが可能になる。
【0105】
<実施の形態1:まとめ>
本実施形態1に係るソフトウェア作成支援システム1によれば、ユーザが高度な知識を必要とせず、過去に作成された類似のソフトウェアの中から、使用実績のあるソフトウェアを掲示することにより、過去に作成されたソフトウェアの中で有効なソフトウェアを労力少なく見つけることができる。これにより、ユーザがソフトウェアを作成する際に、情報処理装置100によってサポートすることができる。
【0106】
本実施形態1に係るソフトウェア作成支援システム1は、ユーザが所望する属性を有する既存ソフトウェア(またはコンポーネント)が見つからない場合は、ソースコードテンプレートの変数をユーザが指定する属性情報にしたがって置き換えることにより、ソフトウェアを新規作成する。これにより、過去に作成されたソフトウェアの中で有効なソフトウェアが存在しない場合であっても、ユーザのリクエストに合致するソフトウェアを作成できる。例えばアルゴリズムなどの基本的部分はユーザのリクエストに合致するソフトウェアであっても、属性情報がユーザのリクエストに合致しないことにより、検索において所望のソフトウェアがヒットしない可能性がある。そのようなソフトウェアであっても、既存ソースコードを利用しつつユーザが指定する属性情報によってパラメータを置き換えることにより、ユーザのリクエストに合致するソフトウェアを作成できる。
【0107】
<実施の形態2>
実施形態1は、作成装置300がソフトウェアを作成することについて説明した。本発明の実施形態2では、作成装置300を用いず、外部の事業者が提供するソフトウェア作成サービスを用いて、ソフトウェアを作成する構成例を説明する。以下では、実施形態1との相違点を中心に説明する。
【0108】
図13は、本実施形態2に係るソフトウェア作成支援システム1の構成図である。情報処理装置100は、適宜なネットワーク10を介して、端末200およびソフトウェア提供システム770と通信可能に接続されている。実施形態1と比較すると、作成装置300がソフトウェア提供システム770と変更になっている。
【0109】
ソフトウェア提供システム770は、提供事業者が提供する画面を通じて、ユーザが入力した設定に基づき、データ収集システム400が提供されるサービスである。この提供形態は、提供事業者がデータ収集システム400のハードウェアあるいはソフトウェア等の各種リソースをサービスとしてユーザに提供する形式を想定したものである。こうしたサービスの詳細仕様は、利用者側にオープンになるとは限らず、またサービスの仕様が非公開下で変更になる場合もある。したがってこのようなサービスに対して上述の作成支援・管理をする場合、ソフトウェア提供システム770における
図7の画面に相当する入力画面が、サービス事業者によって提供されるものに変更される。ソフトウェア提供システム770の公知サービスの1例としては、Teamscopeが提供するMobile Form Builderが挙げられる。
【0110】
情報処理装置100に関して、実施形態1と大きく異なる部分について説明する。ソフトウェア提供システム770における
図7の画面に相当する入力画面が変更となることが最も大きな相違となる。そこで本実施形態2の情報処理装置100では、表示・入力装置110を介して、ソフトウェア提供システム770の画面を端末200へ表示する。端末200が入力した内容は、表示・入力装置110を介して、ソフトウェア提供システム770の画面に反映される。管理装置140は、表示・入力装置110を介して、出力されている画面からユーザの入力部分を取得し、ソフトウェア情報として管理データベース120へ登録する。登録処理、作成支援、管理に関しては、実施形態1と同じである。また、適宜ソフトウェア提供システム770の画面に応じて、
図7の画面に相当する入力画面の項目を変更することにより、実施形態1と同じように、ユーザがソフトウェアを作成することを、情報処理装置100によってサポートすることができる。
【0111】
本実施形態2によれば、既存のソフトウェア提供サービスに対して、過去に作成された類似のソフトウェアの中から、使用実績のあるソフトウェアの設定を掲示することにより、複数のソフトウェアの中で有効なソフトウェアを労力少なく見つけることができる。
【0112】
<実施の形態3>
実施形態1と2において、作成装置300または外部のソフトウェア提供システム770によって、ソフトウェアを作成する構成例を説明した。本発明の実施形態3では、ソフトウェアの管理のみに特化した構成例を説明する。以下、実施形態1~2との相違点を中心に説明する。
【0113】
図14は、本実施形態3に係るソフトウェア作成支援システム1の構成図である。情報処理装置100は、適宜なネットワーク10を介して、端末200と通信可能に接続されている。実施形態1と比較すると、作成装置300と実行装置160が削除されている。
【0114】
本実施形態では、ソフトウェア登録画面と実績収集画面を介してのみ、ソフトウェア属性情報とソフトウェア使用実績を管理データベース120へ登録する。本実施形態では、ソフトウェアの検索により、登録されたソフトウェアを管理する。ソフトウェア登録画面は、登録するソフトウェアに応じて柔軟に変更される。
【0115】
本実施形態によれば、作成装置300やソフトウェア提供システム770以外によって作成されたシステムに関しても、管理することができる。例えば、プログラマーが自分の手で作成したソフトウェアに関しても、本実施形態によれば、管理することができる。
【0116】
<本発明の変形例について>
本発明は、前述した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【0117】
1 ソフトウェア作成支援システム
10 ネットワーク
100 情報処理装置
110 表示・入力装置
120 管理データベース
130 実績収集装置
140 管理装置
150 検索装置
160 実行装置
200 端末
300 作成装置
310 テンプレートデータベース
400 データ収集システム
410 データ管理装置
420 携帯端末
510 ソフトウェア情報テーブル
520 ソフトウェア使用実績テーブル
530 コンポーネント情報テーブル
540 コンポーネント使用実績テーブル