ここでは,関連づけて管理している文書の集合全体としてのバージョンを管理したり,要素ごとにバージョンを指定して集合全体の構成を管理したりする方法について説明します。
バージョン付き構成管理コンテナを利用した構成管理では,edmClass_ContainerVersionクラス,関連オブジェクトのDMAクラスおよびバージョン管理のDMAクラスを使用します。edmClass_ContainerVersionクラスを基に作成するContainerVersionオブジェクトは,コンテナにバージョンを付けて包含するオブジェクトを構成管理できるコンテナです。ContainerVersionオブジェクトのことを特にバージョン付き構成管理コンテナと呼びます。
バージョン付き構成管理コンテナを利用した構成管理で使用するDMAクラスを継承関係に基づいて次の図に示します。
図A-18 バージョン付き構成管理コンテナを利用した構成管理で使用するDMAクラス
バージョン付き構成管理コンテナ(ContainerVersionオブジェクト)には,次に示す機能があります。
edmClass_ContainerVersionクラスは,dmaClass_Versionableクラスを継承します。したがって,文書をバージョン管理するのと同様にConfigurationHistoryオブジェクト,VersionSeriesオブジェクトおよびVersionDescriptionオブジェクトを使用してバージョン管理できます。バージョン管理の方法の詳細については,「付録A.4(2) バージョンの管理方法」を参照してください。
edmClass_ContainerVersionクラスは,dmaClass_Containableクラスからオブジェクトに「包含されるオブジェクト」となれるプロパティ(dmaProp_ParentプロパティおよびdmaProp_Containersプロパティ)を継承しています。また,構成管理型で包含される構成要素となれるプロパティ(edmProp_VTContainersプロパティ)も保持します。したがって,バージョン付き構成管理コンテナは,すべての種類のコンテナ(ContainerオブジェクトおよびContainerVersionオブジェクト)に包含されることができます。
バージョン付き構成管理コンテナは,文書のバージョンの追加と同じ方法でバージョンアップできます。
バージョン付き構成管理コンテナのバージョンをチェックアウトすると,次に示すDMAオブジェクトがコピーされてReservationオブジェクトに接続されます。
コピーされたReferentialContainmentRelationshipオブジェクトおよびVersionTraceableContainmentRelationshipオブジェクトは,ContainerVersionオブジェクトが永続化されるときに一緒に永続化されます。バージョン付き構成管理コンテナのバージョンのチェックアウト時のDMAオブジェクトの関係を次の図に示します。なお,バージョン付き構成管理コンテナが文書を包含している場合を例にしています。
図A-19 バージョン付き構成管理コンテナのバージョンのチェックアウト時のDMAオブジェクトの関係
ReferentialContainmentRelationshipオブジェクトまたはVersionTraceableContainmentRelationshipオブジェクトを介して包含されるオブジェクトは,複数のコンテナに同時に包含されることができます。しかし,DirectContainmentRelationshipオブジェクトを介して包含されるオブジェクトは,複数のコンテナに直接型で同時に包含されることはありません。そのため,DirectContainmentRelationshipオブジェクトは,チェックアウト時にコピーされません。
バージョン付き構成管理コンテナのバージョン管理機能と構成管理コンテナ機能を併用すると,バージョン付き構成管理コンテナを一つの概念文書のように扱って,コンテナの内の構成管理および構成要素集合のバージョン管理ができます。
バージョン付き構成管理コンテナに新規バージョンが追加されたあと,構成要素のバージョンが追加されると,構成管理モードがFIXモードかFLOATINGモードかによって,次の図のようにバージョン付き構成管理コンテナに包含されるオブジェクトが決まります。
図A-20 バージョン付き構成管理コンテナの構成要素のバージョンの追加の例
図A-20は,バージョン付き構成管理コンテナが構成管理型で文書(VersionTracedDocVersion)を包含しており,構成要素がV1からV3までバージョンアップしている例です。ContainerVersionオブジェクトのV1は,文書Aと文書BのV1をFIXモードで包含しています。ContainerVersionオブジェクトのV2は,文書Aと文書BのV2をFIXモードで包含しています。ContainerVersionのV3は,文書Aと文書BをFLOATINGモードで包含しており,現在V3が最新バージョンなので,V3の文書を包含しています。このように,複数の文書を構成管理型でバージョン付き構成管理コンテナに格納すると,コンテナごとに構成要素のバージョンを確定し,コンテナをバージョンアップすることによって,構成要素集合のバージョンを管理できます。
別のバージョン付き構成管理コンテナ(ContainerVersionオブジェクト)も同様にバージョン付き構成管理コンテナで構成管理できます。
バージョン付き構成管理コンテナには,複数の異なる関連オブジェクトを使用して文書を格納できます。関連オブジェクトをどのように使い分けて文書を管理するか,例を次の図に示します。
図A-21 バージョン付き構成管理コンテナに格納された文書の管理例
文書Aと文書BはVersionTraceableContainmentRelationshipオブジェクトを介してバージョン付き構成管理コンテナのすべてのバージョンに渡って包含され,構成管理される文書です。文書CはReferentialContainmentRelationshipオブジェクトを介してすべてのバージョン付き構成管理コンテナのバージョンに渡って包含される文書です。文書Dと文書EはDirectContainmentRelationshipオブジェクトを介して特定のバージョンのバージョン付き構成管理コンテナにだけ包含される文書です。
ある研究論文をバージョン付き構成管理コンテナで管理する例を図A-21に当てはめて説明します。次のような三つのバージョン付き構成管理コンテナのバージョンがあるとします。
そして,研究論文が次のような複数の文書で構成されているとします。
「本論.doc」および「結論.doc」は,すべてのバージョンに渡って包含される内容の文書であり,セミナー発表と論文完成および学会発表のタイミングでバージョンを確定して管理する文書です。したがって,図A-21の文書オブジェクトAとBのようにVersionTraceableContainmentRelationshipオブジェクトを介して格納します。
「テーマ.doc」は研究論文の概要説明です。すべてのバージョンのバージョン付き構成管理コンテナに渡って包含される内容の文書で,一度作成してしまえば更新する必要のない文書です。したがって,図A-21の文書オブジェクトCのようにReferentialContainmentRelationshipオブジェクトを介して格納します。
「発表.doc」は,セミナーと学会があるときだけに臨時に作成した文書で,V1とV3のバージョン付き構成管理コンテナにだけ必要な文書です。したがって,図A-21の文書DとEのようにDirectContainmentRelationshipオブジェクトを介してそれぞれのバージョン付き構成管理コンテナに格納します。