JP6164979B2 - 整合性検証装置、整合性検証方法及び整合性検証プログラム - Google Patents

整合性検証装置、整合性検証方法及び整合性検証プログラム Download PDF

Info

Publication number
JP6164979B2
JP6164979B2 JP2013172549A JP2013172549A JP6164979B2 JP 6164979 B2 JP6164979 B2 JP 6164979B2 JP 2013172549 A JP2013172549 A JP 2013172549A JP 2013172549 A JP2013172549 A JP 2013172549A JP 6164979 B2 JP6164979 B2 JP 6164979B2
Authority
JP
Japan
Prior art keywords
verification
model
metamodel
consistency
correspondence
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
JP2013172549A
Other languages
English (en)
Other versions
JP2015041285A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2013172549A priority Critical patent/JP6164979B2/ja
Publication of JP2015041285A publication Critical patent/JP2015041285A/ja
Application granted granted Critical
Publication of JP6164979B2 publication Critical patent/JP6164979B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、S/W(ソフトウェア)構造を可視化したモデルの整合性を検証するための整合性検証装置、整合性検証方法及び整合性検証プログラムに関する。
S/W開発の際、S/W構造を可視化する手法として、UML(Unified・Modeling・Language)を用いた方法がある。
UMLは、S/W構造を表す様々な図(ダイアグラム(線図))の表記方法を定義したものであり、S/Wの設計や分析に用いられる。
複数のUMLモデルの整合性を取ることで、別々に開発されたS/Wを組み合わせた大規模なS/W開発に役立てることができる。
一方、複数のUMLモデル間に不整合が存在する状態で開発を進めると、後工程で手戻りが発生する可能性があり、工程の遅延につながる。
UMLの記述には自由度があるので、記述方針が異なる場合、複数のモデルにおいて不整合が発生する可能性がある。例えば、クラス・メソッドなどの要素の名称、あるいは変数・引数の型が一致していない等の記述方針の不一致があると、複数のモデルにおいて不整合が発生する可能性がある。
しかし、UMLにおいて、人間がモデルを書く際に不整合を完全に無くすことや、人間が複数のモデルを比較してモデル間の不整合を発見することは困難である。
特許文献1では、UMLモデルがUMLのメタモデルの仕様に合致しているか又は一般的によく知られているモデルリング・ルールに沿っているかについて検証することができる。
特開2010−86066号公報
特許文献1では、異なる種類のダイアグラム間での整合性を検証することはできないという課題があった。
また、整合性ルールをモデル担当者が独自に設定することができないという課題があった。
本発明は、例えば、任意の異なる種類のダイアグラム間での、任意の要素に対する整合性を検証することができる整合性検証装置、整合性検証方法及び整合性検証プログラムを提供することを目的とする。
本発明に係る整合性検証装置は、
1つのソフトウェア構造を複数の線図により可視化したモデルについて、前記複数の線図間の整合性を検証する整合性検証装置において、
前記複数の線図の各線図に含まれる要素をメタモデル要素により定義するメタモデルに基づいて作成され、異なる線図間で整合するメタモデル要素の対応を検証項目として定義した検証項目表を記憶装置に記憶する検証項目表記憶部と、
前記モデルと前記メタモデルとに基づいて、前記複数の線図の各線図に含まれる要素を定義するメタモデル要素と、前記要素の値とを対応付けた対応表を生成する対応表生成部と、
前記検証項目表と前記対応表とに基づいて、前記対応表のなかに前記検証項目表に合致しない要素があるか否かを処理装置により判定する検証処理部と
を備えることを特徴とする。
本発明の一の態様によれば、メタモデルに基づいて作成され、異なる線図間で整合するメタモデル要素の対応を検証項目として定義した検証項目表と、要素を定義するメタモデル要素と前記要素の値とを対応付けた対応表とに基づいて、前記対応表のなかに前記検証項目表に合致しない要素があるか否かを処理装置により判定するので、任意の異なる種類の線図間での、任意の要素に対する整合性を検証することができるという効果を奏する。
実施の形態1に係る整合性検証装置100の構成を示すブロック図である。 実施の形態1に係る整合性検証装置100のハードウェア構成の一例を示す図である。 実施の形態1に係る検証項目106の構成の一例を示す図である。 実施の形態1に係るメタモデル(要素定義)103の一例であり、クラス図メタモデルを示す図である。 実施の形態1に係るメタモデル(要素定義)103の一例であり、シーケンス図メタモデルを示す図である。 実施の形態1に係るメタモデル(要素定義)103の一例であり、ステートマシン図メタモデルを示す図である。 実施の形態1に係るメタモデル(記法定義)104の一例(一部抜粋)であり、クラス図のメタモデル(記法定義)を示す図である。 実施の形態1に係るモデル107の一例であり、クラス図を示す図である。 実施の形態1に係るモデル107の一例であり、シーケンス図を示す図である。 実施の形態1に係るモデル107の一例であり、ステートマシン図を示す図である。 実施の形態1に係るモデル情報表110の構成の一例を示す図である。 実施の形態1に係る検証処理部108による整合性検証処理を示すフローチャートである。 実施の形態1に係る検証処理部108による整合性検証処理を示すフローチャートである。 実施の形態1に係る違反結果表109の構成の一例を示す図である。 実施の形態2に係る整合性検証装置100aを示すブロック構成図である。 実施の形態2に係る検証対象表121の一例を示す図である。 実施の形態2に係るメタモデル対応表122の一例を示す図である。 実施の形態3に係る整合性検証装置100bを示すブロック構成図である。 実施の形態3に係る指定箇所117の一例を示す図である。
実施の形態1.
図1は、本実施の形態に係る整合性検証装置100の構成を示すブロック図である。整合性検証装置100は、1つのソフトウェア構造を複数のダイアグラム(線図)により可視化したモデル107について、複数のダイアグラム間の整合性を検証する。モデル107は、例えば、UMLなどである。整合性検証装置100は、モデル107の定義レベル(メタレベル)において定義された整合性の検証項目を読み込み、検証する機能を有する装置である。
図1において、整合性検証装置100は、モデル情報生成部105、検証処理部108、リスト表示部114を備える。
また、使用者によって記述された整合性検証対象であるモデル107、モデル107の定義であるメタモデル(要素定義)103とメタモデル(記法定義)104とが予め記憶装置に記憶されている。メタモデル(要素定義)103とメタモデル(記法定義)104とを合わせて、単にメタモデルと呼ぶ場合もある。
メタモデルは、複数のダイアグラムのそれぞれに含まれる要素を、メタレベルのメタモデル要素(メタモデル要素名ともいう)により定義する。
使用者は検証したい項目を検証項目106として明記し、予め記憶装置に記憶する。あるいは、整合性検証装置100を起動すると、表示装置に検証したい項目を入力する検証項目入力画面が表示され、使用者により入力された検証項目を検証項目106として記憶装置に記憶するとしてもよい。
検証項目106(検証項目表)は、メタモデルに基づいてユーザにより作成される。検証項目106(検証項目表)は、異なるダイアグラム間で整合する要素を、メタモデル要素の対応を用いて定義される。検証項目106は、例えば、検証項目表記憶部により記憶装置に記憶される。
モデル情報生成部105は、モデル107、メタモデル(要素定義)103とメタモデル(記法定義)104とを記憶装置から読み込む。モデル情報生成部5は、検証する情報を抽出したモデル情報表110を処理装置により生成し、出力する。
モデル情報生成部105は、モデル107とメタモデル(メタモデル(要素定義)103、メタモデル(記法定義)104)とに基づいて、メタモデルにおいて要素を定義するメタモデル要素と、要素の値とを対応付けたモデル情報表110(対応表)を生成する対応表生成部の一例である。
検証処理部108は、記憶装置に記憶されている検証項目106と、モデル情報生成部105から出力されたモデル情報表110とを読み込む。検証処理部108は、読み込んだ検証項目106とモデル情報表110とに基づいて、モデル情報表110の行(要素を定義するメタモデル要素と、要素の値との対応)のなかに、検証項目106に合致しない行(要素)があるか否かを処理装置により判定する。
検証処理部108は、検証項目106から、検証元である正とする要素、検証対象とする要素を抽出し、抽出結果を元にモデル情報表110から正とする要素の値と検証対象とする要素の値を抽出する。
検証処理部108は、モデル情報表110の行(メタモデル要素と、要素の値との対応)のうち検証項目106に合致しないと判定した行(要素)の一覧を違反結果表109として出力する。つまり、検証処理部108は、抽出した値から違反を抽出し、違反結果表109を処理装置により生成し、出力する。
リスト表示部114は、検証処理部108から違反結果表9を入力し、表示装置にリスト形式で表示する。
図2は、本実施の形態に係る整合性検証装置100のハードウェア構成の一例を示す図である。
図2を用いて、整合性検証装置100のハードウェア構成例について説明する。
整合性検証装置100はコンピュータを備え、整合性検証装置100の各要素をプログラムで実現することができる。
整合性検証装置100のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
演算装置901は、プログラムを実行するCPU(Central・Processing・Unit)である。
外部記憶装置902は、例えばROM(Read・Only・Memory)やフラッシュメモリ、ハードディスク装置である。ハードディスク120は、外部記憶装置902の一例である。
主記憶装置903は、RAM(Random・Access・Memory)である。
通信装置904は、例えば通信ボード等であり、LAN(Local・Area・Network)等に接続されている。通信装置904は、LANに限らず、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークといったWAN(Wide・Area・Network)、あるいは、インターネットに接続されていても構わない。LAN、WAN、インターネットは、ネットワークの一例である。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。マウスの代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。ディスプレイ装置は、LCD(Liquid・Crystal・Display)、CRT(Cathode・Ray・Tube)、あるいは、その他の表示装置でもよい。ディスプレイ130は、表示装置の一例である。
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、図1に示す「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図1に示す「〜部」の機能を実現するプログラムを実行する。
また、アプリケーションプログラムも外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901により実行される。
また、「〜テーブル」等の情報も外部記憶装置902に記憶されている。
また、本実施の形態の説明において、「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」、「〜表」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
また、整合性検証装置100が受信したデータが主記憶装置903に記憶される。
また、暗号鍵・復号鍵や乱数値やパラメータが、主記憶装置903にファイルとして記憶されてもよい。
なお、図2の構成は、あくまでも整合性検証装置100のハードウェア構成の一例を示すものであり、整合性検証装置100のハードウェア構成は図2に記載の構成に限らず、他の構成であってもよい。
図3は、本実施の形態に係る検証項目106の構成の一例を示す図である。
検証項目106は、整合性検証で正とするメタモデル要素(メタモデル要素名)、検証対象とするメタモデル要素を明示する。
検証項目106は、「検証元一致条件1」、「検証元一致条件2」、「検証元」、「検証対象一致条件1」、「検証対象一致条件2」、「検証対象」の項目から構成される。
「検証元一致条件1」と「検証対象一致条件1」、「検証元一致条件2」と「検証対象一致条件2」が一致することを前提条件として、整合性検証で正とする「検証元」、検証対象とする「検証対象」を示している。「検証元一致条件1」、「検証対象一致条件1」、「検証元一致条件2」、「検証対象一致条件2」は必須ではない。設定されていない場合には、「−(ハイフン)」が記入されている。
図3を用いて、検証項目6の具体例について説明する。
例えば、第1行では、前提条件として「検証元一致条件1」である「Note.ClassDiagram」と、「検証対象一致条件1」である「Interaction.name」が一致する必要があることを示している。一致した場合には、「検証元」である「Class.name」を正として、「検証対象」である「Interaction.message.receiveEvent.covered.name」を検証の対象とすることを示している。
メタモデル(要素定義)103は、ダイアグラムで記述される各要素を、メタレベルのメタモデル要素により定義している。代表例として、UMLのメタモデルが挙げられる。
図4は、本実施の形態に係るメタモデル(要素定義)103の一例(一部抜粋)であり、クラス図メタモデルを示す図である。
図5は、本実施の形態に係るメタモデル(要素定義)103の一例(一部抜粋)であり、シーケンス図メタモデルを示す図である。
図6は、本実施の形態に係るメタモデル(要素定義)103の一例(一部抜粋)であり、ステートマシン図メタモデルを示す図である。
メタモデル(記法定義)104は、ダイアグラムで記述される記法の定義をしている。具体的には、メタモデル(要素定義)103で定義された各要素の記法を定義している。代表例として、UMLのメタモデルが挙げられる。
図7は、本実施の形態に係るメタモデル(記法定義)104(一部抜粋)であり、クラス図のメタモデル(記法定義)を示す図である。
図8は、本実施の形態に係るモデル107の一例であり、クラス図を示す図である。
図9は、本実施の形態に係るモデル107の一例であり、シーケンス図を示す図である。
図10は、本実施の形態に係るモデル107の一例であり、ステートマシン図を示す図である。
モデル107はメタモデル(要素定義)103及びメタモデル(記法定義)104を用いて、作成される。メタモデル(要素定義)103及びメタモデル(記法定義)104を併せてメタモデルと呼ぶ。
図8〜10は、UMLのメタモデルから作成されたモデル107の一例を示す図であり、クラス図、シーケンス図、ステートマシン図を示している。
なお、図8では、コメント機能を利用してクラス図名を定義している。これは、UMLのメタモデル上では、クラス図の名前を持つ要素が定義されていないためである。そのため、本例ではメタモデルを拡張し、要素定義を「Note.ClassDiagram」としている。
図11は、本実施の形態に係るモデル情報表110の構成の一例を示す図である。
モデル情報表110は、モデル情報生成部105により生成される。
モデル情報表110は、メタモデル要素を示す「メタモデル要素1種類」、「メタモデル要素2種類」、「メタモデル要素3種類」と各々に対応した値である「要素1」、「要素2」、「要素3」で構成される。また、「メタモデル要素1種類」は「メタモデル要素2種類」を保持し、「メタモデル要素2種類」は「メタモデル要素3種類」を保持する関係が成り立つ。
以下に、モデル情報生成部105がモデル7とメタモデル(要素定義)103」、「メタモデル(記法定義)104」を入力として、「モデル情報表110」を出力するモデル情報出力処理(対応表生成処理)について説明する。
モデル情報生成部105は、処理装置を用いて、以下の手順でモデル情報表110を生成する。
(1)モデル情報生成部105は、「モデル107」に対して、「メタモデル(記法定義)104」に基づいて得られる要素の値と、「メタモデル(要素定義)103」で定義されているメタモデル要素との対応を取る。
(2)モデル情報生成部105は、(1)で対応を取ったメタモデル要素を「モデル情報表110」の「メタモデル要素1種類」または「メタモデル要素2種類」または「メタモデル要素3種類」に設定する。次に、対応を取った値をそれぞれ、「要素1」または「要素2」または「要素3」に設定する。
ここで、モデル情報生成部105は、以下の規則に従って、モデル情報表110を出力する。「メタモデル要素1種類」は「メタモデル要素2種類」を保持し、「メタモデル要素2種類」は「メタモデル要素3種類」を保持する関係とすることを規則とする。
図12及び図13は、本実施の形態に係る検証処理部108による整合性検証処理を示すフローチャートである。フローチャートは検証項目106の各行毎に実行される。
図12及び図13を用いて、検証処理部108による整合性検証処理(検証処理)について説明する。
S101において、検証処理部108は、「検証項目106」の処理対象の行(処理対象行)の「検証元一致条件1」、「検証元一致条件2」、「検証元」に合致するモデル情報表110の行を抽出する。検証処理部108が抽出したモデル情報表110の検証元の行を検証元表10とする。
具体例を用いて説明する。例えば、「検証項目106」の処理対象行を第1行とする。このとき、「検証元一致条件1」、「検証元一致条件2」、「検証元」は、「Note.ClassDiagram」、「−」、「Class.name」となる。したがって、検証処理部108は、処理対象行の第1行に対応するモデル情報表110の行として、モデル情報表110の第1行と第2行とを抽出する。モデル情報表110の第1行と第2行とが検証元表10となる。
S102において、検証処理部108は、「検証項目106」の処理対象行の「検証対象一致条件1」、「検証対象一致条件2」、「検証対象」に合致するモデル情報表110の行を抽出する。検証処理部108が抽出したモデル情報表110の検証対象の行を検証元表10とする。
具体例では、「検証項目106」の処理対象行が第1行のとき、「検証対象一致条件1」、「検証対象一致条件2」、「検証対象」は、「Interaction.name」、「−」、「Interaction.message.receiveEvent.covered.name」となる。したがって、検証処理部108は、処理対象行の第1行に対応するモデル情報表110の行として、モデル情報表110の第4行と第6行とを抽出する。モデル情報表110の第4行と第6行とが検証対象抽出表20となる。
次に、検証処理部108は、検証対象抽出表20の各行について処理する。
S103において、検証処理部108は、検証対象抽出表20の全ての行について処理したかを判定する。検証処理部108は、検証対象抽出表20の全ての行について処理したと判定した場合(S103においてYES)、処理を終了する。検証処理部108は、検証対象抽出表20に、未処理の行があると判定した場合(S103においてNO)、S104に処理を進める。
S104において、検証処理部108は、検証対象抽出表20から処理する1行を選択する。そして、検証処理部108は、選択した行が、以下の条件(a)〜(c)(S105〜S107)に合致するか否かを判定する。
(a)の条件判定:
S105において、検証処理部108は、検証対象抽出表20から選択した1行について、以下の判定をする。「検証元一致条件1」で指定されたメタモデル要素(「抽出した検証元表10」の「メタモデル要素1種類」列または「メタモデル要素2種類」列または「メタモデル要素3種類」列)に対応した値(抽出した検証元表10の「要素1」列または「要素2」列または「要素3」列)と、「検証対象一致条件1」で指定されたメタモデル要素(「抽出した検証対象抽出表20」の「メタモデル要素1種類」列または「メタモデル要素2種類」列または「メタモデル要素3種類」列)に対応した値(「抽出した検証対象抽出表20」の「要素1」列または「要素2」列または「要素3」列)が等しいがどうか判定する。
具体的には、検証対象抽出表20の第1行(モデル情報表110の第4行に相当)の「検証元一致条件1」「Note.ClassDiagram」は「sample」であり、「抽出した検証元表10」の第1行(モデル情報表110の第1行に相当)の「Note.ClassDiagram」は「sample」であり、値が等しいと判定される。
S105において、値が等しくないと判定された場合、S103に戻る。
S105において、値が等しいと判定された場合、S106に進む。
抽出した検証元表10が複数行ある場合、検証処理部108は、等しいと判定される行が見つかるまで処理を行い、等しいと判定される行がない場合には、値が等しくないと判定する。例えば、次に説明するS106の判定を行う場合には、S105における判定が等しいとされた検証元表10の行についてのみ判定を行う。
(b)の条件判定:
S106において、検証処理部108は、検証対象抽出表20から選択した上記1行について、以下の判定をする。
S106において、検証処理部108は、検証対象抽出表20から選択した上記1行について、以下の判定をする。「検証元一致条件2」で指定されたメタモデル要素(「抽出した検証元表10」の「メタモデル要素1種類」列または「メタモデル要素2種類」列または「メタモデル要素3種類」列)に対応した値(抽出した検証元表10の「要素1」列または「要素2」列または「要素3」列)と、「検証対象一致条件2」で指定されたメタモデル要素(「抽出した検証対象抽出表20」の「メタモデル要素1種類」列または「メタモデル要素2種類」列または「メタモデル要素3種類」列)に対応した値(「抽出した検証対象抽出表20」の「要素1」列または「要素2」列または「要素3」列)が等しいかどうか判定する。
具体的には、検証対象抽出表20の第1行(モデル情報表110の第4行に相当)の「検証元一致条件2」「−」であり、「抽出した検証元表10」の第1行(モデル情報表110の第1行に相当)の「検証元一致条件2」「−」であるため、条件判定する必要がなく、値が等しいと判定される。
S106において、値が等しくないと判定された場合、S103に戻る。
S106において、値が等しいと判定された場合、S107に進む。
(c)の条件判定:
S107において、検証処理部108は、検証対象抽出表20から選択した上記1行について、以下の判定をする。
S107において、検証処理部108は、検証対象抽出表20から選択した上記1行について、以下の判定をする。「検証元」で指定されたメタモデル要素(「抽出した検証元表10」の「メタモデル要素1種類」列または「メタモデル要素2種類」列または「メタモデル要素3種類」列)に対応した値(抽出した検証元表10の「要素1」列または「要素2」列または「要素3」列)と、「検証対象」で指定されたメタモデル要素(「抽出した検証対象抽出表20」の「メタモデル要素1種類」列または「メタモデル要素2種類」列または「メタモデル要素3種類」列)に対応した値(「抽出した検証対象抽出表20」の「要素1」列または「要素2」列または「要素3」列)が等しいかどうか判定する。
具体的には、検証対象抽出表20の第1行(モデル情報表110の第4行に相当)の「検証対象」「Class.name」は値が「ClassB」であり、「抽出した検証元表10」の第2行(モデル情報表110の第2行に相当)の「検証元」「Class.name」は値が「ClassB」であるため、値が等しいと判定される。
S106において、値が等しくないと判定された場合、検証結果が違反であることを意味し、S108に進む。
S106において、値が等しいと判定された場合、S103に戻る。
S108において、検証処理部108は、検証結果が違反となった検証対象抽出表20の行(すなわち、S105、S106、S107の条件に該当した行)を含む違反結果表109を生成する。違反結果表109が既に生成済の場合は、検証処理部108は、検証結果が違反であると判定された検証対象抽出表20の行(すなわち、S105、S106、S107の条件に該当した行)を違反結果表109」に追加する。
以上のように、検証処理部108による検証処理の結果、検証処理部108は違反結果表109を生成し、出力する。
リスト表示部114は、検証処理部108から出力された違反結果表109を表示装置に表示する。
図14は、本実施の形態に係る違反結果表109の構成の一例を示す図である。
図14に示すように、違反結果表109の構成は、モデル情報表110の構成と同様である。
以上のように、本実施の形態に係る整合性検証装置100は、S/Wの構造や振舞いを表現したモデルにおいて、書き方を定義するルール(メタモデル)に基づいて、2つのモデル間の整合性箇所を定義した検証項目を用いて、ユーザ(設計者)の作成したモデルの整合性の検証を実行する。
そのために、本実施の形態に係る整合性検証装置100は、モデルから整合性検証の対象になるモデル情報生成手段と、モデル情報表と検証項目から整合性に違反している箇所を検出する検証処理部と、違反結果を表示するリスト表示手段を設ける。
本実施の形態に係る整合性検証装置100によれば、任意の異なる種類のダイアグラム間での、任意の要素に対する整合性を検証することができるので、ユーザが設定したモデル間の要素の整合性の検証を自動化し、モデル間の整合性検証作業の効率化が可能である。
実施の形態2.
本実施の形態では、主に、実施の形態1と異なる点について説明する。
実施の形態1では、「メタモデル(要素定義)103」と「メタモデル(記法定義)104」が変更された場合、「検証項目106」の記述を変更する必要がある。本実施の形態では、メタモデルが変更された場合であっても、自動的に検証項目106を生成することにより、整合性検証を実施する機能について説明する。
図15は、本実施の形態に係る整合性検証装置100aを示すブロック構成図である。
実施の形態1で説明した構成部と同様の機能を有する構成部については、同一の符号を付し、その説明を省略する場合がある。
図15に示すように、整合性検証装置100aは、図1に示す整合性検証装置100に加えて、検証対象表121、メタモデル対応表122、検証項目生成部124を備える。
検証対象表121は、整合性検証で正とする要素の前提条件である「検証元一致条件1」、「検証元一致条件2」、正とする要素である「検証元」、検証対象要素の前提条件である「検証対象一致条件1」、「検証対象一致条件2」、検証対象とする要素「検証対象」から構成される。検証対象表121は、整合性検証で正となる要素と、検証対象となる要素との対応を、メタレベルのメタモデル要素より上位の情報により定義する表である。
図16は、本実施の形態に係る検証対象表121の一例を示す図である。
検証対象表121の行4では、ステートマシンモデルにおいて「ステートマシンモデル名」と「クラス名」とが等しいことを前提として「メソッド名」を正として、シーケンスモデルの「シーケンスモデル名」と「クラス名」とが等しい「メソッド名」を検証対象とすることを示している。
これらの「ステートマシンモデル名」、「クラス名」、「シーケンスモデル名」、「メソッド名」等による定義は、メタレベルのメタモデル要素より上位の情報による定義であり、例えば、モデル名である「モデル呼称」、要素名である「要素呼称」、要素のメンバである「メンバ呼称」から構成され、異なるダイアグラム間で整合する箇所を定義するものである。
メタモデル対応表122は、メタレベルのメタモデル要素より上位の情報と、メタモデルで定義されたメタモデル要素である「メタモデル定義要素」、メタモデルで定義されたメンバである「メタモデル定義メンバ」とを対応付けたものである。
つまり、モデル名である「モデル呼称」、要素名である「要素呼称」、要素のメンバである「メンバ呼称」と、メタモデルで定義されたメタモデル要素である「メタモデル定義要素」、メタモデルで定義されたメンバである「メタモデル定義メンバ」とを対応付けたものである。メタモデル対応表122は、「モデル呼称」、「要素呼称」、「メンバ呼称」の組み合わせと「メタモデル定義要素」、「メンバモデル定義メンバ」の組み合わせの対応を定義する表である。
したがって、メタモデル要素が変更された場合であっても、メタモデル対応表122の「メタモデル定義要素」、「メンバモデル定義メンバ」を変更することで、検証項目106を生成することができる。
図17は、本実施の形態に係るメタモデル対応表122の一例を示す図である。
例えば、メタモデル対応表122の行3では、「クラスモデル名」、「クラス名」、「メソッド名」の組み合わせが、メタモデル定義の「Class.Operation.name」に対応することを示している。
次に、検証項目生成部124の動作について説明する。
検証項目生成部124は、「検証対象表121」、「メタモデル対応表122」を用いて、「検証項目106」を生成する。
検証項目生成部124による検証項目生成方法では、以下の手順(1)〜(4)を「検証対象表121」の全行に対して実行することにより実現される。検証項目生成部124は、例えば、検証項目生成プログラムを処理装置などのハードウェア資源を用いて実行することにより、検証条件付加処理を実現する。
(1)検証項目生成部124は、「検証対象表121」の「検証元一致条件1」、「検証元一致条件2」、「検証元」の組み合わせと、「メタモデル対応表122」の「モデル呼称」、「要素呼称」、「メンバ呼称」の組み合わせとが同一の行を「メタモデル対応表122」から抽出する。抽出した行を検証元抽出行125とする。
例えば、具体例として、検証対象表121の行2について処理する場合、「検証元一致条件1」、「検証元一致条件2」、「検証元」の組み合わせが「クラスモデル名」、「クラス名」、「メソッド名」であるので、「メタモデル対応表122」の行3を検証元抽出行125として抽出する。
(2)検証元抽出行125の「メタモデル定義要素」の値を「検証項目106」の「検証元」に設定する。検証項目106において、「検証元」に値を設定した行を設定行1061とする。設定行1061には、「検証元一致条件1」、「検証元一致条件2」も設定する。
具体例では、検証元抽出行125の「メタモデル定義要素」の値が「Class.Operation.name」であるので、「Class.Operation.name」を「検証項目106」(図3参照)の設定行1061の「検証元」に設定する。「クラスモデル名」、「クラス名」も設定行1061の「検証元一致条件1」、「検証元一致条件2」に設定する。
(3)「検証対象表121」の「検証対象一致条件1」、「検証対象一致条件2」、「検証対象」の組み合わせと、「メタモデル対応表122」の「モデル呼称」、「要素呼称」、「メンバ呼称」の組み合わせとが同一の行を、「メタモデル対応表122」から抽出する。抽出した行を検証対象抽出行126とする。
例えば、具体例として、検証対象表121の行2について処理する場合、「検証対象一致条件1」、「検証対象一致条件2」、「検証対象」の組み合わせが「シーケンスモデル名」、「クラス名」、「メソッド名」であるので、「メタモデル対応表122」の行6を検証対象抽出行126として抽出する。
(4)検証対象抽出行126の「メタモデル定義要素」の値を「検証項目106」の設定行1061の「検証対象」に設定する。設定行1061には、「検証対象一致条件1」、「検証対象一致条件2」も設定する。
具体例では、検証対象抽出行126の「メタモデル定義要素」の値が「Interraction.message.name」であるので、「Interraction.message.name」を「検証項目106」(図3参照)の上記設定行1061の「検証対象」に設定する。「シーケンスモデル名」、「クラス名」も設定行1061の「検証対象一致条件1」、「検証対象一致条件2」に設定する。
本実施の形態に係る整合性検証装置100aは、検証項目とメタモデル要素の対応指定機能により、メタモデル対応表122を作成するので、特定メタモデルに対して非依存にすることができる。
本実施の形態に係る整合性検証装置100aによれば、メタレベルより上位の情報で定義された検証対象要素と、メタレベルのメタモデル情報との対応を記述することで、メタモデルが変更された場合、検証項目の修正が省略でき、さらに検証作業の効率化が可能である。
実施の形態3.
本実施の形態では、主に、実施の形態1,2と異なる点について説明する。
実施の形態1では、整合違反箇所は表形式で出力され、モデル107との対応関係は表示されない。本実施の形態では、モデル107上に違反箇所を自動ハイライト表示させる機能について説明する。
図18は、本実施の形態に係る整合性検証装置100bを示すブロック構成図である。
実施の形態1で説明した構成部と同様の機能を有する構成部については、同一の符号を付し、その説明を省略する場合がある。
図18に示すように、整合性検証装置100bは、図1に示す整合性検証装置100に加えて、入力指定115、指定箇所生成部119、指定箇所117、ハイライト表示部116を備える。
入力指定115は、モデル107においてハイライトする違反箇所を指定する。例えば、整合性検証装置100bは入力指定受付部を有し、入力指定受付部は表示装置にハイライト箇所指定画面を表示する。また、入力指定受付部は、ハイライト箇所指定画面に対しユーザが入力したハイライトする箇所(要素名)を受け付け、受け付けたハイライトする箇所(要素名)を入力指定115として記憶装置に記憶する。例えば、ユーザは、クラス名であれば「ClassA」などを指定する。複数指定も可能とする。
指定箇所生成部119は、違反結果表109(図14参照)と、入力指定115とを入力する。指定箇所生成部119は、違反結果表109に対し、入力指定1152より指定された「指定要素種類」を追加し、指定箇所117を生成し、記憶装置に記憶する。「指定要素種類」には「入力指定115」で指定された要素のメタモデル要素が入る。
指定箇所生成部119は、入力指定15によって違反結果表109をフィルタリングし、その結果である指定箇所117を得る。
指定箇所生成部119は、入力指定115と違反結果表109とを入力し、指定箇所117を出力する。指定箇所生成部119は、以下の手順(1)〜(3)により、入力指定115と違反結果表109とに基づいて、指定箇所117を生成する。
処理手順(1)〜(3)は、以下の通りである。
(1)指定箇所生成部119は、違反結果表109から、入力指定115に含まれている要素名が「要素1」または「要素2」または「要素3」に該当する行を抽出する。
(2)指定箇所生成部119は、上記(1)で抽出した行を出力する。
(3)指定箇所生成部119は、上記(2)で出力した行に対し、「指定要素種類」の項目欄を追加する。指定箇所生成部119は、該当した列が「要素1」の場合は「メタモデル要素1種類」の値を、「要素2」の場合は「メタモデル要素2種類」の値を、「要素3」の場合は「メタモデル要素3種類」の値を、「指定要素種類」に出力する。
図19は、本実施の形態に係る指定箇所117の一例を示す図である。
ハイライト表示部116は、モデル107、メタモデル(記法定義)104、違反結果表109、指定箇所117を入力として、表示装置の表示画面に表示されたモデルに対して、「指定要素種類」に該当する特定箇所をハイライト表示する。
ハイライト表示部116は、「指定箇所117」(図19参照)の各行に対して、以下の処理(1),(2)を実行する。
(1)ハイライト表示部116は、「指定箇所117」の「メタモデル要素1種類」、「メタモデル要素2種類」、「メタモデル要素3種類」に該当する記法を「メタモデル(記法定義)104」から取得する。
(2)ハイライト表示部116は、「モデル107」から以下の条件に該当する箇所を抽出する。上記(1)で取得した記法で記載されている「モデル107」の各値が、「指定箇所117」の値と同じである箇所を抽出する。具体的には、上記(1)で「指定箇所117」の「メタモデル要素1種類」に対応する記法で記載された「モデル107」の値と「要素1」の値が同じであり、「指定箇所117」の「メタモデル要素2種類」に対応する記法で記載された「モデル107」の値と「要素2」の値が同じであり、「指定箇所117」の「メタモデル要素3種類」に対応する記法で記載された「モデル107」の値と「要素3」の値が同じである箇所を抽出する。
(3)ハイライト表示部116は、上記(2)で抽出した「モデル107」上の箇所で、かつ、「指定箇所117」の「指定要素種類」に該当するメタモデル要素種類を、処理装置によりハイライト表示する。
本実施の形態に係る整合性検証装置100bは、特定の違反箇所をモデル図上で自動的にハイライトするハイライト箇所指定機能を備える。
本実施の形態に係る整合性検証装置100bによれば、違反箇所確認の作業効率化が促進され、さらに検証作業の効率化が可能である。
上記実施の形態の説明では、複数の機能ブロックに分割して整合性検証装置100,100a,100bを構成したが、機能ブロックの構成は、上記実施の形態に限らず、他のどのような組み合わせで機能ブロックを構成しても構わない。
以上、本発明の実施の形態1〜3について説明したが、この実施の形態のうち、1つの部分を実施しても構わない。あるいは、この実施の形態のうち、2つ以上の部分を組み合わせて実施しても構わない。
なお、以上の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
10 検証元表、20 検証対象抽出表、100,100a,100b 整合性検証装置、103 メタモデル(要素定義)、104 メタモデル(記法定義)、105 モデル情報生成部、106 検証項目、107 モデル、108 検証処理部、110 モデル情報表、114 リスト表示部、116 ハイライト表示部、115 入力指定、117 指定箇所、121 検証対象表、122 メタモデル対応表、124 検証項目生成部、125 検証元抽出行、126 検証対象抽出行、901 演算装置、902 外部記憶装置、903 主記憶装置、904 通信装置、905 入出力装置、1061 設定行。

