構成管理

構成管理（こうせいかんり、configuration management、CM）とは、システムのライフサイクルにわたる範囲、性能、機能的および物理的要件、設計、操作に関する情報などを確立し維持する作業またはプロセスである。形態管理、コンフィギュレーションマネジメントとも。CMプロセスは、武器システム、車両、情報システムなどの複雑なシステムを管理するため、軍事工学組織で広く使われている。軍事以外では、ITILやISO/IEC 20000で定義されるようなITサービス管理、土木工学や生産技術の分野でのドメインモデルでも使われており、例えば道路・橋・運河・ダム・建築物の建設や保守管理がある。

 はじめに 
システムのライフサイクルに構成管理を適用するとき、その範囲・性能・機能・構成要素・物理的な属性の視認性と制御を提供する。構成管理はシステムが意図通りに機能することを確認し、計画したライフサイクルに対応すべく十分詳細に識別され文書化することがある。構成要素の変更、機能の改訂、性能・信頼性・保守性の改善、システムの寿命を延ばす、コスト削減、危険性や問題の低減、欠陥の修正など、役に立つシステムの変更やシステム情報の整然とした管理を容易にする。構成管理は相対的に低いコストで実施でき、多くのコスト削減を実現できる。人命に影響を与えるシステムでは、構成管理の欠如や実施がまずい場合、結果として人命が失われたり大きな事故を引き起こすなどの壊滅的結果を引き起こす可能性がある。

構成管理ではシステムの変更を効率的に制御するため、部品間、サブシステム間、システム間の機能的関係を強調する。それにより、変更案が逆効果を最小化するよう考慮しているかを体系的に検証可能となる。システムの変更は、一貫性を保証するよう標準化した体系的手法を使って提案し、評価し、実装する。変更案は予想されるシステム全体への影響について評価する。構成管理は変更を規定通りに行ったかを検証し、部品やシステムの文書が実際の構成を反映していることを確認する。完全性の高い構成管理では、部品毎、サブシステム毎、システム毎についての全システム情報が実体を反映するよう対策をとる。

構造化した構成管理では、文書（要求仕様、設計書、試験仕様、受納書など）が実際の設計を正確に表しかつ一貫していることを保証する。構成管理を実施しない場合、文書が存在しても実体と一貫していないことが多い。そのため、後に設計に変更を施す際、関係者が実体を反映させるべく何度も開発文書を改訂する必要が生じる。構成管理を行えば、そのようなリバースエンジニアリング的な無駄な作業を減らすことができる。

 歴史 
形式的管理手法としての構成管理は、アメリカ空軍 (USAF) がアメリカ国防総省 (DoD) のために1950年代に開発したもので、当初は物質的な材料についての技術的管理技法だった。その後様々な産業に広まっていった。DoDが1970年代に発行した「480シリーズ」と呼ばれるMIL規格（MIL-STD-480、MIL-STD-481）を策定していた1960年代末、構成管理が独立した技術的規範となっていった。1991年、480シリーズは MIL–STD–973 という1つの規格としてまとめ、さらに標準化団体が策定した一般の工業規格を取り入れて軍独自の規格の数を減らすため、 MIL–HDBK–61 へと改訂した。これが構成管理の国際標準 ANSI–EIA–649–1998 へと発展。2013年現在、広く採用されている構成管理のコンセプトとしては、システム工学 (SE)、Integrated Logistics Support (ILS)、能力成熟度モデル統合 (CMMI)、ISO 9000、PRINCE2プロジェクト管理方法論、COBIT、Information Technology Infrastructure Library (ITIL)、アプリケーション・ライフサイクル・マネジメントなどがある。構成管理を図書館の司書のような活動と捉え、変更を制御する側面を変革管理として独立して捉えることもある。ソフトウェアの構成管理では、ISO/IEC TR 15846:1998 Information technology -- Software life cycle processes -- Configuration Managementが標準技術文書(technical report)として1998年に発行している。しかし試用のち、2007年に廃止している。軍関連のソフトウェア開発部門での利用はあったが、他の分野では詳細すぎて仕立て(tailoring)の出発点としては重すぎるとの背景があった。

 概要 
構成管理は変更を体系的に扱うことで、システムの完全性を長期に渡って保つ。管理・変更案の評価・変更状態の追跡に必要な方針・手順・技法・ツールを与え、システムの変更に際してシステムの構成と対応文書を維持する。構成管理計画は開発と実装における技術的・管理的方向性を与え、複雑なシステムをうまく開発・保守するために必要とされる手順・機能・サービス・ツール・プロセス・資源を提供する。システム開発においては、検収・運用・保守を通して管理者が要件を追跡することを可能にする。要求仕様や設計に対して変更を加えることは必然的に発生し、その場合はシステムの状態の正確な記録を作成し、それを承認した上で文書化しなければならない。安全に関する理想的な構成管理プロセスはシステムのライフサイクル全体にわたって適用すものである。

ハードウェアとソフトウェアの構成要素についての構成管理プロセスは、MIL–HDBK–61A や ANSI/EIA-649 で確立された5つの規則で構成されている。これらの規則は、方針手順を励行することでベースラインを確立し、変更を管理するプロセスを標準化して実行するためのものである。
 構成管理の計画と管理
 構成管理プログラムのガイドとなる正式な文書としては、人事関係、責任分担とリソース、訓練要件、（手順の定義やツールを含む）管理会議のガイドライン、ベースラインとなるプロセス、構成制御と構成現況記録、命名規則、監査とレビュー、下請け業者・供給業者への要件などがある。
 構成識別 (Configuration Identification, CI)
 ベースラインの設定と保守からなり、システムやサブシステムのアーキテクチャ、部品群、任意の時点でどういう開発が必要かなどを定義する。これをベースラインとしてシステムへのいかなる変更も識別し、文書化し、設計から配備までを監視する。そうすることで構成現況記録 (CSA) のベースとなる現況の文書を徐々に確立していく。
 構成制御
 あらゆる変更要求・提案を評価し、採用・不採用を決定するプロセス。システムの設計・ハードウェア・ソフトウェア・文書の変更を制御する。
 構成現況記録 (Configuration Status Accounting, CSA)
 構成要素（ハードウェア、ソフトウェア、ファームウェアなど）について記録・報告し、設計・製造段階でベースラインから乖離した部分を全て記録・報告するプロセス。問題が発生したとき、ベースラインとなる構成と採用された変更のうちどれが関係するかを素早く特定できるようにする。
 構成検証と監査
 個々のハードウェアやソフトウェアについて、要求仕様を満足しているか、標準規格に適合しているか、ベースラインに適合しているかといった観点でレビューを行う。構成監査では、システムおよびサブシステムをアーキテクチャ上の基準線に受け入れる前にそれらの構成文書が実際の機能や物理的特性と正しく対応しているかを検証する。

 ソフトウェア

ソフトウェア構成管理 (SCM) は本来、ソフトウェアプロジェクトにおける変更を扱う最良の解決策とされている。プロジェクトの様々な時点でソフトウェアの機能的・物理的特性を特定し、それら特性群の変更を体系的に制御することで、開発ライフサイクルを通じたソフトウェアの完全性とトレーサビリティを維持する。

SCMプロセスはさらに変更を追跡する必要性を定義し、最終的に提供されるソフトウェアがそのリリースで予定されていた機能を全て搭載しているかの検証を可能にする。SCMが正しく実施されるよう次の4つの手順を定義しなければならない。
 構成識別
 構成制御
 構成現況記録
 構成監査

これらの用語の意味するところはどういう標準を採用するかで異なるが、基本は同じである。

 構成識別は、構成項目をあらゆる観点で定義する属性群を特定するプロセスである。構成項目とはエンドユーザーが触れる製品（ソフトウェアやハードウェア）である。それらの属性群は構成管理の文書に記録され、ベースラインとなる。ある属性に変更を加える場合、それをに含めるには、定式化された構成変更制御プロセスを経なければならない。
 構成変更制御は、構成項目の属性に必要な変更を加えた際、それをベースラインに取り込むための一連の手順と承認からなる。
 構成現況記録は、それぞれの構成項目について任意の時点で対応する構成ベースラインについて記録し、報告できるようにしておくことである。
 構成監査は、機能的構成監査とに分けられる。変更を実システムに適用する際に行われる。機能的構成監査は構成項目が予定された機能や性能を満たしているかを確認するもので、物理的構成監査は構成項目が詳細な設計文書の通りに実装されているかを確認する。

 情報保証 
の観点では、構成管理はセキュリティ機能の管理と定義でき、情報システムのライフサイクルにわたってハードウェア、ソフトウェア、ファームウェア、文書、試験、試験装置、試験文書に加えられた変更を制御することでそれを保証する。情報保証における構成管理は Secure Configuration Management とも呼ばれ、ITプラットフォームおよびIT製品の性能・機能・物理的属性とそれらの置かれる環境に基づき、適切なセキュリティ機能とセキュリティ保証を使ってシステム構成状態を判定する。例えば、企業内のネットワークとインターネットを接続する部分のファイアウォールと企業内の部門間のファイアウォールでは、要求される構成が異なるかもしれない。

 保守システム 
構成管理は複雑な装備の状態への理解を維持するのに使われ、それによって高いレベルの有用性を維持しつつコストを低減させる。特に、計画された寿命を超過している装備（またはその一部）や品質レベルの低い装備が運用を妨げないと保証することを目指している。

軍では、そのような活動は "mission readiness"（任務準備）に分類され、任務の種類と利用可能な装備を特定することを含む。例えば、空母の艦載機に爆弾を装備するのか、ミサイルを装備するのかといったことである。

 OSの構成管理 
