JPH08171482A - プログラムのバージョン生成方式 - Google Patents

プログラムのバージョン生成方式

Info

Publication number
JPH08171482A
JPH08171482A JP7226363A JP22636395A JPH08171482A JP H08171482 A JPH08171482 A JP H08171482A JP 7226363 A JP7226363 A JP 7226363A JP 22636395 A JP22636395 A JP 22636395A JP H08171482 A JPH08171482 A JP H08171482A
Authority
JP
Japan
Prior art keywords
program
version
module
revision
revisions
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
JP7226363A
Other languages
English (en)
Inventor
Takahide Oogami
貴英 大上
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPH08171482A publication Critical patent/JPH08171482A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00—Arrangements for software engineering
    • G06F8/70—Software maintenance or management
    • G06F8/71—Version control; Configuration management
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44—Arrangements for executing specific programs
    • G06F9/445—Program loading or initiating
    • G06F9/44536—Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 コンピュータ・プログラムの異なるバージョ
ンの保存に際し、変更したモジュールのみを記憶するこ
とで、少ない記憶スペースで、プログラム呼び出しを可
能にし、プログラム実行時には、その都度、ユーザが必
要とするプログラム・バージョンを生成し、それを実行
することで、多数のプログラム・バージョンを管理する
プログラム・バージョン生成・管理システムを得る。 【構成】 プログラム生成部100は、バージョン番号
に従い、複数のバージョンのエントリを記憶する構成表
50から該当するバージョン・エントリを読み込む。読
み込んだバージョン・エントリに従って、複数のリビジ
ョン・ルーチン290、291をそれぞれ起動させ、モ
ジュール・リポジトリ20からモジュール・リビジョン
を選択する。プログラム生成部100は、選択したモジ
ュール・リビジョンからプログラムの所望のバージョン
を生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、コンピュータ・プロ
グラムのバージョン更新管理システムと、複数の構造化
されたモジュールを用いてひとつのコンピュータ・プロ
グラムを構築するためのシステムに関するものである。
特にコンピュータ・プログラムのソースコードを効率よ
く管理し、必要に応じて要求のあったバージョンに基づ
く実行可能なプログラムを生成するシステムに関するも
のである。
【0002】
【従来の技術】現在使用されているほとんどのシステム
では、コンピュータ・プログラムの多数のバージョンを
取り扱うのは困難である。その原因は、まず、プログラ
ムの多数のバージョンを記憶するのには、大量の記憶容
量を必要とするからである。さらに、他の原因は、マル
チユーザ・システムにおいては、異なるユーザが異なる
バージョンを使用するのを管理する必要性があるので、
プログラムの異なるバージョンには、異なる名前を付け
なければならないからである。
【0003】また、ソフトウェアのユーザは、プログラ
ムの複数のバージョンにアクセスすることを好む。その
ため、従来から複数のバージョンを供給する方法があっ
た。従来の複数のバージョンを供給する方法と、その方
法の欠点(ドロウバック)について述べる前に、ここで
は、なぜプログラムにはたいてい多数のバージョンがあ
るのかについて、手短に述べる。
【0004】コンピュータ・プログラムの展開のため、
ソフトウェア技術者は、コンピュータ・プログラムを、
いくつかの互いに関連したモジュールに分割する。たと
えば、大量データ処理プログラムでは、”main””
read””compute””print”のモジュ
ールに分ける。こうして、”main””read””
compute””print”のモジュールは、それ
ぞれ、データの読み込み、データ処理、処理結果の印
刷、それぞれを管理するプログラムの部分を受け持つこ
とになる。
【0005】商用環境という点から見ると、プログラム
は製品となり、製品としてのライフ・サイクルを持つこ
とになる。プログラムの製品ライフ・サイクルを通し
て、ソフトウェア技術者は、モジュールのイニシャル・
リビジョン、つまり、そのモジュールのオリジナル・バ
ージョンを修正していく。この修正は、イニシャル・リ
ビジョンをまずコピーし、そのコピーを修正したものを
新しいバージョンとして保存する、というように行われ
る。たとえば、プログラムのある部分が正しく動作せ
ず、このエラーを正すため、ソースコードの一部分(セ
クション)を変えなければならないとする。さらに、こ
のプログラムに拡張機能を加えたいとする。こうして、
イニシャル・モジュール・リビジョンへの修正は、結果
として、二つのリビジョンを持つモジュールを存在させ
ることになり、プログラムも二つのバージョンを持つこ
とになる。このプログラムの二つのバージョンとは、イ
ニシャル・リビジョンから生成された第一のバージョ
ン、そして、修正された新しいリビジョンから生成され
た第二のバージョンである。
【0006】従来のモジュール構成システムがそうであ
るが、たいてい、一つのプログラムの全てのモジュール
・リビジョンは、一つのディレクトリに保存される。こ
こで、たとえば、”my_prog”という名前のプロ
グラムを生成するのに必要な複数のモジュール・リビジ
ョンは、”main””read””comp””pr
int”という名前のモジュールである。この時ソフト
ウェア開発者は、モジュールの二番目のリビジョンに
は、それぞれ別の名前を付ける。これは、コンピュータ
・プラットフォーム(ハードウェアとソフトウェアのコ
ンビネーション)の多くは、モジュール・リビジョンの
ような複数のファイルを、一つのサブディレクトリに、
同じ名前で保存しておくことができないためである。た
とえば、あるモジュールが、Cプログラム言語で書かれ
ていれば、”read”モジュールのイニシャル・リビ
ジョンは、”read.c”という名前で、あるディレ
クトリに保存し、”read”モジュールの新しいリビ
ジョンは、”read2.c”という名前で同じディレ
クトリに保存する。
【0007】さらに、ソフトウェア開発者は、ビルド・
プロシージャと呼ばれる従来から利用されているプログ
ラム生成手順により、一つのディレクトリに保存したモ
ジュール・リビジョンから、あるバージョンのプログラ
ムを構成する。このとき、モジュールのそれぞれの新し
いリビジョンにあわせるため、プログラム生成手順を修
正する必要がある。上記の例では、”my_prog”
という名前のプログラムの二番目のバージョンを構成す
るためには、”read2.c”を用いるように修正し
なければならない。
【0008】ソフトウェアのユーザは、プログラムの旧
バージョン、新バージョン共に使用できることを好む。
たとえば、”my_prog”プログラムの新しいバー
ジョンでは、古いデータ・ファイルが読めなくなってし
まうので、オリジナル・バージョンを保存する必要があ
る。また、”my_prog”の新バージョンによっ
て、オリジナル・バージョンでは不可能だった拡張機能
を使用できる。従来は、コンピュータ・システムに新・
旧両方のバージョンを保存することで、新・旧バージョ
ンへのアクセスを可能にしていた。
【0009】
【発明が解決しようとする課題】しかしながら、一つの
コンピュータ・システムに、二つ以上のプログラムのバ
ージョンを保存することには、いくつかのドロウバック
がある。一つには、複数のプログラム・バージョンを保
存することはディスクの記憶容量を浪費する。特に、そ
れぞれのバージョンが大きな容量を必要とするとき、こ
のドロウバックは大きい。たとえば、オリジナル・バー
ジョンが80MBを要するプログラムの、四つのバージ
ョンを全て保存するためには、320MBのディスク容
量を必要とする。
【0010】もう一つのドロウバックとしては、一つの
コンピュータ・プラットフォームに複数のモジュール・
リビジョンを保存する場合である。前述したように、多
くのコンピュータ・プラットフォームにおいては、一つ
のサブディレクトリに、同じ名前で、プログラムの二つ
のバージョンを保存することができない。このドロウバ
ックの一つの解決法として、プログラムの二番目のバー
ジョンに別の名前を付けるという方法があり、この方法
をとることで、同じサブディレクトリに両方のバージョ
ンを保存できる。しかしながら、そのバージョンを実行
するときや、「呼び出し」プログラムとして他のプログ
ラムから「呼び出し」を受けた時、下記のような別のド
ロウバックを生んでしまう。
【0011】ユーザは、そのプログラムの異なるバージ
ョンを使用したい時は、その都度呼び出しプログラムを
修正する。上記の例では、”my_prog”プログラ
ムのオリジナル・バージョンを”my_prog”、二
番目のバージョンを”my_prog2”とすると、呼
び出しプログラムの変数を”my_prog”から”m
y_prog2”に変える。しかし、バージョン名が、
呼び出しプログラムに「ハードコード化」されていれ
ば、これは不可能である。たとえば、呼び出しプログラ
ムが実行可能フォームであり、修正できない場合などで
ある。
【0012】上記ドロウバックのもう一つの解決法とし
ては、呼び出しを受けるプログラムのそれぞれのバージ
ョンを、異なるディレクトリに保存することである。こ
の場合は、ユーザは、呼び出しプログラムが、呼び出し
を受けるプログラムの正しいバージョンを使用するよう
に、正しいバージョンが保存されているディレクトリを
指定する必要がある。そのために、その経路(pat
h)を選択するように規定するか、またはディレクトリ
を特定する必要がある。さらに、ユーザは、呼び出しを
受けるプログラムの、それぞれのバージョンがどこに保
存されているか、また、どのバージョンを現在使用して
いるかを覚えていなければならない。この方法では、ユ
ーザに、かなりの時間と負担とを課していることは明ら
かである。もう一つの問題として、プログラムを保存し
ていたディレクトリと関連するディレクトリに、プログ
ラムが使用するデータが保存されていると、プログラム
が予想する場合もある。つまり、一般的に言って、プロ
グラムは特定の環境で動作し、存在すると仮定してい
る。この仮定はプログラムの中で、ハードコード化され
てしまっている。
【0013】従来のシステムにおける上記のようなドロ
ウバックを解消するために、ユーザが、プログラムの複
数のバージョンにアクセスでき、かつディスク記憶容量
を節約できるシステムが望まれる。さらに、呼び出しプ
ログラムに、呼び出しを受けたプログラムの新しいバー
ジョンを使用させるための、ユーザの時間や労力を減ら
すことができれば大変有用である。
【0014】以上のような問題や制限を解決するため
に、本発明によるバージョン管理システムは、記憶スペ
ースの使用を改良する。コンピュータ・プログラムの異
なるバージョンの保存には、修正したモジュールのみを
保存すればよく、コマンドにより、これらのモジュール
から、そのプログラムの特定のバージョンを生成でき
る。これによって、プログラムのどんなバージョンも、
同じ名前で実行できる呼び出しプログラムを可能にす
る。ユーザは、プログラム生成手順を実行し、パラメー
タとして、所望のバージョン番号を受け渡せば、容易に
特定のバージョンを生成できる。プログラム生成手順
は、呼び出しプログラムによって、選択的に実行され
る。オプションとして、プログラム生成手順はプログラ
ム生成の後、プログラムのそのバージョンを自動的に実
行することもできる。それによって、通常の、手動でプ
ログラムを実行するために要するユーザの時間と労力を
節約できる。または、呼び出しプログラムは二つの命令
の発行を省略できる。一つは、プログラム生成手順を実
行するための命令であり、もう一つは、プログラムの生
成したバージョンを実行するための命令である。
【0015】この発明によれば、プログラムのそれぞれ
のバージョンを、メモリ中に永久に保存する必要はない
ので、記憶スペースの使用を改善できる。つまり、修正
したモジュールのみ記憶すればよい。さらに、いかなる
時も、実行されるべきバージョンのみが存在すればよい
ので、呼び出しプログラムが、プログラム生成手順を実
行すれば、プログラムのどんなバージョンも同じ名前で
実行できる。従って、プログラムの複数のバージョン
を、同じ名前で一つのディレクトリに保存できないとい
う問題を回避できる。こうして、従来例のシステムで
は、320MBの記憶容量を要した四つのバージョン保
存に、本発明の方式によれば、70〜85MBあればよ
い。
【0016】プログラムのバージョン管理に関する従来
例としては、UNIX(登録商標)上のソースコード・
バージョン管理ツールであるSCCS,RCS等が有名
である。これらは最初(または最新)のバージョンのソ
ースコードと、各バージョン間の差分を記録しておくこ
とによって、任意のバージョンのソースコードを得るこ
とを可能にしている。これらのツールでは、実行プログ
ラムを構成する個々のソースコードのバージョン管理を
行うのみであり、実行プログラムのバージョン管理は行
えない。
【0017】また、プログラムのバージョン管理に関す
る従来例としては、特開平4−52826の公報に示さ
れた「世代付きロード・モジュール・ライブラリの差分
管理処理方式」が存在する。この差分管理処理方式は、
ロード・モジュールまたはロード・モジュール・ライブ
ラリの世代管理機能を有するデータ処理システムにおい
て、ロード・モジュールまたはロード・モジュール・ラ
イブラリの各世代間で異なるデータを保持するととも
に、各世代間で共通するデータを重複しない形で保持す
る世代付きロード・モジュール・ライブラリと、世代付
きロード・モジュール・ライブラリにおける世代管理情
報から、指定世代の格納情報を採取する世代管理部と、
この世代管理部によって得た情報をもとに、指定世代の
ロード・モジュールまたはロード・モジュール・ライブ
ラリをローディングするプログラム・ローディング処理
部とを備え、世代付きロード・モジュール・ライブラリ
の世代間のデータを差分で管理するようにしたことを特
徴とするものである。この差分管理処理方式は、ロード
・モジュール・ライブラリに対して、新しい世代を増や
した場合、差分データだけを増加するものであり、差分
を管理することにより、新しい世代を生成することがで
きるというものである。この差分管理処理方式では、実
行プログラムを構成する個々のロード・モジュールのバ
ージョン管理を行うのみであり、実行プログラムを構成
する個々のソースコードとオブジェクト・モジュールと
ロード・モジュールを一元的に管理するものではない。
【0018】本発明のプログラム・バージョン生成方式
では、実行プログラムを構成する個々のソースコード又
はオブジェクトコードのバージョン情報を実行プログラ
ムのバージョン毎の構成要素と共に管理することによ
り、その実行プログラムのバージョン情報を与えるだけ
で、その実行プログラムを構築するのに必要な個々のソ
ースコードの必要なバージョン情報を自動的に取得し、
任意のバージョンの実行プログラムを自動的に生成する
ことを目的とする。
【0019】
【課題を解決するための手段】第一の発明に係わるプロ
グラムのバージョン生成方式は、下記の要素を有し、プ
ログラムの複数のバージョンから、要求に応じて、一つ
のバージョンを生成し、実行する。 (a)プログラムが構築可能なバージョンに対応してバ
ージョン・エントリを複数記憶する構成ユニット、
(b)プログラムを構成するひとつのモジュールに対し
て、複数のモジュール・リビジョンを記憶し、複数のモ
ジュール・リビジョンからバージョン・エントリに適合
するひとつのモジュール・リビジョンを選択する複数の
リビジョン・ユニット、(c)構築すべきプログラム・
バージョンを示すバージョン番号を入力し、バージョン
番号に従い、上記構成ユニットからバージョン・エント
リを読み出し、バージョン・エントリによって、複数の
リビジョン・ユニットを起動させ、ひとつのモジュール
に対してひとつのモジュール・リビジョンを選択し、選
択した複数のモジュール・リビジョンからプログラムの
バージョンを生成し、それによって、プログラムを構築
するプログラム生成部。
【0020】第二の発明に係わるプログラムのバージョ
ン生成方式は、下記の要素を有し、プログラムの複数の
バージョンから、要求に応じて、一つのバージョンを生
成する。 (a)論理信号を記憶するメモリデバイス、(b)複数
のバージョン・エントリを持つ構成表、(c)複数のモ
ジュール・リビジョンを記憶するモジュール・リポジト
リ、(d)メモリデバイスから論理信号を読み込み、上
記論理信号に従って、構築すべきプログラムのバージョ
ン番号を入力し、上記バージョン番号に従って、複数の
バージョン・エントリを持つ構成表のバージョン・エン
トリにアクセスし、上記バージョン・エントリに従っ
て、複数のモジュール・リビジョンを記憶するモジュー
ル・リポジトリからモジュール・リビジョンのセットを
選択し、上記選択したモジュール・リビジョンのセット
からプログラムのバージョンを生成し、それによって、
プログラムを構築するプロセッサ。
【0021】第三の発明に係わるプログラムのバージョ
ン生成方式は、下記の要素を有し、プログラムの複数の
バージョンから、要求に応じて、どのバージョンでもモ
ジュール・リビジョンのセットから生成する。 (a)複数のサブディレクトリを持ち、それぞれのサブ
ディレクトリには、プログラムを構成するモジュールの
少なくともひとつのモジュール・リビジョンがあるモジ
ュール・リポジトリ、(b)リビジョン番号のセットに
従って、モジュール・リポジトリからモジュール・リビ
ジョンのセットを選択する選択手段、(c)バージョン
番号を入力し、上記選択手段を起動し、バージョン番号
に従って、リビジョン番号のセットを上記選択手段に供
給し、上記モジュール・リビジョンの選択したセットか
らプログラムのバージョンを生成し、それによって、プ
ログラムを構築する手段。
【0022】第四の発明に係わるプログラムのバージョ
ン生成方式は、さらに、上記生成されたプログラムを実
行する手段を備えたことを特徴とするものである。
【0023】
【作用】第一の発明に係わるプログラムのバージョン生
成方式においては、構築すべきプログラム・バージョン
を示すバージョン番号を入力し、バージョン番号に従
い、上記構成ユニットからバージョン・エントリを読み
出し、バージョン・エントリによって、複数のリビジョ
ン・ユニットを起動させ、ひとつのモジュールに対して
ひとつのモジュール・リビジョンを選択し、選択した複
数のモジュール・リビジョンからプログラムのバージョ
ンを生成し、それによって、プログラムを構築する。
【0024】第二の発明に係わるプログラムのバージョ
ン生成方式においては、メモリデバイスから読み込んだ
論理信号に従って、構築すべきプログラムのバージョン
番号を入力し、そのバージョン番号に従って、複数のバ
ージョン・エントリを持つ構成表のバージョン・エント
リにアクセスする。バージョン・エントリに従って、複
数のモジュール・リビジョンを記憶するモジュール・リ
ポジトリからモジュール・リビジョンのセットを選択
し、選択したモジュール・リビジョンのセットからプロ
グラムのバージョンを生成する。
【0025】第三の発明に係わるプログラムのバージョ
ン生成方式においては、バージョン番号を入力し、選択
手段を起動し、バージョン番号に従って、リビジョン番
号のセットを選択手段に供給し、モジュール・リビジョ
ンの選択したセットからプログラムのバージョンを生成
することで、プログラムのどのバージョンでもモジュー
ル・リビジョンのセットから生成することができる。
【0026】第四の発明に係わるプログラムのバージョ
ン生成方式においては、生成されたプログラムを実行す
る手段を備えたことに特徴がある。これによって、プロ
グラムのバージョン生成とバージョン実行は自動化され
る。
【0027】
【実施例】
実施例1.図1で、コンピュータ1に接続されている容
量500MBのディスク2において、200MBは既に
使用されており、300MBの空き記憶容量があるもの
とする。このとき、ユーザは、さらに、図中の3,4,
5,6で表されたプログラム”ABC”の四つのバージ
ョンを、このディスクに記憶させたいものとする。従来
のシステムによれば、これを記憶させるには320MB
必要であり、ディスク容量の空きが不足しているので、
四つのバージョンを記憶させることはできない。また、
一つのディレクトリ内に、同じ名前では複数のファイル
を保存できないので、ユーザは空きディスク容量内に保
存する場合、バージョン毎に違う名前を付けなければな
らない。
【0028】本発明の方式による上記プログラムの四つ
のバージョンの保存を、図2を参照して、以下に説明す
る。モジュール・リポジトリ7に、図中にM1,M2,
M3,M4,M21 ,M31 ,M41 で表される、プロ
グラムの異なるバージョンの非冗長モジュールを保存す
る。モジュール・リポジトリ7は、ソースコード・モジ
ュール又はオブジェクト・モジュールを保存するもので
あり、M1,M2,M3,...は、ソースコード又は
オブジェクトの形式で保存されたモジュールを意味して
いる。以下、ソースコード・モジュール又はオブジェク
ト・モジュールのことをモジュールという。ユーザがプ
ログラム”ABC”のバージョンXを要求するとプログ
ラム生成部8は、プログラム”ABC”のバージョンの
要求に応じて、モジュール・リポジトリに保存されてい
るモジュールのうち適当なモジュールにアクセスし、プ
ログラム”ABC”の実行可能バージョンを生成する。
このプロセスによって、複数のバージョン保存に必要な
ディスク容量を減らし、同じプログラムの異なるバージ
ョン毎に違う名前を付ける必要もなくなる。プログラム
生成部は、後述するモジュールとプログラム・バージョ
ンの相関を示した表に従って、モジュール・リポジトリ
の適当なモジュールへアクセスする。この動作について
図3を参照して詳述する。
【0029】図3では、「プログラム1」から「プログ
ラム6」まで多くのプログラムがあり、たとえば、プロ
グラム”ABC”とバージョン番号により、プログラム
名を指示して、プログラム実行をプログラム生成部8に
要求する。プログラム生成部にはフェッチ・モジュール
8aがあり、プログラム実行要求に指示されたプログラ
ム・バージョンに従って、変換表8bからモジュールの
リストを検索する。こうして得たバージョン・リストを
入力すると、プログラム生成部は、バージョン・リスト
をコンパイル・リンク・モジュール8cに送り、モジュ
ール・リポジトリ7から指定されたモジュールを選択す
る。コンパイル・リンク・モジュール8cは、選択した
モジュールを、必要ならコンパイルし、コンパイルした
モジュールをリンクして、実行可能バージョンを作る。
このプログラムの実行可能バージョンには、例えば、図
中の9に示すように、”ABC”と名付ける。この名前
はバージョン番号とは独立である。
【0030】図4に従って、プログラムの複数のバージ
ョンを保存する、従来のコンピュータ・システム17を
説明する。ユーザは、入力デバイス10からの入力によ
り、システム17に命令を伝える。入力デバイス10
は、キーボード、マウス、スキャナー、モデム、ネット
ワーク・インターフェイス、その他データと命令をシス
テムに供給するものなら何でもよい。プロセッシング・
ユニット11は、システムバス15を通して入力デバイ
ス10からデータと命令を入力する。プロセッシング・
ユニット11は、システム・リソースを管理するオペレ
ーティング・システムの操作、入力デバイスから入力し
た命令の実行、メモリ16に記憶されたプログラムの操
作など多くの動作を行う。メモリ16には、一次メモリ
12と二次メモリ13がある。一次メモリ12は、電子
回路メモリであり、情報を非常に速く入力し論理信号と
して出力する。二次メモリ13は、磁気ディスク、光磁
気ディスク、光ディスク、磁気テープなどのような不揮
発性の記憶媒体であり、情報を長く保存できるが、一次
メモリ12より応答が遅い。プロセッシング・ユニット
11には、出力デバイス14がシステムバス15によっ
て接続され、プロセッシング・ユニットからの出力を表
示する。出力デバイス14は従来の出力デバイス、ビデ
オ・ディスプレイ、プリンタなどユーザに情報を提供し
うるものであれば、何でもよい。
【0031】図4には、プログラム”ABC”の四つの
バージョンV1.0,V2.0,V2.5,V3.0
が、それぞれのメモリ容量(メガバイト単位:MB)と
ともに表されている。プログラムABCの四つのバージ
ョンV1.0,V2.0,V2.5,V3.0は、それ
ぞれ二次メモリ13に保存されている。これら四つのバ
ージョンを保存するには320MBの記憶スペースが必
要である。また、プログラムのそれぞれのバージョンは
異なる名前で保存されている。
【0032】以上により、従来のシステムによるモジュ
ール構成とプログラム生成、それに伴うドロウバックに
ついて説明したが、本発明によるシステムを以下に説明
する。
【0033】本発明によるシステムは、図4に示した従
来のコンピュータシステム17のみでなく、メインフレ
ーム、ワークステイション、パーソナル・コンピュー
タ、分散環境、ディスクを分割使用するコンピュータ及
びネットワーク・ファイル・システムなど多くのタイプ
のコンピュータ構成に適用できる。
【0034】図5に、本発明の一実施例によるいくつか
の部品の関係を示す。この発明によれば、コンピュータ
はモジュール・リポジトリ20に複数のモジュール・リ
ビジョンを記憶する。モジュール・リポジトリ20に
は、サブディレクトリ30,31,32,33があり、
それぞれモジュールM1,M2,M3,M4を記憶す
る。このモジュール・リポジトリ20は、二次メモリ1
3内にある。図5に示すように、モジュール・リビジョ
ンM11 ,M21 ,M22 ,M31,M32 ,M33 ,
M41 ,M42 があり、130MBの記憶スペースを使
用している。前述した従来のシステムによって保存され
ていた、プログラムABCの四つのバージョン構成に相
当するバージョンに用いられるモジュール・リビジョン
は、サブディレクトリ30,31,32,33に記憶さ
れている。M11 は、サブディレクトリ30中のM1
に、M21 とM22 は、サブディレクトリ31中のM2
に、M31 ,M32 ,M33 は、サブディレクトリ32
中のM3に、M41 ,M42 は、サブディレクトリ33
中のM4に、それぞれ保存されている。ここで、これら
モジュールの保存に要する記憶スペースの総計は、13
0MBであり、従来例によるシステムよりはるかに少な
いことがわかる。
【0035】このように、本発明によるシステムでは、
プログラム実行時まで、プログラムABCのどんなバー
ジョンも生成されたり、保存されたりすることはない。
従って、本発明によれば、190MBの記憶スペースの
節約になる(320MB−130MB)。これは、従来
の方法によるプログラムの複数のバージョンを保存する
のに要する記憶スペースの総計と、本発明のプログラム
の異なるバージョンを生成するためのモジュール・リポ
ジトリを保存するのに要する記憶スペースとの差であ
る。プログラム・コードやモジュールを二重に記憶する
ことがないので、メモリ使用を減らすことができる。
【0036】また、図5に、プログラムのそれぞれのバ
ージョンを生成する情報が示された構成表50を示す。
この表は、複数のバージョン・エントリから成り、これ
らのバージョン・エントリは、プログラムのそれぞれの
バージョンに対応している。バージョン・エントリは、
プログラムの特定のバージョンを生成するとき用いるモ
ジュール・リビジョンのセットを示している。たとえ
ば、図5の構成表50の二番目のエントリによれば、プ
ログラムABCのバージョンV2.0は、モジュール・
リビジョンM11 ,M22 ,M32 ,M41 を用いる。
【0037】さらに、図5には、プログラムの四つのバ
ージョン60,61,62,63が示されている。本発
明によれば、これら四つのプログラム・バージョンは、
いずれもモジュール・リポジトリ20と構成表50によ
って生成される。こうしたプログラムのバージョンや構
成表は、モジュール・リポジトリ20または二次メモリ
の空きエリアに保存される。構成表50を保存するにふ
さわしいのは、モジュール・リポジトリ20のトップ・
レベル・ディレクトリである親ディレクトリである。こ
の親ディレクトリは、生成したプログラムのバージョン
を一時的に保存するにもふさわしい。ただし、プログラ
ム生成が完了すれば、プログラム・バージョンは、ユー
ティリティ・ディレクトリのような他の場所にも保存で
きる。
【0038】さらに、本発明のシステムでは、モジュー
ル・リポジトリ20は、メモリ中のどこにでも配置でき
る。たとえば、UNIXオペレーティング・システム
(UNIXは登録商標)とファイリング・システムで
は、モジュール・リポジトリはルート・ディレクトリ
に、分離した場所に、下位のサブディレクトリに、他の
コンピュータ・システムに搭載されたネットワーク・フ
ァイル・システムに、分散コンピュータ・ネットワーク
の複数のネットワーク・ファイル・システム等に配置す
ることが可能である。
【0039】また、本発明のシステムによる構成表50
は、モジュール・リポジトリ20の外部のディレクトリ
でも、モジュール・リポジトリの内部のディレクトリで
も、保存できる。構成表50の望ましい保存場所は、モ
ジュール・リポジトリの親ディレクトリである。
【0040】図6は、本発明の実施例によるモジュール
・リポジトリ20のディレクトリ構造を示す。ここで、
親ディレクトリ80には、便宜上、ABCのようにプロ
グラムと同じ名前を付ける。構成表50は、ここではC
TBLと呼ばれ、親ディレクトリ80内に位置してい
る。図5に示したモジュール・サブディレクトリ30,
31,32,33は、図6では、親ディレクトリ80の
下部に位置している。
【0041】本発明の実施例によれば、多くのリビジョ
ン・テーブルが用いられる。リビジョン・テーブルと
は、モジュール・リビジョンの実際のファイル名を示す
テーブルである。これらは、モジュール・サブディレク
トリに位置し、RTBL90,91,92,93と呼ば
れる。図7に示すように、それぞれのリビジョン・テー
ブルには、少なくとも一つは、メモリ中の実際のファイ
ル名と一致するリビジョン番号がある。
【0042】図8は、本発明の実施例によるディレクト
リ構造の全体図である。親ディレクトリ180の名前は
何でもよいが、図8のPRGのように便宜上プログラム
の名前にする。構成表150には、プログラムのそれぞ
れのバージョンに対し、どのモジュール・リビジョンを
用いるか示すバージョン・エントリがある。モジュール
・サブディレクトリ130,131,132は、プログ
ラムPRGのそれぞれのモジュールのための、モジュー
ル・リビジョンを保存する複数のサブディレクトリであ
る。それぞれのモジュール・サブディレクトリには、モ
ジュール・リビジョンの実際のファイル名を示すリビジ
ョン・テーブル190,191,192がある。一般的
に、プログラムPRGにはx個のモジュールがある。従
って、リビジョン・テーブルRTBL1 からRTBLx
まである。モジュール1には、r個のリビジョンがあ
り、モジュールnには、s個のリビジョンがあり、モジ
ュールxには、t個のリビジョンがある。ここで、x,
r,s,tは全て正の整数である。
【0043】図9は、図2、3と同じく、本発明の実施
例によるシステムのブロック図である。プログラム生成
部100にバージョン番号を入力する。バージョン番号
は、ユーザから入力デバイス10を用いた入力、もしく
は、呼び出しプログラムからのアーギュメントとして入
力される。また、そのコンピュータ・システムに、複数
のプログラムのための複数のプログラム生成手順がある
場合、どのプログラムを生成するか指示するため、ユー
ザはプログラム生成部100にプログラム名を受け渡
す。
【0044】プログラム生成部100は、構成表50と
インターフェイスをとり、読み込み要求を出力し、バー
ジョン・エントリを入力する。プログラム生成部100
は、さらに複数のリビジョン・ルーチン290,291
等とインターフェイスをとる。各リビジョン・ルーチン
は、それぞれモジュール・サブディレクトリに対応して
いる。それぞれのリビジョン・ルーチンは、プログラム
の生成部100が入力したバージョン・エントリに示さ
れたモジュール・リビジョンを用いて、リビジョン・テ
ーブルから実際のファイル名を得て、モジュール・リポ
ジトリ20のモジュール・サブディレクトリから、該当
するファイル名を選択する。さらに、プログラム生成部
は、モジュール・リポジトリと直接インターフェイスを
とり、プログラム生成要求を出力し、選択したモジュー
ル・リビジョンのセットにアクセスし、プログラムの実
行可能バージョン65を生成する。
【0045】本発明の上記実施例は、オブジェクト・モ
ジュールからプログラムのロード・モジュール(実行可
能バージョン)を生成するときに適用できる。それぞれ
のモジュール・リビジョンは、ソースコード・モジュー
ルからコンパイラによって生成されたオブジェクト・モ
ジュールに相当する。たとえば、コンピュータ・プラッ
トフォームがUNIXプラットフォームであり、プログ
ラムがCプログラム言語で書かれているとすれば、モジ
ュール・リビジョンは拡張子”.o”を持つファイル名
のオブジェクト・ファイルとなる。
【0046】また、本発明は、モジュール・リビジョン
がオブジェクト・モジュールではなく、ソースコード・
モジュールである場合の、プログラムのバージョン生成
にも適用できる。
【0047】本発明の実施例の構造について述べたが、
実施例による動作について以下に説明する。
【0048】図10は、図9のプログラム生成部100
の動作を示すフローチャートである。ステップ110
で、プログラム生成部100はユーザ、または呼び出し
プログラムからバージョン番号を入力する。バージョン
番号は、プログラムのどのバージョンを生成するか示し
ている。次に、ステップ120で、プログラム生成部1
00は構成表CTBLにアクセスする。このとき、プロ
グラム生成部は、ステップ110で入力したバージョン
番号に対応するバージョン・エントリを構成表から見つ
ける。このバージョン・エントリによって、プログラム
のバージョンを生成するために、どのモジュール・リビ
ジョンを用いるのか分かる。
【0049】プログラム生成部100は、モジュール・
リビジョンに対応するリビジョン・ルーチンを起動し、
図のステップ130にあるように、バージョン・エント
リに従って、適当なモジュール・リビジョン番号を、リ
ビジョン・ルーチンに受け渡す。このモジュール・リビ
ジョン番号によって、リビジョン・ルーチンは、プログ
ラム構成時に用いる、適当なモジュール・リビジョン・
ファイル名を選択する。このステップでは、モジュール
・リビジョンを他のディレクトリにコピーしたり、移動
したりする場合もある。
【0050】プログラムは、一般に複数のモジュール・
リビジョンから構成されるので、プログラム生成部は、
図10のステップ140では、次のリビジョン・ルーチ
ンを起動させ、プログラムのバージョンを生成するのに
用いるモジュール・リビジョンの番号を、対応するリビ
ジョン・ルーチンに受け渡すことで、上記のステップを
繰り返す。必要な全てのモジュール・リビジョンを選択
すると、ステップ150で、プログラム生成部100
は、そのモジュール・リビジョンをリンクし、プログラ
ムのバージョンを生成する。このステップ150の生成
段階が終えると、プログラムのバージョン生成は完了す
る。
【0051】図11は、モジュール・リビジョンがオブ
ジェクト・モジュールである場合の、リビジョン・ルー
チンの動作を示すフローチャートである。リビジョン・
ルーチンは、プログラム生成部100からリビジョン番
号を入力する(200)。このリビジョン番号によっ
て、どのモジュールのリビジョンを用いるのか分かる。
リビジョン・ルーチンは次に、モジュールに対応したリ
ビジョン・テーブルにアクセスし、使用するモジュール
・リビジョンのファイルを見つける。ステップ210に
示すように、リビジョン・ルーチンは、使用するモジュ
ール・リビジョンのファイルをビルド・エリアにコピー
する。その後、操作をプログラム生成部に戻す。このビ
ルド・エリアとは、プログラム生成時に用いるモジュー
ル・リビジョンを保存しているメモリのサブディレクト
リである。
【0052】図12は、モジュール・リビジョンがソー
スコード・モジュールである場合の、リビジョン・ルー
チンの動作を示すフローチャートである。リビジョン・
ルーチンは、ステップ200でリビジョン番号を入力す
る。次に、ステップ250で、リビジョン番号に従い、
リビジョン・ルーチンは、指定されたリビジョン番号に
対応するソースコード・モジュールをコンパイルし、オ
ブジェクト・モジュール(モジュール・リビジョン・オ
ブジェクト・ファイルとも言う)を生成する。ステップ
260で、リビジョン・ルーチンはこのオブジェクト・
モジュールをビルド・エリアへ移動し、操作はプログラ
ム生成部100に戻る。
【0053】プログラムのバージョンが生成されると、
プログラム生成部は、バージョン番号とは独立の一般名
によって、そのプログラムに名前付けする。ユーザ、又
はバージョンを要求する呼び出しプログラムは、要求し
たプログラム・バージョン以外は使用せず、同時に他の
バージョンを使用することもないので、この名前付けは
何もドロウバックなしに実行できる。こうして、一つの
サブディレクトリに、同じ名前で、異なるバージョンを
保存するのに何の矛盾も生じない。さらに、ディスクの
空き容量確保のために、このプログラム・バージョンは
実行後、直ちに抹消してもよい。
【0054】図13は、いくつかのオプションを含むプ
ログラム生成部100の動作を示すフローチャートであ
る。図10に示したフローチャートに相当するステップ
には同一符号を付す。一つのオプションとしては、特
に、ビルド・エリアが存在しない場合、ステップ115
で、ビルド・エリアを創成する。また他のオプションと
して、ステップ150で、プログラムのバージョンが生
成されていれば、ステップ160で、自動的にそれを実
行する。これらの動作オプションは独立であるので、動
作実行に際し、一つ、あるいは両方とも追加可能であ
る。
【0055】上記以外にも、次のような動作のオプショ
ンが可能である。 (1)プログラム・バージョン生成前に、他のバージョ
ンが存在すれば、自動的にそれを抹消する。 (2)プログラム・バージョンが生成されれば、それを
新しいサブディレクトリに移動する。 (3)追加のアーギュメントを入力し、プログラムが自
動的に実行されている場合、そのアーギュメントをプロ
グラム・バージョンに受け渡す。 (4)プログラム・バージョンが生成された後、ビルド
・エリアに保存した全てのモジュール・リビジョンを抹
消する。
【0056】以上のようにこの発明によれば、ソースコ
ード・モジュール又はオブジェクト・モジュールを非冗
長モジュールとして、分割して記憶し、プログラム生成
部により要求されたバージョンに基づき、非冗長モジュ
ールにアクセスしてコンパイル又はリンクにより実行可
能バージョンを生成する。従来の技術においては、ソー
スコードのみ各バージョン間の差分を記録しておく場合
が存在する。あるいはロード・モジュールの各バージョ
ン間の差分を記録しておく場合が存在する。しかし、こ
の発明においては、ソースコードを各バージョン毎に管
理するだけではない。あるいはロード・モジュールを各
バージョン毎に管理するだけではない。本発明は、ソー
スコード・モジュール又はオブジェクト・モジュールを
各バージョン間で管理することにより、コンパイル又は
リンクにより実行要求があったロード・モジュールを生
成する点に大きな特徴があり、このような特徴は従来の
技術にみられないものである。この発明によれば、ソー
スコード・モジュールやオブジェクト・モジュールの記
憶スペースを大幅に改良することができるとともに、実
行プログラムの生成をソースコード・モジュール又はオ
ブジェクト・モジュールからリアルタイムに行うことに
より、生成された実行プログラムとソースコード・モジ
ュール又はオブジェクト・モジュールの対応を確実にと
ることができ、ソースコード・モジュール又はオブジェ
クト・モジュールとロード・モジュールを一元的に管理
することができる。
【0057】実施例2.図14は、本発明の別の実施例
によるディレクトリ構造を示している。その具体例を、
さらに図15に示す。この実施例によるモジュール・リ
ポジトリには、親ディレクトリから枝分かれした、多層
サブディレクトリ310,311等がある。312のよ
うな中間のサブディレクトリは、ブランチであり、その
エントリは下位のサブディレクトリを示している。この
ように、本実施例による構造は、再帰的である。それぞ
れのブランチの最下層のサブディレクトリ、たとえばサ
ブディレクトリ313には、プログラム・モジュールが
ある。中間のサブディレクトリにも、最下層のサブディ
レクトリにも、リビジョン・ルーチンがある。
【0058】実施例2においても、実施例1と同様のプ
ログラム生成部100を用いて、図9の最上層のサブデ
ィレクトリにあるリビジョン・ルーチンを、前述のよう
に起動させる。しかしながら、本実施例におけるそれぞ
れのリビジョン・ルーチンは再帰的であり、図16のフ
ローチャートに示すように動作する。図17に、リビジ
ョン・テーブルRTBLの具体例を示す。図16のステ
ップ400で、リビジョン・ルーチンはモジュールのリ
ビジョン番号を入力する。ステップ410で、リビジョ
ン・ルーチンは、現在のサブディレクトリが、ブランチ
であるか、リーフ・ディレクトリであるか確認する。こ
の実施例を、UNIXシステムにシェル・スクリプトを
用いて適用すれば、”test”コマンドを用いた”i
f”ステートメントによって、このステップが実行でき
る。サブディレクトリがブランチ・ディレクトリである
場合、動作はステップ420へ移行し、リビジョン・ル
ーチンは、下位のサブディレクトリに位置する他のリビ
ジョン・ルーチンを、再帰的に起動する。サブディレク
トリが最下層のディレクトリすなわちリーフ・ディレク
トリである場合、動作はステップ430へ移行し、モジ
ュール・リビジョンを、ビルド・エリアへコピー、又は
移動する。その後、操作はプログラム生成部に戻る。
【0059】本実施例は、コンピュータ・プラットフォ
ームのタイプにより、多種のバリエーションが考えられ
る。たとえば、UNIXのシェル・スクリプトには、図
9に示すプログラム生成部100とリビジョン・ルーチ
ン290,291等が装備される。また、同じシェル・
スクリプト中に変数のマトリクスの形、又はシリーズの
形で、図9に示す構成表50が保存され、ファイル・ア
クセス数を減らす。同様に、複数のリビジョン・テーブ
ルは一つにまとめ、リビジョン・ルーチン内に保存す
る。さらに、本実施例は、実行可能プログラムを生成す
ることにも適用できるが、それ以外に、コマンド・ファ
イル、データ・ファイル、オブジェクト・ライブラリ、
テキスト・ライブラリ、及び同様に構成されるデータの
集合や符号の集合を生成するために適用可能である。
【0060】もう一つのバリエーションとして、モジュ
ール・リポジトリを圧縮形式で記憶し、モジュール生成
過程で伸長し、モジュール生成後再度圧縮する。このバ
リエーションは、通常のパーソナル・コンピュータにイ
ンプリメントできる従来のpkzip.exeのような
圧縮ツール、pkunzip.exeのような伸長ツー
ルを用いることで実行可能である。
【0061】本発明によれば、プログラムのバージョン
をメモリ中に恒久に保存しておく必要がないので、ディ
スク容量を大きく節約できる。さらに、必要なバージョ
ンに切り替えるときのユーザの労力を減らすことができ
る。つまり、一つのディレクトリ中に同じ名前で異なる
バージョンを保存できないという問題は避けられ、バー
ジョン生成とバージョン実行は自動化される。
【0062】図18〜図28に、本発明の実施例を、U
NIXプラットフォームのシェル・スクリプトによりイ
ンプリメントしたときのいくつかの例を示す。UNIX
プラットフォームは、HP720のコンピュータであ
り、ヒューレット・パッカード(Hewlett−Pa
ckard of Palo Alto,Califo
rnia)から入手可能で、HP−UXオペレーティン
グ・システムのバージョン9.03を用いる。図18,
19,20,21,22に示す例1は、シェル・スクリ
プトからの出力例である。図23に示す例2は、プログ
ラム生成部を呼び出すシェル・スクリプトである。図2
4に示す例3は、”switch”ステートメント中に
構成表を持つプログラム生成部である。オプションとし
て、構成ステートメントを、プログラム生成部がアクセ
スする分離したファイルに記憶することもできる。図2
5の例4、図26の例5、図27の例6、図28の例7
は、それぞれプログラム生成部が呼び出すリビジョン・
ルーチンである。また、例2のシェル・スクリプトは、
プログラム生成部がプログラムの生成を完了すると、オ
プションとして、アーギュメントとともに自動的にその
プログラムを呼び出すコマンドを示している。
【0063】本発明は、多数のユーザに同時にサービス
する大型メインフレーム・コンピュータのようなマルチ
ユーザ環境に適する。多数のユーザが、同じプログラム
の異なるバージョンにアクセスしようとする場合、上記
のいずれの実施例によっても、プログラムのそれぞれの
バージョンを生成できる。オプションとして、生成した
プログラム・バージョンを、パーソナル・アクセスのた
めの個人用ディレクトリに移動することもできる。この
場合、特に、その個人用ディレクトリがユーザの探索パ
スにある場合、それぞれのユーザが、プログラムの異な
るバージョンにアクセスしても、何ら不都合は生じな
い。
【0064】
【発明の効果】以上のように、この発明によれば、コン
ピュータ・プログラムの複数のバージョン管理システム
における、記憶スペースの使用を改良することができ
る。コンピュータ・プログラムの異なるバージョンの保
存のために、修正したモジュールのみを保存し、コマン
ドにより、これらのモジュールから、プログラムのどの
バージョンも生成できる。修正したモジュールのみを保
存すればよいので、記憶スペースは少なくてよい。
【0065】また、いかなる時も、実行されるべきバー
ジョンのみが存在すればよいので、呼び出しプログラム
が、プログラム生成手順を実行すれば、プログラムのど
んなバージョンも同じ名前で実行できる。
【0066】また、この発明は、生成されたプログラム
を実行する手段を備えたので、プログラムのバージョン
生成とバージョン実行は自動化できる。
【図面の簡単な説明】
【図1】 従来例によるコンピュータ・プログラムの多
数のバージョン保存の際のメモリ使用状況を示すブロッ
ク図。
【図2】 本発明の実施例1によるコンピュータ・プロ
グラムの多数のバージョン保存を示すブロック図。
【図3】 図2の構成の詳細を示す図。
【図4】 従来のプログラム構造を用いたコンピュータ
・システムを示す図。
【図5】 本発明の実施例1による部品とプログラムの
四つのバージョンの関係を示すブロック図。
【図6】 本発明の実施例1によるモジュール・リポジ
トリの例を示す図。
【図7】 本発明の実施例1によるリビジョン・テーブ
ルの例を示す図。
【図8】 本発明の実施例1によるモジュール・リポジ
トリを示す図。
【図9】 本発明の実施例1によるシステムを示すブロ
ック図。
【図10】 本発明の実施例1によるプログラム生成部
の動作を示すフローチャート図。
【図11】 本発明の実施例1によるリビジョン・ユニ
ットの動作を示すフローチャート図。
【図12】 本発明の実施例1によるリビジョン・ユニ
ットの動作を示すフローチャート図。
【図13】 本発明の実施例1によるプログラム生成部
の動作を示すフローチャート図。
【図14】 本発明の実施例2によるモジュール・リポ
ジトリを示すブロック図。
【図15】 図14のモジュール・リポジトリの具体例
を示す図。
【図16】 本発明の実施例2によるリビジョン・ユニ
ットの動作を示すフローチャート図。
【図17】 本発明の実施例2によるリビジョン・テー
ブルの具体例を示す図。
【図18】 本発明の実施例2をUNIXプラットフォ
ームのシェル・スクリプトに装備したときのシェル・ス
クリプトからの出力例を示す図。
【図19】 本発明の実施例2をUNIXプラットフォ
ームのシェル・スクリプトに装備したときのシェル・ス
クリプトからの出力例を示す図。
【図20】 本発明の実施例2をUNIXプラットフォ
ームのシェル・スクリプトに装備したときのシェル・ス
クリプトからの出力例を示す図。
【図21】 本発明の実施例2をUNIXプラットフォ
ームのシェル・スクリプトに装備したときのシェル・ス
クリプトからの出力例を示す図。
【図22】 本発明の実施例2をUNIXプラットフォ
ームのシェル・スクリプトに装備したときのシェル・ス
クリプトからの出力例を示す図。
【図23】 本発明の実施例2をUNIXプラットフォ
ームのシェル・スクリプトに装備したときのプログラム
を呼び出すシェル・スクリプトの例を示す図。
【図24】 本発明の実施例2をUNIXプラットフォ
ームのシェル・スクリプトに装備したときのプログラム
生成部の例を示す図。
【図25】 本発明の実施例2をUNIXプラットフォ
ームのシェル・スクリプトに装備したときのリビジョン
・ルーチンの例を示す図。
【図26】 本発明の実施例2をUNIXプラットフォ
ームのシェル・スクリプトに装備したときのリビジョン
・ルーチンの例を示す図。
【図27】 本発明の実施例2をUNIXプラットフォ
ームのシェル・スクリプトに装備したときのリビジョン
・ルーチンの例を示す図。
【図28】 本発明の実施例2をUNIXプラットフォ
ームのシェル・スクリプトに装備したときのリビジョン
・ルーチンの例を示す図。
【符号の説明】
1 コンピュータ、2 ディスク、3 プログラムAB
Cのバージョン1、4プログラムABCのバージョン
2、5 プログラムABCのバージョン3、6プログラ
ムABCのバージョン4、7 モジュール・リポジト
リ、8 プログラム生成部、8a フェッチ・モジュー
ル、8b 変換表、8c コンパイル・リンク・モジュ
ール、9 プログラム実行可能バージョン”ABC”、
10 入力デバイス、11 プロセッシング・ユニッ
ト、12 一次メモリ、13 二次メモリ、14 出力
デバイス、15 システムバス、16 メモリ、17
システム、20 モジュール・リポジトリ、50 構成
表。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 下記の要素を有し、プログラムの複数の
    バージョンから、要求に応じて、一つのバージョンを生
    成し、実行するプログラムのバージョン生成方式 (a)プログラムが構築可能なバージョンに対応してバ
    ージョン・エントリを複数記憶する構成ユニット、
    (b)プログラムを構成するひとつのモジュールに対し
    て、複数のモジュール・リビジョンを記憶し、複数のモ
    ジュール・リビジョンからバージョン・エントリに適合
    するひとつのモジュール・リビジョンを選択する複数の
    リビジョン・ユニット、(c)構築すべきプログラム・
    バージョンを示すバージョン番号を入力し、バージョン
    番号に従い、上記構成ユニットからバージョン・エント
    リを読み出し、バージョン・エントリによって、複数の
    リビジョン・ユニットを起動させ、ひとつのモジュール
    に対してひとつのモジュール・リビジョンを選択し、選
    択した複数のモジュール・リビジョンからプログラムの
    バージョンを生成し、それによって、プログラムを構築
    するプログラム生成部。
  2. 【請求項2】 下記の要素を有し、プログラムの複数の
    バージョンから、要求に応じて、一つのバージョンを生
    成するプログラムのバージョン生成方式 (a)論理信号を記憶するメモリデバイス、(b)複数
    のバージョン・エントリを持つ構成表、(c)複数のモ
    ジュール・リビジョンを記憶するモジュール・リポジト
    リ、(d)メモリデバイスから論理信号を読み込み、上
    記論理信号に従って、構築すべきプログラムのバージョ
    ン番号を入力し、上記バージョン番号に従って、複数の
    バージョン・エントリを持つ構成表のバージョン・エン
    トリにアクセスし、上記バージョン・エントリに従っ
    て、複数のモジュール・リビジョンを記憶するモジュー
    ル・リポジトリからモジュール・リビジョンのセットを
    選択し、上記選択したモジュール・リビジョンのセット
    からプログラムのバージョンを生成し、それによって、
    プログラムを構築するプロセッサ。
  3. 【請求項3】 下記の要素を有し、プログラムの複数の
    バージョンから、要求に応じて、どのバージョンでもモ
    ジュール・リビジョンのセットから生成する、プログラ
    ムのバージョン生成方式 (a)複数のサブディレクトリを持ち、それぞれのサブ
    ディレクトリには、プログラムを構成するモジュールの
    少なくともひとつのモジュール・リビジョンがあるモジ
    ュール・リポジトリ、(b)リビジョン番号のセットに
    従って、モジュール・リポジトリからモジュール・リビ
    ジョンのセットを選択する選択手段、(c)バージョン
    番号を入力し、上記選択手段を起動し、バージョン番号
    に従って、リビジョン番号のセットを上記選択手段に供
    給し、上記モジュール・リビジョンの選択したセットか
    らプログラムのバージョンを生成し、それによって、プ
    ログラムを構築する手段。
  4. 【請求項4】 上記プログラムのバージョン生成方式
    は、さらに、上記生成されたプログラムを実行する手段
    を備えたことを特徴とする請求項1〜3記載のプログラ
    ムのバージョン生成方式。
JP7226363A 1994-10-29 1995-09-04 プログラムのバージョン生成方式 Pending JPH08171482A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31528694A 1994-09-29 1994-09-29
US08/315286 1994-10-29

Publications (1)

Publication Number Publication Date
JPH08171482A true JPH08171482A (ja) 1996-07-02

Family

ID=23223720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7226363A Pending JPH08171482A (ja) 1994-10-29 1995-09-04 プログラムのバージョン生成方式

Country Status (2)

Country Link
US (1) US5603027A (ja)
JP (1) JPH08171482A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000054133A1 (en) * 1999-03-08 2000-09-14 Seiko Epson Corporation Information processor, method for saving/loading data, and information recorded medium
JP2012058961A (ja) * 2010-09-08 2012-03-22 Yamatake Corp ファイル編集装置、その制御方法、およびプログラム
JP2012079259A (ja) * 2010-10-06 2012-04-19 Fujitsu Ltd 更新管理装置、更新管理方法および更新管理プログラム

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694596A (en) * 1995-05-25 1997-12-02 Kangaroo, Inc. On-line database updating network system and method
JPH0934763A (ja) * 1995-07-19 1997-02-07 Fuji Xerox Co Ltd ファイル管理装置およびファイル管理方法
US6119130A (en) * 1996-03-28 2000-09-12 Oracle Corporation Method and apparatus for providing schema evolution without recompilation
US5897636A (en) * 1996-07-11 1999-04-27 Tandem Corporation Incorporated Distributed object computer system with hierarchical name space versioning
US6263485B1 (en) 1996-07-11 2001-07-17 Andrew Schofield Method and apparatus for describing an interface definition language-defined interface, operation, and data type
US6173327B1 (en) 1996-07-11 2001-01-09 Jeroen De Borst Object-oriented method and apparatus for information delivery
US5881292A (en) 1996-09-26 1999-03-09 Microsoft Corporation Dynamic versioning system for multiple users of multi-module software system
US5878432A (en) * 1996-10-29 1999-03-02 International Business Machines Corporation Object oriented framework mechanism for a source code repository
US5974470A (en) * 1997-09-03 1999-10-26 Chicago-Soft, Ltd. System for reducing conflicts among dynamic link library modules by aliasing modules
US7028019B2 (en) 1998-11-11 2006-04-11 Wise Solutions, Inc. Method and system of managing software conflicts in computer system that receive, processing change information to determine which files and shared resources conflict with one another
US6279030B1 (en) * 1998-11-12 2001-08-21 International Business Machines Corporation Dynamic JAVA™ class selection and download based on changeable attributes
US6480955B1 (en) 1999-07-09 2002-11-12 Lsi Logic Corporation Methods and apparatus for committing configuration changes to managed devices prior to completion of the configuration change
US7640325B1 (en) 1999-07-09 2009-12-29 Lsi Corporation Methods and apparatus for issuing updates to multiple management entities
US6584499B1 (en) 1999-07-09 2003-06-24 Lsi Logic Corporation Methods and apparatus for performing mass operations on a plurality of managed devices on a network
US6480901B1 (en) 1999-07-09 2002-11-12 Lsi Logic Corporation System for monitoring and managing devices on a network from a management station via a proxy server that provides protocol converter
US6769022B1 (en) 1999-07-09 2004-07-27 Lsi Logic Corporation Methods and apparatus for managing heterogeneous storage devices
US6542901B1 (en) * 1999-11-29 2003-04-01 International Business Machines Corporation Formatting input data file compatible with workstation application into formatted input data file compatible with second application utilizing user-customized settings
US6681386B1 (en) * 2000-05-22 2004-01-20 International Business Machines Corporation Method, system, and program for parameter expansion, generation, and execution of scripts in a networked environment
US7155439B2 (en) * 2001-09-20 2006-12-26 Wellogix, Inc. Modular and customizable process and system for capturing field documentation data in a complex project workflow system
US6968183B2 (en) 2001-11-02 2005-11-22 Telefonaktiebolaget Lm Ericsson (Publ) Determining a multi-module dependent parameter at a telecommunication node
US7457831B2 (en) * 2003-03-31 2008-11-25 Microsoft Corporation Peripheral device driver maintenance scheme for networked peripheral device clients
US7360215B2 (en) * 2003-05-15 2008-04-15 Sap Ag Application interface for analytical tasks
US7370316B2 (en) * 2003-06-03 2008-05-06 Sap Ag Mining model versioning
US7373633B2 (en) * 2003-06-03 2008-05-13 Sap Ag Analytical application framework
US7483914B2 (en) * 2003-07-17 2009-01-27 International Business Machines Corporation Method and system for implementing an application-based naming system
US8285876B2 (en) * 2004-03-19 2012-10-09 International Business Machines Corporation J2EE application versioning strategy
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
TW200535697A (en) * 2004-04-30 2005-11-01 Hon Hai Prec Ind Co Ltd System and method for automatic updating program
JP2006268752A (ja) * 2005-03-25 2006-10-05 Seiko Epson Corp 複数のバージョンに対応したモジュールの起動
US20070094637A1 (en) * 2005-10-24 2007-04-26 International Business Machines Corporation System, method, and computer program product for enabling coexistence of related software
US7752092B1 (en) * 2006-06-16 2010-07-06 Intuit Inc. System and method for indicating previous document source information for current document fields
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8850571B2 (en) 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US9021392B2 (en) * 2010-07-26 2015-04-28 Sap Se Managing extension projects with repository based tagging
JP5720531B2 (ja) * 2011-10-31 2015-05-20 富士通株式会社 ヘルプ作成支援装置、ヘルプ作成支援プログラムおよびヘルプ作成支援方法
US8990788B2 (en) * 2012-03-09 2015-03-24 Empire Technology Development Llc Compilation of code in a data center
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US9667496B2 (en) * 2013-12-24 2017-05-30 International Business Machines Corporation Configuration updates across peer storage systems
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9916627B1 (en) 2014-04-30 2018-03-13 Intuit Inc. Methods systems and articles of manufacture for providing tax document guidance during preparation of electronic tax return
US10284646B2 (en) * 2014-12-17 2019-05-07 International Business Machines Corporation Application multi-versioning in a traditional language environment
US9898261B1 (en) * 2015-09-30 2018-02-20 Open Text Corporation Method and system for configuring processes of software applications using activity fragments
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
CN114761891A (zh) * 2019-12-02 2022-07-15 三菱电机株式会社 信息生成装置、信息生成方法及信息生成程序
US11599355B2 (en) * 2021-06-21 2023-03-07 Microsoft Technology Licensing, Llc Application module version management

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US4809170A (en) * 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system
US4912637A (en) * 1988-04-26 1990-03-27 Tandem Computers Incorporated Version management tool
US5278979A (en) * 1990-12-20 1994-01-11 International Business Machines Corp. Version management system using pointers shared by a plurality of versions for indicating active lines of a version
US5357631A (en) * 1991-12-09 1994-10-18 International Business Machines Corporation Method and system for creating and maintaining multiple document versions in a data processing system library

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000054133A1 (en) * 1999-03-08 2000-09-14 Seiko Epson Corporation Information processor, method for saving/loading data, and information recorded medium
US6738898B1 (en) 1999-03-08 2004-05-18 Seiko Epson Corporation Information processor, method for saving/loading data, and information recorded
JP2012058961A (ja) * 2010-09-08 2012-03-22 Yamatake Corp ファイル編集装置、その制御方法、およびプログラム
JP2012079259A (ja) * 2010-10-06 2012-04-19 Fujitsu Ltd 更新管理装置、更新管理方法および更新管理プログラム

