Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6906677B2 - ソフトウェア可視化装置、ソフトウェア可視化方法およびソフトウェア可視化プログラム - Google Patents
[go: Go Back, main page]

JP6906677B2 - ソフトウェア可視化装置、ソフトウェア可視化方法およびソフトウェア可視化プログラム - Google Patents

ソフトウェア可視化装置、ソフトウェア可視化方法およびソフトウェア可視化プログラム Download PDF

Info

Publication number
JP6906677B2
JP6906677B2 JP2020500254A JP2020500254A JP6906677B2 JP 6906677 B2 JP6906677 B2 JP 6906677B2 JP 2020500254 A JP2020500254 A JP 2020500254A JP 2020500254 A JP2020500254 A JP 2020500254A JP 6906677 B2 JP6906677 B2 JP 6906677B2
Authority
JP
Japan
Prior art keywords
information
execution
file
software
unit
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
JP2020500254A
Other languages
English (en)
Other versions
JPWO2019159397A1 (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
Publication of JPWO2019159397A1 publication Critical patent/JPWO2019159397A1/ja
Application granted granted Critical
Publication of JP6906677B2 publication Critical patent/JP6906677B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3698Environments for analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3636Debugging of software by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Library & Information Science (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ソフトウェアの構造の可視化に関するものである。
プログラムの動作を理解するための手法およびプログラムの不具合を分析するための手法として、プログラムの実行履歴に基づいてプログラムの遷移情報を図示したり、注目したい箇所を絞り込んで表示したりする手法がある。
特許文献1には以下のような手法が開示されている。
プログラム要素間の依存関係等を予め解析しておき、プログラム動作の調査範囲についてトレース情報を連続して抽出する。そして、プログラムの動作をソースコードレベルのトレースで仮想的に再現する。また、その際にトレース情報を表示する。
プログラムの構造情報を基にしてトレース情報のカテゴライズ及び情報の隠蔽を行い、情報の注目箇所に限った詳細化或いは概略化によって情報量の調節を実現する。
プログラムについてシーケンシャルな制御の流れおよびデータの流れをイベントトレースチャートとして視覚化し、これをソースコードと連動して表示する。
特開2002−108649号公報
従来手法では、実行された箇所にしか着目できない。そのため、実行されなかった重要な関数について、見落としてしまったり、理解を誤ってしまったりする。
また、実行された箇所が多い場合には絞り込まれる範囲が多くなる。そのため、どこを重点的に確認したらよいかがわからなくなってしまう。
さらに、実行頻度が低くても重要である要素を見落としてしまう可能性がある。
本発明は、重要要素の見落としを防ぐことができるようにすることを目的とする。
本発明のソフトウェア可視化装置は、
対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である実行要素毎に実行要素情報を含む実行履歴ファイルと、前記対象プログラムの構造を表す情報として構成要素毎に構成要素情報を含むソフトウェア構造ファイルとを受け付ける受付部と、
前記実行履歴ファイルのそれぞれの実行要素情報と前記ソフトウェア構造ファイルのそれぞれの構成要素情報とを互いに関連付けて関連付けファイルを生成する関連付け部と、
前記関連付けファイルに基づいて前記ソフトウェア構造ファイルを参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素ファイルを生成する判別部と、
前記重要要素ファイルと前記ソフトウェア構造ファイルとに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する可視化部とを備える。
本発明によれば、重要要素の見落としを防ぐことが可能となる。
実施の形態1におけるソフトウェア可視化装置100の構成図。 実施の形態1におけるソフトウェア可視化方法のフローチャート。 実施の形態1における実行履歴ファイル201を示す図。 実施の形態1におけるソフトウェア構造ファイル202を示す図。 実施の形態1における関連付け処理(S110)のフローチャート。 実施の形態1における関連付けファイル203を示す図。 実施の形態1における重要要素ファイル204を示す図。 実施の形態1における判別処理(S120)のフローチャート。 実施の形態1におけるコールグラフ210を示す図。 実施の形態1におけるフローチャート220を示す図。 実施の形態2におけるソフトウェア可視化装置100の構成図。 実施の形態2におけるソフトウェア可視化方法のフローチャート。 実施の形態2における重要要素ファイル204を示す図。 実施の形態2における判別処理(S220)のフローチャート。 実施の形態2におけるコールグラフ210を示す図。 実施の形態3におけるソフトウェア可視化方法のフローチャート。 実施の形態3における重要要素ファイル204を示す図。 実施の形態3における判別処理(S320)のフローチャート。 実施の形態3における評価指数登録処理(S321)のフローチャート。 実施の形態3におけるコールグラフ210を示す図。 実施の形態4におけるソフトウェア可視化方法のフローチャート。 実施の形態4における重要要素ファイル204を示す図。 実施の形態4における判別処理(S420)のフローチャート。 実施の形態4における影響要素登録処理(S426)のフローチャート。 実施の形態4におけるコールグラフ210を示す図。 実施の形態5におけるソフトウェア可視化方法のフローチャート。 実施の形態5におけるソフトウェア構造ファイル202を示す図。 実施の形態5における重要要素ファイル204を示す図。 実施の形態5における判別処理(S520)のフローチャート。 実施の形態5における変更要素判別処理(S527)のフローチャート。 実施の形態5におけるコールグラフ210を示す図。 実施の形態6におけるソフトウェア可視化方法のフローチャート。 実施の形態6における関連付けファイル203を示す図。 実施の形態6における関連付け処理(S610)のフローチャート。 実施の形態7におけるソフトウェア可視化装置100の構成図。 実施の形態7におけるソフトウェア可視化方法のフローチャート。 実施の形態7における重要要素ファイル204を示す図。 実施の形態7における除外処理(S730)のフローチャート。 各実施の形態におけるソフトウェア可視化装置100のハードウェア構成図。
実施の形態および図面において、同じ要素および対応する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
実施の形態1.
プログラムを構成する要素のうち実行された要素を重要要素として可視化する形態について、図1から図10に基づいて説明する。
***構成の説明***
図1に基づいて、ソフトウェア可視化装置100の構成を説明する。
ソフトウェア可視化装置100は、プロセッサ101とメモリ102と補助記憶装置103と入出力インタフェース104といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
プロセッサ101は、演算処理を行うIC(Integrated Circuit)であり、他のハードウェアを制御する。例えば、プロセッサ101は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、またはGPU(Graphics Processing Unit)である。
メモリ102は揮発性の記憶装置である。メモリ102は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ102はRAM(Random Access Memory)である。メモリ102に記憶されたデータは必要に応じて補助記憶装置103に保存される。
補助記憶装置103は不揮発性の記憶装置である。例えば、補助記憶装置103は、ROM(Read Only Memory)、HDD(Hard Disk Drive)、またはフラッシュメモリである。補助記憶装置103に記憶されたデータは必要に応じてメモリ102にロードされる。
入出力インタフェース104は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース104はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。USBはUniversal Serial Busの略称である。
ソフトウェア可視化装置100は、受付部110と関連付け部120と判別部130と可視化部140と出力部150といった要素を備える。これらの要素はソフトウェアで実現される。
補助記憶装置103には、受付部110と関連付け部120と判別部130と可視化部140と出力部150と記憶部191としてコンピュータを機能させるためのソフトウェア可視化プログラムが記憶されている。ソフトウェア可視化プログラムは、メモリ102にロードされて、プロセッサ101によって実行される。
さらに、補助記憶装置103にはOS(Operating System)が記憶されている。OSの少なくとも一部は、メモリ102にロードされて、プロセッサ101によって実行される。
つまり、プロセッサ101は、OSを実行しながら、ソフトウェア可視化プログラムを実行する。
ソフトウェア可視化プログラムを実行して得られるデータは、メモリ102、補助記憶装置103、プロセッサ101内のレジスタまたはプロセッサ101内のキャッシュメモリといった記憶装置に記憶される。
メモリ102は記憶部191として機能する。但し、他の記憶装置が、メモリ102の代わりに、又は、メモリ102と共に、記憶部191として機能してもよい。
ソフトウェア可視化装置100は、プロセッサ101を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ101の役割を分担する。
ソフトウェア可視化プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータで読み取り可能に記録(格納)することができる。
***動作の説明***
ソフトウェア可視化装置100の動作はソフトウェア可視化方法に相当する。また、ソフトウェア可視化方法の手順はソフトウェア可視化プログラムの手順に相当する。
図2に基づいて、ソフトウェア可視化方法を説明する。
ステップS101において、受付部110は実行履歴ファイル201を受け付ける。
そして、受付部110は、実行履歴ファイル201を記憶部191に記憶する。
実行履歴ファイル201は、対象プログラムを実行することによって得られる。
対象プログラムは、可視化の対象となるプログラムである。
実行履歴ファイル201は、実行要素毎に実行要素情報を含む。
実行要素は、対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である。
構成要素の一例は、ファイル、クラス、関数および命令文である。
実行要素の一例は、関数および命令文である。
図3に基づいて、実行履歴ファイル201を説明する。
実行履歴ファイル201は、IDとファイル名とクラス名と関数名と実行行とを互いに対応付けている。
IDとファイル名とクラス名と関数名と行番号との組が実行要素情報である。
IDは、実行要素情報を識別する識別子である。
関数名は、実行された関数を識別する。
クラス名は、関数が属するクラスを識別する。
ファイル名は、クラスが記述されたファイルを識別する。
実行行は、関数が呼び出された行であり、行番号で識別される。
図2に戻り、ステップS102から説明を続ける。
ステップS102において、受付部110はソフトウェア構造ファイル202を受け付ける。
そして、受付部110は、ソフトウェア構造ファイル202を記憶部191に記憶する。
ソフトウェア構造ファイル202は、対象プログラムを構造解析することによって得られる。
ソフトウェア構造ファイル202は、対象プログラムに含まれる構成要素毎に構成要素情報を含む。
図4に基づいて、ソフトウェア構造ファイル202を説明する。
ソフトウェア構造ファイル202は、IDと要素名と種類名と親要素と定義ファイルと定義行と制御要素と依存要素とを互いに対応付けている。
IDと要素名と種類名と親要素と定義ファイルと行番号と制御情報と依存要素との組が構成要素情報である。
IDは、構成要素情報を識別する識別子である。
要素名は、構成要素を識別する。
種類名は、構成要素の種類を識別する。
親要素は、構成要素の上位の要素である。構成要素は親要素に属する。例えば、関数{func2}はクラス{class1}に属している。また、クラス{class1}はファイル{File1.h}に定義されている。
定義ファイルは、構成要素が定義されたファイルである。
定義行は、定義ファイルにおいて構成要素が定義されている行であり、行番号で識別される。
制御情報は、構成要素が有する制御構造の情報であり、制御命令と記述行とを示す。記述行は、制御命令が記述された行であり、行番号で識別される。{X,Y}は制御命令Xと記述行Yとを意味する。例えば、制御命令は、start、end、if、else、whileおよびswitchである。
依存要素は、構成要素が依存する要素である。例えば、構成要素が関数である場合、依存要素は、構成要素を呼び出す関数または構成要素から呼び出される関数である。
それぞれの欄において、ハイフン「−」は情報が無いことを意味する。
図2に戻り、ステップS110から説明を続ける。
ステップS110において、関連付け部120は、実行履歴ファイル201のそれぞれの実行要素情報とソフトウェア構造ファイル202のそれぞれの構成要素情報とを互いに関連付ける。
そして、関連付け部120は、それぞれの実行要素情報とそれぞれの構成要素情報とが互いに関連付けられた関連付けファイル203を生成する。関連付けファイル203は、記憶部191に記憶される。
図5に基づいて、関連付け処理(S110)の手順を説明する。
ステップS111において、関連付け部120は、実行履歴ファイル201から、未選択の実行要素情報を1つ選択する。
ステップS112からステップS115は、ステップS111で選択された実行要素情報に対して実行される。
ステップS112において、関連付け部120は、ソフトウェア構造ファイル202を検索することによって、実行要素情報に対応する構成要素情報を探す。
具体的には、関連付け部120は、実行要素情報から関数名を抽出し、抽出した関数名と同じ要素名を含んだ構成要素情報をソフトウェア構造ファイル202から探す。
ステップS113において、関連付け部120は、実行要素情報に対応する構成要素情報が有るか判定する。
ステップS113からステップS115において、実行要素情報に対応する構成要素情報を対応情報と呼ぶ。
対応情報が有る場合、処理はステップS115に進む。
対応情報が無い場合、処理はステップS114に進む。
ステップS114において、関連付け部120は対応情報を生成する。
例えば、関連付け部120は、以下のような対応情報を生成する。
IDの欄には、新たなIDが設定される。
対応情報の要素名の欄には、実行要素情報の関数名が設定される。
対応情報の種類の欄には、関数を意味する識別子「Function」が設定される。
対応情報の親要素の欄には、実行要素情報のクラス名が設定される。
対応情報の定義ファイルの欄には、実行要素情報のファイル名が設定される。
対応情報の定義行には、実行要素情報の実行行が設定される。
対応情報において、制御情報の欄と依存要素の欄とのそれぞれにはハイフン「−」が設定される。
そして、関連付け部120は、生成した対応情報をソフトウェア構造ファイル202に追加する。
ステップS115において、関連付け部120は、関連付けファイル203に関連付け情報を登録する。関連付けファイル203は記憶部191に記憶される。
関連付けファイル203は、実行要素情報と構成要素情報との組毎に関連付け情報を含む。
関連付け情報は、実行要素情報と対応情報とを互いに関連付ける。
図6に基づいて、関連付けファイル203を説明する。
関連付けファイル203は、実行IDと構成IDと実行行とを互いに対応付ける。
実行IDと構成IDと実行行との組が関連付け情報である。
実行IDは、実行要素情報の識別子である。
構成IDは、構成要素情報の識別子である。
関連付け情報の実行行は、実行要素情報の実行行と同じである。
図5に戻り、ステップS115の説明を続ける。
具体的には、関連付け部120は、関連付け情報を以下のように生成する。そして、関連付け部120は、生成した関連付け情報を関連付けファイル203に登録する。
関連付け部120は、実行要素情報からIDと実行行とを抽出する。抽出されるIDが実行IDである。
さらに、関連付け部120は、対応情報からIDを抽出する。抽出されるIDが構成IDである。
そして、関連付け部120は、実行IDと構成IDと実行行とを含んだ情報を生成する。生成される情報が関連付け情報である。
ステップS116において、関連付け部120は、未選択の実行要素情報が有るか判定する。ステップS116において、未選択の実行要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップS111に進む。
未選択情報が無い場合、処理は終了する。
図5の関連付け処理(S110)では、実行履歴ファイル201から実行要素情報を選択し、選択した実行要素情報に対して処理を行う。しかし、ソフトウェア構造ファイル202から構成要素情報を選択し、選択した構成要素情報に対して処理が行われてもよい。
図2に戻り、ステップS120から説明を続ける。
ステップS120において、判別部130は、関連付けファイル203に基づいてソフトウェア構造ファイル202を参照することによって、対象プログラムの複数の構成要素から重要要素を判別する。
そして、判別部130は、それぞれの重要要素を示す重要要素ファイル204を生成する。重要要素ファイル204は記憶部191に記憶される。
具体的には、重要要素は、それぞれの実行要素およびそれぞれの実行要素の親要素である。
重要要素ファイル204は、重要要素毎に重要要素情報を含む。
重要要素情報は重要要素を示す。
図7に基づいて、重要要素ファイル204を説明する。
重要要素ファイル204は、構成IDと実行情報とを互いに対応付ける。
構成IDと実行情報との組が重要要素情報である。
構成IDは、構成要素情報の識別子である。
実行情報は、実行フラグまたは制御情報を示す。
実行フラグは、実行の有無を示す。
制御情報は、ソフトウェア構造ファイル202に設定された情報である。
図8に基づいて、判別処理(S120)の手順を説明する。
ステップS121において、判別部130は、実行履歴ファイル201から、未選択の実行要素情報を1つ選択する。
ステップS122からステップS125は、ステップS121で選択された実行要素情報に対して実行される。
ステップS122において、判別部130は、重要要素ファイル204を検索することによって、実行要素情報に対応する重要要素情報を探す。
具体的には、判別部130は、重要要素ファイル204を以下のように検索する。
まず、判別部130は、実行要素情報からIDを抽出する。
次に、判別部130は、抽出したIDと同じ実行IDが設定された関連付け情報を関連付けファイル203から選択する。
次に、判別部130は、選択した関連付け情報から構成IDを抽出する。
そして、判別部130は、抽出した構成IDと同じ構成IDが設定された重要要素情報を重要要素ファイル204から探す。
ステップS123において、判別部130は、実行要素情報に対応する重要要素情報が有るか判定する。
ステップS123からステップS125において、実行要素情報に対応する重要要素情報を対応情報と呼ぶ。
対応情報が有る場合、処理はステップS125に進む。
対応情報が無い場合、処理はステップS124に進む。
ステップS124において、判別部130は対応情報を生成し、生成した対応情報を重要要素ファイル204に追加する。
具体的には、判別部130は、対応情報を以下のように生成する。
まず、判別部130は、実行要素情報からIDを抽出する。
次に、判別部130は、抽出したIDと同じ実行IDが設定された関連付け情報を関連付けファイル203から選択する。
次に、判別部130は、選択した関連付け情報から構成IDを抽出する。
次に、判別部130は、抽出した構成IDと同じIDを含んだ構成要素情報をソフトウェア構造ファイル202から選択する。
次に、判別部130は、選択した構成要素情報から制御情報を抽出する。
そして、判別部130は、抽出した構成IDと抽出した制御情報とが設定された重要要素情報を生成する。生成される重要要素情報が対応情報である。
ステップS125において、判別部130は、重要要素ファイル204から親情報を選択し、選択した親情報に実行情報を設定する。
ステップS125において、親情報は、実行要素に対応する親要素の重要要素情報である。
具体的には、判別部130は以下のように動作する。
まず、判別部130は、対応情報から構成IDを抽出する。
次に、判別部130は、抽出した構成IDと同じIDが設定された構成要素情報をソフトウェア構造ファイル202から選択する。
次に、判別部130は、選択した構成要素情報の親要素の欄を参照する。
親要素が設定されている場合、判別部130は、親要素と同じ要素名が設定された構成要素情報をソフトウェア構造ファイル202から選択する。次に、判別部130は、選択した構成要素情報からIDを抽出する。次に、判別部130は、抽出したIDと同じ構成IDが設定された重要要素情報が重要要素ファイル204に有るか判定する。
該当する重要要素情報が有る場合、判別部130は、該当する重要要素情報の実行情報の欄に実行フラグ「有」を設定する。
該当する重要要素情報が無い場合、判別部130は、抽出したIDと同じ構成IDが設定された重要要素情報を重要要素ファイル204に追加する。そして、判別部130は、追加した重要要素情報の実行情報の欄に実行フラグ「有」を設定する。
ステップS126において、判別部130は、未選択の実行要素情報が有るか判定する。ステップS126において、未選択の実行要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップS121に進む。
未選択情報が無い場合、処理は終了する。
図2に戻り、ステップS130から説明を続ける。
ステップS130において、可視化部140は、重要要素ファイル204とソフトウェア構造ファイル202とに基づいて、可視化図205を生成する。
可視化図205は、重要要素を可視化して表した図である。
具体的には、可視化図205は、重要要素が強調された状態で対象プログラムの構造を示す。
具体的には、可視化部140は、ソフトウェア構造ファイル202に基づいて構造図を生成する。そして、可視化部140は、重要要素ファイル204に基づいて構造図から重要要素を選択し、重要要素を強調する。
例えば、可視化図205は、コールグラフ210またはフローチャート220である。
図9に基づいて、コールグラフ210を説明する。
コールグラフ210は、関数間の呼び出し関係を示す。
コールグラフ210は、ファイル枠211とクラス枠212と関数図形213と呼び出し線214とを有する。
ファイル枠211は、ファイルを表す枠である。
クラス枠212は、クラスを表す枠であり、ファイル枠211の中に配置される。
関数図形213は、関数を表す図形であり、クラス枠212の中に配置される。
呼び出し線214は、関数間を繋ぐ矢印状の線であり、関数間の呼び出し関係を示す。
重要要素である関数の関数図形213は、塗りつぶされることによって、強調されている。
図9において、関数{Func1}と関数{func2}と関数{func3}とのそれぞれが重要要素である。一方、関数{func4}は重要要素ではない。
図10に基づいて、フローチャート220を説明する。
フローチャート220は、処理の流れを示す。
重要要素のブロック、つまり、実行された構成要素のブロックは、塗りつぶされることによって、強調されている。
図2に戻り、ステップS140を説明する。
ステップS140において、出力部150は、可視化図205のデータを出力することによって、ディスプレイに可視化図205を表示させる。
***実施の形態1の効果***
プログラムを構成する要素のうち実行された要素を重要要素として可視化することができる。
これにより、利用者が、プログラムの中で確認すべき部分を判断し易くなる。そのため、実行されていない部分の見落とし、および、実行されていない部分の理解誤りを防ぐことが可能となる。
実施の形態2.
重要要素の重要度(実行回数)を可視化する形態について、主に実施の形態1と異なる点を図11から図15に基づいて説明する。
***構成の説明***
図11に基づいて、ソフトウェア可視化装置100の構成を説明する。
ソフトウェア可視化装置100は、さらに、算出部131を備える。
ソフトウェア可視化プログラムは、さらに、算出部131としてコンピュータを機能させる。
***動作の説明***
図12に基づいて、ソフトウェア可視化方法を説明する。
ステップS201において、受付部110は実行履歴ファイル201を受け付ける。
そして、受付部110は、実行履歴ファイル201を記憶部191に記憶する。
ステップS201は、実施の形態1におけるステップS101(図2参照)と同じである。
ステップS102において、受付部110はソフトウェア構造ファイル202を受け付ける。
そして、受付部110は、ソフトウェア構造ファイル202を記憶部191に記憶する。
ステップS202は、実施の形態1におけるステップS102(図2参照)と同じである。
ステップS210において、関連付け部120は、実行履歴ファイル201のそれぞれの実行要素情報とソフトウェア構造ファイル202のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部120は関連付けファイル203を生成する。
ステップS210は、実施の形態1におけるステップS110(図2参照)と同じである。
ステップS220において、判別部130は、関連付けファイル203に基づいてソフトウェア構造ファイル202を参照することによって、対象プログラムから重要要素を判別する。そして、判別部130は重要要素ファイル204を生成する。
さらに、算出部131は、実行履歴ファイル201に基づいて、それぞれの重要要素の重要度を算出する。
具体的には、重要度は重要要素の実行回数である。実行回数が多いほど重要度が高い。
図13に基づいて、重要要素ファイル204を説明する。
重要要素ファイル204は、実施の形態1で説明した通り、構成IDと実行情報とを互いに対応付ける。
実行情報は、実行フラグまたは制御情報を示す。
実行情報において、制御情報には実行回数が付加される。
{X,Y,A}は、制御情報{X、Y}と実行回数Aとを意味する。
{X、Y}は、前述の通り、制御命令Xと記述行Yとを意味する。
図14に基づいて、判別処理(S220)の手順を説明する。
ステップS221において、判別部130は、実行履歴ファイル201から、未選択の実行要素情報を1つ選択する。
ステップS222からステップS226は、ステップS221で選択された実行要素情報に対して実行される。
ステップS222において、判別部130は、重要要素ファイル204を検索することによって、実行要素情報に対応する重要要素情報を探す。
ステップS222は、実施の形態1におけるステップS122(図8参照)と同じである。
ステップS223において、判別部130は、実行要素情報に対応する重要要素情報が有るか判定する。
ステップS223からステップS226において、実行要素情報に対応する重要要素情報を対応情報と呼ぶ。
対応情報が有る場合、処理はステップS225に進む。
対応情報が無い場合、処理はステップS224に進む。
ステップS224において、判別部130は対応情報を生成し、生成した対応情報を重要要素ファイル204に追加する。
ステップS224は、実施の形態1におけるステップS124(図8参照)と同じである。
但し、対応情報に設定される実行回数は初期値「0」である。
ステップS225において、算出部131は、対応情報に設定されている実行回数を1増やす。
ステップS226において、判別部130は、重要要素ファイル204から親情報を選択し、選択した親情報に実行情報を設定する。
ステップS226は、実施の形態1におけるステップS125(図8参照)と同じである。
ステップS227において、判別部130は、未選択の実行要素情報が有るか判定する。ステップS227において、未選択の実行要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップS221に進む。
未選択情報が無い場合、処理は終了する。
図12に戻り、ステップS230から説明を続ける。
ステップS230において、可視化部140は、重要要素ファイル204とソフトウェア構造ファイル202とに基づいて、可視化図205を生成する。
ステップS230は、実施の形態1におけるステップS130(図2参照)と同じである。
但し、可視化図205において、それぞれの重要要素は、重要度(実行回数)に応じて強調される。
図15に基づいて、それぞれの重要要素が実行回数に応じて強調されたコールグラフ210を説明する。
重要要素である関数の関数図形213は、実行回数に対応する色で塗りつぶされている。
図15において、関数{Func1}と関数{func2}と関数{func3}とのそれぞれが重要要素である。そして、関数{Func1}は、関数{func2}および関数{func3}よりも実行回数が多い。つまり、関数{Func1}は、関数{func2}および関数{func3}よりも重要度が高い。
図12に戻り、ステップS240を説明する。
ステップS240において、出力部150は、可視化図205のデータを出力することによって、ディスプレイに可視化図205を表示させる。
***実施の形態2の効果***
重要要素の重要度(実行回数)を可視化することができる。
これにより、利用者が、プログラムの中で頻繁に実行される部分と、プログラムの中で稀にしか実行されない部分とを判別し易くなる。そのため、優先的に確認すべき部分を知ることが可能となる。
実施の形態3.
重要要素の重要度(評価指数)を可視化する形態について、主に実施の形態1と異なる点を図16から図20に基づいて説明する。
***構成の説明***
ソフトウェア可視化装置100の構成は、実施の形態2における構成(図11参照)と同じである。
***動作の説明***
図16に基づいて、ソフトウェア可視化方法を説明する。
ステップS301において、受付部110は実行履歴ファイル201を受け付ける。
そして、受付部110は、実行履歴ファイル201を記憶部191に記憶する。
ステップS301は、実施の形態1におけるステップS101(図2参照)と同じである。
ステップS302において、受付部110はソフトウェア構造ファイル202を受け付ける。
そして、受付部110は、ソフトウェア構造ファイル202を記憶部191に記憶する。
ステップS302は、実施の形態1におけるステップS102(図2参照)と同じである。
ステップS310において、関連付け部120は、実行履歴ファイル201のそれぞれの実行要素情報とソフトウェア構造ファイル202のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部120は関連付けファイル203を生成する。
ステップS310は、実施の形態1におけるステップS110(図2参照)と同じである。
ステップS320において、判別部130は、関連付けファイル203に基づいて、対象プログラムから重要要素を判別する。
具体的には、判別部130は、実行要素と実行要素の親要素とを重要要素として選択する。
さらに、算出部131は、ソフトウェア構造ファイル202に基づいて、それぞれの重要要素の重要度を算出する。
具体的には、重要度は、重要要素を評価して得られる評価指数である。評価指数が高いほど重要度が高い。
例えば、関数の評価指数は、行数、サイクロティック複雑度、ファンイン数、ファンアウト数またはこれらの組み合わせである。
図17に基づいて、重要要素ファイル204を説明する。
重要要素ファイル204は、構成IDと実行情報と評価指数とを互いに対応付ける。
構成IDと実行情報と評価指数との組が重要要素情報である。
図18に基づいて、判別処理(S320)の手順を説明する。
ステップS321において、判別部130は、それぞれの構成要素の評価指数を重要要素ファイルに登録する。
図19に基づいて、評価指数登録処理(S321)の手順を説明する。
ステップS3211において、判別部130は、ソフトウェア構造ファイル202から、未選択の構成要素情報を1つ選択する。
ステップS3212からステップS3214は、ステップS3211で選択された構成要素情報に対して実行される。
ステップS3212において、判別部130は、構成要素情報のIDと同じ構成IDが設定された重要要素情報を生成する。
そして、判別部130は、生成した重要要素情報を重要要素ファイル204に追加する。
追加される重要要素情報において、実行情報の欄と評価指標の欄とのそれぞれは空欄である。
ステップS3213において、判別部130は、構成要素情報に基づいて評価指数を算出する。
ステップS3214において、判別部130は、追加した重要要素情報に評価指数を設定する。
ステップS3215において、判別部130は、未選択の構成要素情報が有るか判定する。ステップS3215において、未選択の構成要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップS3211に進む。
未選択情報が無い場合、処理は終了する。
図18に戻り、ステップS322から説明を続ける。
ステップS322からステップS327は、実施の形態1におけるステップS121からステップS126と同じである(図8参照)。
図16に戻り、ステップS330から説明を続ける。
ステップS330において、可視化部140は、重要要素ファイル204とソフトウェア構造ファイル202とに基づいて、可視化図205のデータを生成する。
ステップS330は、実施の形態1におけるステップS130(図2参照)と同じである。
但し、可視化部140は、それぞれの重要要素を重要度(評価指数)に応じて強調させる。
図20に基づいて、それぞれの重要要素が評価指数に応じて強調されたコールグラフ210を説明する。
重要要素である関数の関数図形213は、評価指数に対応する大きさで記されている。
図20において、関数{Func1}と関数{func2}と関数{func3}とのそれぞれが重要要素である。そして、関数{Func3}は、関数{func1}および関数{func2}よりも評価指数が高い。つまり、関数{Func3}は、関数{func1}および関数{func2}よりも重要度が高い。
図16に戻り、ステップS340を説明する。
ステップS340において、出力部150は、可視化図205のデータを出力することによって、ディスプレイに可視化図205を表示させる。
***実施の形態3の効果***
重要要素の重要度(評価指数)を可視化することができる。
これにより、利用者が、プログラムの中で注意すべき部分を判別し易くなる。そのため、実行頻度が低くても重点的に確認すべき部分、を知ることが可能となる。
実施の形態4.
重要要素から影響を受ける影響要素を可視化する形態について、主に実施の形態1と異なる点を図21から図25に基づいて説明する。
***構成の説明***
ソフトウェア可視化装置100の構成は、実施の形態1における構成(図1参照)と同じである。
***動作の説明***
図21に基づいて、ソフトウェア可視化方法を説明する。
ステップS401において、受付部110は実行履歴ファイル201を受け付ける。
そして、受付部110は、実行履歴ファイル201を記憶部191に記憶する。
ステップS401は、実施の形態1におけるステップS101(図2参照)と同じである。
ステップS402において、受付部110はソフトウェア構造ファイル202を受け付ける。
そして、受付部110は、ソフトウェア構造ファイル202を記憶部191に記憶する。
ステップS402は、実施の形態1におけるステップS102(図2参照)と同じである。
ステップS410において、関連付け部120は、実行履歴ファイル201のそれぞれの実行要素情報とソフトウェア構造ファイル202のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部120は関連付けファイル203を生成する。
ステップS410は、実施の形態1におけるステップS110(図2参照)と同じである。
ステップS420において、判別部130は、関連付けファイル203に基づいてソフトウェア構造ファイル202を参照することによって、対象プログラムから重要要素を判別する。そして、判別部130は重要要素ファイル204を生成する。
さらに、判別部130は、ソフトウェア構造ファイル202に基づいて、影響要素を判別する。
影響要素は、重要要素から影響を受ける構成要素である。
図22に基づいて、重要要素ファイル204を説明する。
重要要素ファイル204は、構成IDと実行情報と影響フラグとを互いに対応付ける。
構成IDと実行情報と影響フラグとの組が重要要素情報である。
影響フラグは、構成要素が影響要素であるか否かを示す。
図23に基づいて、判別処理(S420)の手順を説明する。
ステップS421からステップS425は、実施の形態1におけるステップS121からステップS125と同じである(図8参照)。
さらに、ステップS427は、実施の形態1におけるステップS126と同じである。
以下に、ステップS426を説明する。
ステップS426において、判別部130は、影響要素に関する重要要素情報を重要要素ファイル204に登録する。
図24に基づいて、影響要素登録処理(S426)の手順を説明する。
ステップS4261において、判別部130は、ソフトウェア構造ファイル202から、影響要素を抽出する。
具体的には、判別部130は影響要素を以下のように抽出する。
まず、判別部130は、実行要素の重要要素情報から構成IDを抽出する。
次に、判別部130は、抽出した構成IDと同じIDが設定された構成要素情報をソフトウェア構造ファイル202から選択する。
そして、判別部130は、構成要素情報から依存要素を抽出する。抽出される依存要素が影響要素である。
ステップS4262において、判別部130は、重要要素ファイル204を検索することによって、影響要素の重要要素情報を探す。
具体的には、判別部130は、重要要素ファイル204を以下のように検索する。
まず、判別部130は、影響要素の要素名が設定された構成要素情報をソフトウェア構造ファイル202から選択する。
次に、判別部130は、選択した構成要素情報からIDを抽出する。
そして、判別部130は、抽出したIDと同じ構成IDが設定された重要要素情報を重要要素ファイル204から探す。
ステップS4263において、判別部130は、影響要素の重要要素情報が有るか判定する。
ステップS4263からステップS4265において、影響要素の重要要素情報を対応情報と呼ぶ。
対応情報が有る場合、処理はステップS4265に進む。
対応情報が無い場合、処理はステップS4264に進む。
ステップS4264において、判別部130は対応情報を生成し、生成した対応情報を重要要素ファイル204に追加する。
具体的には、判別部130は、対応情報を以下のように生成する。
まず、判別部130は、影響要素の要素名が設定された構成要素情報をソフトウェア構造ファイル202から選択する。
次に、判別部130は、選択した構成要素情報からIDを抽出する。
そして、判別部130は、抽出したIDと同じ構成IDが設定された重要要素情報を生成する。
生成される重要要素情報には影響フラグ「有」が設定される。また、実行情報の欄は空欄である。
ステップS4265において、判別部130は、重要要素ファイル204から親情報を選択し、選択した親情報に影響フラグを設定する。
ステップS4265において、親情報は、影響要素に対応する親要素の重要要素情報である。
具体的には、判別部130は以下のように動作する。
まず、判別部130は、対応情報から構成IDを抽出する。
次に、判別部130は、抽出した構成IDと同じIDが設定された構成要素情報をソフトウェア構造ファイル202から選択する。
次に、判別部130は、選択した構成要素情報の親要素の欄を参照する。
親要素が設定されている場合、判別部130は、親要素と同じ要素名が設定された構成要素情報をソフトウェア構造ファイル202から選択する。次に、判別部130は、選択した構成要素情報からIDを抽出する。次に、判別部130は、抽出したIDと同じ構成IDが設定された重要要素情報が重要要素ファイル204に有るか判定する。
該当する重要要素情報が有る場合、判別部130は、該当する重要要素情報に影響フラグ「有」を設定する。
該当する重要要素情報が無い場合、判別部130は、抽出したIDと同じ構成IDが設定された重要要素情報を重要要素ファイル204に追加する。そして、判別部130は、追加した重要要素情報に影響フラグ「有」を設定する。
図21に戻り、ステップS430から説明を続ける。
ステップS430において、可視化部140は、重要要素ファイル204とソフトウェア構造ファイル202とに基づいて、可視化図205を生成する。
ステップS430は、実施の形態1におけるステップS130(図2参照)と同じである。
但し、可視化部140は、それぞれの影響要素をそれぞれの重要要素と区別した状態で強調させる。影響要素は、影響フラグ「有」が設定された重要要素情報に対応する構成要素である。
図25に基づいて、重要要素と影響要素とが強調されたコールグラフ210を説明する。
重要要素である関数の関数図形213は、第1の色で塗りつぶされている。
影響要素である関数の関数図形213は、第2の色で塗りつぶされている。
図25において、関数{Func1}と関数{func2}と関数{func3}とのそれぞれが重要要素である。また、関数{Func4}は影響要素である。
関数{Func4}の関数図形213は、関数{Func1}と関数{func2}と関数{func3}とのそれぞれの関数図形213とは異なる色で塗りつぶされている。
図21に戻り、ステップS440を説明する。
ステップS440において、出力部150は、可視化図205のデータを出力することによって、ディスプレイに可視化図205を表示させる。
***実施の形態4の効果***
重要要素から影響を受ける影響要素を可視化することができる。
これにより、利用者は、プログラムの中で実行された部分と併せて確認すべき部分を知ることが可能となる。
実施の形態5.
プログラムの更新に伴って変更された変更要素を可視化する形態について、主に実施の形態1と異なる点を図26から図31に基づいて説明する。
***構成の説明***
ソフトウェア可視化装置100の構成は、実施の形態1における構成(図1参照)と同じである。
***動作の説明***
図26に基づいて、ソフトウェア可視化方法を説明する。
ステップS501において、受付部110は実行履歴ファイル201を受け付ける。
そして、受付部110は、実行履歴ファイル201を記憶部191に記憶する。
ステップS501は、実施の形態1におけるステップS101(図2参照)と同じである。
ステップS502において、受付部110はソフトウェア構造ファイル202を受け付ける。
そして、受付部110は、ソフトウェア構造ファイル202を記憶部191に記憶する。
ステップS502は、実施の形態1におけるステップS102(図2参照)と同じである。
但し、ソフトウェア構造ファイル202の構成が、実施の形態1における構成と一部異なる。
図27に基づいて、ソフトウェア構造ファイル202を説明する。
ソフトウェア構造ファイル202は、実施の形態1で説明した項目の他に、バージョン番号を有する(図4参照)。
バージョン番号は、プログラムのバージョンを識別する。
ソフトウェア構造ファイル202は、バージョンが異なる複数のプログラムに対応する複数のソフトウェア構造ファイルに相当する。
具体的には、ソフトウェア構造ファイル202は、対象プログラムのソフトウェア構造ファイルの情報と基準プログラムのソフトウェア構造ファイルの情報とを含む。
対象プログラムは、可視化の対象となるバージョンのプログラムである。
基準プログラムは、対象プログラムとの比較の対象となるバージョンのプログラムである。
図26に戻り、ステップS510から説明を続ける。
ステップS510において、関連付け部120は、実行履歴ファイル201のそれぞれの実行要素情報とソフトウェア構造ファイル202のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部120は関連付けファイル203を生成する。
ステップS510は、実施の形態1におけるステップS110(図2参照)と同じである。
但し、実行要素情報に対応付けられる構成要素情報は、対象プログラムの構成要素情報である。
ステップS520において、判別部130は、関連付けファイル203に基づいてソフトウェア構造ファイル202を参照することによって、対象プログラムから重要要素を判別する。そして、判別部130は重要要素ファイル204を生成する。
さらに、判別部130は、ソフトウェア構造ファイル202に基づいて、変更要素を判別する。
変更要素は、対象プログラムの複数の構成要素のうち基準プログラムのいずれの構成要素とも異なる構成要素である。
図28に基づいて、重要要素ファイル204を説明する。
重要要素ファイル204は、構成IDと実行情報と変更フラグとを互いに対応付ける。
構成IDと実行情報と変更フラグとの組が重要要素情報である。
変更フラグは、構成要素が変更要素であるか否かを示す。
図29に基づいて、判別処理(S520)の手順を説明する。
ステップS521からステップS526は、実施の形態1におけるステップS121からステップS126と同じである(図8参照)。
但し、重要要素ファイル204において、それぞれの重要要素情報には変更フラグ「無」が設定される。
ステップS527において、判別部130は、ソフトウェア構造ファイル202に基づいて、変更要素を判別する。
図30に基づいて、変更要素判別処理(S527)の手順を説明する。
ステップS5271において、判別部130は、ソフトウェア構造ファイル202から、対象プログラムの未選択の構成要素情報を1つ選択する。
つまり、判別部130は、対象プログラムのバージョン番号が設定された複数の構成要素情報から未選択の構成要素情報を1つ選択する。
ステップS5272からステップS5275は、ステップS5271で選択された構成要素情報に対して実行される。
ステップS5272において、判別部130は、ソフトウェア構造ファイル202を検索することによって、対象プログラムの構成要素情報に対応する基準プログラムの構成要素情報を探す。
具体的には、判別部130は、ソフトウェア構造ファイル202を以下のように検索する。
まず、判別部130は、対象プログラムの構成要素情報からIDを抽出する。
そして、判別部130は、基準プログラムのバージョン番号と、抽出したIDと同じIDとが設定された構成要素情報をソフトウェア構造ファイル202から探す。
ステップS5273において、判別部130は、対象プログラムの構成要素情報に対応する基準プログラムの構成要素情報が有るか判定する。
ステップS5273からステップS5275において、対象プログラムの構成要素情報に対応する基準プログラムの構成要素情報を対応情報と呼ぶ。
対応情報が有る場合、処理はステップS5274に進む。
対応情報が無い場合、処理はステップS5275に進む。
ステップS5274において、判別部130は、バージョン番号を除いて、対象プログラムの構成要素情報を基準プログラムの構成要素情報(対応情報)と比較する。
対象プログラムの構成要素情報が基準プログラムの構成要素情報(対応情報)と一致する場合、処理はステップS5276に進む。
対象プログラムの構成要素情報が基準プログラムの構成要素情報(対応情報)と一致しない場合、処理はステップS5275に進む。
ステップS5275において、判別部130は、重要要素ファイル204を検索することによって、対応情報に対応する重要要素情報を探す。
具体的には、判別部130は重要要素ファイル204を以下のように検索する。
まず、判別部130は、対応情報からIDを抽出する。
そして、判別部130は、抽出したIDと同じ構成IDが設定された重要要素情報を重要要素ファイル204から探す。
ステップS5275において、対応情報に対応する重要要素情報を該当情報と呼ぶ。
該当情報が有る場合、判別部130は、該当情報に変更フラグ「有」を設定する。
該当情報が無い場合、判別部130は、対応情報のIDと同じ構成IDが設定された重要要素情報を生成し、生成した重要要素情報を重要要素ファイル204に追加する。そして、判別部130は、追加した重要要素情報に変更フラグ「有」を設定する。
ステップS5276において、判別部130は、対象プログラムの未選択の構成要素情報が有るか判定する。
ステップS5276において、対象プログラムの未選択の構成要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップS5271に進む。
未選択情報が無い場合、処理は終了する。
図26に戻り、ステップS530から説明を続ける。
ステップS530において、可視化部140は、重要要素ファイル204とソフトウェア構造ファイル202とに基づいて、可視化図205を生成する。
ステップS530は、実施の形態1におけるステップS130(図2参照)と同じである。
但し、可視化部140は、それぞれの変更要素をそれぞれの重要要素と区別した状態で強調させる。変更要素は、変更フラグ「有」が設定された重要要素情報に対応する構成要素である。
図31に基づいて、重要要素と変更要素とが強調されたコールグラフ210を説明する。
重要要素である関数の関数図形213は、第1の色で塗りつぶされている。
変更要素である関数の関数図形213は、第2の色で塗りつぶされている。
図31において、関数{Func1}と関数{func2}とのそれぞれが重要要素である。また、関数{Func3}は影響要素である。
関数{Func3}の関数図形213は、関数{Func1}と関数{func2}とのそれぞれの関数図形213とは異なる色で塗りつぶされている。
図26に戻り、ステップS540を説明する。
ステップS540において、出力部150は、可視化図205のデータを出力することによって、ディスプレイに可視化図205を表示させる。
***実施の形態5の効果***
プログラムの更新に伴って変更された変更要素を可視化することができる。
これにより、利用者は、プログラムの中で実行された部分と併せて変更された部分を知ることが可能となる。
実施の形態6.
対象プログラムを複数回実行することによって得られる複数の実行履歴ファイル201を用いる形態について、主に実施の形態1と異なる点を図32から図34に基づいて説明する。
***構成の説明***
ソフトウェア可視化装置100の構成は、実施の形態1における構成(図1参照)と同じである。
***動作の説明***
図32に基づいて、ソフトウェア可視化方法を説明する。
ステップS601において、受付部110は、複数の実行履歴ファイル201を受け付ける。
そして、受付部110は、複数の実行履歴ファイル201を記憶部191に記憶する。
複数の実行履歴ファイル201は、対象プログラムを複数回実行することによって得られる。
ステップS602において、受付部110はソフトウェア構造ファイル202を受け付ける。
そして、受付部110は、ソフトウェア構造ファイル202を記憶部191に記憶する。
ステップS602は、実施の形態1におけるステップS102(図2参照)と同じである。
ステップS610において、関連付け部120は、複数の実行履歴ファイル201から2つ以上の実行履歴ファイル201を選択する。関連付け部120は、選択した2つ以上の実行履歴ファイル201のそれぞれの実行要素情報とソフトウェア構造ファイル202のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部120は関連付けファイル203を生成する。
図33に基づいて、関連付けファイル203を説明する。
関連付けファイル203は、履歴IDと実行IDと構成IDと実行行とを互いに対応付ける。
履歴IDと実行IDと構成IDと実行行との組が関連付け情報である。
履歴IDは、実行履歴ファイル201の識別子である。
図34に基づいて、関連付け処理(S610)を説明する。
ステップS611において、受付部110は履歴指定情報を受け付ける。
履歴指定情報は、複数の実行履歴ファイル201のうちの2つ以上の実行履歴ファイル201を指定する情報である。
具体的には、履歴指定情報は、2つ以上の履歴IDを含む。
ステップS612において、関連付け部120は、履歴指定情報で指定された2つ以上の実行履歴ファイル201から、未選択の実行履歴ファイル201を1つ選択する。
ステップS613は、ステップS612で選択された実行履歴ファイル201のために実行される。
ステップS613において、関連付け部120は、実行履歴ファイル201のそれぞれの実行要素情報とソフトウェア構造ファイル202のそれぞれの構成要素情報とを互いに関連付ける。
ステップS613の処理は、実施の形態1におけるステップS110(図5参照)と同じである。
ステップS614において、関連付け部120は、履歴指定情報で指定された2つ以上の実行履歴ファイル201のうち選択されていない実行履歴ファイル201が有るか判定する。ステップS614において、選択されていない実行履歴ファイル201を未選択ファイルと呼ぶ。
未選択ファイルが有る場合、処理はステップS611に進む。
未選択ファイルが無い場合、処理は終了する。
図32に戻り、ステップS620からステップS640を説明する。
ステップS620からステップS640は、実施の形態1におけるステップS120からステップS140と同じである(図2参照)。
***実施の形態6の効果***
複数の実行履歴を重ね合わせて、確認すべき部分を可視化することができる。つまり、2つ以上の実行履歴ファイル201を結合して、確認すべき部分を可視化することができる。
実施の形態7.
確認が不要な構成要素を重要要素から除外する形態について、実施の形態1および実施の形態5と異なる点を図35から図38に基づいて主に説明する。
***構成の説明***
図35に基づいて、ソフトウェア可視化装置100の構成を説明する。
ソフトウェア可視化装置100は、さらに、除外部132を備える。
ソフトウェア可視化プログラムは、さらに、除外部132としてコンピュータを機能させる。
***動作の説明***
図36に基づいて、ソフトウェア可視化方法を説明する。
ステップS701において、受付部110は実行履歴ファイル201を受け付ける。
そして、受付部110は、実行履歴ファイル201を記憶部191に記憶する。
ステップS701は、実施の形態1におけるステップS101(図2参照)と同じである。
ステップS702において、受付部110はソフトウェア構造ファイル202を受け付ける。
そして、受付部110は、ソフトウェア構造ファイル202を記憶部191に記憶する。
ステップS702は、実施の形態1におけるステップS102(図2参照)と同じである。
ソフトウェア構造ファイル202の構成は、実施の形態5における構成と同じである(図27参照)。
ステップS710において、関連付け部120は、実行履歴ファイル201のそれぞれの実行要素情報とソフトウェア構造ファイル202のそれぞれの構成要素情報とを互いに関連付ける。そして、関連付け部120は関連付けファイル203を生成する。
ステップS710は、実施の形態1におけるステップS110(図2参照)と同じである。
実施の形態5と同じく、実行要素情報に対応付けられる構成要素情報は、対象プログラムの構成要素情報である。
ステップS720において、判別部130は、関連付けファイル203に基づいてソフトウェア構造ファイル202を参照することによって、対象プログラムから重要要素を判別する。そして、判別部130は重要要素ファイル204を生成する。
さらに、判別部130は、ソフトウェア構造ファイル202に基づいて、変更要素を判別する。
図37に基づいて、重要要素ファイル204を説明する。
重要要素ファイル204は、構成IDと実行情報と変更フラグと確認フラグとを互いに対応付ける。
構成IDと実行情報と変更フラグと確認フラグとの組が重要要素情報である。
確認フラグは、重要要素が除外要素であるか否かを示す。
除外要素は、確認が不要な構成要素である。具体的には、除外要素は、変更要素と変更要素から影響を受ける影響要素とのいずれでもない重要要素である。
図36に戻り、説明を続ける。
ステップS720は、実施の形態5におけるステップS520(図26参照)と同じである。
ステップS720により、それぞれの重要要素情報の変更フラグが設定された重要要素ファイル204が生成される。それぞれの重要要素情報において、確認フラグの欄は空欄である。
ステップS730において、除外部132は、ソフトウェア構造ファイル202に基づいて、除外要素を判別する。
図38に基づいて、除外処理(S730)の手順を説明する。
ステップS731において、除外部132は、重要要素ファイル204から、未選択の重要要素情報を1つ選択する。
ステップS732からステップS735は、ステップS731で選択された重要要素情報に対して実行される。
ステップS732からステップS735において、ステップS731で選択された重要要素情報を選択情報という。また、選択情報に対応する重要要素を選択要素と呼ぶ。
ステップS732において、除外部132は、選択情報に変更フラグ「有」が設定されているか判定する。つまり、除外部132は、選択要素が変更要素であるか判定する。
選択情報に変更フラグ「有」が設定されている場合、処理はステップS733に進む。
選択情報に変更フラグ「無」が設定されている場合、処理はステップS736に進む。
ステップS733において、除外部132は、選択情報に確認フラグ「要」を設定する。
ステップS734において、除外部132は、ソフトウェア構造ファイル202から、選択要素に対する影響要素を抽出する。
選択要素に対する影響要素には、選択要素の呼び出し元の構成要素と、選択要素の呼び出し先の構成要素と、が含まれる。呼び出し先の構成要素には、呼び出し先の構成要素から呼び出された構成要素も含まれる。
選択要素に対する影響要素は、選択要素の変更の影響を受ける可能性、または、その影響が波及する可能性がある。
具体的には、除外部132は、選択要素に対する影響要素を以下のように抽出する。
まず、除外部132は、選択情報から構成IDを抽出する。
次に、除外部132は、抽出した構成IDと同じIDが設定された構成要素情報をソフトウェア構造ファイル202から選択する。
そして、判別部130は、構成要素情報から依存要素を抽出する。抽出される依存要素が、選択要素に対する影響要素である。
ステップS735において、除外部132は、重要要素ファイル204を検索することによって、選択要素に対する影響要素の重要要素情報を探す。
具体的には、除外部132は、重要要素ファイル204を以下のように検索する。
まず、除外部132は、選択要素に対する影響要素の要素名が設定された構成要素情報をソフトウェア構造ファイル202から選択する。
次に、除外部132は、選択した構成要素情報からIDを抽出する。抽出されるIDを該当IDと呼ぶ。
そして、除外部132は、該当IDと同じ構成IDが設定された重要要素情報を重要要素ファイル204から探す。
ステップS735において、選択要素に対する影響要素の重要要素情報を該当情報と呼ぶ。
該当情報が有る場合、除外部132は、該当情報に確認フラグ「要」を設定する。
該当情報が無い場合、除外部132は、該当IDと同じ構成IDが設定された重要要素情報を生成し、生成した重要要素情報を重要要素ファイル204に追加する。そして、除外部132は、追加した重要要素情報に確認フラグ「要」を設定する。
ステップS736において、除外部132は、未選択の重要要素情報が有るか判定する。
ステップS736において、未選択の重要要素情報を未選択情報と呼ぶ。
未選択情報が有る場合、処理はステップS731に進む。
未選択情報が無い場合、処理はステップS737に進む。
ステップS737において、除外部132は、重要要素ファイル204から、確認フラグが空欄である重要要素情報を選択する。
ステップS737において、確認フラグが空欄である重要要素情報を除外情報と呼ぶ。
除外部132は、それぞれの除外情報に確認フラグ「不要」を設定する。
図36に戻り、ステップS740から説明を続ける。
ステップS740において、可視化部140は、重要要素ファイル204とソフトウェア構造ファイル202とに基づいて、可視化図205を生成する。
ステップS740は、実施の形態1におけるステップS130(図2参照)と同じである。
但し、可視化部140は、いずれの除外要素でもない重要要素のそれぞれを強調させる。強調される重要要素は、確認フラグ「要」が設定された重要要素情報に対応する構成要素である。
可視化部140は、除外要素である重要要素のそれぞれを可視化図205に含めてもよいし、除外要素である重要要素のそれぞれを可視化図205に含めなくてもよい。
除外要素である重要要素のそれぞれを可視化図205に含める場合、可視化部140は、除外要素である重要要素のそれぞれを確認が不要である構成要素であることを表す表現で記す。つまり、可視化部140は、除外要素である重要要素のそれぞれをいずれの除外要素でもない重要要素のそれぞれと区別して記す。
ステップS750において、可視化部140は、可視化図205のデータを出力することによって、ディスプレイに可視化図205を表示させる。
***実施の形態7の効果***
確認が不要な構成要素を重要要素から除外することができる。これにより、確認範囲を限定することができる。
***実施の形態の補足***
図39に基づいて、ソフトウェア可視化装置100のハードウェア構成を説明する。
ソフトウェア可視化装置100は処理回路109を備える。
処理回路109は、受付部110と関連付け部120と判別部130と算出部131と除外部132と可視化部140と出力部150とを実現するハードウェアである。
処理回路109は、専用のハードウェアであってもよいし、メモリ102に格納されるプログラムを実行するプロセッサ101であってもよい。
処理回路109が専用のハードウェアである場合、処理回路109は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
ASICはApplication Specific Integrated Circuitの略称であり、FPGAはField Programmable Gate Arrayの略称である。
ソフトウェア可視化装置100は、処理回路109を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路109の役割を分担する。
処理回路109において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
このように、処理回路109はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
具体的には、実施の形態2から実施の形態7を組み合わせても実施しても構わない。例えば、それぞれの重要要素を実行回数と評価指数との合計に応じて強調してもよい。また、重要要素と影響要素と変更要素とのそれぞれを互いに区別した状態で強調してもよい。また、確認が不要な構成要素を重要要素から除外してもよい。
重要要素、影響要素または変更要素を強調する方法は、色または大きさに限られない。例えば、形状の変更またはマークの付記によって重要要素などを強調してもよい。
実行要素情報、構成要素情報、関連付け情報または重要要素情報を構成する情報の組み合わせは、各実施の形態で示した情報の組み合わせに限られない。各実施の形態で示した情報の組み合わせから一部の情報を削除してもよいし、各実施の形態で示した情報の組み合わせに他の情報を追加してもよい。
100 ソフトウェア可視化装置、101 プロセッサ、102 メモリ、103 補助記憶装置、104 入出力インタフェース、109 処理回路、110 受付部、120 関連付け部、130 判別部、131 算出部、132 除外部、140 可視化部、150 出力部、191 記憶部、201 実行履歴ファイル、202 ソフトウェア構造ファイル、203 関連付けファイル、204 重要要素ファイル、205 可視化図、210 コールグラフ、211 ファイル枠、212 クラス枠、213 関数図形、214 呼び出し線、220 フローチャート。

Claims (12)

  1. 対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である実行要素毎に実行要素情報を含む実行履歴情報と、前記対象プログラムの構造を表す情報として構成要素毎に構成要素情報を含むソフトウェア構造情報とを受け付ける受付部と、
    前記実行履歴情報に含まれるそれぞれの実行要素情報と前記ソフトウェア構造情報に含まれるそれぞれの構成要素情報とを互いに関連付けて関連付け情報を生成する関連付け部と、
    前記関連付け情報に基づいて前記ソフトウェア構造情報を参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素情報を生成する判別部と、
    前記重要要素情報と前記ソフトウェア構造情報とに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する可視化部とを備えるソフトウェア可視化装置。
  2. 前記ソフトウェア可視化装置は、前記実行履歴情報に基づいて、それぞれの重要要素の実行回数を重要度として算出する算出部を備え、
    前記可視化部は、それぞれの重要要素を前記重要度に応じて強調させて前記可視化図を生成する
    請求項1に記載のソフトウェア可視化装置。
  3. 前記ソフトウェア可視化装置は、前記ソフトウェア構造情報に基づいて、それぞれの重要要素を評価して得られる評価指数を重要度として算出する算出部を備え、
    前記可視化部は、それぞれの重要要素を前記重要度に応じて強調させて前記可視化図を生成する
    請求項1に記載のソフトウェア可視化装置。
  4. 前記判別部は、前記ソフトウェア構造情報に基づいて、それぞれの重要要素から影響を受ける影響要素を判別し、
    前記可視化部は、前記影響要素をそれぞれの重要要素と区別した状態で強調させて前記可視化図を生成する
    請求項1に記載のソフトウェア可視化装置。
  5. 前記ソフトウェア構造情報は、前記対象プログラムの複数の構成要素情報と、前記対象プログラムとバージョンが異なる基準プログラムの複数の構成要素情報とを含み、
    前記判別部は、前記ソフトウェア構造情報に基づいて、前記対象プログラムの複数の構成要素のうち前記基準プログラムのいずれの構成要素とも異なる変更要素を判別し、
    前記可視化部は、前記変更要素をそれぞれの重要要素と区別した状態で強調させて前記可視化図を生成する
    請求項1に記載のソフトウェア可視化装置。
  6. 前記ソフトウェア可視化装置は、除外部を備え、
    前記ソフトウェア構造情報は、前記対象プログラムの複数の構成要素情報と、前記対象プログラムとバージョンが異なる基準プログラムの複数の構成要素情報とを含み、
    前記判別部は、前記ソフトウェア構造情報に基づいて、前記対象プログラムの複数の構成要素のうち前記基準プログラムのいずれの構成要素とも異なる変更要素を判別し、
    前記除外部は、前記ソフトウェア構造情報に基づいて、前記変更要素と前記変更要素から影響を受ける影響要素とのいずれでもない重要要素を除外要素として判別し、
    前記可視化部は、いずれの除外要素でもない重要要素のそれぞれを強調させて前記可視化図を生成する
    請求項1に記載のソフトウェア可視化装置。
  7. 前記関連付け部は、前記対象プログラムを複数回実行することによって得られる複数の実行履歴情報から2つ以上の実行履歴情報を選択し、選択した2つ以上の実行履歴情報に含まれるそれぞれの実行要素情報と前記ソフトウェア構造情報に含まれるそれぞれの構成要素情報とを互いに関連付けて前記関連付け情報を生成する
    請求項1から請求項6のいずれか1項に記載のソフトウェア可視化装置。
  8. 前記実行履歴情報が実行履歴ファイルであり、
    前記ソフトウェア構造情報がソフトウェア構造ファイルであり、
    前記関連付け情報が関連付けファイルであり、
    前記重要要素情報が重要要素ファイルである
    請求項1から請求項7のいずれか1項に記載のソフトウェア可視化装置。
  9. 受付部が、対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である実行要素毎に実行要素情報を含む実行履歴情報と、前記対象プログラムの構造を表す情報として構成要素毎に構成要素情報を含むソフトウェア構造情報とを受け付け、
    関連付け部が、前記実行履歴情報に含まれるそれぞれの実行要素情報と前記ソフトウェア構造情報に含まれるそれぞれの構成要素情報とを互いに関連付けて関連付け情報を生成し、
    判別部が、前記関連付け情報に基づいて前記ソフトウェア構造情報を参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素情報を生成し、
    可視化部が、前記重要要素情報と前記ソフトウェア構造情報とに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する
    ソフトウェア可視化方法。
  10. 前記実行履歴情報が実行履歴ファイルであり、
    前記ソフトウェア構造情報がソフトウェア構造ファイルであり、
    前記関連付け情報が関連付けファイルであり、
    前記重要要素情報が重要要素ファイルである
    請求項9に記載のソフトウェア可視化方法。
  11. 対象プログラムに含まれる複数の構成要素のうちの実行された構成要素である実行要素毎に実行要素情報を含む実行履歴情報と、前記対象プログラムの構造を表す情報として構成要素毎に構成要素情報を含むソフトウェア構造情報とを受け付ける受付部と、
    前記実行履歴情報に含まれるそれぞれの実行要素情報と前記ソフトウェア構造情報に含まれるそれぞれの構成要素情報とを互いに関連付けて関連付け情報を生成する関連付け部と、
    前記関連付け情報に基づいて前記ソフトウェア構造情報を参照することによってそれぞれの実行要素とそれぞれの実行要素の親要素とを重要要素として判別し、それぞれの重要要素を示す重要要素情報を生成する判別部と、
    前記重要要素情報と前記ソフトウェア構造情報とに基づいて、それぞれの重要要素が強調された状態で前記対象プログラムの構造を示す可視化図を生成する可視化部
    としてコンピュータを機能させるためのソフトウェア可視化プログラム。
  12. 前記実行履歴情報が実行履歴ファイルであり、
    前記ソフトウェア構造情報がソフトウェア構造ファイルであり、
    前記関連付け情報が関連付けファイルであり、
    前記重要要素情報が重要要素ファイルである
    請求項11に記載のソフトウェア可視化プログラム。
JP2020500254A 2018-02-15 2018-08-24 ソフトウェア可視化装置、ソフトウェア可視化方法およびソフトウェア可視化プログラム Active JP6906677B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018024808 2018-02-15
JP2018024808 2018-02-15
PCT/JP2018/031407 WO2019159397A1 (ja) 2018-02-15 2018-08-24 ソフトウェア可視化装置、ソフトウェア可視化方法およびソフトウェア可視化プログラム

Publications (2)

Publication Number Publication Date
JPWO2019159397A1 JPWO2019159397A1 (ja) 2020-10-22
JP6906677B2 true JP6906677B2 (ja) 2021-07-21

Family

ID=67619251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020500254A Active JP6906677B2 (ja) 2018-02-15 2018-08-24 ソフトウェア可視化装置、ソフトウェア可視化方法およびソフトウェア可視化プログラム

Country Status (5)

Country Link
US (1) US20210049091A1 (ja)
JP (1) JP6906677B2 (ja)
DE (1) DE112018007096T5 (ja)
GB (1) GB2584038A (ja)
WO (1) WO2019159397A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6742556B1 (ja) * 2019-10-21 2020-08-19 三菱電機株式会社 ソフトウェア解析装置
US11893385B2 (en) 2021-02-17 2024-02-06 Open Weaver Inc. Methods and systems for automated software natural language documentation
US11921763B2 (en) 2021-02-24 2024-03-05 Open Weaver Inc. Methods and systems to parse a software component search query to enable multi entity search
US12106094B2 (en) * 2021-02-24 2024-10-01 Open Weaver Inc. Methods and systems for auto creation of software component reference guide from multiple information sources
US11947530B2 (en) 2021-02-24 2024-04-02 Open Weaver Inc. Methods and systems to automatically generate search queries from software documents to validate software component search engines
US11960492B2 (en) 2021-02-24 2024-04-16 Open Weaver Inc. Methods and systems for display of search item scores and related information for easier search result selection
US12164915B2 (en) 2021-02-26 2024-12-10 Open Weaver Inc. Methods and systems to classify software components based on multiple information sources
US12271866B2 (en) 2021-02-26 2025-04-08 Open Weaver Inc. Methods and systems for creating software ecosystem activity score from multiple sources
US12197912B2 (en) 2021-02-26 2025-01-14 Open Weaver Inc. Methods and systems for scoring quality of open source software documentation
US12277126B2 (en) 2023-06-30 2025-04-15 Open Weaver Inc. Methods and systems for search and ranking of code snippets using machine learning models
WO2025191784A1 (ja) * 2024-03-14 2025-09-18 日本電気株式会社 プログラム、処理装置、及び方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH065914Y2 (ja) * 1987-05-28 1994-02-16 誠治 金子 墨汁の自動吸上具付烏口
JPH04337843A (ja) * 1991-05-15 1992-11-25 Hitachi Ltd プログラム動作表示方法
JPH0695914A (ja) * 1992-09-11 1994-04-08 Toshiba Corp プログラム監視装置
EP0690378A1 (en) * 1994-06-30 1996-01-03 Tandem Computers Incorporated Tool and method for diagnosing and correcting errors in a computer programm
JP4337843B2 (ja) * 2006-06-15 2009-09-30 セイコーエプソン株式会社 液晶表示装置及び電子機器

Also Published As

Publication number Publication date
WO2019159397A1 (ja) 2019-08-22
GB2584038A (en) 2020-11-18
GB202011579D0 (en) 2020-09-09
JPWO2019159397A1 (ja) 2020-10-22
US20210049091A1 (en) 2021-02-18
DE112018007096T5 (de) 2020-11-12

Similar Documents

Publication Publication Date Title
JP6906677B2 (ja) ソフトウェア可視化装置、ソフトウェア可視化方法およびソフトウェア可視化プログラム
EP2577463B1 (en) Static analysis using interactive and integration tools
US20090158256A1 (en) Feeding test metrics into an integrated development environment to aid software developers to improve code quality
US20160259713A1 (en) Method and system for determining functional tests to execute based on code coverage
JP2017535856A (ja) データプレビューを使用したジョブ作成
US20100313186A1 (en) Developer-managed debugger data records
CN116302079B (zh) 一种业务数据处理方法、装置、电子设备及存储介质
US9165007B2 (en) Log message optimization to ignore or identify redundant log messages
JP7799580B2 (ja) ソースコード解析装置、ソースコード解析方法およびソースコード解析プログラム
JP5197128B2 (ja) 依存関係推定装置及び依存関係推定プログラム及び記録媒体
US9910647B2 (en) Field size calculation and color coding display options usable in an emulated integrated development environment (IDE)
JP6335329B2 (ja) プログラム依存部可視化装置、方法、およびプログラム
JP7050587B2 (ja) 違反依存検出装置および違反依存検出プログラム
JP5910216B2 (ja) 情報処理装置及び情報処理プログラム
US11562136B2 (en) Detecting programming language deficiencies cognitively
JP4707476B2 (ja) 情報検索システム
Agouf et al. Understanding Class Name Regularity: A Simple Heuristic and Supportive Visualization.
CN112905396A (zh) 信息显示方法、装置及设备、存储介质
CN113254812B (zh) 对象集合生成方法及装置
JP2021039394A (ja) 情報処理システム、情報処理方法、開発装置、および開発装置用のプログラム
JP2010128894A (ja) データベース生成装置、データベース生成方法及びコンピュータプログラム
JP2010128892A (ja) データベース生成装置、データベース生成方法及びコンピュータプログラム
JP2019159608A (ja) 検索装置及び検索方法
JP2019159406A (ja) データ解析システム、データ解析方法、及びプログラム
US20220197776A1 (en) Information processing apparatus, information processing method, and storage medium

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200327

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200327

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210629

R150 Certificate of patent or registration of utility model

Ref document number: 6906677

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250