構成管理は、OSのコンフィギュレーションファイルの保守管理にも使われる。、、Puppet、Chef、 Ansibleといったシステムがある。

リアルタイムの修理や予防保守を可能とするソフトウェア  を開発したは、構成保守の理論の研究でも知られているM. Burgess, Cfengine: a site configuration engine, USENIX Computing systems, Vol8, No. 3 1995M. Burgess, On the theory of system administration, Science of Computer Programming 49, 2003. p1-46M. Burgess, Configurable immunity for evolving human-computer systems, Science of Computer Programming 51 2004, p197-213。

 予防保守 
装備の現況を理解し、どの部品が必須の要素なのかを理解することはの基本であり、そういった知識を修理や保守、企業資産管理システムで活用する。

航空機、船舶、産業機械などの複雑な装備（資産）は、多種多様な部品で構成されて役立つものになっている。その有用性は、部品が交換されるまでにどれだけ使われたか（期間、回数）などで定義される。寿命が尽きようとしている部品がどういう状態になるのかを把握することは、構成管理用ソフトウェアが発展するまでは重要な現場の仕事だった。

 予知保全 
様々な部品は電子的センサーを使ってデータを提供し、手段を提供している。それらのデータは航空機や船舶内や遠隔地でコンピュータを使って解析され、平均故障間隔などから将来の故障発生を予測するアルゴリズムを使って、システムの状態を予測するのに使われる。これがの基本である。

正確でタイムリーなデータが入手できるかは構成管理にとって重要であり、それがないとできることは限定される。運用データを捉えて各種サポート組織に配布することは、それだけで1つの産業になりつつある。

 標準規格 
 ANSI/EIA-649-1998 National Consensus Standard for Configuration Management
 EIA-649-A 2004 National Consensus Standard for Configuration Management
 TechAmerica/ANSI EIA-649-B 2011 Configuration Management Standard
 ISO 10007:2003 Quality management systems - Guidelines for configuration management
 Federal Standard 1037C
 GEIA Standard 836-2002 Configuration Management Data Exchange and Interoperability
 IEEE 829 Standard for Software Test Documentation
 MIL-STD-973 Configuration Management （2000年9月20日にキャンセルされた）
 STANAG 4159 NATO Materiel Configuration Management Policy and Procedures for Multinational Joint Projects
 STANAG 4427 Introduction of Allied Configuration Management Publications (ACMPs)
 CMMI CMMI for Development, Version 1.2 CONFIGURATION MANAGEMENT
 CMII-100E CMII Standard for Enterprise Configuration Management

 ガイドライン 
 828-2012 - IEEEの2013年現在有効な規格（従来のものを置換またはサポート）
 MIL-HDBK-61A CONFIGURATION MANAGEMENT GUIDANCE 7 February 2001
 ISO 10007 Quality management - Guidelines for configuration management
 GEIA-HB-649 - Implementation Guide for Configuration Management
 ANSI/EIA-649-1998 National Consensus Standard for Configuration Management
 EIA-836 Consensus Standard for Configuration Management Data Exchange and Interoperability
 ANSI/EIA-632-1998 Processes for Engineering a System
 MIL-STD-3046 (ARMY) Interim Standard on Configuration Management, 6 March 2013

 建設業 
構成管理は、非常に複雑で大量の各種建材などを使用する大規模な建設プロジェクトでも使われている。設計変更もしばしば発生するので構成管理による文書化が必要となる。は道路建設に構成管理を用いている。設計変更、工期、予算などを管理する建設業向けのツールも存在する。そういったソフトウェアは、竣工後の保守や変更につかえる情報を蓄えることもできる。が資金提供してケーススタディとして試用されたツールとしてccsNetがある。ロサンゼルス郡都市圏交通局 (LACMTA) のレッドラインの53億ドルの建設工事で使われ、効果があるとされた。

 資格認証 
構成管理責任者向けのトレーニングや資格認証がある。
CMPIC Training & Certification The Configuration Management Process Improvement Center
Configuration Management Training Foundation (Certified International Configuration Manager CICM / Certified International Software Configuration Manager CISCM / Certified Configuration Management Professional CCMP)
Institute of Configuration Management

 脚注 

 関連項目 

 システム管理
 ネットワーク管理
 プログラミングツール
 バージョン管理システム
 ソフトウェア工学
 変更管理
 テスト管理システム

 外部リンク 
 Extended List of Configuration Management & Related Standards
 構成管理とプロジェクト管理の標準化 桐蔭横浜大学工学部 高橋宗雄（情報処理学会第62回全国大会）PDF
 意外と知らない構成管理の正体(1) @IT情報マネジメント
cfile
Article Software Configuration Management for the Web from Methods & Tools
Configuration Management and ISO 9001
SRA Rationalホームページ
SRA構成管理

*
Category:システム管理
Category:バージョン管理システム
Category:メソッド・エンジニアリング