(57)【要約】      （修正有）【課題】ソフトウェア部品を効率よく検索でき、作業性を向上できるようにしたソフトウェア部品管理システム、計算機および方法を提供する。【解決手段】ソフトウェア部品管理システム１は、各ソフトウェア部品を所定の部品区分に分類する処理フェーズ分類処理部３１０と、各ソフトウェア部品の実行実績を示す実行実績情報３２１と処理フェーズ分類処理部３１０による各ソフトウェア部品の分類結果とに基づいて、実行実績情報に記録された各ソフトウェア部品の属する部品区分の実行順序を検出する処理フロー抽出処理部３１１と、利用要求されたソフトウェア部品の属する部品区分の次に実行されることのできる推薦対象の部品区分を分類結果と実行順序とに基づいて検出し、検出された推薦対象の部品区分に属するソフトウェア部品を利用要求元５０へ出力する推薦処理部３１３と、を備える。【選択図】図１
2019101829.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア部品を検索するソフトウェア部品管理システムであって、
各ソフトウェア部品を所定の部品区分に分類する分類処理部と、
前記各ソフトウェア部品の実行実績を示す実行実績情報と前記分類処理部による前記各ソフトウェア部品の分類結果とに基づいて、前記実行実績情報に記録された各ソフトウェア部品の属する部品区分の実行順序を検出する実行順序処理部と、
利用要求されたソフトウェア部品の属する部品区分の次に実行されることのできる推薦対象の部品区分を、前記分類結果と前記実行順序とに基づいて検出し、前記検出された推薦対象の部品区分に属するソフトウェア部品を検出し、前記検出されたソフトウェア部品を前記利用要求元へ出力する推薦処理部と、
を備える
ソフトウエア部品検索システム。
【請求項２】
前記分類処理部は、前記各ソフトウェア部品についての入出力関係と、前記各ソフトウェア部品の特性と、前記各ソフトウェア部品に入出力されるデータの特性のうち少なくともいずれか一つに基づいて、前記各ソフトウェア部品がいずれの部品区分に属するか分類する、
請求項１に記載のソフトウェア部品管理システム。
【請求項３】
前記推薦処理部は、前記利用要求されたソフトウェア部品の出力するデータの特性を説明変数として用いることにより、前記利用要求されたソフトウェア部品が前記実行順序中のいずれに位置するかを計算する、
請求項２に記載のソフトウェア部品管理システム。
【請求項４】
前記推薦処理部は、前記検出されたソフトウェア部品のうち、前記利用要求されたソフトウェア部品と所定の属性を共有するソフトウェア部品が上位候補となるように前記利用要求の発行元へ出力する、
請求項１に記載のソフトウェア部品管理システム。
【請求項５】
前記実行順序情報には、遷移元のソフトウェア部品の属する遷移元部品区分と、遷移先のソフトウェア部品の属する遷移先部品区分と、前記遷移元部品区分から前記遷移先部品区分へ遷移する遷移条件とが記録されており、
前記実行順序処理部は、一つの遷移元部品区分から異なる複数の遷移先部品区分への遷移が存在する場合に、前記遷移元部品区分に属する前記ソフトウェア部品の出力するデータの特性を説明変数として用いることにより、前記異なる複数の遷移先部品区分へ遷移する確率を計算する、
請求項１に記載のソフトウェア部品管理システム。
【請求項６】
前記分類処理部は、新規のソフトウェア部品が登録された場合、既存のソフトウェア部品のいずれかが更新された場合、または、既存のソフトウェア部品を利用するための設定が更新された場合のいずれか一つが発生した場合に、前記各ソフトウェア部品を前記所定の部品区分に分類する、
請求項１に記載のソフトウェア部品管理システム。
【請求項７】
前記実行順序処理部は、前記実行実績情報のうち予め設定される所定のユーザにより実行された所定の実行実績情報と、前記分類処理部による前記各ソフトウェア部品の分類結果とに基づいて、前記所定の実行実績情報に記録された各ソフトウェア部品の属する部品区分の実行順序を検出する、
請求項１に記載のソフトウェア部品管理システム。
【請求項８】
前記所定の属性は、前記利用要求されたソフトウェア部品の前記利用要求元により過去に利用された実績のあるソフトウェア部品の属する部品区分を、前記推薦対象の部品区分として検出する、
請求項１に記載のソフトウェア部品管理システム。
【請求項９】
前記ソフトウェア部品は、業務改善に用いるデータ分析用ライブラリである、
請求項１に記載のソフトウェア部品管理システム。
【請求項１０】
ソフトウェア部品を検索するソフトウェア部品管理システムとして機能する計算機であって、
演算部と、
前記演算部により実行される所定のコンピュータプログラムを記憶する記憶部とを備えており、
前記演算部は、前記所定のコンピュータプログラムを実行することにより、
各ソフトウェア部品を所定の部品区分に分類する分類処理部と、
前記各ソフトウェア部品の実行実績を示す実行実績情報と前記分類処理部による前記各ソフトウェア部品の分類結果とに基づいて、前記実行実績情報に記録された各ソフトウェア部品の属する部品区分の実行順序を検出する実行順序処理部と、
利用要求されたソフトウェア部品の属する部品区分の次に実行されることのできる推薦対象の部品区分を、前記分類結果と前記実行順序とに基づいて検出し、前記検出された推薦対象の部品区分に属するソフトウェア部品を検出し、前記検出されたソフトウェア部品を前記利用要求元へ出力する推薦処理部と、
を実現する
計算機。
【請求項１１】
前記実行順序情報には、遷移元のソフトウェア部品の属する遷移元部品区分と、遷移先のソフトウェア部品の属する遷移先部品区分と、前記遷移元部品区分から前記遷移先部品区分へ遷移する遷移条件とが記録されており、
前記実行順序処理部は、一つの遷移元部品区分から異なる複数の遷移先部品区分への遷移が存在する場合に、前記遷移元部品区分に属する前記ソフトウェア部品の出力するデータの特性を説明変数として用いることにより、前記異なる複数の遷移先部品区分へ遷移する確率を計算する、
請求項１０に記載の計算機。
【請求項１２】
前記実行順序処理部は、前記実行実績情報のうち予め設定される所定のユーザにより実行された所定の実行実績情報と、前記分類処理部による前記各ソフトウェア部品の分類結果とに基づいて、前記所定の実行実績情報に記録された各ソフトウェア部品の属する部品区分の実行順序を検出する、
請求項１０に記載の計算機。
【請求項１３】
前記所定の属性は、前記利用要求されたソフトウェア部品の前記利用要求元により過去に利用された実績のあるソフトウェア部品の属する部品区分を、前記推薦対象の部品区分として検出する、
請求項１０に記載の計算機。
【請求項１４】
計算機を用いてソフトウェア部品を検索するソフトウェア部品検索方法であって、
各ソフトウェア部品を所定の部品区分に分類するステップと、
前記各ソフトウェア部品の実行実績を示す実行実績情報と前記分類ステップによる前記各ソフトウェア部品の分類結果とに基づいて、前記実行実績情報に記録された各ソフトウェア部品の属する部品区分の実行順序を検出するステップと、
ソフトウェア部品の利用が要求されると、前記利用要求されたソフトウェア部品の属する部品区分の次に実行されることのできる推薦対象の部品区分を、前記分類結果と前記実行順序とに基づいて検出し、前記検出された推薦対象の部品区分に属するソフトウェア部品を検出し、前記検出されたソフトウェア部品を出力するステップと、
を実行する
ソフトウェア部品検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア部品管理システム、計算機および方法に関する。
【背景技術】
【０００２】
企業の経営改善のために、業務の効率化や業務計画の最適化を目的としたデータ分析の重要性が増している。データサイエンティスト等の名称で呼ばれる技術者が、データ分析ライブラリを用いてデータを分析する。データ分析処理を定型化できる場合には、そのデータ分析処理をアプリケーションとしてシステムに実装し、自動化する。
【０００３】
近年、いわゆるオープンソースだけでも４０００を超えるデータ分析ライブラリが公開されている。技術者の作業を支援すべく、大量のデータ分析ライブラリ群の中からデータ分析ライブラリを推薦する従来技術が知られている（特許文献１，２）。
【０００４】
特許文献１では、新たな作業計画を立てる際に、過去の実績から業務工程を振り分け、実績の統計値を算出し、作業工程毎の作業時間の推定値を出力する。
【０００５】
特許文献２では、同じような属性をもつ複数のカラムの各々について、共通するデータが格納されているカラムを同義のカラムとして判定し、複数のデータ間の類似度を算出することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−０６９２２２号公報
【特許文献２】特開２０１１−２３２８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
技術者がデータを分析する場合、業務の目的や業種によって、異なる多様なライブラリを利用する。例えば、第１の業種に関するデータ分析では、生産計画と製造実績を比較して遅延を検出するライブラリや、遅延が発生した際にラインのエラー履歴を分析するライブラリや、製造計画を再計画するライブラリを利用する。第２の業種に関するデータ分析では、在庫予定数と在庫実績を比較して過剰在庫を検出するライブラリや、過剰在庫を検出した場合に発注納品履歴を分析するライブラリや、発注計画を再計画するライブラリなどを利用する。
【０００８】
従来技術では、或る業種で培ったデータ分析のノウハウを他の業種で再利用することができない。例えば、第１の業種で培った製造計画のデータ分析ノウハウを、第２の業種での在庫管理のデータ分析に活用することができない。
【０００９】
本発明は上記の課題に鑑みてなされたもので、その目的は、ソフトウェア部品を効率よく検索でき、作業性を向上できるようにしたソフトウェア部品管理システム、計算機および方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決すべく、本発明の一つの観点に従うソフトウェア部品管理システムは、各ソフトウェア部品を所定の部品区分に分類する分類処理部と、各ソフトウェア部品の実行実績を示す実行実績情報と分類処理部による各ソフトウェア部品の分類結果とに基づいて、実行実績情報に記録された各ソフトウェア部品の属する部品区分の実行順序を検出する実行順序処理部と、利用要求されたソフトウェア部品の属する部品区分の次に実行されることのできる推薦対象の部品区分を、分類結果と実行順序とに基づいて検出し、検出された推薦対象の部品区分に属するソフトウェア部品を検出し、検出されたソフトウェア部品を利用要求元へ出力する推薦処理部と、を備える。
【発明の効果】
【００１１】
本発明によれば、ソフトウェア部品を部品区分に分類して管理するため、複数の業種や組織にまたがるソフトウェア部品について、利用要求されたソフトウェア部品の次に実行されることのできるソフトウェア部品を検出して出力することができ、ユーザの使い勝手や作業性が向上する。
【図面の簡単な説明】
【００１２】
【図１】「ソフトウェア部品管理システム」の一例としてのライブラリ管理システムの全体概要図である。
【図２】ライブラリ管理システムの動作の概略を示す説明図である。
【図３】ライブラリ管理システムのシステム構成図である。
【図４】ライブラリデータベースの構成例である。
【図５】ライブラリ実行実績データベースの構成例である。
【図６】業務データの構成例である。
【図７】処理フェーズデータベースの構成例である。
【図８】処理フローデータベースの構成例である。
【図９】類似度データベースの構成例である。
【図１０】処理フェーズ分類処理のフローチャートである。
【図１１】ライブラリの特徴量を管理するテーブルの例である。
【図１２】処理フロー抽出処理のフローチャートである。
【図１３】推薦処理のフローチャートである。
【図１４】データ分析処理の画面例である。
【図１５】第２実施例に係り、ライブラリ管理システムのシステム構成図である。
【図１６】分析アプリケーション編集画面の例である。
【図１７】フロー情報を管理するテーブルの例である。
【図１８】第３実施例に係り、ライブラリ管理システムのシステム構成図である。
【図１９】データ分析アプリケーション画面の例である。
【発明を実施するための形態】
【００１３】
以下、図面に基づいて、本発明の実施の形態を説明する。本実施形態で説明する計算機は、ライブラリの実行機能３１４と、ライブラリを検索して推薦する機能３１３とを備えている。
【００１４】
計算機は、例えば、ライブラリの実行処理部３１４と、ライブラリの推薦処理部３１３と、処理フェーズの分類処理部３１０と、処理フローの抽出処理部３１１と、類似度算出処理部３１２とを実行する。計算機は、ライブラリ情報３２０と、ライブラリの実行実績情報３２１と、業務データ３２２とを使用可能である。以下、実行実績情報を実行実績と略記する場合がある。
【００１５】
類似度算出処理部３１２は、ライブラリの実行実績３２１からライブラリの類似度を算出する。処理フェーズ分類処理部３１０は、ライブラリ情報３２０とライブラリの実行実績３２１と業務データ３２２とから、「部品区分」の一例としての処理フェーズを算出する。処理フロー抽出処理部３１１は、処理フェーズ情報３２３とライブラリ実行実績３２１とから処理フローを算出する。
【００１６】
推薦処理部３１３は、ユーザであるデータサイエンティスト等の技術者が利用する端末５０からライブラリの実行リクエストを受信すると、リクエストを受けたライブラリを実行させると共に、ライブラリの実行結果と、ライブラリと処理フェーズの対応表と、処理フローとから、ユーザが次にどの処理フェーズに向かうかを算出し、次の処理フェーズに対応するライブラリを推薦する。
【００１７】
上述した特許文献１と特許文献２との組み合わせがもしも仮に可能だとしても、ライブラリを処理フェーズに上位概念化して分類管理することができないため、業種、会社、工場、部署などの異なる組織間でライブラリ活用のノウハウを共有することはできない。一般的に、組織が異なると、ライブラリ内部に含まれるデータの値が異なるため、ライブラリ間の類似を判定するのは難しい。
【００１８】
これに対し、本実施例のライブラリ管理システムによれば、例えばユーザが業務改善に向けたデータ分析を行う際に、データ分析の目的に応じた適切なライブラリを推薦することができる。これにより、ユーザは、複数の（通常は多数の）ライブラリの中から、データ分析の目的に合致したライブラリを効率よく利用することができ、データ分析作業を容易化することができる。
【００１９】
以下、本実施形態について複数の実施例を例に挙げて説明する。本実施形態に係るライブラリ管理システムは、実施例に述べる構成に限定されないのは明らかである。
【００２０】
第１実施例では、例えばＰｙｔｈｏｎのＪｕｐｙｔｅｒなどを用いたリアクティブなデータ分析時に、次に実行（利用）すべきライブラリをライブラリ管理システムからユーザへ推薦（提案）することにより、データ分析作業を容易化する。
【００２１】
第２実施例では、例えばデータ分析用のアプリケーションを開発する際に、次に実行すべきライブラリをライブラリ管理システムからユーザへ推薦することにより、データ分析用アプリケーションの開発作業を容易化する。
【００２２】
第３実施例では、例えばデータ分析用アプリケーションのダッシュボード（管理ツール）を用いたデータ分析作業時に、ユーザが次に実行すべきライブラリを強調表示することにより、データ分析作業を容易化する。
【００２３】
以後の説明では「ａａａテーブル」、「ａａａリスト」、「ａａａＤＢ（Ｄａｔａｂａｓｅ）」、（ａａａは任意の文字列）等の表現にて本実施例の情報を説明するが、これら情報は必ずしもその形式で情報が保存されている必要は無く、テーブル、リスト、ＤＢ、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「ａａａテーブル」、「ａａａリスト」、「ａａａＤＢ」等について「ａａａ情報」と呼ぶことがある。
【００２４】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）」という表現を用いるが、これらについてはお互いに置換が可能である。
【００２５】
また、本実施例に例示する情報には、不図示のフィールドが含まれていても良いし、幾つかのデータフィールドが別のＤＢに分割して登録されていても良いし、幾つかのデータフィールドが存在しなくても良い。
【００２６】
また、本実施例に例示する処理フローには、不図示の処理ステップが含まれていても良いし、いくつかの処理ステップが存在しなくても良い場合もあり、いくつかの処理ステップの実行順序が入れ替わっていても良い。
【００２７】
また、以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリおよび通信ポート（通信制御デバイス）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。
【００２８】
また、各種プログラムは、プログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。この場合、プログラム配布サーバは、プロセッサと記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムを記憶する。そして、配布プログラムをプロセッサが実行することで、プログラム配布サーバのプロセッサは、配布対象のプログラムを他の計算機に配布する。
【００２９】
なお、本発明は後述する実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例および同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【００３０】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【００３１】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ、Ｂｌｕｅ  Ｒａｙ Ｄｉｓｋ、その他の光ディスク等の記録媒体に格納されていればよい。また、全てが同一の記憶媒体に格納されている必要はなく、幾つかのプログラム、テーブル、ファイルが別の記憶媒体に格納されていても良いし、通信ネットワークを介して接続される不図示の装置の記憶媒体に格納されていても良い。
【００３２】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【００３３】
また、計算機は入出力装置を有する。入出力装置の例としてはディスプレイと、キーボードと、ポインタデバイスと、タブレット端末と、スマートフォンとが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインタフェースやイーサーネットインタフェースを入出力デバイスとし、当該インタフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入出力装置での入力および表示を代替してもよい。なお、以後インタフェースのことをＩ／Ｆと記述することがある。
【００３４】
また、計算機は通信Ｉ／Ｆを有する。通信Ｉ／Ｆの例としては、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）接続端子と、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）の接続端子と、無線通信の接続装置と、が考えられるが、これら以外のデバイスであってもよい。また、通信ネットワークには有線ネットワークと無線ネットワークとが考えられるが、どちらの通信ネットワークであっても良い。
【実施例１】
【００３５】
図１〜図１４を用いて第１実施例を説明する。図１は、第１実施例にかかるライブラリ管理システムの全体概要図である。
【００３６】
図１のライブラリ管理システム１では、図３で後述するサーバ１０の内部におけるデータと処理の流れの概要を示す。
【００３７】
ライブラリ管理システム１は、端末５０を介して、データサイエンティスト等のユーザに対し、ライブラリを実行するサービスと、次に実行すべきライブラリを推薦するサービスとを提供する。
【００３８】
ライブラリ管理システム１は、それぞれ後述するように、「分類処理部」としての処理フェーズ分類処理部３１０、「実行順序処理部」としての処理フロー抽出処理部３１１、類似度算出処理部３１２、推薦処理部３１３、ライブラリ実行機能３１４といった処理部を備える。さらに、ライブラリ管理システム１は、それぞれ後述するように、ライブラリデータベース３２０、ライブラリ実行実績データベース３２１、業務データ３２２、処理フェーズデータベース３２３、処理フローデータベース３２４、類似度データベース３２５といった情報記憶部を備える。
【００３９】
図１では、各処理部３１０〜３１４と各情報記憶部３２０〜３２５とが一つの計算機に設けられているかのように示しているが、それら処理部および情報記憶部は複数の計算機に分散して配置されてもよい。各計算機が通信ネットワークなどを介して連携することにより、本実施形態の提供するライブラリ管理システム１を実現することができる。例えば、情報記憶部としてのＤＢ類は、各処理部３１０〜３１４の全部または一部を搭載した計算機とは別の計算機またはストレージシステムに設けられてもよい。各処理部３１０〜３１４も同一の計算機上に実装される必要はなく、それぞれ異なる計算機（物理計算機または仮想計算機）に設けられてもよい。
【００４０】
以下の説明では、データベースをＤＢと略記する場合がある。また、図中では、「処理部」の「部」を省略して表示することがある。例えば処理フェーズ分類処理部３１０は、処理フェーズ分類処理３１０と示される場合がある。
【００４１】
ライブラリ管理システム１は、上述のように、類似度算出処理部３１２と、処理フロー抽出処理部３１１と、処理フェーズ分類処理部３１０とが、それぞれライブラリＤＢ３２０と、ライブラリ実行実績ＤＢ３２１と、業務データ３２２とのうち必要なデータを参照することにより、類似度ＤＢ３２５と、処理フェーズＤＢ３２３と、処理フローＤＢ３２４の情報を出力する。
【００４２】
ユーザは、操作端末５０を用いて、ライブラリ管理システム１のライブラリ実行機能３１４に対し、所望のライブラリの実行リクエストを送信することができる。ライブラリ管理システム１は、端末５０から要求されたライブラリを実行する。ライブラリの実行結果は、ライブラリ実行実績ＤＢ３２１に登録される。
【００４３】
推薦処理部３１３は、ライブラリが実行されたことを検知すると、次に実行するべきライブラリの候補（推薦対象のライブラリ）を算出し、算出した候補を操作端末５０に出力する。これにより、ユーザは、次に実行するべきライブラリを容易に確認できるため、データ分析作業を容易化することができ、分析作業の作業効率が向上する。動作の概要を図２を用いて説明する。
【００４４】
図２は、ライブラリ管理システム１の全体動作の概略を示す。ライブラリＤＢ３２０は、複数の（通常、多数の）ライブラリＳＡ，ＳＢ，ＳＣ，ＳＸ，ＳＹ，ＳＺ，．．．を記憶している。
【００４５】
処理フェーズ分類処理部３１０は、各ライブラリを処理フェーズＰ１，Ｐ２，Ｐ３，．．．に分類する。処理フェーズは、例えば「データ収集」「データ分析」「最適化」といったように、処理内容を概念化したものである。したがって、具体的内容の異なるライブラリを同一の処理フェーズに分類できる。
【００４６】
一方、類似度算出処理部３１２は、各ライブラリをグループＧα，Ｇβ，．．．別に分類する。グループとは、ライブラリを使用したグループであり、例えば、会社、工場、研究所、官公庁、部署などの組織を区別する。したがって、ライブラリ管理システム１は、分類テーブル３２６により、各ライブラリを処理フェーズごとに、かつ、グループごとに分類して管理する。ライブラリ分類テーブル３２６は、処理フェーズデータベース３２３および類似度データベース３２５を連携させることで構成することができる。
【００４７】
処理フロー抽出処理部３１１は、ライブラリ実行実績データベース３２１に記憶された実行実績を分析することにより、処理フェーズの実行順序を抽出する。すなわち、処理フロー抽出処理部３１１は、各ライブラリの実行された順序をデータベース３２１読出し、各ライブラリを対応する処理フェーズに置き換えることにより、処理フェーズの実行された順序である処理フロー３２４０を算出する。
【００４８】
推薦処理部３１３は、端末５０−１，５０−２からの実行リクエストを受信すると、リクエストされたライブラリを実行し、データベース３２１を更新すると共に、次に実行することのできるライブラリを抽出して提案する。
【００４９】
例えば、或る業種Ｇαのユーザが、端末５０−１を用いてライブラリＳＡ，ＳＢとライブラリ管理システム１に実行させた場合、推薦処理部３１３は、次のライブラリＳＣを処理フロー３２４０に基づいて抽出し、端末５０−１へ提案する。
【００５０】
同様に、他の業種Ｇβのユーザが、端末５０−２を用いてライブラリＳＸ，ＳＹとライブラリ管理システム１に実行させた場合、推薦処理部３１３は、次のライブラリＳＺを処理フロー３２４０に基づいて抽出し、端末５０−２へ提案する。より詳しくは、推薦処理部３１３は、処理フロー３２４０で抽出された処理フェーズＰ１，Ｐ２，Ｐ３の遷移を参照し、業種Ｇβにおいて処理フェーズＰ３に該当するライブラリＳＺをライブラリ分類テーブル３２６で特定し、特定したライブラリＳＺを提案する。
【００５１】
ライブラリの提案精度を高めるためには、所定値以上のライブラリを実行する方が好ましい。しかし本実施例では、所定値について特に限定しない。
【００５２】
図２の例では、業種Ｇαのユーザは、豊富な実行実績３２１を利用することができるので、ライブラリＳＢの次に実行すべきライブラリＳＣを容易に入手できる。これに対し、業種Ｇαとは異なる業種Ｇβのユーザは、たとえば乏しい実行実績しか持たない場合であっても、業種Ｇαから得られた処理フロー３２４０を利用することにより、ライブラリＳＹの次に実行すべきライブラリＳＺを容易に入手できる。
【００５３】
図３は、ライブラリ管理システム（計算機システムと呼ぶこともできる）の構成例を示すブロック図である。
【００５４】
ライブラリ管理システム１は、例えば、サーバ１０と、操作端末５０とを含む。サーバ１０と操作端末５０とは、通信ネットワークＣＮを介して双方向通信可能に接続されている。なお、サーバ１０は、一つの計算機から構成してもよいし、複数の計算機を連携させることで構成してもよい。サーバ１０の置かれる計算機は、物理計算機でもよいし、仮想計算機でもよい。
【００５５】
サーバ１０は、例えば、プロセッサ２０と、メモリ３０と、通信インターフェース４０とを有する。なお、図中では、プロセッサをＣＰＵと、インターフェースをＩ／Ｆとそれぞれ略記する。
【００５６】
メモリ３０には、コンピュータプログラム３１０〜３１４と、データ群３２０〜３２５が格納されている。プロセッサ２０は、コンピュータプログラム３１０〜３１４を実行することにより、ライブラリ管理システム１としての機能を実現する。
【００５７】
コンピュータプログラムには、例えば、処理フェーズ分類処理部３１０と、処理フロー抽出処理部３１１と、類似度算出処理部３１２と、推薦処理部３１３と、ライブラリ実行処理部３１４とがある。データ群には、例えば、ライブラリＤＢ３２０と、ライブラリ実行実績ＤＢ３２１と、業務データ３２２と、処理フェーズＤＢ３２３と、処理フローＤＢ３２４と、類似度ＤＢ３２５とがある。
【００５８】
サーバ１０には、操作端末５０が接続されていてもよい。操作端末５０は、サーバ１０を操作するコンピュータである。操作端末５０は、入出力装置５１を有する。入出力装置５１は、ユーザの操作によりデータを入出力する装置である。入力データは、通信ネットワークＣＮを介してサーバ１０に送信される。入出力装置５１は、サーバ１０から送信されたデータを通信ネットワークＣＮを介して受信し、受信したデータを表示することもできる。入出力装置５１としては、例えば、キーボード、タッチパネル、マウス、音声入力装置、ディスプレイ、プリンタ、音声出力装置などがある。
【００５９】
以下、先にデータ群について説明し、続いてコンピュータプログラムを説明する。
【００６０】
図４は、ライブラリＤＢ３２０の一例を示す。ライブラリＤＢ３２０は、サーバ１０が実行可能なライブラリのうち、データ分析の際に任意のユーザが利用可能なライブラリに関する情報を保存する。
【００６１】
ライブラリＤＢ３２０は、予め手動により、または何らかのプログラムにより、用意される情報である。ライブラリＤＢ３２０は、例えばＩＤフィールド３２０１と、処理名称フィールド３２０２と、処理の詳細フィールド３２０３と、入力フィールド３２０４と、出力フィールド３２０５と、を有する。以下に述べる他のデータベースも同様であるが、図示したフィールド以外のフィールドを含んでもよいし、一つのデータベースが複数のデータベースに分割されてもよい。
【００６２】
ＩＤフィールド３２０１は、ライブラリを一意に特定する情報である。処理名称フィールド３２０２は、ライブラリの名称を記録する情報である。処理の詳細フィールド３２０３は、ライブラリの処理の詳細を記録する情報である。入力フィールド３２０４は、ライブラリに入力されるデータの意味および形式を示す情報群であり、０個以上の任意の入力データに関する情報が記録されている。出力フィールド３２０５は、ライブラリが出力するデータの意味および形式を示す情報群であり、０個以上の任意の出力データに関する情報が記録されている。
【００６３】
図５は、ライブラリ実行実績ＤＢ３２１の一例を示す。ライブラリ実行実績ＤＢ３２１は、サーバ１０が実行したライブラリの履歴を記録する情報であり、予め手動により、または何らかのプログラムにより、用意される情報である。
【００６４】
ライブラリ実行実績ＤＢ３２１は、例えば実行時刻フィールド３２１１と、ライブラリＩＤフィールド３２１２と、入力フィールド３２１３と、出力フィールド３２１４と、ユーザフィールド３２１５と、を有する。
【００６５】
実行時刻フィールド３２１１は、ライブラリが実行された時刻を示す情報である。ライブラリＩＤフィールド３２１２は、実行されたライブラリを一意に特定する情報である。入力フィールド３２１３は、ライブラリに実際に入力されたデータの所在を表す情報である。出力フィールド３２１４は、ライブラリの出力したデータを示す情報である。ユーザフィールド３２１５は、ライブラリを実行したユーザを一意に特定する情報である。ユーザフィールド３２１５は、ユーザ情報を管理するユーザ情報管理テーブル（図示せず）に対応づけられることができる。ユーザ情報管理テーブルは、例えば、ユーザＩＤ、ユーザ名、ユーザの属するグループ名（企業名や部署名など）、ユーザのスキルレベル、熟練度、操作端末５０のネットワークアドレスなどを管理することができる。
【００６６】
図６は、業務データ３２２の一例を示す。業務データ３２２は、ユーザが改善を希望する業務に関する情報である。図６に例示するテーブルは、業務データの一部である。業務データ３２２は、予め手動により、または何らかのプログラムにより、用意される情報である。
【００６７】
図６に例示する業務データ３２２は、製造工場のラインに関する情報の一部を示す。業務データ３２２は、例えばラインＩＤフィールド３２２１と、部品番号フィールド３２２２と、投入予定時刻フィールド３２２３と、排出予定時刻フィールド３２２４と、投入時刻実績フィールド３２２５と、排出時刻実績フィールド３２２６と、を有する。
【００６８】
ラインＩＤフィールド３２２１は、生産ラインを一意に特定する情報である。部品番号フィールド３２２２は、生産ライン上で生産された部品を一意に特定する情報である。投入予定時刻フィールド３２２３は、ラインで部品の製造を開始する予定時刻を示す情報である。排出予定時刻フィールド３２２４は、ラインで部品の製造を完了する予定時刻を示す情報である。投入時刻実績フィールド３２２５は、ラインで実際に部品の製造を開始した時刻を示す情報である。排出時刻実績フィールド３２２６は、ラインでの部品の製造を完了した実際の時刻を示す情報である。
【００６９】
図７は、処理フェーズＤＢ３２３の一例を示す。処理フェーズＤＢ３２３は、ライブラリがどの処理フェーズに分類されるかの対応関係を保持する情報であり、処理フェーズ分類処理２１１により生成される。
【００７０】
処理フェーズＤＢ３２３は、例えば処理フェーズフィールド３２３１と、ライブラリＩＤフィールド３２３２と、を有する。処理フェーズフィールド３２３１は、処理フェーズ分類処理部３１０が判別した処理のフェーズを一意に特定する情報である。ライブラリＩＤフィールド３２３２は、処理フェーズに分類されるライブラリ群を特定する情報であり、１つ以上のライブラリのＩＤが保存される。
【００７１】
図８は、処理フローＤＢ３２４の一例を示す。処理フローＤＢ３２４は、処理ステップの異なる部品（ライブラリ）がどのような順番で利用されかを保持する情報であり、処理フロー抽出処理２２３により生成される。
【００７２】
処理フローＤＢ３２４は、例えば遷移元フィールド３２４１と、遷移先フィールド３２４２と、条件フィールド３２４３と、ＩＤフィールド３２４４と、を有する。
【００７３】
遷移元フィールド３２４１は、実行されたライブラリがどの処理フェーズに属するかを示す情報である。遷移先フィールド３２４２は、実行されたライブラリの次にどの処理フェーズに属するライブラリが実行されたかを示す情報である。条件フィールド３２４３は、ライブラリの実行結果がどのような値だったときに遷移元の処理フェーズから遷移先の処理フェーズへ遷移したかの情報を示す。ＩＤフィールド３２４４は、処理フローＤＢ３２４に登録されている処理フローを一意に特定する情報である。
【００７４】
本実施例に記載の処理フローＤＢ３２４の情報が示す処理フローのイメージを、図２中の処理フロー３２４０として示す。なお、処理フロー３２４０では、「フェーズＰ１」などのフェーズ名称を単に「Ｐ１」と、「ｔｒｕｅ」「ｆａｌｓｅ」という条件を単に「Ｔ」「Ｆ」と、それぞれ省略して表示している。
【００７５】
図９は、類似度ＤＢ３２５の一例を示す。類似度ＤＢ３２５は、ライブラリがどのグループに分類されるかの対応関係を保持する情報であり、類似度算出処理部３１２により生成される。
【００７６】
類似度ＤＢ３２５は、例えばグループフィールド３２５１と、ライブラリＩＤフィールド３２５２と、を有する。グループフィールド３２５１は、類似度算出処理部３１２が判別した類似する処理群を一意に特定する情報である。ライブラリＩＤフィールド３２５２は、同じような処理に類似すると判定されたライブラリ群を特定する情報であり、１つ以上のライブラリのＩＤが保存される。
【００７７】
続いて、ライブラリ管理システム１で実行されるコンピュータプログラムの例について説明する。
【００７８】
処理フェーズ分類処理部３１０は、複数存在するライブラリを、ユーザによるデータ分析の目的に相当する処理フェーズに分類する処理である。
【００７９】
図１０は、サーバ１０が実行する処理フェーズ分類処理部３１０の手順例を示すフローチャートである。
【００８０】
処理フェーズ分類処理部３１０は、ライブラリＤＢ３２０およびライブラリ実行実績ＤＢ３２１に登録されている情報と、業務データ３２２に登録されている情報とを取得する（Ｓ１１）。処理フェーズ分類処理部３１０は、ステップＳ１１で取得したデータからライブラリの特徴量を抽出する（Ｓ１２）。
【００８１】
処理フェーズ分類処理部３１０は、ステップＳ１２で抽出した特徴量のうち、近しい特徴量の組合せを処理フェーズとして分類する（Ｓ１３）。最後に処理フェーズ分類処理部３１０は、ステップＳ１３で分類された結果を処理フェーズＤＢ３２３として出力する（Ｓ１４）。
【００８２】
処理フェーズ分類処理部３１０は、処理フロー抽出処理部３１１および推薦処理部３１３よりも先に一度以上実行されている必要がある。また、処理フェーズ分類処理部３１０は、例えば、毎日正午や、毎週日曜日の午前０時など、定期的に実行されてもよいし、ライブラリＤＢ３２０の情報に変更があったことを検知するなどの場合に何らかのプログラムにより自動実行されてもよいし、手動で実行されてもよい。
【００８３】
図１１は、処理フェーズ分類処理部３１０が、ライブラリＤＢ３２０とライブラリ実行実績ＤＢ３２１とから抽出するライブラリの特徴量３２７の一例を示す。
【００８４】
ライブラリの特徴量３２７は、例えばＩＤフィールド３２７１と、入力形式フィールド３２７２と、入力元フィールド３２７３と、入力データ特性フィールド３２７４と、実行頻度フィールド３２７５と、出力先フィールド３２７６と、出力データフィールド３２７７とを有する。
【００８５】
ライブラリの特徴量３２７は、ライブラリＤＢ３２０に含まれる全てのエントリに対応するエントリを持っているとよいが、これに限らず、エントリの一部が省力されていてもよいし、一部重複するデータを含んでいてもよい。
【００８６】
ＩＤフィールド３２７１は、ライブラリを一意に特定する識別子情報であり、ライブラリＤＢ３２０のＩＤフィールド３２０１に対応する。入力形式フィールド３２７２は、入力されるデータの形式を示す情報であり、ライブラリＤＢ３２０の入力フィールド３２０４から抽出される。
【００８７】
入力元フィールド３２７３は、ライブラリに入力されるデータがどこから接続されているかを示す情報であり、ライブラリ実行実績ＤＢ３２１の入力フィールド３２１３から抽出される。入力データ特性フィールド３２７４は、ライブラリに実際に入力されるデータの特性としてデータエントリの更新頻度を示す情報であり、業務データ３２２から抽出される。
【００８８】
実行頻度フィールド３２７５は、ライブラリが実行される頻度を示す情報であり、ライブラリ実行実績ＤＢ３２１の実行時刻フィールド３２１１から抽出される。出力先フィールド３２７６は、ライブラリの出力がどこに接続されているかを示す情報であり、ライブラリ実行実績ＤＢ３２１の入力フィールド３２１３から抽出される。出力データフィールド３２７７は、ライブラリが算出した新規データを示す情報であり、ライブラリＤＢ３２０の出力フィールド３２０５と、ライブラリ実行実績ＤＢ３２１の出力フィールド３２１４とから抽出される。
【００８９】
本実施例では、ライブラリの特徴量３２７として、これらのフィールド３２７１〜３２７７を例示した。ライブラリの特徴量３２７は、図１１に示すフィールドに限定されるものではなく、図示されたフィールドの一部が存在しなくてもよいし、不図示のフィールドを含んでもよい。不図示のフィールドは、何らかのプログラムにより特定されるものであってよい。
【００９０】
処理フロー抽出処理部３１１は、ユーザによるデータ分析において、処理のフェーズがどのように推移したかを示す情報を算出する処理である。
【００９１】
図１２は、サーバ１０が実行する処理フロー抽出処理部３１１の手順例を示すフローチャートである。
【００９２】
処理フロー抽出処理部３１１は、ライブラリ実行実績ＤＢ３２１と処理フェーズＤＢ３２３とを取得する（Ｓ２１）。処理フロー抽出処理部３１１は、ステップＳ２１で取得したデータに基づいて、ライブラリ実行実績ＤＢ３２１のライブラリＩＤフィールド３２１２を処理フェーズフィールド３２３１に置き換える（Ｓ２２）。
【００９３】
処理フロー抽出処理部３１１は、処理フローを抽出する（Ｓ２３）。例えば、処理フロー抽出処理部３１１は、ライブラリ実行実績ＤＢ３２１の実行時刻フィールド３２１１の近いエントリを連続した処理フェーズとして判定し、連続した処理フェーズを処理フローの遷移元フィールド３２４１および遷移先フィールド３２４２として抽出する。さらに、処理フロー抽出処理部３１１は、連続した処理フローとなっている時のライブラリ実行実績ＤＢ３２１の出力フィールド３２１４を処理フローＤＢ３２４の条件フィールド３２４３として抽出する。最後に、処理フロー抽出処理部３１１は、ステップＳ２３で抽出した処理フローＤＢ３２４を出力する。
【００９４】
ステップＳ２１では、例えば、有識者や熟練ユーザの処理フローを優先的に抽出することもできる。例えば、ステップＳ２１では、ライブラリ実行実績データベース３２１から取得するエントリを、何らかのプログラムにより取得するユーザＩＤに限定して、実行してもよい。あるいは、ステップＳ２１では、過去の傾向は除外して直近の傾向を優先することを目的として、実行時刻フィールド３２１１の値の範囲を限定してデータを取得してもよい。上述したユーザ属性やライブラリの実行時期以外の条件にしたがって、ライブラリ実行実績ＤＢ３２１から所定のエントリを抽出してもよい。
【００９５】
ステップＳ２３では、条件フィールド３２４３に入力される値は出力フィールド３２１４と全く同じでもよいし、特徴的な出力の形式に絞って登録されてもよいし、何らかの統計処理を実施した結果が登録されてもよいし、何らかの特徴量をしめすテーブルに対応する値が登録されてもよい。
【００９６】
処理フロー抽出処理部３１１は、推薦処理部３１３よりも先に一度以上実行されている必要がある。また、処理フロー抽出処理部３１１は、例えば、毎日正午や、毎週日曜日の午前０時など、定期的に実行されてもよいし、ライブラリ実行実績ＤＢ３２１の情報に変更があったことを検知するなどの場合に何らかのプログラムにより自動実行されてもよいし、手動で実行されてもよい。
【００９７】
類似度算出処理部３１２は、例えば同じグループ（企業、部署など）でよく使われているライブラリ群であるかを判定するための類似度を算出する処理である。
【００９８】
類似度算出処理部３１２は、ライブラリ実行実績ＤＢ３２１を取得して、ユーザＩＤフィールド３２１５から同じユーザがよく使うライブラリ群を、類似するライブラリとして類似度を算出して、類似度ＤＢ３２５を出力する。
【００９９】
類似度算出処理部３１２は、入力フィールド３２１３からライブラリ間のデータの入出力の関係から、入出力に接続関係のある部品群を類似する分類のライブラリとして類似度を算出してもよい。あるいは、類似度算出処理部３１２は、ライブラリＤＢ３２０を取得して、処理名称フィールド３２０２と処理の詳細フィールド３２０３に記載されている情報から、自然言語解析を用いて類似度を算出してもよい。
【０１００】
類似度算出処理部３１２は、推薦処理部３１３よりも先に一度以上実行されている必要がある。また、類似度算出処理部３１２は、例えば、毎日正午や、毎週日曜日の午前０時など、定期的に実行されてもよいし、ライブラリＤＢ３２０またはライブラリ実行実績ＤＢ３２１の情報に変更があったことを検知するなどの場合に何らかのプログラムにより自動実行されてもよいし、手動で実行されてもよい。
【０１０１】
推薦処理部３１３は、ユーザがライブラリを実行した際に、次に実行するべきライブラリを推薦する処理である。
【０１０２】
図１３は、サーバ１０が実行する推薦処理部３１３の手順例を示すフローチャートである。
【０１０３】
推薦処理部３１３は、ライブラリ実行処理部３１４でのライブラリの実行完了をトリガーイベントとして検知すると（Ｓ３１）、ライブラリ実行実績ＤＢ３２１と、処理フェーズＤＢ３２３と、処理フローＤＢ３２４と、類似度ＤＢ３２５とからデータをそれぞれ取得する（Ｓ３２）。
【０１０４】
推薦処理部３１３は、ステップＳ３２で取得したデータに基づいて、推薦対象の一つまたは複数のライブラリ、すなわち或るライブラリを実行したユーザが次に利用すると推定されるライブラリを算出する（Ｓ３３）。ステップＳ３３の詳細は後述する。最後に、推薦処理部３１３は、ステップＳ３３で算出した推薦対象のライブラリを、ライブラリの実行を要求した端末５０へ出力する（Ｓ３４）。
【０１０５】
推薦対象のライブラリを算出するステップＳ３３の詳細例を説明する。推薦処理部３１３は、ライブラリ実行実績ＤＢ３２１のライブラリＩＤフィールド３２１２に対応する、処理フェーズＤＢ３２３の処理フェーズフィールド３２３１を取得することにより、実行されたライブラリがどの処理フェーズであるかを判定する（Ｓ３３１）。
【０１０６】
複数のユーザがライブラリ管理システム１を共同利用している場合、ライブラリ実行実績ＤＢ３２１のユーザＩＤフィールド３２１５の情報を用いて、特定ユーザのデータに絞って推薦処理部３１３を実行してよい。
【０１０７】
推薦処理部３１３は、ステップＳ３３１で特定した処理フェーズ情報と処理フローＤＢ３２４の遷移元フィールド３２４１とを比較して一致するエントリを取得し、さらに、ライブラリ実行実績ＤＢ３２１の出力３２１４の情報と、処理フローＤＢ３２４の条件フィールド３２４３とを比較し、一致するエントリの遷移先フィールド３２４２を次の処理フェーズとして判定する（Ｓ３３２）。
【０１０８】
ここで、複数の遷移先フィールド３２４２が取得された場合、推薦処理部３１３は、そのまま複数の推薦対象ライブラリがあると判断して、推薦対象算出ステップＳ３３３へ進んでもよいし、過去数回のエントリから得られる処理フェーズの推移を参考にして、遷移先フィールド３２４２の優先順位付けを行ってから出力してもよい。
【０１０９】
推薦処理部３１３は、ステップＳ３３２で判定した遷移先フィールド３２４２に対応する、処理フェーズＤＢ３２３のライブラリＩＤフィールド３２５２に格納されているライブラリのＩＤを取得する（Ｓ３３３）。
【０１１０】
複数のライブラリＩＤが存在する場合、推薦処理部３１３は、ライブラリ実行実績ＤＢ３２１の最新エントリのライブラリＩＤフィールド３２１２が存在する、類似度ＤＢ３２５のライブラリＩＤフィールド３２５２のデータを取得し、ライブラリＩＤフィールド３２５２とライブラリＩＤフィールド３２１２の両方に存在するライブラリＩＤを優先度高い候補として算出するなどの優先順位付を行ってもよい。あるいは例えば、実行回数の多い部品の優先度を高くする等のプログラムにより、優先順位付を行ってもいい。あるいは、算出した優先順位の最も高いライブラリ一つに絞って出力してもよい。
【０１１１】
ライブラリ実行処理部３１４は、ライブラリを実行する処理である。ライブラリ実行処理部３１４は、操作端末５０からライブラリの実行リクエスト（利用要求）を受信すると、要求されたライブラリを実行し、その実行結果を操作端末５０に送信する。
【０１１２】
ライブラリ実行処理部３１４は、ライブラリを実行した際に、ライブラリの実行における情報をライブラリ実行ログとして出力する。出力されたライブラリの実行ログは、何らかのプログラムによって自動で、または手動で、ライブラリ実行実績ＤＢ３２１へ登録される。ライブラリ実行処理部３１４は、サーバ１０に存在する不図示のプログラムにより実行されてよく、操作端末５０との通信なしに実行されてもよい。
【０１１３】
図１４は、本実施例における、推薦結果の表示例を示す画面構成図である。表示画面６０は、例えば、入力フィールド６１と、出力フィールド６２と、推薦フィールド６３といった複数の表示エリアを備える。
【０１１４】
入力フィールド６１は、ユーザが、データ分析のライブラリ名などの分析関数を入力するフィールドである。出力フィールド６２は、入力フィールド６１へ入力されたライブラリや分析処理の実行結果を表示するフィールドである。推薦フィールド６３は、次に実行するべきライブラリ（関数）の候補を表示するフィールドである。
【０１１５】
例えば、推薦フィールド６３が画面６０の下部に固定して表示される。ユーザの利用状況に応じて、入力フィールド６１と出力フィールド６２とがスクロールし、新たな入力フィールド６１と出力フィールド６２が表示される。これにより、ユーザは、ライブラリ管理システム１から推薦されたライブラリを参照しながら、逐次データ分析を実行することができる。
【０１１６】
本実施例によれば、ユーザは、ライブラリ管理システム１を利用したデータ分析を行う際に、ライブラリＤＢ３２０に登録されているライブラリ群の中から、処理フローに沿った最適なライブラリ群を選択できるため、データ分析作業を簡易化できる。
【０１１７】
さらに、例えば、有識者や熟練者などの特定のユーザ属性に基づいて抽出された処理フローＤＢ３２４を用いることにより、データ分析の初心者のユーザであっても、有識者や熟練者による過去の処理フローを参考にしたデータ分析を行うことができ、データ分析者の育成に役立てることもできる。
【０１１８】
また、本実施例に係るライブラリ管理システム１により操作端末５０に推薦されたライブラリを受信して実行するプログラムと組み合わせることもできる。これにより、データ分析そのものを半自動化または自動化することもできる。
【０１１９】
本実施例に係るライブラリ管理システム１が存在しない場合、同一ユーザが、或るグループと他のグループの両方のライブラリ群を利用した実績があった場合に初めて、或るグループでのライブラリ実行履歴を他のグループでも利用することができる。なお、この記述は従来技術の説明ではなく、本実施例の効果を説明するための比較例の説明である。
【０１２０】
本実施例のライブラリ管理システム１によれば、処理フェーズＤＢ３２３と処理フローＤＢ３２４という、類似度ＤＢ３２５による分類を超えた情報を抽出して、ライブラリ実行履歴（ライブラリ実行実績）を活用することができる。このため、本実施例では、同一ユーザが、或るグループと他のグループの両方のライブラリ群を利用した実績が無い場合でも、或るグループでのライブラリ実行履歴を他のグループでも利用することができ、利便性が向上する。
【０１２１】
例えば、或るグループが工場の稼働監視に関するライブラリであり、他のグループが小売業に関するライブラリであった場合、業種が大きく異なるため、両方のグループに跨ってライブラリを利用するようなユーザ（データ分析者）の履歴を取得することは困難であると考えられる。しかし、本実施例によれば、業種、企業、部署といったグループを超えてライブラリ実行履歴を活用できることができるため、データ分析作業の効率を向上させることができる。
【実施例２】
【０１２２】
図１５〜図１７を用いて第２実施例を説明する。本実施例を含む以下の各実施例は第１実施例の変形例に相当するため、第１実施例との差異を中心に述べる。
【０１２３】
本実施例では、ユーザがデータ分析アプリケーションを開発する際に、ライブラリ管理システム１ａが、ユーザに対して次に利用するべきデータ分析ライブラリを推薦することにより、データ分析アプリケーションの開発を容易化する。
【０１２４】
図１５は、本実施例に係るライブラリ管理システム１ａの構成例を示す。サーバ１０が分析アプリケーション開発処理部３１５を有する以外は、図３に記載のサーバ１０と同様の構成である。
【０１２５】
図１６は、本実施例に係る、操作端末５０に表示される出力画面例を示す。編集画面７０は、分析処理の流れを記述するフローエディタ画面である。編集画面７０は、例えば、分析処理部品としてのライブラリが一覧表示される一覧フィールド７１と、ライブラリの実行順序（分析処理の流れ）を記述するフローフィールド７２とを有する。
【０１２６】
本実施例における推薦処理の結果は、例えば、フローフィールド７２上に例示する推薦結果フィールド７３のように表示される。ユーザが採用ボタン７４を操作することにより、推薦されたライブラリが適用される。これにより、本実施例によれば、データ分析処理フローを記述する作業を容易化できる。
【０１２７】
本実施例における推薦処理部３１３の処理について、図１３を用いて説明する。本実施例の推薦処理部３１３は、編集画面７０のフローフィールド７２上での変更をトリガーイベントとして取得する（Ｓ３１）。
【０１２８】
推薦処理部３１３は、編集画面７０上に表示されている分析アプリケーションの情報として、フロー情報３２８と、処理フェーズＤＢ３２３と、処理フローＤＢ３２４と、類似度ＤＢ３２５とからデータを取得し（Ｓ３２）、これらデータに基づいて、ライブラリを実行したユーザが次に利用すると推定される一つまたは複数の推薦対象ライブラリを計算する（Ｓ３３）。最後に、推薦処理部３１３は、推薦対象のライブラリを操作端末５０へ送信する（Ｓ３４）。
【０１２９】
図１７に、フロー情報３２８の一例を示す。フロー情報３２８は、編集画面７０の分析処理のフローフィールド７２に表示する内容を保持する情報である。フロー情報３２８は、操作端末５０上でユーザが操作することによって生成される。
【０１３０】
フロー情報３２８は、例えばライブラリＩＤフィールド３２８１と、ラベルフィールド３２８２と、入力ライブラリＩＤフィールド３２８３と、Ｘ座標フィールド３２８４と、Ｙ座標フィールド３２８５と、を有する。
【０１３１】
ライブラリＩＤフィールド３２８１は、フローフィールド７２に配置される処理部品アイコンがどのライブラリを表現しているか一意に特定する情報である。ラベルフィールド３２８２は、フローフィールド７２にライブラリを表示する際に用いるラベルに関する情報である。
【０１３２】
入力ライブラリＩＤフィールド３２８３は、フローフィールド７２で表現されているデータの入出力関係を保持する情報である。ライブラリＩＤフィールド３２８３は、当該エントリに入力がつながっている処理部品を特定する情報であり、０個以上の要素が格納されている。
【０１３３】
Ｘ座標フィールド３２８４は、フローフィールド７２上に処理部品アイコンを表示するときのＸ座標を格納する情報である。Ｙ座標フィールド３２８５は、フローフィールド７２上に処理部品アイコンを表示するときのＹ座標を格納する情報である。
【０１３４】
推薦処理部３１３は、図１３のステップＳ３３１において、フロー情報３２８のライブラリＩＤフィールド３２８１と、処理フェーズＤＢ３２３のライブラリＩＤフィールド３２３２とを比較し、ライブラリＩＤフィールド３２８１を対応する処理フェーズフィールド３２３１の値で上書きする。推薦処理部３１３は、入力ライブラリＩＤフィールド３２８３も同様に、対応する処理フェーズフィールド３２３１の値で上書きして、フロー情報３２８を出力する。
【０１３５】
推薦処理部３１３は、処理フローＤＢ３２４の遷移元フィールド３２４１とフロー情報３２８の入力ライブラリＩＤフィールド３２８３とを対応する情報として、処理フローＤＢ３２４の遷移先フィールド３２４２とフロー情報３２８のライブラリＩＤフィールド３２８１とを対応する情報として比較することにより、一致するフローを算出する（ｓ３３２）。推薦処理部３１３は、ライブラリＩＤフィールド３２８１に対応する遷移元フィールド３２４１が存在するのに、対応する遷移先フィールド３２４２が存在しないエントリを検出し、推薦すべき次の処理フェーズとして出力する（Ｓ３３２）。そして、推薦処理部３１３は、第１実施例と同様に、推薦対象となるライブラリを特定して出力する（Ｓ３３３）。
【０１３６】
例えば、図１７におけるライブラリＩＤ「２」のエントリは、図７によるとフェーズＰ２に対応している。図８によると、フェーズＰ２が遷移元である処理フローＤＢ３２４のエントリの遷移先には、フェーズＰ２とフェーズＰ３が存在する。図１７に例示するフロー情報３２８には、フェーズＰ３に対応するライブラリは登録されていないため、次に実行すべき処理フェーズの候補として特定する。
【０１３７】
図７によると、処理フェーズＰ３に対応するライブラリは、ライブラリＩＤ「３」と「６」である。推薦処理部３１３は、図９に示される類似度からライブラリＩＤ「２」と同じグループＧαに属するライブラリＩＤ「３」のライブラリを、優先的に推薦する対象として判定し、推薦対象として出力する。
【０１３８】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに、本実施例によれば、操作端末５０を介してデータ分析アプリケーションを開発しているユーザは、ライブラリ管理システム１ａを利用してデータ分析アプリケーションを開発する際に、ライブラリＤＢ３２０に登録されているライブラリの中から、処理フローに沿った最適なライブラリ群を効率よく選択することができ、データ分析作業を簡易化できる。
【０１３９】
さらに有識者や熟練者による処理フローＤＢ３２４を用いて推薦対象のライブラリを抽出することにより、データ分析アプリケーション開発の初心者であっても、有識者や熟練者の処理フローを参考にしてアプリケーションを開発することができる。
【実施例３】
【０１４０】
図１８および図１９を用いて第３実施例を説明する。本実施例では、ユーザがデータ分析アプリケーションを利用してデータ分析する際に、ライブラリ管理システム１ｂが、ユーザに対して次に利用するべきデータ分析ライブラリに関わる機能を推薦する。
【０１４１】
図１８は、本実施例に係るライブラリ管理システム１ｂの構成例を示す。サーバ１０が分析アプリケーション実行処理部３１６を有する以外は、図３に記載のサーバ１０と同様の構成である。
【０１４２】
図１９は、本実施例に係る、操作端末５０に表示される出力画面例を示す。表示画面８０は、データ分析アプリケーションの画面である。図１９は、例えば、ＫＰＩ監視機能エリア８１と、原因分析１機能エリア８２と、原因分析２機能エリア８３と、最適化１機能エリア８４と、最適化２機能エリア８５と、を有する分析アプリケーションの画面例を示している。
【０１４３】
例えば、ユーザは、ＫＰＩ監視機能エリア８１を見て問題の発生を確認し、原因分析１機能エリア８２と原因分析２機能エリア８３とを利用して、問題が発生した原因を確認することができる。さらに、ユーザは、最適化１機能エリア８４と最適化２機能エリア８５とを確認することにより、問題を解決するための計画を立案することができる。
【０１４４】
本実施例では、ＫＰＩ監視機能エリア８１での問題発生を検知した場合に、次に利用するべき機能（ライブラリ）を特定し、特定したライブラリを強調表示するなどして、ユーザに利用を促す。これにより、本実施例では、データ分析アプリケーションを用いた分析作業を容易化することができる。例えば、図１９に例示する表示画面８０では、原因分析１機能エリア８２が強調表示されており、ユーザは表示画面８０のどこを見て操作したらよいかを容易に判断することができる。
【０１４５】
本実施例における推薦処理部３１３の処理の流れについて補足する。ユーザが操作端末５０から分析アプリケーションを起動すると、サーバ１０上で分析アプリケーション実行処理部３１６が実行される。
【０１４６】
分析アプリケーション実行処理部３１６は、分析アプリケーション内で利用されているライブラリを実行するために、ライブラリ実行処理部３１４を起動する。これにより、第１実施例で説明した推薦処理部３１３が実行され、次に実行するべきライブラリ群が出力される。
【０１４７】
本実施例の推薦処理部３１３は、次に実行するべきライブラリ群を算出すると、分析アプリケーション内で利用されているライブラリとの対応を判定し、次に実行するべきライブラリ群を含む分析アプリケーションの機能（ライブラリ）を特定し、特定した機能に関する表示を強調表示する。例えば、枠を太く表示する他、アニメーションで背景色を変えるなどの手段で強調表示することができる。ユーザは、強調表示された機能（ライブラリ）を次に利用するべきライブラリとして容易に認識できるため、分析アプリケーションを利用したデータ分析作業を容易化できる。
【０１４８】
例えば、図１９に例示する画面では、ＫＰＩ監視機能エリア８１でライブラリＩＤ「１」のライブラリが利用されており、原因分析１機能エリア８２でライブラリＩＤ「２」のライブラリが利用されており、最適化１機能エリア８４でライブラリＩＤ「３」のライブラリが利用されており、原因分析２機能エリア８２でライブラリＩＤ「４」のライブラリが利用されており、最適化２機能エリア８４でライブラリＩＤ「５」のライブラリが利用されているとする。
【０１４９】
この場合、図７から、ＫＰＩ監視機能エリア８１はフェーズＰ１に対応し、原因分析１機能エリア８２と原因分析２機能エリア８３とはフェーズＰ２に対応し、最適化１機能エリア８４と最適化２機能エリア８５とはフェーズＰ３に対応することがわかる。これにより、本実施例も、次に実行するべき機能（ライブラリ）を特定することができる。
【０１５０】
本実施例によれば、操作端末５０を介してデータ分析アプリケーションを用いてデータ分析しているユーザは、ライブラリ管理システム１ｂを利用したデータ分析を行う際に、分析アプリケーションに搭載されている複数の機能（ライブラリ）の中から、処理フローに沿った最適な機能を選択できるようになり、データ分析作業を簡易化できる。
【０１５１】
なお、本発明は上記各実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記各実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【０１５２】
また、上記の各構成、機能、処理部、および処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。  また、上記の各構成、機能、処理部、および処理手段等は、それらの一部又は全部を、例えば仮想マシンで設計する等によりクラウドシステムで実現してもよい。
【０１５３】
また、上記の各構成、および機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。  各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１５４】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【０１５５】
また、本発明の各構成要素は、任意に取捨選択することができ、取捨選択した構成を具備する発明も本発明に含まれる。さらに特許請求の範囲に記載された構成は、特許請求の範囲で明示している組合せ以外にも組み合わせることができる。
【０１５６】
さらに、上述した実施形態は、以下のようにコンピュータプログラムとしても表現することができる。
「計算機を、ソフトウェア部品を検索するソフトウェア部品管理システムとして機能させるためのコンピュータプログラムであって、
各ソフトウェア部品を所定の部品区分に分類する分類処理部と、
前記各ソフトウェア部品の実行実績を示す実行実績情報と前記分類処理部による前記各ソフトウェア部品の分類結果とに基づいて、前記実行実績情報に記録された各ソフトウェア部品の属する部品区分の実行順序を検出する実行順序処理部と、
利用要求されたソフトウェア部品の属する部品区分の次に実行されることのできる推薦対象の部品区分を、前記分類結果と前記実行順序とに基づいて検出し、前記検出された推薦対象の部品区分に属するソフトウェア部品を検出し、前記検出されたソフトウェア部品を前記利用要求元へ出力する推薦処理部と、
を実現するためのコンピュータプログラム。」
【０１５７】
また、上述したコンピュータプログラムは、半導体メモリ、光ディスク、ハードディスク等の計算機が読み取り可能な記録媒体に固定して流通させることができる。さらに、上述のコンピュータプログラムは、専用回線または公衆回線を用いて、物理的に離れた別々の装置間で転送することもできる。
【符号の説明】
【０１５８】
１，１ａ，１ｂ：ライブラリ管理システム、５０：操作端末、３１０：処理フェーズ分類処理部、３１１：処理フロー抽出処理部、３１２：類似度算出処理部、３１３：推薦処理部、３１４：ライブラリ実行機能、３２０：ライブラリＤＢ、３２１：ライブラリ実行実績ＤＢ、３２２：業務データ、３２３：処理フェーズＤＢ、３２４：処理フローＤＢ、３２５：類似度ＤＢ
【図１】
2019101829.tif 000003
【図２】
2019101829.tif 000004
【図３】
2019101829.tif 000005
【図４】
2019101829.tif 000006
【図５】
2019101829.tif 000007
【図６】
2019101829.tif 000008
【図７】
2019101829.tif 000009
【図８】
2019101829.tif 000010
【図９】
2019101829.tif 000011
【図１０】
2019101829.tif 000012
【図１１】
2019101829.tif 000013
【図１２】
2019101829.tif 000014
【図１３】
2019101829.tif 000015
【図１４】
2019101829.tif 000016
【図１５】
2019101829.tif 000017
【図１６】
2019101829.tif 000018
【図１７】
2019101829.tif 000019
【図１８】
2019101829.tif 000020
【図１９】
2019101829.tif 000021