Also Published As

Publication number Publication date
US5603027A (en) 1997-02-11

Similar Documents

Publication Publication Date Title
US5603027A (en) Computer program version management system with reduced storage space and enabling multiple program versions to have the same name
US5339435A (en) Heterogenous software configuration management apparatus
US6526441B2 (en) Input/output device information management system for multi-computer system
JP3902797B2 (ja) ファイル内部構造の構成方法及び装置
US5905990A (en) File system viewpath mechanism
US6279109B1 (en) Computing system and operating method for booting and running a graphical user interface (GUI) with r/w hard drive partition unavailable
US6202205B1 (en) System and method for profile-based, on-the-fly optimization of library code
JP3138171B2 (ja) システム機能をダウンロードする方法
US6920631B2 (en) Software installation and validation using custom actions
US5740431A (en) Configuration file management
US7263699B2 (en) Preparation of a software configuration using an XML type programming language
US20030093420A1 (en) Method and system for retrieving sharable information using a hierarchically dependent directory structure
JPH06266563A (ja) 複数同時オブジェクト・バージョンをサポートする効率的ルータ
JPH0664559B2 (ja) クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置
JPH0656600B2 (ja) 分散不均一環境におけるサーバー機能の実行方法及び装置
US5553286A (en) System and method for preparing a computer program for execution
US6006278A (en) Method and system for importing remote functions to a network computer
JP3727076B2 (ja) プログラム管理方法および装置
JP2927180B2 (ja) 情報処理プログラムのデバッグ方法およびそのためのデバッガ
JP2018092383A (ja) コンパイルプログラム、コンパイル方法および情報処理装置
US20030074656A1 (en) Program execution apparatus and method, computer program for performing the program execution method, image forming system, and address solution method
JPH02114335A (ja) マルチ・プロセツシング方式
JP4500040B2 (ja) コンパイラプログラム、コンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体、コンパイル方法及びコンパイル装置
CN117573128A (zh) 代码转换方法、装置、电子设备、存储介质及程序产品
Haahr et al. Es: A shell with higher-order functions.