SlideShare a Scribd company logo
1 of 29
ソフトウェア構成管理のインフラ
  Infrastructure for Software
Configuration Management (SCM)
             α版


(C)Copyright 2009 Koki Yamamoto
        kokiya@gmail.com
ソフトウェア構成管理( SCM )とは
Wikipedia より

http://ja.wikipedia.org/wiki/%E3%82%BD

%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E6%A7%8B%E6%88%90%E7%AE

%A1%E7%90%86




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


ISO 文書管理規定や部署のバージョン管理規定
(リリース時にするべきことが定められている)
に従っていれば OK?
ソフトウェア構成管理( SCM )とは
引き続き Wikipedia より



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


SCM とは、

ソフトウェア開発で継続的に実施す
ることが
必要な管理全般のこと
のように思える。
開発規模と SCM 力
SCM 力を付ける動機




悲惨から普通へ
非効率から超楽へ
⇒いろんな開発規模に対応できる技術
者に
SCM 力は両輪で
必須インフラ
         バージョン管理システム

         単一リポジトリ型
                               分散リポジトリ型
          CVS
                                Git
          Subversion
                                Mercurial
          Perforce
                                Bazzar
          Visual Source Safe



         課題 ( バグ ) 管理システム
          Trac
          Redmine
          Mantis
          不具合連絡システム




         継続的インテグレーションサーバー
          Continuum
          CruiseControl.NET
          Hudson
バージョン管理システム
・必須インフラの中でも特にバージョン管理システ
ムが重要。
・一つの組織内では、同じバージョン管理システム
を使い、シンプルな方法で管理するのが好ましい。
・総合力で Subversion が優れている。
なぜ Subversion か ?
    GPL
    進歩と安定性
    マージ方式とロック方式の両方に対応
    日本語対応
    日本語情報
    他のインフラ、ツールとの連携
    TortoiseSVN
Subversion 利用の肝
・ブランチ作成
 - いつブランチを作成するべきか
 - 作成したブランチをどう管理するか
・マージ機能
 - マージの邪魔をしない
 - マージを活用する
結合方式
・ビッグバン結合
- ウォータフォール開発で行われる。
- 全てのモジュールを作成して単体テスト完了後、
結合を行う方式。
・継続的インテグレーション
(Continuous Integration、以下 CI)
- XP 開発で行われる。
- コードを作成してユニットテストが通れば順次
結合を行う方式。
結合方式
ビッグバン結合
・開発の進め方がシンプル
・仕様や設計の不整合が開発終盤に発見されるリス
 クが高く結合時に多大なコストがかかる。
・日々の結合コストは無い。
結合方式
CI
・開発の進め方が複雑
・日常的に結合しているので、仕様や設計の不整合
     発見が早くできる。
・日々の結合コストがかかる。
結合方式

  CI<------------>ビッグバン結合
結合方式は二分法ではなく、開発の状況や、コストと
リスクのバランスをとってこのスペクトルのどこか
の方法で結合している。
日々の結合コスト
CI での一番の問題はマスターコードでのビルド失敗
最新のマスターコード取得
->ビルド失敗
->自分で修正するかビルド失敗させた人を見つけて修正依頼
->ビルド成功するまで時間がかかる
->コーディングのリズムが崩れる
->生産性低下
日々の結合コスト

開発人数が多いとコミットミスも多くなる
->マスターコードのビルド失敗が頻繁に発生
->トラブルを避けようとして最新のマスターコード取得する
のを避ける
->ビッグバン結合へ振れてしまい、不整合リスクが増える。
->CI 方式でやっているつもりが、その効果なし
CI のコストを下げるにはどうすればよいか
[目的]
確実なビルドを確保する
[やること]
・バージョン管理システム上のマスターソースコ
ードの変更を検出
・自動的にビルドを実施
・ビルド結果をチームで共有する
->ビルドの見える化をインフラでサポートする
CI インフラの条件
・シングルソースポイント
・自動化されたビルドスクリプト
・安定したビルド
・コミット後なるべく早くビルド結果をフィードバ
ック
CI インフラ構成例
バージョン管理システム: Subversion
(Visual Source Safe にも対応しているらしい)
ビルドツール: Visual Studio 2005
CI サーバー: CruiseControl.NET
CI クライアント: CCTray
CI サーバー導入後のコミットの流れ
CI サーバー導入後のコミットの流れ
1. ソースを Subversion へコミットする。
2.
     CCTray で CI サーバーでのビルドの状態をそれと
     なく注意する。(黄=ビルド中、緑=ビルド成功、赤=
     ビルド失敗)
3.
     ビルド成功なら一安心、失敗なら最優先で修正す
     る。
CI サーバー導入後の更新の流れ
CI サーバー導入後の更新の流れ
1.
     CCTray で CI サーバーでのビルドの状態を確認す
     る。(黄=ビルド中、緑=ビルド成功、赤=ビルド失敗)
2.
     ビルドが成功していれば、安心して更新を実行。失
     敗していれば成功するまで待つか、ビルド失敗さ
     せた人に状況確認する。
CI サーバー結論
・CI にはビルド自動化と見える化をサポートするイ
ンフラが必要
・開発者が多ければ多いほど CI サーバーの必要性が
増す
・CI サーバーがあれば開発者は安心して、更新、コミ
ットを行える。

More Related Content

Similar to ソフトウェア構成管理のインフラ

RedHat MW 2015
RedHat MW 2015RedHat MW 2015
RedHat MW 2015omatsuha
 
デブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組みデブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組みTakeshi Shinmura
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 日本マイクロソフト株式会社
 
SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版Kishima Masakazu
 
はじめてのSubversion(サブバージョン)
はじめてのSubversion(サブバージョン)はじめてのSubversion(サブバージョン)
はじめてのSubversion(サブバージョン)西畑 一馬
 
Windows Azure Appfabric as "Middleware as a Services"
Windows Azure Appfabric as "Middleware as a Services"Windows Azure Appfabric as "Middleware as a Services"
Windows Azure Appfabric as "Middleware as a Services"Kazuyuki Nomura
 
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理junichi anno
 
頼れる執事があなたをサポート
頼れる執事があなたをサポート頼れる執事があなたをサポート
頼れる執事があなたをサポートcactusman
 
New features of AWS Systems Manager
New features of AWS Systems ManagerNew features of AWS Systems Manager
New features of AWS Systems ManagerNobuhiro Nakayama
 
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab満徳 関
 
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)axsh co., LTD.
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 Hiro Yoshioka
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要Takekazu Omi
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術finoue
 
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)masanori kataoka
 
ソフトウェア構成管理入門
ソフトウェア構成管理入門ソフトウェア構成管理入門
ソフトウェア構成管理入門智治 長沢
 

Similar to ソフトウェア構成管理のインフラ (20)

Mercurial入門(前半)
Mercurial入門(前半)Mercurial入門(前半)
Mercurial入門(前半)
 
RedHat MW 2015
RedHat MW 2015RedHat MW 2015
RedHat MW 2015
 
デブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組みデブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組み
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
 
vFabricを触ろう
vFabricを触ろうvFabricを触ろう
vFabricを触ろう
 
Devsumi2008
Devsumi2008Devsumi2008
Devsumi2008
 
SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版
 
はじめてのSubversion(サブバージョン)
はじめてのSubversion(サブバージョン)はじめてのSubversion(サブバージョン)
はじめてのSubversion(サブバージョン)
 
Windows Azure Appfabric as "Middleware as a Services"
Windows Azure Appfabric as "Middleware as a Services"Windows Azure Appfabric as "Middleware as a Services"
Windows Azure Appfabric as "Middleware as a Services"
 
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理
 
頼れる執事があなたをサポート
頼れる執事があなたをサポート頼れる執事があなたをサポート
頼れる執事があなたをサポート
 
New features of AWS Systems Manager
New features of AWS Systems ManagerNew features of AWS Systems Manager
New features of AWS Systems Manager
 
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
 
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
 
Git勉強会1回目
Git勉強会1回目Git勉強会1回目
Git勉強会1回目
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)
 
ソフトウェア構成管理入門
ソフトウェア構成管理入門ソフトウェア構成管理入門
ソフトウェア構成管理入門
 

Recently uploaded

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Recently uploaded (9)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

ソフトウェア構成管理のインフラ