(57)【要約】【課題】UMLモデル図(クラス図、シーケンス図、配置図)からハードウェア間で通信される情報を解析し、通信データに係るテスト仕様の情報を出力する通信データ解析装置、その方法、プログラムを提供する。【解決手段】UMLモデル図の情報を予め記憶する記憶部４０と、記憶部４０にあるUMLモデル図の情報を読み出し、クラスとイベントにたいして定められた順番でＩＤをそれぞれ割り振り、各イベントが異なるハードウェア上のクラスから送信されるか否かを解析し、通信データに係るテスト仕様として情報を出力する解析処理部５０とを備えることを特徴とする。【選択図】図１
2014056490.tif 000002
【特許請求の範囲】
【請求項１】
少なくともクラス図、シーケンス図および配置図を有するUMLモデル図の情報からテスト仕様の情報を出力する通信データ解析装置であって、
前記UMLモデル図の情報を予め記憶する記憶部と、
前記記憶部に記憶されている前記UMLモデル図から少なくともクラスとイベントの関係、イベントの引数サイズと引数、ハードウェアとクラスの関係、異なるハードウェア間の通信経路、各イベントの振る舞い情報を読み出し、クラスとイベントにたいして定められた順番でＩＤをそれぞれ割り振り、各イベントが異なるハードウェア上のクラスから送信されるか否かを解析し、クラスＩＤとクラス名、イベントＩＤとイベント名、イベント名の引数サイズと引数、イベントの使用可否、を通信データに係るテスト仕様の情報として出力する解析処理部と、
を備えることを特徴とする通信データ解析装置。
【請求項２】
少なくともクラス図、シーケンス図および配置図を有するUMLモデル図の情報からテスト仕様の情報を出力する通信データ解析方法であって、
コンピュータの記憶部に予め記憶されている前記UMLモデル図の情報から少なくともクラスとイベントの関係、イベントの引数サイズと引数、ハードウェアとクラスの関係、異なるハードウェア間の通信経路、各イベントの振る舞い情報を読み出す入力過程と、
該読み出した情報から、クラスとイベントにたいして定められた順番でＩＤをそれぞれ割り振りし、各イベントが異なるハードウェア上のクラスから送信されるか否かを解析する解析過程と、
該解析した情報から、クラスＩＤとクラス名、イベントＩＤとイベント名、イベント名の引数サイズと引数、イベントの使用可否を通信データに係るテスト仕様の情報として出力する出力過程と、
を備えていることを特徴とする通信データ解析方法。
【請求項３】
コンピュータを、
請求項１に記載の通信データ解析装置が有する解析処理部として機能させるための解析処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、UML（Unified Modeling Language）モデル図を解析し、通信データの情報（テスト仕様）を出力する通信データ解析装置、その方法、プログラムに関する。
【背景技術】
【０００２】
従来、オブジェクト指向プログラム開発において、UMLモデル図を基に開発したプログラムコード（プログラムのソースコード）の通信データに関する検証（結合テスト、システムテストなど）は、プログラムを動作させたときに、パケットキャプチャツール（Ｅｔｈｅｒｎｅｔ（登録商標）の場合）やプロトコルアナライザ(ＲＳ２３２Ｃの場合)を用いて、通信回線上を流れる通信データを捕獲（キャプチャ）し、通信データの意味合いをプログラムコードで参照しながら複数のUMLモデル図に記載の設計仕様と比較することで、良否を判定していた。
【０００３】
また、オブジェクト指向プログラム開発において、対象となるプログラムの動作を検証するシステムとして、例えば特許文献１が知られている。
特許文献１の検証システムでは、検証対象のプログラムの挙動を監視装置で監視し、UMLモデル図（シーケンス図）からテスト仕様を定め、検証対象の送受信される信号の種類や送受信タイミングを検証している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１５２４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の検証システムでは、プログラムの挙動については検証できるものの、プログラムがどのハードウェアの環境下で動作するか定義されておらず、分散環境（異なるハードウェア間での通信環境）で動作するプログラムの検証については考慮されていない。
【０００６】
上記の課題を解決するために、本発明では、UMLモデル図(クラス図、シーケンス図、配置図)からハードウェア間で通信される情報を解析し、通信データに係るテスト仕様の情報を出力する通信データ解析装置、その方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る通信データ解析装置は、少なくともクラス図、シーケンス図および配置図を有するUMLモデル図の情報からテスト仕様の情報を出力する通信データ解析装置であって、前記UMLモデル図の情報を予め記憶する記憶部と、前記記憶部に記憶されている前記UMLモデル図から少なくともクラスとイベントの関係、イベントの引数サイズと引数、ハードウェアとクラスの関係、異なるハードウェア間の通信経路、各イベントの振る舞い情報を読み出し、クラスとイベントにたいして定められた順番でＩＤをそれぞれ割り振り、各イベントが異なるハードウェア上のクラスから送信されるか否かを解析し、クラスＩＤとクラス名、イベントＩＤとイベント名、イベント名の引数サイズと引数、イベントの使用可否、を通信データに係るテスト仕様の情報として出力する解析処理部と、を備えることを特徴とする。
【０００８】
尚、ここでは、装置として表現されているが、方法、プログラムにより実現されるとしてもよい。
【発明の効果】
【０００９】
本発明によれば、シーケンス図及び配置図からハードウェア間で通信されるデータを解析し、通信データに係るテスト仕様を出力する。これにより、通信データを検証（テスト）するとき、実際の通信データの意味合いをプログラムコードで参照する必要がなくなり、実際の通信データとUMLモデル図の情報から解析した通信データに係るテスト仕様との比較をすることで通信データを検証（テスト）することができ、結果として検証（テスト）時の作業工数を削減することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明における通信データ解析装置の一例を示す図である。
【図２】入力（UMLモデル図）の一例を示す図である。
【図３】出力（通信データのテスト仕様）の一例を示す図である。
【図４】通信データ解析装置の解析処理を示すフローチャート図である。
【図５】検証（テスト）の方法を表す概念図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、詳細に説明する。
＜通信データ解析装置の構成概要＞
図１は、本発明における通信データ解析装置の一例を示す図である。
【００１２】
図１に示すように、通信データ解析装置１０は、UMLモデル図作成ツールなどによって、開発対象システムのクラス構造を表現するクラス図４１、開発対象システムの物理的側面を表現する配置図４２、開発対象システムのクラス間のメッセージの流れを表現するシーケンス図４３、などのUMLモデル図を作成し、これらのUMLモデル図の情報を記憶部４０に予め記憶している。解析処理部５０は、記憶部内のUMLモデル図の情報を読み出し、イベントごとに異なるハードウェア上のクラスから送信されるか否かと送信される情報を解析し、通信データに係るテスト仕様として情報を出力する。出力はＣＳＶ形式（Comma Separated Value format）または表形式の形で出力部３０に出力する。また、UMLモデル図作成ツールは、通信データ解析装置１０にあって、入力部２０からデータを入力しても良いし、外部の装置で作成したUMLモデル図の情報をネットワーク経由または電子媒体に格納して記憶部４０に記憶させても良い。
【００１３】
また、図示はしていないが、通信データ解析装置の機能を実現するために通信データ解析装置本体１０は、一般的なコンピュータのハードウェア資源として、例えば、ＣＰＵ、記憶装置、入出力装置、各種インターフェースなど、を周知の構成として備えており、当然ながら、上記のごとき機能を実現させるためのプログラムを上記記憶装置内に格納している。記憶部４０は上述の記憶装置により実現され、また、上述の解析処理部５０は、上述のＣＰＵ、記憶装置、各種インターフェース等のハードウェア資源と後述する処理フローを実行するプログラムにより実現される。プログラムは、例えば汎用のパーソナルコンピュータ、サーバ等の記憶装置内にその実行プログラムをインストールすることにより、本発明における各部の処理等を実現することができる。
【００１４】
さらに、通信データ解析装置は、キーボード、マウス、タッチパネル等のインターフェースを用いて実現される入力部２０と、液晶または有機EL等からなる表示パネルや音声出力用のスピーカー等を有し、各種情報を出力する出力部３０を備える。
【００１５】
また、入力部２０及び出力部３０は、通信データ解析装置本体１０のクライアント端末（図示せず）にその機能があってもよい。このときは、ネットワークを介して通信データ解析装置本体１０とクライアント端末が通信可能に接続されている。なお、ネットワークは、有線、無線を問わず既存の公衆網、ＬＡＮ、ＷＡＮなどを用いることができる。
＜UMLモデル図＞
＜クラス図＞
図２（a）は、本発明におけるクラス図の一例を示す図である。
【００１６】
図２（a）に示す例では、クラス名が”ClassA”であるクラスは、イベントとして、”Ea1(第一引数がint型、第二引数がshort型の配列(要素数5))”、”Ea2(引数なし)”、及び、”Ea3(第一引数がchar型)”を持つ。
【００１７】
クラス名が”ClassB”であるクラスは、イベントとして、”Eb1(引数なし)”、及び、”Eb2(第一引数がshort型)”を持つ。
クラス名が”ClassC”であるクラスは、イベントとして、”Ec1(第一引数がint型)”、及び、”Ec2(引数なし)”を持つ。
＜配置図＞
図２（ｂ）は、本発明における配置図の一実施例を示す図である。
【００１８】
図２（ｂ）に示す例では、ハードウェア名が”HardwareX”であるハードウェアには、ソフトウェア機能として、クラス名が”ClassA”であるクラスのソフトウェア機能、及び、クラス名が”ClassB”であるクラスのソフトウェア機能が実装される。
【００１９】
さらに、ハードウェア名が”HardwareY”であるハードウェアには、ソフトウェア機能として、クラス名が”ClassC”であるクラスのソフトウェア機能が実装される。
また、ハードウェア名が”HardwareX”であるハードウェアとハードウェア名が”HardwareY”であるハードウェアは通信経路を持つ。
＜シーケンス図＞
図２（ｃ）は、本発明におけるシーケンス図の一例を示す図である。
【００２０】
図２（ｃ）に示す例では、クラス名が”ClassA”であるクラスがイベント”Ea1”を受け取ると、クラス名が”ClassB”であるクラスに対してイベント”Eb1”を送信し、クラス名が”ClassC”であるクラスに対してイベント”Ec1(第一引数の値:123)”を送信する。
【００２１】
クラス名が”ClassB”であるクラスがイベント”Eb1”を受け取ると、クラス名が”ClassA”であるクラスに対してイベント”Ea2”を送信し、クラス名が”ClassC”であるクラスに対してイベント”Ec2”を送信する。
【００２２】
クラス名が”ClassC”であるクラスがイベント”Ec1”を受け取ると、クラス名が”ClassA”であるクラスに対してイベント”Ea3(第一引数の値:’A’)”を送信する。
＜通信データのテスト仕様＞
図３は、通信データのテスト仕様の一例を示す図である。
【００２３】
図３に示す例では、図２の情報から解析処理部５０が記憶部４０に記憶されているUMLモデル図の情報からイベントごとに異なるハードウェア上のクラスから送信されるか否かと送信される情報を解析し、図３の通信データのテスト仕様を出力する。
【００２４】
出力は、ＣＳＶ形式（Comma Separated Value format）または表形式の形で出力部３０に出力する。図３（ａ）がＣＳＶ形式の出力例であり、図３（ｂ）が表形式の出力例となる。
【００２５】
いずれも情報として、”クラスID”、”クラス名”、”イベントID”、”イベント名”、”引数サイズ”、”引数”,”使用”を持つ。
＜解析処理＞
図４は、解析処理部５０にて出力する際の解析処理を示すフローチャート図である。
【００２６】
解析処理では、UMLモデル図の情報から異なるハードウェア上のクラスからイベントが送信されるかどうかをチェックする（Ｓ１）。
異なるハードウェア上のクラスからイベントが送信されない場合、テスト仕様には出力されない（Ｓ1：ＮＯ）。
【００２７】
異なるハードウェア上のクラスからイベントが送信される場合、以下のＳ２〜Ｓ８の処理を行う（Ｓ1：ＹＥＳ）。
はじめに、UMLモデル図の情報から生成したプログラムコードと同じプログラム作成規約に基づき、クラス名に対してクラスＩＤを割り振る（Ｓ２）。たとえば、プログラム作成規約として、「クラスＩＤは、UMLモデル図に書かれたクラス名に対応して上から順番に0から始まる整数を割り振る」となっている。
【００２８】
次に、UMLモデル図から生成したプログラムコードと同じプログラム作成規約に基づき、イベント名に対してイベントＩＤを割り振る（Ｓ３）。
次に、UMLモデル図から各イベントの引数サイズ及び引数をテスト仕様として追加する（Ｓ４）。
【００２９】
次に、UMLモデル図の情報からイベントが異なるハードウェア上のクラスから送信されるかどうかをチェックする（Ｓ５）。
イベントが異なるハードウェア上のクラスから送信されない場合（Ｓ５：ＮＯ）、使用を”×”とし（Ｓ７）、テスト仕様に追加する（Ｓ８）。
【００３０】
イベントが異なるハードウェア上のクラスから送信された場合（Ｓ５：ＹＥＳ）、使用を”○”とし（Ｓ６）、テスト仕様に追加する（Ｓ８）。
＜入力→（解析処理）→出力＞
上述した図４のフロチャートの処理に沿って、図２のUMLモデル図の情報を入力として図３の出力までの処理について詳細に説明する。
【００３１】
”ClassB”は、異なるハードウェアのクラスからイベントが送信されないので、出力されない（Ｓ１：ＮＯ）。
”ClassA”と”ClassC”は、異なるハードウェアのクラスからイベントが送信されるので、出力される。この時、各クラスに対して、クラスIDを0から順番に以下のように割り振る（Ｓ２）。
【００３２】
”ClassA”:0、”ClassC”:1
次に、”ClassA”のイベントに対して、イベントIDを0から順番に以下のように割り振る（Ｓ３）。
【００３３】
”Ea1”:0、”Ea2”:1、”Ea3”:2
次に、”ClassC”のイベントに対して、イベントIDを0から順番に以下のように割り振る。
【００３４】
”Ec1”:0、”Ec2”:1
次に、各イベントの引数サイズを以下のように算出する。ここでは、char型:1バイト、short型:2バイト、int型:4バイトとしている。
【００３５】
”Ea1”:14(=4+(2*5))、”Ea2”:0、”Ea3”:1、”Ec1”:4、”Ec2”:0
次に、引数があるイベントに対して、引数を以下のように追加する。
”Ea1”:”int, short[5]”、”Ea3”:”char”、”Ec1”:”int”
次に、各イベントが異なるハードウェアのクラスから送信されるかをチェックし（Ｓ５）、送信される場合（Ｓ５：ＹＥＳ）、使用を”○”（Ｓ６）、送信されない場合（Ｓ５：ＮＯ）、使用を”×”とする（Ｓ７）と以下のようになる。
【００３６】
”Ea1”:”×”(シーケンス図にないため)
”Ea2”:”×”(シーケンス図にはあるが、異なるハードウェアから送信されない)
”Ea3”:”○”(“ClassC”がイベント”Ec1”を受け取った場合、送信される)
”Ec1”:”○”(“ClassA”がイベント”Ea1”を受け取った場合、送信される)
”Ec2”:”○”(“ClassB”がイベント”Eb1”を受け取った場合、送信される)
＜実施例の効果＞
以上のように、本発明を適用することにより、オブジェクト指向プログラム開発において、クラス図、シーケンス図、配置図を作成し、通信データ解析装置を使用することで、通信データのテスト仕様を出力させることで、検証（テスト）時の作業工数を削減することができる。
【００３７】
図５の検証（テスト）の方法を表す概念図で実施例の効果についてさらに説明する。
図５（ａ）は、従来の検証（テスト）の方法を表す概念図である。UMLモデル図を基に開発したプログラムコードの通信データに関する検証（結合テスト、システムテストなど）は、プログラムを動作させたときに、パケットキャプチャツール（Ｅｔｈｅｒｎｅｔ（登録商標）の場合）やプロトコルアナライザ(ＲＳ２３２Ｃの場合)を用いて、通信回線上を流れる通信データを捕獲（キャプチャ）し、通信データの意味合いをプログラムコードで参照しながら複数のUMLモデル図に記載の設計仕様と比較することで、検証する人が良否を判定していた。実際の通信データに含まれるクラスＩＤやイベントＩＤなどとプログラムコードの中で定義されたクラス名やイベント名を参照し、複数のUMLモデル図で作成されたクラスＩＤ、クラス名、イベントＩＤ、イベント名、引数、引数サイズなどの設計情報をテスト仕様として比較することで、良否判定を行っていた。そのため、モデルの変更（ハードウェアとクラスの関係変更やクラス・イベントの追加など）が生じた場合、ＩＤの情報も変更される可能性があり、毎回、プログラムコードと比較する必要があった。たとえば、あるクラスが追加されると、既存のクラス名に対応するＩＤが変更される可能性があった。
【００３８】
一方、図５（ｂ）は、本発明の通信データ解析装置を使った検証（テスト）の方法を表す概念図である。
従来の方法と比べ、以下のような特徴があり、結果として検証（テスト）時の作業工数を大幅に削減することができる。
【００３９】
（１）プログラムコードを参照する必要がない。
（２）複数のUMLモデル図の情報を見る必要がなく、通信データに係るテスト仕様の形で情報が集約されて出力される。
【００４０】
（３）UMLモデル図に間違いが無い前提とすれば、出力したテスト仕様と実際の通信データを比較ツールで比較させることで、良否判定を自動で行うことが可能である。
（４）モデルの変更（ハードウェアとクラスの関係変更やクラス・イベントの追加など）が生じた場合でも、変更したプログラムコードを参照する必要は無く、変更されたモデルに対して通信データ解析装置がテスト仕様として情報を出力する。
【符号の説明】
【００４１】
１０  通信データ解析装置本体
２０  入力部
３０  出力部
４０  記憶部
４１  クラス図データ
４２  配置図データ
４３  シーケンス図データ
５０  解析処理部
【図１】
2014056490.tif 000003
【図２】
2014056490.tif 000004
【図３】
2014056490.tif 000005
【図４】
2014056490.tif 000006
【図５】
2014056490.tif 000007