JP2009064092A - ソフトウェア構成管理装置、方法及びプログラム - Google Patents
ソフトウェア構成管理装置、方法及びプログラム Download PDFInfo
- Publication number
- JP2009064092A JP2009064092A JP2007229261A JP2007229261A JP2009064092A JP 2009064092 A JP2009064092 A JP 2009064092A JP 2007229261 A JP2007229261 A JP 2007229261A JP 2007229261 A JP2007229261 A JP 2007229261A JP 2009064092 A JP2009064092 A JP 2009064092A
- Authority
- JP
- Japan
- Prior art keywords
- code
- source program
- encoding
- configuration management
- software configuration
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】ソースプログラムとコンパイルユニットとを対応づけることを可能とする、ソフトウェア構成管理装置を提供すること。
【解決手段】符合化部11は、ソースプログラムを入力して符号化して得られた符号を出力し、オブジェクト生成部12は、そのソースプログラムをコンパイルして得られたコンパイルユニットを入力し、その符号を挿入して出力する。
【選択図】図1
【解決手段】符合化部11は、ソースプログラムを入力して符号化して得られた符号を出力し、オブジェクト生成部12は、そのソースプログラムをコンパイルして得られたコンパイルユニットを入力し、その符号を挿入して出力する。
【選択図】図1
Description
本発明は、ソフトウェア構成管理装置、方法及びプログラムに関し、特に、ソースプログラムとコンパイルユニットとを対応づけることを可能とする、ソフトウェア構成管理装置、方法及びプログラムに関する。
これまで、ソースプログラムとコンパイルユニットとを対応づける手段として、コンパイルユニット内にソースプログラムのリビジョン番号又は日付等を挿入する手法が用いられることが多い。特にオープン系においては、これらを結びつける手段は日付のみである場合も多い。
したがって、開発者にとって、ソースプログラムとコンパイルユニットとを適切に対応づけて版を管理することが困難となるという問題がある。
特許文献1において、リビジョン番号、コンパイル日付等の世代情報を生成してコンパイルユニットへ付加するコンパイラが開示されている。
また、特許文献2において、ハッシュ関数によって、アプリケーションプログラムのメッセージダイジェストを作成し、アプリケーション情報格納部に格納することによって、アプリケーションプログラムに対する変更を検出するシステムが開示されている。
以下の分析は、本発明者によってなされたものである。
特許文献1に開示されたコンパイラは、コンパイルユニットへリビジョン番号等を挿入するにすぎないため、ソースプログラムとコンパイルユニットとを対応づけて管理することができない。
特許文献2に開示されたシステムにおいては、アプリケーションプログラムから生成したメッセージダイジェストを保管されるにすぎないため、やはり、ソースプログラムとコンパイルユニットとを対応づけることができない。
そこで、ソースプログラムとコンパイルユニットとを対応づけることを可能とする、ソフトウェア構成管理装置、方法及びプログラムを提供することが課題となる。
本発明の第1の視点に係るソフトウェア構成管理装置は、ソースプログラムを入力して符号化して得られた符号を出力するように構成された符号化部と、前記ソースプログラムをコンパイルして得られたコンパイルユニットを入力し、前記符号を挿入して出力するように構成されたオブジェクト生成部と、を備えたことを特徴とする。
本発明の第2の視点に係るソフトウェア構成管理装置は、第1のソースプログラムを符合化して得られた第1の符合をそのコンパイル結果に挿入したコンパイルユニットを入力し、前記第1の符号を抽出して出力するように構成された符合抽出部と、第2のソースプログラムを入力し、前記第1の符合と同一の符号化によって符号化して得られた符号を第2の符号として出力するように構成された符号化部と、前記両符合を入力するとともに比較し、前記第1の符合と前記第2の符合とが一致した場合には前記コンパイルユニットと前記第2のソースプログラムとの間で版が一致すると判定してその旨の出力をするように構成された符号比較部と、を備えたことを特徴とする。
本発明の第3の視点に係るソフトウェア構成管理方法は、ソースプログラムを符号化する工程と、前記ソースプログラムをコンパイルして得られたコンパイルユニットへ前記符号化によって得られた符合を挿入する工程と、を含むことを特徴とする。
本発明の第4の視点に係るソフトウェア構成管理方法は、第1のソースプログラムを符合化して得られた第1の符合をそのコンパイル結果に挿入したコンパイルユニットから前記第1の符号を抽出する工程と、第2のソースプログラムを前記第1の符号と同一の符合化によって符号化して第2の符号を生成する工程と、前記両符合を比較し、前記第1の符合と前記第2の符合とが一致した場合には前記コンパイルユニットと前記第2のソースプログラムとの間で版が一致すると判定する工程と、を含むことを特徴とする。
本発明の第5の視点に係るソフトウェア構成管理プログラムは、ソースプログラムを符号化する処理と、前記ソースプログラムをコンパイルして得られたコンパイルユニットへ前記符号化によって得られた符合を挿入する処理と、をコンピュータに実行させることを特徴とする。
本発明の第6の視点に係るソフトウェア構成管理プログラムは、第1のソースプログラムを符合化して得られた第1の符合をそのコンパイル結果に挿入したコンパイルユニットから前記第1の符号を抽出する処理と、第2のソースプログラムを前記第1の符合と同一の符号化によって符号化して第2の符号を生成する処理と、前記両符号を比較し、前記第1の符合と前記第2の符合とが一致した場合には前記コンパイルユニットと前記第2のソースプログラムとの間で版が一致すると判定してその旨の出力をする処理と、をコンピュータに実行させることを特徴とする。
第1の展開形態のソフトウェア構成管理装置は、前記符号が、ソースプログラムの文字コードの行方向及び/又は列方向のチェックサムであってもよい。
第2の展開形態のソフトウェア構成管理方法は、前記符号が、ソースプログラムの文字コードの行方向及び/又は列方向のチェックサムであってもよい。
第3の展開形態のソフトウェア構成管理プログラムは、前記符号が、ソースプログラムの文字コードの行方向及び/又は列方向のチェックサムであってもよい。
本発明によるソフトウェア構成管理装置、方法及びプログラムによって、ソースプログラムとコンパイルユニットとを対応づけることが可能となる。
本発明の実施形態に係るソフトウェア構成管理装置について、図面を参照して説明する。
ソフトウェア構成管理装置10は、図1を参照すると、符合化部11とオブジェクト生成部12とを備える。
符合化部11はソースプログラムを入力して符号化して得られた符号を出力する。オブジェクト生成部12は、そのソースプログラムをコンパイラ100によってコンパイルして得られたコンパイルユニットAを入力し、その符号を挿入してコンパイルユニットBとして出力する。
本発明の他の実施形態に係るソフトウェア構成管理装置について、図面を参照して説明する。
ソフトウェア構成管理装置20は、図3を参照すると、符合抽出部21と符合化部22と符合比較部23とを備える。
符合抽出部21は、第1のソースプログラムを符合化して得られた符合Aをそのコンパイル結果に挿入したコンパイルユニットを入力し、符号Aを抽出して出力する。符合化部22は、第2のソースプログラムを入力し、符合Aと同一の符号化によって符号化して得られた符号を符号Bとして出力する。符合比較部23は、両符合A及びBを入力するとともに比較し、符合Aと符合Bとが一致した場合にはコンパイルユニットと第2のソースプログラムとの間で版が一致すると判定してその旨の出力をする。
本発明の第1の実施例に係るソフトウェア構成管理装置について図面を参照して詳細に説明する。
図1は本発明の第1の実施例に係るソフトウェア構成管理装置10のブロック図である。
ソフトウェア構成管理装置10は、図1を参照すると、ソースプログラムから符号を生成する符号化部11と、公知のコンパイラによって、そのソースプログラムから生成されたコンパイルユニットAとその符合とを入力して、コンパイルユニットAへその符合を挿入してコンパイルユニットBとして出力するオブジェクト生成部12、とを備える。
次に、本発明の第1の実施例に係るソフトウェア構成管理装置10の動作について詳細に説明する。
図2は本発明の第1の実施例に係るソフトウェア構成管理装置10のフローチャートである。
図1及び図2を参照すると、符合化部11は、ソースプログラムを符号化する(ステップS11)。符合化は、一例として、チェックサムであってもよい。
次に、オブジェクト生成部12は、そのソースプログラムをコンパイルして得られたコンパイルユニットAへ、ステップS1の符号化によって得られた符合を挿入し、コンパイルユニットBとして出力する(ステップS12)。
従来、ソースプログラムとコンパイルユニットとの対応付けは、日付又はリビジョン番号等のみによって管理されていたため、正しくないソースプログラムを誤って入力してしまう危険性があった。
本実施例に係るソフトウェア構成管理装置は、ソースプログラムから生成した符号をコンパイルユニット内に埋め込む方式を採用しており、その符号を参照することによって、基となったソースプログラムの特定を可能とする。したがって、ソースプログラムとコンパイルユニットとの対応づけが可能となり、正しくないソースプログラムを誤って入力することを防ぐことができる。
本発明の第2の実施例に係るソフトウェア構成管理装置について図面を参照して詳細に説明する。
図3は本発明の第2の実施例に係るソフトウェア構成管理装置20のブロック図である。
ソフトウェア構成管理装置20は、ソースプログラムとコンパイルユニットとが、互いに対応するか否かを判定する装置である。
ソフトウェア構成管理装置20は、図3を参照すると、第1のソースプログラムを符合化して得られた符合Aをそのコンパイル結果に挿入したコンパイルユニットを入力し、符号Aを抽出して出力するように構成された符合抽出部21と、第2のソースプログラムを入力し、符合Aと同一の符号化によって符号化して得られた符号Bを出力する符号化部22と、両符合A及びBを入力するとともに比較し、符合Aと符合Bとが一致した場合にはコンパイルユニットと第2のソースプログラムとの間で版が一致すると判定してその旨の出力をする符号比較部23と、を備える。
次に、本発明の第2の実施例に係るソフトウェア構成管理装置20の動作について詳細に説明する。
図4は本発明の第2の実施例に係るソフトウェア構成管理装置20の動作のフローチャートである。
図3及び図4を参照すると、符合抽出部21は、第1のソースプログラムを符合化して得られた符合Aをそのコンパイル結果に挿入したコンパイルユニットから符号Aを抽出する(ステップS21)。符合Aは、一例として、第1のソースプログラムに対するチェックサムであってもよい。
符合化部22は、第2のソースプログラムを入力し、符号Aと同一の符合化によって符号化して符号Bを生成する(ステップS22)。
符合比較部23は、符合A及び符合Bを入力して比較し(ステップS23)、符合Aと符合Bとが一致した場合(ステップS24のYes)にはコンパイルユニットと第2のソースプログラムとの間で版が一致すると判定してその旨を出力する(ステップS25)。一方、符合Aと符合Bとが不一致である場合(ステップS24のNo)には処理を終了する。
本実施例に係るソフトウェア構成管理装置によって、ソースプログラムから生成した符号を埋め込まれたコンパイルユニットとソースプログラムとの対応づけが可能となる。したがって、正しくないソースプログラムを誤って入力することを防止することができる。
本発明の第3の実施例に係るソフトウェア構成管理装置について図面を参照して詳細に説明する。
本実施例においては、上記第1及び第2の実施例に係るソフトウェア構成管理装置における符合をソースプログラムに対するチェックサムとする。
図5は、本発明の第3の実施例に係るソフトウェア構成管理装置における符合化について説明するための図である。
ソースプログラムはテキストによって構成され、その行数をm、最大の列数をnとすると、文字を要素とするm×n行列とみなすことができる。最大列数nに満たない行は、一例として、null値(=0x00)が設定されているものとみなす。
チェックサムとして、例えば、行ごと及び列ごとに、キャラクターコード値を加算した結果を256で割った余りを計算する。すると、チェックサムai(i=1、…、m)及びbj(j=1、…、n)が得られる。
図6は、本発明の第3の実施例に係るソフトウェア構成管理装置における符合を説明するための図である。
図6を参照すると、一例として、行数m、チェックサムai(i=1、…、m)、列数n、チェックサムbj(j=1、…、n)を並べたものを符号とすることができる。
本実施例のチェックサムを埋め込まれたコンパイルユニットと、その基とされたソースプログラムとは、互いにチェックサムを介して対応づけることができる。したがって、ソースプログラムとコンパイルユニットの一致を確認できるため、正しくないソースプログラムを誤って入力することを防止することができる。
本発明の第4の実施例に係るソフトウェア構成管理機能付コンパイラ装置について図面を参照して詳細に説明する。
図7は本発明の第4の実施例に係るソフトウェア構成管理機能付コンパイラ装置40のブロック図である。
ソフトウェア構成管理機能付コンパイラ装置40は、図7を参照すると、第1の実施例に係るソフトウェア構成管理装置10(図1)とコンパイラ100とを備える。
ソフトウェア構成管理機能付コンパイラ装置40の動作については、上述の第1の実施例に係るソフトウェア構成管理装置10と同様であるため省略する。
以上の記載は実施例に基づいて行ったが、本発明は、上記実施例に限定されるものではない。
10、20 ソフトウェア構成管理装置
11、22 符合化部
12 オブジェクト生成部
21 符合抽出部
23 符合比較部
40 ソフトウェア構成管理機能付コンパイラ
100 コンパイラ
11、22 符合化部
12 オブジェクト生成部
21 符合抽出部
23 符合比較部
40 ソフトウェア構成管理機能付コンパイラ
100 コンパイラ
Claims (9)
- ソースプログラムを入力して符号化して得られた符号を出力するように構成された符号化部と、
前記ソースプログラムをコンパイルして得られたコンパイルユニットを入力し、前記符号を挿入して出力するように構成されたオブジェクト生成部と、を備えたことを特徴とするソフトウェア構成管理装置。 - 第1のソースプログラムを符合化して得られた第1の符合をそのコンパイル結果に挿入したコンパイルユニットを入力し、前記第1の符号を抽出して出力するように構成された符合抽出部と、
第2のソースプログラムを入力し、前記第1の符合と同一の符号化によって符号化して得られた符号を第2の符号として出力するように構成された符号化部と、
前記両符合を入力するとともに比較し、前記第1の符合と前記第2の符合とが一致した場合には前記コンパイルユニットと前記第2のソースプログラムとの間で版が一致すると判定してその旨の出力をするように構成された符号比較部と、を備えたことを特徴とするソフトウェア構成管理装置。 - 前記符号が、ソースプログラムの文字コードの行方向及び/又は列方向のチェックサムであることを特徴とする、請求項1又は2に記載のソフトウェア構成管理装置。
- ソースプログラムを符号化する工程と、
前記ソースプログラムをコンパイルして得られたコンパイルユニットへ前記符号化によって得られた符合を挿入する工程と、を含むことを特徴とするソフトウェア構成管理方法。 - 第1のソースプログラムを符合化して得られた第1の符合をそのコンパイル結果に挿入したコンパイルユニットから前記第1の符号を抽出する工程と、
第2のソースプログラムを前記第1の符号と同一の符合化によって符号化して第2の符号を生成する工程と、
前記両符合を比較し、前記第1の符合と前記第2の符合とが一致した場合には前記コンパイルユニットと前記第2のソースプログラムとの間で版が一致すると判定する工程と、を含むことを特徴とするソフトウェア構成管理方法。 - 前記符号が、ソースプログラムの文字コードの行方向及び/又は列方向のチェックサムであることを特徴とする、請求項4又は5に記載のソフトウェア構成管理方法。
- ソースプログラムを符号化する処理と、
前記ソースプログラムをコンパイルして得られたコンパイルユニットへ前記符号化によって得られた符合を挿入する処理と、をコンピュータに実行させることを特徴とするソフトウェア構成管理プログラム。 - 第1のソースプログラムを符合化して得られた第1の符合をそのコンパイル結果に挿入したコンパイルユニットから前記第1の符号を抽出する処理と、
第2のソースプログラムを前記第1の符合と同一の符号化によって符号化して第2の符号を生成する処理と、
前記両符号を比較し、前記第1の符合と前記第2の符合とが一致した場合には前記コンパイルユニットと前記第2のソースプログラムとの間で版が一致すると判定してその旨の出力をする処理と、をコンピュータに実行させることを特徴とするソフトウェア構成管理プログラム。 - 前記符号が、ソースプログラムの文字コードの行方向及び/又は列方向のチェックサムであることを特徴とする、請求項7又は8に記載のソフトウェア構成管理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007229261A JP2009064092A (ja) | 2007-09-04 | 2007-09-04 | ソフトウェア構成管理装置、方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007229261A JP2009064092A (ja) | 2007-09-04 | 2007-09-04 | ソフトウェア構成管理装置、方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009064092A true JP2009064092A (ja) | 2009-03-26 |
Family
ID=40558650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007229261A Withdrawn JP2009064092A (ja) | 2007-09-04 | 2007-09-04 | ソフトウェア構成管理装置、方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009064092A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014010699A (ja) * | 2012-06-29 | 2014-01-20 | Fujitsu Ltd | 更新判定プログラムおよび更新判定装置 |
US8689184B2 (en) | 2011-03-30 | 2014-04-01 | The Procter & Gamble Company | Apparatus, system, and method for managing industrial software configurations |
-
2007
- 2007-09-04 JP JP2007229261A patent/JP2009064092A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8689184B2 (en) | 2011-03-30 | 2014-04-01 | The Procter & Gamble Company | Apparatus, system, and method for managing industrial software configurations |
JP2014010699A (ja) * | 2012-06-29 | 2014-01-20 | Fujitsu Ltd | 更新判定プログラムおよび更新判定装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10409966B2 (en) | Optimizing and protecting software | |
CN102428461B (zh) | 利用显示替换的web翻译 | |
CN101084478B (zh) | 为计算机程序代码加水印 | |
CN102341806B (zh) | 软件保护 | |
CN108363911B (zh) | 一种Python脚本混淆、水印的方法及装置 | |
CN1823323A (zh) | 用于执行本机绑定的方法和装置 | |
CN102880456A (zh) | 一种创建插件方法及装置 | |
EP3177990B1 (en) | Method for compiling a source code | |
JP6699200B2 (ja) | シンプルデータタイプに対するグラマー生成 | |
CN112948776A (zh) | 一种数字水印添加方法、装置、电子设备及存储介质 | |
WO2009116288A1 (ja) | データベースシステム移行方法 | |
CN101681415B (zh) | 用于改变和添加数字内容功能的激活密钥的方法和设备 | |
JP2007304726A (ja) | プログラム難読化装置、難読化方法及び難読化プログラム | |
JP2009064092A (ja) | ソフトウェア構成管理装置、方法及びプログラム | |
JP6451417B2 (ja) | デバッグ支援装置、デバッグ支援システム、デバッグ支援方法、および、デバッグ支援プログラム | |
KR101741186B1 (ko) | 부분 복구가능 부호의 검증이 가능한 데이터 분산 저장 장치 및 방법 | |
CN103714271A (zh) | 一种Java软件水印植入虚方法的永假式构造方法 | |
US20150326750A1 (en) | Data hiding method via revision records on a collaboration platform | |
US20040034602A1 (en) | Method and apparatus for watermarking binary computer code | |
JP4134094B2 (ja) | 署名検証装置及び署名作成・検証システム及び署名検証方法 | |
US10747855B2 (en) | Content generating device, content inspecting device, content generating method, and computer-readable medium including content data structure | |
JP2015035174A (ja) | 制御プログラム分割装置、制御プログラム分割方法及びその記録媒体 | |
JP2006072584A (ja) | 実行プログラム生成装置、実行プログラム生成方法、プログラム処理装置、プログラム処理方法及びプログラム | |
JP2009211646A (ja) | データ秘匿プログラム、データ読出プログラム、データ秘匿装置及びデータ読出装置 | |
JP2008176520A (ja) | タグ変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Effective date: 20100401 Free format text: JAPANESE INTERMEDIATE CODE: A761 |