Claims (5)

  1. 1つのソフトウェア構造を複数の線図により可視化したモデルについて、前記複数の線図間の整合性を検証する整合性検証装置において、
    異なる線図間で整合する箇所を定義する検証対象表を記憶する検証対象表記憶部と、
    前記複数の線図の各線図に含まれる要素をメタモデル要素により定義するメタモデルに基づいて、前記検証対象表に定義された箇所について、前記要素を定義するメタモデル要素を対応付けたメタモデル対応表を記憶するメタモデル対応表記憶部と、
    前記検証対象表と前記メタモデル対応表とに基づいて、前記異なる線図間で整合するメタモデル要素の対応を検証項目として定義した検証項目表を生成する検証項目生成部と、
    前記検証項目生成部により生成された前記検証項目表を記憶する検証項目表記憶部と、
    前記モデルと前記メタモデルとに基づいて、前記要素を定義するメタモデル要素と、前記要素の値とを対応付けた対応表を生成する対応表生成部と、
    前記検証項目表と前記対応表とに基づいて、前記対応表のなかに前記検証項目表に合致しない要素があるか否かを処理装置により判定する検証処理部と
    を備えた整合性検証装置。
  2. 前記検証処理部は、
    前記対応表のうち前記検証項目表に合致しないと判定した要素の一覧を違反結果表として出力し、
    前記検証処理部により出力された前記違反結果表を表示装置に表示するリスト表示部を備えた請求項1に記載の整合性検証装置。
  3. 前記モデルを表示装置に表示するとともに、前記表示装置に表示された前記モデルのうち、前記検証項目表に合致しないと判定した要素に対応する部分をハイライト表示するハイライト表示部を備えた請求項1に記載の整合性検証装置。
  4. 1つのソフトウェア構造を複数の線図により可視化したモデルについて、前記複数の線図間の整合性を検証する整合性検証装置の整合性検証方法において、
    異なる線図間で整合する箇所を定義する検証対象表と、前記複数の線図の各線図に含まれる要素をメタモデル要素により定義するメタモデルに基づいて、前記検証対象表に定義された箇所について、前記要素を定義するメタモデル要素を対応付けたメタモデル対応表とに基づいて、前記異なる線図間で整合するメタモデル要素の対応を検証項目として定義した検証項目表を生成する検証項目生成ステップと、
    前記モデルと前記メタモデルとに基づいて、前記要素を定義するメタモデル要素と、前記要素の値とを対応付けた対応表を生成する対応表生成ステップと、
    前記検証項目生成ステップにより作成された前記検証項目表と、前記対応表とに基づいて、前記対応表のなかに前記検証項目表に合致しない要素があるか否かを処理装置により判定する検証処理ステップとを備えた整合性検証方法。
  5. 1つのソフトウェア構造を複数の線図により可視化したモデルについて、前記複数の線図間の整合性を検証するコンピュータである整合性検証装置に実行させる整合性検証プログラムにおいて、
    異なる線図間で整合する箇所を定義する検証対象表と、前記複数の線図の各線図に含まれる要素をメタモデル要素により定義するメタモデルに基づいて、前記検証対象表に定義された箇所について、前記要素を定義するメタモデル要素を対応付けたメタモデル対応表とに基づいて、前記異なる線図間で整合するメタモデル要素の対応を検証項目として定義した検証項目表を生成する検証項目生成処理と、
    前記モデルと前記メタモデルとに基づいて、前記要素を定義するメタモデル要素と、前記要素の値とを対応付けた対応表を生成する対応表生成処理と、
    前記検証項目生成処理により作成された前記検証項目表と、前記対応表とに基づいて、前記対応表のなかに前記検証項目表に合致しない要素があるか否かを処理装置により判定する検証処理とを備えた整合性検証プログラム。
