付録A.6 バージョン付き構成管理コンテナを利用した構成管理

ここでは,関連づけて管理している文書の集合全体としてのバージョンを管理したり,要素ごとにバージョンを指定して集合全体の構成を管理したりする方法について説明します。

<この項の構成>
(1) バージョン付き構成管理コンテナを利用した構成管理で使用するDMAクラス
(2) バージョン付き構成管理コンテナの機能
(3) バージョン付き構成管理コンテナのバージョンの追加
(4) バージョン付き構成管理コンテナのバージョンの追加と構成管理
(5) バージョン付き構成管理コンテナに格納されたオブジェクトの管理例

(1) バージョン付き構成管理コンテナを利用した構成管理で使用するDMAクラス

バージョン付き構成管理コンテナを利用した構成管理では,edmClass_ContainerVersionクラス,関連オブジェクトのDMAクラスおよびバージョン管理のDMAクラスを使用します。edmClass_ContainerVersionクラスを基に作成するContainerVersionオブジェクトは,コンテナにバージョンを付けて包含するオブジェクトを構成管理できるコンテナです。ContainerVersionオブジェクトのことを特にバージョン付き構成管理コンテナと呼びます。

バージョン付き構成管理コンテナを利用した構成管理で使用するDMAクラスを継承関係に基づいて次の図に示します。

図A-18 バージョン付き構成管理コンテナを利用した構成管理で使用するDMAクラス

[図データ]

(2) バージョン付き構成管理コンテナの機能

バージョン付き構成管理コンテナ(ContainerVersionオブジェクト)には,次に示す機能があります。

(a) 包含するオブジェクトとしての機能
コンテナの機能のためのプロパティ
  • dmaProp_Childrenプロパティ
    直接型のコンテインメントで格納されるオブジェクトとの関連を表すDirectContainmentRelationshipオブジェクトを要素とするEnumerationOfObjectオブジェクトへのリファレンスが格納されます。
  • dmaProp_Containeesプロパティ
    参照型で格納されるオブジェクトとの関連を表すReferentialContainmentRelationshipオブジェクトを要素とするEnumerationOfObjectオブジェクトへのリファレンスが格納されます。
したがって,ContainerVersionオブジェクトは,直接型または参照型でほかのオブジェクトを包含するコンテナの機能を持ちます。
また,ContainerVersionオブジェクトは,次に示す構成管理コンテナ機能を果たすためのプロパティを保持します。
構成管理コンテナ機能のためのプロパティ
  • edmProp_VTContaineesプロパティ
    構成管理されて格納される構成要素との関連を表すVersionTraceableContainmentRelationshipオブジェクトを要素とするEnumerationOfObjectオブジェクトへのリファレンスが格納されます。
したがって,ContainerVersionオブジェクトは,構成管理型でほかのオブジェクトを包含する構成管理コンテナの機能を持ちます。
(b) バージョン管理されるオブジェクトとしての機能

edmClass_ContainerVersionクラスは,dmaClass_Versionableクラスを継承します。したがって,文書をバージョン管理するのと同様にConfigurationHistoryオブジェクト,VersionSeriesオブジェクトおよびVersionDescriptionオブジェクトを使用してバージョン管理できます。バージョン管理の方法の詳細については,「付録A.4(2) バージョンの管理方法」を参照してください。

(c) 包含されるオブジェクトとしての機能

edmClass_ContainerVersionクラスは,dmaClass_Containableクラスからオブジェクトに「包含されるオブジェクト」となれるプロパティ(dmaProp_ParentプロパティおよびdmaProp_Containersプロパティ)を継承しています。また,構成管理型で包含される構成要素となれるプロパティ(edmProp_VTContainersプロパティ)も保持します。したがって,バージョン付き構成管理コンテナは,すべての種類のコンテナ(ContainerオブジェクトおよびContainerVersionオブジェクト)に包含されることができます。

(3) バージョン付き構成管理コンテナのバージョンの追加

バージョン付き構成管理コンテナは,文書のバージョンの追加と同じ方法でバージョンアップできます。

(a) チェックアウト時にコピーされるDMAオブジェクト

バージョン付き構成管理コンテナのバージョンをチェックアウトすると,次に示すDMAオブジェクトがコピーされてReservationオブジェクトに接続されます。

コピーされたReferentialContainmentRelationshipオブジェクトおよびVersionTraceableContainmentRelationshipオブジェクトは,ContainerVersionオブジェクトが永続化されるときに一緒に永続化されます。バージョン付き構成管理コンテナのバージョンのチェックアウト時のDMAオブジェクトの関係を次の図に示します。なお,バージョン付き構成管理コンテナが文書を包含している場合を例にしています。

図A-19 バージョン付き構成管理コンテナのバージョンのチェックアウト時のDMAオブジェクトの関係

[図データ]

ReferentialContainmentRelationshipオブジェクトまたはVersionTraceableContainmentRelationshipオブジェクトを介して包含されるオブジェクトは,複数のコンテナに同時に包含されることができます。しかし,DirectContainmentRelationshipオブジェクトを介して包含されるオブジェクトは,複数のコンテナに直接型で同時に包含されることはありません。そのため,DirectContainmentRelationshipオブジェクトは,チェックアウト時にコピーされません。

(4) バージョン付き構成管理コンテナのバージョンの追加と構成管理

バージョン付き構成管理コンテナのバージョン管理機能と構成管理コンテナ機能を併用すると,バージョン付き構成管理コンテナを一つの概念文書のように扱って,コンテナの内の構成管理および構成要素集合のバージョン管理ができます。

バージョン付き構成管理コンテナに新規バージョンが追加されたあと,構成要素のバージョンが追加されると,構成管理モードが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オブジェクト)も同様にバージョン付き構成管理コンテナで構成管理できます。

(5) バージョン付き構成管理コンテナに格納されたオブジェクトの管理例

バージョン付き構成管理コンテナには,複数の異なる関連オブジェクトを使用して文書を格納できます。関連オブジェクトをどのように使い分けて文書を管理するか,例を次の図に示します。

図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オブジェクトを介してそれぞれのバージョン付き構成管理コンテナに格納します。