JP7038577B2 - プログラム分析装置及びプログラム分析方法 - Google Patents
プログラム分析装置及びプログラム分析方法 Download PDFInfo
- Publication number
- JP7038577B2 JP7038577B2 JP2018047805A JP2018047805A JP7038577B2 JP 7038577 B2 JP7038577 B2 JP 7038577B2 JP 2018047805 A JP2018047805 A JP 2018047805A JP 2018047805 A JP2018047805 A JP 2018047805A JP 7038577 B2 JP7038577 B2 JP 7038577B2
- Authority
- JP
- Japan
- Prior art keywords
- metric
- program
- importance
- element group
- integrated
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、ユーザが確認したい図に対し汎用的に抽象化を実行して出力できるプログラム分析装置を提供する。
プログラムのプログラム構造と振舞いを示す全体要素群を入力して、プログラムのメトリクスを解析し、メトリクスを出力するメトリクス解析装置と、
前記メトリクスと重み値とを入力し、前記全体要素群の各要素に対して、前記メトリクスと前記重み値とから要素重要度を算出する重要度算出装置と、
前記全体要素群の各要素について前記要素重要度の値に基づいて抽出要素群を出力する要素抽出装置と
を備えた。
***構成の説明***
図1は、実施形態1に係るプログラム分析装置としてのプログラム分析装置100を示す図である。
プログラム分析装置100は、コード解析装置11、メトリクス解析装置12、重要度算出装置13、要素抽出装置14、及び、出力装置15を備える。
プログラム分析装置100は、ソースコード16、ログ17、全体要素群18、メトリクス19、重み値20、要素重要度21、抽出要素群22をデータとして取り扱う。
これらのデータは、電子データであり、メモリ又は記憶部に記憶され、メモリ又は記憶部から読み込まれて使用される。
ここでのメトリクスとは、ソフトウェアメトリクスのことであり、ソフトウェアメトリクスとは、ソフトウェア及びソフトウェア開発を種々の視点から定量的に評価したものであり、各種の数値を有する。
以下、プログラム分析装置100のハードウェア構成の補足説明を行う。
図1に示すプロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ901は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図1に示すメモリ902は、RAM(Random Access Memory)である。
図1に示す補助記憶装置903は、記録媒体の一例であり、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図1に示す通信インターフェース904は、データを受信するレシーバー及びデータを送信するトランスミッターを含む。
通信インターフェース904は、例えば、通信チップ又はNIC(Network Interface Card)等を有する。
また、コード解析装置11、メトリクス解析装置12、重要度算出装置13、要素抽出装置14、出力装置15、オペレーティングシステム607、ネットワークドライバ608及びストレージドライバ609の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、DVD等の可搬記憶媒体その他の記録媒体に記憶されてもよい。
また、プログラム分析装置100は、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific
Integrated Circuit)、FPGA(Field-Programmable Gate Array)といった処理回路により実現されてもよい。
なお、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路との上位概念を、「プロセッシングサーキットリー」という。つまり、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
プログラム分析装置100のプログラム分析方法について説明する。
プログラム分析方法の具体例として、図2のプログラム分析装置100の全体処理を示すフローチャートによりプログラム構造と振舞いの抽出方法を説明する。
本手順は、リバースエンジニアリングの従来技術にて実現可能である。市販のツールでは、ソースコードを入力としてプログラム構造をXML(Extensible Markup Language)構造で出力する機能を提供しているものがあり、その出力を利用して以降の手順を実施しても構わない。
要素抽出処理102は、メトリクス算出処理201、重要度設定処理202、メトリクス統合処理203、重要度算出処理204、及び、要素選定処理205にて構成され、各処理を順に実行することにより実現する。以下、メトリクス解析装置12と重要度算出装置13のは、詳細手順の内容を示す。
ここで、ログ17とは、対象プログラムが出力するログ又はOS(オペレーティングシステム)から出力されるログ、プログラム開発の過程で発生したデータ(バージョン管理システムのコミットログ等)等を意味している。
メトリクス解析装置12への入力は、データの内容に応じて、ログ17と全体要素群18のどちらか片方のみでも構わない。
メトリクス解析装置12は、メトリクス19として、プログラムの内容を解析して得られたソフトウェアメトリクス、又は、プログラム実行ログの内容を解析して得られたソフトウェアメトリクス、又は、プログラム開発の過程で発生したデータを解析して得られたメトリクスを出力する。
メトリクス解析装置12によるメトリクス算出処理201によって算出されるメトリクスの例としては、プロセスフローの実行回数、対象モジュールのライン数、サイクロマティック複雑度、実行時の呼び出し回数、処理実行時間、構成管理のコミット回数等が挙げられる。
図4の(a)は、メトリクス19を表形式で示したものである。
図4の(a)のメトリクス19は、種類数をn個としている。
図4の(b)において、P1~P5はプロセスであり、e1~e5はプロセス間の関連を示す要素であり、F1は、P1,P2,P4,P5からなるプロセスフローであり、F2は、P1,P3,P4,P5からなるプロセスフローである。
図4の(a)に示すように、メトリクス解析装置12によるメトリクス算出処理201によって、1番目のメトリクスm1としてプロセスフローの実行回数が採用され、プロセスフローF1、F2の実行回数が判明しているものとする。
図4の(a)では、プロセスフローF1の実行回数は2000回であり、プロセスフローF2の実行回数は1500回であることが判明している。
まず、ユーザは、メトリクス算出処理201で得られたメトリクス19について、重み値20を決定する。ユーザは、図で確認したい側面に対応するメトリクスの重み値を高めに設定し、捨象したい側面に対応するメトリクスの重み値を低めに設定する。重要度算出装置13は、ユーザが決定した重み値20を入力して記憶する。
なお、重要度算出に利用しないメトリクスに関して、ユーザは、当該メトリクスを重要度算出の対象として指定しないか、又は、重み値を0として設定する。
このメトリクス統合処理203は、図中の各要素とメトリクス19は必ずしも1対1で関連付かないため、演算により各要素に関連するメトリクスを一意に決定するために行う。
統合メトリクスxe (i)は要素eと関連するメトリクスmijの総和を算出することを意味する。ただし、ベクトルbはメトリクスmiが要素eと関連するメトリクスであるかを表す関連値を要素に持つベクトルであり、ベクトルbの要素bjは下記のとおり定義される。もし、得られたメトリクスmijが要素eと関連付く場合、bjの値は1とする。逆に、メトリクスmijが要素eと無関係の場合、bjの値は0とする。
重要度算出装置13は、要素eとメトリクスmijとが関連するか否かを示す関連値bをベクトルbとして記憶している。
要素e1の統合メトリクスxe (1)は、要素eと関連付くメトリクスm1jの総和であり、重要度算出装置13は、要素e1と関連付くF1のb1の値は1とし、要素e1と無関係のF1のb2の値は0とし、要素e1の統合メトリクスxe1 (1)を、以下の式で求めることができる。
e1の統合メトリクス=2000
e2の統合メトリクス=1500
e3の統合メトリクス=2000
e4の統合メトリクス=1500
e5の統合メトリクス=3500
以下の式は、要素重要度21を、重み値20の値と統合メトリクスとの積の総和で求めることを示している。
ただし、nはメトリクス19の種類数、ベクトルwはメトリクスに対する重み値20のn次元ベクトル、ベクトルxはメトリクス統合処理203で算出した統合メトリクスをスケーリングにより0から1まで範囲の値に変換した値のn次元ベクトルである。なお、重要度算出式は必ずしも下記である必要はなく、メトリクスの特性に応じて特定のメトリクスの次数を変更し、別の重要度算出式を定義し評価しても構わない。
要素e2の正規化後の統合メトリクス=(1500-1500)/(3500-1500)=0
要素e3の正規化後の統合メトリクス=(2000-1500)/(3500-1500)=0.25
要素e4の正規化後の統合メトリクス=(1500-1500)/(3500-1500)=0
要素e5の正規化後の統合メトリクス=(3500-1500)/(3500-1500)=1
2番目のメトリクスから算出された要素e1の正規化後の統合メトリクスが以下のようなものであるとする。
要素e1の正規化後の統合メトリクス=1
要素e2の正規化後の統合メトリクス=1
要素e3の正規化後の統合メトリクス=0
要素e4の正規化後の統合メトリクス=0.25
要素e5の正規化後の統合メトリクス=1
また、メトリクス19の種類数n=2とし、メトリクスm1、m2に対する重み値w1、w2が以下のようなものであるとする。
w1=1
w2=0.25
Se1=1・0.25+0.25・1=0.5
同様に、重要度算出装置13は、図5に示すように、要素e2からe5の重要度Sekの値も計算することができる。
例えば、図5で示した重要度に対して閾値θを0.25に設定した場合、e1、e2、e3、e5は重要度が閾値θ以上であるため、重要要素として抽出される。e4は重要度が閾値θ未満であるため、重要要素として抽出されない。
図5で示した重要度に対して閾値θを0.25に設定した場合、最終的に図6で示す図が最終的に出力される。閾値θが0.25より低いe4の関連が省略されて作成される。
実施形態1に係るプログラム分析装置としてのプログラム分析装置100の特徴点は、重要度算出装置13である。
実施の形態1に係るプログラム分析装置100は、プログラム構造又は振舞いを構成する要素のうち重要度の低い要素を省略して図式化し、ユーザに提示する機能を有する。
このため、実施の形態1に係るプログラム分析装置100によれば、リバースエンジニアリングして得られた図について、ユーザが確認したい観点での図が出力され、人手で整形する時間が減少し、プログラムの概要把握に要する時間的コストが削減できることが期待される。
コード解析装置11は、プログラム構造と振舞いとの両方を解析する必要はなくプログラム構造と振舞いとの片方を解析して出力してもよい。
コード解析装置11は、プログラム構造と振舞いとを解析してプログラム構造と振舞いとを示す要素群をすべて出力する必要はなく部分的な要素群を出力してもよい。
重要度算出装置13は、関連値bを1又は0ではなく、0以上1以下の値で記憶してもよい。
<重み値20の変更>
実施の形態1のプログラム分析装置100において、重要度算出装置13が、ユーザが変更した重み値20を入力し、要素抽出処理102と表示処理103とを繰り返すようにしてもよい。すなわち、メトリクスの重み値wを変えて与えることにより、重要度Seを変更する手段を持たせてもよい。
また、実施の形態1のプログラム分析装置100において、要素抽出装置14が、ユーザが変更した閾値θを入力し、要素抽出処理102と表示処理103とを繰り返すようにしてもよい。
実施の形態3では、実施の形態1とは異なるプログラム分析装置としてのプログラム分析装置100のハードウェア構成の説明を行う。
図7に示すプログラム分析装置100のコード解析装置11、メトリクス解析装置12、重要度算出装置13、要素抽出装置14、及び、出力装置15は、それぞれ、個別のコンピュータであり、各装置がネットワークで接続されている場合を示している。
プログラム分析装置100は、ソースコード16、ログ17、全体要素群18、メトリクス19、重み値20、要素重要度21,抽出要素群22をネットワークを経由したオンラインデータとし取り扱うことができる。
コード解析装置11、メトリクス解析装置12、重要度算出装置13、要素抽出装置14、及び、出力装置15は、それぞれ、以下のハードウェアを有する。
1.CPU(Central Processing Unit)、DSP(Digital Signal Processor)等のプロセッサ
2.RAM(Random Access Memory)等のメモリ
3.ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等の補助記憶装置
4.データを受信するレシーバー及びデータを送信するトランスミッターを含む通信インターフェース
また、コード解析装置11、メトリクス解析装置12、重要度算出装置13、要素抽出装置14、出力装置15、オペレーティングシステム607、ネットワークドライバ608及びストレージドライバ609の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、DVD等の可搬記憶媒体に記憶され、CPUにより実行される。
前述した実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
Claims (6)
- プログラムのプログラム構造と振舞いを示す全体要素群を入力して、プログラムのメトリクスを解析し、メトリクスを出力するメトリクス解析装置と、
前記メトリクスと重み値とを入力し、前記メトリクスから前記全体要素群の各要素に対する統合メトリクスを算出し、前記全体要素群の各要素に対して、前記統合メトリクスと前記重み値とから要素重要度を算出する重要度算出装置と、
前記全体要素群の各要素について前記要素重要度の値に基づいて抽出要素群を出力する要素抽出装置と
を備えたプログラム分析装置。 - プログラムのプログラム構造と振舞いを示す全体要素群を入力して、プログラムのメトリクスを解析し、メトリクスを出力するメトリクス解析装置と、
前記メトリクスと重み値とを入力し、前記全体要素群の各要素と関連する前記メトリクスの総和を統合メトリクスとして算出し、前記全体要素群の各要素に対して、前記統合メトリクスと前記重み値の積の総和を要素重要度として算出する重要度算出装置と、
前記全体要素群の各要素について前記要素重要度の値に基づいて抽出要素群を出力する要素抽出装置と
を備えたプログラム分析装置。 - プログラムのプログラム構造と振舞いとを解析して前記全体要素群を出力するコード解析装置を備えた請求項1又は2に記載のプログラム分析装置。
- 前記抽出要素群を出力する出力装置を備えた請求項1から3のいずれか1項に記載のプログラム分析装置。
- メトリクス解析装置が、プログラムのプログラム構造と振舞いを示す全体要素群を入力して、プログラムのメトリクスを解析し、メトリクスを出力し、
重要度算出装置が、前記メトリクスと重み値とを入力し、前記メトリクスから前記全体要素群の各要素に対する統合メトリクスを算出し、前記全体要素群の各要素に対して、前記統合メトリクスと前記重み値とから要素重要度を算出し、
要素抽出装置が、前記全体要素群の各要素について前記要素重要度の値に基づいて抽出要素群を出力するプログラム分析方法。 - メトリクス解析装置が、プログラムのプログラム構造と振舞いを示す全体要素群を入力して、プログラムのメトリクスを解析し、メトリクスを出力し、
重要度算出装置が、前記メトリクスと重み値とを入力し、前記全体要素群の各要素と関連する前記メトリクスの総和を統合メトリクスとして算出し、前記全体要素群の各要素に対して、前記統合メトリクスと前記重み値の積の総和を要素重要度として算出し、
要素抽出装置が、前記全体要素群の各要素について前記要素重要度の値に基づいて抽出要素群を出力するプログラム分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018047805A JP7038577B2 (ja) | 2018-03-15 | 2018-03-15 | プログラム分析装置及びプログラム分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018047805A JP7038577B2 (ja) | 2018-03-15 | 2018-03-15 | プログラム分析装置及びプログラム分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019160008A JP2019160008A (ja) | 2019-09-19 |
JP7038577B2 true JP7038577B2 (ja) | 2022-03-18 |
Family
ID=67992638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018047805A Active JP7038577B2 (ja) | 2018-03-15 | 2018-03-15 | プログラム分析装置及びプログラム分析方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7038577B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112348309A (zh) * | 2020-09-16 | 2021-02-09 | 国网上海能源互联网研究院有限公司 | 一种用于为海岛微电网的指标确定质量等级的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001090887A1 (fr) | 2000-05-25 | 2001-11-29 | Fujitsu Limited | Procede de traitement de programme permettant un traitement haute vitesse au moyen d'un materiel a reconfiguration dynamique et programme permettant d'executer ce procede de traitement |
WO2015145539A1 (ja) | 2014-03-24 | 2015-10-01 | 株式会社日立製作所 | プログラム抽象図作成装置、及びプログラム抽象図作成プログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09212387A (ja) * | 1996-01-31 | 1997-08-15 | Matsushita Electric Works Ltd | プログラム開発支援装置 |
-
2018
- 2018-03-15 JP JP2018047805A patent/JP7038577B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001090887A1 (fr) | 2000-05-25 | 2001-11-29 | Fujitsu Limited | Procede de traitement de programme permettant un traitement haute vitesse au moyen d'un materiel a reconfiguration dynamique et programme permettant d'executer ce procede de traitement |
WO2015145539A1 (ja) | 2014-03-24 | 2015-10-01 | 株式会社日立製作所 | プログラム抽象図作成装置、及びプログラム抽象図作成プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2019160008A (ja) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10565442B2 (en) | Picture recognition method and apparatus, computer device and computer- readable medium | |
US8549478B2 (en) | Graphical user interface input element identification | |
US10185615B2 (en) | Analysis stack for an event flow | |
US10360004B2 (en) | Using dynamic information to refine control flow graphs | |
CN104020994B (zh) | 基于流系统的流过程定义装置和流过程定义方法 | |
CN109872230B (zh) | 金融数据分析系统的测试方法、装置、介质、电子设备 | |
CN114443559A (zh) | 可重构算子单元、处理器、计算方法、装置、设备及介质 | |
JP7038577B2 (ja) | プログラム分析装置及びプログラム分析方法 | |
CN110909005A (zh) | 一种模型特征分析方法、装置、设备及介质 | |
CN109325167B (zh) | 特征分析方法、装置、设备、计算机可读存储介质 | |
WO2019136799A1 (zh) | 数据离散化方法、装置、计算机设备及存储介质 | |
CN116166967B (zh) | 基于元学习与残差网络的数据处理方法、设备和存储介质 | |
US10726012B2 (en) | Metadata registration method and device | |
JP6790921B2 (ja) | プログラム分析装置、プログラム分析方法及びプログラム分析プログラム | |
CN113297479B (zh) | 一种用户画像生成方法、装置及电子设备 | |
JP6364332B2 (ja) | 仕様生成方法、仕様生成装置、及びプログラム | |
CN109284354B (zh) | 脚本搜索方法、装置、计算机设备及存储介质 | |
JP2023507688A (ja) | プロセスのエッジテーブル表現 | |
JP2017151594A (ja) | 支援装置、支援方法及びプログラム | |
US10303832B2 (en) | Architecture generating device | |
CN112183714A (zh) | 基于人工神经网络的自动化数据切片 | |
WO2015135182A1 (en) | Method and apparatus for evaluating performance of real-time system | |
JP7238361B2 (ja) | エラー出力装置、エラー出力方法、学習装置、学習済みモデルの生成方法、プログラム、および学習済みモデル | |
CN113177784B (zh) | 地址类型识别方法及装置 | |
WO2024037168A1 (zh) | 建立模型的方法、装置以及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200914 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210818 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210824 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211006 |
|
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: 20220208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220308 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7038577 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |