JP5243908B2 - モデルの品質を検証するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム - Google Patents

モデルの品質を検証するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム Download PDF

Info

Publication number
JP5243908B2
JP5243908B2 JP2008251652A JP2008251652A JP5243908B2 JP 5243908 B2 JP5243908 B2 JP 5243908B2 JP 2008251652 A JP2008251652 A JP 2008251652A JP 2008251652 A JP2008251652 A JP 2008251652A JP 5243908 B2 JP5243908 B2 JP 5243908B2
Authority
JP
Japan
Prior art keywords
rule
model
model element
value
specifying
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.)
Expired - Fee Related
Application number
JP2008251652A
Other languages
English (en)
Other versions
JP2010086066A (ja
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2008251652A priority Critical patent/JP5243908B2/ja
Publication of JP2010086066A publication Critical patent/JP2010086066A/ja
Application granted granted Critical
Publication of JP5243908B2 publication Critical patent/JP5243908B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、モデル要素を含むモデルの品質を検証するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラムに関する。
アプリケーション・ソフトウェアの開発(特に、オブジェクト指向設計開発)において、UML(Unified Modeling Language)を使用して、ユースケース・モデル、分析モデル、設計モデル等のモデリングを行うことが一般的になってきている。モデリングでは、モデリング作業を支援するUMLモデリング・ツールが、広く利用されている。
UMLは、ソフトウェアをモデリングするための基本的な要素、ルール、制約等をメタモデルとして規定している。UMLは本来、多様なソフトウェアをモデリングすることを目的としているので、汎用的な言語仕様となっている。そのため、UMLを使用することで、比較的自由度の高いモデル定義又はダイアグラム作成が可能である。よって、モデリング担当者の属人性がどうしても入り込み、成果物の一定の品質を確保することが難しい。
特定のアプリケーション・ソフトウェアを開発する比較的規模の大きなプロジェクトにおいて、アプリケーション・ソフトウェアのアーキテクチャ、適用すべき設計パターン、成果物の標準等のモデリング上のルールがあらかじめ定められた上で、アプリケーションのモデリングが行われることが多い。しかしながら、上述したように、UMLの自由度の故に、プロジェクト固有のルールをモデリング担当者に完全に徹底させることは困難である。そのために、例えば、以下に示すように、成果物の品質上の様々な問題が発生する。
・UML要素(ユースケース、コンポーネント、クラス、インタフェース、メソッド等)の名称がネーミング・ルールに沿っていない。
・UML要素の属性値の設定、記述がルールに沿っていない。
・成果物として規定されたダイアグラムが不足している。
・UML要素間の関係が、アーキテクチャ又は設計パターンの規定に違反している。
・必要なUML要素がダイアグラム上に記載されていない。
・関連する複数のダイアグラム間の記述内容に矛盾がある。
従来は、成果物の品質上の問題に対して人手による成果物のレビュー又はインスペクションにより品質を確保してきた。しかし、アーキテクチャが複雑である場合又は開発するアプリケーションが大規模な場合、対象となるUMLモデルも複雑乃至は膨大となるため、人手による網羅的な品質検証は非常に困難であった。またその結果として、コーディング又はテストなどの下流工程において、残留していた欠陥が顕在化する等の問題があった。
下記特許文献1は、UMLによるモデリングのレビューを支援するレビュー支援装置、レビュー支援方法、レビュー支援プログラムを記載する。特許文献1の発明では、モデリングのレビューは、ルールデータベースを参照し、モデルをチェック条件に基づいてチェックすることによって行われる。該チェックは、ルールデータベースのチェック項目毎にルールに違反した回数を記録し、次回以降、当該エラー回数の多い項目順にチェックすることによって行われる。図3は、モデル品質をチェックするルールデータベースの構成を示し、モデルのチェック項目、モデルチェックの重要度を示すレベル、チェックする際の条件を示す処理方法、チェック項目を評価する評価点、およびチェック時にルール違反したエラー回数の項目からなる複数のレコードを記載する。
特開2007−265005号公報
UMLモデルがUMLのメタモデル若しくは仕様に合致しているか又は一般的によく知られているモデリング・ルールに沿っているかについて検証する技術はあった。該技術は、例えば、インターナショナル・ビジネス・マシーンズ・コーポレーション(以下、IBM(商標))社のRSA(Rational(商標) Software Architect)、RSM(Rational(商標) Software Modeler)に付属するUMLモデルの検証機能等である。しかしながら、該技術では、プロジェクト固有のアーキテクチャ又はモデリング上のルールに沿った検証を行うことはできなかった。また、該技術では、異なる種類のモデル間(例えば、UMLモデルとダイアグラム、ダイアグラムとダイアグラム等)の整合性を検証することもできない。モデル担当者が独自の検証ルールを定義することも可能ではある。しかし、独自の検証ルールを記述するためには、モデリング担当者がUMLに関する深い知識に加えて、OCL(Object Constraint Language)も習得する必要があり、通常のプロジェクトで採用するには難易度が高すぎるという問題がある。さらに、モデル担当者が独自の検証ルールを実装した検証ツールを自作するという方法も考えられる。しかし、検証ルールごとに、例えばJAVA(商標)等の言語を用いてコーディングを行う必要があるので、難易度が高い上に非常にコストがかかるという問題がある。
このような背景から、プロジェクト固有のルールに基づいたUMLモデルの品質検証作業の効率化、自動化が強く求められている。
本発明は、少なくとも1のモデル要素を含むモデルの品質を検証するためのコンピュータ・システムを提供する。各モデル要素は、属性を有し及び0又は1以上の他のモデル要素と関係付けられている。上記コンピュータ・システムは、
モデルの品質を検証するためのルール定義を第1の記憶部内に読み込む読込部であって、上記ルール定義は、モデル要素と関連する他のモデル要素を探索する第1のルールを特定する情報及び該第1のルールの動作を特定するための値、モデル要素の属性及び関係を検証する第2のルールを特定する情報及び該第2のルールの動作を特定するための値、並びに上記第1のルール及び上記第2のルールを制御するための第3のルールを特定する情報及び該第3のルールの動作を特定するための値を含む、上記読込部と、
上記読み込んだルール定義に基づいて、ルールを第2の記憶部から取得する取得部であって、上記ルールは、上記第1のルール、上記第2のルール及び上記第3のルールを含む、上記取得部と、
上記取得した第1のルールに従い、第1のモデル要素と関連を有する第2のモデル要素を探索する探索部と、
上記取得した第2のルールに従い、上記モデルの品質を検証する検証部と、
上記取得した第3のルールに従い、上記探索部及び上記検証部を制御する検証制御部と
を含む。
本発明の1つの実施態様では、上記ルール定義が、検証対象であるモデル要素を絞り込む第4のルールを特定する情報及び該第4のルールの動作を特定するための値をさらに含み、
上記読込部が、上記第4のルールを特定する情報及び該第4のルールの動作を特定するための値を上記第1の記憶部内に読み込み、
上記取得部が、上記第4のルールを上記第2の記憶部から取得し、
上記コンピュータ・システムが、
上記取得した第4のルールに従い、第3の記憶部に格納されたモデル要素全体から、検証対象である第1のモデル要素を絞り込む絞込部
をさらに含み、
上記制御部が、上記探索部及び上記検証部に加えて上記絞込部をさらに制御する。
本発明の1つの実施態様では、上記探索部が、上記取得した第1のルールに従い、上記絞り込まれた第1のモデル要素と関連を有する第2のモデル要素を探索する。
本発明の1つの実施態様では、上記コンピュータ・システムは、上記モデルの品質の検証結果を表示する表示部をさらに含む。
本発明の1つの実施態様では、上記取得した第1のルール、第2のルール及び第3のルールに、上記第1の記憶部内に読み込んだ上記第1のルールの動作を特定するための値、上記第2のルールの動作を特定するための値及び上記第3のルールの動作を特定するための値をそれぞれ適用するルール構築部をさらに含む。
本発明の1つの実施態様では、上記取得した第1のルール、第2のルール、第3のルール及び第4のルールに、上記第1の記憶部内に読み込んだ上記第1のルールの動作を特定するための値、上記第2のルールの動作を特定するための値、上記第3のルールの動作を特定するための値及び上記第4のルールの動作を特定するための値をそれぞれ適用するルール構築部をさらに含む。
本発明の1つの実施態様では、上記第1のルールが、あるモデル要素が関係、参照、利用又は保持している他のモデル要素を探索すること、あるモデル要素が描画されている図を探索すること、及びあるモデル要素が関係、参照、利用又は保持している図上に描画されたモデル要素を探索することの少なくとも1を含む。
本発明の1つの実施態様では、上記第2のルールが、モデル要素の属性の値が指定した数値であるかどうかを検証すること、モデル要素の属性の値と指定した値との大小を検証すること、モデル要素の属性の値が指定した値域内に含まれることを検証すること、モデル要素の属性の文字列が指定した文字列のパターンに完全又は部分一致するかどうかを検証すること、モデル要素の属性の設定値が指定した値の中から選択されているかどうかを検証すること、及び前記第1のルールにより探索されたモデル要素の個数と指定された数を検証することの少なくとも1を含む。
本発明の1つの実施態様では、上記第3のルールが、上記探索部及び上記検証部の実行順を含む。
本発明の1つの実施態様では、上記第3のルールが、上記絞込部、上記探索部及び上記検証部の実行順、並びに上記絞込部、上記探索部及び上記検証部の組み合わせの少なくとも1を含む。
本発明の1つの実施態様では、上記第4のルールが例えば、モデル要素の属性の値が指定した数値を有するモデル要素を絞込むこと、モデル要素の属性の文字列が指定した文字列のパターンに完全又は部分一致するモデル要素を絞込むこと、モデル要素の属性の設定値が指定した値の中から選択されているモデル要素を絞込むこと、モデル要素の種類によりモデル要素を絞込むこと、所定の名前を有するモデル要素にモデル要素を絞込むこと、名前を有するモデル要素の属性値によりモデル要素を絞込むこと、図の種類によりモデル要素を絞込むこと、モデルの抽象度によりモデル要素を絞込むこと、又はモデル要素の配置場所によりモデル要素を絞込むことである。
本発明の1つの実施態様では、上記第1のルールの動作を特定するための値、上記第2のルールの動作を特定するための値、上記第3のルールの動作を特定するための値、及び上記第4のルールの動作を特定するための値が、上記モデルの品質を検証するための実行時パラメータである、
本発明の1つの実施態様では、上記コンピュータ・システムは、上記第1のモデル要素を特定するための特定手段をさらに含む。
本発明の1つの実施態様では、上記モデルが、統一モデリング言語(UML)、メタオブジェクト・ファシリティ(Meta-Object Facility)・メタモデル、CWM(Common Warehouse Meta-model)又はビジネス・プロセス・モデリング言語である。
本発明の1つの実施態様では、上記モデルが統一モデリング言語(UML)であり、上記モデル要素がUML要素である。
本発明は、少なくとも1のモデル要素を含むモデルの品質を検証するための方法を提供する。各モデル要素は、属性を有し及び0又は1以上の他のモデル要素と関係付けられている。該方法は、コンピュータ・システムに下記ステップを実行させることを含む。該ステップは、
モデルの品質を検証するためのルール定義を第1の記憶部内に読み込むステップであって、上記ルール定義は、モデル要素と関連する他のモデル要素を探索する第1のルールを特定する情報及び該第1のルールの動作を特定するための値、モデル要素の属性及び関係を検証する第2のルールを特定する情報及び該第2のルールの動作を特定するための値、並びに上記第1のルール及び上記第2のルールを制御するための第3のルールを特定する情報及び該第3のルールの動作を特定するための値を含む、上記読み込むステップと、
上記読み込んだルール定義に基づいて、ルールを第2の記憶部から取得するステップであって、上記ルールは、第1のルール、第2のルール及び第3のルールを含む、上記取得するステップと、
上記取得した第3のルールに従い、下記ステップを制御するステップであって、
該ステップが、
上記取得した第1のルールに従い、第1のモデル要素と関連を有する第2のモデル要素を探索するステップと、
上記取得した第2のルールに従い、上記モデルの品質を検証するステップと
を含む、上記制御するステップと
を含む。
本発明の1つの実施態様では、上記ルール定義が、検証対象であるモデル要素を絞り込む第4のルールを特定する情報及び該第4のルールの動作を特定するための値をさらに含み、
上記読み込むステップが、上記第4のルールを特定する情報及び該第4のルールの動作を特定するための値を上記第1の記憶部内に読み込むステップをさらに含み、
上記取得するステップが、上記第4のルールを上記第2の記憶部から取得するステップをさらに含み、
上記方法が、上記コンピュータ・システムに、
上記取得した第4のルールに従い、第3の記憶部に格納されたモデル要素全体から、検証対象である第1のモデル要素を絞り込むステップを実行させるステップ
をさらに含み、
上記制御するステップが、上記探索するステップ及び上記検証するステップに加えて上記絞り込むステップをさらに制御する。
本発明の1つの実施態様では、上記探索するステップが、上記取得した第1のルールに従い、上記絞り込まれた第1のモデル要素と関連を有する第2のモデル要素を探索するステップを含む。
本発明の1つの実施態様では、上記コンピュータ・システムに、上記モデルの品質の検証結果を表示するステップを実行させるステップをさらに含む。
本発明はまた、少なくとも1のモデル要素を含むモデルの品質を検証するための方法を提供する。各モデル要素は、属性を有し及び0又は1以上の他のモデル要素と関係付けられている。該方法は、コンピュータ・システムに下記ステップを実行させることを含む。該ステップは、モデルの品質を検証するためのルール定義を第1の記憶部内に読み込むステップであって、上記ルール定義は、検証対象であるモデル要素を絞り込むフィルター・ルールを特定する情報及び該フィルター・ルールの動作を特定するための値、モデル要素と関連する他のモデル要素を探索するエクストラクター・ルールを特定する情報及び該エクストラクター・ルールの動作を特定するための値、モデル要素の属性及び関係を検証するアトミック・ルールを特定する情報及び該アトミック・ルールの動作を特定するための値、並びに上記フィルター・ルール、上記エクストラクター・ルール及び上記アトミック・ルールを制御するコンポジット・ルールを特定する情報及び該コンポジット・ルールの動作を特定するための値を含む、上記読み込むステップと、
該読み込んだルール定義に基づいて、ルールを第2の記憶部から取得するステップであって、上記ルールは、コンポジット・ルール、フィルター・ルール、エクストラクター・ルール及びアトミック・ルールを含む、上記取得するステップと、
上記取得したコンポジット・ルールに従い、下記ステップを制御するステップであって、
該ステップが、
上記取得したフィルター・ルールに従い、第3の記憶部に格納されたモデル要素全体から、検証対象である第1のモデル要素を絞り込まれたステップと、
上記取得したエクストラクター・ルールに従い、上記絞り込まれた第1のモデル要素と関連を有する第2のモデル要素を探索するステップと、
上記取得したアトミック・ルールに従い、上記モデルの品質を検証するステップ
を含む、上記制御するステップと、
上記モデルの品質の検証結果を表示するステップと
を含む。
本発明はさらに、コンピュータ・システムに、上記のいずれか一つに記載の方法の各ステップを実行させるコンピュータ読み取り可能なコンピュータ・プログラムを提供する。
本発明の実施態様に従うと、下記に示す効果が得られる。
・モデルの品質を検証する作業を自動化することにより、低コストで且つモデリングの際に属人性が混入することを防ぎ、一定の品質を保つことが可能である。
・モデル要素に関連する他のモデル要素を探索する手段により、異なる種類のモデル(UMLモデルとダイアグラムなど)間の相関チェックをすることが可能である。
・ルール定義ファイルの設定のみでモデルの品質検証の振る舞いを指定できるので、利用者は、高度な知識を特に必要とせずに検証ルールを定義することが可能である。
・モデルの品質検証の内容を、ルールの組み合わせ及びそれらのルール定義により表現することができるので、アーキテクチャの違い又はプロジェクト固有の検証内容に柔軟に対応することができる。
・ルールの組み合わせにより検証を実現するために、プロジェクト固有の個々の検証内容に対して1つずつ個別に実装する必要がないので、検証ロジック又は制御ロジックの実装のコストを軽減することができる。
本発明において、「モデル」は、少なくとも1のモデル要素を含む。本発明において、「モデル要素」は、属性を有し及び0又は1以上の他のモデル要素と関係付けられている。モデルがモデル要素を1つのみ含む場合、他のモデル要素が存在しないので、該モデルは他のモデル要素との関係を有しない。モデルが複数のモデル要素を含む場合、該モデルは、モデル要素の集合と、それらモデル間の関係の集合から構成される。
本発明の実施態様において、「モデル」は例えば、統一モデリング言語(UML)、メタオブジェクト・ファシリティ(Meta-Object Facility,MOF)・メタモデル、CWM(Common Warehouse Meta-model)又はビジネス・プロセス・モデリング言語であるがこれらに限定されない。ビジネス・プロセス・モデリング言語は例えば、BPMN(Business Process Modeling Notation)である。
UMLは、オブジェクト指向分析及び設計における標準的モデリング言語である。
MOFメタモデルは、メタモデルを記述するための構成要素を定義し、メタモデルを管理するための技術仕様である。
CWMは、データウェアハウス用のメタモデルを定義した技術仕様である。
メタモデルとは、モデルを定義するためのモデルである。例えば、XMLがモデルを表現するものと仮定すると、XMLタグの意味を定義するDTD(Data Type Definition)がメタモデルを表現するものであり、DTDの構成要素である「ELEMENT」及び「ENTITY」の定義に対応するものがMOFである。
本発明の実施態様において、「モデル」は、様々なモデル要素を組み合わせることにより表現される。該組み合わせ方は、表現したいものによって千差万別である。
「モデル」は、モデル構造として、視覚的に表されうる(下記図1を参照)。モデル構造は、モデル要素の集合と関係の集合によって表されるモデル全体が取る意味的構造を意味する。モデリング・ツールは、上記意味的構造をツリー状に視覚的に表示することができる。
本発明の実施態様において、「モデル要素」とは、モデルを構成する最小単位である。モデル要素は例えば、ユースケース、アクター、クラス、オブジェクト、オペレーション、ダイアグラム、コンポーネント、ノード、パッケージ、インタフェース、又は文書であるがこれらに限定されない。
本発明の実施態様において、「モデル要素の属性」とは、モデル要素を特徴付けるための様々なデータの種類である。「モデル要素の属性」は例えば、名前、多重度、型、可視性、抽象、ステレオタイプ、キーワード、完全修飾名、又はスコープであるがこれらに限定されない。「モデル要素の属性値」とは、それぞれのデータの種類に設定された値である。
本発明の実施態様において、「関係」とは、モデル要素間の関係を特徴付けるための様々なデータである。「関係」は、モデル要素それ自身が関係データを有してもよく、又は、モデルが、モデル要素と別に関係データを有していてもよい。「関係」は、モデル要素に依存した情報であり、対象となるモデル要素がなければ存在しえない情報である。「関係」も、それ自身を特徴付ける属性を有する。「関係」は例えば、依存、関連(1対多、1対1、多対多など)、実現、参照又は汎化であるがこれらに限定されない。「関係の属性」とは、例えば、関係の名前、種類、1対1又は1対多の多重度の情報である。
本発明の実施態様において、プロジェクト固有又は利用者独自のルールに基づき、モデルの品質の検証を自動的に行う。ルールは、エクストラクター・ルール、アトミック・ルール及びコンポジット・ルール、並びに任意的にフィルター・ルールを含む。
本発明の実施態様において、「エクストラクター・ルール」(第1のルール)とは、モデル要素と関連する他のモデル要素を探索するルールをいう。
本発明の実施態様において、「アトミック・ルール」(第2のルール)とは、モデル要素の属性及び関係の正確性を検証するルールをいう。
本発明の実施態様において、「コンポジット・ルール」(第3のルール)とは、エクストラクター・ルール及びアトミック・ルールを制御するルール又はエクストラクター・ルール、アトミック・ルール及びフィルター・ルール(後述する)を制御するルールをいう。コンポジット・ルールは、基本的なモデル品質検証であれば制御をすることができる汎用コンポジット・ルールを含みうる。コンポジット・ルールはまた、複雑な検証ルールの場合には、モデルのプロジェクトに固有又は利用者独自の固有コンポジット・ルールを含みうる。
本発明の実施態様において、「フィルター・ルール」(第4のルール)とは、検証対象であるモデル要素を絞り込むルールをいう。
以下に、本発明において使用するルール定義を説明する。ルール定義は、
(1)1つ又は複数のエクストラクター・ルールを特定する情報及び該エクストラクター・ルールの動作を特定するための値、
(2)1つ又は複数のアトミック・ルールを特定する情報及び該アトミック・ルールの動作を特定するための値、
(3)1つのコンポジット・ルールを特定する情報及び該コンポジット・ルールの動作を特定するための値
を含み、
(4)1つ又は複数のフィルター・ルールを特定する情報及び該フィルター・ルールの動作を特定するための値
は任意である。
ルール定義の実行順序は、各ルール定義を記述する順序により定義することができる。
本発明の実施態様において、「エクストラクター・ルールを特定する情報」とは、1又は複数のエクストラクター・ルールのうちから、モデルの品質を検証する際に使用するエクストラクター・ルールを特定する情報をいう。該特定する情報は、例えばルールに付与された識別子でありうる。ユーザは、エクストラクター・ルールを特定する情報を、検証処理の内容に合わせて変更することが可能である。
同様に、本発明の実施態様において、「アトミック・ルールを特定する情報」とは、1又は複数のアトミック・ルールのうちから、モデルの品質を検証する際に使用するアトミック・ルールを特定する情報をいう。
同様に、本発明の実施態様において、「コンポジット・ルールを特定する情報」とは、1又は複数のコンポジット・ルールのうちから、モデルの品質を検証する際に使用するコンポジット・ルールを特定する情報をいう。
同様に、本発明の実施態様において、「フィルター・ルールを特定する情報」とは、1又は複数のフィルター・ルールのうちから、モデルの品質を検証する際に使用するフィルター・ルールを特定する情報をいう。
また、検証の条件として実行時パラメータが各ルールに渡されうる。例えば、実行時パラメータとして、名前の規約が正規表現として渡される。名前の規約とは、あるルールの処理の中で何らかのモデル要素の属性、例えば名称などの文字列が、指定した条件に合致するかどうかを判定するためにパラメータとして渡す条件である。条件は、正規表現として記述された文字列のマッチング・パターンである。正規表現の上記マッチング・パターンは、フィルター・ルールにおけるモデル要素の絞込みのための条件として、アトミック・ルールにおけるモデル要素の属性の値の妥当性の条件として、及びエクストラクター・ルールのモデル要素と関連する他のモデル要素を探索するための絞込み条件としてパラメータに指定される。
本発明の実施態様において、「エクストラクター・ルールの動作を特定するための値」とは、エクストラクター・ルールに適用する実行時パラメータであり、且つモデルの品質を検証する際にエクストラクター・ルールによって使用される値をいう。ユーザは、エクストラクター・ルールの動作を特定するための値を、検証する処理の内容に合わせて変更することが可能である。
同様に、本発明の実施態様において、「アトミック・ルールの動作を特定するための値」とは、アトミック・ルールに適用する実行時パラメータであり、且つモデルの品質を検証する際にアトミック・ルールによって使用される値をいう。ユーザは、アトミック・ルールの動作を特定するための値を、検証する処理の内容に合わせて変更することが可能である。
同様に、本発明の実施態様において、「コンポジット・ルールの動作を特定するための値」とは、コンポジット・ルールに適用する実行時パラメータであり、且つモデルの品質を検証する際にコンポジット・ルールによって使用される値をいう。ユーザは、コンポジット・ルールの動作を特定するための値を、検証する処理の内容に合わせて変更することが可能である。
同様に、本発明の実施態様において、「フィルター・ルールの動作を特定するための値」とは、フィルター・ルールに適用する実行時パラメータであり、且つモデルの品質を検証する際にフィルター・ルールによって使用される値をいう。ユーザは、フィルター・ルールの動作を特定するための値を、検証する処理の内容に合わせて変更することが可能である。
本発明の実施態様において、ルール定義は、例えばXMLを使用して表されるが、これに限定されない。
以下に、本発明において使用するルールを説明する。ルールは、エクストラクター・ルール、アトミック・ルール、及びコンポジット・ルールを含み、フィルター・ルールは任意である。なお、本発明では、発明の理解を容易にするために、エクストラクター・ルール、アトミック・ルール、及びコンポジット・ルールと命名しているが、これらの定義に入るルールであれば、該ルールは、これらルールの複数の定義に含まれることもある。
本発明において、「エクストラクター・ルール」とは、モデル要素と関連する他のモデル要素を探索するルールである。
エクストラクター・ルールは例えば、以下の探索を行うために使用される。
・あるモデル要素が関係、参照又は利用している他のモデル要素を探索する。例は、次の通りである:ダイアグラム上で利用されている型を探索する;メッセージが使われているシーケンス図を探索する;オペレーションで利用しているダイアグラムを検索する;クラスと実装関連にあるインタフェースを探索する。
・あるモデル要素が保持している他のモデル要素を探索する。例は、次の通りである:クラスが保持するオペレーション(操作)を探索する;インタフェースが保持するオペレーション(操作)を探索する。
・あるモデル要素が描画されている図(ダイアグラム図を含む)を探索する。例は、次の通りである:名前を持つUML要素が描画されているダイアグラムを探索する;クラスを利用するダイアグラム図を探索する。
・あるモデル要素が関係、参照、利用又は保持している図上に描画されたモデル要素を探索する。
本発明において、「アトミック・ルール」とは、モデル要素の属性及び関係の正確性を検証するルールである。モデル要素の属性及び関係の正確性とは例えば、モデル要素の属性値が正しく設定されているか、関係値が正しく設定されているかどうか、モデル要素が存在するかどうか、又は関係が存在するかどうかを含む。
アトミック・ルールは例えば、以下の検証を行うために使用される。
・モデル要素の属性の値が指定した数値であるかどうかの検証を行う。例は、次の通りである:多重度を持つUML要素の属性を検証するアトミック・ルール;メッセージの属性を検証するアトミック・ルール。多重度は、多重度の値(「1」、「2以上」、「多」など)で表される。メッセージの属性は、メッセージの種類(呼び出し、戻り値など)で表される。
・モデル要素の属性の値と指定した値との大小の検証を行う。
・モデル要素の属性の値が指定した値域内に含まれることの検証を行う。
・モデル要素の属性の文字列が指定した文字列のパターンに完全又は部分一致するかどうかの検証を行う。例は、次の通りである:名前を保持するUMLの設定値(名前、完全修飾名の値など)の内容を検証するアトミック・ルール。
・モデル要素の属性の設定値が指定した値の中から選択されているかどうかの検証を行う。例えば、オペレーションの属性には、「可視性」(public、private、protected、packageなど)がある。該可視性の内容を検証するために、可視性に設定された文字列が「public」となっているかどうかを検証する。その他、オペレーションの属性には、戻り値の型、オペレーションの名前がある。
本発明において、「コンポジット・ルール」とは、フィルター・ルール、エクストラクター・ルール、アトミック・ルールを制御するルールである。
コンポジット・ルールは例えば、以下の制御を行うために使用される。
・各ルールの実行順序を制御する。実行順序は任意である。例は、次の通りである:「検証対象絞込み手段」、「検証対象に関連を有するモデル要素探索手段」、「モデル要素検証手段」を順番に実行する汎用コンポジット・ルール;「検証対象絞込み手段」、「検証対象に関連を有するモデル要素探索手段」、「モデル要素検証手段」の実行順序や組み合わせ方をカスタマイズするために独自に作成したコンポジット・ルール。
・各ルールに対する、例えばAND、OR、NOTの論理演算を行う。
本発明において、「フィルター・ルール」とは、モデル要素の属性値に基づき、検証対象であるモデル要素を絞り込むルールである。検証対象であるモデル要素とは、モデルの品質を検証するために必要とされるモデル要素をいう。
フィルター・ルールは例えば、以下の絞込みを行うために使用される。
・モデル要素の属性の値が、指定した数値を有するモデル要素に絞込みを行う。
・モデル要素の属性の文字列が、指定した文字列のパターンに完全又は部分一致するモデル要素に絞込みを行う。
・モデル要素の属性の設定値が、指定した値の中から選択されているモデル要素に絞込みを行う。
・モデル要素の種類により絞込みを行う。例は、次の通りである:UMLの種類によって絞込みを行うフィルター;文書の属性によって絞込みを行うフィルター。UMLの種類は、例えば、クラス、インタフェースである。文書の属性は、例えば文書の内容である。
・所定の名前を有するモデル要素に絞込みを行う。名前を有するUML要素は例えば、アクター、ユースケース、クラス、インタフェース、コンポーネント、ユースケース、パッケージである。
・名前を有するモデル要素の属性値により絞込みを行う。属性値は例えば、「名前」、「完全修飾名」(パッケージ名を含む名前)である。
・図の種類により絞込みを行う。
・モデル要素の配置場所により絞込みを行う。
本発明の実施態様において、ルールは、例えばJAVA(商標)、C言語を使用して定義されるが、これに限定されない。
本発明の実施態様において、「モデルの品質を検証」することは、モデル要素の属性値の検証、モデル要素間の関係値の検証、モデル要素の存在の検証、関係の存在の検証を含む。
具体的には、モデルの品質の検証は例えば、第1のモデル要素の属性値の検証、該第1のモデル要素と他のモデル要素との関係値の検証、第2のモデル要素の属性値の検証若しくは該第2のモデル要素と他のモデル要素との関係値の検証、又は探索部で探索された第2のモデル要素が存在するかどうかの検証、上記第1のモデル要素と他のモデル要素との関係が存在するかどうかの検証若しくは上記第2のモデル要素と他のモデル要素との関係が存在するかどうかの検証について行われる。上記第1のモデル要素と他のモデル要素との関係及び上記第1のモデル要素と他のモデル要素との関係はまたそれぞれ、これら関係自身の属性を含む。
以下、図面に従って、本発明の実施形態を説明する。本実施形態は、本発明の好適な態様を説明するためのものであり、本発明の範囲をここで示すものに限定する意図はないことを理解されたい。また、以下の図を通して、特に断らない限り、同一符号は、同一の対象を指す。
図1は、本願発明の実施態様である、モデルの品質を検証するためのコンピュータ・システムの構成図を示す。
コンピュータ・システム(101)は、読込部(103)、取得部(104)、ルール構築部(105)、絞込部(113)、探索部(114)、検証部(115)、検証制御部(116)及び表示部(118)を含む。
コンピュータ・システム(101)は、1又は複数のコンピュータから構成されていてもよく、各部は複数のコンピュータに分散していてもよい。
コンピュータ・システム(101)はまた、ルール定義(106)、ルール群(107)及びモデル(117)を記憶する記憶部を含む。ルール定義(106)、ルール群(107)及びモデル(117)は、1つの記憶装置、例えばハードディスク又はシリコンディスクに格納されていてもよく、又は複数の記憶装置に分散されて記憶されていてもよい。
読込部(103)は、モデルの品質を検証するためのルール定義(106)を第1の記憶部内(図示せず)に読み込む。ルール定義は、プロジェクト固有の検証内容に基づきユーザによって定義されうる。
取得部(104)は、読込部(103)が上記記憶部内に読み込んだルール定義(106)に基づいて、ルール群(107)を記憶する記憶部からルール(109〜111、又は、108〜111)を取得する。各ルールとは、検証の振る舞いの最小単位を実現する部品(ルール部品ともいう)である。検証の振る舞いとは、例えば「名前の検証をする」、「属性の可視性を検証する」などが挙げられる。
ルール構築部(105)は、上記取得したルール(109〜111、又は、108〜111)に、上記読み込んだルール定義(106)の値をルール毎に適用する。ルール構築部(105)はまた、取得部(104)が取得したルール(109〜111、又は、108〜111)に基づいて、モデルの品質を検証するために必要なルールを選択し、組み合わせを行う。ルールは、エクストラクター・ルール(109)、アトミック・ルール(110)及びコンポジット・ルール(111)、又は、フィルター・ルール(108)、エクストラクター・ルール(109)、アトミック・ルール(110)及びコンポジット・ルール(111)を含む。
絞込部(113)は、取得部(104)が取得したフィルター・ルール(108)に従い、記憶部(図示せず)に格納されたモデル要素全体から、検証対象である第1のモデル要素(117)を絞り込む。
探索部(114)は、取得部(104)が取得したエクストラクター・ルール(109)に従い、第1のモデル要素(117)と関連を有する第2のモデル要素を探索する。関連しているかどうかは、モデル要素間の関係、例えば、依存、関連(1対多、1対1、多対多など)、実現、参照又は汎化を使用して、特定される。本発明の実施態様において、「他のモデル要素」は、第1のモデル要素(117)と同一又は異なる種類のモデル要素でありうる。例えば第1のモデル要素(117)がクラスである場合に、他のモデル要素はインタフェースである。
検証部(115)は、取得部(104)が取得したアトミック・ルール(110)に従い、検証対象であるモデルの品質を検証する。モデルの品質の検証は例えば、第1のモデル要素の属性の内容について、該第1のモデル要素と他のモデル要素との関係の内容について、第2のモデル要素の属性の内容について若しくは該第2のモデル要素と他のモデル要素との関係の内容について、又は探索部(114)で探索された第2のモデル要素が存在するかどうかについて、上記第1のモデル要素と他のモデル要素との関係が存在するかどうかについて若しくは上記第2のモデル要素と他のモデル要素との関係が存在するかどうかについて行われるがこれらに限定されない。検証部(115)は、モデルの品質を検証する上で必要な検証を行う。検証部(115)は、例えば、あるモデル要素が、いずれかのダイアグラム上に記載されているかどうかの検証を行う。
検証制御部(116)は、取得部(104)が取得したコンポジット・ルール(111)に従い、絞込部(113)、探索部(114)及び検証部(115)を動的に制御する。すなわち、検証制御部(116)が、モデルの品質を検証するための全体の流れを制御する。検証の制御は、ルールの組み合わせ及びそれらのルール定義によって表現されることから、検証対象のモデルに合わせて検証の振る舞いを柔軟に変えることが可能である。
表示部(118)は、モデルの品質の検証結果(119)を表示する。
ルール定義(106)は、下記を含む:
・検証対象であるモデル要素を絞り込むフィルター・ルールをルール群(107)に格納されたフィルター・ルール(108)から特定する情報及び該フィルター・ルールの動作を特定するための値、
・モデル要素と関連する他のモデル要素を探索するエクストラクター・ルールをルール群(107)に格納されたエクストラクター・ルール(109)から特定する情報及び該エクストラクター・ルールの動作を特定するための値、
・モデル要素の属性及び関係を検証するアトミック・ルールをルール群(107)に格納されたアトミック・ルール(110)から特定する情報及び該アトミック・ルールの動作を特定するための値、
・フィルター・ルール、エクストラクター・ルール及びアトミック・ルールを制御するコンポジット・ルールをルール群(107)に格納されたコンポジット・ルール(111)から特定する情報及び該コンポジット・ルールの動作を特定するための値。
ただし、検証対象であるモデル要素を絞り込むフィルター・ルールを特定する情報及び該フィルター・ルールの動作を特定するための値は、必ずしも必要ではない。
ルール群(107)は、1又は複数のエクストラクター・ルール(109)、1又は複数のアトミック・ルール(110)及び1又は複数のコンポジット・ルール(111)、又は、1又は複数のフィルター・ルール(108)、1又は複数のエクストラクター・ルール(109)、1又は複数のアトミック・ルール(110)及び1又は複数のコンポジット・ルール(111)を含む。各ルールの最小構成単位は、モデルの品質を検証する振る舞いのための最小単位である。ルールは、検証対象であるのモデル要素の種類、例えばオペレーション、ダイアグラム、クラス、コンポーネント、アクター、ユースケース、パッケージ、インタフェース又は文書に合わせて作成され、必要に応じてあらかじめ複数用意されうる。
モデル(117)は、モデルの品質を検証する対象である1又は複数のモデル要素を含む。検証対象であるモデル要素は、検証対象であるモデルに含まれるモデル要素全て、又は検証対象であるモデルに含まれるモデル要素全てから、フィルター・ルール(108)に従い絞り込まれた所定のモデル要素でありうる。
ユーザが、モデルの品質の検証をコンピュータ・システム(101)にリクエストすると(102)、モデルの品質の検証結果が表示装置上に表示される(120)。検証結果は、ユーザにわかりやすいメッセージ形式であれば特に限定されない。
図2Aは、本願発明の1つの実施態様である、モデルの品質を検証するための流れ図を示す。
ステップ201では、コンピュータ・システム(図1、101)が、モデルの品質を検証するためのルール定義を記憶部内(図示せず)に読み込む。
ステップ202では、コンピュータ・システム(101)が、上記記憶部内に読み込んだルール定義(106)に基づいて、ルール群を記憶する記憶部から各ルールを取得する。
ステップ203では、コンピュータ・システム(101)が、上記取得したルールに、上記読み込んだルール定義の値をルール毎に適用する。
ステップ204では、コンピュータ・システム(101)が、ルール群を記憶する記憶部から取得したコンポジット・ルールに従い、探索するステップ(205)及び検証するステップ(206)を動的に制御する。
ステップ205では、コンピュータ・システム(101)が、ルール群を記憶する記憶部から取得したエクストラクター・ルールに従い、検証対象であるモデル要素(第1のモデル要素)と関連を有する第2のモデル要素を探索する。
ステップ206では、コンピュータ・システム(101)が、ルール群を記憶する記憶部から取得したアトミック・ルールに従い、モデルの品質を検証する。検証が第1のモデル要素のみについて行われる場合、ステップ206では、第1のモデル要素のみの属性値及び関係値の検証が行われる。検証が第2のモデル要素についても行われる場合、ステップ206では、第1のモデル要素及び第2のモデル要素のうち、少なくとも第2のモデル要素の属性値及び関係値の検証が行われる。
ステップ207では、コンピュータ・システム(101)が、モデルの品質の検証結果を表示する。
図2Bは、本願発明の他の実施態様である、モデルの品質を検証するための流れ図を示す。
ステップ211では、コンピュータ・システム(図1、101)が、モデルの品質を検証するためのルール定義を記憶部内(図示せず)に読み込む。
ステップ212では、コンピュータ・システム(101)が、上記記憶部内に読み込んだルール定義(106)に基づいて、ルール群を記憶する記憶部から各ルールを取得する。
ステップ213では、コンピュータ・システム(101)が、上記取得したルールに、上記読み込んだルール定義の値をルール毎に適用する。
ステップ214では、コンピュータ・システム(101)が、ルール群を記憶する記憶部から取得したコンポジット・ルールに従い、絞り込むステップ(215)、探索するステップ(216)及び検証するステップ(217)を動的に制御する。
ステップ215では、コンピュータ・システム(101)が、ルール群を記憶する記憶部から取得したフィルター・ルールに従い、検証対象であるモデル要素(第1のモデル要素)をモデル全体から絞り込む。
ステップ216では、コンピュータ・システム(101)が、ルール群を記憶する記憶部から取得したエクストラクター・ルールに従い、上記絞り込まれた第1のモデル要素と関連を有する第2のモデル要素を探索する。
ステップ217では、コンピュータ・システム(101)が、ルール群を記憶する記憶部から取得したアトミック・ルールに従い、上記モデルの品質を検証する。検証が第1のモデル要素のみについて行われる場合、ステップ217では、第1のモデル要素のみの属性値及び関係値の検証が行われる。検証が第2のモデル要素についても行われる場合、ステップ217では、第1のモデル要素及び第2のモデル要素のうち、少なくとも第2のモデル要素の属性値及び関係値の検証が行われる。
ステップ218では、コンピュータ・システム(101)が、モデルの品質の検証結果を表示する。
図3は、本発明の実施態様である、モデルの品質を検証するための実施例を示す。
本実施例は、「分析クラスが保持するオペレーションが、命名ルール「〜を〜する」に沿っているか」を検証する例である。
該検証では、UMLの種類によりモデル要素を絞り込み、検索対象を絞り込むためのフィルター・ルール、及びパッケージの名前により検索対象によりモデルを絞り込み、検索対象を絞り込むためのフィルター・ルール、クラスが保持するオペレーションを探索するエクストラクター・ルール、並びに名前を検証するアトミック・ルールを利用する。
ステップ301では、コンピュータ・システム(101)が、各ルール定義を記憶部内に読み込む。
ステップ302では、コンピュータ・システム(101)が、上記ルール定義(106)に基づいて、ルール群を記憶する記憶部から各ルールを取得する。
ステップ303では、コンピュータ・システム(101)が、上記取得したルールに、上記読み込んだルール定義の値をルール毎に適用する。本実施例では、絞込部、探索部、検証部、及び検証制御部に各ルールを、以下に示すように適用する。
絞込部 UMLの種類により絞り込むフィルター・ルール
パッケージの名前により絞り込むフィルター・ルール
探索部 クラスが保持するオペレーションを探索するエクストラクター・ルール
検証部 名前を検証するアトミック・ルール
検証制御部 汎用コンポジット・ルール
ステップ304では、コンピュータ・システム(101)が、絞り込むステップ(305)、探索するステップ(306)、及び検証するステップ(307)を順に実行する。
絞り込むステップ(305)では、コンピュータ・システム(101)が、UMLの要素「クラス」で検証対象であるUML要素の絞り込みを行い、さらにパッケージが「分析」であるクラスを検証対象として絞り込みを行う。
探索するステップ(306)では、コンピュータ・システム(101)が、クラスが保持するオペレーションを探索する。
検証するステップ(307)では、コンピュータ・システム(101)が、探索されたオペレーションの名前が命名ルールに沿っているかどうかを検証する。「受注検証()」オペレーションは命名ルール「〜を〜する」に沿っていないためエラーとなる。
ステップ308では、コンピュータ・システム(101)が、検証結果をユーザに提示する。例えば、表示装置上に、命令ルールに沿わないオペレーションを保持しているクラスがある旨のエラーが出力される。
図4は、本発明の実施態様である、モデルの品質の検証の実施からルール違反の検出を表示させた結果を示す。
ユーザは、品質確認を行うモデル要素を選択して検証を実行する。
ユーザが、モデルの検証のために、検証対象の上でマウスを右クリックすると、ポップアップメニューが表示される。ユーザが、該ポップアップメニューからメニュー「検証」を選択する。該選択によって、モデルの品質の検証が実行される。検証が終了すると、モデリング・ルール違反が表示装置上に示される。
図5Aは、本発明の実施態様である、名前を有するUML要素の絞り込みを行うためのフィルター・ルールの例を示す。
該例では、モデル要素のうち、属性において名前が「○○者」となっている要素の絞込みを行うフィルター・ルールを適用する。その結果、名前が「管理者」を有するUML要素(501)が絞り込まれる。
図5Bは、本発明の実施態様である、名前を持つUML要素が描画されているダイアグラムを探索するエクストラクター・ルールの例を示す。
該例では、アクターが描画されているダイアグラム(503、504)が探索される。
図5Cは、本発明の実施態様である、オペレーションの可視性が設定された値を検証するアトミック・ルールの例を示す。
該例では、可視性が、設定された値(「public」、「private」、「protected」、「package」)のうち「public」となっている(505)。よって、該モデル要素の可視性は正しいことが判断される。
図5Dは、本発明の実施態様である、名前が「○○者」となっていることを検証するアトミック・ルールの例を示す。
モデル要素(506、507)のうち、アクター(506)はその属性の名前が「管理者」であるので正しいと判断され、一方クラス(507)はその属性の名前が「Book」であるので正しくないと判断される。
図6Aは、本発明の実施態様である、ルール定義の表現例を示す。
ルール定義は、フィルター・ルール、エクストラクター・ルール、アトミック・ルール、コンポジット・ルールそれぞれについて、ルール部品を特定するための情報(601)及び特定したルールの動作を特定するための値を含む。ルールの動作を特定するための値は例えば、ルールの動作を特定するための設定項目(602)及び該設定項目毎に対応する値(603)を有する。ルールによっては、ルールの動作を特定するための設定項目(602)を必ずしも有していなくてよい。
ルール定義は、例えばXMLを使用して表される。
ユーザは、ルール部品を特定するための情報(601)及びルールの動作を特定するための値(602、603)を設定する。該設定は、例えば、XMLの記述を変更することによって、又はルール部品を特定するための情報(601)及びルールの動作を特定するための値(602、603)を入力するための所定のウィンドウを表示し、該ウィンドウ内に、上記情報(601)、上記値(602、603)を入力することによって行われうる。
図6Bは、本発明の実施態様である、ルール定義のモデル例を示す。
該モデル例(604)は、コンポジット・ルール(605)、フィルター・ルール(606)、エクストラクター・ルール(607)、及びアトミック・ルール(608a、608b)を含む。
コンポジット・ルール(605)は、絞込部(図1、113)、探索部(図1、114)、検証部(図1、115)を制御するために、フィルター・ルール(606)、エクストラクター・ルール(607)、及びアトミック・ルール(608a、608b)の組み合わせ及び実行順序を指定する。各ルールの組み合わせ及び実行順序は、コンポジット・ルール(605)の記載順によって表される。
フィルター・ルール(606)は、検証対象である第1のモデル要素を絞り込む条件を列挙する。フィルター・ルールが複数ある場合には、フィルター・ルール(606)の記述が繰り返される。
エクストラクター・ルール(607)は、第1のモデル要素と関連を有する第2のモデル要素を探索する条件を列挙する。エクストラクター・ルールが複数ある場合には、エクストラクター・ルール(607)の記述が繰り返される。
アトミック・ルール(608a)は、少なくとも第2のモデル要素が満たすべき条件を列挙する。少なくとも第2のモデル要素を検証する場合とは、第1のモデル要素及び第2のモデル要素を検証する場合、又は第2のモデル要素のみを検証する場合である。この場合、アトミック・ルール(608a)は、エクストラクター・ルール(607)の定義内に組み込まれる。アトミック・ルールが複数ある場合には、アトミック・ルール(608a)の記述が繰り返される。
アトミック・ルール(608b)は、第1のモデル要素のみが満たすべき条件を列挙する。第1のモデル要素のみを検証する場合とは、探索部(114)によって第2のモデル要素が探索されなかった場合若しくは探索部(114)によって第2のモデル要素の探索が行われなかった場合、又は第2のモデル要素を検証しない場合である。アトミック・ルール(608b)は、アトミック・ルール(608a)と異なり、エクストラクター・ルール(607)の定義内に組み込まれない。アトミック・ルールが複数ある場合には、アトミック・ルール(608b)の記述が繰り返される。
図6Cは、本発明の第1の実施態様である、ルール定義の実装例を示す。
該実装例は、モデル要素であるユースケースの名前が「〜を〜する」(目的語+動詞)の形式かどうか検出するルールの適用例である。該実装例では、フィルター・ルールが2つ含まれる。
図6Dは、本発明の第1の実施態様である、モデルの検証の実装例を示す。
モデル要素(609)のユースケースの名前が「顧客情報登録する」であるので、検証結果は、「正しい」である。
モデル要素(610)のユースケースの名前が「商品管理」であるので、検証結果は、「間違い」である。
図6Eは、本発明の第2の実施態様である、ルール定義の実装例を示す。
該実装例は、依存線の依存元のモデル要素の種類がアクターであるか検証するルールの適用例である。
図6Fは、本発明の第2の実施態様である、モデルの検証の実装例を示す。
依存元であるモデル要素(611)の種類がアクターであるので、検証結果は、「正しい」である。
依存元であるモデル要素(612)の種類がアクターでないので、検証結果は、「間違い」である。
図6Gは、本発明の第3の実施態様である、ルール定義の実装例を示す。
該実装例は、シーケンス図に登場するモデル要素(ライフライン)の型がアクター及びユースケースであることを検証するルールの適用例である。
図6Hは、本発明の第3の実施態様である、モデルの検証の実装例を示す。
ライフライン(613)の型がアクターであるので、検証結果は、「正しい」である。
ライフライン(614)の型がクラスであるので、検証結果は、「正しい」である。
ライフライン(615)の型がインタフェースであるので、検証結果は、「間違い」である。
図7Aは、本発明の実施態様における、ユースケース・モデルの品質を検証するために構築された適用ルールの例を示す。
該構築された適用ルール(112)は、ルール構築部(105)により、ルール定義に基づき、ルール群からフィルター・ルール(108)、エクストラクター・ルール(109)及びアトミック・ルール(110)を取得し、動作を特定するための値を設定され構築される。
図7Bは、本発明の実施態様における、分析モデルの品質を検証するために構築された適用ルールの例を示す。
該構築された適用ルール(112)は、ルール構築部(105)により、ルール定義に基づき、ルール群からフィルター・ルール(108)、エクストラクター・ルール(109)及びアトミック・ルール(110)を取得し、動作を特定するための値を設定され構築される。
図7Cは、本発明の実施態様における、設計モデルの品質を検証するために構築された適用ルールの例を示す。
該構築された適用ルール(112)は、ルール構築部(105)により、ルール定義に基づき、ルール群からフィルター・ルール(108)、エクストラクター・ルール(109)及びアトミック・ルール(110)を取得し、動作を特定するための値を設定され構築される。
図8Aは、ユースケース図の例を示す。
ユースケース図は、システムが提供する機能とそれに関連する外部要素(ユーザ又は外部システム)を表す。ユースケース図は、ユースケース、アクター及び関連で構成される。ユースケースとは、ユーザなど、システムの外部からみたシステムの機能(振る舞い)を表す。アクターとは、あるシステムを中心に見たとき、それに関連するすべての外部要素を表す。ユースケースとアクター間の関連とは、システムが提供する機能と、外部要素(ユーザ又は外部システム)の関係を示す。
ユースケースは、楕円で表される。図8Aは、3つのユースケースを示す。該3つのユースケースは、上から順に顧客を検索するユースケース、受注を入力するユースケース及び商品を検索するユースケースである。
アクターは、円と線を組み合わせたスティックマンと呼ばれる人型のアイコンで表される。図8Aは、2つのアクターを記載する。左のスティクマンが受注担当者を表すアクターであり、右のスティクマンが顧客管理システムを表すアクターである。アクターは、具体的な名前ではなく、役割によって抽象化したもので表す。例えば、受注担当者であるAさんは、受注担当者というアクターで表す。
関連は、ユースケース及びアクターと関連するユースケースの間の実線で表される。図8Aは、受注担当者が、顧客を検索する機能、受注を入力する機能及び商品を検索する機能を利用できることを示す。このシステムが顧客を検索する機能を実現するために、顧客管理システムを利用する。
図8Bは、クラス図の例を示す。
クラス図は、クラスというオブジェクト指向の設計単位を用いて、システムの静的な構造を表したものである。クラス図は、業務やシステムに登場する概念を表す「クラス」及びクラス同士の関係を表す「関連」を含む。クラスとは、オブジェクトの共通的な要素を抽象化し、それを枠組みとして定義したものである。
クラスは、クラス図において四角形で表される。上記四角形の内部には、上段からクラス名、属性、操作が記述される。属性は、例えばクラスが持つデータ構造である。操作は、例えばクラスの振る舞いである。
図8Bは、8つのクラスを記載する。上記8つのクラスは、受注を入力するUIクラス、受注処理クラス、受注管理クラス、在庫処理クラス、取引先管理クラス、倉庫管理クラス、社員管理クラス及び品目管理クラスである。なお、属性及び操作は省略されている。また、クラス名の上に記載されているBoundary、Control及びEntityは、上記8つのクラスのステレオタイプを示す。
図8Bでは、関連は、点線の矢印で示される。関連は、クラスから作成されるオブジェクト間のつながりの可能性を示す。図8Bでは、8つの関連を表す点線の矢印が記載されている。また、上記8つの関連は全てuseである。これは、矢印の始点のクラスのオブジェクトが、矢印の先のクラスのオブジェクトを使用する可能性があることを示す。例えば、発注管理クラスのオブジェクトは、取引先管理クラスのオブジェクト、倉庫管理クラスのオブジェクト、社員管理クラスのオブジェクト及び品目管理クラスのオブジェクトを使用する可能性があることを示す。
図8Bはまた、受注担当者を表すアクターを含む。
図8Cは、シーケンス図の例を示す。
シーケンス図は、コラボレーション図とともに相互作用図と呼ばれ、オブジェクト間のメッセージのやり取りを時系列で表すダイアグラムである。オブジェクトとは、あらゆるモノ、例えば人、車、コンピュータ、データである。メッセージは、上記オブジェクト間の通信である。メッセージは、主にオブジェクト間の操作の呼び出しを表す。
シーケンス図での時間は、ライフラインに沿って上から下に進む。
図8Cのシーケンス図の例では、上部の5つの長方形が、オブジェクトで表される。上記それぞれのオブジェクトから伸びる縦の破線は、ライフラインを表す。ライフラインが太く表現されている個所は、対応するオブジェクトが動作していることを表す。また、ライフラインを結ぶ矢印は、メッセージを表す。
以下に、上記シーケンス図で表現されるオブジェクトの動作を時系列に沿って説明する。
最初に、受注担当者を表すアクターのオブジェクトから、受注を入力するUIクラスのオブジェクトに対して、メッセージが発行される。該メッセージは例えば、入力装置からの受注情報の入力である。
次に、受注を入力するUIクラスのオブジェクトから、受注処理クラスのオブジェクトに対して、メッセージが発行される。該メッセージは例えば、受注を生成するための命令の呼び出しである。
次に、受注処理クラスのオブジェクトから、受注管理クラスのオブジェクトに対して、メッセージが発行される。該メッセージは例えば、受注を生成するための命令の呼び出しである。
次に、受注管理クラスのオブジェクトから、取引先管理クラスのオブジェクトに対して、メッセージが発行される。該メッセージは例えば、得意先情報を照会するための命令の呼び出しである。
次に、受注管理クラスのオブジェクトから、取引先管理クラスのオブジェクトに対して、メッセージが発行される。該メッセージは例えば、出荷先情報を照会するための命令の呼び出しである。
次に、受注管理クラスのオブジェクトから、倉庫管理クラスのオブジェクト(図示せず)に対して、メッセージが発行される。該メッセージは例えば、倉庫情報を照会するための命令の呼び出しである。
次に、受注管理クラスのオブジェクトから、社員管理クラスのオブジェクト(図示せず)に対して、メッセージが発行される。該メッセージは例えば、倉庫情報を照会するための命令の呼び出しである。
このように、シーケンス図において、オブジェクト間のメッセージのやり取りは、時系列に沿って表現される。
図9は、本発明の実施例に係るコンピュータ・ハードウェアのブロック図を示す。
本発明の実施例に係るコンピュータ・システム(901)は、CPU(902)とメイン・メモリ(903)と含み、これらはバス(904)に接続されている。CPU(902)は好ましくは、32ビットまたは64ビットのアーキテクチャに基づくものであり、例えば、インテル社のXeon(商標)シリーズ、Core(商標)シリーズ、Atom(商標)シリーズ、Pentium(商標)シリーズ、Celeron(商標)シリーズ、AMD社のPhenom(商標)シリーズ、Athlon(商標)シリーズ、Turion(商標)シリーズ及びSempron(商標)などを使用することができる。バス(904)には、ディスプレイ・コントローラ(905)を介して、LCDモニタなどのディスプレイ(906)が接続される。ディスプレイ(906)は、そのコンピュータ・システム(901)上で動作中のソフトウェアについての情報を、適当なグラフィック・インターフェースで表示するために使用される。バス(904)にはまた、IDE又はSATAコントローラ(907)を介して、ハードディスク又はシリコン・ディスク(908)と、CD−ROM、DVD又はBlu−rayドライブ(909)が接続されている。CD−ROM、DVD又はBDドライブ(909)は、必要に応じて、CD−ROM、DVD−ROM又はBDからプログラムをハードディスク又はシリコン・ディスク(908)に導入するために使用される。バス(904)には更に、キーボード・マウスコントローラ(910)を介して、或いはUSBコントローラ(図示せず)を介して、キーボード(911)及びマウス(912)が接続されている。
通信インタフェース(914)は、例えばイーサネット(商標)プロトコルに従うものであり、通信コントローラ(913)を介してバス(904)に接続される。通信インタフェース(914)は、コンピュータ・システム(901)及び通信回線(915)を物理的に接続する役割を担い、コンピュータ・システム(901)のオペレーティング・システムの通信機能のTCP/IP通信プロトコルに対して、ネットワーク・インターフェース層を提供する。通信回線は、有線LAN環境、或いは例えばIEEE802.11a/b/g/nなどの無線LAN接続規格に基づく無線LAN環境であってもよい。
以上、実施形態に基づき本発明を説明してきたが、本実施形態に記載されている内容は、本発明の一例であり、当業者なら、本発明の技術的範囲を逸脱することなく、さまざまな変形例に想到できることが明らかであろう。
本願発明の実施態様である、モデルの品質を検証するためのコンピュータ・システムの構成図を示す。 本願発明の1つの実施態様である、モデルの品質を検証するための流れ図を示す。 本願発明の他の実施態様である、モデルの品質を検証するための流れ図を示す。 本発明の実施態様である、モデルの品質を検証するための実施例を示す。 本発明の実施態様である、モデルの品質の検証の実施からルール違反の検出を表示させた結果を示す。 本発明の実施態様である、名前を有するUML要素の絞り込みを行うためのフィルター・ルールの例を示す。 本発明の実施態様である、名前を持つUML要素が描画されているダイアグラムを探索するエクストラクター・ルールの例を示す。 本発明の実施態様である、オペレーションの可視性設定された値を検証するアトミック・ルールの例を示す。 本発明の実施態様である、名前が「○○者」となっていることを検証するアトミック・ルールの例を示す。 本発明の実施態様である、ルール定義の表現例を示す。 本発明の実施態様である、ルール定義のモデル例を示す。 本発明の第1の実施態様である、ルール定義の実装例を示す。 本発明の第1の実施態様である、モデルの検証の実装例を示す。 本発明の第2の実施態様である、ルール定義の実装例を示す。 本発明の第2の実施態様である、モデルの検証の実装例を示す。 本発明の第3の実施態様である、ルール定義の実装例を示す。 本発明の第3の実施態様である、モデルの検証の実装例を示す。 本発明の実施態様における、ユースケース・モデルの品質を検証するために構築された適用ルールの例を示す。 本発明の実施態様における、分析モデルの品質を検証するために構築された適用ルールの例を示す。 本発明の実施態様における、設計モデルの品質を検証するために構築された適用ルールの例を示す。 ユースケース図の例を示す。 クラス図の例を示す。 シーケンス図の例を示す。 本発明の実施例に係るコンピュータ・ハードウェアのブロック図を示す。

Claims (21)

  1. 少なくとも1のモデル要素を含むモデルの品質を検証するためのコンピュータ・システムであって、各モデル要素は、属性を有し及び0又は1以上の他のモデル要素と関係付けられており、
    前記コンピュータ・システムは、
    モデルの品質を検証するためのルール定義を第1の記憶部内に読み込む読込部であって、前記ルール定義は、モデル要素と関連する他のモデル要素を探索する第1のルールを特定する情報及び該第1のルールの動作を特定するための値、モデル要素の属性及び関係の正確性を検証する第2のルールを特定する情報及び該第2のルールの動作を特定するための値、並びに前記第1のルール及び前記第2のルールを制御するための第3のルールを特定する情報及び該第3のルールの動作を特定するための値を含む、前記読込部と、
    前記読み込んだルール定義に基づいて、ルールを第2の記憶部から取得する取得部であって、前記ルールは、前記第1のルール、前記第2のルール及び前記第3のルールを含む、前記取得部と、
    前記取得した第1のルールに従い、第1のモデル要素と関連を有する第2のモデル要素を探索する探索部と、
    前記取得した第2のルールに従い、前記モデルの品質を検証する検証部と、
    前記取得した第3のルールに従い、前記探索部及び前記検証部を制御する検証制御部と
    を含む、前記コンピュータ・システム。
  2. 前記ルール定義が、検証対象であるモデル要素を絞り込む第4のルールを特定する情報及び該第4のルールの動作を特定するための値をさらに含み、
    前記読込部が、前記第4のルールを特定する情報及び該第4のルールの動作を特定するための値を前記第1の記憶部内に読み込み、
    前記取得部が、前記第4のルールを前記第2の記憶部から取得し、
    前記コンピュータ・システムが、
    前記取得した第4のルールに従い、第3の記憶部に格納されたモデル要素全体から、検証対象である第1のモデル要素を絞り込む絞込部
    をさらに含み、
    前記制御部が、前記探索部及び前記検証部に加えて前記絞込部をさらに制御する、請求項1に記載のコンピュータ・システム。
  3. 前記探索部が、前記取得した第1のルールに従い、前記絞り込まれた第1のモデル要素と関連を有する第2のモデル要素を探索する、請求項2に記載のコンピュータ・システム。
  4. 前記モデルの品質の検証結果を表示する表示部をさらに含む、請求項1に記載のコンピュータ・システム。
  5. 前記取得した第1のルール、第2のルール及び第3のルールに、前記第1の記憶部内に読み込んだ前記第1のルールの動作を特定するための値、前記第2のルールの動作を特定するための値及び前記第3のルールの動作を特定するための値をそれぞれ適用するルール構築部をさらに含む、請求項1に記載のコンピュータ・システム。
  6. 前記取得した第1のルール、第2のルール、第3のルール及び第4のルールに、前記第1の記憶部内に読み込んだ前記第1のルールの動作を特定するための値、前記第2のルールの動作を特定するための値、前記第3のルールの動作を特定するための値及び前記第4のルールの動作を特定するための値をそれぞれ適用するルール構築部をさらに含む、請求項2に記載のコンピュータ・システム。
  7. 前記第1のルールが、あるモデル要素が関係、参照、利用又は保持している他のモデル要素を探索すること、あるモデル要素が描画されている図を探索すること、及びあるモデル要素が関係、参照、利用又は保持している図上に描画されたモデル要素を探索することの少なくとも1を含む、請求項1に記載のコンピュータ・システム。
  8. 前記第2のルールが、モデル要素の属性の値が指定した数値であるかどうかを検証すること、モデル要素の属性の値と指定した値との大小を検証すること、モデル要素の属性の値が指定した値域内に含まれることを検証すること、モデル要素の属性の文字列が指定した文字列のパターンに完全又は部分一致するかどうかを検証すること、モデル要素の属性の設定値が指定した値の中から選択されているかどうかを検証すること、及び前記第1のルールにより探索されたモデル要素の個数と指定された数を検証することの少なくとも1を含む、請求項1に記載のコンピュータ・システム。
  9. 前記第3のルールが、前記探索部及び前記検証部の実行順を含む、請求項1に記載のコンピュータ・システム。
  10. 前記第3のルールが、前記絞込部、前記探索部及び前記検証部の実行順、並びに前記絞込部、前記探索部及び前記検証部の組み合わせの少なくとも1を含む、請求項2に記載のコンピュータ・システム。
  11. 前記第4のルールが、モデル要素の属性の値が指定した数値を有するモデル要素を絞込むこと、モデル要素の属性の文字列が指定した文字列のパターンに完全又は部分一致するモデル要素を絞込むこと、モデル要素の属性の設定値が指定した値の中から選択されているモデル要素を絞込むこと、モデル要素の種類によりモデル要素を絞込むこと、所定の名前を有するモデル要素にモデル要素を絞込むこと、名前を有するモデル要素の属性値によりモデル要素を絞込むこと、図の種類によりモデル要素を絞込むこと、及びモデル要素の配置場所によりモデル要素を絞込むことの少なくとも1を含む、請求項2に記載のコンピュータ・システム。
  12. 前記第1のモデル要素を特定するための特定手段をさらに含む、請求項1に記載のコンピュータ・システム。
  13. 前記モデルが、統一モデリング言語(UML)、メタオブジェクト・ファシリティ(Meta-Object Facility)・メタモデル、CWM(Common Warehouse Meta-model)又はビジネス・プロセス・モデリング言語である、請求項1に記載のコンピュータ・システム。
  14. 前記モデルが統一モデリング言語(UML)であり、前記モデル要素がUML要素である、請求項1に記載のコンピュータ・システム。
  15. 少なくとも1のモデル要素を含むモデルの品質を検証するための方法であって、前記モデル要素は、各モデル要素は、属性を有し及び0又は1以上の他のモデル要素と関係付けられており、
    前記方法は、コンピュータ・システムが、
    モデルの品質を検証するためのルール定義を第1の記憶部内に読み込むステップであって、前記ルール定義は、モデル要素と関連する他のモデル要素を探索する第1のルールを特定する情報及び該第1のルールの動作を特定するための値、モデル要素の属性及び関係の正確性を検証する第2のルールを特定する情報及び該第2のルールの動作を特定するための値、並びに前記第1のルール及び前記第2のルールを制御するための第3のルールを特定する情報及び該第3のルールの動作を特定するための値を含む、前記読み込むステップと、
    前記読み込んだルール定義に基づいて、ルールを第2の記憶部から取得するステップであって、前記ルールは、第1のルール、第2のルール及び第3のルールを含む、前記取得するステップと、
    前記取得した第3のルールに従い、下記ステップを制御するステップであって、
    該ステップが、
    前記取得した第1のルールに従い、第1のモデル要素と関連を有する第2のモデル要素を探索するステップと、
    前記取得した第2のルールに従い、前記モデルの品質を検証するステップと
    を含む、前記制御するステップと
    実行することを含む、前記方法。
  16. 前記ルール定義が、検証対象であるモデル要素を絞り込む第4のルールを特定する情報及び該第4のルールの動作を特定するための値をさらに含み、
    前記読み込むステップが、前記第4のルールを特定する情報及び該第4のルールの動作を特定するための値を前記第1の記憶部内に読み込むステップをさらに含み、
    前記取得するステップが、前記第4のルールを前記第2の記憶部から取得するステップをさらに含み、
    前記方法前記コンピュータ・システムが、
    前記取得した第4のルールに従い、第3の記憶部に格納されたモデル要素全体から、検証対象である第1のモデル要素を絞り込むステップ
    をさらに実行することを含み、
    前記制御するステップが、前記探索するステップ及び前記検証するステップに加えて前記絞り込むステップをさらに制御する、請求項15に記載の方法。
  17. 前記探索するステップが、前記取得した第1のルールに従い、前記絞り込まれた第1のモデル要素と関連を有する第2のモデル要素を探索するステップを含む、請求項16に記載の方法。
  18. 前記コンピュータ・システムが、
    前記モデルの品質の検証結果を表示するステップをさらに実行することを含む、請求項15に記載の方法。
  19. 前記コンピュータ・システムが、
    前記取得した第1のルール、第2のルール、第3のルール及び第4のルールに、前記第1の記憶部内に読み込んだ前記第1のルールの動作を特定するための値、前記第2のルールの動作を特定するための値、前記第3のルールの動作を特定するための値及び前記第4のルールの動作を特定するための値をそれぞれ適用するステップをさらに実行することを含む、請求項16に記載の方法。
  20. 少なくとも1のモデル要素を含むモデルの品質を検証するための方法であって、前記モデル要素は、各モデル要素は、属性を有し及び0又は1以上の他のモデル要素と関係付けられており、
    前記方法は、コンピュータ・システムが、
    モデルの品質を検証するためのルール定義を第1の記憶部内に読み込むステップであって、前記ルール定義は、検証対象であるモデル要素を絞り込むフィルター・ルールを特定する情報及び該フィルター・ルールの動作を特定するための値、モデル要素と関連する他のモデル要素を探索するエクストラクター・ルールを特定する情報及び該エクストラクター・ルールの動作を特定するための値、モデル要素の属性及び関係を検証するアトミック・ルールを特定する情報及び該アトミック・ルールの動作を特定するための値、並びに前記フィルター・ルール、前記エクストラクター・ルール及び前記アトミック・ルールを制御するコンポジット・ルールを特定する情報及び該コンポジット・ルールの動作を特定するための値を含む、前記読み込むステップと、
    該読み込んだルール定義に基づいて、ルールを第2の記憶部から取得するステップであって、前記ルールは、コンポジット・ルール、フィルター・ルール、エクストラクター・ルール及びアトミック・ルールを含む、前記取得するステップと、
    前記取得したコンポジット・ルールに従い、下記ステップを制御するステップであって、
    該ステップが、
    前記取得したフィルター・ルールに従い、第3の記憶部に格納されたモデル要素全体から、検証対象である第1のモデル要素を絞り込むステップと、
    前記取得したエクストラクター・ルールに従い、前記絞り込まれた第1のモデル要素と関連を有する第2のモデル要素を探索するステップと、
    前記取得したアトミック・ルールに従い、前記モデルの品質を検証するステップ
    を含む、前記制御するステップと、
    前記モデルの品質の検証結果を表示するステップと
    実行することを含む、前記方法。
  21. コンピュータ・システムに、請求項15〜20のいずれか一項に記載の方法の各ステップを実行させるコンピュータ読み取り可能なコンピュータ・プログラム。
JP2008251652A 2008-09-29 2008-09-29 モデルの品質を検証するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム Expired - Fee Related JP5243908B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008251652A JP5243908B2 (ja) 2008-09-29 2008-09-29 モデルの品質を検証するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008251652A JP5243908B2 (ja) 2008-09-29 2008-09-29 モデルの品質を検証するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2010086066A JP2010086066A (ja) 2010-04-15
JP5243908B2 true JP5243908B2 (ja) 2013-07-24

Family

ID=42250008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008251652A Expired - Fee Related JP5243908B2 (ja) 2008-09-29 2008-09-29 モデルの品質を検証するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP5243908B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110865942B (zh) * 2019-11-12 2022-11-04 中国航空无线电电子研究所 一种综合模块化航电系统的模型规则校验方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006018735A (ja) * 2004-07-05 2006-01-19 Hitachi Software Eng Co Ltd コーディング規準遵守状況監視システム
WO2006033159A1 (ja) * 2004-09-24 2006-03-30 Fujitsu Limited 業務モデル図作成支援プログラム、方法、 及び装置
JP2006252314A (ja) * 2005-03-11 2006-09-21 Mitsubishi Electric Corp ソフトウェア開発支援装置、ソフトウェア開発支援方法およびその方法をコンピュータに実行させるプログラム
JP2007265005A (ja) * 2006-03-28 2007-10-11 Fujitsu Ltd レビュー支援装置、レビュー支援方法、およびレビュー支援プログラム

Also Published As

Publication number Publication date
JP2010086066A (ja) 2010-04-15

Similar Documents

Publication Publication Date Title
Reussner et al. Modeling and simulating software architectures: The Palladio approach
JP5174468B2 (ja) 自動ビジネスプロセスアプリケーションを設計するための統合システム、ツールおよび方法
US8429597B2 (en) Software for integrated modeling of user interfaces with applications
US7861227B2 (en) Software development environment with design specification validation tool
US7810069B2 (en) Methods and systems for relating data structures and object-oriented elements for distributed computing
US9037595B2 (en) Creating graphical models representing control flow of a program manipulating data resources
US20100131916A1 (en) Software for modeling business tasks
US8683434B2 (en) Generic method and system for lifecycle management
US9558296B2 (en) Method for processing a graph containing a set of nodes
US20100153150A1 (en) Software for business adaptation catalog modeling
JP2004171576A (ja) 高速チップ管理システム
US20100153149A1 (en) Software for model-based configuration constraint generation
US9052845B2 (en) Unified interface for meta model checking, modifying, and reporting
CN110222106A (zh) 集成的工作流和数据库事务
US20090241088A1 (en) Creating graphical models representing control flow of a program manipulating data resources
US8327320B2 (en) Process model lean notation
Debois et al. A case for declarative process modelling: Agile development of a grant application system
US20230086854A1 (en) Dynamically controlling case model structure using case fragments
Blumöhr et al. Variant configuration with SAP
EP2199905A1 (en) Lifecycle management and consistency checking of object models using application platform tools
US9466037B2 (en) Versioning and effectivity dates for orchestration business process design
JP5243908B2 (ja) モデルの品質を検証するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
US11947441B2 (en) Visual testing of implemented product code from a codified user experience design
Woestenenk et al. Capturing design process information in complex product development
CN115222345A (zh) 一种审核作业方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130213

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130213

TRDD Decision of grant or rejection written
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130319

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130319

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130405

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees