JP2003280903A - ソースプログラム比較情報生成システム - Google Patents

ソースプログラム比較情報生成システム

Info

Publication number
JP2003280903A
JP2003280903A JP2002086873A JP2002086873A JP2003280903A JP 2003280903 A JP2003280903 A JP 2003280903A JP 2002086873 A JP2002086873 A JP 2002086873A JP 2002086873 A JP2002086873 A JP 2002086873A JP 2003280903 A JP2003280903 A JP 2003280903A
Authority
JP
Japan
Prior art keywords
line
change
similarity
source program
comparison
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.)
Pending
Application number
JP2002086873A
Other languages
English (en)
Inventor
Shinya Ikehata
伸哉 池端
Masato Nishiguchi
真人 西口
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 Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co 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 Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2002086873A priority Critical patent/JP2003280903A/ja
Publication of JP2003280903A publication Critical patent/JP2003280903A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 プログラム開発者が変更内容を適切に把握す
ることのできる比較情報を生成するシステムを提供する
ことを目的とする。 【解決手段】 基本比較情報解析部102により判定さ
れた変更ブロックについて、詳細比較情報解析部103
により各行の変更種別(「修正」「追加」「削除」)を
判定する。この判定において、行類似度演算部104に
より、予約語格納テーブル108を参照し、先頭予約語
が一致する変更行と比較行との組合せについて、各組合
せ毎に単語単位での一致・不一致に基づく行の類似度を
演算する。さらに、当該類似度に基づき、変更ブロック
における組合せパターン毎の類似度を算出し、その結果
に応じて各行についての変更種別(「修正」「追加」
「削除」)を判定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は業務プログラムの開
発において、ソースプログラムとそのソースプログラム
に対して追加、削除、修正などの変更を加えた変更後ソ
ースプログラムとの比較情報を生成するシステムに関す
る。
【0002】
【従来の技術】従来、業務プログラムの開発の際、変更
前ソースプログラムに変更を加えて生成した変更後ソー
スプログラムについて、どの程度の変更が加えられたか
を確認するため、両ソースプログラムを比較した情報を
解析するシステムが用いられている。例えば、変更前ソ
ースプログラムと変更後ソースプログラムを比較して、
変更の加えられた部分を構成する各行について、修正、
追加、削除の種別を示す比較情報を生成する技術につい
ては特開平6−195247号公報、特開2000−3
15153号公報に開示されているように変更前ソース
プログラムと変更後ソースプログラムとをそれぞれ行単
位で比較することによって、変更前ソースプログラムに
対し変更後ソースプログラム側で不一致な行について比
較情報を表示することが知られている。
【0003】上記従来技術について図11を用いて説明
する。図11は、従来のシステムに基づき生成された比
較情報の表示の一例である。変更前ソースプログラム1
101と変更後ソースプログラム1102とを行単位で
比較して、比較の結果に基づき比較情報1103とし
て、未変更(空欄)部分1104、修正部分1105、
追加部分1106、削除部分(図示無し)を分けて表示
することが可能であった。この場合、変更部分を構成す
る変更後ソースプログラムの各変更行とそれに対応する
変更前ソースプログラム側の各比較行とをそれぞれ上か
ら順に対応させ、対応する行があるものは修正、対応す
る行がない変更行は追加、対応する行がない比較行は削
除と判定しており、追加又は削除の行数を確認すること
により、変更後ソースプログラムにおける行の増減を把
握が可能だった。
【0004】
【発明が解決しようとする課題】しかし、前記従来技術
はあくまで行単位での比較に基づき比較情報を生成する
ため、前記比較情報に基づき具体的な変更内容を把握す
ることは必ずしも容易ではなかった。例えば、図11の
従来のシステムでの処理の例では修正部分1105の変
更前ソースプログラム側の変更行「MOVE“003”
〜」と、変更後ソースプログラム側の比較行「PERF
ORM〜」のように、先頭の予約語(「MOVE」「P
ERFORM」)が不一致の行を対応させて「修正」と
している。この「修正」はそれぞれの先頭の予約語であ
る「MOVE」と「PERFORM」の言葉が不一致で
あるために生じたことになるが、本来の命令の意味合い
を踏まえると、「MOVE」=移動と、「PERFOR
M」=実行という命令が一致するはずがなく、処理内容
が全く異なっている。システムは文言が一致していない
から「修正」というコメントを出力することになるが明
らかに命令内容が違う場合でも、文言が一致していない
と判断し、「修正」というコメントを出力してしまう。
そのため、後でプログラム開発者がチェックしたときに
「修正」と扱われている行の組合せを比較しても具体的
な変更内容は把握が難しく、プログラム開発者が具体的
な変更内容を把握しようとすると表示された比較情報に
関わらず、変更部分を構成する各変更行と比較行とを画
面上で比較し、先頭の予約語の共通する行を探し出す必
要があるため、変更内容の把握に多大な労力を要すると
いう問題があった。
【0005】本発明はプログラム開発者が具体的な変更
内容を容易に把握することができる適切な比較情報を生
成するシステムを提供することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、変更前ソースプログラムに変更を加えた
変更後ソースプログラムについて、前記変更前ソースプ
ログラムに対する修正、追加又は削除の変更種別を示す
比較情報を生成するシステムであって、前記ソースプロ
グラムに用いられる言語仕様で定義された先頭予約語と
その他の予約語とを格納する予約語格納手段と、前記変
更前ソースプログラムと変更後ソースプログラムとを行
単位で比較して、変更後ソースプログラム側の変更行か
ら構成される変更部分と、当該変更部分に対応する変更
前ソースプログラム側の比較行とを抽出する基本比較情
報解析手段と、抽出した前記変更行及び比較行から先頭
予約語が存在する変更行及び比較行を抽出し、抽出され
た変更行及び比較行を比較判定し、各判定結果を比較情
報を生成し、出力する詳細情報解析手段とを備えること
を特徴とする。前記詳細情報解析手段は、抽出した前記
変更行及び比較行から先頭予約語が存在する変更行及び
比較行を抽出し、抽出された変更行及び比較行の中で同
一の先頭予約語を持つ変更行と比較行との組合せについ
て変更行の変更種別を修正と判定し、同一の先頭予約語
を持たない変更行について変更種別を追加と判定し、同
一の先頭予約語を持たない比較行について変更後ソース
プログラムにおける変更種別を削除と判定し、各判定結
果を比較情報として生成し、出力することを特徴とす
る。また、前記詳細比較情報解析手段は、前記組合せが
複数存在する場合に、各組合せについて単語単位で比較
し、前記各組合せにおける単語の一致又は不一致に基づ
き類似度を算出する類似度演算手段と、当該類似度演算
手段により算出された前記類似度に基づき、前記変更種
別を修正とする変更行を判定する変更種別判定手段とを
備えることを特徴とする。また、前記類似度演算手段
は、前記組合せについて、前記単語の一致又は不一致に
基づき前記組合せにおける行の類似度を算出する行類似
度演算手段と、前記行類似度演算手段により算出された
各行の類似度に基づき、前記変更部分全体の類似度を算
出する変更部分類似度演算手段とから構成され、前記変
更種別判定手段は、前記変更部分類似度演算手段により
算出された類似度に基づき前記変更部分において変更種
別を修正とする変更行を判定することを特徴とする。ま
た、前記類似度演算手段は、前記組合せについて、前記
予約語格納手段に格納された前記その他の予約語が含ま
れるか否かを判定し、その他の予約語が含まれる場合そ
の他の予約語の一致又は不一致を判定し、その他予約語
が一致する場合に、当該一致に対し重み付けを与えて類
似度を算出することを特徴とする。
【0007】
【発明の実施の形態】以下、本発明の実施の一形態を図
面を参照して詳細に説明する。図1は、本発明の一実施
の形態に係るソースプログラム比較情報生成システムの
概略構成を示すブロック図である。図1で示すように本
発明の実施の形態に係るソースプログラム比較情報生成
システム100は、変更前の情報としての変更前ソース
プログラム200と、変更後の情報としての変更後ソー
スプログラム300とをシステム内に読み込むソースプ
ログラム読み込み部101と、ソースプログラム読込み
部101により読み込んだ変更前ソースプログラム20
0と、変更後ソースプログラム300とを行単位で比較
し、変更後ソースプログラム300側の変更行とこれに
対応する変更前ソースプログラム200側の比較行を抽
出する基本比較情報解析部102と、基本比較情報解析
部102の比較結果に基づき各変更行毎の変更種別情報
を生成する詳細比較情報解析部103と、この詳細比較
情報解析部103を構成する行類似度演算部104、ブ
ロック類似度演算部105及び変更種別判定部106
と、比較結果表示部107とを備えている。また、行類
似度演算部104の演算処理において用いられる予約語
情報を格納した予約語格納格納テーブル108を有して
いる。
【0008】詳細比較情報解析部103は基本比較情報
解析部102の行単位での比較により抽出された変更行
及び比較行について、さらに各変更行と比較行との組合
せ毎に単語単位で比較し、予約語格納テーブル108に
格納された先頭予約語及びその他予約語を考慮して、各
変更行についての変更種別(「修正」「追加」「削
除」)を判定する。予約語格納テーブル108は図2に
示すように、予約語1081と、各予約語が先頭予約語
かその他の予約語かを識別するための種別ID1082
の各情報を有している。予約語格納テーブルには図2に
記載されたものだけに限られず、多様な予約語が存在し
ている。なお、**Nには任意の数値がはいることを示
す。ここで、予約語とは、プログラム言語の仕様で定義
されたものであり、先頭予約語とは、文法上、各行の先
頭に位置する一定の命令語等である。本実施の形態で
は、前記先頭予約語の一致又は不一致により、各変更行
を「修正」扱いとするか否かの判定を行っている。すな
わち、異なる先頭予約語を持つ行の組合せ(例えば、
「IF〜」文と、「PERFORM〜」文)はプログラ
ムの文法上全く異なるため、「修正」ではなく、「追
加」又は「削除」として扱うこととする。また、予約語
については、行類似度の算出に際し、重みづけを与える
こととしている。
【0009】詳細比較情報解析部103を構成する行類
似度演算部104は、変更ブロック内の各変更行の組合
せについて、単語単位での比較に基づく類似度の算出を
行う。ブロック類似度演算部105は行類似度演算部1
04で算出された各組合せ毎の行の類似度に基づき、各
変更ブロックにおける組合せパターンの全てについて、
変更ブロック全体としての類似度の算出を行う。変更種
別判定部106は変更ブロック全体の類似度の算出結果
に基づき、最適な組合せパターンを判定し、当該組合せ
パターンに従って、各変更行毎の変更種別を比較結果表
示部107に表示する。
【0010】以上のように構成されたソースプログラム
比較情報生成システム100により、比較情報を生成す
る方法について、図面を用いて説明する。図1のソース
プログラム読込部101により、変更前ソースプログラ
ム200と、変更後ソースプログラム300とを読み込
む。次に基本比較情報解析部102により、行単位での
一致・不一致を比較して変更行及び比較行を抽出し、前
記変更行又は比較行から構成される変更部分を示す変更
ブロックとその他の未変更ブロックとに分類する。図3
は未変更ブロックと変更ブロックを示す図である。20
1は変更前ソースプログラム200側の未変更ブロック
を示し、202は変更ブロックを示す。同様に301は
変更後ソースプログラム300の未変更ブロックを示
し、302は変更後ソースプログラムの変更ブロックを
示す。
【0011】変更ブロック202を構成する各比較行と
変更ブロック302を構成する各変更行とについて詳細
比較情報解析部103により詳細比較情報を生成する。
詳細比較情報の生成においては行類似度演算部104に
より、変更ブロック202,302内の比較行と変更行
との組合せ毎に各行の類似度の算出を行う。
【0012】図4〜6は各行の類似度の算出方法を示す
図であり、図4は行組合せ毎の比較処理を説明する図で
ある。類似度の算出は図4に示すように、変更ブロック
202の各比較行と、変更ブロック302の各変更行と
の組合せの全てについて行うことになるが、その前にま
ず、図5で示されるように類似度の算出を行う行を対象
言語の文法に応じてそれぞれの命令文、処理文を単語単
位に分解し、分解した単語が予約語であるか否かを予約
語格納テーブル108により判定する。予約語が含まれ
る場合には、予約語格納テーブル108の種別ID10
82により先頭予約語かその他の予約語であるかどうか
を判定する。図5は単語単位での比較処理結果の一例を
示す図である。図5の比較行501を単語単位に分解す
る。「MOVE」という単語が先頭予約語になるかどう
かを判定する。図2の予約語格納テーブル108内に
「MOVE」は先頭予約語 種別ID“1”が付されて
いるため、単語「MOVE」は先頭予約語503である
ことがわかる。次に“003”は予約語格納テーブル1
08ではその他の予約語 種別ID“2”が付与されて
いるため、その他の予約語504であることがわかる。
同じように他の単語についても図2の予約語格納テーブ
ル108を参照することによって、その単語が予約語で
あるかどうかの判定ができる。この判定結果に基づき、
変更前ソースプログラム側の比較行501と、変更後ソ
ースプログラム側の変更行502とにおける各単語を、
先頭予約語503、その他予約語504、その他単語5
05に区別する。さらに比較行501における各単語と
変更行502における各単語との一致・不一致を判定
し、その結果に基づき、先頭予約語数,先頭予約語一致
数,その他予約語数,その他予約語一致数,その他単語
数,その他単語一致数をそれぞれをカウントして単語数
情報を求める。例えば、図5の例では単語数情報が、先
頭予約語数=2、先頭予約語一致数=1、その他予約語
数=2、その他予約語一致数=1、その他単語数=4、
その他単語一致数=1となる。各行毎の処理を図4に示
すように、変更ブロック202の各比較行と、変更ブロ
ック302の各変更行との組合せの全てについて行う。
次にこの単語数情報に基づき、所定の計算式により各組
合せ毎の類似度を算出する。
【0013】図6は全ての組合せについて類似度を算出
した結果を一覧表とした行類似度対応表600を示す図
である。表内の行が変更前ソースプログラム200側の
何行目かを示し、列が変更後ソースプログラム300側
の何行目かを示し、表内の数値が各組合せ毎の類似度を
示す。なお、行類似度対応表600において、「−1.
000」は先頭予約語の不一致な行であり、「修正」扱
いをしない組合せを示している。
【0014】図7は行類似度の算出処理手順を示すフロ
ーチャートである。変更ブロック内の比較する2つの行
について予約格納テーブル108に格納された先頭予約
語が含まれ、かつ、その先頭予約語が不一致であるか否
かを判定する(ステップ701)。先頭予約語が不一致
である場合には類似度を「−1.000」として(ステ
ップ702)、他の単語についての類似度の算出を行わ
ずに次のステップ(ステップ711)に進む。
【0015】いずれか一方又は双方に先頭予約語が含ま
れないか、又は、先頭予約語が一致する場合には、その
他予約語及びその他単語の双方があるか否かを判定し
(ステップ703)、双方がある場合には、以下の式に
より類似度を算出する(ステップ704)。
【数1】 この場合、予約語一致数とその他単語一致数が大きいほ
ど類似度が大きくなる。ここで、式中の係数「0.4」
「0.6」は、予約語の一致に比べ、その他の単語の一
致をより高く評価することを意味している。この係数は
プログラム言語の性質等に応じて適宜定めることができ
る。
【0016】その他予約語又はその他単語のいずれか一
方が無い場合には、その他予約語のみか否かを判定し
(ステップ705)、その他予約語のみである場合に
は、以下の式により類似度を算出する(ステップ70
6)
【数2】
【0017】その他予約語が無い場合にはその他単語の
みか否かを判定し(ステップ707)その他単語のみが
ある場合には、以下の式により類似度を算出する(ステ
ップ706)。
【数3】
【0018】その他単語が無い(ステップ709)場合
又は上述のいずれかの式により類似度を算出した(ステ
ップ704,706,708)場合には、先頭予約語の
一致に基づく予約語を算出するため、先頭予約語がある
か否かを判定し(ステップ709)、先頭予約語がある
場合には、さらに以下の式により類似度を算出する(ス
テップ710)。
【数4】 先頭予約語がある場合としては、一致する先頭予約語の
みがある場合、一致する先頭予約語とその他予約語があ
り、その他単語が無い場合、一致する先頭予約語とその
他単語があり、その他予約語が無い場合が該当する。
【0019】以上のように算出された結果、類似度につ
いて、0より小さいか否かを判定し、0より大きい場合
には次式により類似度を算出し、処理を終了する。
【数5】 このように、類似度を二乗することにより、各行組合せ
毎の類似度の差を大きいなものとすることができる。
【0020】一方、0より小さい場合には、次式により
類似度をさらに算出し、処理を終了する。
【数6】
【0021】例えば、図5に示す例では、まず、図7の
ステップ704により次式に示すように類似度が算出さ
れる。
【数7】 算出された類似度について、ステップ710により次式
に示すように類似度が算出される。
【数8】 さらに、ステップ712により、算出された類似度が二
乗され、ソースプログラム側の1行目と、変更後ソース
プログラム側の2行目との組合せについての類似度が
「0.552」として算出されることとなる。
【0022】以上の類似度算出処理を全ての組合せにつ
いて行い、その結果に基づき図6に示す行類似度対応表
600を生成する。生成された行類似度対応表600に
基づき、変更ブロック内における組合せパターン毎にブ
ロック類似度の算出処理を行い、当該類似度が最大にな
る組合せパターンを求める。
【0023】ブロック類似度の算出処理では、まず算出
処理を行う組合せパターンを決定し、当該組合せパター
ンについてブロック類似度の算出を行う。図8は、ブロ
ック類似度の算出処理を行う組合せパターンの一例を示
す図である。この図に示すように変更前ソースプログラ
ム側の1行目と変更後ソースプログラム側の2行目を対
応付け、また、変更前ソースプログラム側の2行目と変
更後ソースプログラム側の4行目を対応付けた組合せパ
ターンについて説明する。
【0024】図8に示すようにソースプログラム側の変
更ブロック202と変更後ソースプログラム側の変更ブ
ロック302とで対応付けのされた行は「修正」扱いの
行801、マスタソース側において対応付けのされてい
ない行は「削除」扱いの行802、変更後ソース側にお
いて対応付けのされていない行は「追加」扱いの行80
3を示している。本実施の形態では、ブロック類似度
を、「修正」扱いの行801についての組合せ毎の類似
度と、追加行数、削除行数、修正行数とに基づいて算出
することとしている。このブロック類似度の算出には次
式を用いる。
【数9】 上記式の分母は追加行数、削除行数、修正行数nの和で
求められ、これは、変更前ブロック総行数、変更後ブロ
ック総行数の和から修正行数nの差を取ったものと等し
いものとなる。すなわち修正行数が多いほど分母は小さ
くなり、類似度は大きくなる。また、分子は修正行数n
個分の行類似度の和である。
【0025】図8の例では削除行数=1、追加行数=
3、修正行数=2、分子=1.104となり、これらの
値を上記式に代入することによって、以下のようにブロ
ック類似度が求まる。
【数10】
【0026】ブロック類似度の算出を全ての行組合せパ
ターンについて行う。値が最も大きいパターンが、ソー
スプログラムの変更量を最も少なくできる対応付けとな
る。
【0027】図9は図8で示される行組合せパターンの
全てについて、ブロック類似度の算出及び比較を行う処
理を示すフローチャートである。行組合せパターンにお
ける先頭予約語判断を行い(ステップ901)、当該パ
ターンにおいて行類似度が「−1.000」となってい
るもの、すなわち先頭予約語が不一致であるものが含ま
れている場合には、ブロック類似度の算出を行わずに演
算処理を終了する。先頭予約語が不一致な行については
対応付けをしないことを示す。
【0028】行組合せパターンについて、前述のブロッ
ク類似度演算を行い(ステップ902)、算出されたブ
ロック類似度と、記憶手段に格納された今までのブロッ
ク類似度との大小比較を行い(ステップ903)、今ま
でのブロック類似度より大きいと判断された場合はその
行組合せパターンを記憶装置に記憶され、ブロック類似
度の値が最大となる行組合せパターンが記憶装置に記憶
される。(ステップ904)
【0029】以上の処理を全ての行組合せパターンにつ
いて再帰的に繰り返して行う。この繰り返し処理では変
更前ソースプログラム200側の行番号を制御し、変更
前ソースプログラム200側の変更ブロック(以下、
「マスタブロック」とする)の現在行(マスタブロック
現在行L)の次の行、すなわちL+1行目からマスタブ
ロックの総行数(N行目)までの繰り返しを行うととも
に、マスタブロック現在行記憶変数iに現在行を記憶す
る(ステップ905)。
【0030】また、変更後ソースプログラム300側の
行番号を制御し、変更後ソースプログラム300側の変
更ブロック(以下、「変更後ブロック」とする)の現在
行(変更後ブロック現在行R)の次の行、すなわちR+
1行目からマスタブロックの総行数(M行目)までの繰
り返しを行うとともに、マスタブロック現在行記憶変数
jに現在行を記憶する(ステップ906)。
【0031】さらに、全ての行組合せパターンの再帰呼
び出しを行う。この際、ステップS905及びステップ
906で記憶したi,jをそれぞれL,Rに代入して再
帰呼び出しに渡し、再帰処理を行う。
【0032】全ての組合せパターンについて繰り返し処
理を行うこととなる(ステップ905〜ステップ90
9)。
【0033】以上の処理の結果、ブロック類似度が最大
となった組合せパターンに基づき、変更種別判定部10
6は、変更ブロック202,302の各行について、変
更種別の判定を行う。具体的には前記組合せパターンに
おいて、比較行と変更行とが対応付けされている場合は
「修正」、対応付けのされていない比較行は「削除」、
対応付けのされていない変更行は「追加」と判定する。
【0034】図10は本実施の形態に係るソースプログ
ラム変更情報生成システム100の比較結果表示部10
7に変更情報を表示した一例を示す図である。ソースプ
ログラム1001と、変更後ソースプログラム1002
との変更部分の各行について比較情報1003が表示さ
れ、基本比較情報解析部101及び詳細比較情報解析部
102の判定結果に応じて、未変更部分1004と、修
正部分1005と、追加部分1006と、削除部分10
07とが表示される。
【0035】なお、本発明は上記実施の形態に限られる
ものではなく、予約語及び演算処理に用いる数式等は、
言語等に応じて適宜設定可能なものである。
【0036】
【発明の効果】本発明によれば、変更前ソースプログラ
ムと、変更後ソースプログラムとの比較情報の生成シス
テムにおいて、単語単位で行組合せを解析し、予め設定
された先頭予約語の一致、不一致に基づき、各行につい
て修正として扱うか否かを判定することとしたので、先
頭の命令語等に基づいて適切な変更種別情報を提供する
ことができる。そのため、プログラム開発者は、前記変
更種別情報に基づき両ソースプログラムを比較すること
により、変更内容を容易に把握することができる。ま
た、先頭予約語の一致した行の組合せ毎に類似度を算出
し、当該類似度に基づき変更種別を判定することとした
ので、先頭予約語の一致する組合せが複数ある場合に、
ソースプログラムの変更量が最も少なくなる行を対応付
けることができ、より適切な変更種別情報を提供するこ
とができる。また、前記組合せ毎の類似度に基づき、組
合せパターン毎のブロック類似度を算出し、その算出結
果に応じて変更種別の判定を行うこととしたので、変更
ブロック全体として最もソースプログラムの変更量の少
ない組合せパターンについての比較情報を得ることがで
きる。また、類似度の算出において、一定の予約語につ
いて重み付けをすることにより、プログラム言語に応じ
て、より適切な変更種別の判定を行うことができる。
【図面の簡単な説明】
【図1】 本発明の一実施の形態に係るソースプログラ
ム変更情報生成システムの概略構成を示すブロック図で
ある。
【図2】 予約語格納テーブルに格納される情報の一例
を示す図である。
【図3】 本実施の形態に係るシステムによる行単位で
の比較処理結果の一例を示す図である。
【図4】 本実施の形態に係るシステムによる行組合せ
毎の比較処理を説明するための図である。
【図5】 本実施の形態に係るシステムによる単語単位
での比較処理結果の一例を示す図である。
【図6】 本実施の形態に係るシステムにより生成され
る行類似度対応表の一例を示す図である。
【図7】 本実施の形態に係るシステムによる行類似度
の算出処理手順を示すフローチャートである。
【図8】 本実施の形態に係るシステムによるブロック
類似度の算出に用いられる行組合せパターンの一例を示
す図である。
【図9】 本実施の形態に係るシステムによるブロック
類似度の比較処理手順を示すフローチャートである。
【図10】 本実施の形態に係るシステムにより生成さ
れた比較情報を表示した例を示す図である。
【図11】 従来のシステムにより生成された比較情報
を表示した例を示す図である。
【符号の説明】
100・・・ソースプログラム変更情報生成システム、
101・・・ソースプログラム読み込み部、102・・
・基本比較情報解析部、103・・・詳細比較情報解析
部、104・・・行類似度演算部、105・・・ブロッ
ク類似度演算部、106・・・変更種別判定部、107
・・・比較結果表示部、108・・・予約語格納テーブ
ル、200・・・変更前ソースプログラム、202・・
・変更ブロック、300・・・変更後ソースプログラ
ム、302・・・変更ブロック。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 西口 真人 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウエアエンジニアリング株式会 社内 Fターム(参考) 5B075 ND02 PR06 5B076 EA08 EA13 EC01 EC02

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 変更前ソースプログラムに変更を加えた
    変更後ソースプログラムについて、前記変更前ソースプ
    ログラムに対する修正、追加又は削除の変更種別を示す
    比較情報を生成するシステムであって、 前記ソースプログラムに用いられる言語仕様で定義され
    た先頭予約語とその他の予約語とを格納する予約語格納
    手段と、 前記変更前ソースプログラムと変更後ソースプログラム
    とを行単位で比較して、変更後ソースプログラム側の変
    更行から構成される変更部分と、当該変更部分に対応す
    る変更前ソースプログラム側の比較行とを抽出する基本
    比較情報解析手段と、 抽出した前記変更行及び比較行から先頭予約語が存在す
    る変更行及び比較行を抽出し、抽出された変更行及び比
    較行を比較判定し、各判定結果を比較情報を生成し、出
    力する詳細情報解析手段とを備えることを特徴とするソ
    ースプログラム比較情報生成システム。
  2. 【請求項2】 前記詳細情報解析手段は、抽出した前記
    変更行及び比較行から先頭予約語が存在する変更行及び
    比較行を抽出し、抽出された変更行及び比較行の中で同
    一の先頭予約語を持つ変更行と比較行との組合せについ
    て変更行の変更種別を修正と判定し、同一の先頭予約語
    を持たない変更行について変更種別を追加と判定し、同
    一の先頭予約語を持たない比較行について変更後ソース
    プログラムにおける変更種別を削除と判定し、各判定結
    果を比較情報として生成し、出力することを特徴とする
    請求項1記載のソースプログラム比較情報生成システ
    ム。
  3. 【請求項3】 前記詳細比較情報解析手段は、 前記組合せが複数存在する場合に、各組合せについて単
    語単位で比較し、前記各組合せにおける単語の一致又は
    不一致に基づき類似度を算出する類似度演算手段と、 当該類似度演算手段により算出された前記類似度に基づ
    き、前記変更種別を修正とする変更行を判定する変更種
    別判定手段とを備えることを特徴とする請求項1記載の
    ソースプログラム比較情報生成システム。
  4. 【請求項4】 前記類似度演算手段は、 前記組合せについて、前記単語の一致又は不一致に基づ
    き前記組合せにおける行の類似度を算出する行類似度演
    算手段と、 前記行類似度演算手段により算出された各行の類似度に
    基づき、前記変更部分全体の類似度を算出する変更部分
    類似度演算手段とから構成され、 前記変更種別判定手段は、前記変更部分類似度演算手段
    により算出された類似度に基づき前記変更部分において
    変更種別を修正とする変更行を判定することを特徴とす
    る請求項3に記載のソースプログラム比較情報生成シス
    テム。
  5. 【請求項5】 前記類似度演算手段は、 前記組合せについて、前記予約語格納手段に格納された
    前記その他の予約語が含まれるか否かを判定し、その他
    の予約語が含まれる場合その他の予約語の一致又は不一
    致を判定し、その他予約語が一致する場合に、当該一致
    に対し重み付けを与えて類似度を算出することを特徴と
    する請求項3又は請求項4記載ソースプログラム比較情
    報生成システム。
JP2002086873A 2002-03-26 2002-03-26 ソースプログラム比較情報生成システム Pending JP2003280903A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002086873A JP2003280903A (ja) 2002-03-26 2002-03-26 ソースプログラム比較情報生成システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002086873A JP2003280903A (ja) 2002-03-26 2002-03-26 ソースプログラム比較情報生成システム

Publications (1)

Publication Number Publication Date
JP2003280903A true JP2003280903A (ja) 2003-10-03

Family

ID=29233316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002086873A Pending JP2003280903A (ja) 2002-03-26 2002-03-26 ソースプログラム比較情報生成システム

Country Status (1)

Country Link
JP (1) JP2003280903A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006018693A (ja) * 2004-07-02 2006-01-19 Fujitsu Ltd 類似ソースコード抽出プログラム、類似ソースコード抽出装置および類似ソースコード抽出方法
JP2006244105A (ja) * 2005-03-03 2006-09-14 Seiko Epson Corp テキスト群特定方法、プログラム、電子ファイル管理システム
JP2010079447A (ja) * 2008-09-24 2010-04-08 Fujitsu Ltd バグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法
JP2013152559A (ja) * 2012-01-24 2013-08-08 Toshiba Corp プログラム比較解析装置およびプログラム比較解析方法
JP2019220110A (ja) * 2018-06-22 2019-12-26 アズビル株式会社 プログラム比較装置、プログラム比較方法および比較プログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006018693A (ja) * 2004-07-02 2006-01-19 Fujitsu Ltd 類似ソースコード抽出プログラム、類似ソースコード抽出装置および類似ソースコード抽出方法
JP2006244105A (ja) * 2005-03-03 2006-09-14 Seiko Epson Corp テキスト群特定方法、プログラム、電子ファイル管理システム
JP4621514B2 (ja) * 2005-03-03 2011-01-26 セイコーエプソン株式会社 テキスト群特定方法、プログラム、電子ファイル管理システム
JP2010079447A (ja) * 2008-09-24 2010-04-08 Fujitsu Ltd バグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法
JP2013152559A (ja) * 2012-01-24 2013-08-08 Toshiba Corp プログラム比較解析装置およびプログラム比較解析方法
JP2019220110A (ja) * 2018-06-22 2019-12-26 アズビル株式会社 プログラム比較装置、プログラム比較方法および比較プログラム
JP7068941B2 (ja) 2018-06-22 2022-05-17 アズビル株式会社 プログラム比較装置、プログラム比較方法および比較プログラム

