IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特許7467978判定方法、情報提示方法、制御プログラム及び判定装置
<>
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図1
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図2
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図3
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図4
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図5
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図6
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図7
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図8
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図9
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図10
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図11
  • 特許-判定方法、情報提示方法、制御プログラム及び判定装置 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-08
(45)【発行日】2024-04-16
(54)【発明の名称】判定方法、情報提示方法、制御プログラム及び判定装置
(51)【国際特許分類】
   G06F 8/34 20180101AFI20240409BHJP
   G06F 8/77 20180101ALI20240409BHJP
【FI】
G06F8/34
G06F8/77
【請求項の数】 11
(21)【出願番号】P 2020030418
(22)【出願日】2020-02-26
(65)【公開番号】P2021135658
(43)【公開日】2021-09-13
【審査請求日】2022-12-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100124039
【弁理士】
【氏名又は名称】立花 顕治
(74)【代理人】
【識別番号】100179213
【弁理士】
【氏名又は名称】山下 未知子
(74)【代理人】
【識別番号】100170542
【弁理士】
【氏名又は名称】桝田 剛
(72)【発明者】
【氏名】小田 利彦
(72)【発明者】
【氏名】廣田 達哉
(72)【発明者】
【氏名】宮浦 宏之
(72)【発明者】
【氏名】吉川 泰司
(72)【発明者】
【氏名】松島 星子
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2010-186394(JP,A)
【文献】特開2019-204373(JP,A)
【文献】特開2007-219643(JP,A)
【文献】朽木拓ほか,プログラミングスキルレベル評価手法の研究,情報処理学会第72回(平成22年)全国大会講演論文集(1) アーキテクチャ ソフトウェア科学・工学 データベースとメディア,日本,社団法人情報処理学会,2010年03月08日,1-521~1-522ページ
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/34
G06F 8/77
(57)【特許請求の範囲】
【請求項1】
ビジュアルプログラミングに関するユーザのレベルを判定する判定方法であって、
前記ユーザが前記ビジュアルプログラミングを通じて生成したプログラムをコンピュータが取得するステップと、
前記プログラムの記述内容に基づいて前記ユーザのレベルを前記コンピュータが判定するステップとを含
前記レベルを判定するステップは、前記記述内容から決まる前記プログラムの属性に基づいて前記レベルを前記コンピュータが判定し、
前記プログラムは、各々が所定の情報処理を実行するように構成された複数のプログラム要素を含み、
前記ビジュアルプログラミングの実行環境においては、サブプログラムを記述可能な前記プログラム要素が準備されており、
前記属性は、前記複数のプログラム要素に含まれている前記サブプログラムの数に依存する、
判定方法。
【請求項2】
ビジュアルプログラミングに関するユーザのレベルを判定する判定方法であって、
前記ユーザが前記ビジュアルプログラミングを通じて生成したプログラムをコンピュータが取得するステップと、
前記プログラムの記述内容に基づいて前記ユーザのレベルを前記コンピュータが判定するステップとを含
前記レベルを判定するステップは、前記記述内容から決まる前記プログラムの属性に基づいて前記レベルを前記コンピュータが判定し、
前記プログラムは、各々が所定の情報処理を実行するように構成された複数のプログラム要素を含み、
前記ビジュアルプログラミングの実行環境においては、条件繰返し処理を示す前記プログラム要素、及び、条件分岐処理を示す前記プログラム要素の少なくとも一方が準備されており、
前記属性は、前記プログラムに含まれている前記条件繰返し処理を示す前記プログラム要素、及び、前記条件分岐処理を示す前記プログラム要素の少なくとも一方の数に依存する、
判定方法。
【請求項3】
前記属性は、前記プログラムに含まれている前記プログラム要素の種類に依存する、請求項1または2に記載の判定方法。
【請求項4】
前記属性は、前記プログラムに含まれている前記プログラム要素の数に依存する、請求項1から3のいずれか1項に記載の判定方法。
【請求項5】
前記ビジュアルプログラミングの実行環境においては、条件繰返し処理を示す前記プログラム要素、及び、条件分岐処理を示す前記プログラム要素の少なくとも一方が準備されており、
前記属性は、前記プログラムに含まれている前記条件繰返し処理を示す前記プログラム要素、及び、前記条件分岐処理を示す前記プログラム要素の少なくとも一方の数に依存する、請求項に記載の判定方法。
【請求項6】
前記ビジュアルプログラミングは、各々が前記プログラム要素に対応付けられている複数のアイコンを接続することによって行なうプログラミングである、請求項1から請求項のいずれか1項に記載の判定方法。
【請求項7】
請求項1から請求項のいずれか1項に記載の判定方法を用いて前記ユーザのレベルを前記コンピュータが判定するステップと、
判定された前記ユーザのレベルに基づいて前記ユーザに提示する情報を前記コンピュータが変更するステップとを含む、情報提示方法。
【請求項8】
ビジュアルプログラミングに関するユーザのレベルを判定する処理をコンピュータに実行させる制御プログラムであって、
前記ユーザが前記ビジュアルプログラミングを通じて生成したプログラムを取得するステップと、
前記プログラムの記述内容に基づいて前記ユーザのレベルを判定するステップとを前記コンピュータに実行させ
前記レベルを判定するステップは、前記記述内容から決まる前記プログラムの属性に基づいて前記レベルを前記コンピュータが判定し、
前記プログラムは、各々が所定の情報処理を実行するように構成された複数のプログラム要素を含み、
前記ビジュアルプログラミングの実行環境においては、サブプログラムを記述可能な前記プログラム要素が準備されており、
前記属性は、前記複数のプログラム要素に含まれている前記サブプログラムの数に依存する、
制御プログラム。
【請求項9】
ビジュアルプログラミングに関するユーザのレベルを判定する処理をコンピュータに実行させる制御プログラムであって、
前記ユーザが前記ビジュアルプログラミングを通じて生成したプログラムを取得するステップと、
前記プログラムの記述内容に基づいて前記ユーザのレベルを判定するステップとを前記コンピュータに実行させ
前記レベルを判定するステップは、前記記述内容から決まる前記プログラムの属性に基づいて前記レベルを前記コンピュータが判定し、
前記プログラムは、各々が所定の情報処理を実行するように構成された複数のプログラム要素を含み、
前記ビジュアルプログラミングの実行環境においては、条件繰返し処理を示す前記プログラム要素、及び、条件分岐処理を示す前記プログラム要素の少なくとも一方が準備されており、
前記属性は、前記プログラムに含まれている前記条件繰返し処理を示す前記プログラム要素、及び、前記条件分岐処理を示す前記プログラム要素の少なくとも一方の数に依存する、
制御プログラム。
【請求項10】
ビジュアルプログラミングに関するユーザのレベルを判定するように構成された判定装置であって、
前記ユーザが前記ビジュアルプログラミングを通じて生成したプログラムを取得するように構成された取得部と、
前記プログラムの記述内容に基づいて前記ユーザのレベルを判定するように構成された判定部とを備え
前記判定部は、前記記述内容から決まる前記プログラムの属性に基づいて前記レベルを判定し、
前記プログラムは、各々が所定の情報処理を実行するように構成された複数のプログラム要素を含み、
前記ビジュアルプログラミングの実行環境においては、サブプログラムを記述可能な前記プログラム要素が準備されており、
前記属性は、前記複数のプログラム要素に含まれている前記サブプログラムの数に依存する、
判定装置。
【請求項11】
ビジュアルプログラミングに関するユーザのレベルを判定するように構成された判定装置であって、
前記ユーザが前記ビジュアルプログラミングを通じて生成したプログラムを取得するように構成された取得部と、
前記プログラムの記述内容に基づいて前記ユーザのレベルを判定するように構成された判定部とを備え
前記判定部は、前記記述内容から決まる前記プログラムの属性に基づいて前記レベルを判定し、
前記プログラムは、各々が所定の情報処理を実行するように構成された複数のプログラム要素を含み、
前記ビジュアルプログラミングの実行環境においては、条件繰返し処理を示す前記プログラム要素、及び、条件分岐処理を示す前記プログラム要素の少なくとも一方が準備されており、
前記属性は、前記プログラムに含まれている前記条件繰返し処理を示す前記プログラム要素、及び、前記条件分岐処理を示す前記プログラム要素の少なくとも一方の数に依存する、
判定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、判定方法、情報提示方法、制御プログラム及び判定装置に関する。
【背景技術】
【0002】
特開2005-11109号公報(特許文献1)は、ETL(Extract Transform Load)ツールシステムを開示する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2005-11109号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記特許文献1に開示されているようなETLツールシステムは、ビジュアルプログラミングを通じて開発されることが多い。ETLツールシステムの開発は、たとえば、ビジュアルプログラミングのエキスパートによって行なわれる。一方、ETLツールシステムの保守は、該システム導入先の保守担当者によって行なわれることが多い。現場の保守担当者は、必ずしもビジュアルプログラミングのエキスパートではない。
【0005】
現場の保守担当者のプログラミングレベルを高精度に判定できれば保守担当者のレベルに応じた対応も可能であるが、上記特許文献1には保守担当者のプログラミングレベルを判定する技術が開示されていない。
【0006】
本発明は、このような問題を解決するためになされたものであって、その目的は、ビジュアルプログラミングに関するユーザのレベルを比較的高精度に判定可能な判定方法等を提供することである。
【課題を解決するための手段】
【0007】
本発明のある局面に従う判定方法は、ビジュアルプログラミングに関するユーザのレベルを判定する判定方法である。この判定方法は、ユーザがビジュアルプログラミングを通じて生成したプログラムをコンピュータが取得するステップと、プログラムの記述内容に基づいてユーザのレベルをコンピュータが判定するステップとを含む。
【0008】
本発明者は、ビジュアルプログラミングに関するユーザのレベル差がプログラムの記述内容に表れる傾向があることを見出した。本発明に従う判定方法によれば、プログラムの記述内容に基づいてユーザのレベルが判定されるため、ビジュアルプログラミングに関するユーザのレベルを比較的高精度に判定することができる。
【0009】
上記判定方法において、レベルを判定するステップは、上記記述内容から決まるプログラムの属性に基づいて上記レベルをコンピュータが判定してもよい。
【0010】
上記判定方法において、プログラムは、各々が所定の情報処理を実行するように構成された複数のプログラム要素を含んでもよい。
【0011】
上記判定方法において、上記属性は、プログラムに含まれているプログラム要素の種類に依存してもよい。
【0012】
本発明者は、ユーザのレベルに応じて異なる種類のプログラム要素が使用される傾向があることを見出した。本発明に従う判定方法によれば、プログラムに含まれているプログラム要素の種類に依存するプログラム属性に基づいてユーザのレベルが判定されるため、ビジュアルプログラミングに関するユーザのレベルを比較的高精度に判定することができる。
【0013】
上記判定方法において、上記属性は、プログラムに含まれているプログラム要素の数に依存してもよい。
【0014】
本発明者は、ユーザのレベルに応じて、生成されたプログラムに含まれるプログラム要素の数に差が出る傾向があることを見出した。本発明に従う判定方法によれば、プログラムに含まれているプログラム要素の数に依存するプログラム属性に基づいてユーザのレベルが判定されるため、ビジュアルプログラミングに関するユーザのレベルを比較的高精度に判定することができる。
【0015】
上記判定方法において、ビジュアルプログラミングの実行環境においては、サブプログラムを記述可能なプログラム要素が準備されており、上記属性は、上記複数のプログラム要素に含まれているサブプログラムの数に依存してもよい。
【0016】
本発明者は、ユーザのレベルに応じて、生成されたプログラムに含まれるサブプログラムの数に差が出る傾向があることを見出した。本発明に従う判定方法によれば、プログラムに含まれているサブプログラムの数に依存するプログラム属性に基づいてユーザのレベルが判定されるため、ビジュアルプログラミングに関するユーザのレベルを比較的高精度に判定することができる。
【0017】
上記判定方法において、ビジュアルプログラミングの実行環境においては、条件繰返し処理を示すプログラム要素、及び、条件分岐処理を示すプログラム要素の少なくとも一方が準備されており、上記属性は、プログラムに含まれている条件繰返し処理を示すプログラム要素、及び、条件分岐処理を示すプログラム要素の少なくとも一方の数に依存してもよい。
【0018】
本発明者は、ユーザのレベルに応じて、生成されたプログラムに含まれる条件繰返し処理を示すプログラム要素、及び、条件分岐処理を示すプログラム要素の少なくとも一方の数に差が出る傾向があることを見出した。本発明に従う判定方法によれば、プログラムに含まれている条件繰返し処理を示すプログラム要素、及び、条件分岐処理を示すプログラム要素の少なくとも一方の数に依存するプログラム属性に基づいてユーザのレベルが判定されるため、ビジュアルプログラミングに関するユーザのレベルを比較的高精度に判定することができる。
【0019】
上記判定方法において、ビジュアルプログラミングは、各々がプログラム要素に対応付けられている複数のアイコンを接続することによって行なうプログラミングであってもよい。
【0020】
本発明の他の局面に従う情報提示方法は、上記判定方法を用いてユーザのレベルをコンピュータが判定するステップと、判定されたユーザのレベルに基づいてユーザに提示する情報をコンピュータが変更するステップとを含む。
【0021】
この情報提示方法においては、判定されたユーザのレベルに基づいてユーザに提示される情報が変更される。したがって、この情報提示方法によれば、各ユーザのレベルに合った適切な情報を各ユーザに提示することができる。
【0022】
本発明の他の局面に従う制御プログラムは、ビジュアルプログラミングに関するユーザのレベルを判定する処理をコンピュータに実行させる。この制御プログラムは、ユーザがビジュアルプログラミングを通じて生成したプログラムを取得するステップと、プログラムの記述内容に基づいてユーザのレベルを判定するステップとをコンピュータに実行させる。
【0023】
本発明に従う制御プログラムによれば、プログラムの記述内容に基づいてユーザのレベルが判定されるため、ビジュアルプログラミングに関するユーザのレベルを比較的高精度に判定することができる。
【0024】
本発明の他の局面に従う判定装置は、ビジュアルプログラミングに関するユーザのレベルを判定するように構成されている。この判定装置は、取得部と、判定部とを備えている。取得部は、ユーザがビジュアルプログラミングを通じて生成したプログラムを取得するように構成されている。判定部は、プログラムの記述内容に基づいてユーザのレベルを判定するように構成されている。
【0025】
本発明に従う判定装置によれば、プログラムの記述内容に基づいてユーザのレベルが判定されるため、ビジュアルプログラミングに関するユーザのレベルを比較的高精度に判定することができる。
【発明の効果】
【0026】
本発明によれば、ビジュアルプログラミングに関するユーザのレベルを比較的高精度に判定可能な判定方法等を提供することができる。
【図面の簡単な説明】
【0027】
図1】ETLシステムの概要を説明するための図である。
図2】ETLシステムを含むシステムの一例を模式的に示す図である。
図3】ETLシステムのハードウェア構成の一例を示す図である。
図4】表示部に表示されるETLプログラムの一例を示す図である。
図5】プログラム要素に含まれるサブプログラムの一例を示す図である。
図6】PG属性定義情報の一部を例示的に示す図である。
図7】スキル判定定義情報の一例を示す図である。
図8図4に示されるETLプログラムの各属性に関するレベル、及び、各属性に関するレベルに基づいて決定されるユーザのレベルをまとめた図である。
図9】ユーザレベル情報の一例を示す図である。
図10】ETLシステムのソフトウェア構成の一例を示す図である。
図11】ETLシステムの利用開始時の動作手順を示すフローチャートである。
図12】ETLプログラムが生成された後のETLシステムの動作手順を示すフローチャートである。
【発明を実施するための形態】
【0028】
以下、本発明の一側面に係る実施の形態(以下、「本実施の形態」とも称する。)について、図面を用いて詳細に説明する。なお、図中同一又は相当部分には同一符号を付してその説明は繰り返さない。また、以下で説明する本実施の形態は、あらゆる点において本発明の例示にすぎない。本実施の形態は、本発明の範囲内において、種々の改良や変更が可能である。すなわち、本発明の実施にあたっては、実施の形態に応じて具体的構成を適宜採用することができる。
【0029】
[1.概要]
図1は、本実施の形態に従うETL(Extract/Transform/Load)システム100の概要を説明するための図である。図1を参照して、ETLシステム100は、ビジュアルプログラミングによるプログラム開発環境を提供する。
【0030】
ETLシステム100は、プログラミングのエキスパートによって使用される場合もあれば、プログラミングの初心者によって使用される場合もある。たとえば、エキスパートにとっては便利な機能も初心者にとっては不便であるといった場合がある。ETLシステム100においては、プログラミングに関するユーザのレベルが判定される。そして、ユーザのレベルに応じて、該ユーザに提示される各種情報が変更される。
【0031】
ETLシステム100は、制御部110と、記憶部120とを備えている。記憶部120には、ユーザが作成したETLプログラム101が格納されている。制御部110は、ETLプログラム101を取得し、取得されたETLプログラム101の記述内容に基づいてユーザのレベルを判定する。
【0032】
本発明者は、ビジュアルプログラミングに関するユーザのレベル差がETLプログラム101の記述内容に表れる傾向があることを見出した。ETLシステム100によれば、ETLプログラム101の記述内容に基づいてユーザのレベルが判定されるため、ビジュアルプログラミングに関するユーザのレベルを比較的高精度に判定することができる。以下、ETLシステム100を含むシステム全体、及び、ETLシステム100について詳細に説明する。
【0033】
[2.システム全体の構成]
図2は、本実施の形態に従うETLシステム100を含むシステム10の一例を模式的に示す図である。図2に示されるように、システム10は、製造ライン200と、データレイク300と、ETLシステム100と、データマート400とを含んでいる。
【0034】
製造ライン200は、何らかの製品を製造するように構成されている。製造ライン200においては、たとえば、製造された製品の検査データ等のデータが生成される。データレイク300は、製造ライン200において生成されたデータを管理するように構成されている。
【0035】
上述のように、ETLシステム100は、ETLプログラム101の開発環境を提供する。ETLシステム100は、ETLプログラム101を実行することによって、たとえば、データレイク300において管理されているデータを読み出し、読み出されたデータを加工し、加工されたデータをデータマート400に格納するように構成されている。データマート400は、ETLシステム100によって加工されたデータを管理するように構成されている。データマート400において管理されているデータは、たとえば、製造ライン200の動作状態の分析等に用いられる。
【0036】
[3.ETLシステムのハードウェア構成]
図3は、ETLシステム100のハードウェア構成の一例を示す図である。なお、本実施の形態において、ETLシステム100は、たとえば、汎用コンピュータによって実現される。
【0037】
図3の例では、ETLシステム100は、制御部110と、通信I/F(interface)130と、記憶部120と、表示部140とを含み、各構成は、バスを介して電気的に接続されている。
【0038】
制御部110は、CPU(Central Processing Unit)111、RAM(Random Access Memory)112及びROM(Read Only Memory)113等を含み、情報処理に応じて各構成要素の制御を行なうように構成されている。
【0039】
通信I/F130は、ネットワークを介して、ETLシステム100の外部に設けられた外部装置(たとえば、データレイク300及びデータマート400(図2))と通信するように構成されている。通信I/F130は、たとえば、有線LAN(Local Area Network)モジュールや無線LANモジュールで構成される。
【0040】
表示部140は、ETLプログラム101の内容等を表示するように構成されている。表示部140は、たとえば、液晶モニタや有機EL(Electro Luminescence)モニタ等のモニタで構成される。
【0041】
図4は、表示部140に表示されるETLプログラム101の一例を示す図である。ETLシステム100において、ユーザは、表示部140を参照しながら、複数のプログラム要素をコネクタで接続することによって、ETLプログラム101を生成する。
【0042】
図4に示されるように、ETLプログラム101は、プログラム要素PE1-PE8を含んでいる。プログラム要素PE1-PE8の各々は、入力データに所定の処理を施すとともに結果を出力する実行単位であり、表示部140上においてアイコンで表される。
【0043】
プログラム要素PE1は、所定条件を満たす場合にプログラム要素PE2-PE4の処理を繰り返し、所定条件を満たさない場合に処理をプログラム要素PE5以後に進める旨を規定する。プログラム要素PE2は、対象のエクセルファイル(表データを含むファイル)をデータレイク300から読み込むように構成されている。プログラム要素PE3は、対象のエクセルファイルから必要なデータを抽出し、抽出されたデータの形式を所望の形式に変換するように構成されている。プログラム要素PE4は、データ変換後のエクセルファイルをRAM112(図3)に書き込むように構成されている。
【0044】
プログラム要素PE5は、データレイク30に格納されている対象のデータベース(DB)を読み込むように構成されている。プログラム要素PE6は、読み込まれたデータベースに含まれる各種データに対してデータクレンジングを施すように構成されている。
【0045】
図5は、プログラム要素PE6に含まれるサブプログラムの一例を示す図である。図5に示されるように、プログラム要素PE6においては、データベースに含まれる「CP」及び「PV」という項目に対してデータクレンジングが行なわれる。「CP」及び「PV」に関しては、たとえば、処理ブロックX11においてNULL値や異常値の除去処理等が行なわれる。
【0046】
再び図4を参照して、プログラム要素PE7は、データクレンジング後のデータベースをRAM112に書き込むように構成されている。プログラム要素PE8は、RAM112に格納されているエクセルファイル及びデータベースをHTTP送信するように構成されている。
【0047】
再び図3を参照して、記憶部120は、たとえば、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置である。記憶部120は、たとえば、ETLプログラム101と、制御プログラム102と、PG属性定義情報103と、スキル判定定義情報104と、ユーザレベル情報105とを記憶するように構成されている。
【0048】
ETLプログラム101は、ETLシステム100においてユーザによって作成されたプログラムである。制御部110がETLプログラム101を実行することによって、たとえば、データレイク300において管理されているデータが読み出され、読み出されたデータが加工され、加工されたデータがデータマート400に格納される
制御プログラム102は、ETLプログラム101の開発環境及び実行環境を提供するためのプログラムである。制御部110が制御プログラム102を実行することによって、ETLプログラム101の開発環境及び実行環境が提供される。
【0049】
PG属性定義情報103は、ETLプログラム101の各属性の値と、各属性におけるユーザレベルとの関係を定義する情報である。ETLシステム100において、PG属性定義情報103は、ビジュアルプログラミングに関するユーザのレベルを判定するために用いられる。
【0050】
図6は、PG属性定義情報103の一部を例示的に示す図である。図6に示されるように、PG属性定義情報103は、一例として、項目1031,1032,1033,1034を含んでいる。
【0051】
項目1031は、プログラム要素の種類と該プログラム要素を使用するユーザの「プログラム要素の難易度」に関するレベルとの関係を定義する。すなわち、ETLプログラム101に含まれるプログラム要素の種類がETLプログラム101の「属性」の一例である。
【0052】
ETLシステム100においては、ETLプログラム101に含まれる複数のプログラム要素の各々に対応付けられたレベルのうち最も高いレベルがETLプログラム101の「プログラム要素の難易度」に関するレベルとみなされる。たとえば、ETLプログラム101が「DB読込み」、「DB書込み」及び「HTTP送信」を含んでいる場合を考える。「DB読込み」及び「DB書込み」のレベルは「2」であり、「HTTP送信」のレベルは「4」である。この場合には、これらのうちレベル4が最も高いレベルであるため、ETLプログラム101の「プログラム要素の難易度」に関するレベルは「4」とみなされる。
【0053】
項目1032は、ETLプログラム101に含まれるプログラム要素の数と「プログラムの規模」に関するユーザのレベルとの関係を定義する。すなわち、ETLプログラム101に含まれるプログラム要素の数がETLプログラム101の「属性」の一例である。ETLシステム100においては、ETLプログラム101に含まれるプログラム要素の数が多い程、該ETLプログラム101を作成したユーザの「プログラムの規模」に関するレベルが高いものとみなされる。
【0054】
項目1033は、ETLプログラム101に含まれるサブプログラムの数と「サブプログラムの数」に関するユーザのレベルとの関係を定義する。すなわち、ETLプログラム101に含まれるサブプログラムの数がETLプログラム101の「属性」の一例である。ETLシステム100においては、ETLプログラム101に含まれるサブプログラムの数が多い程、該ETLプログラム101を作成したユーザの「サブプログラムの数」に関するレベルが高いものとみなされる。
【0055】
項目1034は、ETLプログラム101に含まれる条件繰返し処理及び条件分岐処理の数に1を加算した値と「プログラムの複雑さ」に関するユーザのレベルとの関係を定義する。すなわち、ETLプログラム101に含まれる条件繰返し処理及び条件分岐処理の数に1を加算した値がETLプログラム101の「属性」の一例である。ETLシステム100においては、ETLプログラム101に含まれる条件繰返し処理及び条件分岐処理の数が多い程、該ETLプログラム101を作成したユーザの「プログラムの複雑さ」に関するレベルが高いものとみなされる。なお、本実施の形態においては、条件繰返し処理及び条件分岐処理の数に1を加算した値がETLプログラム101の「属性」の一例とされているが、「属性」の一例は、条件繰返し処理の数に1を加算した値であってもよいし、条件分岐処理の数に1を加算した値であってもよい。
【0056】
再び図3を参照して、スキル判定定義情報104は、ETLプログラム101の各属性におけるレベルと、ビジュアルプログラミングに関するユーザのレベルとの関係を定義する情報である。ETLシステム100において、スキル判定定義情報104は、ビジュアルプログラミングに関するユーザのレベルを判定するために用いられる。
【0057】
図7は、スキル判定定義情報104の一例を示す図である。図7に示されるように、ETLプログラム101の各属性におけるレベル毎に、ビジュアルプログラミングに関するユーザのレベルが対応付けられている。ETLシステム100においては、ETLプログラム101の各属性に対応付けられたレベルのうち最も高いレベルがビジュアルプログラミングに関するユーザのレベルとみなされる。
【0058】
図8は、図4に示されるETLプログラム101の各属性に関するレベル、及び、各属性に関するレベルに基づいて決定されるユーザのレベルをまとめた図である。図8に示されるように、図4に示されるETLプログラム101においては、「プログラム要素の難易度」に関するレベルが「4」と判定され、「プログラムの規模」に関するレベルが「1」と判定される。そして、「サブプログラムの数」に関するレベルが「2」と判定され、「プログラムの複雑さ」に関するレベルが「2」と判定される。
【0059】
この結果を図7に示されるスキル判定定義情報104に当てはめると、「プログラム要素の難易度」に関するレベルが「上級」とみなされ、「プログラムの規模」に関するレベルが「初級」とみなされる。そして、「サブプログラムの数」に関するレベルが「中級」とみなされ、「プログラムの複雑さ」に関するレベルが「中級」とみなされる。ETLシステム100においては、ETLプログラム101の各属性に対応付けられたレベルのうち最も高いレベルがビジュアルプログラミングに関するユーザのレベルとみなされるため、図4に示されるETLプログラム101を作成したユーザのレベルは「上級」とみなされる。
【0060】
再び図3を参照して、ユーザレベル情報105は、過去に各ユーザが作成したETLプログラム101と、該ETLプログラム101の記述内容に基づいて判定されたユーザのレベルとの関係を管理する情報である。
【0061】
図9は、ユーザレベル情報105の一例を示す図である。図9に示されるように、ユーザレベル情報105は、「プログラム名」と、該プログラムの「作成者」と、該プログラムの記述内容に基づいて判定された「レベル」と、「判定日時」とを対応付けて管理する。
【0062】
[4.ETLシステムのソフトウェア構成]
図10は、ETLシステム100のソフトウェア構成の一例を示す図である。図10の例においては、制御部110が制御プログラム102(図3)を実行することによって、取得部114と、判定部115と、設定更新部116とが実現される。
【0063】
取得部114は、記憶部120(又はRAM112)からETLプログラム101を取得する。判定部115は、取得部114によって取得されたETLプログラム101の記述内容に基づいて、該ETLプログラム101を作成したユーザのビジュアルプログラミングに関するレベルを判定する。すなわち、判定部115は、ETLプログラム101の記述内容から決まるETLプログラム101の属性に基づいて、ユーザのビジュアルプログラミングに関するレベルを判定する。判定部115は、判定結果に関する情報をユーザレベル情報105に追加する。これによって、ユーザレベル情報105は更新される。
【0064】
ETLシステム100においては、ユーザのレベルに応じて各種設定が変更される。たとえば、表示部140における「機能メニュー表示」、「ヘルプ表示」及び「実行ログ表示」が変更される。これにより、各ユーザのレベルに合った適切な情報が表示部140に表示される。
【0065】
「機能メニュー表示」においては、たとえば、ユーザレベルが「初級」である場合に、単純かつ頻繁に使用される機能(たとえば、「条件分岐」、「条件繰返し」)のみが機能メニューとして表示される。また、たとえば、ユーザレベルが「中級」である場合に、上記「初級」において表示される機能に加えて、より高度な機能(たとえば、「繰返し中断」)が機能メニューとして表示される。また、たとえば、ユーザレベルが「上級」である場合に、上記「初級」及び「中級」において表示される機能に加えて、ごく稀にしか使用されない難易度の高い機能(たとえば、「トライキャッチ文」、「continue文」)が機能メニューとして表示される。
【0066】
「ヘルプ表示」においては、たとえば、ユーザレベルが「初級」である場合に、技術的な内容ではなく平易な内容を示すヘルプ文(たとえば、「条件分岐を使用することで、もし~であれば~せよと、場合分けをしてデータ処理をすることができます」とった文章)が表示される。また、たとえば、ユーザレベルが「中級」である場合には、簡単な技術用語を含むヘルプ文(たとえば、「条件分岐は、設定された条件に関する評価結果に基づき、真の場合の処理を実行するか偽の場合の処理を実行するかを判断します」といった文章)が表示される。また、たとえば、ユーザレベルが「上級」である場合には、高度な技術用語を含んだ、深い理解が可能なヘルプ文(たとえば、「条件分岐は、論理式で表現される条件式の条件部と、その評価結果の値がTrueの場合に実行されるThen処理部と、Falseの場合に実行されるElse処理部とで構成されます」といった文章)が表示される。
【0067】
「実行ログ表示」においては、たとえば、ユーザレベルが「初級」である場合に、プログラムの出力及び実行状態を示す情報が表示される。また、エラーが発生した場合には、対応方法も併せて表示される。たとえば、「ファイルXXXが既に使用中であるため、読み込むことができません。ファイルを一旦閉じてやり直して下さい。」といった文章が表示される。また、たとえば、ユーザレベルが「中級」である場合には、上記「初級」において表示される情報に加えて、プログラムの実行環境から得られるエラーメッセージ(たとえば、"E001-2020 File Open Error"といったメッセージ)が表示される。また、たとえば、ユーザレベルが「上級」である場合には、上記「初級」及び「中級」において表示される情報に加えて、OS(Operating System)や仮想環境から出力されるエラーメッセージ(たとえば、"Exception occurred while executing: java.lang.IllegalArgumentException: Error: Can't open file: /xxx.csv at xxx.yyy.zzz (aaa.java:306) at ...."といったメッセージ)が表示される。
【0068】
設定更新部116は、判定部115による判定結果が、過去に判定された該ユーザのレベルを上回った場合に、ETLシステム100の各種設定を更新する。
【0069】
[5.動作]
<5-1.ETLシステム利用開始時の動作>
図11は、ETLシステム100の利用開始時の動作手順を示すフローチャートである。このフローチャートに示される処理は、ETLシステム100の使用開始後に制御部110によって実行される。
【0070】
図11を参照して、制御部110は、記憶部120に記憶されたユーザレベル情報105を参照する(ステップS100)。制御部110は、ETLシステム100に現在ログインしているユーザによるETLシステム100の利用実績があるか否かを判定する(ステップS110)。
【0071】
利用実績があると判定された場合に(ステップS110においてYES)、制御部110は、該ユーザのレベルを、該ユーザが過去に判定されたレベルのうち最も高いレベルに設定する(ステップS120)。一方、利用実績がないと判定された場合に(ステップS110においてNO)、制御部110は、該ユーザのレベルを「初級」に設定する(ステップS130)。
【0072】
制御部110は、設定されたレベルに応じて、ETLシステム100の各種設定を調整する(ステップS140)。制御部110は、たとえば、「機能メニュー表示」、「ヘルプ表示」及び「実行ログ表示」の各々を設定されたレベルに合ったものに調整する。
【0073】
<5-2.ETLプログラム生成後の動作>
図12は、ETLプログラム101が生成された後のETLシステム100の動作手順を示すフローチャートである。このフローチャートに示される処理は、ETLプログラム101が生成された後に制御部110によって実行される。
【0074】
図12を参照して、制御部110は、生成されたETLプログラム101を読み出す(ステップS200)。制御部110は、ETLプログラム101の記述内容を解析する(ステップS210)。すなわち、制御部110は、ETLプログラム101の各属性を解析する。制御部110は、解析結果に基づいて、ビジュアルプログラミングに関するユーザのレベルを判定する(ステップS220)。制御部110は、判定結果をユーザレベル情報105に追加することによってユーザレベル情報105を更新する(ステップS230)。
【0075】
制御部110は、ステップS220で判定されたレベルが、該ユーザが過去に判定された最高レベルを更新するか否かを判定する(ステップS240)。最高レベルを更新したと判定されると(ステップS240においてYES)、制御部110は、判定されたレベルに応じて、ETLシステム100の各種設定を調整する(ステップS250)。一方、最高レベルを更新していないと判定されると(ステップS240においてNO)、処理は「エンド」に移行する。
【0076】
[6.特徴]
このように、本実施の形態に従うETLシステム100においては、ユーザがビジュアルプログラミングを通じて生成したプログラムが取得され、プログラムの記述内容に基づいてユーザのレベルが判定される。本発明者は、ビジュアルプログラミングに関するユーザのレベル差がプログラムの記述内容に表れる傾向があることを見出した。ETLシステム100によれば、プログラムの記述内容に基づいてユーザのレベルが判定されるため、ビジュアルプログラミングに関するユーザのレベルを比較的高精度に判定することができる。
【0077】
また、ETLシステム100においては、判定されたユーザのレベルに基づいて、ユーザに提示される各種情報(たとえば、「機能メニュー表示」、「ヘルプ表示」及び「実行ログ表示」)が変更される。したがって、ETLシステム100によれば、各ユーザのレベルに合った適切な情報を各ユーザに提示することができる。
【0078】
[7.変形例]
以上、実施の形態について説明したが、本発明は、上記実施の形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて、種々の変更が可能である。以下、変形例について説明する。
【0079】
上記実施の形態においては、ユーザのレベルに応じて、「機能メニュー表示」、「ヘルプ表示」及び「実行ログ表示」が変更された。しかしながら、ETLシステム100において、ユーザのレベルに応じて変更される内容はこれらに限定されない。
【0080】
たとえば、ETLシステム100の利用料金がユーザのレベルによって変更されてもよい。たとえば、「初級」ユーザの利用料金は安く、「上級」ユーザの利用料金は高くするといったことが行なわれてもよい。これにより、ユーザのレベルに合った料金体系を採用することができる。
【0081】
また、たとえば、ETLシステム100において、eラーニングのようなIT教育機能が実装されている場合に、ユーザのレベルに応じてeラーニングのレベルが変更されてもよい。たとえば、「初級」ユーザには導入教育が提供され、「上級」ユーザには高度な研修が提供されてもよい。これにより、ユーザのレベルに合った研修をユーザに提供することができる。
【0082】
また、たとえば、ETLシステム100において、表示部140に広告が表示されるような場合に、ユーザのレベルに応じて表示部140に表示される広告が変更されてもよい。これにより、ユーザのレベルに合った広告を表示部140に表示することができる。
【符号の説明】
【0083】
10 システム、100 ETLシステム、101 ETLプログラム、102 制御プログラム、103 PG属性定義情報、104 スキル判定定義情報、105 ユーザレベル情報、110 制御部、111 CPU、112 RAM、113 ROM、114 取得部、115 判定部、116 設定更新部、120 記憶部、130 通信I/F、140 表示部、200 製造ライン、300 データレイク、400 データマート、1031,1032,1033,1034 項目、PE1,PE2,PE3,PE4,PE5,PE6,PE7,PE8 プログラム要素、X11 処理ブロック。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12