ソフトウェア構成管理(ソフトウェアこうせいかんり、: software configuration managementSCM)は、ソフトウェア開発プロジェクトをその成果物を通して制御・管理する方法論である。ソースコードや文書などの成果物の変更履歴を管理し、製品のバージョンやリビジョンに個々の成果物のどのバージョンが対応しているかを識別し、任意のバージョンの製品を再現可能とする。

バージョン管理システムは SCM のためのツールであるが、バージョン管理システムそのものを SCM と呼ぶこともある。しかし、一般にソフトウェア構成管理はバージョン管理とは等価ではなく、バージョン管理を制御するマネジメント的要素が含まれる。

歴史

編集

当初、ソフトウェア構成管理(SCM)は単に CM構成管理)と呼ばれており、本来はハードウェア開発と製造制御のためのものだった。以下では主にSCMツールの登場を時系列に並べる。

用語

編集

SCMを意味する用語は非常に様々でシステムによって異なる。また、論争の種にもなっている。

研究者だけでなく、ツールベンダーも顧客の囲い込みを狙って、故意に他と異なる用語を使ったり、頭字語の意味を違う言葉の略であるとしたりする。

  • software configuration management:現在はIBMの一部となっているラショナル(さらに以前は Atria)が使っていた用語
  • software change and configuration management(SCCM):ガートナーでの用語。ただし、単に変更管理を含めた広義のソフトウェア構成管理を指しているとも考えられる。
  • source configuration management
  • revision control
  • version controlバージョン管理システム
  • source control

国際規格では、ISO/IEC TR 15846:1998 Information technology -- Software life cycle processes -- Configuration Managementが標準技術文書(technical report)として1998年に発行している。しかし試用のち、2007年に廃止している。軍関連のソフトウェア開発部門での利用はあったが、他の分野では詳細すぎて仕立て(tailoring)の出発点としては重すぎるとの背景があった。

目的

編集

SCMの一般的な目的は次の通り:

  • 構成の範囲・要素 - 構成管理対象は何か。
  • 構成の識別 - 修正を施すべきコードはどれか?
  • 構成の制御 - 製品のリリースとその修正を制御する
  • 状態の記録 - コンポーネントの状態を記録し報告する
  • レビュー - コンポーネント間の一貫性と完全性を保証する
  • ビルド管理 - ビルドのための対象ファイル、プロセスとツールを管理する
  • プロセス管理 - 組織としての開発手法を厳守する
  • 環境管理 - システムの基盤となっているハードウェアおよびソフトウェアを管理する
  • チームワーク - 開発に関するチーム内のやりとりを促進する
  • バグトラッキング - 全ての障害について対処状況を追跡可能とし、かつコード修正と対応付ける

構成管理ツール

編集

構成管理ツールの動作には「PUSH型」と「PULL型」がある。以下その違いを説明する。

  • PUSH型は「構成管理ツールから機器へ設定を行う」方式。機器側に「エージェント」と呼ばれる特別なプログラムを必要とせず動作する(エージェントレス)ので、サポート対象機器が限定されにくいというメリットがある。
  • PULL型は「設定対象の機器が構成管理ツールから情報を取得して自身を設定する」方式。機器側に構成管理ツールと通信する「エージェント」が必要なため、エージェントが動作しない機器はサポートされないん。なお、エージェント機能を外部のサーバで実行し、外部のサーバから対象機器にPUSH型で設定を行う「外部エージェント」方式もある。

参考文献

編集
  • Berczuk, Appleton; (2003). Software Configuration Management Patterns: Effective TeamWork, Practical Integration (1st ed.). Addison-Wesley. ISBN 0-201-74117-2.
    • ステファン・P・バーチャック(著)、ブレッド・アップルトン(著)、宗雅彦(訳)『パターンによるソフトウェア構成管理』、翔泳社、2006年、ISBN 9784798112596

関連項目

編集

外部リンク

編集