Similar Documents

Publication Publication Date Title
CN109933656B (zh) 舆情极性预测方法、装置、计算机设备及存储介质
CN110765763A (zh) 语音识别文本的纠错方法、装置、计算机设备和存储介质
KR101813683B1 (ko) 커널 rdr을 이용한 태깅 말뭉치 오류 자동수정방법
CN111814466A (zh) 基于机器阅读理解的信息抽取方法、及其相关设备
US20200034482A1 (en) Verifying and correcting training data for text classification
JP5071373B2 (ja) 言語処理装置、言語処理方法および言語処理用プログラム
JP2005158010A (ja) 分類評価装置・方法及びプログラム
WO2022095353A1 (zh) 语音识别结果的测评方法、装置、设备及存储介质
US11593557B2 (en) Domain-specific grammar correction system, server and method for academic text
WO2021004118A1 (zh) 一种相关值确定方法及装置
CN110929514B (zh) 文本校对方法、装置、计算机可读存储介质及电子设备
CN111161730B (zh) 语音指令匹配方法、装置、设备及存储介质
JP2003280903A (ja) ソースプログラム比較情報生成システム
CN115858776B (zh) 一种变体文本分类识别方法、系统、存储介质和电子设备
JP5911931B2 (ja) 述語項構造抽出装置、方法、プログラム、及びコンピュータ読取り可能な記録媒体
JP2000089786A (ja) 音声認識結果の修正方法および装置
CN113378561A (zh) 词语预测模板生成方法及装置
JP7211139B2 (ja) 校閲方法、情報処理装置および校閲プログラム
WO2021056740A1 (zh) 语言模型构建方法、系统、计算机设备及可读存储介质
CN113743409A (zh) 一种文本识别方法和装置
WO2022215219A1 (ja) 文評価装置、文評価方法及びプログラム
JP3387437B2 (ja) 機械翻訳校正装置
JPH06111077A (ja) 文書認識装置の評価装置
KR102668118B1 (ko) 자연어 기반의 비디오 검색을 위한 학습 장치 및 학습 방법
JP2004078531A (ja) 文字認識装置、文字認識方法およびその方法をコンピュータに実行させるプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070625