(57)【要約】  受付部（１１０）は、対象プログラムの実行履歴ファイルと前記対象プログラムのソフトウェア構造ファイルとを受け付ける。関連付け部（１２０）は、前記実行履歴ファイルのそれぞれの実行要素情報と前記ソフトウェア構造ファイルのそれぞれの構成要素情報とを互いに関連付けて関連付けファイルを生成する。判別部（１３０）は、前記関連付けファイルに基づいて前記ソフトウェア構造ファイルを参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素ファイルを生成する。可視化部（１４０）は、前記重要要素ファイルと前記ソフトウェア構造ファイルとに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する。
2019159397.tif 000002
【特許請求の範囲】
【請求項１】
対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である実行要素毎に実行要素情報を含む実行履歴ファイルと、前記対象プログラムの構造を表す情報として構成要素毎に構成要素情報を含むソフトウェア構造ファイルとを受け付ける受付部と、
前記実行履歴ファイルのそれぞれの実行要素情報と前記ソフトウェア構造ファイルのそれぞれの構成要素情報とを互いに関連付けて関連付けファイルを生成する関連付け部と、
前記関連付けファイルに基づいて前記ソフトウェア構造ファイルを参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素ファイルを生成する判別部と、
前記重要要素ファイルと前記ソフトウェア構造ファイルとに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する可視化部とを備えるソフトウェア可視化装置。
【請求項２】
前記ソフトウェア可視化装置は、前記実行履歴ファイルに基づいて、それぞれの重要要素の実行回数を重要度として算出する算出部を備え、
前記可視化部は、それぞれの重要要素を前記重要度に応じて強調させて前記可視化図を生成する
請求項１に記載のソフトウェア可視化装置。
【請求項３】
前記ソフトウェア可視化装置は、前記ソフトウェア構造ファイルに基づいて、それぞれの重要要素を評価して得られる評価指数を重要度として算出する算出部を備え、
前記可視化部は、それぞれの重要要素を前記重要度に応じて強調させて前記可視化図を生成する
請求項１に記載のソフトウェア可視化装置。
【請求項４】
前記判別部は、前記ソフトウェア構造ファイルに基づいて、それぞれの重要要素から影響を受ける影響要素を判別し、
前記可視化部は、前記影響要素をそれぞれの重要要素と区別した状態で強調させて前記可視化図を生成する
請求項１に記載のソフトウェア可視化装置。
【請求項５】
前記ソフトウェア構造ファイルは、前記対象プログラムの複数の構成要素情報と、前記対象プログラムとバージョンが異なる基準プログラムの複数の構成要素情報とを含み、
前記判別部は、前記ソフトウェア構造ファイルに基づいて、前記対象プログラムの複数の構成要素のうち前記基準プログラムのいずれの構成要素とも異なる変更要素を判別し、
前記可視化部は、前記変更要素をそれぞれの重要要素と区別した状態で強調させて前記可視化図を生成する
請求項１に記載のソフトウェア可視化装置。
【請求項６】
前記ソフトウェア可視化装置は、除外部を備え、
前記ソフトウェア構造ファイルは、前記対象プログラムの複数の構成要素情報と、前記対象プログラムとバージョンが異なる基準プログラムの複数の構成要素情報とを含み、
前記判別部は、前記ソフトウェア構造ファイルに基づいて、前記対象プログラムの複数の構成要素のうち前記基準プログラムのいずれの構成要素とも異なる変更要素を判別し、
前記除外部は、前記ソフトウェア構造ファイルに基づいて、前記変更要素と前記変更要素から影響を受ける影響要素とのいずれでもない重要要素を除外要素として判別し、
前記可視化部は、いずれの除外要素でもない重要要素のそれぞれを強調させて前記可視化図を生成する
請求項１に記載のソフトウェア可視化装置。
【請求項７】
前記関連付け部は、前記対象プログラムを複数回実行することによって得られる複数の実行履歴ファイルから２つ以上の実行履歴ファイルを選択し、選択した２つ以上の実行履歴ファイルのそれぞれの実行要素情報と前記ソフトウェア構造ファイルのそれぞれの構成要素情報とを互いに関連付けて前記関連付けファイルを生成する
請求項１から請求項６のいずれか１項に記載のソフトウェア可視化装置。
【請求項８】
受付部が、対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である実行要素毎に実行要素情報を含む実行履歴ファイルと、前記対象プログラムの構造を表す情報として構成要素毎に構成要素情報を含むソフトウェア構造ファイルとを受け付け、
関連付け部が、前記実行履歴ファイルのそれぞれの実行要素情報と前記ソフトウェア構造ファイルのそれぞれの構成要素情報とを互いに関連付けて関連付けファイルを生成し、
判別部が、前記関連付けファイルに基づいて前記ソフトウェア構造ファイルを参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素ファイルを生成し、
可視化部が、前記重要要素ファイルと前記ソフトウェア構造ファイルとに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する
ソフトウェア可視化方法。
【請求項９】
対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である実行要素毎に実行要素情報を含む実行履歴ファイルと、前記対象プログラムの構造を表す情報として構成要素毎に構成要素情報を含むソフトウェア構造ファイルとを受け付ける受付部と、
前記実行履歴ファイルのそれぞれの実行要素情報と前記ソフトウェア構造ファイルのそれぞれの構成要素情報とを互いに関連付けて関連付けファイルを生成する関連付け部と、
前記関連付けファイルに基づいて前記ソフトウェア構造ファイルを参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素ファイルを生成する判別部と、
前記重要要素ファイルと前記ソフトウェア構造ファイルとに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する可視化部
としてコンピュータを機能させるためのソフトウェア可視化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの構造の可視化に関するものである。
【背景技術】
【０００２】
プログラムの動作を理解するための手法およびプログラムの不具合を分析するための手法として、プログラムの実行履歴に基づいてプログラムの遷移情報を図示したり、注目したい箇所を絞り込んで表示したりする手法がある。【０００３】
特許文献１には以下のような手法が開示されている。
プログラム要素間の依存関係等を予め解析しておき、プログラム動作の調査範囲についてトレース情報を連続して抽出する。そして、プログラムの動作をソースコードレベルのトレースで仮想的に再現する。また、その際にトレース情報を表示する。
プログラムの構造情報を基にしてトレース情報のカテゴライズ及び情報の隠蔽を行い、情報の注目箇所に限った詳細化或いは概略化によって情報量の調節を実現する。
プログラムについてシーケンシャルな制御の流れおよびデータの流れをイベントトレースチャートとして視覚化し、これをソースコードと連動して表示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１０８６４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来手法では、実行された箇所にしか着目できない。そのため、実行されなかった重要な関数について、見落としてしまったり、理解を誤ってしまったりする。
また、実行された箇所が多い場合には絞り込まれる範囲が多くなる。そのため、どこを重点的に確認したらよいかがわからなくなってしまう。
さらに、実行頻度が低くても重要である要素を見落としてしまう可能性がある。【０００６】
本発明は、重要要素の見落としを防ぐことができるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明のソフトウェア可視化装置は、
対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である実行要素毎に実行要素情報を含む実行履歴ファイルと、前記対象プログラムの構造を表す情報として構成要素毎に構成要素情報を含むソフトウェア構造ファイルとを受け付ける受付部と、
前記実行履歴ファイルのそれぞれの実行要素情報と前記ソフトウェア構造ファイルのそれぞれの構成要素情報とを互いに関連付けて関連付けファイルを生成する関連付け部と、
前記関連付けファイルに基づいて前記ソフトウェア構造ファイルを参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素ファイルを生成する判別部と、
前記重要要素ファイルと前記ソフトウェア構造ファイルとに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する可視化部とを備える。
【発明の効果】
【０００８】
本発明によれば、重要要素の見落としを防ぐことが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１におけるソフトウェア可視化装置１００の構成図。
【図２】実施の形態１におけるソフトウェア可視化方法のフローチャート。
【図３】実施の形態１における実行履歴ファイル２０１を示す図。
【図４】実施の形態１におけるソフトウェア構造ファイル２０２を示す図。
【図５】実施の形態１における関連付け処理（Ｓ１１０）のフローチャート。
【図６】実施の形態１における関連付けファイル２０３を示す図。
【図７】実施の形態１における重要要素ファイル２０４を示す図。
【図８】実施の形態１における判別処理（Ｓ１２０）のフローチャート。
【図９】実施の形態１におけるコールグラフ２１０を示す図。
【図１０】実施の形態１におけるフローチャート２２０を示す図。
【図１１】実施の形態２におけるソフトウェア可視化装置１００の構成図。
【図１２】実施の形態２におけるソフトウェア可視化方法のフローチャート。
【図１３】実施の形態２における重要要素ファイル２０４を示す図。
【図１４】実施の形態２における判別処理（Ｓ２２０）のフローチャート。
【図１５】実施の形態２におけるコールグラフ２１０を示す図。
【図１６】実施の形態３におけるソフトウェア可視化方法のフローチャート。
【図１７】実施の形態３における重要要素ファイル２０４を示す図。
【図１８】実施の形態３における判別処理（Ｓ３２０）のフローチャート。
【図１９】実施の形態３における評価指数登録処理（Ｓ３２１）のフローチャート。
【図２０】実施の形態３におけるコールグラフ２１０を示す図。
【図２１】実施の形態４におけるソフトウェア可視化方法のフローチャート。
【図２２】実施の形態４における重要要素ファイル２０４を示す図。
【図２３】実施の形態４における判別処理（Ｓ４２０）のフローチャート。
【図２４】実施の形態４における影響要素登録処理（Ｓ４２６）のフローチャート。
【図２５】実施の形態４におけるコールグラフ２１０を示す図。
【図２６】実施の形態５におけるソフトウェア可視化方法のフローチャート。
【図２７】実施の形態５におけるソフトウェア構造ファイル２０２を示す図。
【図２８】実施の形態５における重要要素ファイル２０４を示す図。
【図２９】実施の形態５における判別処理（Ｓ５２０）のフローチャート。
【図３０】実施の形態５における変更要素判別処理（Ｓ５２７）のフローチャート。
【図３１】実施の形態５におけるコールグラフ２１０を示す図。
【図３２】実施の形態６におけるソフトウェア可視化方法のフローチャート。
【図３３】実施の形態６における関連付けファイル２０３を示す図。
【図３４】実施の形態６における関連付け処理（Ｓ６１０）のフローチャート。
【図３５】実施の形態７におけるソフトウェア可視化装置１００の構成図。
【図３６】実施の形態７におけるソフトウェア可視化方法のフローチャート。
【図３７】実施の形態７における重要要素ファイル２０４を示す図。
【図３８】実施の形態７における除外処理（Ｓ７３０）のフローチャート。
【図３９】各実施の形態におけるソフトウェア可視化装置１００のハードウェア構成図。
【発明を実施するための形態】
【００１０】
実施の形態および図面において、同じ要素および対応する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１１】
実施の形態１．
プログラムを構成する要素のうち実行された要素を重要要素として可視化する形態について、図１から図１０に基づいて説明する。
【００１２】
＊＊＊構成の説明＊＊＊
図１に基づいて、ソフトウェア可視化装置１００の構成を説明する。
ソフトウェア可視化装置１００は、プロセッサ１０１とメモリ１０２と補助記憶装置１０３と入出力インタフェース１０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００１３】
プロセッサ１０１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。例えば、プロセッサ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ１０２は揮発性の記憶装置である。メモリ１０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ１０２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ１０２に記憶されたデータは必要に応じて補助記憶装置１０３に保存される。
補助記憶装置１０３は不揮発性の記憶装置である。例えば、補助記憶装置１０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、またはフラッシュメモリである。補助記憶装置１０３に記憶されたデータは必要に応じてメモリ１０２にロードされる。
入出力インタフェース１０４は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース１０４はＵＳＢ端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。ＵＳＢはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略称である。
【００１４】
ソフトウェア可視化装置１００は、受付部１１０と関連付け部１２０と判別部１３０と可視化部１４０と出力部１５０といった要素を備える。これらの要素はソフトウェアで実現される。
【００１５】
補助記憶装置１０３には、受付部１１０と関連付け部１２０と判別部１３０と可視化部１４０と出力部１５０と記憶部１９１としてコンピュータを機能させるためのソフトウェア可視化プログラムが記憶されている。ソフトウェア可視化プログラムは、メモリ１０２にロードされて、プロセッサ１０１によって実行される。
さらに、補助記憶装置１０３にはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。ＯＳの少なくとも一部は、メモリ１０２にロードされて、プロセッサ１０１によって実行される。
つまり、プロセッサ１０１は、ＯＳを実行しながら、ソフトウェア可視化プログラムを実行する。
ソフトウェア可視化プログラムを実行して得られるデータは、メモリ１０２、補助記憶装置１０３、プロセッサ１０１内のレジスタまたはプロセッサ１０１内のキャッシュメモリといった記憶装置に記憶される。
【００１６】
メモリ１０２は記憶部１９１として機能する。但し、他の記憶装置が、メモリ１０２の代わりに、又は、メモリ１０２と共に、記憶部１９１として機能してもよい。
【００１７】
ソフトウェア可視化装置１００は、プロセッサ１０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ１０１の役割を分担する。
【００１８】
ソフトウェア可視化プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータで読み取り可能に記録（格納）することができる。
【００１９】
＊＊＊動作の説明＊＊＊
ソフトウェア可視化装置１００の動作はソフトウェア可視化方法に相当する。また、ソフトウェア可視化方法の手順はソフトウェア可視化プログラムの手順に相当する。
【００２０】
図２に基づいて、ソフトウェア可視化方法を説明する。
ステップＳ１０１において、受付部１１０は実行履歴ファイル２０１を受け付ける。
そして、受付部１１０は、実行履歴ファイル２０１を記憶部１９１に記憶する。
【００２１】
実行履歴ファイル２０１は、対象プログラムを実行することによって得られる。
対象プログラムは、可視化の対象となるプログラムである。
【００２２】
実行履歴ファイル２０１は、実行要素毎に実行要素情報を含む。
実行要素は、対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である。
構成要素の一例は、ファイル、クラス、関数および命令文である。
実行要素の一例は、関数および命令文である。
【００２３】
図３に基づいて、実行履歴ファイル２０１を説明する。
実行履歴ファイル２０１は、ＩＤとファイル名とクラス名と関数名と実行行とを互いに対応付けている。
ＩＤとファイル名とクラス名と関数名と行番号との組が実行要素情報である。
【００２４】
ＩＤは、実行要素情報を識別する識別子である。
関数名は、実行された関数を識別する。
クラス名は、関数が属するクラスを識別する。
ファイル名は、クラスが記述されたファイルを識別する。
実行行は、関数が呼び出された行であり、行番号で識別される。
【００２５】
図２に戻り、ステップＳ１０２から説明を続ける。
ステップＳ１０２において、受付部１１０はソフトウェア構造ファイル２０２を受け付ける。
そして、受付部１１０は、ソフトウェア構造ファイル２０２を記憶部１９１に記憶する。
【００２６】
ソフトウェア構造ファイル２０２は、対象プログラムを構造解析することによって得られる。
【００２７】
ソフトウェア構造ファイル２０２は、対象プログラムに含まれる構成要素毎に構成要素情報を含む。
【００２８】
図４に基づいて、ソフトウェア構造ファイル２０２を説明する。
ソフトウェア構造ファイル２０２は、ＩＤと要素名と種類名と親要素と定義ファイルと定義行と制御要素と依存要素とを互いに対応付けている。
ＩＤと要素名と種類名と親要素と定義ファイルと行番号と制御情報と依存要素との組が構成要素情報である。
【００２９】
ＩＤは、構成要素情報を識別する識別子である。
要素名は、構成要素を識別する。
種類名は、構成要素の種類を識別する。
親要素は、構成要素の上位の要素である。構成要素は親要素に属する。例えば、関数｛ｆｕｎｃ２｝はクラス｛ｃｌａｓｓ１｝に属している。また、クラス｛ｃｌａｓｓ１｝はファイル｛Ｆｉｌｅ１．ｈ｝に定義されている。
定義ファイルは、構成要素が定義されたファイルである。
定義行は、定義ファイルにおいて構成要素が定義されている行であり、行番号で識別される。
制御情報は、構成要素が有する制御構造の情報であり、制御命令と記述行とを示す。記述行は、制御命令が記述された行であり、行番号で識別される。｛Ｘ，Ｙ｝は制御命令Ｘと記述行Ｙとを意味する。例えば、制御命令は、ｓｔａｒｔ、ｅｎｄ、ｉｆ、ｅｌｓｅ、ｗｈｉｌｅおよびｓｗｉｔｃｈである。
依存要素は、構成要素が依存する要素である。例えば、構成要素が関数である場合、依存要素は、構成要素を呼び出す関数または構成要素から呼び出される関数である。
それぞれの欄において、ハイフン「−」は情報が無いことを意味する。
【００３０】
図２に戻り、ステップＳ１１０から説明を続ける。
ステップＳ１１０において、関連付け部１２０は、実行履歴ファイル２０１のそれぞれの実行要素情報とソフトウェア構造ファイル２０２のそれぞれの構成要素情報とを互いに関連付ける。
そして、関連付け部１２０は、それぞれの実行要素情報とそれぞれの構成要素情報とが互いに関連付けられた関連付けファイル２０３を生成する。関連付けファイル２０３は、記憶部１９１に記憶される。
【００３１】
図５に基づいて、関連付け処理（Ｓ１１０）の手順を説明する。
ステップＳ１１１において、関連付け部１２０は、実行履歴ファイル２０１から、未選択の実行要素情報を１つ選択する。
【００３２】
ステップＳ１１２からステップＳ１１５は、ステップＳ１１１で選択された実行要素情報に対して実行される。
【００３３】
ステップＳ１１２において、関連付け部１２０は、ソフトウェア構造ファイル２０２を検索することによって、実行要素情報に対応する構成要素情報を探す。
【００３４】
具体的には、関連付け部１２０は、実行要素情報から関数名を抽出し、抽出した関数名と同じ要素名を含んだ構成要素情報をソフトウェア構造ファイル２０２から探す。
【００３５】
ステップＳ１１３において、関連付け部１２０は、実行要素情報に対応する構成要素情報が有るか判定する。
ステップＳ１１３からステップＳ１１５において、実行要素情報に対応する構成要素情報を対応情報と呼ぶ。
対応情報が有る場合、処理はステップＳ１１５に進む。
対応情報が無い場合、処理はステップＳ１１４に進む。
【００３６】
ステップＳ１１４において、関連付け部１２０は対応情報を生成する。
【００３７】
例えば、関連付け部１２０は、以下のような対応情報を生成する。
ＩＤの欄には、新たなＩＤが設定される。
対応情報の要素名の欄には、実行要素情報の関数名が設定される。
対応情報の種類の欄には、関数を意味する識別子「Ｆｕｎｃｔｉｏｎ」が設定される。
対応情報の親要素の欄には、実行要素情報のクラス名が設定される。
対応情報の定義ファイルの欄には、実行要素情報のファイル名が設定される。
対応情報の定義行には、実行要素情報の実行行が設定される。
対応情報において、制御情報の欄と依存要素の欄とのそれぞれにはハイフン「−」が設定される。
【００３８】
そして、関連付け部１２０は、生成した対応情報をソフトウェア構造ファイル２０２に追加する。
【００３９】
ステップＳ１１５において、関連付け部１２０は、関連付けファイル２０３に関連付け情報を登録する。関連付けファイル２０３は記憶部１９１に記憶される。
【００４０】
関連付けファイル２０３は、実行要素情報と構成要素情報との組毎に関連付け情報を含む。
関連付け情報は、実行要素情報と対応情報とを互いに関連付ける。
【００４１】
図６に基づいて、関連付けファイル２０３を説明する。
関連付けファイル２０３は、実行ＩＤと構成ＩＤと実行行とを互いに対応付ける。
実行ＩＤと構成ＩＤと実行行との組が関連付け情報である。
【００４２】
実行ＩＤは、実行要素情報の識別子である。
構成ＩＤは、構成要素情報の識別子である。
関連付け情報の実行行は、実行要素情報の実行行と同じである。
【００４３】
図５に戻り、ステップＳ１１５の説明を続ける。
具体的には、関連付け部１２０は、関連付け情報を以下のように生成する。そして、関連付け部１２０は、生成した関連付け情報を関連付けファイル２０３に登録する。
関連付け部１２０は、実行要素情報からＩＤと実行行とを抽出する。抽出されるＩＤが実行ＩＤである。
さらに、関連付け部１２０は、対応情報からＩＤを抽出する。抽出されるＩＤが構成ＩＤである。
そして、関連付け部１２０は、実行ＩＤと構成ＩＤと実行行とを含んだ情報を生成する。生成される情報が関連付け情報である。
【００４４】
ステップＳ１１６において、関連付け部１２０は、未選択の実行要素情報が有るか判定する。ステップＳ１１６において、未選択の実行要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップＳ１１１に進む。
未選択情報が無い場合、処理は終了する。
【００４５】
図５の関連付け処理（Ｓ１１０）では、実行履歴ファイル２０１から実行要素情報を選択し、選択した実行要素情報に対して処理を行う。しかし、ソフトウェア構造ファイル２０２から構成要素情報を選択し、選択した構成要素情報に対して処理が行われてもよい。
【００４６】
図２に戻り、ステップＳ１２０から説明を続ける。
ステップＳ１２０において、判別部１３０は、関連付けファイル２０３に基づいてソフトウェア構造ファイル２０２を参照することによって、対象プログラムの複数の構成要素から重要要素を判別する。
そして、判別部１３０は、それぞれの重要要素を示す重要要素ファイル２０４を生成する。重要要素ファイル２０４は記憶部１９１に記憶される。
具体的には、重要要素は、それぞれの実行要素およびそれぞれの実行要素の親要素である。
【００４７】
重要要素ファイル２０４は、重要要素毎に重要要素情報を含む。
重要要素情報は重要要素を示す。
【００４８】
図７に基づいて、重要要素ファイル２０４を説明する。
重要要素ファイル２０４は、構成ＩＤと実行情報とを互いに対応付ける。
構成ＩＤと実行情報との組が重要要素情報である。
【００４９】
構成ＩＤは、構成要素情報の識別子である。
実行情報は、実行フラグまたは制御情報を示す。
実行フラグは、実行の有無を示す。
制御情報は、ソフトウェア構造ファイル２０２に設定された情報である。
【００５０】
図８に基づいて、判別処理（Ｓ１２０）の手順を説明する。
ステップＳ１２１において、判別部１３０は、実行履歴ファイル２０１から、未選択の実行要素情報を１つ選択する。
【００５１】
ステップＳ１２２からステップＳ１２５は、ステップＳ１２１で選択された実行要素情報に対して実行される。
【００５２】
ステップＳ１２２において、判別部１３０は、重要要素ファイル２０４を検索することによって、実行要素情報に対応する重要要素情報を探す。
【００５３】
具体的には、判別部１３０は、重要要素ファイル２０４を以下のように検索する。
まず、判別部１３０は、実行要素情報からＩＤを抽出する。
次に、判別部１３０は、抽出したＩＤと同じ実行ＩＤが設定された関連付け情報を関連付けファイル２０３から選択する。
次に、判別部１３０は、選択した関連付け情報から構成ＩＤを抽出する。
そして、判別部１３０は、抽出した構成ＩＤと同じ構成ＩＤが設定された重要要素情報を重要要素ファイル２０４から探す。
【００５４】
ステップＳ１２３において、判別部１３０は、実行要素情報に対応する重要要素情報が有るか判定する。
ステップＳ１２３からステップＳ１２５において、実行要素情報に対応する重要要素情報を対応情報と呼ぶ。
対応情報が有る場合、処理はステップＳ１２５に進む。
対応情報が無い場合、処理はステップＳ１２４に進む。
【００５５】
ステップＳ１２４において、判別部１３０は対応情報を生成し、生成した対応情報を重要要素ファイル２０４に追加する。
【００５６】
具体的には、判別部１３０は、対応情報を以下のように生成する。
まず、判別部１３０は、実行要素情報からＩＤを抽出する。
次に、判別部１３０は、抽出したＩＤと同じ実行ＩＤが設定された関連付け情報を関連付けファイル２０３から選択する。
次に、判別部１３０は、選択した関連付け情報から構成ＩＤを抽出する。
次に、判別部１３０は、抽出した構成ＩＤと同じＩＤを含んだ構成要素情報をソフトウェア構造ファイル２０２から選択する。
次に、判別部１３０は、選択した構成要素情報から制御情報を抽出する。
そして、判別部１３０は、抽出した構成ＩＤと抽出した制御情報とが設定された重要要素情報を生成する。生成される重要要素情報が対応情報である。
【００５７】
ステップＳ１２５において、判別部１３０は、重要要素ファイル２０４から親情報を選択し、選択した親情報に実行情報を設定する。
ステップＳ１２５において、親情報は、実行要素に対応する親要素の重要要素情報である。
【００５８】
具体的には、判別部１３０は以下のように動作する。
まず、判別部１３０は、対応情報から構成ＩＤを抽出する。
次に、判別部１３０は、抽出した構成ＩＤと同じＩＤが設定された構成要素情報をソフトウェア構造ファイル２０２から選択する。
次に、判別部１３０は、選択した構成要素情報の親要素の欄を参照する。
親要素が設定されている場合、判別部１３０は、親要素と同じ要素名が設定された構成要素情報をソフトウェア構造ファイル２０２から選択する。次に、判別部１３０は、選択した構成要素情報からＩＤを抽出する。次に、判別部１３０は、抽出したＩＤと同じ構成ＩＤが設定された重要要素情報が重要要素ファイル２０４に有るか判定する。
該当する重要要素情報が有る場合、判別部１３０は、該当する重要要素情報の実行情報の欄に実行フラグ「有」を設定する。
該当する重要要素情報が無い場合、判別部１３０は、抽出したＩＤと同じ構成ＩＤが設定された重要要素情報を重要要素ファイル２０４に追加する。そして、判別部１３０は、追加した重要要素情報の実行情報の欄に実行フラグ「有」を設定する。
【００５９】
ステップＳ１２６において、判別部１３０は、未選択の実行要素情報が有るか判定する。ステップＳ１２６において、未選択の実行要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップＳ１２１に進む。
未選択情報が無い場合、処理は終了する。
【００６０】
図２に戻り、ステップＳ１３０から説明を続ける。
ステップＳ１３０において、可視化部１４０は、重要要素ファイル２０４とソフトウェア構造ファイル２０２とに基づいて、可視化図２０５を生成する。
【００６１】
可視化図２０５は、重要要素を可視化して表した図である。
具体的には、可視化図２０５は、重要要素が強調された状態で対象プログラムの構造を示す。
【００６２】
具体的には、可視化部１４０は、ソフトウェア構造ファイル２０２に基づいて構造図を生成する。そして、可視化部１４０は、重要要素ファイル２０４に基づいて構造図から重要要素を選択し、重要要素を強調する。
【００６３】
例えば、可視化図２０５は、コールグラフ２１０またはフローチャート２２０である。
【００６４】
図９に基づいて、コールグラフ２１０を説明する。
コールグラフ２１０は、関数間の呼び出し関係を示す。
【００６５】
コールグラフ２１０は、ファイル枠２１１とクラス枠２１２と関数図形２１３と呼び出し線２１４とを有する。
ファイル枠２１１は、ファイルを表す枠である。
クラス枠２１２は、クラスを表す枠であり、ファイル枠２１１の中に配置される。
関数図形２１３は、関数を表す図形であり、クラス枠２１２の中に配置される。
呼び出し線２１４は、関数間を繋ぐ矢印状の線であり、関数間の呼び出し関係を示す。
【００６６】
重要要素である関数の関数図形２１３は、塗りつぶされることによって、強調されている。
【００６７】
図９において、関数｛Ｆｕｎｃ１｝と関数｛ｆｕｎｃ２｝と関数｛ｆｕｎｃ３｝とのそれぞれが重要要素である。一方、関数｛ｆｕｎｃ４｝は重要要素ではない。
【００６８】
図１０に基づいて、フローチャート２２０を説明する。
フローチャート２２０は、処理の流れを示す。
【００６９】
重要要素のブロック、つまり、実行された構成要素のブロックは、塗りつぶされることによって、強調されている。
【００７０】
図２に戻り、ステップＳ１４０を説明する。
ステップＳ１４０において、出力部１５０は、可視化図２０５のデータを出力することによって、ディスプレイに可視化図２０５を表示させる。
【００７１】
＊＊＊実施の形態１の効果＊＊＊
プログラムを構成する要素のうち実行された要素を重要要素として可視化することができる。
これにより、利用者が、プログラムの中で確認すべき部分を判断し易くなる。そのため、実行されていない部分の見落とし、および、実行されていない部分の理解誤りを防ぐことが可能となる。
【００７２】
実施の形態２．
重要要素の重要度（実行回数）を可視化する形態について、主に実施の形態１と異なる点を図１１から図１５に基づいて説明する。
【００７３】
＊＊＊構成の説明＊＊＊
図１１に基づいて、ソフトウェア可視化装置１００の構成を説明する。
ソフトウェア可視化装置１００は、さらに、算出部１３１を備える。
ソフトウェア可視化プログラムは、さらに、算出部１３１としてコンピュータを機能させる。
【００７４】
＊＊＊動作の説明＊＊＊
図１２に基づいて、ソフトウェア可視化方法を説明する。
ステップＳ２０１において、受付部１１０は実行履歴ファイル２０１を受け付ける。
そして、受付部１１０は、実行履歴ファイル２０１を記憶部１９１に記憶する。
ステップＳ２０１は、実施の形態１におけるステップＳ１０１（図２参照）と同じである。
【００７５】
ステップＳ１０２において、受付部１１０はソフトウェア構造ファイル２０２を受け付ける。
そして、受付部１１０は、ソフトウェア構造ファイル２０２を記憶部１９１に記憶する。
ステップＳ２０２は、実施の形態１におけるステップＳ１０２（図２参照）と同じである。
【００７６】
ステップＳ２１０において、関連付け部１２０は、実行履歴ファイル２０１のそれぞれの実行要素情報とソフトウェア構造ファイル２０２のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部１２０は関連付けファイル２０３を生成する。
ステップＳ２１０は、実施の形態１におけるステップＳ１１０（図２参照）と同じである。
【００７７】
ステップＳ２２０において、判別部１３０は、関連付けファイル２０３に基づいてソフトウェア構造ファイル２０２を参照することによって、対象プログラムから重要要素を判別する。そして、判別部１３０は重要要素ファイル２０４を生成する。
【００７８】
さらに、算出部１３１は、実行履歴ファイル２０１に基づいて、それぞれの重要要素の重要度を算出する。
具体的には、重要度は重要要素の実行回数である。実行回数が多いほど重要度が高い。
【００７９】
図１３に基づいて、重要要素ファイル２０４を説明する。
重要要素ファイル２０４は、実施の形態１で説明した通り、構成ＩＤと実行情報とを互いに対応付ける。
【００８０】
実行情報は、実行フラグまたは制御情報を示す。
実行情報において、制御情報には実行回数が付加される。
【００８１】
｛Ｘ，Ｙ，Ａ｝は、制御情報｛Ｘ、Ｙ｝と実行回数Ａとを意味する。
｛Ｘ、Ｙ｝は、前述の通り、制御命令Ｘと記述行Ｙとを意味する。
【００８２】
図１４に基づいて、判別処理（Ｓ２２０）の手順を説明する。
ステップＳ２２１において、判別部１３０は、実行履歴ファイル２０１から、未選択の実行要素情報を１つ選択する。
【００８３】
ステップＳ２２２からステップＳ２２６は、ステップＳ２２１で選択された実行要素情報に対して実行される。
【００８４】
ステップＳ２２２において、判別部１３０は、重要要素ファイル２０４を検索することによって、実行要素情報に対応する重要要素情報を探す。
ステップＳ２２２は、実施の形態１におけるステップＳ１２２（図８参照）と同じである。
【００８５】
ステップＳ２２３において、判別部１３０は、実行要素情報に対応する重要要素情報が有るか判定する。
ステップＳ２２３からステップＳ２２６において、実行要素情報に対応する重要要素情報を対応情報と呼ぶ。
対応情報が有る場合、処理はステップＳ２２５に進む。
対応情報が無い場合、処理はステップＳ２２４に進む。
【００８６】
ステップＳ２２４において、判別部１３０は対応情報を生成し、生成した対応情報を重要要素ファイル２０４に追加する。
ステップＳ２２４は、実施の形態１におけるステップＳ１２４（図８参照）と同じである。
但し、対応情報に設定される実行回数は初期値「０」である。
【００８７】
ステップＳ２２５において、算出部１３１は、対応情報に設定されている実行回数を１増やす。
【００８８】
ステップＳ２２６において、判別部１３０は、重要要素ファイル２０４から親情報を選択し、選択した親情報に実行情報を設定する。
ステップＳ２２６は、実施の形態１におけるステップＳ１２５（図８参照）と同じである。
【００８９】
ステップＳ２２７において、判別部１３０は、未選択の実行要素情報が有るか判定する。ステップＳ２２７において、未選択の実行要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップＳ２２１に進む。
未選択情報が無い場合、処理は終了する。
【００９０】
図１２に戻り、ステップＳ２３０から説明を続ける。
ステップＳ２３０において、可視化部１４０は、重要要素ファイル２０４とソフトウェア構造ファイル２０２とに基づいて、可視化図２０５を生成する。
ステップＳ２３０は、実施の形態１におけるステップＳ１３０（図２参照）と同じである。
但し、可視化図２０５において、それぞれの重要要素は、重要度（実行回数）に応じて強調される。
【００９１】
図１５に基づいて、それぞれの重要要素が実行回数に応じて強調されたコールグラフ２１０を説明する。
重要要素である関数の関数図形２１３は、実行回数に対応する色で塗りつぶされている。
【００９２】
図１５において、関数｛Ｆｕｎｃ１｝と関数｛ｆｕｎｃ２｝と関数｛ｆｕｎｃ３｝とのそれぞれが重要要素である。そして、関数｛Ｆｕｎｃ１｝は、関数｛ｆｕｎｃ２｝および関数｛ｆｕｎｃ３｝よりも実行回数が多い。つまり、関数｛Ｆｕｎｃ１｝は、関数｛ｆｕｎｃ２｝および関数｛ｆｕｎｃ３｝よりも重要度が高い。
【００９３】
図１２に戻り、ステップＳ２４０を説明する。
ステップＳ２４０において、出力部１５０は、可視化図２０５のデータを出力することによって、ディスプレイに可視化図２０５を表示させる。
【００９４】
＊＊＊実施の形態２の効果＊＊＊
重要要素の重要度（実行回数）を可視化することができる。
これにより、利用者が、プログラムの中で頻繁に実行される部分と、プログラムの中で稀にしか実行されない部分とを判別し易くなる。そのため、優先的に確認すべき部分を知ることが可能となる。
【００９５】
実施の形態３．
重要要素の重要度（評価指数）を可視化する形態について、主に実施の形態１と異なる点を図１６から図２０に基づいて説明する。
【００９６】
＊＊＊構成の説明＊＊＊
ソフトウェア可視化装置１００の構成は、実施の形態２における構成（図１１参照）と同じである。
【００９７】
＊＊＊動作の説明＊＊＊
図１６に基づいて、ソフトウェア可視化方法を説明する。
ステップＳ３０１において、受付部１１０は実行履歴ファイル２０１を受け付ける。
そして、受付部１１０は、実行履歴ファイル２０１を記憶部１９１に記憶する。
ステップＳ３０１は、実施の形態１におけるステップＳ１０１（図２参照）と同じである。
【００９８】
ステップＳ３０２において、受付部１１０はソフトウェア構造ファイル２０２を受け付ける。
そして、受付部１１０は、ソフトウェア構造ファイル２０２を記憶部１９１に記憶する。
ステップＳ３０２は、実施の形態１におけるステップＳ１０２（図２参照）と同じである。
【００９９】
ステップＳ３１０において、関連付け部１２０は、実行履歴ファイル２０１のそれぞれの実行要素情報とソフトウェア構造ファイル２０２のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部１２０は関連付けファイル２０３を生成する。
ステップＳ３１０は、実施の形態１におけるステップＳ１１０（図２参照）と同じである。
【０１００】
ステップＳ３２０において、判別部１３０は、関連付けファイル２０３に基づいて、対象プログラムから重要要素を判別する。
具体的には、判別部１３０は、実行要素と実行要素の親要素とを重要要素として選択する。
【０１０１】
さらに、算出部１３１は、ソフトウェア構造ファイル２０２に基づいて、それぞれの重要要素の重要度を算出する。
具体的には、重要度は、重要要素を評価して得られる評価指数である。評価指数が高いほど重要度が高い。
例えば、関数の評価指数は、行数、サイクロティック複雑度、ファンイン数、ファンアウト数またはこれらの組み合わせである。
【０１０２】
図１７に基づいて、重要要素ファイル２０４を説明する。
重要要素ファイル２０４は、構成ＩＤと実行情報と評価指数とを互いに対応付ける。
構成ＩＤと実行情報と評価指数との組が重要要素情報である。
【０１０３】
図１８に基づいて、判別処理（Ｓ３２０）の手順を説明する。
ステップＳ３２１において、判別部１３０は、それぞれの構成要素の評価指数を重要要素ファイルに登録する。
【０１０４】
図１９に基づいて、評価指数登録処理（Ｓ３２１）の手順を説明する。
ステップＳ３２１１において、判別部１３０は、ソフトウェア構造ファイル２０２から、未選択の構成要素情報を１つ選択する。
【０１０５】
ステップＳ３２１２からステップＳ３２１４は、ステップＳ３２１１で選択された構成要素情報に対して実行される。
【０１０６】
ステップＳ３２１２において、判別部１３０は、構成要素情報のＩＤと同じ構成ＩＤが設定された重要要素情報を生成する。
そして、判別部１３０は、生成した重要要素情報を重要要素ファイル２０４に追加する。
追加される重要要素情報において、実行情報の欄と評価指標の欄とのそれぞれは空欄である。
【０１０７】
ステップＳ３２１３において、判別部１３０は、構成要素情報に基づいて評価指数を算出する。
【０１０８】
ステップＳ３２１４において、判別部１３０は、追加した重要要素情報に評価指数を設定する。
【０１０９】
ステップＳ３２１５において、判別部１３０は、未選択の構成要素情報が有るか判定する。ステップＳ３２１５において、未選択の構成要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップＳ３２１１に進む。
未選択情報が無い場合、処理は終了する。
【０１１０】
図１８に戻り、ステップＳ３２２から説明を続ける。
ステップＳ３２２からステップＳ３２７は、実施の形態１におけるステップＳ１２１からステップＳ１２６と同じである（図８参照）。
【０１１１】
図１６に戻り、ステップＳ３３０から説明を続ける。
ステップＳ３３０において、可視化部１４０は、重要要素ファイル２０４とソフトウェア構造ファイル２０２とに基づいて、可視化図２０５のデータを生成する。
ステップＳ３３０は、実施の形態１におけるステップＳ１３０（図２参照）と同じである。
但し、可視化部１４０は、それぞれの重要要素を重要度（評価指数）に応じて強調させる。
【０１１２】
図２０に基づいて、それぞれの重要要素が評価指数に応じて強調されたコールグラフ２１０を説明する。
重要要素である関数の関数図形２１３は、評価指数に対応する大きさで記されている。
【０１１３】
図２０において、関数｛Ｆｕｎｃ１｝と関数｛ｆｕｎｃ２｝と関数｛ｆｕｎｃ３｝とのそれぞれが重要要素である。そして、関数｛Ｆｕｎｃ３｝は、関数｛ｆｕｎｃ１｝および関数｛ｆｕｎｃ２｝よりも評価指数が高い。つまり、関数｛Ｆｕｎｃ３｝は、関数｛ｆｕｎｃ１｝および関数｛ｆｕｎｃ２｝よりも重要度が高い。
【０１１４】
図１６に戻り、ステップＳ３４０を説明する。
ステップＳ３４０において、出力部１５０は、可視化図２０５のデータを出力することによって、ディスプレイに可視化図２０５を表示させる。
【０１１５】
＊＊＊実施の形態３の効果＊＊＊
重要要素の重要度（評価指数）を可視化することができる。
これにより、利用者が、プログラムの中で注意すべき部分を判別し易くなる。そのため、実行頻度が低くても重点的に確認すべき部分、を知ることが可能となる。
【０１１６】
実施の形態４．
重要要素から影響を受ける影響要素を可視化する形態について、主に実施の形態１と異なる点を図２１から図２５に基づいて説明する。
【０１１７】
＊＊＊構成の説明＊＊＊
ソフトウェア可視化装置１００の構成は、実施の形態１における構成（図１参照）と同じである。
【０１１８】
＊＊＊動作の説明＊＊＊
図２１に基づいて、ソフトウェア可視化方法を説明する。
ステップＳ４０１において、受付部１１０は実行履歴ファイル２０１を受け付ける。
そして、受付部１１０は、実行履歴ファイル２０１を記憶部１９１に記憶する。
ステップＳ４０１は、実施の形態１におけるステップＳ１０１（図２参照）と同じである。
【０１１９】
ステップＳ４０２において、受付部１１０はソフトウェア構造ファイル２０２を受け付ける。
そして、受付部１１０は、ソフトウェア構造ファイル２０２を記憶部１９１に記憶する。
ステップＳ４０２は、実施の形態１におけるステップＳ１０２（図２参照）と同じである。
【０１２０】
ステップＳ４１０において、関連付け部１２０は、実行履歴ファイル２０１のそれぞれの実行要素情報とソフトウェア構造ファイル２０２のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部１２０は関連付けファイル２０３を生成する。
ステップＳ４１０は、実施の形態１におけるステップＳ１１０（図２参照）と同じである。
【０１２１】
ステップＳ４２０において、判別部１３０は、関連付けファイル２０３に基づいてソフトウェア構造ファイル２０２を参照することによって、対象プログラムから重要要素を判別する。そして、判別部１３０は重要要素ファイル２０４を生成する。
【０１２２】
さらに、判別部１３０は、ソフトウェア構造ファイル２０２に基づいて、影響要素を判別する。
影響要素は、重要要素から影響を受ける構成要素である。
【０１２３】
図２２に基づいて、重要要素ファイル２０４を説明する。
重要要素ファイル２０４は、構成ＩＤと実行情報と影響フラグとを互いに対応付ける。
構成ＩＤと実行情報と影響フラグとの組が重要要素情報である。
影響フラグは、構成要素が影響要素であるか否かを示す。
【０１２４】
図２３に基づいて、判別処理（Ｓ４２０）の手順を説明する。
ステップＳ４２１からステップＳ４２５は、実施の形態１におけるステップＳ１２１からステップＳ１２５と同じである（図８参照）。
さらに、ステップＳ４２７は、実施の形態１におけるステップＳ１２６と同じである。
【０１２５】
以下に、ステップＳ４２６を説明する。
ステップＳ４２６において、判別部１３０は、影響要素に関する重要要素情報を重要要素ファイル２０４に登録する。
【０１２６】
図２４に基づいて、影響要素登録処理（Ｓ４２６）の手順を説明する。
ステップＳ４２６１において、判別部１３０は、ソフトウェア構造ファイル２０２から、影響要素を抽出する。
【０１２７】
具体的には、判別部１３０は影響要素を以下のように抽出する。
まず、判別部１３０は、実行要素の重要要素情報から構成ＩＤを抽出する。
次に、判別部１３０は、抽出した構成ＩＤと同じＩＤが設定された構成要素情報をソフトウェア構造ファイル２０２から選択する。
そして、判別部１３０は、構成要素情報から依存要素を抽出する。抽出される依存要素が影響要素である。
【０１２８】
ステップＳ４２６２において、判別部１３０は、重要要素ファイル２０４を検索することによって、影響要素の重要要素情報を探す。
【０１２９】
具体的には、判別部１３０は、重要要素ファイル２０４を以下のように検索する。
まず、判別部１３０は、影響要素の要素名が設定された構成要素情報をソフトウェア構造ファイル２０２から選択する。
次に、判別部１３０は、選択した構成要素情報からＩＤを抽出する。
そして、判別部１３０は、抽出したＩＤと同じ構成ＩＤが設定された重要要素情報を重要要素ファイル２０４から探す。
【０１３０】
ステップＳ４２６３において、判別部１３０は、影響要素の重要要素情報が有るか判定する。
ステップＳ４２６３からステップＳ４２６５において、影響要素の重要要素情報を対応情報と呼ぶ。
対応情報が有る場合、処理はステップＳ４２６５に進む。
対応情報が無い場合、処理はステップＳ４２６４に進む。
【０１３１】
ステップＳ４２６４において、判別部１３０は対応情報を生成し、生成した対応情報を重要要素ファイル２０４に追加する。
【０１３２】
具体的には、判別部１３０は、対応情報を以下のように生成する。
まず、判別部１３０は、影響要素の要素名が設定された構成要素情報をソフトウェア構造ファイル２０２から選択する。
次に、判別部１３０は、選択した構成要素情報からＩＤを抽出する。
そして、判別部１３０は、抽出したＩＤと同じ構成ＩＤが設定された重要要素情報を生成する。
生成される重要要素情報には影響フラグ「有」が設定される。また、実行情報の欄は空欄である。
【０１３３】
ステップＳ４２６５において、判別部１３０は、重要要素ファイル２０４から親情報を選択し、選択した親情報に影響フラグを設定する。
ステップＳ４２６５において、親情報は、影響要素に対応する親要素の重要要素情報である。
【０１３４】
具体的には、判別部１３０は以下のように動作する。
まず、判別部１３０は、対応情報から構成ＩＤを抽出する。
次に、判別部１３０は、抽出した構成ＩＤと同じＩＤが設定された構成要素情報をソフトウェア構造ファイル２０２から選択する。
次に、判別部１３０は、選択した構成要素情報の親要素の欄を参照する。
親要素が設定されている場合、判別部１３０は、親要素と同じ要素名が設定された構成要素情報をソフトウェア構造ファイル２０２から選択する。次に、判別部１３０は、選択した構成要素情報からＩＤを抽出する。次に、判別部１３０は、抽出したＩＤと同じ構成ＩＤが設定された重要要素情報が重要要素ファイル２０４に有るか判定する。
該当する重要要素情報が有る場合、判別部１３０は、該当する重要要素情報に影響フラグ「有」を設定する。
該当する重要要素情報が無い場合、判別部１３０は、抽出したＩＤと同じ構成ＩＤが設定された重要要素情報を重要要素ファイル２０４に追加する。そして、判別部１３０は、追加した重要要素情報に影響フラグ「有」を設定する。
【０１３５】
図２１に戻り、ステップＳ４３０から説明を続ける。
ステップＳ４３０において、可視化部１４０は、重要要素ファイル２０４とソフトウェア構造ファイル２０２とに基づいて、可視化図２０５を生成する。
ステップＳ４３０は、実施の形態１におけるステップＳ１３０（図２参照）と同じである。
但し、可視化部１４０は、それぞれの影響要素をそれぞれの重要要素と区別した状態で強調させる。影響要素は、影響フラグ「有」が設定された重要要素情報に対応する構成要素である。
【０１３６】
図２５に基づいて、重要要素と影響要素とが強調されたコールグラフ２１０を説明する。
重要要素である関数の関数図形２１３は、第１の色で塗りつぶされている。
影響要素である関数の関数図形２１３は、第２の色で塗りつぶされている。
【０１３７】
図２５において、関数｛Ｆｕｎｃ１｝と関数｛ｆｕｎｃ２｝と関数｛ｆｕｎｃ３｝とのそれぞれが重要要素である。また、関数｛Ｆｕｎｃ４｝は影響要素である。
関数｛Ｆｕｎｃ４｝の関数図形２１３は、関数｛Ｆｕｎｃ１｝と関数｛ｆｕｎｃ２｝と関数｛ｆｕｎｃ３｝とのそれぞれの関数図形２１３とは異なる色で塗りつぶされている。
【０１３８】
図２１に戻り、ステップＳ４４０を説明する。
ステップＳ４４０において、出力部１５０は、可視化図２０５のデータを出力することによって、ディスプレイに可視化図２０５を表示させる。
【０１３９】
＊＊＊実施の形態４の効果＊＊＊
重要要素から影響を受ける影響要素を可視化することができる。
これにより、利用者は、プログラムの中で実行された部分と併せて確認すべき部分を知ることが可能となる。
【０１４０】
実施の形態５．
プログラムの更新に伴って変更された変更要素を可視化する形態について、主に実施の形態１と異なる点を図２６から図３１に基づいて説明する。
【０１４１】
＊＊＊構成の説明＊＊＊
ソフトウェア可視化装置１００の構成は、実施の形態１における構成（図１参照）と同じである。
【０１４２】
＊＊＊動作の説明＊＊＊
図２６に基づいて、ソフトウェア可視化方法を説明する。
ステップＳ５０１において、受付部１１０は実行履歴ファイル２０１を受け付ける。
そして、受付部１１０は、実行履歴ファイル２０１を記憶部１９１に記憶する。
ステップＳ５０１は、実施の形態１におけるステップＳ１０１（図２参照）と同じである。
【０１４３】
ステップＳ５０２において、受付部１１０はソフトウェア構造ファイル２０２を受け付ける。
そして、受付部１１０は、ソフトウェア構造ファイル２０２を記憶部１９１に記憶する。
ステップＳ５０２は、実施の形態１におけるステップＳ１０２（図２参照）と同じである。
但し、ソフトウェア構造ファイル２０２の構成が、実施の形態１における構成と一部異なる。
【０１４４】
図２７に基づいて、ソフトウェア構造ファイル２０２を説明する。
ソフトウェア構造ファイル２０２は、実施の形態１で説明した項目の他に、バージョン番号を有する（図４参照）。
バージョン番号は、プログラムのバージョンを識別する。
【０１４５】
ソフトウェア構造ファイル２０２は、バージョンが異なる複数のプログラムに対応する複数のソフトウェア構造ファイルに相当する。
具体的には、ソフトウェア構造ファイル２０２は、対象プログラムのソフトウェア構造ファイルの情報と基準プログラムのソフトウェア構造ファイルの情報とを含む。
対象プログラムは、可視化の対象となるバージョンのプログラムである。
基準プログラムは、対象プログラムとの比較の対象となるバージョンのプログラムである。
【０１４６】
図２６に戻り、ステップＳ５１０から説明を続ける。
ステップＳ５１０において、関連付け部１２０は、実行履歴ファイル２０１のそれぞれの実行要素情報とソフトウェア構造ファイル２０２のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部１２０は関連付けファイル２０３を生成する。
ステップＳ５１０は、実施の形態１におけるステップＳ１１０（図２参照）と同じである。
但し、実行要素情報に対応付けられる構成要素情報は、対象プログラムの構成要素情報である。
【０１４７】
ステップＳ５２０において、判別部１３０は、関連付けファイル２０３に基づいてソフトウェア構造ファイル２０２を参照することによって、対象プログラムから重要要素を判別する。そして、判別部１３０は重要要素ファイル２０４を生成する。
【０１４８】
さらに、判別部１３０は、ソフトウェア構造ファイル２０２に基づいて、変更要素を判別する。
変更要素は、対象プログラムの複数の構成要素のうち基準プログラムのいずれの構成要素とも異なる構成要素である。
【０１４９】
図２８に基づいて、重要要素ファイル２０４を説明する。
重要要素ファイル２０４は、構成ＩＤと実行情報と変更フラグとを互いに対応付ける。
構成ＩＤと実行情報と変更フラグとの組が重要要素情報である。
変更フラグは、構成要素が変更要素であるか否かを示す。
【０１５０】
図２９に基づいて、判別処理（Ｓ５２０）の手順を説明する。
ステップＳ５２１からステップＳ５２６は、実施の形態１におけるステップＳ１２１からステップＳ１２６と同じである（図８参照）。
但し、重要要素ファイル２０４において、それぞれの重要要素情報には変更フラグ「無」が設定される。
【０１５１】
ステップＳ５２７において、判別部１３０は、ソフトウェア構造ファイル２０２に基づいて、変更要素を判別する。
【０１５２】
図３０に基づいて、変更要素判別処理（Ｓ５２７）の手順を説明する。
ステップＳ５２７１において、判別部１３０は、ソフトウェア構造ファイル２０２から、対象プログラムの未選択の構成要素情報を１つ選択する。
つまり、判別部１３０は、対象プログラムのバージョン番号が設定された複数の構成要素情報から未選択の構成要素情報を１つ選択する。
【０１５３】
ステップＳ５２７２からステップＳ５２７５は、ステップＳ５２７１で選択された構成要素情報に対して実行される。
【０１５４】
ステップＳ５２７２において、判別部１３０は、ソフトウェア構造ファイル２０２を検索することによって、対象プログラムの構成要素情報に対応する基準プログラムの構成要素情報を探す。
【０１５５】
具体的には、判別部１３０は、ソフトウェア構造ファイル２０２を以下のように検索する。
まず、判別部１３０は、対象プログラムの構成要素情報からＩＤを抽出する。
そして、判別部１３０は、基準プログラムのバージョン番号と、抽出したＩＤと同じＩＤとが設定された構成要素情報をソフトウェア構造ファイル２０２から探す。
【０１５６】
ステップＳ５２７３において、判別部１３０は、対象プログラムの構成要素情報に対応する基準プログラムの構成要素情報が有るか判定する。
ステップＳ５２７３からステップＳ５２７５において、対象プログラムの構成要素情報に対応する基準プログラムの構成要素情報を対応情報と呼ぶ。
対応情報が有る場合、処理はステップＳ５２７４に進む。
対応情報が無い場合、処理はステップＳ５２７５に進む。
【０１５７】
ステップＳ５２７４において、判別部１３０は、バージョン番号を除いて、対象プログラムの構成要素情報を基準プログラムの構成要素情報（対応情報）と比較する。
対象プログラムの構成要素情報が基準プログラムの構成要素情報（対応情報）と一致する場合、処理はステップＳ５２７６に進む。
対象プログラムの構成要素情報が基準プログラムの構成要素情報（対応情報）と一致しない場合、処理はステップＳ５２７５に進む。
【０１５８】
ステップＳ５２７５において、判別部１３０は、重要要素ファイル２０４を検索することによって、対応情報に対応する重要要素情報を探す。
【０１５９】
具体的には、判別部１３０は重要要素ファイル２０４を以下のように検索する。
まず、判別部１３０は、対応情報からＩＤを抽出する。
そして、判別部１３０は、抽出したＩＤと同じ構成ＩＤが設定された重要要素情報を重要要素ファイル２０４から探す。
ステップＳ５２７５において、対応情報に対応する重要要素情報を該当情報と呼ぶ。
【０１６０】
該当情報が有る場合、判別部１３０は、該当情報に変更フラグ「有」を設定する。
【０１６１】
該当情報が無い場合、判別部１３０は、対応情報のＩＤと同じ構成ＩＤが設定された重要要素情報を生成し、生成した重要要素情報を重要要素ファイル２０４に追加する。そして、判別部１３０は、追加した重要要素情報に変更フラグ「有」を設定する。
【０１６２】
ステップＳ５２７６において、判別部１３０は、対象プログラムの未選択の構成要素情報が有るか判定する。
ステップＳ５２７６において、対象プログラムの未選択の構成要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップＳ５２７１に進む。
未選択情報が無い場合、処理は終了する。
【０１６３】
図２６に戻り、ステップＳ５３０から説明を続ける。
ステップＳ５３０において、可視化部１４０は、重要要素ファイル２０４とソフトウェア構造ファイル２０２とに基づいて、可視化図２０５を生成する。
ステップＳ５３０は、実施の形態１におけるステップＳ１３０（図２参照）と同じである。
但し、可視化部１４０は、それぞれの変更要素をそれぞれの重要要素と区別した状態で強調させる。変更要素は、変更フラグ「有」が設定された重要要素情報に対応する構成要素である。
【０１６４】
図３１に基づいて、重要要素と変更要素とが強調されたコールグラフ２１０を説明する。
重要要素である関数の関数図形２１３は、第１の色で塗りつぶされている。
変更要素である関数の関数図形２１３は、第２の色で塗りつぶされている。
【０１６５】
図３１において、関数｛Ｆｕｎｃ１｝と関数｛ｆｕｎｃ２｝とのそれぞれが重要要素である。また、関数｛Ｆｕｎｃ３｝は影響要素である。
関数｛Ｆｕｎｃ３｝の関数図形２１３は、関数｛Ｆｕｎｃ１｝と関数｛ｆｕｎｃ２｝とのそれぞれの関数図形２１３とは異なる色で塗りつぶされている。
【０１６６】
図２６に戻り、ステップＳ５４０を説明する。
ステップＳ５４０において、出力部１５０は、可視化図２０５のデータを出力することによって、ディスプレイに可視化図２０５を表示させる。
【０１６７】
＊＊＊実施の形態５の効果＊＊＊
プログラムの更新に伴って変更された変更要素を可視化することができる。
これにより、利用者は、プログラムの中で実行された部分と併せて変更された部分を知ることが可能となる。
【０１６８】
実施の形態６．
対象プログラムを複数回実行することによって得られる複数の実行履歴ファイル２０１を用いる形態について、主に実施の形態１と異なる点を図３２から図３４に基づいて説明する。
【０１６９】
＊＊＊構成の説明＊＊＊
ソフトウェア可視化装置１００の構成は、実施の形態１における構成（図１参照）と同じである。
【０１７０】
＊＊＊動作の説明＊＊＊
図３２に基づいて、ソフトウェア可視化方法を説明する。
ステップＳ６０１において、受付部１１０は、複数の実行履歴ファイル２０１を受け付ける。
そして、受付部１１０は、複数の実行履歴ファイル２０１を記憶部１９１に記憶する。
複数の実行履歴ファイル２０１は、対象プログラムを複数回実行することによって得られる。
【０１７１】
ステップＳ６０２において、受付部１１０はソフトウェア構造ファイル２０２を受け付ける。
そして、受付部１１０は、ソフトウェア構造ファイル２０２を記憶部１９１に記憶する。
ステップＳ６０２は、実施の形態１におけるステップＳ１０２（図２参照）と同じである。
【０１７２】
ステップＳ６１０において、関連付け部１２０は、複数の実行履歴ファイル２０１から２つ以上の実行履歴ファイル２０１を選択する。関連付け部１２０は、選択した２つ以上の実行履歴ファイル２０１のそれぞれの実行要素情報とソフトウェア構造ファイル２０２のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部１２０は関連付けファイル２０３を生成する。
【０１７３】
図３３に基づいて、関連付けファイル２０３を説明する。
関連付けファイル２０３は、履歴ＩＤと実行ＩＤと構成ＩＤと実行行とを互いに対応付ける。
履歴ＩＤと実行ＩＤと構成ＩＤと実行行との組が関連付け情報である。
【０１７４】
履歴ＩＤは、実行履歴ファイル２０１の識別子である。
【０１７５】
図３４に基づいて、関連付け処理（Ｓ６１０）を説明する。
ステップＳ６１１において、受付部１１０は履歴指定情報を受け付ける。
履歴指定情報は、複数の実行履歴ファイル２０１のうちの２つ以上の実行履歴ファイル２０１を指定する情報である。
具体的には、履歴指定情報は、２つ以上の履歴ＩＤを含む。
【０１７６】
ステップＳ６１２において、関連付け部１２０は、履歴指定情報で指定された２つ以上の実行履歴ファイル２０１から、未選択の実行履歴ファイル２０１を１つ選択する。
【０１７７】
ステップＳ６１３は、ステップＳ６１２で選択された実行履歴ファイル２０１のために実行される。
【０１７８】
ステップＳ６１３において、関連付け部１２０は、実行履歴ファイル２０１のそれぞれの実行要素情報とソフトウェア構造ファイル２０２のそれぞれの構成要素情報とを互いに関連付ける。
ステップＳ６１３の処理は、実施の形態１におけるステップＳ１１０（図５参照）と同じである。
【０１７９】
ステップＳ６１４において、関連付け部１２０は、履歴指定情報で指定された２つ以上の実行履歴ファイル２０１のうち選択されていない実行履歴ファイル２０１が有るか判定する。ステップＳ６１４において、選択されていない実行履歴ファイル２０１を未選択ファイルと呼ぶ。
未選択ファイルが有る場合、処理はステップＳ６１１に進む。
未選択ファイルが無い場合、処理は終了する。
【０１８０】
図３２に戻り、ステップＳ６２０からステップＳ６４０を説明する。
ステップＳ６２０からステップＳ６４０は、実施の形態１におけるステップＳ１２０からステップＳ１４０と同じである（図２参照）。
【０１８１】
＊＊＊実施の形態６の効果＊＊＊
複数の実行履歴を重ね合わせて、確認すべき部分を可視化することができる。つまり、２つ以上の実行履歴ファイル２０１を結合して、確認すべき部分を可視化することができる。
【０１８２】
実施の形態７．
確認が不要な構成要素を重要要素から除外する形態について、実施の形態１および実施の形態５と異なる点を図３５から図３８に基づいて主に説明する。
【０１８３】
＊＊＊構成の説明＊＊＊
図３５に基づいて、ソフトウェア可視化装置１００の構成を説明する。
ソフトウェア可視化装置１００は、さらに、除外部１３２を備える。
ソフトウェア可視化プログラムは、さらに、除外部１３２としてコンピュータを機能させる。
【０１８４】
＊＊＊動作の説明＊＊＊
図３６に基づいて、ソフトウェア可視化方法を説明する。
ステップＳ７０１において、受付部１１０は実行履歴ファイル２０１を受け付ける。
そして、受付部１１０は、実行履歴ファイル２０１を記憶部１９１に記憶する。
ステップＳ７０１は、実施の形態１におけるステップＳ１０１（図２参照）と同じである。
【０１８５】
ステップＳ７０２において、受付部１１０はソフトウェア構造ファイル２０２を受け付ける。
そして、受付部１１０は、ソフトウェア構造ファイル２０２を記憶部１９１に記憶する。
ステップＳ７０２は、実施の形態１におけるステップＳ１０２（図２参照）と同じである。
ソフトウェア構造ファイル２０２の構成は、実施の形態５における構成と同じである（図２７参照）。
【０１８６】
ステップＳ７１０において、関連付け部１２０は、実行履歴ファイル２０１のそれぞれの実行要素情報とソフトウェア構造ファイル２０２のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部１２０は関連付けファイル２０３を生成する。
ステップＳ７１０は、実施の形態１におけるステップＳ１１０（図２参照）と同じである。
実施の形態５と同じく、実行要素情報に対応付けられる構成要素情報は、対象プログラムの構成要素情報である。
【０１８７】
ステップＳ７２０において、判別部１３０は、関連付けファイル２０３に基づいてソフトウェア構造ファイル２０２を参照することによって、対象プログラムから重要要素を判別する。そして、判別部１３０は重要要素ファイル２０４を生成する。
さらに、判別部１３０は、ソフトウェア構造ファイル２０２に基づいて、変更要素を判別する。
【０１８８】
図３７に基づいて、重要要素ファイル２０４を説明する。
重要要素ファイル２０４は、構成ＩＤと実行情報と変更フラグと確認フラグとを互いに対応付ける。
構成ＩＤと実行情報と変更フラグと確認フラグとの組が重要要素情報である。
確認フラグは、重要要素が除外要素であるか否かを示す。
除外要素は、確認が不要な構成要素である。具体的には、除外要素は、変更要素と変更要素から影響を受ける影響要素とのいずれでもない重要要素である。
【０１８９】
図３６に戻り、説明を続ける。
ステップＳ７２０は、実施の形態５におけるステップＳ５２０（図２６参照）と同じである。
ステップＳ７２０により、それぞれの重要要素情報の変更フラグが設定された重要要素ファイル２０４が生成される。それぞれの重要要素情報において、確認フラグの欄は空欄である。
【０１９０】
ステップＳ７３０において、除外部１３２は、ソフトウェア構造ファイル２０２に基づいて、除外要素を判別する。
【０１９１】
図３８に基づいて、除外処理（Ｓ７３０）の手順を説明する。
ステップＳ７３１において、除外部１３２は、重要要素ファイル２０４から、未選択の重要要素情報を１つ選択する。
【０１９２】
ステップＳ７３２からステップＳ７３５は、ステップＳ７３１で選択された重要要素情報に対して実行される。
ステップＳ７３２からステップＳ７３５において、ステップＳ７３１で選択された重要要素情報を選択情報という。また、選択情報に対応する重要要素を選択要素と呼ぶ。
【０１９３】
ステップＳ７３２において、除外部１３２は、選択情報に変更フラグ「有」が設定されているか判定する。つまり、除外部１３２は、選択要素が変更要素であるか判定する。
選択情報に変更フラグ「有」が設定されている場合、処理はステップＳ７３３に進む。
選択情報に変更フラグ「無」が設定されている場合、処理はステップＳ７３６に進む。
【０１９４】
ステップＳ７３３において、除外部１３２は、選択情報に確認フラグ「要」を設定する。
【０１９５】
ステップＳ７３４において、除外部１３２は、ソフトウェア構造ファイル２０２から、選択要素に対する影響要素を抽出する。
選択要素に対する影響要素には、選択要素の呼び出し元の構成要素と、選択要素の呼び出し先の構成要素と、が含まれる。呼び出し先の構成要素には、呼び出し先の構成要素から呼び出された構成要素も含まれる。
選択要素に対する影響要素は、選択要素の変更の影響を受ける可能性、または、その影響が波及する可能性がある。
【０１９６】
具体的には、除外部１３２は、選択要素に対する影響要素を以下のように抽出する。
まず、除外部１３２は、選択情報から構成ＩＤを抽出する。
次に、除外部１３２は、抽出した構成ＩＤと同じＩＤが設定された構成要素情報をソフトウェア構造ファイル２０２から選択する。
そして、判別部１３０は、構成要素情報から依存要素を抽出する。抽出される依存要素が、選択要素に対する影響要素である。
【０１９７】
ステップＳ７３５において、除外部１３２は、重要要素ファイル２０４を検索することによって、選択要素に対する影響要素の重要要素情報を探す。
【０１９８】
具体的には、除外部１３２は、重要要素ファイル２０４を以下のように検索する。
まず、除外部１３２は、選択要素に対する影響要素の要素名が設定された構成要素情報をソフトウェア構造ファイル２０２から選択する。
次に、除外部１３２は、選択した構成要素情報からＩＤを抽出する。抽出されるＩＤを該当ＩＤと呼ぶ。
そして、除外部１３２は、該当ＩＤと同じ構成ＩＤが設定された重要要素情報を重要要素ファイル２０４から探す。
ステップＳ７３５において、選択要素に対する影響要素の重要要素情報を該当情報と呼ぶ。
【０１９９】
該当情報が有る場合、除外部１３２は、該当情報に確認フラグ「要」を設定する。
【０２００】
該当情報が無い場合、除外部１３２は、該当ＩＤと同じ構成ＩＤが設定された重要要素情報を生成し、生成した重要要素情報を重要要素ファイル２０４に追加する。そして、除外部１３２は、追加した重要要素情報に確認フラグ「要」を設定する。
【０２０１】
ステップＳ７３６において、除外部１３２は、未選択の重要要素情報が有るか判定する。
ステップＳ７３６において、未選択の重要要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップＳ７３１に進む。
未選択情報が無い場合、処理はステップＳ７３７に進む。
【０２０２】
ステップＳ７３７において、除外部１３２は、重要要素ファイル２０４から、確認フラグが空欄である重要要素情報を選択する。
ステップＳ７３７において、確認フラグが空欄である重要要素情報を除外情報と呼ぶ。
除外部１３２は、それぞれの除外情報に確認フラグ「不要」を設定する。
【０２０３】
図３６に戻り、ステップＳ７４０から説明を続ける。
ステップＳ７４０において、可視化部１４０は、重要要素ファイル２０４とソフトウェア構造ファイル２０２とに基づいて、可視化図２０５を生成する。
ステップＳ７４０は、実施の形態１におけるステップＳ１３０（図２参照）と同じである。
但し、可視化部１４０は、いずれの除外要素でもない重要要素のそれぞれを強調させる。強調される重要要素は、確認フラグ「要」が設定された重要要素情報に対応する構成要素である。
可視化部１４０は、除外要素である重要要素のそれぞれを可視化図２０５に含めてもよいし、除外要素である重要要素のそれぞれを可視化図２０５に含めなくてもよい。
除外要素である重要要素のそれぞれを可視化図２０５に含める場合、可視化部１４０は、除外要素である重要要素のそれぞれを確認が不要である構成要素であることを表す表現で記す。つまり、可視化部１４０は、除外要素である重要要素のそれぞれをいずれの除外要素でもない重要要素のそれぞれと区別して記す。
【０２０４】
ステップＳ７５０において、可視化部１４０は、可視化図２０５のデータを出力することによって、ディスプレイに可視化図２０５を表示させる。
【０２０５】
＊＊＊実施の形態７の効果＊＊＊
確認が不要な構成要素を重要要素から除外することができる。これにより、確認範囲を限定することができる。
【０２０６】
＊＊＊実施の形態の補足＊＊＊
図３９に基づいて、ソフトウェア可視化装置１００のハードウェア構成を説明する。
ソフトウェア可視化装置１００は処理回路１０９を備える。
処理回路１０９は、受付部１１０と関連付け部１２０と判別部１３０と算出部１３１と除外部１３２と可視化部１４０と出力部１５０とを実現するハードウェアである。
処理回路１０９は、専用のハードウェアであってもよいし、メモリ１０２に格納されるプログラムを実行するプロセッサ１０１であってもよい。
【０２０７】
処理回路１０９が専用のハードウェアである場合、処理回路１０９は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
ソフトウェア可視化装置１００は、処理回路１０９を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路１０９の役割を分担する。
【０２０８】
処理回路１０９において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
【０２０９】
このように、処理回路１０９はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０２１０】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【０２１１】
具体的には、実施の形態２から実施の形態７を組み合わせても実施しても構わない。例えば、それぞれの重要要素を実行回数と評価指数との合計に応じて強調してもよい。また、重要要素と影響要素と変更要素とのそれぞれを互いに区別した状態で強調してもよい。また、確認が不要な構成要素を重要要素から除外してもよい。
【０２１２】
重要要素、影響要素または変更要素を強調する方法は、色または大きさに限られない。例えば、形状の変更またはマークの付記によって重要要素などを強調してもよい。
【０２１３】
実行要素情報、構成要素情報、関連付け情報または重要要素情報を構成する情報の組み合わせは、各実施の形態で示した情報の組み合わせに限られない。各実施の形態で示した情報の組み合わせから一部の情報を削除してもよいし、各実施の形態で示した情報の組み合わせに他の情報を追加してもよい。
【符号の説明】
【０２１４】
１００  ソフトウェア可視化装置、１０１  プロセッサ、１０２  メモリ、１０３  補助記憶装置、１０４  入出力インタフェース、１０９  処理回路、１１０  受付部、１２０  関連付け部、１３０  判別部、１３１  算出部、１３２  除外部、１４０  可視化部、１５０  出力部、１９１  記憶部、２０１  実行履歴ファイル、２０２  ソフトウェア構造ファイル、２０３  関連付けファイル、２０４  重要要素ファイル、２０５  可視化図、２１０  コールグラフ、２１１  ファイル枠、２１２  クラス枠、２１３  関数図形、２１４  呼び出し線、２２０  フローチャート。
【図１】
2019159397.tif 000003
【図２】
2019159397.tif 000004
【図３】
2019159397.tif 000005
【図４】
2019159397.tif 000006
【図５】
2019159397.tif 000007
【図６】
2019159397.tif 000008
【図７】
2019159397.tif 000009
【図８】
2019159397.tif 000010
【図９】
2019159397.tif 000011
【図１０】
2019159397.tif 000012
【図１１】
2019159397.tif 000013
【図１２】
2019159397.tif 000014
【図１３】
2019159397.tif 000015
【図１４】
2019159397.tif 000016
【図１５】
2019159397.tif 000017
【図１６】
2019159397.tif 000018
【図１７】
2019159397.tif 000019
【図１８】
2019159397.tif 000020
【図１９】
2019159397.tif 000021
【図２０】
2019159397.tif 000022
【図２１】
2019159397.tif 000023
【図２２】
2019159397.tif 000024
【図２３】
2019159397.tif 000025
【図２４】
2019159397.tif 000026
【図２５】
2019159397.tif 000027
【図２６】
2019159397.tif 000028
【図２７】
2019159397.tif 000029
【図２８】
2019159397.tif 000030
【図２９】
2019159397.tif 000031
【図３０】
2019159397.tif 000032
【図３１】
2019159397.tif 000033
【図３２】
2019159397.tif 000034
【図３３】
2019159397.tif 000035
【図３４】
2019159397.tif 000036
【図３５】
2019159397.tif 000037
【図３６】
2019159397.tif 000038
【図３７】
2019159397.tif 000039
【図３８】
2019159397.tif 000040
【図３９】
2019159397.tif 000041
【手続補正書】
【提出日】令和2年3月27日(2020.3.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である実行要素毎に実行要素情報を含む実行履歴情報と、前記対象プログラムの構造を表す情報として構成要素毎に構成要素情報を含むソフトウェア構造情報とを受け付ける受付部と、
前記実行履歴情報に含まれるそれぞれの実行要素情報と前記ソフトウェア構造情報に含まれるそれぞれの構成要素情報とを互いに関連付けて関連付け情報を生成する関連付け部と、
前記関連付け情報に基づいて前記ソフトウェア構造情報を参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素情報を生成する判別部と、
前記重要要素情報と前記ソフトウェア構造情報とに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する可視化部とを備えるソフトウェア可視化装置。
【請求項２】
前記ソフトウェア可視化装置は、前記実行履歴情報に基づいて、それぞれの重要要素の実行回数を重要度として算出する算出部を備え、
前記可視化部は、それぞれの重要要素を前記重要度に応じて強調させて前記可視化図を生成する
請求項１に記載のソフトウェア可視化装置。
【請求項３】
前記ソフトウェア可視化装置は、前記ソフトウェア構造情報に基づいて、それぞれの重要要素を評価して得られる評価指数を重要度として算出する算出部を備え、
前記可視化部は、それぞれの重要要素を前記重要度に応じて強調させて前記可視化図を生成する
請求項１に記載のソフトウェア可視化装置。
【請求項４】
前記判別部は、前記ソフトウェア構造情報に基づいて、それぞれの重要要素から影響を受ける影響要素を判別し、
前記可視化部は、前記影響要素をそれぞれの重要要素と区別した状態で強調させて前記可視化図を生成する
請求項１に記載のソフトウェア可視化装置。
【請求項５】
前記ソフトウェア構造情報は、前記対象プログラムの複数の構成要素情報と、前記対象プログラムとバージョンが異なる基準プログラムの複数の構成要素情報とを含み、
前記判別部は、前記ソフトウェア構造情報に基づいて、前記対象プログラムの複数の構成要素のうち前記基準プログラムのいずれの構成要素とも異なる変更要素を判別し、
前記可視化部は、前記変更要素をそれぞれの重要要素と区別した状態で強調させて前記可視化図を生成する
請求項１に記載のソフトウェア可視化装置。
【請求項６】
前記ソフトウェア可視化装置は、除外部を備え、
前記ソフトウェア構造情報は、前記対象プログラムの複数の構成要素情報と、前記対象プログラムとバージョンが異なる基準プログラムの複数の構成要素情報とを含み、
前記判別部は、前記ソフトウェア構造情報に基づいて、前記対象プログラムの複数の構成要素のうち前記基準プログラムのいずれの構成要素とも異なる変更要素を判別し、
前記除外部は、前記ソフトウェア構造情報に基づいて、前記変更要素と前記変更要素から影響を受ける影響要素とのいずれでもない重要要素を除外要素として判別し、
前記可視化部は、いずれの除外要素でもない重要要素のそれぞれを強調させて前記可視化図を生成する
請求項１に記載のソフトウェア可視化装置。
【請求項７】
前記関連付け部は、前記対象プログラムを複数回実行することによって得られる複数の実行履歴情報から２つ以上の実行履歴情報を選択し、選択した２つ以上の実行履歴情報に含まれるそれぞれの実行要素情報と前記ソフトウェア構造情報に含まれるそれぞれの構成要素情報とを互いに関連付けて前記関連付け情報を生成する
請求項１から請求項６のいずれか１項に記載のソフトウェア可視化装置。
【請求項８】
前記実行履歴情報が実行履歴ファイルであり、
前記ソフトウェア構造情報がソフトウェア構造ファイルであり、
前記関連付け情報が関連付けファイルであり、
前記重要要素情報が重要要素ファイルである
請求項１から請求項７のいずれか１項に記載のソフトウェア可視化装置。
【請求項９】
受付部が、対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である実行要素毎に実行要素情報を含む実行履歴情報と、前記対象プログラムの構造を表す情報として構成要素毎に構成要素情報を含むソフトウェア構造情報とを受け付け、
関連付け部が、前記実行履歴情報に含まれるそれぞれの実行要素情報と前記ソフトウェア構造情報に含まれるそれぞれの構成要素情報とを互いに関連付けて関連付け情報を生成し、
判別部が、前記関連付け情報に基づいて前記ソフトウェア構造情報を参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素情報を生成し、
可視化部が、前記重要要素情報と前記ソフトウェア構造情報とに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する
ソフトウェア可視化方法。
【請求項１０】
前記実行履歴情報が実行履歴ファイルであり、
前記ソフトウェア構造情報がソフトウェア構造ファイルであり、
前記関連付け情報が関連付けファイルであり、
前記重要要素情報が重要要素ファイルである
請求項９に記載のソフトウェア可視化方法。
【請求項１１】
対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である実行要素毎に実行要素情報を含む実行履歴情報と、前記対象プログラムの構造を表す情報として構成要素毎に構成要素情報を含むソフトウェア構造情報とを受け付ける受付部と、
前記実行履歴情報に含まれるそれぞれの実行要素情報と前記ソフトウェア構造情報に含まれるそれぞれの構成要素情報とを互いに関連付けて関連付け情報を生成する関連付け部と、
前記関連付け情報に基づいて前記ソフトウェア構造情報を参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素情報を生成する判別部と、
前記重要要素情報と前記ソフトウェア構造情報とに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する可視化部
としてコンピュータを機能させるためのソフトウェア可視化プログラム。
【請求項１２】
前記実行履歴情報が実行履歴ファイルであり、
前記ソフトウェア構造情報がソフトウェア構造ファイルであり、
前記関連付け情報が関連付けファイルであり、
前記重要要素情報が重要要素ファイルである
請求項１１に記載のソフトウェア可視化プログラム。
【国際調査報告】
2019159397.tif 000042
2019159397.tif 000043
2019159397.tif 000044