(57)【要約】【課題】ソースプログラムとコンパイルユニットとを対応づけることを可能とする、ソフトウェア構成管理装置を提供すること。【解決手段】符合化部１１は、ソースプログラムを入力して符号化して得られた符号を出力し、オブジェクト生成部１２は、そのソースプログラムをコンパイルして得られたコンパイルユニットを入力し、その符号を挿入して出力する。【選択図】図１
2009064092.tif 000002
【特許請求の範囲】
【請求項１】
ソースプログラムを入力して符号化して得られた符号を出力するように構成された符号化部と、
前記ソースプログラムをコンパイルして得られたコンパイルユニットを入力し、前記符号を挿入して出力するように構成されたオブジェクト生成部と、を備えたことを特徴とするソフトウェア構成管理装置。
【請求項２】
第１のソースプログラムを符合化して得られた第１の符合をそのコンパイル結果に挿入したコンパイルユニットを入力し、前記第１の符号を抽出して出力するように構成された符合抽出部と、
第２のソースプログラムを入力し、前記第１の符合と同一の符号化によって符号化して得られた符号を第２の符号として出力するように構成された符号化部と、
前記両符合を入力するとともに比較し、前記第１の符合と前記第２の符合とが一致した場合には前記コンパイルユニットと前記第２のソースプログラムとの間で版が一致すると判定してその旨の出力をするように構成された符号比較部と、を備えたことを特徴とするソフトウェア構成管理装置。
【請求項３】
前記符号が、ソースプログラムの文字コードの行方向及び／又は列方向のチェックサムであることを特徴とする、請求項１又は２に記載のソフトウェア構成管理装置。
【請求項４】
ソースプログラムを符号化する工程と、
前記ソースプログラムをコンパイルして得られたコンパイルユニットへ前記符号化によって得られた符合を挿入する工程と、を含むことを特徴とするソフトウェア構成管理方法。
【請求項５】
第１のソースプログラムを符合化して得られた第１の符合をそのコンパイル結果に挿入したコンパイルユニットから前記第１の符号を抽出する工程と、
第２のソースプログラムを前記第１の符号と同一の符合化によって符号化して第２の符号を生成する工程と、
前記両符合を比較し、前記第１の符合と前記第２の符合とが一致した場合には前記コンパイルユニットと前記第２のソースプログラムとの間で版が一致すると判定する工程と、を含むことを特徴とするソフトウェア構成管理方法。
【請求項６】
前記符号が、ソースプログラムの文字コードの行方向及び／又は列方向のチェックサムであることを特徴とする、請求項４又は５に記載のソフトウェア構成管理方法。
【請求項７】
ソースプログラムを符号化する処理と、
前記ソースプログラムをコンパイルして得られたコンパイルユニットへ前記符号化によって得られた符合を挿入する処理と、をコンピュータに実行させることを特徴とするソフトウェア構成管理プログラム。
【請求項８】
第１のソースプログラムを符合化して得られた第１の符合をそのコンパイル結果に挿入したコンパイルユニットから前記第１の符号を抽出する処理と、
第２のソースプログラムを前記第１の符合と同一の符号化によって符号化して第２の符号を生成する処理と、
前記両符号を比較し、前記第１の符合と前記第２の符合とが一致した場合には前記コンパイルユニットと前記第２のソースプログラムとの間で版が一致すると判定してその旨の出力をする処理と、をコンピュータに実行させることを特徴とするソフトウェア構成管理プログラム。
【請求項９】
前記符号が、ソースプログラムの文字コードの行方向及び／又は列方向のチェックサムであることを特徴とする、請求項７又は８に記載のソフトウェア構成管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア構成管理装置、方法及びプログラムに関し、特に、ソースプログラムとコンパイルユニットとを対応づけることを可能とする、ソフトウェア構成管理装置、方法及びプログラムに関する。
【背景技術】
【０００２】
これまで、ソースプログラムとコンパイルユニットとを対応づける手段として、コンパイルユニット内にソースプログラムのリビジョン番号又は日付等を挿入する手法が用いられることが多い。特にオープン系においては、これらを結びつける手段は日付のみである場合も多い。
【０００３】
したがって、開発者にとって、ソースプログラムとコンパイルユニットとを適切に対応づけて版を管理することが困難となるという問題がある。
【０００４】
特許文献１において、リビジョン番号、コンパイル日付等の世代情報を生成してコンパイルユニットへ付加するコンパイラが開示されている。
【０００５】
また、特許文献２において、ハッシュ関数によって、アプリケーションプログラムのメッセージダイジェストを作成し、アプリケーション情報格納部に格納することによって、アプリケーションプログラムに対する変更を検出するシステムが開示されている。
【０００６】
【特許文献１】特開昭６３−０４９８４０号公報
【特許文献２】再特ＷＯ２００２−０９３３６１
【発明の開示】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明者によってなされたものである。
【０００８】
特許文献１に開示されたコンパイラは、コンパイルユニットへリビジョン番号等を挿入するにすぎないため、ソースプログラムとコンパイルユニットとを対応づけて管理することができない。
【０００９】
特許文献２に開示されたシステムにおいては、アプリケーションプログラムから生成したメッセージダイジェストを保管されるにすぎないため、やはり、ソースプログラムとコンパイルユニットとを対応づけることができない。
【００１０】
そこで、ソースプログラムとコンパイルユニットとを対応づけることを可能とする、ソフトウェア構成管理装置、方法及びプログラムを提供することが課題となる。
【課題を解決するための手段】
【００１１】
本発明の第１の視点に係るソフトウェア構成管理装置は、ソースプログラムを入力して符号化して得られた符号を出力するように構成された符号化部と、前記ソースプログラムをコンパイルして得られたコンパイルユニットを入力し、前記符号を挿入して出力するように構成されたオブジェクト生成部と、を備えたことを特徴とする。
【００１２】
本発明の第２の視点に係るソフトウェア構成管理装置は、第１のソースプログラムを符合化して得られた第１の符合をそのコンパイル結果に挿入したコンパイルユニットを入力し、前記第１の符号を抽出して出力するように構成された符合抽出部と、第２のソースプログラムを入力し、前記第１の符合と同一の符号化によって符号化して得られた符号を第２の符号として出力するように構成された符号化部と、前記両符合を入力するとともに比較し、前記第１の符合と前記第２の符合とが一致した場合には前記コンパイルユニットと前記第２のソースプログラムとの間で版が一致すると判定してその旨の出力をするように構成された符号比較部と、を備えたことを特徴とする。
【００１３】
本発明の第３の視点に係るソフトウェア構成管理方法は、ソースプログラムを符号化する工程と、前記ソースプログラムをコンパイルして得られたコンパイルユニットへ前記符号化によって得られた符合を挿入する工程と、を含むことを特徴とする。
【００１４】
本発明の第４の視点に係るソフトウェア構成管理方法は、第１のソースプログラムを符合化して得られた第１の符合をそのコンパイル結果に挿入したコンパイルユニットから前記第１の符号を抽出する工程と、第２のソースプログラムを前記第１の符号と同一の符合化によって符号化して第２の符号を生成する工程と、前記両符合を比較し、前記第１の符合と前記第２の符合とが一致した場合には前記コンパイルユニットと前記第２のソースプログラムとの間で版が一致すると判定する工程と、を含むことを特徴とする。
【００１５】
本発明の第５の視点に係るソフトウェア構成管理プログラムは、ソースプログラムを符号化する処理と、前記ソースプログラムをコンパイルして得られたコンパイルユニットへ前記符号化によって得られた符合を挿入する処理と、をコンピュータに実行させることを特徴とする。
【００１６】
本発明の第６の視点に係るソフトウェア構成管理プログラムは、第１のソースプログラムを符合化して得られた第１の符合をそのコンパイル結果に挿入したコンパイルユニットから前記第１の符号を抽出する処理と、第２のソースプログラムを前記第１の符合と同一の符号化によって符号化して第２の符号を生成する処理と、前記両符号を比較し、前記第１の符合と前記第２の符合とが一致した場合には前記コンパイルユニットと前記第２のソースプログラムとの間で版が一致すると判定してその旨の出力をする処理と、をコンピュータに実行させることを特徴とする。
【００１７】
第１の展開形態のソフトウェア構成管理装置は、前記符号が、ソースプログラムの文字コードの行方向及び／又は列方向のチェックサムであってもよい。
【００１８】
第２の展開形態のソフトウェア構成管理方法は、前記符号が、ソースプログラムの文字コードの行方向及び／又は列方向のチェックサムであってもよい。
【００１９】
第３の展開形態のソフトウェア構成管理プログラムは、前記符号が、ソースプログラムの文字コードの行方向及び／又は列方向のチェックサムであってもよい。
【発明の効果】
【００２０】
本発明によるソフトウェア構成管理装置、方法及びプログラムによって、ソースプログラムとコンパイルユニットとを対応づけることが可能となる。
【発明を実施するための最良の形態】
【００２１】
本発明の実施形態に係るソフトウェア構成管理装置について、図面を参照して説明する。
【００２２】
ソフトウェア構成管理装置１０は、図１を参照すると、符合化部１１とオブジェクト生成部１２とを備える。
【００２３】
符合化部１１はソースプログラムを入力して符号化して得られた符号を出力する。オブジェクト生成部１２は、そのソースプログラムをコンパイラ１００によってコンパイルして得られたコンパイルユニットＡを入力し、その符号を挿入してコンパイルユニットＢとして出力する。
【００２４】
本発明の他の実施形態に係るソフトウェア構成管理装置について、図面を参照して説明する。
【００２５】
ソフトウェア構成管理装置２０は、図３を参照すると、符合抽出部２１と符合化部２２と符合比較部２３とを備える。
【００２６】
符合抽出部２１は、第１のソースプログラムを符合化して得られた符合Ａをそのコンパイル結果に挿入したコンパイルユニットを入力し、符号Ａを抽出して出力する。符合化部２２は、第２のソースプログラムを入力し、符合Ａと同一の符号化によって符号化して得られた符号を符号Ｂとして出力する。符合比較部２３は、両符合Ａ及びＢを入力するとともに比較し、符合Ａと符合Ｂとが一致した場合にはコンパイルユニットと第２のソースプログラムとの間で版が一致すると判定してその旨の出力をする。
【実施例１】
【００２７】
本発明の第１の実施例に係るソフトウェア構成管理装置について図面を参照して詳細に説明する。
【００２８】
図１は本発明の第１の実施例に係るソフトウェア構成管理装置１０のブロック図である。
【００２９】
ソフトウェア構成管理装置１０は、図１を参照すると、ソースプログラムから符号を生成する符号化部１１と、公知のコンパイラによって、そのソースプログラムから生成されたコンパイルユニットＡとその符合とを入力して、コンパイルユニットＡへその符合を挿入してコンパイルユニットＢとして出力するオブジェクト生成部１２、とを備える。
【００３０】
次に、本発明の第１の実施例に係るソフトウェア構成管理装置１０の動作について詳細に説明する。
【００３１】
図２は本発明の第１の実施例に係るソフトウェア構成管理装置１０のフローチャートである。
【００３２】
図１及び図２を参照すると、符合化部１１は、ソースプログラムを符号化する（ステップＳ１１）。符合化は、一例として、チェックサムであってもよい。
【００３３】
次に、オブジェクト生成部１２は、そのソースプログラムをコンパイルして得られたコンパイルユニットＡへ、ステップＳ１の符号化によって得られた符合を挿入し、コンパイルユニットＢとして出力する（ステップＳ１２）。
【００３４】
従来、ソースプログラムとコンパイルユニットとの対応付けは、日付又はリビジョン番号等のみによって管理されていたため、正しくないソースプログラムを誤って入力してしまう危険性があった。
【００３５】
本実施例に係るソフトウェア構成管理装置は、ソースプログラムから生成した符号をコンパイルユニット内に埋め込む方式を採用しており、その符号を参照することによって、基となったソースプログラムの特定を可能とする。したがって、ソースプログラムとコンパイルユニットとの対応づけが可能となり、正しくないソースプログラムを誤って入力することを防ぐことができる。
【実施例２】
【００３６】
本発明の第２の実施例に係るソフトウェア構成管理装置について図面を参照して詳細に説明する。
【００３７】
図３は本発明の第２の実施例に係るソフトウェア構成管理装置２０のブロック図である。
【００３８】
ソフトウェア構成管理装置２０は、ソースプログラムとコンパイルユニットとが、互いに対応するか否かを判定する装置である。
【００３９】
ソフトウェア構成管理装置２０は、図３を参照すると、第１のソースプログラムを符合化して得られた符合Ａをそのコンパイル結果に挿入したコンパイルユニットを入力し、符号Ａを抽出して出力するように構成された符合抽出部２１と、第２のソースプログラムを入力し、符合Ａと同一の符号化によって符号化して得られた符号Ｂを出力する符号化部２２と、両符合Ａ及びＢを入力するとともに比較し、符合Ａと符合Ｂとが一致した場合にはコンパイルユニットと第２のソースプログラムとの間で版が一致すると判定してその旨の出力をする符号比較部２３と、を備える。
【００４０】
次に、本発明の第２の実施例に係るソフトウェア構成管理装置２０の動作について詳細に説明する。
【００４１】
図４は本発明の第２の実施例に係るソフトウェア構成管理装置２０の動作のフローチャートである。
【００４２】
図３及び図４を参照すると、符合抽出部２１は、第１のソースプログラムを符合化して得られた符合Ａをそのコンパイル結果に挿入したコンパイルユニットから符号Ａを抽出する（ステップＳ２１）。符合Ａは、一例として、第１のソースプログラムに対するチェックサムであってもよい。
【００４３】
符合化部２２は、第２のソースプログラムを入力し、符号Ａと同一の符合化によって符号化して符号Ｂを生成する（ステップＳ２２）。
【００４４】
符合比較部２３は、符合Ａ及び符合Ｂを入力して比較し（ステップＳ２３）、符合Ａと符合Ｂとが一致した場合（ステップＳ２４のＹｅｓ）にはコンパイルユニットと第２のソースプログラムとの間で版が一致すると判定してその旨を出力する（ステップＳ２５）。一方、符合Ａと符合Ｂとが不一致である場合（ステップＳ２４のＮｏ）には処理を終了する。
【００４５】
本実施例に係るソフトウェア構成管理装置によって、ソースプログラムから生成した符号を埋め込まれたコンパイルユニットとソースプログラムとの対応づけが可能となる。したがって、正しくないソースプログラムを誤って入力することを防止することができる。
【実施例３】
【００４６】
本発明の第３の実施例に係るソフトウェア構成管理装置について図面を参照して詳細に説明する。
【００４７】
本実施例においては、上記第１及び第２の実施例に係るソフトウェア構成管理装置における符合をソースプログラムに対するチェックサムとする。
【００４８】
図５は、本発明の第３の実施例に係るソフトウェア構成管理装置における符合化について説明するための図である。
【００４９】
ソースプログラムはテキストによって構成され、その行数をｍ、最大の列数をｎとすると、文字を要素とするｍ×ｎ行列とみなすことができる。最大列数ｎに満たない行は、一例として、ｎｕｌｌ値（＝０ｘ００）が設定されているものとみなす。
【００５０】
チェックサムとして、例えば、行ごと及び列ごとに、キャラクターコード値を加算した結果を２５６で割った余りを計算する。すると、チェックサムａｉ（ｉ＝１、…、ｍ）及びｂｊ（ｊ＝１、…、ｎ）が得られる。
【００５１】
図６は、本発明の第３の実施例に係るソフトウェア構成管理装置における符合を説明するための図である。
【００５２】
図６を参照すると、一例として、行数ｍ、チェックサムａｉ（ｉ＝１、…、ｍ）、列数ｎ、チェックサムｂｊ（ｊ＝１、…、ｎ）を並べたものを符号とすることができる。
【００５３】
本実施例のチェックサムを埋め込まれたコンパイルユニットと、その基とされたソースプログラムとは、互いにチェックサムを介して対応づけることができる。したがって、ソースプログラムとコンパイルユニットの一致を確認できるため、正しくないソースプログラムを誤って入力することを防止することができる。
【実施例４】
【００５４】
本発明の第４の実施例に係るソフトウェア構成管理機能付コンパイラ装置について図面を参照して詳細に説明する。
【００５５】
図７は本発明の第４の実施例に係るソフトウェア構成管理機能付コンパイラ装置４０のブロック図である。
【００５６】
ソフトウェア構成管理機能付コンパイラ装置４０は、図７を参照すると、第１の実施例に係るソフトウェア構成管理装置１０（図１）とコンパイラ１００とを備える。
【００５７】
ソフトウェア構成管理機能付コンパイラ装置４０の動作については、上述の第１の実施例に係るソフトウェア構成管理装置１０と同様であるため省略する。
【００５８】
以上の記載は実施例に基づいて行ったが、本発明は、上記実施例に限定されるものではない。
【図面の簡単な説明】
【００５９】
【図１】本発明の第１の実施例に係るソフトウェア構成管理装置のブロック図である。
【図２】本発明の第１の実施例に係るソフトウェア構成管理装置のフローチャートである。
【図３】本発明の第２の実施例に係るソフトウェア構成管理装置のブロック図である。
【図４】本発明の第２の実施例に係るソフトウェア構成管理装置の動作のフローチャートである。
【図５】本発明の第３の実施例に係るソフトウェア構成管理装置における符合化について説明するための図である。
【図６】本発明の第３の実施例に係るソフトウェア構成管理装置における符合を説明するための図である。
【図７】本発明の第４の実施例に係るソフトウェア構成管理機能付コンパイラ装置のブロック図である。
【符号の説明】
【００６０】
１０、２０  ソフトウェア構成管理装置
１１、２２  符合化部
１２  オブジェクト生成部
２１  符合抽出部
２３  符合比較部
４０  ソフトウェア構成管理機能付コンパイラ
１００  コンパイラ
【図１】
2009064092.tif 000003
【図２】
2009064092.tif 000004
【図３】
2009064092.tif 000005
【図４】
2009064092.tif 000006
【図５】
2009064092.tif 000007
【図６】
2009064092.tif 000008
【図７】
2009064092.tif 000009