【勉強会】パターンによるソフトウェア構成管理

4,778 views

Published on

Published in: Technology, Business
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,778
On SlideShare
0
From Embeds
0
Number of Embeds
701
Actions
Shares
0
Downloads
19
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

【勉強会】パターンによるソフトウェア構成管理

  1. 1. パターンによる ソフトウェア 構成管理
  2. 2. パターンによるソフトウェア構成管理 • 訳本2006/10発売 – 情報はちょっと古い – すでにSVNなどで実装されているものもある – パターンというかポリシーっぽいものもある • 全体で250ページくらい – 概念説明が50ページくらい – パターンの解説は130ページくらい – 付録でCSV時代のツール説明が50ページくらい
  3. 3. 基礎 /release Bug01修正 1.1 ←ブランチ化 ←マージ コードライン↓ /main ↑ main.1 コードラインの main.2 タグ→ バージョン
  4. 4. 今日あんまり説明しないパターン パターンだけど常識 パターンってかポリシー • Unit Test • Private Workspace 単体テストしてね 個人作業場所確保 • Private System Build • Private Versions ローカルでビルドしてね 個人単位で無限Undo • Integration Build • Repository 全体結合してね 構成品目の一元管理 • Smoke Test • Task Level Commit 疎通くらいしてね こまめにコミット • Regression Test 回帰テストしてね
  5. 5. Mainline
  6. 6. Mainline • コードライン(ブランチ)の乱立を防ぐため、幹 のラインを定めること。 • Release lineなどはできるだけMainlineから切 るようにする。
  7. 7. Task Branch
  8. 8. Task Branch • 長期にわたる変更・重大な変更等を ブランチを切って作業すること。 • ただし、MainlineとTaskBranchは時々修正を マージし合うほうがいい。 (最終マージのコストを低くするため)
  9. 9. Active <------> Stable • Active • Stable – 細かいコミットが多い – コミットのハードルが – コミットのハードルが 高い(チェックリスト・ 低い 承認委員会etc) – マージが簡単 – コミット回数が少ない – 品質が不安定 – 品質が安定 – マージが大変 • どちらがよいとは言い切れない。 • バランスを取るのが大事。
  10. 10. 画像探すの疲れました\(^ρ^)/
  11. 11. Codeline Policy • 各CodelineにStableとActiveのバランスを設定 すること。 • 例:Release Lineであれば安定性重視で コミットにCCBへの申請など事務処理をつける • 例:Mainlineであれば活発さ重視でSmokeTest までしかしない
  12. 12. Active Development Line • コードラインの安定と活発さのバランスを取る ようにCode Line Policyを定めること。
  13. 13. Release Prep Codeline • リリース前にコードラインを安定化させたい。 • Mainlineからブランチを切って、コードラインを 分けておくこと。 • あまりに早くやり過ぎるとMainlineにも影響が ある修正作業のマージが大変になるので、時 期を見極めること。
  14. 14. Release Line • リリースした時点でブランチを切って、 コードラインを分けておくこと。保守用に使う。 • Release Lineに加えた修正でMainlineにも 影響があるものはマージする。
  15. 15. Third Party Codeline • 第三者から受領した構成品目は、プロジェク トのタイミングと異なる都合でリリースされる • 専用のコードラインを作ってレポジトリに入れ ておくこと。
  16. 16. まとめ:重要な概念 Codeline[Active <----> Stable] ブランチングに関連すること テストに関連すること • Mainline • Unit Test • Task Branch • Private System Build • Release Prep Line • Integration Build • Release Line • Smoke Test • Third Party Codeline • Regression Test バランスに関連すること グッドプラクティス • Codeline Policy • Private Workspace • Active Development Line • Private Versions • Repository • Task Level Commit
  17. 17. photo http://www.public-domain-photos.com

×