JP2013172549A 2013-08-22 2013-08-22 整合性検証装置、整合性検証方法及び整合性検証プログラム Expired - Fee Related JP6164979B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013172549A JP6164979B2 (ja) 2013-08-22 2013-08-22 整合性検証装置、整合性検証方法及び整合性検証プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013172549A JP6164979B2 (ja) 2013-08-22 2013-08-22 整合性検証装置、整合性検証方法及び整合性検証プログラム

Publications (2)

Publication Number Publication Date
JP2015041285A JP2015041285A (ja) 2015-03-02
JP6164979B2 true JP6164979B2 (ja) 2017-07-19

Family

ID=52695397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013172549A Expired - Fee Related JP6164979B2 (ja) 2013-08-22 2013-08-22 整合性検証装置、整合性検証方法及び整合性検証プログラム

Country Status (1)

Country Link
JP (1) JP6164979B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05143304A (ja) * 1991-11-18 1993-06-11 Nec Corp 整合性検査方式
JP4667386B2 (ja) * 2004-09-24 2011-04-13 富士通株式会社 業務モデル図作成支援プログラム、業務モデル図作成支援方法、および業務モデル図作成支援装置

Also Published As

Publication number Publication date
JP2015041285A (ja) 2015-03-02

Similar Documents

Publication Publication Date Title
US8209742B2 (en) Computer-implemented method for obtaining a minimum biclique cover in a bipartite dataset
US9424168B2 (en) System and method for automatic generation of software test
JP2007334627A (ja) サービスベースソフトウェア設計支援方法及びそのための装置
JP2015130152A (ja) 情報処理装置及びプログラム
JP6873868B2 (ja) データ分析処理支援装置、及びデータ分析処理支援方法
US20140310248A1 (en) Verification support program, verification support apparatus, and verification support method
JP5936135B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
US8346793B1 (en) Techniques for suggesting correct identifiers
JP6164979B2 (ja) 整合性検証装置、整合性検証方法及び整合性検証プログラム
US9098661B1 (en) Extensible platform for back-annotation of target-specific characterization onto a model of a hardware system
US10666255B1 (en) System and method for compacting X-pessimism fixes for gate-level logic simulation
JP2012238235A (ja) プログラム検証装置及びプログラム
Luckow et al. Symbolic pathfinder v7
JP2013235508A (ja) オブジェクト指向プログラム生成装置、その方法、プログラム
JP7268759B2 (ja) テストデータ生成装置、テストデータ生成方法、及びプログラム
JP2007080049A (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
US9405514B1 (en) Process fragment management
JP2017151594A (ja) 支援装置、支援方法及びプログラム
US20110191395A1 (en) Reducing Image Footprints
JP4893811B2 (ja) 検証支援プログラム、および検証支援装置
JP2009053767A (ja) プログラム解析装置、および、プログラム解析方法
JP6335329B2 (ja) プログラム依存部可視化装置、方法、およびプログラム
JP6437396B2 (ja) トレース情報管理システム、方法、及びプログラム
JP5918102B2 (ja) 解析システム、解析装置、解析方法及び解析プログラム
JP6121558B2 (ja) プログラム図作成装置、プログラム図作成方法、及びプログラム図作成プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160617

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170307

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170428

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170620

R150 Certificate of patent or registration of utility model

Ref document number: 6164979

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees