(57)【要約】【課題】システムの挙動を容易に把握し、第三者が成果物を素早く確認することができるデータ処理装置、データ処理方法、およびプログラムを提供する。【解決手段】モデリング装置（１０）は、ソースコードを基に、プログラムの動作が複数の配置物の配置によって示される図に関する処理を行う処理部（２５）と、オブジェクトの取り得る状態が定義された定義ファイルを格納する記憶部（３０）と、記憶部の定義ファイルに基づいて、少なくとも、処理部によって処理される図のオブジェクトに対応した配置物に色を割り当てる割当部（２２）と、割当部によって割り当てられた色の配置物を含む図を表示する表示部（５０）とを有する。【選択図】図１
2010108221.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードを基に、プログラムの動作が複数の配置物の配置によって示される図に関する処理を行う処理部と、
オブジェクトの取り得る状態が定義された定義ファイルを格納する記憶部と、
前記記憶部の前記定義ファイルに基づいて、少なくとも、前記処理部によって処理される前記図の前記オブジェクトに対応した配置物に色を割り当てる割当部と、
前記割当部によって割り当てられた色の配置物を含む前記図を表示する表示部と
を有するデータ処理装置。
【請求項２】
前記複数のオブジェクトは、所定数のオブジェクトによってグループ化され、
前記割当部は、前記グループ化された前記オブジェクトに対応した配置物に色を割り当てる
請求項１記載のデータ処理装置。
【請求項３】
前記図は、シーケンス図を含み、
前記割当部は、前記パラメータの前記処理部の処理による時間変化に応じて、前記オブジェクトに対応した配置物の色を変更する
請求項１または２記載のデータ処理装置。
【請求項４】
前記表示部に表示される前記シーケンス図の各配置物に対して深度を設定する深度設定部を有する
請求項３に記載のデータ処理装置。
【請求項５】
前記シーケンス図の各配置物を前記表示部に３次元的に表示させる可視化部を有する
請求項３または４記載のデータ処理装置。
【請求項６】
ソースコードを基に、プログラムの動作が複数の配置物の配置によって示される図に関する処理を行うデータ処理方法であって、
オブジェクトの取り得る状態が定義された定義ファイルを格納する第１のステップと、
前記第１のステップにおける前記定義ファイルに基づいて、少なくとも、前記図の前記オブジェクトに対応した配置物に色を割り当てる第２のステップと、
前記第２のステップによって割り当てられた色の配置物を含む前記図を表示する第３のステップと
を有するデータ処理方法。
【請求項７】
ソースコードを基に、プログラムの動作が複数の配置物の配置によって示される図に関する処理を行うプログラムであって、
オブジェクトの取り得る状態が定義された定義ファイルを格納する第１の処理と、
前記第１の処理における前記定義ファイルに基づいて、少なくとも、前記図の前記オブジェクトに対応した配置物に色を割り当てる第２の処理と、
前記第２の処理によって割り当てられた色の配置物を含む前記図を表示する第３の処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＭＬ（Unified Modeling Language）標準に準拠したシーケンス図等を用いてモデリングを行うことができるデータ処理装置、データ処理方法、およびプログラムに関するものである。
【背景技術】
【０００２】
ＵＭＬ標準に準拠したオブジェクト指向プログラミングによるソフトウェア開発が盛んに行われている。ソフトウェア開発に加え、説明用の資料作成、デバッキング等を容易とするため、ＵＭＬ標準の定める複数のモデル図からソースコードを作成可能な技術が開示されている（特許文献１参照）。
【特許文献１】特開２００４−７０８１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１が開示する技術は、小規模または中規模程度のシステム開発には効果的であるが、巨視的な視点でシステムの挙動を把握しづらく、大規模のシステム開発では、第三者が成果物を素早く確認することが困難である。なお、成果物とは、ソフトウェア開発の結果をいう。
【０００４】
本発明は、システムの挙動を容易に把握し、第三者が成果物を素早く確認することができるデータ処理装置、データ処理方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明のデータ処理装置は、ソースコードを基に、プログラムの動作が複数の配置物の配置によって示される図に関する処理を行う処理部と、オブジェクトの取り得る状態が定義された定義ファイルを格納する記憶部と、前記記憶部の前記定義ファイルに基づいて、少なくとも、前記処理部によって処理される前記図の前記オブジェクトに対応した配置物に色を割り当てる割当部と、前記割当部によって割り当てられた色の配置物を含む前記図を表示する表示部とを有する。
【０００６】
好適には、前記複数のオブジェクトは、所定数のオブジェクトによってグループ化され、前記割当部は、前記グループ化された前記オブジェクトに対応した配置物に色を割り当てる。
【０００７】
好適には、前記図は、シーケンス図を含み、前記割当部は、前記パラメータの前記処理部の処理による時間変化に応じて、前記オブジェクトに対応した配置物の色を変更する。
【０００８】
好適には、前記表示部に表示される前記シーケンス図の各配置物に対して深度を設定する深度設定部を有する。
【０００９】
好適には、前記シーケンス図の各配置物を前記表示部に３次元的に表示させる可視化部を有する。
【００１０】
本発明のデータ処理方法は、ソースコードを基に、プログラムの動作が複数の配置物の配置によって示される図に関する処理を行うデータ処理方法であって、オブジェクトの取り得る状態が定義された定義ファイルを格納する第１のステップと、前記第１のステップにおける前記定義ファイルに基づいて、少なくとも、前記図の前記オブジェクトに対応した配置物に色を割り当てる第２のステップと、前記第２のステップによって割り当てられた色の配置物を含む前記図を表示する第３のステップとを有する。
【００１１】
本発明のプログラムは、ソースコードを基に、プログラムの動作が複数の配置物の配置によって示される図に関する処理を行うプログラムであって、オブジェクトの取り得る状態が定義された定義ファイルを格納する第１の処理と、前記第１の処理における前記定義ファイルに基づいて、少なくとも、前記図の前記オブジェクトに対応した配置物に色を割り当てる第２の処理と、前記第２の処理によって割り当てられた色の配置物を含む前記図を表示する第３の処理とをコンピュータに実行させる。
【発明の効果】
【００１２】
本発明によれば、システムの挙動を容易に把握し、第三者が成果物を素早く確認することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態を図面に関連付けて説明する。
【００１４】
図１は、本発明の実施形態に係るデータ処理装置としてのモデリング装置の構成例を示す概略ブロック図である。
図１に図示するモデリング装置１０は、ＣＰＵ２０、記憶部３０、操作部４０、および表示部５０を有する。
【００１５】
モデリング装置１０は、ソースコードを解析し、シーケンス図やクラス図等を作成することで、開発されたソフトウェアの分析が可能な装置である。モデリング装置１０は、ＵＭＬ標準に準拠したオブジェクト指向プログラミングにより、ソフトウェア開発を行うことも可能である。モデリング装置１０には、オブジェクト指向プログラミング言語として、例えば、Ｊａｖａ（登録商標）、Ｃ、Ｃ＋＋を採用することができる。
【００１６】
ＣＰＵ２０は、操作部４０から入力されたユーザの指示に基づいて、モデリングに関する処理を行う。ＣＰＵ２０は、ユーザによって記述されたシーケンス図をプログラム言語に準拠したソースコードに変換する。そして、ＣＰＵ２０は、ソースコードをコンパイルして、プログラムを実行する。この他、ＣＰＵ２０は、記憶部３０とのアクセスの調停、表示部５０の表示制御等、モデリング装置１０全般の制御を行う。ＣＰＵ２０の詳細については、後述する。
【００１７】
記憶部３０は、ランダムアクセス可能なメモリやハードディスクによって構成されている。記憶部３０には、シーケンス図の作成時に使用する定義ファイル３１、オペレーティングシステム、Ｊａｖａ（登録商標）等のプログラム、コンパイラなどが格納されている。記憶部３０には、プログラムの処理過程で生じる一時的なデータ等も格納される。
【００１８】
操作部４０は、たとえば、キーボードやマウス等の入力デバイスによって構成されている。操作部４０は、ユーザによる操作を操作に応じた信号に変換して、この信号をＣＰＵに出力する。
【００１９】
表示部５０は、たとえば、液晶ディスプレイによって構成されている。表示部５０は、ＣＰＵ２０から入力された映像信号に基づいた種々の情報を表示する。
【００２０】
ここで、分析の結果として表示に利用されるシーケンス図について説明する。
図２は、本発明の実施形態に係るシーケンス図について説明するための図である。
【００２１】
図２に図示するシーケンス図６０は、オブジェクト６１、生命線６２、活性化区間６３、メッセージ６４によって構成されている。この他、シーケンス図６０には、停止記号（不図示）等も含まれる。本実施形態では、シーケンス図の各構成要素を単にアイテム（配置物）ともいう。
【００２２】
なお、オブジェクトとは、データを扱うための関数（メソッド）を一つのクラスをインスタンス化したものである。クラスとは、オブジェクト指向プログラミングにおいて、データとその操作手順であるメソッドを纏めてオブジェクトのひな形を定義したものである。
【００２３】
シーケンス図６０は、システム内でコラボレーションを行うオブジェクトグループ間の相互作用をアイテムを用いて視覚的に表現したものである。図２に図示するように、シーケンス図６０は、ウインドウ５１上に配置されたアイテムによって記述される。
【００２４】
一般的なシーケンス図は、Ｘ−Ｙ平面の２次元で表示される。これに対し、モデリング装置１０では、シーケンス図６０が、Ｘ−Ｙ−Ｚ面の３次元で表示される。これにより、オブジェクト６１を対象とするアイテム等から離れた位置に配置する必要がなくなる。これに加え、視点の移動により、ミクロ的にもマクロ的にもシステムの挙動を把握することができる。特に、不具合周辺部でのシステムの挙動に注目することができる。
【００２５】
本実施形態では、各階層のレベルを「深度」と表現する。深度は、オブジェクト６１の表示または非表示を判断するための尺度として使用される。一定の深度以上のオブジェクト６１を非表示とすることで、マクロ的なシステムの把握の際に、重要性のある情報のみを把握し、繁雑さを軽減することができる。本実施形態では、深度４以上のオブジェクト６１が非表示となるように設定されている。これにより、図２には、深度１から深度３までのオブジェクト６１が表示されている。図２の破線領域Ｃに図示する深度４のオブジェクト６１は、非表示であることを示している。
【００２６】
シーケンス図の作成時には、モデリング装置１０によって、シーケンス図６０が自動的に生成される。これらの処理は、実行時のログと状態定義ファイルとを参照して行われる。そして、ユーザは、この生成されたシーケンス図６０を見やすいように、視点を３次元座標で設定する。
【００２７】
モデリング装置１０では、内部パラメータに対応して定義された状態毎に、全てのオブジェクト６１に対して事前に決定した色を割り当てることができる。この状態とは、パラメータに格納される値、インスタンスの有無、インスタンス化されるサブクラスの種類、オブジェクト６１が含む任意のオブジェクトインスタンスの数等を指す。この状態は、ユーザによって定義され、定義ファイル３１に書き込まれる。
【００２８】
図２の例では、深度１のオブジェクト６１には緑色が割り当てられ、深度２のオブジェクト６１にはピンク色が割り当てられる。
【００２９】
シーケンス図６０に基づいたプログラムが実行されると、各オブジェクト６１は、クラスが内包するパラメータによって、状態が時間と共に動的に変化する。一般的なシーケンス図は、上述した状態の定義がないため、プログラム内部の変動状況が把握しづらい。
【００３０】
これに対し、本実施形態のシーケンス図６０では、オブジェクト６１に色が割り当てられたため、時間の推移と共に変化するプログラム全体の内部の変動状況を容易に把握することができる。
【００３１】
プログラムの処理が進行するにつれて、オブジェクト６１の活性化区間６３の状態も時間と共に変化する。図２に図示する破線領域Ａの活性化区間６３では、状態が変化する状態変化点にて、この活性化区間６３の色が定義ファイル３１の定義よりに割り当てられた色（たとえば緑）に変化する。
【００３２】
オブジェクト６１に対する色の割当は、複数のオブジェクト６１を一纏めとしてグループ化し、グループ単位で色を割り当てることもできる。これにより、図２に図示する破線領域Ｂの活性化区間６３では、深度１のオブジェクト６１に連動し、深度３のオブジェクト６１の色が割り当てられた色に変化する。
【００３３】
無論、ライブラリの用途に応じて、グループ化されたオブジェクト６１に対して深度を個別に割り当てることもできる。
【００３４】
本実施形態では、図２の破線領域Ｄに図示するように、メソッドに対して設定された深度とオブジェクトとに対し、この深度の合計が規定値以上となった場合には、メソッドを非表示にすることができる。この規定値は好適に設定することができる。
【００３５】
図１に図示するＣＰＵ２０は、次のように構成されている。具体的には、図１に図示するように、ＣＰＵ２０は、状態取得部２１、割当部２２、深度設定部２３、可視化部２４、および処理部２５を有する。
【００３６】
状態取得部２１は、オブジェクトメソッド、シーケンス図６０の状態変化の表示に関連したオブジェクト６１の種類、その数およびその状態を取得する。状態取得部２１は、予め用意された任意の区間、任意のシーケンスでの実行時ログを分析し、その区間でオブジェクト６１の生成数、タイミング等をデータベース化する。これらの状態取得部２１による処理は、実行時ログとソースコードの分析プロセス中に行われる。
【００３７】
割当部２２は、記憶部３０の定義ファイル３１を参照し、定義ファイル３１に基づいてオブジェクト６１に色を割り当てる。割当部２２は、ユーザによってグループ化されたオブジェクト６１毎に色を割り当てることもできる。
【００３８】
深度設定部２３は、一定の深度以上のオブジェクト６１を非表示とする。
【００３９】
可視化部２４は、３次元のシーケンス図６０を表示部５０に表示させる。可視化部２４は、シーケンス図６０における描画領域の生成およびその初期化を行う。
【００４０】
コラボレーション図もシーケンス図と同様に、割当部２２によってオブジェクトに色が割り当てられる。可視化部２４は、このコラボレーション図を表示部５０に表示させ、この描画領域の生成およびその初期化を行う。なお、コラボレーション図は、オブジェクト６１間の繋がりを表したものである。可視化部２４は、記憶部３０の定義ファイル３１の設定を参照し、たとえば、深度４以上のオブジェクト６１等のアイテムを非表示にすることもできる。
【００４１】
処理部２５は、ソースコードを実行する。
【００４２】
モデリング装置１０の動作を図３に関連付けて説明する。
図３は、本発明の実施形態に係るモデリング装置の動作例を示すフローチャートである。
【００４３】
以下の説明では、モデリング装置１０は、予めシーケンスを任意のパラメータ、任意の区間で実行したときの実行時ログを有し、同一のシーケンスを実行するものとする。
【００４４】
初期設定として、記憶部３０の定義ファイル３１には、シーケンス図６０に配置すべき全てのオブジェクト６１に対して、パラメータに対応した状態毎に色が割り当てられる旨の定義がされている。
【００４５】
更に、この定義ファイル３１には、一定以上の深度（たとえば深度４）のアイテムを非表示にするための設定が定義されている。その後、シーケンス図６０に基づいたプログラムが実行され、ユーザによるプログラムの動作確認が開始される。
【００４６】
なお、以下の処理において、可視化部２４は、シーケンス図６０を３次元で表示部５０に表示させるものとする。初めに、状態取得部２１は、表示するクラスメソッドを把握する（ステップＳＴ１）。
【００４７】
そして、ユーザが、ウインドウ上のカーソルを操作し、シーケンス図６０の表示させたい開始点までの処理を実行する指示をＣＰＵ２０に与えるものとする。処理部２５は、この指示を受けて、前述のシーケンス図６０の開始点までの処理を実行する（ステップＳＴ２）。
【００４８】
その後、可視化部２４は、コラボレーション図の描画領域を生成し、この描画領域を初期化する（ステップＳＴ３）。状態取得部２１は、シーケンス図６０に生成されているオブジェクト６１の種類、その数およびその状態を取得する（ステップＳＴ４）。
【００４９】
可視化部２４は、現状で生成されたオブジェクト６１に対し、コラボレーション図を生成し、これを表示部５０に表示させる（ステップＳＴ５）。このときのオブジェクト６１等の配置のＸ座標、Ｙ座標は、可視化部２４によるシーケンス図６０の３次元表示に使用される。なお、各アイテムの配置は、好適に変更することができる。
【００５０】
次に、可視化部２４は、シーケンス図の描画領域を生成し、この描画領域を初期化する（ステップＳＴ６）。ただし、可視化部２４は、この初期化の際には、現時点でのシーケンス図６０における実行状態の表示も初期化する。
【００５１】
この初期化後、ユーザは、所望する任意の単位量だけ処理を実行する指示をＣＰＵ２０に与えるものとする。処理部２５は、この指示を受けて、任意の単位量だけ、これを処理する（ステップＳＴ７）。そして、状態取得部２１は、シーケンス図６０に生成されているオブジェクト６１の種類、その数およびその状態を取得する（ステップＳＴ８）。
【００５２】
その後、状態取得部２１は、シーケンス図６０に生成されているオブジェクトの数が増加したか否かを判別する（ステップＳＴ９）。
【００５３】
ステップＳＴ９において、オブジェクト６１の数が増加していない場合には（ＮＯ）、深度設定部２３は、シーケンス図６０のＺ方向に一層追記する（ステップＳＴ１０）。これにより、アイテムが３次元的に、シーケンスの続きが描画される。このとき、可視化部２４が、記憶部３０の定義ファイル３１の設定を参照し、たとえば、深度４以上のオブジェクト６１等のアイテムを非表示にすることもできる。
【００５４】
ＣＰＵ２０は、ユーザからの入力を受け付け（ステップＳＴ１１）、ステップＳＴ７の処理が任意の終了点であれば、一連の処理が終了する（ステップＳＴ１２）。
【００５５】
一方、ステップＳＴ９において、オブジェクト６１の数が増加した場合には（ＹＥＳ）、コラボレーション図にオブジェクトが追記され（ステップＳＴ１３）、割当部２２は、記憶部３０の定義ファイル３１を参照し、定義ファイル３１に基づいてオブジェクト６１に色を割り当てる。なお、追加されるアイテムの一も好適に設定可能である。
【００５６】
このとき、ユーザによってグループ化されたオブジェクト６１毎に色を割り当てることもできる。そして、可視化部２４は、シーケンス図６０を再描画する（ステップＳＴ１４）。その後、ステップＳＴ１０の処理が実行される。
【００５７】
以上説明したように、本実施形態によれば、シーケンス図のオブジェクトに色が割り当てられるため、システムの挙動を容易に把握し、成果物を素早く把握することができる。シーケンス図が３次元で表示されるため、オブジェクトを対象とするアイテムから離れた位置に配置する必要がなくなるだけではなく、視点の移動により、ミクロ的にもマクロ的にもシステムの挙動を把握することができる。オブジェクト６１等をグループ化することができるため、定義される状態の数を削減することができる。
【００５８】
以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ２０等のコンピュータで実行するように構成することも可能である。このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし、上記プログラムを実行するように構成可能である。
【００５９】
なお、ＣＰＵ２０の各構成要素は、ＣＰＵ２０の行う処理を説明するためのものに過ぎない。上述した各ステップ（ＳＴ１〜ＳＴ１４）の処理は、ソフトウェア的に処理されるが、その一部あるいは全てをハードウェア的に処理することもできる。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施形態に係るデータ処理装置としてのモデリング装置の構成例を示す概略ブロック図である。
【図２】本発明の実施形態に係るシーケンス図ついて説明するための図である。
【図３】本発明の実施形態に係るモデリング装置の動作例を示すフローチャートである。
【符号の説明】
【００６１】
１０…モデリング装置、２０…ＣＰＵ、２１…状態取得部、２２…割当部、２３…深度設定部、２４…可視化部、２５…処理部、３０…記憶部、３１…定義ファイル、４０…操作部、５０…表示部、５１…ウインドウ、６１…オブジェクト、６２…生命線、６３…活性化区間、６４…メッセージ
【図１】
2010108221.tif 000003
【図２】
2010108221.tif 000004
【図３】
2010108221.tif 000005