JP2013156786A - ソフトウェアの構造可視化プログラムおよびシステム - Google Patents
ソフトウェアの構造可視化プログラムおよびシステム Download PDFInfo
- Publication number
- JP2013156786A JP2013156786A JP2012016046A JP2012016046A JP2013156786A JP 2013156786 A JP2013156786 A JP 2013156786A JP 2012016046 A JP2012016046 A JP 2012016046A JP 2012016046 A JP2012016046 A JP 2012016046A JP 2013156786 A JP2013156786 A JP 2013156786A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- dependency
- unit
- source code
- dependency relationship
- 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.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
【解決手段】構文解析手段は、ソースコードを解析して構文情報を出力する。変数依存関係解析手段は、制御フロー導出手段、代入依存関係導出手段、データ依存関係導出手段、制御依存関係導出手段、変数依存関係導出手段からなる。制御フロー導出手段は、前記構文情報から制御フローを出力する。代入依存関係導出手段、データ依存関係導出手段、制御依存関係導出手段は、前記制御フローから記述位置で区別される2変数間の代入依存関係、データ依存関係、制御依存関係を出力する。変数依存関係導出手段は、前記代入依存関係と前記データ依存関係と前記制御依存関係とから複数ステートメント間に渡る変数依存関係を出力する。変数依存関係表示手段は、前記変数依存関係をグラフとして表示する。
【選択図】 図1
Description
以下、図面を用いて本発明の実施形態について説明を行う。
図1は、本発明を実現する基本的な機能構成図であり、本明細書における全ての実施例で共通である。本発明はソフトウェアツールとして実現されている。各機能はソフトウェアとして実装されており、表示画面、主演算装置、主記憶装置(メインメモリ)、ハードディスク等の記憶媒体、キーボードやポインティングデバイス等の入力装置を備えるコンピュータ上で実行される。
図1で説明したソフトウェアは、ソフトウェア構造可視化プログラム25131として、例えばコンピュータ251上のROM2513に格納されており、CPU2512によって読み出されて実行される。コンピュータ251はソフトウェア構造可視化プログラム25131によって規定された処理、すなわち図1で説明した各部の処理を実行する。解析対象となるソースコードファイルは、コンピュータ251上のハードディスク2514に格納されている。解析実行指示などのユーザ操作は、キーボードなどの入力装置252から行うことができる。
図17は、変数依存関係抽出部123が図13の処理に加えてその後に実施しうる処理のフローを示している。この処理フローにより、変数選択部122で選択された変数に対し「間接的に」影響を与え得る変数依存関係のツリーが抽出される。ここで「間接的に」とは、選択された変数とは実体が異なり、かつ異なる実行パスに存在する変数が、処理タイミングによっては選択された変数と依存関係が生じる、という意味である。
図20は、2つのソースコードの変数依存関係を比較して差分を判定し表示するための機能構成図のうち、図1からの差分を示している。変数依存関係解析部15は、2つのソースコードについて変数依存関係を解析する。変数依存関係比較部201は、変数依存関係解析部15による2つのソースコードの変数依存関係を比較する。変数依存関係データの各ノードには差異有無の項目があり、値として差異あり/差異なし/未確定(初期値)のいずれかを取るとする。変数依存関係比較部201は比較結果から差異有無の項目に値を設定する。変数依存関係出力部16は、変数依存関係比較部201により比較された2つのソースコードの変数依存関係を差分部分に違いを付けて、つまり差異有無の項目が「差異あり」のノードに着色するなどして表示する。
本実施例では、本発明の変数依存関係解析結果を用いて、ソースコードのスライシングおよびモデル検査を行う。変数依存関係の解析方法については、実施例1から3と共通するため説明を省略する。スライシングとは、ある変数に影響を与えるソースコードの記載のみを抽出し、当該変数に影響を与えないソースコードの記載を削除する処理を意味する。モデル検査とは、検証の対象となるソフトウェアが実際に動作する際(ソフトウェアが機器を制御する制御ソフトウェアの場合は、ソフトウェアが動作するハードウェアや制御対象機器との複合動作を想定)の取り得る状態を網羅的に探索し、不具合を発見することを意味する。
12 構文解析部
13 関数抽出部
14 実行開始点選択部
15 変数依存関係解析部
16 変数依存関係出力部
17 ソースコード出力部
123 変数依存関係抽出部
201 変数依存関係比較部
Claims (12)
- コンピュータに、ソフトウェアのソースコードを入力させ、前記ソースコードを解析させ、解析結果を出力させるためのソフトウェアの構造可視化プログラムにおいて、
前記プログラムは、前記コンピュータに前記ソースコードの構文解析を実行させるための構文解析部と、
前記コンピュータに前記構文解析部による構文解析結果から、前記ソースコード中の記述位置毎に区別された複数の変数について、変数間の依存関係を導出させるための変数依存関係解析部と、
前記変数依存関係解析部により導出した変数依存関係を、前記複数の変数の前記ソースコード中の記述位置情報と共に、前記コンピュータに表示装置への表示、または前記コンピュータ外部への出力を実行させるための変数依存関係出力部と、を有することを特徴とするソフトウェアの構造可視化プログラム。 - 前記コンピュータに入力された前記ソースコードを表示装置に表示させるためのソースコード出力部を有し、
前記ソースコード出力部は、前記コンピュータに、前記変数依存関係出力部によって表示または出力された変数依存関係中のユーザが指定した変数に対応する、前記ソースコード中の記述を強調表示させることを特徴とする、請求項1記載のソフトウェアの構造可視化プログラム。 - 前記構文解析部による構文解析結果に基づいて、前記コンピュータに前記ソースコードに含まれる変数を抽出させる変数抽出部と、
前記コンピュータに前記変数抽出部によって抽出された変数についての属性を表示させ、ユーザの変数選択を受け付けさせる変数表示部と、
前記コンピュータに前記変数表示部にてユーザにより選択された変数をルートとする変数依存関係を、前記変数依存関係解析部によって導出された変数依存関係から抽出させる変数依存関係抽出部と、を有し、
前記変数依存関係出力部は、前記変数依存関係抽出部によって抽出された変数依存関係を前記コンピュータに表示または出力させることを特徴とする、請求項1記載のソフトウェアの構造可視化プログラム。 - 前記変数依存関係抽出部は、前記変数表示部にてユーザにより選択された変数をルートとして抽出した変数依存関係に含まれ参照される変数と実体が同じで定義される変数をルートとする変数依存関係を、前記変数依存関係解析部によって導出された変数依存関係から前記コンピュータに抽出させることを特徴とする、
請求項3記載のソフトウェアの構造可視化プログラム。 - 請求項3において、
前記変数表示部は、前記コンピュータに各変数の実行パス数を表示または出力させることを特徴とする、請求項3記載のソフトウェアの構造可視化プログラム。 - 前記変数依存関係解析部は、ユーザにより入力された実行開始点から前記構文解析部による構文木を辿るように前記コンピュータに解析させることを特徴とする、請求項1記載のソフトウェアの構造可視化プログラム。
- 変数依存関係出力部は、変数依存関係をツリー形式で前記コンピュータに表示または出力させることを特徴とする、請求項3記載のソフトウェアの構造可視化プログラム。
- 前記変数依存関係抽出部は、ユーザに選択された変数と実体が異なり、かつ異なる実行パスに存在する変数が、特定の処理タイミングにおいてのみ前記ユーザに選択された変数へ影響を与える変数依存関係を前記コンピュータに抽出させることを特徴とする、請求項3記載の構造可視化プログラム。
- 前記変数依存関係解析部による複数のソースコードそれぞれの変数依存関係を解析させた結果を前記コンピュータに比較させ、差分を判定させる変数依存関係比較部を有することを特徴とする請求項1記載の構造可視化プログラム。
- 前記変数依存関係解析部による解析結果に基づき、前記ソースコード中の前記実行開始点に影響を与えない箇所を前記コンピュータにスライシングさせることを特徴とする請求項6記載の構造可視化プログラム。
- スライシングされた前記ソースコードのモデル検証を行うことを特徴とする請求項10記載の構造可視化プログラム。
- 請求項1から11いずれか一項に記載の構造可視化プログラムを格納する記憶媒体を備え、前記構造可視化プログラムを実行するコンピュータと、ユーザからの入力を受け付ける入力装置と、前記コンピュータからの出力を表示する表示装置と、を備えた構造可視化システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012016046A JP5775829B2 (ja) | 2012-01-30 | 2012-01-30 | ソフトウェアの構造可視化プログラムおよびシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012016046A JP5775829B2 (ja) | 2012-01-30 | 2012-01-30 | ソフトウェアの構造可視化プログラムおよびシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013156786A true JP2013156786A (ja) | 2013-08-15 |
JP5775829B2 JP5775829B2 (ja) | 2015-09-09 |
Family
ID=49051914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012016046A Expired - Fee Related JP5775829B2 (ja) | 2012-01-30 | 2012-01-30 | ソフトウェアの構造可視化プログラムおよびシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5775829B2 (ja) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101602658B1 (ko) * | 2014-04-15 | 2016-03-21 | 주식회사 셈웨어 | 알고리즘 시뮬레이션 시스템을 위한 다이어그램 자동 정렬 모듈 |
JP2016076080A (ja) * | 2014-10-06 | 2016-05-12 | 三菱電機株式会社 | ソースコード解析装置、ソースコード解析方法、及びプログラム |
JP2016091138A (ja) * | 2014-10-31 | 2016-05-23 | 日立オートモティブシステムズ株式会社 | ソースコード検証システム |
JP2016177652A (ja) * | 2015-03-20 | 2016-10-06 | 富士通株式会社 | コンパイラプログラム、システム、方法、及び装置 |
JP2017004282A (ja) * | 2015-06-11 | 2017-01-05 | 日本電気通信システム株式会社 | プログラム表示装置、プログラム表示システム、プログラム表示方法、及びプログラム表示プログラム |
KR101706098B1 (ko) * | 2015-09-25 | 2017-02-23 | (주)씽크포비엘 | 소프트웨어 분석 방법 및 장치 |
WO2017052318A1 (ko) * | 2015-09-25 | 2017-03-30 | (주)씽크포비엘 | 소프트웨어 분석 방법 및 장치 |
KR20180089096A (ko) * | 2017-01-31 | 2018-08-08 | 계명대학교 산학협력단 | 지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법 |
JP2018147106A (ja) * | 2017-03-02 | 2018-09-20 | 富士通株式会社 | プログラム分析装置、プログラム分析方法及びプログラム分析プログラム |
KR20190004198A (ko) * | 2017-07-03 | 2019-01-11 | 주식회사 우리은행 | 플로우 다이어그램 생성 방법 및 이를 실행하는 장치 |
JP2019061587A (ja) * | 2017-09-27 | 2019-04-18 | 富士通株式会社 | 解析方法、解析装置及び解析プログラム |
KR102037796B1 (ko) * | 2019-03-28 | 2019-11-26 | (주)위세아이텍 | 피처 엔지니어링에 의한 결과 데이터 대응 관계의 시각화 장치 및 방법 |
WO2020070817A1 (ja) | 2018-10-03 | 2020-04-09 | 三菱電機株式会社 | ソフトウェア解析装置、ソフトウェア解析方法およびソフトウェア解析プログラム |
JP2020522790A (ja) * | 2017-05-22 | 2020-07-30 | アビニシオ テクノロジー エルエルシー | 異種にプログラムされたデータ処理システムの自動依存性アナライザ |
JP2020149302A (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | 解析装置、解析方法、及び解析プログラム |
WO2021020781A1 (ko) * | 2019-07-26 | 2021-02-04 | 서울시립대학교 산학협력단 | 코딩 교육 방법 및 코딩 교육 로봇 |
CN112965838A (zh) * | 2021-03-16 | 2021-06-15 | 支付宝(杭州)信息技术有限公司 | 并发程序的数据竞争检查方法及装置 |
US11119886B2 (en) | 2016-02-17 | 2021-09-14 | Mitsubishi Electric Corporation | Software analysis apparatus, software analysis method, and computer readable medium |
CN113448553A (zh) * | 2021-06-23 | 2021-09-28 | 南京大学 | 一种c语言项目依赖信息管理和可视化的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0520380A (ja) * | 1991-07-10 | 1993-01-29 | Matsushita Electric Ind Co Ltd | 機能レベルシミユレーシヨン装置 |
JPH09274562A (ja) * | 1996-02-08 | 1997-10-21 | Fujitsu Ltd | プログラム解析装置およびプログラム解析表示装置 |
JPH10214180A (ja) * | 1997-01-31 | 1998-08-11 | Meidensha Corp | ソフトウェアの開発支援方法 |
JP2002082802A (ja) * | 2000-06-27 | 2002-03-22 | Ns Solutions Corp | 影響解析装置および方法、記録媒体、プログラム |
JP2005018114A (ja) * | 2003-06-23 | 2005-01-20 | Internatl Business Mach Corp <Ibm> | プログラム保守支援装置、プログラム保守支援方法、およびプログラム |
-
2012
- 2012-01-30 JP JP2012016046A patent/JP5775829B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0520380A (ja) * | 1991-07-10 | 1993-01-29 | Matsushita Electric Ind Co Ltd | 機能レベルシミユレーシヨン装置 |
JPH09274562A (ja) * | 1996-02-08 | 1997-10-21 | Fujitsu Ltd | プログラム解析装置およびプログラム解析表示装置 |
JPH10214180A (ja) * | 1997-01-31 | 1998-08-11 | Meidensha Corp | ソフトウェアの開発支援方法 |
JP2002082802A (ja) * | 2000-06-27 | 2002-03-22 | Ns Solutions Corp | 影響解析装置および方法、記録媒体、プログラム |
JP2005018114A (ja) * | 2003-06-23 | 2005-01-20 | Internatl Business Mach Corp <Ibm> | プログラム保守支援装置、プログラム保守支援方法、およびプログラム |
Non-Patent Citations (1)
Title |
---|
JPN6015022667; 四野見秀明、外3名: '構造化分析/設計の方法論に基づいたプログラム理解支援ツール' 電子情報通信学会技術研究報告 Vol.92 No.251, 19920929, pp.1-9, 社団法人電子情報通信学会 * |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101602658B1 (ko) * | 2014-04-15 | 2016-03-21 | 주식회사 셈웨어 | 알고리즘 시뮬레이션 시스템을 위한 다이어그램 자동 정렬 모듈 |
JP2016076080A (ja) * | 2014-10-06 | 2016-05-12 | 三菱電機株式会社 | ソースコード解析装置、ソースコード解析方法、及びプログラム |
JP2016091138A (ja) * | 2014-10-31 | 2016-05-23 | 日立オートモティブシステムズ株式会社 | ソースコード検証システム |
JP2016177652A (ja) * | 2015-03-20 | 2016-10-06 | 富士通株式会社 | コンパイラプログラム、システム、方法、及び装置 |
JP2017004282A (ja) * | 2015-06-11 | 2017-01-05 | 日本電気通信システム株式会社 | プログラム表示装置、プログラム表示システム、プログラム表示方法、及びプログラム表示プログラム |
KR101706098B1 (ko) * | 2015-09-25 | 2017-02-23 | (주)씽크포비엘 | 소프트웨어 분석 방법 및 장치 |
WO2017052318A1 (ko) * | 2015-09-25 | 2017-03-30 | (주)씽크포비엘 | 소프트웨어 분석 방법 및 장치 |
US11119886B2 (en) | 2016-02-17 | 2021-09-14 | Mitsubishi Electric Corporation | Software analysis apparatus, software analysis method, and computer readable medium |
KR20180089096A (ko) * | 2017-01-31 | 2018-08-08 | 계명대학교 산학협력단 | 지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법 |
KR101963016B1 (ko) * | 2017-01-31 | 2019-03-27 | 계명대학교 산학협력단 | 지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법 |
JP2018147106A (ja) * | 2017-03-02 | 2018-09-20 | 富士通株式会社 | プログラム分析装置、プログラム分析方法及びプログラム分析プログラム |
JP7360328B2 (ja) | 2017-05-22 | 2023-10-12 | アビニシオ テクノロジー エルエルシー | 異種にプログラムされたデータ処理システムの自動依存性アナライザ |
JP2020522790A (ja) * | 2017-05-22 | 2020-07-30 | アビニシオ テクノロジー エルエルシー | 異種にプログラムされたデータ処理システムの自動依存性アナライザ |
KR20190004198A (ko) * | 2017-07-03 | 2019-01-11 | 주식회사 우리은행 | 플로우 다이어그램 생성 방법 및 이를 실행하는 장치 |
KR101974804B1 (ko) * | 2017-07-03 | 2019-05-03 | 주식회사 우리은행 | 플로우 다이어그램 생성 방법 및 이를 실행하는 장치 |
JP2019061587A (ja) * | 2017-09-27 | 2019-04-18 | 富士通株式会社 | 解析方法、解析装置及び解析プログラム |
WO2020070817A1 (ja) | 2018-10-03 | 2020-04-09 | 三菱電機株式会社 | ソフトウェア解析装置、ソフトウェア解析方法およびソフトウェア解析プログラム |
US11630662B2 (en) | 2018-10-03 | 2023-04-18 | Mitsubishi Electric Corporation | Software analysis device, software analysis method, and software analysis program |
CN112585547A (zh) * | 2019-03-13 | 2021-03-30 | 欧姆龙株式会社 | 分析装置、分析方法以及分析程序 |
WO2020184129A1 (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | 解析装置、解析方法、及び解析プログラム |
US20210397148A1 (en) * | 2019-03-13 | 2021-12-23 | Omron Corporation | Analysis device, analysis method, and recording medium |
JP7031627B2 (ja) | 2019-03-13 | 2022-03-08 | オムロン株式会社 | 解析装置、解析方法、及び解析プログラム |
JP2020149302A (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | 解析装置、解析方法、及び解析プログラム |
US11656592B2 (en) | 2019-03-13 | 2023-05-23 | Omron Corporation | Analysis device, analysis method, and recording medium |
CN112585547B (zh) * | 2019-03-13 | 2024-02-06 | 欧姆龙株式会社 | 分析装置、分析方法以及记录介质 |
KR102037796B1 (ko) * | 2019-03-28 | 2019-11-26 | (주)위세아이텍 | 피처 엔지니어링에 의한 결과 데이터 대응 관계의 시각화 장치 및 방법 |
WO2021020781A1 (ko) * | 2019-07-26 | 2021-02-04 | 서울시립대학교 산학협력단 | 코딩 교육 방법 및 코딩 교육 로봇 |
CN112965838A (zh) * | 2021-03-16 | 2021-06-15 | 支付宝(杭州)信息技术有限公司 | 并发程序的数据竞争检查方法及装置 |
CN112965838B (zh) * | 2021-03-16 | 2024-04-19 | 支付宝(杭州)信息技术有限公司 | 并发程序的数据竞争检查方法及装置 |
CN113448553A (zh) * | 2021-06-23 | 2021-09-28 | 南京大学 | 一种c语言项目依赖信息管理和可视化的方法及系统 |
CN113448553B (zh) * | 2021-06-23 | 2023-11-03 | 南京大学 | 一种c语言项目依赖信息管理和可视化的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP5775829B2 (ja) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5775829B2 (ja) | ソフトウェアの構造可視化プログラムおよびシステム | |
CN107704265B (zh) | 一种面向业务流可配置的规则生成方法 | |
CN107608677B (zh) | 一种编译处理方法、装置及电子设备 | |
US7996819B2 (en) | Generating functional test scripts | |
US9208057B2 (en) | Efficient model checking technique for finding software defects | |
JP5297802B2 (ja) | グラフ型計算のためのメタデータ管理 | |
US9418230B2 (en) | Automated tools for building secure software programs | |
US10423518B2 (en) | Systems and methods for analyzing violations of coding rules | |
JP2020522790A (ja) | 異種にプログラムされたデータ処理システムの自動依存性アナライザ | |
JP2018501538A (ja) | 影響分析 | |
US20120192151A1 (en) | Software development tool | |
US8898649B2 (en) | Application program analysis method, analysis system and recording medium for identifying a contributing factor for an invalid operation of an application program | |
Angerer et al. | Configuration-aware change impact analysis (t) | |
CN111831272A (zh) | 一种采用图形化的开发的方法、介质、设备和装置 | |
Angerer et al. | Change impact analysis for maintenance and evolution of variable software systems | |
CN103049504A (zh) | 基于源代码查询的半自动插桩方法 | |
Negrini et al. | Twinning automata and regular expressions for string static analysis | |
JP6002507B2 (ja) | ソフトウェア検証用プログラムおよびソフトウェア検証システム | |
Luckow et al. | Symbolic pathfinder v7 | |
Kaur et al. | Clone detection in software source code using operational similarity of statements | |
Anderson et al. | Supporting analysis of SQL queries in PHP AiR | |
JP2016057715A (ja) | 図形式プログラム解析装置 | |
JP2006277282A (ja) | モデル評価解析システムおよびモデル評価解析プログラム | |
Grigorev et al. | String-embedded language support in integrated development environment | |
JP2015133031A (ja) | プログラム分析装置及びプログラム分析方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140820 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140820 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150521 |
|
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: 20150609 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150706 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5775829 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |