JP6684201B2 - ソフトウェア構造可視化システム及びその方法 - Google Patents

ソフトウェア構造可視化システム及びその方法 Download PDF

Info

Publication number
JP6684201B2
JP6684201B2 JP2016249355A JP2016249355A JP6684201B2 JP 6684201 B2 JP6684201 B2 JP 6684201B2 JP 2016249355 A JP2016249355 A JP 2016249355A JP 2016249355 A JP2016249355 A JP 2016249355A JP 6684201 B2 JP6684201 B2 JP 6684201B2
Authority
JP
Japan
Prior art keywords
software structure
importance
user
node
terminal device
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.)
Active
Application number
JP2016249355A
Other languages
English (en)
Other versions
JP2018106256A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2016249355A priority Critical patent/JP6684201B2/ja
Publication of JP2018106256A publication Critical patent/JP2018106256A/ja
Application granted granted Critical
Publication of JP6684201B2 publication Critical patent/JP6684201B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、ソフトウェア構造可視化システム及びその方法に関し、詳しくは、ソフトウェアの構造をユーザの要望に合わせて可視化できるようにしたソフトウェア構造可視化システムに関する。
ソフトウェアの開発及びソフトウェアの改良など、ソフトウェアに係る諸作業に関与するユーザにとっては、ソフトウェアのソースコードに触れずに、グラフ表示された情報に基づき、ソフトウェアに係る諸作業をすることが好適である。
例えば、特許文献1には、ソフトウェアの構成や処理概要に関する情報を変数依存関係の観点からユーザに提供する際に、ソフトウェアを複数のノードの集合として表示する、ソフトウェア構造可視化システムが開示されている。
特開2013-156786号公報
しかしながら、従来の可視化システムには、ユーザにとって参照したい箇所を、適切に表示することができないという課題があった。
本発明は、ユーザが参照したい箇所をユーザが認識し易いように表示することができるソフトウェア構造可視化システム及びその方法を提案することを目的とする。
この目的を達成するために、本発明は、ソフトウェアの構造を可視化するソフトウェア構造可視化システムにおいて、ユーザ側端末装置と、ソフトウェアを管理するサーバとを備え、サーバは、ソフトウェアを構成する複数のノードを決定し、当該複数のノードをユーザ側端末装置に表示させ、ユーザ側端末装置に対するユーザの操作に応じて、複数のノードについて重要度を決定し、当該重要度に基づいて、ユーザ側端末装置での複数のノードの表示態様を設定するようにした。
また本発明においては、ソフトウェアの構造を可視化するソフトウェア構造可視化システムにおけるソフトウェア構造可視化方法において、ソフトウェア構造可視化システムは、ユーザ側端末装置と、ソフトウェアを管理するサーバとを備え、サーバが、ソフトウェアを構成する複数のノードを決定し、当該複数のノードをユーザ側端末装置に表示させる第1のステップと、サーバが、ユーザ側端末装置に対するユーザの操作に応じて、複数のノードについて重要度を決定する第2のステップと、サーバが、当該重要度に基づいて、ユーザ側端末装置での複数のノードの表示態様を設定する第3のステップとを備えるようにした。
本発明によれば、ユーザが参照したい箇所をユーザが認識し易いように表示することができるソフトウェア構造可視化システム及びその方法を実現できる。
本実施の形態によるソフトウェア構造可視化システムのハードウェア構成を示すブロック図である。 本実施の形態によるサーバなどのハードウェア構成を示すブロック図である。 本実施の形態による重要度算出装置の機能構成を示すブロック図である。 本実施の形態によるソフトウェア構造表示装置の機能構成を示す図である。 ノード情報テーブルの構成を示す概念図である。 エッジ情報テーブルの構成を示す概念図である。 重要度テーブルの構成を示す概念図である。 ユーザ操作情報テーブルの構成を示す概念図である。 ノード表示画面の構成を略線的に示す略線図である。 ノード表示画面の構成を略線的に示す略線図である。 ソフトウェア構造表示処理の処理手順を示すフローチャートである。 重要度算出処理の処理手順を示すフローチャートである。
以下図面について、本発明の一実施の形態を詳述する。
(1)本実施の形態によるソフトウェア構造可視化システムの構成
図1は、本実施の形態によるソフトウェア構造可視化システムのハードウェア構成を示す。このシステムは、ソフトウェアの構造を表示する装置と、ソフトウェアの構造に対する重要度を、ユーザの操作に基づいて算出する装置と、を備える。
詳しくは、重要度算出装置10が、ネットワーク30を介して、複数のソフトウェア構造表示装置20に接続されている。重要度算出装置10は、複数のソフトウェア構造表示装置20のサーバとして機能し、複数のソフトウェア構造表示装置20それぞれに対する操作情報を集約し、これを、ユーザが操作を行うユーザ側端末であるソフトウェア構造表示装置20におけるソフトウェアの構造の表示態様に反映させる。
(2)本実施の形態によるソフトウェア構造可視化機能
次に、本実施の形態のソフトウェア構造可視化システムに実装されたソフトウェア試験支援機能について説明する。
ソフトウェア構造可視化システムは、ソースコードに基づくソフトウェアの構造をグラフ、表及び図などにすることで可視化するシステムである。このシステムは、可視化されたソフトウェア構造に対する、表示箇所を拡大する、表示箇所を縮小する、表示箇所を移動する、又はそれらの組み合わせといった、ユーザの操作に応じて(以下、ユーザ操作情報とする)、表示の態様を変化させる。
ソフトウェア構造とは、ソフトウェアの構造を示す単位であるノード及びノード間の情報といったノード関連情報であり、重要度とは、ソフトウェアの構造及びユーザ操作情報に設定されたスコアをN(Nは1以上の整数)等分した情報で、例えば、3等分にする場合は、高、中、低とされる。スコアの上位1/3が高、次の1/3が中、残りが低とされる。なお、重要度は、ノード種別ごとに別々に設定される。
ソフトウェアの構造へのスコアは、例えば、ノードの行数によって、ベースとなるスコアを50や30とし、それぞれのノードに対する操作に応じた数値及び倍率を加算するなどとして設定される。
具体的には、そのノードの縮小操作(倍率が1より小さい場合)は1、そのノードへの移動は1、そのノードの拡大操作は倍率の値が加算値とされる。また、縮小倍率、拡大倍率及び移動量に応じてスコアは加算される。
複数のソフトウェア構造表示装置20それぞれは複数のソフトウェア構造表示装置20それぞれに対してのユーザの操作情報を取得し、重要度算出装置10へ送信する。重要度算出装置10は、取得したそれぞれの操作情報に対応する個別の重要度(以下、個別重要度とする)を算出するとともに、全てのソフトウェア構造表示装置20の平均の重要度(以下、平均重要度とする)も算出する。これらの算出を、操作情報を受信するたびに行う。
重要度算出装置10は、複数のソフトウェア構造表示装置20それぞれへ複数のソフトウェア構造表示装置20それぞれの個別重要度及び平均重要度を送信する。複数のソフトウェア構造表示装置20それぞれにおいては、複数のソフトウェア構造表示装置20それぞれの操作情報に応じた重要度を用いることで、最適にソフトウェア構造を把握することが可能となる。
また平均重要度を用いることで、ユーザは、他のソフトウェア構造表示装置20での平均的な操作情報も把握することができ、どのノードが一般的に重要とされているかを把握することができる。
図2に示すように、重要度算出装置10及びソフトウェア構造表示装置20は、主制御装置51、外部記憶装置52、入力装置53、出力装置54及び通信装置55を備え、それぞれの装置は内部バスで接続されている。
主制御装置51はCPU及びRAMを備えた構成であり、外部記憶装置52は不揮発的に情報を記憶するHDDであり、入力装置53はマウス及びキーボードであり、出力装置54はモニタであり、通信装置55はネットワークカードである。HDDに格納されたプログラム及びデータなどがRAMに読み込まれ、CPUによって実行されることで各機能が実現される。
図3に示すように、重要度算出装置10は、ソフトウェア構造及び複数のソフトウェア構造表示装置20それぞれから送信されるそれぞれのユーザ操作情報からそれぞれの重要度を算出する装置であり、ソフトウェア構造取得モジュール101、ソフトウェア構造格納モジュール102、ソフトウェア構造送信モジュール103、重要度算出モジュール104、全重要度格納モジュール105、重要度送信モジュール106、全ユーザ操作情報格納モジュール107、ユーザ操作情報受信モジュール108及び通信モジュール109を備える。モジュールは制御機能を実現する単位であって、プログラム、及び/又は、ハードウェアによって実現される。
ソフトウェア構造取得モジュール101は、主制御装置51に備えられ、入力装置53から入力されるソフトウェア構造を取得する。ソフトウェア構造は、入力装置53からの入力でなく、ソースコードを所定の方法で解析することで取得されてもよい。
ソフトウェア構造格納モジュール102は、主制御装置51に備えられ、ノード情報テーブル102A及びエッジ情報テーブル102Bにソフトウェア構造を格納する。なお外部記憶装置52は、ノード情報テーブル102A及びエッジ情報テーブル102Bなどの各種テーブルを備える。
図5に示すように、ノード情報テーブル102Aは、ノードの情報を登録している。ノード情報テーブル102Aは、ノードID欄102A1、ノード名称欄102A2、ノード種別欄102A3、親ノード欄102A4、座標欄102A5、サイズ欄102A6、形状欄102A7及びノード固有情報欄102A8を備える。
ノードID欄102A1には、ノードIDが登録される。例えば、ノードIDはN00000001といった英字と8桁の数字を備える文字列であり、それぞれのノードの処理の際にソフトウェア構造可視化システムに一意に識別させるために主に用いられる。
ノードの種別によって、8桁の数字のうちの3桁目の数字が変更される。例えば、親スクリプトは00000101、00000102、…とされ、子スクリプトは00000201、00000202、…とされ、プログラムは00000301、00000302、…とされる。
ノード名称欄102A2には、ノード名称が登録される。例えば、ノード名称はParentScript_Aといったノード種別と英字を備える文字列であり、それぞれのノードの表示の際にユーザに一意に識別させるために主に用いられる。
例えば、親スクリプトはParentScript、子スクリプトはChildScript、プログラムはProgramとされる。また、英字は、ノード種別ごとにA、B、…と順に付けられる。
ノード種別欄102A3には、ノード種別が登録される。例えば、ノード種別は親スクリプト、子スクリプト及びプログラムの3種類とされる。親スクリプトは機能単位であり、子スクリプトはいくつか集まって機能を実現する単位であり、プログラムはソフトウェアの最小単位とされる。
ソフトウェアは1又は複数の親スクリプトを呼び出し、親スクリプトは1又は複数の子スクリプトを呼び出し、子スクリプトは1又は複数のプログラムを呼び出す。
親ノード欄102A4には、親ノードが登録される。親ノードは当該ノードの親となるノード名称であり、当該ノードの種別がプログラムの場合は、親ノードの種別は子スクリプト、当該ノードが子スクリプトの場合は親ノードの種別は親スクリプトとなる。当該ノードが親スクリプトの場合は、親ノードは該当なしとなり、親ノード欄102A4には−が登録される。
座標欄102A5には、座標が登録される。例えば、座標は(3.53,3.76)といったX座標及びY座標を表す形式とされる。X座標、Y座標共に正の値かつ小数第2位までとされる。座標は、当該ノードを表す図形の左上隅の座標を示す。
サイズ欄102A6には、サイズが登録される。例えば、サイズは(12,7)といったX軸方向の幅及びY軸方向の高さを表す形式とされる。X座標、Y座標共に正の値かつ0.5単位での表示とされる。
形状欄102A7には、形状が登録される。例えば、形状はノード種別ごとに同じ図形とし、親スクリプトは四角、子スクリプトは角丸四角、プログラムは丸とされる。
ノード固有情報欄102A8には、ノード固有情報が登録される。ノード固有情報はメタデータとされ、例えば図5に示すように行数:100といったように当該ノードのソースコードの行数とされる。
ノード固有情報は、行数に限らず、コミット履歴、クラス数、カプセル化されたデータであるフィールド数、又はそれらの組み合わせでもよい。ノード固有情報は、混在していても、1つのノードに対して複数表示されてもよい。
例えば、ノードID欄102A1にN00000001が登録されている行のノード固有情報欄102A8に行数:100が登録されていて、ノードID欄102A1にN00000002が登録されている行のノード固有情報欄102A8にクラス数:5が登録される。
また、例えばノードID欄102A1にN00000001が登録されている行のノード固有情報欄102A8に行数:100及びクラス数:5が登録される。なお、エッジ固有情報として登録すべき内容がない場合は−がエッジ固有情報欄102B8へ登録される。
図6に示すように、エッジ情報テーブル102Bには、ノード間の情報であるエッジの情報が登録される。エッジ情報テーブル102Bは、エッジID欄102B1、エッジ名称欄102B2、エッジ種別欄102B3、始端ノード欄102B4、終端ノード欄102B5、幅欄102B6、縦スタイル欄102B7及びエッジ固有情報欄102B8を備える。
エッジID欄102B1には、エッジIDが登録される。例えば、エッジIDは、E00000001といった英字と8桁の数字を備える文字列であり、それぞれのエッジの処理の際にソフトウェア構造可視化システムに一意に識別させるために主に用いられる。
エッジによって接続されるノードの種類によって、8桁の数字のうちの3桁目の数字が変更される。例えば、親スクリプト間を接続するエッジは00000101、00000102、…とされ、子スクリプト間を接続するエッジは00000201、00000202、…とされ、プログラム間を接続するエッジは00000301、00000302、…とされる。
エッジ名称欄102B2には、エッジ名称が登録される。例えば、エッジ名称はnext_A_Bといったエッジ種別及び2文字の英字を備える文字列であり、それぞれのエッジの表示の際にユーザに一意に識別させるために主に用いられる。
エッジ種別欄102B3には、エッジ種別が登録される。例えば、エッジ種別はあるノードの次のノードを指すネクストエッジ及びあるノードの前のノードを指すプレビアスエッジの2種類とされる。ネクストエッジはnextと表示し、プレビアスエッジはprevと表示する。
例えば、エッジ名称がnext_A_Bの場合、ParentScript_AからParentScript_Bの方向にノードが接続されることを示す。なお、エッジは同種のノード間を接続する。
始端ノード欄102B4には、エッジの始端となるノードIDが登録され、終端ノード欄102B5には、エッジの終端となるノードIDが登録される。
幅欄102B6には、エッジの幅が登録される。エッジの幅は3pt、2pt又は1ptなどの1以上の整数のDTPポイントとされ、エッジを表示する際の線の太さが表され、親スクリプト間のエッジを太く、プログラム間のエッジを細く、子スクリプト間のエッジを中間の太さとされる。
縦スタイル欄102B7には、縦スタイルが登録される。例えば、縦スタイルは実線又は破線とされ、エッジが表示される際の線の種類が表される。
エッジ固有情報欄102B8には、エッジ固有情報が登録される。エッジ固有情報として登録すべき内容がない場合は−がエッジ固有情報欄102B8へ登録される。エッジ固有情報は、ノード間の呼び出し回数などのメタデータとされる。
ソフトウェア構造送信モジュール103は、通信装置55に備えられ、ソフトウェア構造をソフトウェア構造表示装置20へ通信装置55に備えられる通信モジュール109及びネットワーク30を介して送信する。
重要度算出モジュール104は、主制御装置51に備えられ、ソフトウェア構造及び複数のソフトウェア構造表示装置20それぞれから取得したそれぞれのユーザ操作情報を基にソフトウェア構造表示装置20それぞれの個別重要度を、スコアを設定することで算出する。また、重要度算出モジュール104は、全てのソフトウェア構造表示装置20の平均の平均重要度についても算出する。
全重要度格納モジュール105は、主制御装置51に備えられ、複数のソフトウェア構造表示装置20それぞれから取得したユーザ操作情報に基づく個別重要度を個別重要度テーブル105Aに格納する。また全重要度格納モジュール105は、複数のソフトウェア構造表示装置20それぞれから取得したユーザ操作情報に基づく平均重要度を平均重要度テーブル105Bへ格納する。
図7に示すように、個別重要度テーブル105Aは、ノードID欄105A1、スコア欄105A2及び個別重要度欄105A3を備える。平均重要度テーブル105Bの構成は個別重要度テーブル105Aとほぼ同じであるが、個別重要度欄105A3の代わりに平均重要度欄を備える。
ノードID欄105A1は、ノード情報テーブル102Aで説明したノードID欄102A1と同様であるため、説明を省略する。
スコア欄105A2にはスコアが登録され、個別重要度欄105A3には重要度が登録される。例えば、スコアはノード種別が親スクリプトのノードにおいて、スコアの範囲が1〜300とされると、101、251及び87のスコアは、それぞれ中、高及び低の重要度とされる。これは、スコアの1〜100は重要度低、101〜200は重要度中、201〜30は重要度高とされるためである。
同様に、ノード種別が子スクリプトのノードにおいて、スコアの範囲が1〜450とされると、240、40及び348のスコアは、それぞれ中、低及び高の重要度とされる。これは、スコアの1〜150が重要度低、151〜300が重要度中、301〜450が重要度高とされるためである。
同様に、ノード種別がプログラムのノードにおいて、スコアの範囲が1〜600とされると、101、251及び87のスコアは、それぞれ中、高及び低の重要度とされる。これは、スコアの1〜100が重要度低、101〜200が重要度中、201〜300が重要度高とされるためである。
平均重要度は、例えば、それぞれのノードの平均スコアを、上記のそれぞれのノードのスコアとして扱うことで算出される。例えば、ノード種別が子スクリプトのノードにおいて、N00000001のスコアがそれぞれのソフトウェア構造表示装置20で、100、300及び500である場合、それぞれのスコアが加算され、ソフトウェア構造表示装置20の個数で割られることで、N00000001の平均スコアは300とされる。同様に、N00000002及びN00000003についても平均スコアが求められる。
重要度送信モジュール106は、複数のソフトウェア構造表示装置20それぞれに、複数のソフトウェア構造表示装置20それぞれからのユーザ操作情報に基づく個別重要度及び平均重要度を、通信装置55に備えられる通信モジュール109及びネットワーク30を介して送信する。
全ユーザ操作情報格納モジュール107は、主制御装置51に備えられ、ユーザ操作情報テーブル107Aにユーザ操作情報を格納する。ユーザ操作情報テーブル107Aには、重要度算出装置10と接続される複数のソフトウェア構造表示装置20それぞれにおけるそれぞれのユーザ操作情報が格納される。
図8に示すように、ユーザ操作情報テーブル107Aは、操作ID欄107A1、操作時刻欄107A2、操作種別欄107A3、表示領域座標欄107A4、表示領域サイズ欄107A5及び倍率欄107A6を備える。
操作ID欄107A1には、操作IDが登録される。例えば、操作IDはM00000001といった英字と8桁の数字を備える文字列であり、それぞれの操作情報の処理の際にソフトウェア構造可視化システムに一意に識別させるために主に用いられる。8桁の数字は操作の時系列順に00000001から始まり、昇順とされる。
操作時刻欄107A2には、操作時刻が登録される。例えば、操作時刻は2016/4/16 15:00といった年、月、日、時及び分であり、操作が発生した時刻を示す。
操作種別欄107A3には、操作種別が登録される。例えば、操作種別は移動、拡大及び縮小の3種類とされる。
表示領域座標欄107A4には、表示領域座標が登録される。例えば、表示領域座標は(−5.48,5.76)といったX軸方向及びY軸方向の座標を表す形式とされる。X座標、Y座標共に小数第2位までとし、負の値を含む。
表示領域サイズ欄107A5には、表示領域サイズが登録される。表示領域サイズは(30,18)といったX軸方向の幅及びY軸方向の高さを表す形式とされる。X座標、Y座標共に1以上の整数とされる。
倍率欄107A6には、倍率が登録される。倍率は1、3及び1/2といった等倍、拡大及び縮小とされる。拡大倍率及び縮小倍率は小数第1位までとし、正の値とされる。
ソフトウェア構造を描画した図がちょうど画面に収まる倍率を1とされると、倍率が3の場合は、幅及び高さが1/3の領域のみが画面に表示される。
ユーザ操作情報受信モジュール108は、主制御装置51に備えられ、複数のソフトウェア構造表示装置20それぞれからユーザ操作情報を、通信装置55に備えられる通信モジュール109及びネットワーク30を介してソフトウェア構造表示装置20から受信する。
図4に示すように、ソフトウェア構造表示装置20は、ユーザ操作情報取得モジュール201、ユーザ操作情報格納モジュール202、ユーザ操作情報送信モジュール203、重要度格納モジュール204、重要度受信モジュール205、ソフトウェア構造表示モジュール206、ソフトウェア構造描画モジュール207、ソフトウェア構造格納モジュール208、ソフトウェア構造受信モジュール209及び通信モジュール210を備える。
ユーザ操作情報取得モジュール201は、主制御装置51に備えられ、入力装置53から入力されたユーザ操作情報を取得する。
ユーザ操作情報格納モジュール202は、主制御装置51に備えられ、ソフトウェア構造表示装置20におけるユーザ操作情報をユーザ操作情報テーブル202Aに格納する。ユーザ操作情報テーブル202Aの構成はユーザ操作情報テーブル107Aの構成と同様であるため、説明を省略する。
ユーザ操作情報送信モジュール203は、主制御装置51に備えられ、当該ソフトウェア構造表示装置20のユーザ操作情報を、通信装置55に備えられる通信モジュール210及びネットワーク30を介して重要度算出装置10へ送信する。
重要度格納モジュール204は、主制御装置51に備えられ、ソフトウェア構造表示装置20の個別重要度を個別重要度テーブル204Aに格納する。また、重要度格納モジュール204は、平均重要度を平均重要度テーブル204Bに格納する。個別重要度テーブル204A及び平均重要度テーブル204Bの構造は、個別重要度テーブル105Aの構造と同様であるため、説明を省略する。
重要度受信モジュール205は、主制御装置51に備えられ、重要度算出装置10から当該ソフトウェア構造表示装置20の個別重要度及び平均重要度を、通信装置55に備えられる通信モジュール210及びネットワーク30を介して受信する。
ソフトウェア構造表示モジュール206は、主制御装置51に備えられ、ソフトウェア構造描画モジュール207の描画した結果を出力装置54に表示する。
ソフトウェア構造描画モジュール207は、主制御装置51に備えられ、ソフトウェア構造、個別重要度及びユーザ操作情報を基にデータフローダイアグラム及び処理フロー図などの図及び表などを描画する。
図9及び図10にソフトウェア構造を可視化し描画した略線図を示す。ソフトウェア構造描画モジュール207は、倍率によって描画するノードを変化させる。具体的には、ソフトウェア構造描画モジュール207は、描画するノードを、ノード種別及び個別重要度を参照して決定する。
例えば、倍率が1より大きく2以下の場合は、ノード種別が親スクリプトのノードのみを描画し、倍率が2より大きく3以下の場合は、ノード種別が親スクリプト及び子スクリプトのノードを描画し、倍率が3より大きい場合は、表示領域内のノード種別が親スクリプト、子スクリプト及びプログラムのノードを描画する。
なお、倍率が0より大きく1以下の場合は、可視化の主な対象ではない他のソフトウェアとの関連を表示する。また、倍率が4より大きい場合は、例えばソースコードを表示する。
また、倍率が1より大きく1.3以下の場合は、ノード種別が親スクリプトのノードかつ個別重要度が高のノードを描画する。同様に、倍率が1.3より大きく1.6以下の場合は、ノード種別が親スクリプトのノードかつ個別重要度が高及び低のノードを描画し、倍率が1.6より大きく2以下の場合は、ノード種別が親スクリプトのノードかつ個別重要度が低、中及び高のノードを描画する。
倍率が2より大きく2.3以下の場合は、ノード種別が子スクリプトのノードかつ個別重要度が高のノードを描画する。同様に、倍率が2.3より大きく2.6以下の場合は、ノード種別が子スクリプトのノードかつ個別重要度が高及び低のノードを描画し、倍率が1.6より大きく3以下の場合は、ノード種別が子スクリプトのノードかつ個別重要度が低、中及び高のノードを描画する。
なお、倍率が2より大きい場合は、ノード種別が親スクリプトのノードは、重要度に関わらず、表示領域内であれば描画される。
図9は、ソフトウェア構造描画モジュール207が、倍率によってノード種別に応じたノードを描画していることを示している。図9(A)においては倍率が2であり、ソフトウェア構造描画モジュール207は、ノード種別が親スクリプトのノードを描画している。
図9(B)においては倍率が3であり、ソフトウェア構造描画モジュール207は、ノード種別が子スクリプトのノードを描画している。図9(C)においては倍率が4、ソフトウェア構造描画モジュール207は、ノード種別が親スクリプトのノードを描画している。
図10は、ソフトウェア構造描画モジュール207が、倍率によって個別重要度に応じたノードを描画していることを示している。倍率が3以上の場合について示している。図10(A)においては倍率が3.2であり、ソフトウェア構造描画モジュール207は、個別重要度が高のノードを描画している。
図10(B)においては、倍率が3.5であり、ソフトウェア構造描画モジュール207は、個別重要度が高及び中のノードを描画している。図10(C)においては、倍率が3.8であり、ソフトウェア構造描画モジュール207は、個別重要度が高、中及び低のノードを描画している。
ソフトウェア構造格納モジュール208は、主制御装置51に備えられ、ノード情報テーブル208A及びエッジ情報テーブル208Bにソフトウェア構造を格納する。ノード情報テーブル208A及びエッジ情報テーブル208Bの構成はノード情報テーブル102A及びエッジ情報テーブル102Bと同様であるため、説明を省略する。
ソフトウェア構造受信モジュール209は、主制御装置51に備えられ、重要度算出装置10からソフトウェア構造を、通信装置55に備えられる通信モジュール210及びネットワーク30を介して受信する。
(3)ソフトウェア構造可視化機能に関する各種処理
図11は、ソフトウェア構造表示装置20が実行するソフトウェア構造表示処理RT1の処理手順を示す。ユーザから入力装置53を介して所定操作が入力されると、ソフトウェア構造表示装置20は、この図に示す処理手順に従って、ソフトウェア構造を表示する。
ユーザ操作情報取得モジュール201は、そのソフトウェア構造表示装置20に入力されたユーザ操作情報を取得する(SP11)。ユーザ操作情報格納モジュール202は、ユーザ操作情報をユーザ操作情報テーブルに格納する(SP12)。
ソフトウェア構造描画モジュール207は、直前のユーザ操作情報の倍率を参照することで描画するノードを、ノード種別に応じて決定する(SP13)。ソフトウェア構造描画モジュール207は、直前のユーザ操作情報の倍率を参照することで描画するノードを、個別重要度に応じて決定する(SP14)。
ソフトウェア構造表示装置20からユーザ操作情報が送信された際に、重要度算出装置10が保持する個別重要度テーブル105A及び平均重要度テーブル105Bが更新され、更新された内容をソフトウェア構造表示装置20が取得し、ソフトウェア構造表示装置20が保持する個別重要度テーブル204A及び平均重要度テーブル204Bを更新する。
ソフトウェア構造表示装置20は、ソフトウェア構造表示処理RT1が終了した際に、未送信のユーザ操作情報を重要度算出装置10へ送信する。
ソフトウェア構造描画モジュール207は、直前のユーザ操作情報の表示領域座標及び表示領域サイズを参照し、その領域におけるノードとそのノードに関連するエッジを描画する(SP15)。この際に、描画するノードはノード種別及び個別重要度に応じたノードとされる。ソフトウェア構造表示モジュール206は、描画した結果である描画結果を出力する(SP16)。
図12は、重要度算出装置10が実行する重要度算出処理RT2の処理手順を示す。重要度算出装置10は、ソフトウェア構造表示処理RT1が終了した際に、この図に示す処理手順に従って、重要度を算出する。
ユーザ操作情報受信モジュール108は、複数のソフトウェア構造表示装置20それぞれからそれぞれのユーザ操作情報を受信し、重要度算出装置10が保持するユーザ操作情報テーブル107Aを更新する(SP21)。
重要度算出モジュールはスコアに倍率を加算するなどして(SP22)、個別重要度を決定し(SP23)、個別重要度テーブル105Aを更新する。また算出したスコアから平均スコアを算出し(SP24)、平均重要度を決定し(SP25)、平均重要度テーブル105Bを更新する。
重要度送信モジュール106は、更新した内容を複数のソフトウェア構造表示装置20それぞれへ送信する(SP26)。
(4)本実施の形態の効果
以上のように本実施の形態のソフトウェア構造可視化システムでは、ノードごとのユーザ操作に応じた個別重要度及び平均重要度を算出して、どのノードがユーザにとって重要かを判断する。
従って本ソフトウェア構造可視化システムによれば、ユーザ操作に応じて、可視化されたソフトウェア構造の表示の態様を変化させることにより、ユーザによって変更されることを要する箇所、追加で作成が必要となる箇所及びそれに関連する箇所を重点的に表示することができる。
(5)他の実施の形態
なお上述の実施の形態においては、本発明を図に対する操作に適用する場合について述べたが、本発明はこれに限らず、例えば、ソースコードの編集時間に応じて重要度を算出するようにしてもよい。
10……重要度算出装置、20……ソフトウェア構造表示装置、101……ソフトウェア構造取得モジュール、102……ソフトウェア構造格納モジュール、102A……ノード情報テーブル、102B……エッジ情報テーブル、103……ソフトウェア構造送信モジュール、104……重要度算出モジュール、105……全重要度格納モジュール、105A……重要度テーブル、106……重要度送信モジュール、107……全ユーザ操作情報格納モジュール、107A……ユーザ操作テーブル、108……ユーザ操作情報受信モジュール、201……ユーザ操作情報取得モジュール、202……ユーザ操作情報格納モジュール、202A……ユーザ操作情報テーブル、203……ユーザ操作情報送信モジュール、204……重要度格納モジュール、204A……重要度テーブル、205……重要度受信モジュール、206……ソフトウェア構造表示モジュール、207……ソフトウェア構造描画モジュール、208……ソフトウェア構造格納モジュール、208A……ノード情報テーブル、208B……エッジ情報テーブル、209……ソフトウェア構造受信モジュール。

