BSA / Establishing a Baseline


ベースラインの確立(Establishing a Baseline)

要約

構成管理の人たちがよく用いる用語についてまとめる。これは、外部の派生物を管理するときにべんり。依存関係や前提要件を管理することこそが構成管理の肝。どんなにシンプルなソフトウェアであっても、他のコンポーネントの特定のバージョンに依存していたりするものだ。

構成管理の用語集

プログラムファミリー
すべてのプロダクトコンポーネントの全バージョンを含む一式。この章で扱うのは、外部に配布できる状態のサブセット。
コンポーネント/アーティファクト
システム内で特定可能なエンティティの最小単位。顧客向けに配布するコンポーネント(アーティファクト)には、それぞれに個別の識別子やバージョンが必要だ。開発チームが使うようなツールを利用すれば、もっと細かい粒度(関数とかメソッドのレベル)でコンポーネントを管理できる。よく管理されているプロジェクトチームでは、ソースコード以外のものも構成管理の対象にする。インターフェイスやテスト計画、テストケース、開発者向けドキュメント、エンドユーザー向けドキュメント、MRDなどなど。置き換え可能なコンポーネントには、できるだけ一意なIDをつけておくことをお勧めする。
バージョン
FIXされた(フリーズした)コンポーネントやその他のアーティファクト。ソフトウェアについては、ソースコードのバージョンとその派生物(オブジェクトコードやAPIドキュメントなど)のバージョンを管理することが重要。そうしないと、それらを配布できないからである。派生物は、ソースから一意に再作成できる。内部的なバージョンと外部向けのバージョンをそれぞれ別に管理しなければならないこともあるだろう。
リビジョン
新しいバージョンのコンポーネントやアーティファクトで、旧版を置き換える意図のあるもの。リビジョンは一般的に、リニアに並ぶもの。シーケンシャルな番号(ビルド番号など)でこれを表すことが多い。
バリエーション
コンポーネントやアーティファクトの別実装。たとえば、同じタスクを別のOS上でこなすために作られたソフトウェアコンポーネント(微妙に異なる実装が求められる)など。バリエーションは、一連のシーケンス上にあるものではなく、あくまでも代替物。
ディストリビューション
顧客への配布目的で作られたバージョン。複数のコンポーネントやアーティファクトからなることが多い。その定義上、プロダクトにはそのコンポーネント群の一覧や構成情報が含まれている。
リリース
名前やバージョンが付与されたコンポーネント(アーティファクト)群。顧客への配布のために作られるのが一般的(ターキテクトはこれを「プロダクト」とみなすことが多いが、マーケテクトがいう「プロダクト」はこれとは微妙に異なる)。リリースはシンプルかもしれないし複雑かもしれない。再帰構造になっていることが多い。リビジョンとは異なり、リリースは必ずしもリニアになっているとは限らない(メジャーシステムへのパッチなど)。

依存関係を管理するもっとも簡単な方法は、「個々のリリースに対して、必要とするすべてのコンポーネントの適切なバージョンをきちんと含めるようにする」こと。 とはいえ、現実的にはそれは不可能。ライセンスの問題もあるだろうし、すべてのリリースに全コンポーネントを含めるとは限らないからだ。 この問題については、あとで詳しくとりあげる。

担当者のつぶやき

みんなの突っ込み