JP2008269184A - プログラムレビュー支援装置 - Google Patents
プログラムレビュー支援装置 Download PDFInfo
- Publication number
- JP2008269184A JP2008269184A JP2007109822A JP2007109822A JP2008269184A JP 2008269184 A JP2008269184 A JP 2008269184A JP 2007109822 A JP2007109822 A JP 2007109822A JP 2007109822 A JP2007109822 A JP 2007109822A JP 2008269184 A JP2008269184 A JP 2008269184A
- Authority
- JP
- Japan
- Prior art keywords
- program
- display
- identifier
- data
- display data
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】レビュー対象のプログラムは入出力装置2を介して入力され、プログラム記憶部6に格納される。プログラム解析部4は、プログラムを文法的に解析し、その解析情報を解析済みプログラム情報記憶部7に格納する。表示データ作成部5は、表示規則記憶部9に格納された表示規則情報、プログラム、およびプログラムの解析情報に基づいて、表示用のデータを作成し表示データ記憶部8に格納する。表示データにおいては、特定の識別子と他の識別子との表示上の表現が変更されており、レビュー者に区別させやすくしている。
【選択図】 図1
Description
図1は、本実施の形態にかかるプログラムレビュー支援装置の構成を示す図である。図1に示すように、本実施の形態にかかるプログラムレビュー支援装置1は、レビュー対象のプログラムが入力される入出力装置2と、システム制御部3と、レビュー対象のプログラムを文法的に解析するプログラム解析部4と、表示用のデータを作成する表示データ作成部5と、レビュー対象のプログラムを格納するプログラム記憶部6と、プログラム解析部4による解析情報を格納する解析済みプログラム情報記憶部7と、表示用のデータを格納する表示データ記憶部8と、表示データを作成する際に利用される表示規則を格納する表示規則記憶部9と、を備えて構成される。
されるものとする。図6に、図2のプログラムおよび図5の表示規則に対して、識別子を区別しやすいように表示上の表現を変更した表示データの一例を示す。この表示データは表示データ記憶部8に格納される。図6においては、例えば、グローバル関数であるfunc1は、スコープ毎設定に従って区別表示され、特にハイライト表示されている。また、例えば、ローカル変数であるval1は、種別毎設定に従って区別表示され、特に、ハイライト、ボールドおよび下線表示を組み合わせて表示されている。
実施の形態1では、図5に示す表示規則データにおけるスコープ毎設定において、「グローバル」を区別表示対象/非対象設定において「対象」としている。本実施の形態では、これを図9に示すように「非対象」とし、スコープが「グローバル」である識別子を、他の識別子と区別しやすいような表示をさせないようにしている。図2のプログラムに対し、表示規則記憶部9に記憶された表示規則データを図9に示すデータとした場合、表示データ作成部5は、例えば図10に示すような表示データを作成し、この作成された表示データを表示データ記憶部8に格納する。図10においては、グローバル変数である例えばfunc1_item1_part2_val2は、図6とは対照的に、区別表示されていない。なお、その他の構成、動作、および効果は、実施の形態1と同様である。
実施の形態1では、図5に示す表示規則データにおける種別毎設定において、「ファイルstatic変数」を区別表示対象/非対象設定において「対象」としている。本実施の形態では、これを図11に示すように「非対象」とし、特定の識別子の種別である「ファイルstatic変数」を、他の識別子と区別しやすいような表示をさせないようにしている。図2のプログラムに対し、表示規則記憶部9に記憶された表示規則データを図11に示すデータとした場合、表示データ作成部5は、例えば図12に示すような表示データを作成し、この作成された表示データを表示データ記憶部8に格納する。図12においては、「ファイルstatic変数」であるret_valは、図6とは対照的に、区別表示されていない。なお、その他の構成、動作、および効果は、実施の形態1と同様である。
実施の形態2では、図9に示す表示規則データにおいて、個別の識別子の設定をしていない。そこで、本実施の形態では、図13に示すように個別識別子設定を行う。すなわち、図13では、個別の識別子であるfunc1_item1_part1_val1とval1とに対し、個別識別子設定における区別表示対象/非表示設定を、それぞれ、func1_item1_part1_val1が「対象」、val1が「非対象」、と設定している。こうすることで、「種別毎設定」、「スコープ毎設定」の設定に無関係にfunc1_item1_part1_val1の区別表示対象/非対象設定を「対象」と設定し、val1の区別表示対象/非対象設定を「非対象」と設定することが可能となる。図2のプログラムに対し、表示規則記憶部9に記憶された表示データを図13に示すデータとした場合、表示データ作成部5は、例えば図14に示すような表示データを作成し、この作成された表示データを表示データ記憶部8に格納する。図14においては、val1は、図10とは対照的に区別表示されていない。なお、その他の構成、動作、および効果は、実施の形態2と同様である。
実施の形態1から4では、識別子の違いをレビュー者に認識させるための表示上の手段として、フォントの色、フォントの種類、フォントのサイズ、ハイライト表示、およびアンダーライン表示のみを使用したが、これ以外の表示手段として識別子を点滅させることで識別子の違いをレビュー者に認識させることができる。図15は、本実施の形態において、func1を例えば0.5秒周期で点滅表示させた場合のイメージを表す図である。本実施の形態によれば、表示上の表現の選択の範囲がさらに増えるため、区別して表示すべき識別子の数がさらに増大しても対応することが可能になる。なお、その他の構成、動作、および効果は、実施の形態1〜4と同様である。
本実施の形態では、表示規則記憶部9に記憶される表示規則データの内容設定が、任意のタイミングで入出力装置2から変更可能とする。システム制御部3が表示規則記憶部9の内容の変更を検知した場合、システム制御部3は表示データ作成部5に対し表示データ記憶部8の内容の再作成を指示する。この場合、解析済みプログラム情報記憶部7の内容の再作成は行わない。これにより、表示区別対象となる識別子の変更を迅速に行うことができる。なお、その他の構成、動作、および効果は、実施の形態1と同様である。
レビュー対象のプログラムの規模が大きい場合、プログラムに含まれる識別子の数が多くなる。この場合、フォントの色、フォントのサイズ、フォントの種類、ハイライト表示、点滅表示の点滅周期、アンダーライン表示、およびこれらの組合せを利用して表示手段を変えても、レビュー者に識別子の違いを分かりやすく認識させるための表示上の区別に限界がある。そこで、本実施の形態では、識別子の表示上の文字列の性質が明らかに異なる場合、上記表示手段として同じ表現手段をとることとする。例えば文字列の長さが1文字のiと文字列の長さが22のfunc1_item1_part1_val1とでは、明らかに表示上の文字列の性質が異なり(すなわち、文字列の長さが大きく異なる。)、これを同一の文字列としてレビュー者が認識する可能性は極めて低い。そこで、このように文字列の性質が異なり、レビュー者が文字列を認識する上で同一の文字列と認識する可能性が極めて低いような場合には、同一の表示手段をとることを許容することで、表示上の区別の上限を緩和することができる。
図16は、本実施の形態におけるレビュー対象のプログラム(ファイル名:file2.c)の一例を示す図である。図16においては、グローバル変数func1_g_readは、関数func1において読み取りだけが行われている変数、グローバル変数func1_g_writeは、関数func1において書き込みだけが行われている変数、グローバル変数func1_g_read_writeは、関数func1において読み取りおよび書き込み共に行われている変数である。また、func1の内部変数val_readは、関数func1において読み取りだけが行われている変数、内部変数val_writeは、関数func1において書き込みだけが行われている変数、内部変数val_read_writeは、関数func1において読み取りおよび書き込み共に行われている変数である。
2 入出力装置
3 システム制御部
4 プログラム解析部
5 表示データ作成部
6 プログラム記憶部
7 解析済みプログラム情報記憶部
8 表示データ記憶部
9 表示規則記憶部
Claims (8)
- レビュー対象のプログラムが入力される入力部と、
前記プログラムが格納されるプログラム記憶部と、
変数、関数、マクロおよび型を含むプログラム要素を識別するための識別子に対して、前記プログラムを文法的に解析するプログラム解析部と、
このプログラム解析部による解析情報データが格納される解析済みプログラム情報記憶部と、
前記プログラムのレビュー結果を表示するための表示規則を与える表示規則データが予め格納された表示規則記憶部と、
前記プログラム、前記解析情報データ、および前記表示規則データに基づいて表示用のデータを作成する表示データ作成部と、
前記プログラム解析部および前記表示データ作成部の制御を行うシステム制御部と、
前記表示データを出力し前記プログラムのレビュー結果を表示する出力部と、
を備え、
前記表示データ作成部は、前記表示規則データに指定された区別表示対象の識別子に対する表示上の表現を、その他の識別子に対する表示上の表現とは異ならせることにより、前記区別表示対象の識別子が区別表示されるように表示データを作成することを特徴とするプログラムレビュー支援装置。 - 前記表示規則データにおいて、前記区別表示対象の識別子が、識別子の文法上の種別毎に指定されていることを特徴とする請求項1に記載のプログラムレビュー支援装置。
- 前記表示規則データにおいて、前記区別表示対象の識別子が、識別子の前記プログラムにおける参照可能な範囲であるスコープ毎に指定されていることを特徴とする請求項1または2に記載のプログラムレビュー支援装置。
- 前記表示規則データにおいて、前記区別表示対象の識別子が、識別子毎に個別に指定されていることを特徴とする請求項1〜3のいずれか1つに記載のプログラムレビュー支援装置。
- 前記表示上の表現として、フォントの色、フォントの種類、フォントのサイズ、ハイライト表示、点滅表示の点滅周期、もしくはアンダーライン表示、の違い、または各違いの任意の組み合わせを利用することを特徴とする請求項1〜4のいずれか1つに記載のプログラムレビュー支援装置。
- 前記表示規則記憶部に格納された表示規則データの内容は、前記入力部を介して変更可能であり、前記システム制御部は、前記表示規則データの内容の更新を検知すると、前記解析済みプログラム情報記憶部の内容更新の指示は行わずに、前記表示データ作成部に対して表示データの再作成を指示することを特徴とする請求項1〜5のいずれか1つに記載のプログラムレビュー支援装置。
- 前記表示データ作成部は、2つの異なる識別子に対して、文字列の長さを含む表示上の文字列の性質を相互に比較することにより、一方の識別子に関する表示上の文字列の性質と他方の識別子に関する表示上の文字列の性質とが異なる場合には、区別表示指定にかかわらず、前記2つの異なる識別子に対して同一の表示上の表現を与えるような表示データの作成が可能であることを特徴とする請求項1〜6のいずれか1つに記載のプログラムレビュー支援装置。
- 前記プログラムの関数内において、識別子が、読み取りだけ行われている変数か、書き込みだけ行われている変数か、または読み込みおよび書き込み共に行われている変数か、に応じて、前記表示規則データにおける表示規則を区別して指定できることを特徴とする請求項1〜7のいずれか1つに記載のプログラムレビュー支援装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007109822A JP4953896B2 (ja) | 2007-04-18 | 2007-04-18 | プログラムレビュー支援装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007109822A JP4953896B2 (ja) | 2007-04-18 | 2007-04-18 | プログラムレビュー支援装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008269184A true JP2008269184A (ja) | 2008-11-06 |
JP4953896B2 JP4953896B2 (ja) | 2012-06-13 |
Family
ID=40048616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007109822A Active JP4953896B2 (ja) | 2007-04-18 | 2007-04-18 | プログラムレビュー支援装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4953896B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021009185A (ja) * | 2019-06-28 | 2021-01-28 | 三菱電機エンジニアリング株式会社 | プログラミング学習装置および学習プログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62236746A (ja) * | 1986-04-09 | 1987-10-16 | Omron Tateisi Electronics Co | 文字列強調出力方法 |
JPH0588939A (ja) * | 1991-03-15 | 1993-04-09 | Nec Corp | 副プログラム単体テスト方式 |
JPH0863350A (ja) * | 1994-08-23 | 1996-03-08 | Ricoh Co Ltd | プログラム解析方法及び装置 |
JP2001142684A (ja) * | 1999-11-15 | 2001-05-25 | Fujitsu Ltd | ソースプログラムを解析するためのプログラムを格納した記録媒体 |
-
2007
- 2007-04-18 JP JP2007109822A patent/JP4953896B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62236746A (ja) * | 1986-04-09 | 1987-10-16 | Omron Tateisi Electronics Co | 文字列強調出力方法 |
JPH0588939A (ja) * | 1991-03-15 | 1993-04-09 | Nec Corp | 副プログラム単体テスト方式 |
JPH0863350A (ja) * | 1994-08-23 | 1996-03-08 | Ricoh Co Ltd | プログラム解析方法及び装置 |
JP2001142684A (ja) * | 1999-11-15 | 2001-05-25 | Fujitsu Ltd | ソースプログラムを解析するためのプログラムを格納した記録媒体 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021009185A (ja) * | 2019-06-28 | 2021-01-28 | 三菱電機エンジニアリング株式会社 | プログラミング学習装置および学習プログラム |
JP7296798B2 (ja) | 2019-06-28 | 2023-06-23 | 三菱電機エンジニアリング株式会社 | プログラミング学習装置および学習プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP4953896B2 (ja) | 2012-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Meinicke et al. | Mastering software variability with FeatureIDE | |
US11875136B2 (en) | Edit automation using a temporal edit pattern | |
Stănciulescu et al. | Concepts, operations, and feasibility of a projection-based variation control system | |
US8380650B2 (en) | Information extraction rule making support system, information extraction rule making support method, and information extraction rule making support program | |
US5845305A (en) | Index creating apparatus | |
US12106095B2 (en) | Deep learning-based java program internal annotation generation method and system | |
KR101850303B1 (ko) | 소스 코드 위배 수정 방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 | |
Tateosian | Python For ArcGIS | |
Roeder | Juxta web service, lera, and variance viewer. web based collation tools for tei | |
JP5342407B2 (ja) | プログラム解析方法、プログラム解析プログラムおよびプログラム解析装置 | |
Coppit et al. | Spotlight: A prototype tool for software plans | |
JP4953896B2 (ja) | プログラムレビュー支援装置 | |
US9015658B2 (en) | Automatic program generation device and automatic program generation method | |
JP2006209179A (ja) | モデル差分検出ツール | |
JP4835791B2 (ja) | Gui評価システム、gui評価方法およびgui評価用プログラム | |
JP6475288B2 (ja) | プログラム比較方法、プログラム比較装置およびプログラム比較プログラム | |
JP2002288004A (ja) | プログラムソース処理装置、プログラムソース処理方法、およびプログラムソース処理プログラム | |
Alfaro et al. | $\mu $ PrintGen: Supporting Workflow Logs Analysis Through Visual Microprint | |
JP7469999B2 (ja) | 検索装置、検索方法、および検索プログラム | |
Gąsior | ReSharper Essentials | |
JP4827418B2 (ja) | 条件付コンパイル用識別子の管理方法、コンピュータプログラムの作成支援装置及びプログラム | |
JP7515734B2 (ja) | 情報処理装置、プログラム及び情報処理方法 | |
JP4894602B2 (ja) | 修正対象ファイル検索装置と修正対象ファイル検索方法および修正対象ファイル検索プログラム | |
Lu et al. | iSchood: a Tool Software for Identifying Suspicious Copied Homework Documents with Definitive Contents | |
JP6419902B1 (ja) | プログラム比較方法、プログラム比較装置およびプログラム比較プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090730 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120120 |
|
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: 20120214 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120313 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4953896 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150323 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |