JPH1083283A - 1つの目標バージョンを選択するための方法およびシステム - Google Patents

1つの目標バージョンを選択するための方法およびシステム

Info

Publication number
JPH1083283A
JPH1083283A JP9128686A JP12868697A JPH1083283A JP H1083283 A JPH1083283 A JP H1083283A JP 9128686 A JP9128686 A JP 9128686A JP 12868697 A JP12868697 A JP 12868697A JP H1083283 A JPH1083283 A JP H1083283A
Authority
JP
Japan
Prior art keywords
version
versions
block
reason
targets
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
JP9128686A
Other languages
English (en)
Inventor
Henry Garken Christpher
クリストファー・ヘンリー・ガーケン
Reny Johins Stacey
ステイシー・レニー・ジョインズ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1083283A publication Critical patent/JPH1083283A/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
    • G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21—Design, administration or maintenance of databases
    • G06F16/219—Managing data history or versioning
    • Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00—Data processing: database and file management or data structures
    • Y10S707/99931—Database or file accessing
    • Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00—Data processing: database and file management or data structures
    • Y10S707/99931—Database or file accessing
    • Y10S707/99933—Query processing, i.e. searching
    • Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00—Data processing: database and file management or data structures
    • Y10S707/99951—File or database maintenance
    • Y10S707/99952—Coherency, e.g. same view to multiple users
    • Y10S707/99954—Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 オブジェクトの変更制御履歴を利用してオブ
ジェクトのバージョンを制御し、1つのバージョンに対
し生じる無節操な変更の可能性を減少する方法を提供す
ること。 【解決手段】 変更した各バージョンにその理由を連係
させることにより、既存の基準ラインのバージョンおよ
び変更を行った理由の集合に関連して、開発、維持、支
援等の動作をユーザが特定することを可能とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ処理システム
に関し、特に、オブジェクトの変更制御履歴を利用して
オブジェクトのバージョンを制御するための方法および
システムに関する。
【0002】
【従来の技術】データ処理システムにおけるライブラリ
管理システムや機能は、例えばコンピュータ・プログラ
ミング・コード、関連のテキスト情報、種々のタイプの
データ等のオブジェクトのためのリポジトリである。オ
ブジェクトとは、データ処理システム内の記憶装置の記
憶空間を専有したり、存在することができ、オペレーシ
ョンを実行可能な、例えば、プログラム、ファイル、ラ
イブラリ、ディレクトリ、フォルダ等である。1つのバ
ージョンは、ライブラリ・マネージャによって記憶され
るオブジェクトの状態の1つの論理表現である。例え
ば、文書がオブジェクトの場合、その文書に対する改良
が新しいバージョンとなる。バージョンに対する変更や
改良は、その文書の別のバージョンとなる。従って、1
つのオブジェクトは単一のオリジナル・バージョンを有
し、それから発生する多数のバージョンを有することに
なる(1つのオブジェクトは複数のオリジナル・バージ
ョンを有することも可能である)。
【0003】他のライブラリ管理システムにおけるよう
に、情報は使用するためにそのシステムから取り出すこ
とができる。情報は、こうして使用したり、あるいは使
用可能となる別のデータから変更させることができる。
そして、変更した情報は変更無しあるいは改良されたラ
イブラリに戻され、新しいバージョンの作成となる。ラ
イブラリは情報が容易に検索でき、またその適切な位置
に戻すことができるように組織されなくてはならない。
ライブラリの情報は、迅速に検索、更新、変更できるよ
うに配列させることが最も望ましい。さらに、通常、デ
ィスク記憶装置のような最小規模のコンピュータ記憶装
置を利用して、各オブジェクトを効果的に記憶させるこ
とが可能であることが望ましい。こうした記憶装置は、
あるバージョンのみの全コピーを記憶させ、続いて他の
バージョン全てではなく各バージョンに対する変更のみ
を記憶させることにより制御することが可能である。
【0004】ライブラリ管理システムで知られている問
題の1つは、複数のオブジェクトが頻繁に新しいバージ
ョンを作るために変更させられる事である。こうしたバ
ージョンは1つのオブジェクトに新しいあるいは改良さ
れたファンクション(機能)を提供するため、あるいは
1つのオブジェクトの間違い(欠点)を訂正するために
導入することがある。さらに、複数の新しいバージョン
が1つのオブジェクトにデータを加えるために作られる
ことがある。頻繁に改良されるオブジェクトの一例はコ
ンピュータ・プログラムである。コンピュータ・プログ
ラムの場合、一般に、ユーザに受け入れられたプログラ
ムは、そのプログラムを改良するための変更を行って次
々に発売された多くのバージョンを持っている。こうし
た状況は、メイン・フレーム・コンピュータのような大
型コンピュータ・システムを操作するプログラムについ
て特に発生する。
【0005】ライブラリ管理用に現在実用化されている
システムは、次に示す2つの方式が当業界で知られてい
る。すなわち、(1)分岐方式(branching model)、
(2)階層プロモーション方式(hierarchial promtion
model)である。分岐方式は、複数のバージョンおよび
バージョン間の関係を概説するオブジェクトの派生履歴
を記憶する。ユーザによってはっきりと削除された場合
を除き、この方式に保存されたどのバージョンも常に回
復可能である。さらに、この分岐方式は並行開発が可能
である。つまり、分岐方式は種々のプログラマやユーザ
が同時に1つのオブジェクトの特定のバージョンを改良
することが可能である。図1は従来例の分岐方式を示し
たブロック図である。オブジェクト150はいくつかの
バージョンを有している。オブジェクト150は初めブ
ロック152で示されたバージョン1.0として作ら
れ、ライブラリ・マネージャに送り戻されたバージョン
1.0の改良がブロック153で示すようにバージョン
1.1となる。ブロック154で示されたバージョン1.
2はライブラリ・マネージャに送り戻されたバージョン
1.1への改良によって作られた。同様に、ブロック1
56のバージョン1.3はバージョン1.2に基づいてい
る。オブジェクト150はバージョン1.2から作られ
た並列の分岐を有する。このバージョンはブロック15
8に示されるようにバージョン1.2.1.0であり、ブ
ロック160に示したバージョン1.2.1.1はバージ
ョン1.2.1.0の変更により作られた。同様に、ブロ
ック162のバージョン1.2.1.2はバージョン1.
2.1.1への変更から作られた。ラベル164とラベル
166はオブジェクト150の分岐方式の特定のバージ
ョンに付けられた簡単な文字列ラベルである。
【0006】従って、ユーザは例えば1.0や1.1等の
バージョン・モデルを識別することによりこの分岐方式
に位置したバージョンを検索できる。さらに、あるバー
ジョンが文字ラベルを付けられているなら、そのラベル
により識別および検索可能である。また、複数のバージ
ョンの合併は、改良する2つのバージョンと、その2つ
のバージョンに共通の基本バージョンを供給することに
より実行可能である。しかし、この分岐方式内に2つの
並行開発の合併を押し進めるためのメカニズムは設けら
れてない。
【0007】階層プロモーション方式は、例えば開発、
試験、製造などの様々なレベルにおける複数のオブジェ
クトの複数の並行な視点を提供する。階層プロモーショ
ン方式は、オブジェクトが変更されプロモーションさせ
られる際にオブジェクトを制御する。さらに、並行開発
については、この階層プロモーション方式により防止さ
れるか、明示される。この場合、1つのオブジェクトの
多くても1つのバージョンを単独のユーザあるいは複数
のユーザが、1グループにして見ることができる。
【0008】図2には、階層プロモーション方式を説明
するブロック図が示されている。この方式では、1つの
オブジェクトに対して開発プロセスにおける様々な段階
で複数のグループを形成し、各オブジェクトに対する複
数のバージョンの集合への索引として働く。グループ1
70の「フィールド」は、製造における各プログラムの
バージョンに関する。グループ172は試験プログラム
用にセットアップした「試験」グループである。グルー
プ174と176は、プログラムを使用するために開発
される「第一」、「第二」開発グループを示す。グルー
プ178は、エラーを訂正したフィールドにおけるプロ
グラムを試験するために設けられた「エラー」グループ
である。グループ180と182はエラーを訂正するた
めの「第三」、「第四」グループである。グループ17
4のプログラマはプログラムAC.4(プログラムA
C、バージョン4)を改良でき、グループ176のプロ
グラマはBC.9(プログラムBC、バージョン9)の
ように異なったプログラムを改良できる。グループ17
6を利用するプログラマがプログラムACを検査したい
と思うなら、プログラマはAC.1(プログラムAC、
バージョン1)を見ることになる。プロモーションがあ
るまでグループ176からAC.1へのアクセスは許可
されない。例えば、グループ174のプログラマがA
C.4の作業を終了すると、そのプログラマは試験のた
めにAC.4をグループ172にプロモーションさせ
る。プログラムAC.4は再度グループ170にプロモ
ーションさせることができる。この場合、AC.1はグ
ループ170でAC.4と入れ替わることになる。
【0009】分岐方式と反対に、種々のバージョンはそ
のバージョンのプロモーションに基づいたラベルを再割
当られる。階層プロモーション方式では、複数のバージ
ョンがこの階層構造をプロモーション移動させられ、改
良のためにその構造を複写することができる。
【0010】分岐方式は、複数のバージョンの並行開発
においてバージョンの回復を可能とする機能を提供す
る。一方、階層プロモーション方式はこうした機能を提
供しない。しかし、階層プロモーション方式は複数のバ
ージョンに対する探索パス、並行開発の警戒あるいは防
止、データを紛失するプロモーションの防止、開発プロ
セスの簡単な改良、1つのオブジェクトの1つのバージ
ョンだけが1つのグループ内にあることの保証、強制プ
ロモーションパス、そして改良バージョンへの自動的な
再ラベル等を提供する。この2つの方式は同様なファン
クションを有するが、各方式は他方では使用不可能な機
能を提供する。つまり、ユーザが一方の方式を選択する
ことは、選択されなかった方式により提供された機能の
使用よりも先に行わなくてはならない。
【0011】本出願の譲渡人による出願番号08/031,757
(放棄)の継続である1995年6月19日出願の出願
番号08/492,389は、この分岐方式と階層方式の両方の有
益な機能を提供した。しかし、欠陥のある機能のトラッ
キングの使用を教示していない。
【0012】
【発明が解決しようとする課題】従って本発明の目的
は、欠陥のある機能のトラッキングを含むことにより1
つのバージョンに対し生じる無節操な変更の可能性を減
少する方法を提供することである。
【0013】
【課題を解決するための手段】本願は、変更した各バー
ジョンにその理由を連係させることにより、既存の基準
ラインのバージョンおよび変更を行った理由の集合に関
連して、(例えば)開発、維持、支援等の動作をユーザ
が特定することを可能とする。 例 1)Bobが今週行ったものではなく、変更A1のみ有
する、先週認可された契約のバージョンを印刷する。 2)あるユーザから報告のあった問題を固定するプログ
ラムのバージョンを輸送する。
【0014】数々の変更は制御下のオブジェクトの無制
限な数の連続した、あるいは並行したバージョンを作り
出す可能性があるので、本発明はこれらの動作に対する
目標のバージョンが特定の変更のみ含み、かつ、これら
特定した変更の全てを含むことを確実にする。さらに、
本発明はこれらの変更の全てを組み込む単一のバージョ
ンがあることを確実にする。
【0015】
【発明の実施の形態】図3には、本発明を実行するため
に利用可能なデータ処理システム8の説明図を示してあ
る。図から分かるように、データ処理システム8は、L
AN10や32のような複数のネットワークを有し、各
ネットワークはそれぞれ複数の個別コンピュータ12、
30を有するのが望ましい。もちろん、1つのホスト・
プロセッサに接続した複数のインテリジェント・ワーク
ステーション(IWS)を各ネットワークに利用するこ
とも可能であることは当業者にとって常識である。こう
したデータ処理システムに共通なことだが、各個別コン
ピュータは記憶装置14やプリンタ出力装置16等に接
続させることができる。
【0016】データ処理システム8も、メインフレーム
・コンピュータ18のような複数のメインフレーム・コ
ンピュータを含むことが可能であり、それらコンピュー
タは通信リンク22によりLAN10に接続されるのが
望ましい。メインフレーム・コンピュータ18は、LA
N10の遠隔記憶装置として機能する記憶装置20にも
接続できる。同様に、LAN10は通信リンク24を経
て、サブシステム制御ユニット/通信コントローラ26
および通信リンク34を通じてゲートウェイ・サーバ2
8に接続できる。ゲートウェイ・サーバ28は、LAN
32をLAN10にリンクするために働く個別コンピュ
ータかIWSが望ましい。
【0017】LAN32およびLAN10に関し、複数
の文書オブジェクトあるいはリソース・オブジェクトは
記憶装置20に記憶させ、記憶させたリソース・オブジ
ェクトに対するリソース・マネージャあるいはライブラ
リ・サービスとしてメインフレーム・コンピュータ18
により制御させることができる。もちろん、メインフレ
ーム・コンピュータ18がLAN10から地理的にかな
り離れた位置にあること、また同様にLAN10がLA
N32から相当な距離をもって位置させることなどは当
業者であれば類推できる。例えば、LAN32はカリフ
ォルニア州に設け、LAN10はノースカロライナ州に
設け、メインフレーム・コンピュータ18はニューヨー
クに設けることができる。
【0018】本発明を用いるソフトウェア・プログラム
・コードは通常、記憶装置14あるいは20に記憶さ
れ、そこから開発者がそのコードにアクセスできる。配
布の為には、そのソフトウェア・プログラム・コードは
ディスケット、CD−ROMのような、データ処理シス
テムで使用される種々の公知の媒体を用いて実施でき、
あるいはネットワークを通じて1つのコンピュータ・シ
ステムのメモリから他のコンピュータ・システムのユー
ザへと配布することができる。媒体でソフトウェア・コ
ードを実施するため、またソフトウェア・コードを配布
するためのこうした技術や方法は公知であり、ここでは
詳細な説明は行わない。
【0019】図4には、本発明の方法やシステムを実行
するためLAN10のブロック図を示してある。サーバ
12は通信チャンネル34を通じてコンピュータ12a
−12cと通信する。LAN10はトークン・リング配
列に描かれているが、他の配列も可能である。サーバ1
2は本発明を実行するようにプログラムされたIBMP
S/2やAS/400システムのような従来のコンピュ
ータが使用可能である。サーバ12は中央処理装置(C
PU)36、メモリ38、ネットワーク・アダプタ40
を有する。ネットワーク・アダプタ40は発信をフォー
マットし、受信をデフォーマットするために使用され
る。サーバ12も、1人以上のユーザによるアクセス要
求を保留中のオブジェクトの種々の修正を記憶するため
のハード・ディスク駆動装置を有する。こうした要求は
データ・バス44を通じてコンピュータ・メモリ38に
1つのオブジェクトの1つの修正を送ることになる。い
くつかのオブジェクトがメモリ38内に存在可能であ
る。オペレーティング・システムおよびLANサーバ4
6はメモリ38内の1オブジェクトとして表される。
【0020】様々なユーザがコンピュータ12a−12
cを利用してライブラリ・マネージャ48に要求を送る
ことによりバージョンにアクセスできる。コンピュータ
12bは典型的な例である。コンピュータ12bはサー
バ12と通信するパーソナル・ワークステーションとし
てオペレーションを行う。概略的には、コンピュータ1
2bはサーバ12と実質的に同じであり、ネットワーク
・アダプタ60、ディスプレイ・アダプタ62、ハード
・ディスク駆動装置64、CPU66、アドレス可能メ
モリ68を有する。コンピュータ12bの構成部品はデ
ータ・バス70を通じてデータを転送する。CPU66
はキーボードやマウス等の入力周辺装置74を直接制御
する。ディスプレイ・アダプタ62はディスプレイ装置
74を駆動する。メモリ68も、ライブラリ・マネージ
ャ48への要求に応じてコンピュータ12により供給さ
れたバージョン76を有する。さらに、コンピュータ1
2bもメモリ68内にライブラリ・マネージャ(図示せ
ず)を有することが可能である。
【0021】図5には、メインフレーム・コンピュータ
18のブロック図が示されている。メインフレーム・コ
ンピュータ18は、複数のプログラム不可能なワークス
テーション(NWS)100a−100nを付属した、
IBM ESA/370あるいはESA/390のよう
な多重処理を実行する単一のコンピュータ・システムで
ある。メインフレーム・コンピュータ18はハード・デ
ィスク駆動装置102、CPU104、プログラム不可
能なワークステーション(NWS)100a−100n
と通信するための入力/出力(I/O)プロセッサ10
6、ネットワーク・アダプタ108、メモリ110を有
する。ハード・ディスク駆動装置102はメモリ110
内に設けたライブラリ・マネージャ48により管理され
たバージョンを含むことができる。各ワークステーショ
ンは、メモリ110内に設けた1つのバージョンにアク
セス可能である。例えば、ワークステーション100a
はバージョン112aにアクセスし、ワークステーショ
ン100bはバージョン112bにアクセスし、ワーク
ステーション100nはバージョン112nにアクセス
する。
【0022】図6には、ライブラリ管理システムを説明
するブロック図が示されている。ライブラリ・マネージ
ャ200はユーザ202からの要求に応じて種々のファ
ンクションを行う。ユーザ202はグループ202A、
202B、202Cに分けられるが、どのユーザも別の
グループを使用できる。このライブラリ管理システムも
バージョン履歴データベース206、バージョン内容デ
ータベース209および構造データベース208を有す
る。バージョン履歴データベース206は複数のオブジ
ェクトの派生的な履歴を含むことができ、またバージョ
ンそのものをバージョン内容データベース209内に設
ける。構造データベース208は、そのグループを階層
構造に組織する情報を含む。
【0023】図7には、バージョン・データベースを説
明するブロック図が示されている。この例では、バージ
ョン履歴データベース206は、それぞれブロック20
1、203、205、207で示されたようにバージョ
ン1.0、1.1、1.2、1.1.1.0を有する1つのオ
ブジェクトを含む。そのバージョンについての内容ある
いはデータはバージョン内容データベース209に記憶
されている。バージョン1.0はオリジナル・バージョ
ンであり、バージョン1.1はバージョン1.0を修正す
ることにより作られる。バージョン1.2はバージョン
1.1への修正の結果であり、同様に、バージョン1.
1.1.0はバージョン1.1を修正あるいは変更して得
られる。状況ラベルをそれらのバージョンを識別するた
めに用いることができる。例えば、バージョン1.1は
ブロック210Bで示すように「TEST(試験)」とラベ
ルを付け、バージョン1.2はブロック212Bに示す
ように「DEVELOPMENT(開発)1」とし、バージョン1.
1.1.0はブロック214Bに示すように「DEVELOPMEN
T(開発)2」とラベルを付ける。バージョンの名前お
よび他のバージョンとの関係はバージョン履歴データベ
ース206に記憶させる。あるいは、バージョン履歴デ
ータベース206とバージョン内容データベース209
は単一のデータベースに組み合わせてもよい。バージョ
ンの名前に基づいたバージョンを有するデータの検索は
公知である。
【0024】本発明によれば、変更の理由はバージョン
と組み合わされる。1つの理由は、なぜライブラリ・マ
ネージャ・オブジェクトの1つ以上の新しいバージョン
が作られたかを記述する1つのオブジェクトである。従
来技術は、どのようにライブラリ・マネージャが理由オ
ブジェクトとライブラリ管理されているオブジェクトの
適切なバージョンと組み合わせるか説明している。図8
には、整合を説明する一例が示されている。300で示
されたバージョン1は、304により示された理由Aの
ために作られたバージョンである。理由Aのような理由
は、問題への固定、機能拡張、等となる。次に、バージ
ョン1は306で示される理由Bに対して修正され、3
02で示されるバージョン2となる。バージョン2は理
由Aに対して成された変更なので、理由Aは理由Bに対
する前提条件と言える。1つのバージョンに対して1つ
の動作が取られる時の理由について、要求された動作が
認められるもので本当に必要か判定するために、本発明
はバージョンの全ておよび関係の変更を判定する。ユー
ザが理由Bにたいして行われた変更を組み込むオブジェ
クトの単一バージョンに対するアクションを求める時、
その要求アクションはバージョン2が作られた(つま
り、理由Aについて成された変更)前に行われた変更も
含むことになる。従って、いくつかの理由およびベース
ライン・バージョンに関してアクションを要求する際
に、本発明はベースラインと所望のバージョン間のバー
ジョンと関連ある変更に対して追加の理由があるか判定
する。さらに、本発明は、そのベースライン・バージョ
ンから特定した理由に対して作られたバージョンを厳密
に含む単一のバージョンがあることを立証する。
【0025】図8の例に続いて、バージョンと変更の集
合が完了したかどうかの試験を図9に示す。バージョン
2の作成の後、ユーザは理由Aに対する修正の別の集
合、308で示されたバージョン3を再度作る。バージ
ョン2に対してアクションが取られると、バージョン2
に含まれてない理由Aに対して成された修正があるので
バージョンと変更の集合は完全ではない。完全性はライ
ブラリ・アクションに対する必要前提条件ではないが、
1つのバージョンが既知の変更に関して完全かどうか
を、そのアーキテクチャが評価可能であることが非常に
重要である。
【0026】本発明によれば、以下のように用語は定義
される。
【0027】目標バージョン:初期のベースライン・バ
ージョンとオブジェクトが変更された理由の集合に関し
てユーザにより要求されたバージョン。 ベースライン・バージョン:名称あるいはラベルにより
参照された、ある程度既知のバージョン。 オリジナル・バージョン:いかなる修正(作成も含む)
も行われる前の元のバージョン。 祖先(Ancestor)バージョン:前のバージョン(必ずし
も直前ではない)。 子孫(Descendant)バージョン:後のバージョン(必ず
しも直後ではない)。
【0028】本発明による、3つの例が図10、図1
1、図12に示されている。初めに、図10では、例1
が説明されている。400で示されたベースライン・バ
ージョン1.0は現在実動中のバージョンである。バー
ジョン1.1は402で示され、理由Cに対して作成さ
れた。続いて、404で示されるバージョン1.2が理
由Dに対して作成される。
【0029】次に、図11では、例2が示されている。
この例2では、ベースライン実動バージョン2.0は4
06で示されている。バージョン2.0は理由Eに対し
て修正されて、408で示されるバージョン2.1へ移
る。そして、バージョン2.1は理由Fに対して修正さ
れて、410で示されるバージョン2.2へ移る。バー
ジョン2.2は、また理由Eに対して修正されて、41
2で示されるバージョン2.3へ移る。理由Eは、例え
ば、1つのバージョンに適用した固定が不十分あるいは
それ自身間違いを含んでおり、それ故に修正は同じ理由
に対して再度行う等の、種々の理由に対する2つの別々
の修正の原因である。
【0030】図12は、414で示される実動ベースラ
イン・バージョン3.0の例3を説明するものである。
バージョン3.0は理由Gに対して修正されて、416
で示されるバージョン3.1へ移る。そして、バージョ
ン3.1は理由Hに対して修正されて、418で示され
るバージョン3.2と、420で示されるバージョン3.
3へ移る。バージョン3.2と3.3は、別のプログラマ
あるいは他の理由によって不注意にも並行して開発を行
ったことにより、同じ理由Hに対して作成された可能性
がある。
【0031】次に、図13、14、15のフローチャー
トは、図10、11、12に示した3つの例に関する本
発明を説明する。以下に示す変数を使用する。 ベースライン:(バージョンIDにより明快に、また
は、例えばラベルにより間接的に、ユーザにより特定さ
れたバージョン)。 T:(目標バージョン;つまり、アクション(例えば、
プロモーション)を取る対象のバージョンということを
本発明が判定するバージョン)。 RSET:(ユーザにより提供された理由の集合で、そ
れに関連した変更全てが目標バージョンに併合させなく
てはならない)。 R:(RSETからの、ある特定理由;RSETを介し
て反復するため使用される)。 VSET:(現在の理由Rに関連したバージョンの集
合)。 V:(VSETからの、ある特定のバージョン(VSE
Tを介して反復するため使用される);あるいはMIS
SINGからの、ある特定のバージョン)。 MISSING:(遭遇した直前の祖先を有する、事前
に遭遇してないバージョンの集合)。 TARGETS:(潜在目標バージョンの集合;本発明
がうまく走行する時、本発明はリストから1つのバージ
ョンを除き、全てを除去することになる)。 PREVS:(現在のバージョンVに対する直前のバー
ジョンの集合)。 P:(PREVSからの、ある特定バージョン)。 RSONS:((1)オリジナルのRSETになく、
(2)ベースラインと目標との間のバージョンに関連し
た、理由の集合)。
【0032】図10に示した例1でスタートすると、実
動バージョンに対する理由CとDの修正を含むバージョ
ンに対して実行(つまり、プロモーション)することが
望ましい。初めのステップとして、MISSINGとT
ARGETSが空きとなるようにセットする。図13で
は、本発明は500でスタートする。初め、変数は、ベ
ースライン=1.0、RSET={C,D}である。判
定ブロック502で、RSETが空きか否かを初めに判
定する。例1では、RSET={C,D}、従って空き
ではない。ブロック504では、RSETからいかなる
理由Rも除去される(例1では、第一理由集合R=理由
D)。ブロック506では、VSETはブロック504
からの理由Rに関連した全てのバージョンに匹敵する集
合である。例1では、VSET={バージョン1.
2}。次に判定ブロック508でVSETが空きか否か
判定する。答えがYESなら、本発明は初めの判定ブロ
ック502へ戻る。答えがNOなら、VSETからいか
なるバージョンVも除去される(例1では、バージョン
V=1.2)。そして、VSETは空きとなる。次に、
判定ブロック512において、バージョンV(バージョ
ン1.2)が図15に示した含意試験を通過するか否か
を判定する。
【0033】図15では、判定ブロック514でバージ
ョン(バージョン1.2)がBの祖先か否かを判定する
(B=ベースライン・バージョン、つまり、バージョン
1.0)。判定ブロック514の答えがYESなら、そ
のバージョンはブロック516で失格となる。判定ブロ
ック514の答えがNO(バージョン1.2は実際にバ
ージョン1.0の子孫バージョンである)なら、判定ブ
ロック518でバージョン(バージョン1.2)がB
(バージョン1.0)と等しいか否かを判定する。判定
ブロック518の答えがYESなら、そのバージョンは
ブロック516で失格となる。判定ブロック518の答
えがNO(バージョン1.2は実際にバージョン1.0と
は等しくない)なら、判定ブロック520でバージョン
(バージョン1.2)がBの子孫か否かを判定する。判
定ブロック520での答えがNOならば、ブロック52
2でバージョンは失格となる。答えがYES(バージョ
ン1.2がバージョン1.0の子孫である)なら、バージ
ョンはブロック524で通過する。
【0034】再度図13の例1にもどり、バージョンV
(バージョン1.2)は含意試験を通過する。ブロック
512の答えがNOならば、本発明は前述のように判定
ブロック508にもどる。判定ブロック512がYES
だったので、判定ブロック526でバージョンVがMI
SSINGにあるか否かを判定する。上記の定義のよう
に、MISSINGが初めに空なので、判定ブロック5
26の答えはNOである。従って、図14に示すよう
に、V(バージョン1.2)はブロック528でTAR
GETSに加えられる(TARGETS={1.
2})。もし判定ブロック526の答えがYESなら、
Vはブロック530でMISSINGから除去されるこ
とになる。
【0035】本発明は次にブロック532に進み、PR
EVSがV(バージョン1.2)の直前のバージョン全
てに等しいようにセットする。従って、例1について、
PREVS={1.1}。そして、ブロック534でP
REVSが空か否かを判定する。ブロック534の答え
がYESなら、判定ブロック508に戻りVSETの次
のバージョンをチェックする。判定ブロック534の答
えがNO(PREVS={1.1})なら、バージョン
P(残りのバージョンのどれか)がブロック536でP
REVSから除かれる。PREVSから除かれるバージ
ョンはバージョン1.1のみである。
【0036】判定ブロック538では、バージョンPが
図15で示すように含意試験を通過するか否かを判定す
る。判定ブロック514では、バージョンP(バージョ
ン1.1)がB(バージョン1.0)の祖先でないことを
判定する。判定ブロック518では、バージョンP(バ
ージョン1.1)がBと同じではないことを判定し、判
定ブロック520では、バージョンP(バージョン1.
1)がBの子孫であることを判定する。このようにバー
ジョンP(バージョン1.1)が含意試験を通過し、判
定ブロック540でPがTARGETS内にあるか否か
を判定する。
【0037】上記のようにTARGETS={1.2}
なので、判定ブロック540の答えはNOでありP
{1.1}をブロック542でMISSINGに加え、
{1.1}と等しくなる。もし判定ブロック540の答
えがYESなら、P(1.1)がブロック544でTA
RGETSから除かれることになる。ブロック542と
544に続いて、判定ブロック534に戻りPREVS
が空か否かを再度判定する。PREVSは空(バージョ
ン1.1は前の反復で除かれている)なので、答えはY
ESである。このようにして、判定ブロック508への
戻りが実行される。VSETは空であり、判定ブロック
508の答えはYESで本発明はブロック502に戻
る。ブロック502ではRSET={C}が空ではない
ことを判定し、理由Rはブロック504でRSETから
除かれ、従ってRSETは空である。
【0038】ブロック506でVSETは{バージョン
1.1}に等しいようにセットされ、判定ブロック50
8の答えはNOである。ブロック510でバージョンV
(1.1)がVSETから除かれる(従って、空とな
る)。ブロック512でV(1.1)が判定ブロック5
12の含意試験を通過するかを判定する。MISSIN
G={1.1}なので、判定ブロック526でV(1.
1)がMISSING内にあることを判定し、V(1.
1)はブロック530でMISSINGから除かれ、空
になる。ブロック532では、PREVSは1.0に等
しいようにセットされ、ブロック534ではPREVS
が空でないことを判定する。ブロック536で、バージ
ョンP(1.0)はPREVSから除かれる。バージョ
ンP(1.0)は含意試験を通過せず(バージョン1.0
=B(バージョン1.0)なので)、判定ブロック53
4に戻る。そして、ブロック534でPREVSが空で
あることを判定し、ブロック508への戻りが実行され
る。
【0039】ブロック508で、VSETが現在、空で
あることを判定し、ブロック502への戻りが実行され
る。RSETは現在、空であり、本発明は判定ブロック
550へ進み、そこでMISSINGが空か否かを判定
する。判定ブロック550の答えはYES(前述したよ
うに)なので、判定ブロック552では厳密に1つのバ
ージョンがTARGETSにあるか否かを判定する。T
ARGETSは前に{1.2}と等しくセットしたの
で、判定ブロック552の答えはYESである。もしブ
ロック552の答えがNOならば、開発の併合の欠落に
より不完全な完成という答えをブロック554で受ける
ことになる。
【0040】ブロック556では、TがTARGETS
内のバージョンであるか、つまりT=バージョン1.2
であることを判定する。従ってブロック558で完全な
完成が決定され、本発明は実動に対するプロモーション
の理由CとDを含む正しいバージョンがバージョン1.
2であることを決定する。
【0041】図11および図13、14、15では、1
つのバージョンを作成するために、同じ理由を2度以上
使用した時にプロモーションするための正しいバージョ
ンを試験する1つの例を説明している。初期条件はMI
SSING={};TARGETS={};BASEL
INE=1.0;そしてRSET={E,F}である。
【0042】500でスタート後、ブロック502では
理由EとFを含むのでRSETは空ではない。ブロック
504では、理由R(Fと共にスタート)はRSETか
ら除かれる(RSET={E}とする)。ブロック50
6では、R(VSET={2.2})に関連のある全て
のバージョンにVSETが等しくなるようにセットす
る。VSETは空ではないので、ブロック510でVS
ETからバージョンV(2.2)が除かれる(VSET
は{}に等しい)。ブロック512および図15で、バ
ージョンV(2.2)が含意試験を通過することを判定
する。ブロック526では、MISSINGが空なの
で、バージョンV(2.2)がMISSING内にはな
く、バージョンV(2.2)はブロック528でTAR
GETSに加えられる(TARGETS={2.
2})。
【0043】ブロック532では、PREVSは{2.
1}に等しくされる。ブロック534でPREVSが空
ではないと判定されるので、どのバージョンP(バージ
ョン2.1)も除かれてPREVS={}を作る。ブロ
ック538と図15でP(2.1)がTARGETS内
にない(TARGETS={2.2})ことを判定し、
P(2.1)がブロック542でMISSINGに加え
られる(MISSING={2.1})。ブロック53
4への戻りが実施され、PREVS={}なので、空で
あり、ブロック508への戻りが実施される。
【0044】ブロック508で、VSETは空なので、
ブロック502への戻りが実施される。RSET=
{E}なので、空ではなく、理由R(E)はブロック5
04から除かれRSET={}となる。ブロック506
では、VSETは2.1と2.3に等しくする(VSET
={2.1、2.3})。ブロック508で、VSETは
空ではないので、バージョンV(ピック・バージョン
2.3)が除かれ、VSET={2.1}。ブロック51
2および図15で、V(2.3)が含意試験を通過する
ことを判定する。ブロック526では、V(2.3)が
MISSING内にないことを判断し(MISSING
={2.1})、V(2.3)がブロック528でTAR
GETSに加えられる(TARGETS={2.2、2.
3})。ブロック532では、PREVSが{2.2}
に等しくされ、ブロック534でPREVSが空ではな
いと判定され、ブロック536で、バージョンP(2.
2)はPREVSから除かれる(PREVS={})。
P(2.2)はブロック538と図15で含意試験を通
過する。P(2.2)はTARGETS内にあるので
(TARGETS={2.2、2.3})、P(2.2)
はブロック544でTARGETSから除かれる(TA
RGETS={2.3})。ブロック534への戻りが
実行され、続いてブロック508への戻りが実行され
る。
【0045】ブロック508で、VSET{2.1}は
空ではなく、バージョンV(2.1)が除かれ、VSE
T={}となる。V(2.1)は含意試験を通過し、ブ
ロック530でMISSING(MISSING
={})から除かれる。ブロック532では、PREV
Sが2.0に等しくされ、ブロック536で、バージョ
ンP(2.0)はPREVSから除かれる(PREVS
={})。P(2.0)はP(2.0)=B(2.0)な
ので含意試験を通過しない。ブロック534への戻りが
行われ、ブロック508への戻りが続く。VSETが現
在、空なので、ブロック502への戻りが行われる。R
SETは現在、空であり、本発明は判定ブロック550
へ進み、そこでMISSINGが空かを判定する。判定
ブロック552ではTARGETS={2.3}が厳密
に1つのバージョンを含むことを判定し、ブロック55
6で、Tがそのバージョンである(つまり、T=2.
3)。このように完成がブロック558で判定され、本
発明は実動バージョンに対するプロモーションの理由E
とFを含む正しいバージョンがバージョン2.2ではな
くバージョン2.3であることを判定した。
【0046】図12および図13、14、15では、並
行バージョン開発が起こった状況における本発明の使用
を説明する第3例である。初期条件はMISSING=
{};TARGETS={};BASELINE=3.
0;そしてRSET={G,H}である。500でスタ
ートした後、ブロック502ではRSETは空ではな
い。ブロック504では、理由R(H)はRSETから
除かれる。ブロック506では、R(H)に関連のある
全てのバージョンにVSETが等しくなるようにセット
するので、VSET={3.2、3.3}。判定ブロック
508でVSETは空ではないことを判定され、ブロッ
ク510でVSETからバージョンV(3.3)が除か
れる(VSET={3.2})。ブロック512および
図15で、バージョンV(3.3)が含意試験を通過す
ることを判定する。
【0047】V(3.3)がMISSING内にないの
で(MISSING={})、V(3.3)はブロック
528でTARGETSに加えられる。ブロック532
で、PREVSが{3.1}に等しくなるようにセット
される。PREVSは空ではないので、バージョンP
(3.1)がブロック536でPREVSから除かれ
る。P(3.1)はブロック538と図15で含意試験
を通過する。P(3.1)はTARGETS内にない
(TARGETS={3.3})ことを判定ブロック5
40で判定する。このように、P(3.1)はブロック
542でMISSINGに加えられる(MISSING
={3.1})。そして、本発明はブロック534へ戻
り、現在、PREVSは空なのでブロック508への戻
りが実行される。判定ブロック508ではVSETが空
ではなく、VSETからどのバージョンV(3.2)が
除かれる(VSET={})。判定ブロック512と図
15でV(3.2)が含意試験を通過することを判定す
る。
【0048】ブロック526では、V(3.2)がMI
SSING内にないことを判定する(MISSING=
{3.1})。従って、V(3.2)がブロック528で
TARGETSに加えられる(TARGETS={3.
2、3.3})。ブロック532では、PREVS=
{3.1}、ブロック534でPREVSが空ではない
と判定され、バージョンP(3.1)はPREVSから
除かれる。P(3.1)は含意試験を通過することをブ
ロック538で判定する。P(3.1)はTARGET
S内にないので(TARGETS={3.2、3.
3})、P(3.1)はブロック542でMISSIN
Gに加えられる(MISSING={3.1})。この
ように、本発明はブロック534へ戻り、続いてブロッ
ク508への戻りが実行される。VSETは空なので、
本発明はブロック502へ戻る。
【0049】ブロック502でRSETは空(RSET
={G})と判定される。ブロック504では、RSE
Tから理由R(G)が除かれる(RSET={})。ブ
ロック506では、VSET={3.1}、そしてVS
ETは空ではないので、V(3.1)はVSETから除
かれる(VSET={})。
【0050】ブロック512および図15で、バージョ
ンV(3.1)が含意試験を通過することを判定する。
V(3.1)がMISSING内にあるので(MISS
ING={3.1})、V(3.1)はブロック530で
MISSINGから除かれる(MISSING
={})。ブロック532で、PREVSが{3.0}
に等しくなるようにセットされ、PREVSは空ではな
いので、バージョンP(3.0)がブロック536でP
REVSから除かれる(PREVS={})。バージョ
ンP(3.0)は含意試験を通過しない(P(3.0)=
B(3.0))ので、ブロック534への戻りが実行さ
れる。PREVSが空なので、判定ブロック508への
戻りが行われ、ブロック502への戻りが続く(VSE
Tが空)。RSETが空なので、本発明はブロック55
0へ続く。MISSING={}、つまり空なので、判
定ブロック552では2つ以上のバージョンがTARG
ETSにあること(TARGETS={3.2、3.
3})を判定する。このように、ブロック554で不完
全な完成を示すメッセージが出される。それ故、本発明
は例3が全ての並行開発の併合を完成させず、しかも、
こうした併合が完成されるまで、実動バージョンに対す
るプロモーションをするための正しいバージョンはない
ことを正確に識別した。
【0051】図10、13、14、15には、必要な理
由が紛失した時にプロモーションするための正しいバー
ジョンを試験する例が説明されている。この例では、理
由Fに対して成された変更を実動バージョンに対し移動
させ、既にそこにあるバージョン(バージョン2.0)
と交換することをユーザが求めた。
【0052】500でスタートした後、ブロック502
ではRSETは理由Fを含むので空ではないと判定す
る。ブロック504では、理由R(F)はRSETから
除かれる(RSET={}を作る)。ブロック506で
は、R(VSET={2.2})に関連のある全てのバ
ージョンにVSETが等しくなるようにセットする。V
SETは空ではないので、ブロック510でVSETか
らバージョンV(2.2)が除かれる(VSET
={})。ブロック512および図15で、バージョン
V(2.2)が含意試験を通過することを判定する。ブ
ロック526で、MISSINGは空なので、バージョ
ンV(2.2)がMISSING内にないことを判定す
る。そして、バージョンV(2.2)がブロック528
でTARGETSに加えられる(TARGETS=
{2.2})。
【0053】ブロック532では、PREVSが{2.
1}に等しくなるようにされる。ブロック534でPR
EVSが空ではないと判定されるので、バージョンP
(2.1)はPREVSから除かれPREVS={}と
する。P(2.1)は含意試験を通過することをブロッ
ク538と図15で判定する。ブロック540で、P
(2.1)はTARGETS内にないことを判定され
(TARGETS={2.2})、P(2.1)はブロッ
ク542でMISSINGに加えられる(MISSIN
G={2.1})。ブロック534への戻りが実行さ
れ、PREVS={}で空なので、ブロック508への
戻りが実行される。
【0054】ブロック508で、VSETは空なので、
ブロック502への戻りが実行される。RSETは空な
ので、本発明は判定ブロック550に移り、MISSI
NGが空ではないことを判定する。本発明はブロック6
00に移る。
【0055】ブロック600で、RSONSが{}に等
しくなるようにされる。ブロック602で、バージョン
V(2.1)はMISSINGから除かれる(MISS
ING={})。ブロック604で、バージョン2.1
に関連の全ての理由がRSONSに加えられる。バージ
ョン2.1は理由Eのためだけに作られたので、RSO
NSは現在{E}に等しい。
【0056】ブロック606では、MISSINGが空
かチェックする。答えがNOなら、本発明はブロック6
08に続く。答えがYESなら、本発明はブロック60
2に戻る。MISSINGが空なので、本発明はブロッ
ク608に続く。このようにして、不完全な完成という
メッセージがブロック608で返答される。この例で
は、本発明は、理由E(RSONS内の理由)について
成された変更も移動することなく、理由Fに対する変更
が実動バージョンに移動できないことを正確に判定し
た。理由Eは実動バージョンへ移動させる変更の初めの
リスト内に無かったので(RSETの初期値は
{F})、本発明は誤りだと応答する。
【0057】従来アプリケーションの一つである、IB
M社の構成管理バージョン制御(CMVC)は、ベース
ライン・バージョンに理由の集合をどのように適用し
て、(1)(ベースライン・バージョンだけでなく1つ
以上の理由に対して成された全ての変更も組み込み)得
られたバージョン、あるいは、それが駄目なら(2)関
連の変更が(1)を完成させるために必要とされる理由
の新たな集合、のどちらかを判定するかを説明してい
る。残念なことに、CMVCは、ほとんどのUNIX系
で有効な、単純なバージョン化ユーティリティであるS
CCSの単純なバージョン化能力だけを想定している。
ライブラリ管理システムはもっと複雑になっており、こ
うしたシステムのバージョン化能力を有する。これらの
新しいバージョン化機構は公知技術のいくつかの想定を
打破している。つまり、(1)数個のバージョンが単一
のバージョンに基づき、かつ(2)単一のバージョンが
2個以上(通常2個のみ)のバージョンの併合に基づく
ことが可能である。これは、バージョンがその祖先でな
い場合を除き、複雑な図や形にすることのできるバージ
ョン履歴となる。
【0058】本発明は公知技術を2つの方法で拡張す
る。その1つは、SCCSでの限定的な分岐方式のよう
にではなく、アルゴリズムを複雑なバージョン履歴に適
用できる。2つめは、ライブラリ管理システムは並行開
発をサポートできるので、CMVCでは不可能なエラー
条件が検知可能となり、所定の理由集合に関連した変更
が並行で、かつ併合されないことが可能である。
【0059】本発明のシステムは本発明自体で使うばか
りでなく、他のライブラリ管理システムでも2つの方法
で使用することができる。
【0060】ライブラリ管理システムのバージョン化構
造は、通常、観念的なレベルで働く。例えば、PVCS
(Intersolvからのライブラリ管理システム)はシステ
ム全体にわたるラベルやプロモーション階層等の概念を
サポートする。これらはユーザに間接的かつ高レベルの
インターフェースを提供し、ユーザに関係のある多くの
オブジェクトのバージョンを特定する。さらに、PVC
Sはこれらの間接的かつ高レベルのバージョン名を容易
に管理するユーザ・インターフェースを提供する。この
ユーザ・インターフェースは本発明により、容易に拡張
できる。例えば、図2に示すように、オブジェクトの集
合を試験からフィールドへプロモーションするのに加
え、本発明はユーザが拡張の集合(変更コードの集合に
より分かる)をフィールドにプロモーションするのを可
能にする。
【0061】別の例として、ENVY(OTI(Object
Technology International of Canada)からのSmalltalk
開発用のライブラリ管理ツール)のバージョン化および
構成管理能力は、1つのクラスに対する方法のバージョ
ンの集合、1つのアプリケーションに対するクラスのバ
ージョンの集合、構成マップに対するアプリケーション
の集合等の解放の概念をサポートする。方法バージョン
を除き、他のバージョン全てはユーザにより明快に命名
されねばならない。これはシステムの生成やコードの再
利用を極めて簡単にするが、開発者が相当量の作業を必
要とする。本発明はこの開発者の作業を簡略化するため
に使用することができる。1つの構造に対して解放すべ
き各オブジェクトの各バージョンを識別しなくてはなら
ない代わりに、開発者はENVYが一組の理由を解放す
ることを指示することでよい。現に解放されたバージョ
ンは1つのベースライン、および(本発明により判定さ
れたように)解放される目標バージョンとして使用され
ることになる。
【0062】本発明は既存のライブラリ管理システムの
現行の動作を第二の方法で拡張することができる。PV
CSの「PROMOTE(プロモーション)」やENVYの「R
ELEASE(解放)」のような動作は、ライブラリ・マネー
ジャを作動させる目的バージョンをユーザが識別するこ
とを含む。この動作はしばしば暗黙のベースラインを有
し、またこれらの2つのバージョン(ベースラインと目
標)からベースラインと目標間の変更の集合を識別する
のが容易である。その変更の集合から、関連の理由の集
合が導き出せる。本発明は実際の目標バージョン、所定
のベースライン・バージョン、理由の演算集合等を判定
するのに使用可能である。そして、ライブラリ管理シス
テムは演算した目標とユーザにより特定された実際の目
標とを比較することができる。この2者が異なる、ある
いは本発明がエラー条件を検出するなら、ユーザは変更
のために既知の理由と一致しない、あるいは履行完了し
ない動作を要求する。
【0063】本発明は特定の望ましい実施例について説
明したが、種々の変更や改良が可能であることは当業者
には理解できるであろう。また、添付の請求の範囲を逸
脱しない限りこうした変更や改良も本発明の範囲にある
ものである。
【0064】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0065】(1)複数のバージョンから、ベースライ
ン・バージョンに対してユーザが示した変更を厳密に含
む、データ処理システムにおける1つの目標バージョン
を選択するための方法であって、変更のための理由の集
合を特定するステップと、上記変更のための理由の集合
における少なくとも1つの理由と関連した、上記複数の
バージョンの部分集合を有する、全てのバージョンの集
合を判定するステップと、上記全てのバージョンの集合
における子孫を有さない、上記全てのバージョンの集合
におけるバージョンを有する、目標の集合を判定するス
テップと、上記ベースライン・バージョンの子孫で、上
記目標の集合における1つのバージョンを祖先として有
する上記全てのバージョンの集合に含まず、上記複数の
バージョンにおけるバージョンを有する、紛失バージョ
ンの集合を判定するステップと、上記目標の集合が単独
のバージョンのみ有し、上記紛失バージョンの集合が空
であるなら上記目標バージョンであり、上記バージョン
の集合の上記単独バージョンは上記目標バージョンであ
ることを判定するステップと、を有することを特徴とす
る1つの目標バージョンを選択するための方法。 (2)ユーザに結果のメッセージを返答するステップ
を、さらに有することを特徴とする、上記(1)に記載
の方法。 (3)上記メッセージが不完全な結果なら、該不完全な
結果を生じた紛失理由を列挙するステップを、さらに有
することを特徴とする、上記(2)に記載の方法。 (4)上記目標の集合が2つ以上のバージョンを有する
なら、ユーザにエラー・メッセージを返答するステップ
を、さらに有することを特徴とする、上記(2)に記載
の方法。 (5)複数のバージョンから、ベースライン・バージョ
ンに対してユーザが示した変更を含む、データ・プロセ
ッサにおける1つの目標バージョンを選択するためのシ
ステムであって、変更のための理由の集合を特定する手
段と、上記変更のための理由の集合における少なくとも
1つの理由と関連した、上記複数のバージョンの部分集
合を有する、全てのバージョンの集合を判定する手段
と、上記全てのバージョンの集合における子孫を有さ
ず、上記全てのバージョンの集合のバージョンを有する
目標の集合を判定する手段と、上記ベースライン・バー
ジョンの子孫で、上記目標の集合における1つのバージ
ョンを祖先として有する全てのバージョンの上記集合に
含まず、上記複数のバージョンにおけるバージョンを有
する紛失バージョンの集合を判定する手段と、上記目標
の集合が単独のバージョンのみ有し、上記紛失バージョ
ンの集合が空であるなら上記目標バージョンであり、上
記バージョンの集合の上記単独バージョンは上記目標バ
ージョンであることを判定する手段と、を有することを
特徴とする1つの目標バージョンを選択するためのシス
テム。 (6)ユーザに結果のメッセージを返答する手段を、さ
らに有することを特徴とする、上記(5)に記載のシス
テム。 (7)上記メッセージが不完全な結果なら、該不完全な
結果を生じた紛失理由を列挙する手段を、さらに有する
ことを特徴とする、上記(6)に記載のシステム。 (8)上記目標の集合が2つ以上のバージョンを有する
なら、ユーザにエラー・メッセージを返答する手段を、
さらに有することを特徴とする、上記(6)に記載のシ
ステム。 (9)ベースライン・バージョンに対してユーザが示し
た変更を含む、データ・プロセッサにおける1つの目標
バージョンを複数のバージョンから選択するための、コ
ンピュータで読取り可能な媒体に記録したコンピュータ
・プログラム製品であって、変更のための理由の集合を
特定するコンピュータで読取り可能な手段と、上記変更
のための理由の集合における少なくとも1つの理由と関
連した、上記複数のバージョンの部分集合を有する、全
てのバージョンの集合を判定するコンピュータで読取り
可能な手段と、上記全てのバージョンの集合における子
孫を有さず、上記全てのバージョンの集合のバージョン
を有する目標の集合を判定するコンピュータで読取り可
能な手段と、上記ベースライン・バージョンの子孫で、
上記目標の集合における1つのバージョンを祖先として
有する全てのバージョンの上記集合に含まず、上記複数
のバージョンにおけるバージョンを有する紛失バージョ
ンの集合を判定するコンピュータで読取り可能な手段
と、上記目標の集合が単独のバージョンのみ有し、上記
紛失バージョンの集合が空であるなら上記目標バージョ
ンであり、上記バージョンの集合の上記単独バージョン
は上記目標バージョンであることを判定するコンピュー
タで読取り可能な手段と、を有することを特徴とする、
1つの目標バージョンを選択するためのコンピュータで
読取り可能な媒体に記録したコンピュータ・プログラム
製品。 (10)ユーザに結果のメッセージを返答するための、
コンピュータで読取り可能な手段を、さらに有すること
を特徴とする、上記(9)に記載のコンピュータ・プロ
グラム製品。 (11)上記メッセージが不完全な結果なら、該不完全
な結果を生じた紛失理由を列挙するコンピュータで読取
り可能な手段を、さらに有することを特徴とする、上記
(10)に記載のコンピュータ・プログラム製品。 (12)上記目標の集合が2つ以上のバージョンを有す
るなら、ユーザにエラー・メッセージを返答するコンピ
ュータで読取り可能な手段を、さらに有することを特徴
とする、上記(11)に記載のコンピュータ・プログラ
ム製品。
【0066】
【発明の効果】数々の変更は、制御下のオブジェクトの
無制限な数の連続した、あるいは並行したバージョンを
作り出す可能性があるので、本発明はこれらの動作に対
する目標のバージョンが特定の変更のみ含み、かつ、こ
れら特定した変更の全てを含むことを確実にする。さら
に、本発明はこれらの変更の全てを組み込む単一のバー
ジョンがあることを確実にする。
【図面の簡単な説明】
【図1】従来の分岐方式の一例を示すブロック図であ
る。
【図2】従来の階層方式の一例を示すブロック図であ
る。
【図3】本発明の方法およびシステムを実行するために
利用可能なデータ処理システムの概略説明図である。
【図4】図3のデータ処理システムのLANを示すブロ
ック図である。
【図5】図3のメインフレーム・コンピュータを示すブ
ロック図である。
【図6】本発明によるライブラリ管理システムを示すブ
ロック図である。
【図7】本発明によるバージョン・データベースを示す
ブロック図である。
【図8】変更制御および整合を示す概略説明図である。
【図9】変更制御および整合を示す概略説明図である。
【図10】連続的なバージョン開発の第一例を示す概略
説明図である。
【図11】修正した連続的なバージョン開発の第二例を
示す概略説明図である。
【図12】並行バージョン開発の第三例を示す概略説明
図である。
【図13】本発明のフローチャート実行を示すフローチ
ャート図である。
【図14】図13のフローチャートの後半である。
【図15】本発明で使用された含意試験を示すフローチ
ャート図である。
【符号の説明】
8 データ処理システム 10 LAN 12 個別コンピュータ 14 記憶装置 16 プリンタ 18 メインフレーム・コンピュータ 20 記憶装置 22 通信リンク 24 通信リンク 26 通信コントローラ 28 ゲートウェイ・サーバ 30 個別コンピュータ 34 通信リンク 200 ライブラリ・マネージャ 202 ユーザ 206 バージョン履歴データベース 208 構造データベース 209 バージョン内容データバース
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ステイシー・レニー・ジョインズ アメリカ合衆国27606、ノース・カロライ ナ州、ラレイ、エイベント・フェリー・ロ ード、4249−1

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】複数のバージョンから、ベースライン・バ
    ージョンに対してユーザが示した変更を厳密に含む、デ
    ータ処理システムにおける1つの目標バージョンを選択
    するための方法であって、 変更のための理由の集合を特定するステップと、上記変
    更のための理由の集合における少なくとも1つの理由と
    関連した、上記複数のバージョンの部分集合を有する、
    全てのバージョンの集合を判定するステップと、 上記全てのバージョンの集合における子孫を有さない、
    上記全てのバージョンの集合におけるバージョンを有す
    る、目標の集合を判定するステップと、 上記ベースライン・バージョンの子孫で、上記目標の集
    合における1つのバージョンを祖先として有する上記全
    てのバージョンの集合に含まず、上記複数のバージョン
    におけるバージョンを有する、紛失バージョンの集合を
    判定するステップと、 上記目標の集合が単独のバージョンのみ有し、上記紛失
    バージョンの集合が空であるなら上記目標バージョンで
    あり、上記バージョンの集合の上記単独バージョンは上
    記目標バージョンであることを判定するステップと、を
    有することを特徴とする1つの目標バージョンを選択す
    るための方法。
  2. 【請求項2】ユーザに結果のメッセージを返答するステ
    ップを、さらに有することを特徴とする、請求項1に記
    載の方法。
  3. 【請求項3】上記メッセージが不完全な結果なら、該不
    完全な結果を生じた紛失理由を列挙するステップを、さ
    らに有することを特徴とする、請求項2に記載の方法。
  4. 【請求項4】上記目標の集合が2つ以上のバージョンを
    有するなら、ユーザにエラー・メッセージを返答するス
    テップを、さらに有することを特徴とする、請求項2に
    記載の方法。
  5. 【請求項5】複数のバージョンから、ベースライン・バ
    ージョンに対してユーザが示した変更を含む、データ・
    プロセッサにおける1つの目標バージョンを選択するた
    めのシステムであって、 変更のための理由の集合を特定する手段と、 上記変更のための理由の集合における少なくとも1つの
    理由と関連した、上記複数のバージョンの部分集合を有
    する、全てのバージョンの集合を判定する手段と、上記
    全てのバージョンの集合における子孫を有さず、上記全
    てのバージョンの集合のバージョンを有する目標の集合
    を判定する手段と、 上記ベースライン・バージョンの子孫で、上記目標の集
    合における1つのバージョンを祖先として有する全ての
    バージョンの上記集合に含まず、上記複数のバージョン
    におけるバージョンを有する紛失バージョンの集合を判
    定する手段と、 上記目標の集合が単独のバージョンのみ有し、上記紛失
    バージョンの集合が空であるなら上記目標バージョンで
    あり、上記バージョンの集合の上記単独バージョンは上
    記目標バージョンであることを判定する手段と、を有す
    ることを特徴とする1つの目標バージョンを選択するた
    めのシステム。
  6. 【請求項6】ユーザに結果のメッセージを返答する手段
    を、さらに有することを特徴とする、請求項5に記載の
    システム。
  7. 【請求項7】上記メッセージが不完全な結果なら、該不
    完全な結果を生じた紛失理由を列挙する手段を、さらに
    有することを特徴とする、請求項6に記載のシステム。
  8. 【請求項8】上記目標の集合が2つ以上のバージョンを
    有するなら、ユーザにエラー・メッセージを返答する手
    段を、さらに有することを特徴とする、請求項6に記載
    のシステム。
  9. 【請求項9】ベースライン・バージョンに対してユーザ
    が示した変更を含む、データ・プロセッサにおける1つ
    の目標バージョンを複数のバージョンから選択するため
    の、コンピュータで読取り可能な媒体に記録したコンピ
    ュータ・プログラム製品であって、 変更のための理由の集合を特定するコンピュータで読取
    り可能な手段と、上記変更のための理由の集合における
    少なくとも1つの理由と関連した、上記複数のバージョ
    ンの部分集合を有する、全てのバージョンの集合を判定
    するコンピュータで読取り可能な手段と、 上記全てのバージョンの集合における子孫を有さず、上
    記全てのバージョンの集合のバージョンを有する目標の
    集合を判定するコンピュータで読取り可能な手段と、 上記ベースライン・バージョンの子孫で、上記目標の集
    合における1つのバージョンを祖先として有する全ての
    バージョンの上記集合に含まず、上記複数のバージョン
    におけるバージョンを有する紛失バージョンの集合を判
    定するコンピュータで読取り可能な手段と、 上記目標の集合が単独のバージョンのみ有し、上記紛失
    バージョンの集合が空であるなら上記目標バージョンで
    あり、上記バージョンの集合の上記単独バージョンは上
    記目標バージョンであることを判定するコンピュータで
    読取り可能な手段と、を有することを特徴とする、1つ
    の目標バージョンを選択するためのコンピュータで読取
    り可能な媒体に記録したコンピュータ・プログラム製
    品。
  10. 【請求項10】ユーザに結果のメッセージを返答するた
    めの、コンピュータで読取り可能な手段を、さらに有す
    ることを特徴とする、請求項9に記載のコンピュータ・
    プログラム製品。
  11. 【請求項11】上記メッセージが不完全な結果なら、該
    不完全な結果を生じた紛失理由を列挙するコンピュータ
    で読取り可能な手段を、さらに有することを特徴とす
    る、請求項10に記載のコンピュータ・プログラム製
    品。
  12. 【請求項12】上記目標の集合が2つ以上のバージョン
    を有するなら、ユーザにエラー・メッセージを返答する
    コンピュータで読取り可能な手段を、さらに有すること
    を特徴とする、請求項11に記載のコンピュータ・プロ
    グラム製品。
JP9128686A 1996-06-10 1997-05-19 1つの目標バージョンを選択するための方法およびシステム Pending JPH1083283A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/665,030 US5729744A (en) 1996-06-10 1996-06-10 Method and system of enhanced versioning control of objects in a data processing system using change control information which includes reasons for changes
US08/665030 1996-06-10

Publications (1)

Publication Number Publication Date
JPH1083283A true JPH1083283A (ja) 1998-03-31

Family

ID=24668429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9128686A Pending JPH1083283A (ja) 1996-06-10 1997-05-19 1つの目標バージョンを選択するための方法およびシステム

Country Status (2)

Country Link
US (1) US5729744A (ja)
JP (1) JPH1083283A (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128380A (ja) * 1995-10-30 1997-05-16 Matsushita Electric Ind Co Ltd 文書蓄積管理システム
US5946696A (en) * 1996-05-31 1999-08-31 Microsoft Corporation Object property lists
US5898825A (en) * 1996-09-24 1999-04-27 International Business Machines Corporation Failed command translation technique
US6513154B1 (en) 1996-10-21 2003-01-28 John R. Porterfield System and method for testing of computer programs in programming effort
US6175855B1 (en) * 1996-12-20 2001-01-16 Siemens Aktiengesellschaft Method for instantiating a class having different versions
US5974254A (en) * 1997-06-06 1999-10-26 National Instruments Corporation Method for detecting differences between graphical programs
US7043537B1 (en) * 1997-09-05 2006-05-09 Cisco Technology, Inc System and method for remote device management
US5963955A (en) * 1997-09-30 1999-10-05 International Business Machines Corporation Bridge for exporting and importing objects between object oriented programming environments
US6003042A (en) * 1997-09-30 1999-12-14 International Business Machines Corporation Systems, methods and computer programs products for storing a new version of an Envy Library file in a teamconnection object oriented programming environment
US6195765B1 (en) * 1998-01-05 2001-02-27 Electronic Data Systems Corporation System and method for testing an application program
US6295608B1 (en) * 1998-02-17 2001-09-25 Microsoft Corporation Optimized allocation of data elements among cache lines
US6189069B1 (en) 1998-02-17 2001-02-13 Microsoft Corporation Optimized logging of data elements to a data storage device
JPH11282779A (ja) * 1998-03-27 1999-10-15 Matsushita Electric Ind Co Ltd ファイル配信システム
US6626953B2 (en) * 1998-04-10 2003-09-30 Cisco Technology, Inc. System and method for retrieving software release information
US6289503B1 (en) 1998-09-24 2001-09-11 International Business Machines Corporation System and method for trace verification
US6442516B1 (en) * 1999-01-29 2002-08-27 International Business Machines Corporation Software tool to perform concurrent national language translation builds
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
AU5273100A (en) * 1999-05-17 2000-12-05 Foxboro Company, The Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
WO2002029550A2 (en) * 2000-10-04 2002-04-11 Siemens Energy & Automation, Inc. Manufacturing system software version management
US7131112B1 (en) * 2000-11-21 2006-10-31 Microsoft Corporation Managing code changes for software development
US20020161860A1 (en) * 2001-02-28 2002-10-31 Benjamin Godlin Method and system for differential distributed data file storage, management and access
US6931573B2 (en) 2001-08-13 2005-08-16 International Business Machines Corporation Automated audit methodology for design
US7333992B2 (en) 2003-05-22 2008-02-19 Microsoft Corporation System and method for identifying and storing changes made to a table
CA2434644A1 (fr) * 2003-06-30 2004-12-30 Archidata Inc. Systeme pour la certification des plans et devis produits par les professionnels et les maitres d'ouvrage de la construction
US20050086642A1 (en) * 2003-10-15 2005-04-21 Martin Runte Tools providing for backwards compatible software
WO2005103696A2 (en) 2004-03-29 2005-11-03 Microsoft Corporation Systems and methods for versioning based triggers
US7734601B2 (en) * 2005-02-09 2010-06-08 Sap Ag Integration of digital asset management with intellectual property management
US20060179033A1 (en) * 2005-02-09 2006-08-10 Oliver Stanke Method and system for digital asset management
US7840534B2 (en) * 2005-02-09 2010-11-23 Sap Ag Integration of a digital asset management system with a network sales system
GB2424497A (en) * 2005-03-24 2006-09-27 Samsung Electronics Co Ltd Dependency analysis in a software compiler
US20070006130A1 (en) * 2005-06-02 2007-01-04 Arnold Stamler Model oriented method of automatically detecting alterations in the design of a software system
US20070016628A1 (en) * 2005-07-14 2007-01-18 Lenevo (Singapore) Pte.Ltd. Classification system for versionable objects
US8650539B2 (en) * 2006-12-21 2014-02-11 Siemens Aktiengesellschaft Method for mapping the structure of a complex software product
US8856088B2 (en) * 2008-04-01 2014-10-07 Microsoft Corporation Application-managed file versioning
JP5274652B2 (ja) 2009-03-30 2013-08-28 株式会社日立製作所 原因分析構成変更のための方法および装置
US11403269B2 (en) * 2018-06-02 2022-08-02 Western Digital Technologies, Inc. Versioning validation for data transfer between heterogeneous data stores
CN111694843B (zh) * 2020-05-28 2023-09-22 平安科技(深圳)有限公司 缺失号码检测方法、装置、电子设备及存储介质
CN113254426B (zh) * 2021-07-13 2021-10-29 杰为软件系统(深圳)有限公司 一种基于分支和基线的cad数据分布式版本控制系统
US20240069907A1 (en) * 2022-08-24 2024-02-29 Microsoft Technology Licensing, Llc Software development context history operations

Family Cites Families (7)

* 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
US5317729A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Method for the storage of multi-versioned data with retrieval based on searched query
US5287496A (en) * 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing
US5586304A (en) * 1994-09-08 1996-12-17 Compaq Computer Corporation Automatic computer upgrading
CA2137492C (en) * 1994-12-07 1998-07-28 Lenny Kwok-Ming Hon System for and method of providing delta-versioning of the contents of pcte file objects
US5581755A (en) * 1995-01-31 1996-12-03 Unisys Corporation Method for maintaining a history of system data and processes for an enterprise

Also Published As

Publication number Publication date
US5729744A (en) 1998-03-17

Similar Documents

Publication Publication Date Title
US5729744A (en) Method and system of enhanced versioning control of objects in a data processing system using change control information which includes reasons for changes
US6049799A (en) Document link management using directory services
KR100655124B1 (ko) 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트를촉진하는 데이타베이스
KR0169327B1 (ko) 다중 개발환경에서 변환제어용 방법 및 장치
Saltzer Naming and binding of objects
KR100513551B1 (ko) 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트방법및 시스템
US6088693A (en) Data management system for file and database management
US6757893B1 (en) Version control system for software code
US4945474A (en) Method for restoring a database after I/O error employing write-ahead logging protocols
US5787413A (en) C++ classes for a digital library
US5826265A (en) Data management system having shared libraries
US6367075B1 (en) Method and apparatus for producing instructions describing the removal of updates to a computer system
RU2210803C2 (ru) Компьютерное устройство для выполнения прикладных программ
US6865655B1 (en) Methods and apparatus for backing up and restoring data portions stored in client computer systems
US5675802A (en) Version control system for geographically distributed software development
US5956513A (en) System and method for automated software build control
US5627967A (en) Automated generation on file access control system commands in a data processing system with front end processing of a master list
US6374267B1 (en) Database backup system and method utilizing numerically identified files for incremental dumping
US7152224B1 (en) Versioned project associations
US5832511A (en) Workgroup network manager for controlling the operation of workstations within the computer network
US20040260974A1 (en) Method and system for undoing changes in a software configuration management system
EP0433269A2 (en) Volume verification method and apparatus
EP0421623A2 (en) Portable and dynamic distributed applications architecture
EP0549510A2 (en) System and method for computer aided software engineering
CN1329840C (zh) 文件归档