Claims (9)

  1. ソフトウェアの構造を可視化するソフトウェア構造可視化システムであって、
    ユーザ側端末装置と、
    ソフトウェアを管理するサーバと
    を備え、
    前記サーバは、
    前記ソフトウェアを構成する複数のノードを決定し、当該複数のノードを前記ユーザ側端末装置に表示させ、
    前記ユーザ側端末装置に対するユーザの操作に応じて、前記複数のノードについて重要度を決定し、
    当該重要度に基づいて、前記ユーザ側端末装置での前記複数のノードの表示態様を設定し、
    前記サーバは、
    前記ノードに関係する情報が入力され、前記ノード及びノード間の情報であるソフトウェア構造を取得するソフトウェア構造取得モジュールと、
    前記ソフトウェア構造を格納するソフトウェア構造格納モジュールと、
    前記ソフトウェア構造を前記ユーザ側端末装置へ送信するソフトウェア構造送信モジュールと、
    前記ユーザ側端末装置からのユーザの前記操作に関する情報であるユーザ操作情報を受信するユーザ操作受信モジュールと、
    前記ユーザ操作情報を格納する全ユーザ操作格納モジュールと、
    前記ソフトウェア構造及び前記ユーザ操作情報を基に前記重要度を算出する重要度算出モジュールと、
    前記重要度を格納する全重要度格納モジュールと、
    前記重要度を前記ユーザ側端末装置へ送信する重要度送信モジュールと
    を備えるソフトウェア構造可視化システム。
  2. 前記ユーザ側端末装置は、
    前記ユーザ操作情報を受け付けるユーザ操作取得モジュールと、
    前記ユーザ操作情報を格納するユーザ操作格納モジュールと、
    前記ユーザ操作情報を前記サーバへ送信するユーザ操作送信モジュールと、
    前記サーバからの前記重要度を受信する重要度受信モジュールと、
    前記重要度を格納する重要度格納モジュールと、
    前記ソフトウェア構造を受信するソフトウェア構造受信モジュールと、
    前記ソフトウェア構造を格納するソフトウェア構造格納モジュールと、
    前記重要度、前記ユーザ操作情報及び前記ソフトウェア構造を基にソフトウェア構造画像を描画するソフトウェア構造描画モジュールと、
    前記ソフトウェア構造画像を表示するソフトウェア構造表示モジュールと
    を備える請求項に記載のソフトウェア構造可視化システム。
  3. ソフトウェアの構造を可視化するソフトウェア構造可視化システムであって、
    ユーザ側端末装置と、
    ソフトウェアを管理するサーバと
    を備え、
    前記サーバは、
    前記ソフトウェアを構成する複数のノードを決定し、当該複数のノードを前記ユーザ側端末装置に表示させ、
    前記ユーザ側端末装置に対するユーザの操作に応じて、前記複数のノードについて重要度を決定し、
    当該重要度に基づいて、前記ユーザ側端末装置での前記複数のノードの表示態様を設定し、
    前記ノードは、親スクリプト、子スクリプト及びプログラムを含み、
    前記サーバは、
    前記親スクリプト、前記子スクリプト及び前記プログラムを、
    前記親スクリプト及び前記子スクリプトの関係と、前記子スクリプト及び前記プログラムの関係とを含めて、前記ユーザ側端末装置に表示させる
    ソフトウェア構造可視化システム。
  4. 前記ユーザ側端末装置は、
    同一種類の前記ノードに関して、表示又は非表示を前記重要度に応じて決定する
    請求項1に記載のソフトウェア構造可視化システム。
  5. 前記ユーザ側端末装置は、
    前記ノードの表示又は非表示を前記ノードの種類に応じて決定する
    請求項1に記載のソフトウェア構造可視化システム。
  6. 前記ユーザ操作情報に含まれる前記操作の種類は、前記ノードに対する拡大操作、縮小操作及び移動操作である
    請求項に記載のソフトウェア構造可視化システム。
  7. 前記ユーザ側端末装置は、
    前記ノード間の関係を示すエッジを描画する
    請求項に記載のソフトウェア構造可視化システム。
  8. 前記ソフトウェア構造画像は、処理フロー図又はデータフローダイアグラムである
    請求項に記載のソフトウェア構造可視化システム。
  9. ソフトウェアの構造を可視化するソフトウェア構造可視化システムにおけるソフトウェア構造可視化方法であって、
    前記ソフトウェア構造可視化システムは、
    ユーザ側端末装置と、
    ソフトウェアを管理するサーバと
    を備え、
    前記サーバが、
    前記ソフトウェアを構成する複数のノードを決定し、当該複数のノードを前記ユーザ側端末装置に表示させる第1のステップと、
    前記サーバが、
    前記ユーザ側端末装置に対するユーザの操作に応じて、前記複数のノードについて重要度を決定する第2のステップと、
    前記サーバが、
    当該重要度に基づいて、前記ユーザ側端末装置での前記複数のノードの表示態様を設定する第3のステップと
    さらに前記サーバにおける、
    ソフトウェア構造取得モジュールにより、前記ノードに関係する情報が入力され、前記ノード及びノード間の情報であるソフトウェア構造を取得するステップと、
    ソフトウェア構造格納モジュールにより前記ソフトウェア構造を格納するステップと、
    ソフトウェア構造送信モジュールにより前記ソフトウェア構造を前記ユーザ側端末装置へ送信するステップと、
    ユーザ操作受信モジュールにより前記ユーザ側端末装置からのユーザの前記操作に関する情報であるユーザ操作情報を受信するステップと、
    全ユーザ操作格納モジュールにより前記ユーザ操作情報を格納すると、
    重要度算出モジュールにより前記ソフトウェア構造及び前記ユーザ操作情報を基に前記重要度を算出するステップと、
    全重要度格納モジュールにより前記重要度を格納するステップと、
    重要度送信モジュールにより前記重要度を前記ユーザ側端末装置へ送信するステップと
    を備えるソフトウェア構造可視化方法。
JP2016249355A 2016-12-22 2016-12-22 ソフトウェア構造可視化システム及びその方法 Active JP6684201B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016249355A JP6684201B2 (ja) 2016-12-22 2016-12-22 ソフトウェア構造可視化システム及びその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016249355A JP6684201B2 (ja) 2016-12-22 2016-12-22 ソフトウェア構造可視化システム及びその方法

Publications (2)

Publication Number Publication Date
JP2018106256A JP2018106256A (ja) 2018-07-05
JP6684201B2 true JP6684201B2 (ja) 2020-04-22

Family

ID=62787961

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016249355A Active JP6684201B2 (ja) 2016-12-22 2016-12-22 ソフトウェア構造可視化システム及びその方法

Country Status (1)

Country Link
JP (1) JP6684201B2 (ja)

Also Published As

Publication number Publication date
JP2018106256A (ja) 2018-07-05

Similar Documents

Publication Publication Date Title
CN108664461B (zh) 一种网页表单自动填写方法及装置
CN102982787B (zh) 曲线图显示装置以及曲线图显示方法
US10565560B2 (en) Alternative people charting for organizational charts
CN114648615B (zh) 目标对象交互式重现的控制方法、装置、设备及存储介质
CN110663017B (zh) 多笔画智能墨水手势语言
JP5214933B2 (ja) 地図表示システム
CN107844645B (zh) 基于bim的协作发起方法及装置
CN111402000B (zh) 一种业务页面的生成方法、装置、系统及计算机系统
JP6684201B2 (ja) ソフトウェア構造可視化システム及びその方法
JP7424440B2 (ja) コンピュータプログラム、情報処理方法及びコンピュータ
TWI503800B (zh) 建築模型影像顯示系統及其方法
CN113064535B (zh) 二维图表的游标展示方法、装置、电子设备及存储介质
CN112765946B (zh) 图表显示方法、装置及电子设备
US20190318517A1 (en) Electronic apparatus, information processing method, system, and medium
CN109657201B (zh) 一种元素的排版显示方法、装置、电子设备及存储介质
US10930045B2 (en) Digital ink based visual components
CN106569785B (zh) 一种作业表单生成方法及设备
JP5692317B2 (ja) 計算装置及び計算プログラム
CN113487704B (zh) 一种燕尾箭头标的绘制方法、装置、存储介质及终端设备
JP2022079530A (ja) プログラム、情報処理方法及び情報端末
US20200372190A1 (en) Figure display method, server and recording medium
JP5705248B2 (ja) 情報処理装置、サーバ装置、方法及びプログラム
CN114067633A (zh) 钢琴的琴谱标记方法、系统、介质及装置
CN116974410A (zh) 一种画布标尺功能实现方法、装置、设备、存储介质
CN112379801A (zh) 一种页面展示方法、装置和电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200309

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: 20200317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200327

R150 Certificate of patent or registration of utility model

Ref document number: 6684201

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150