20101022 構成管理勉強会資料

Post on 28-May-2015

775 views 6 download

description

ゆるぎー勉強会資料です。

Transcript of 20101022 構成管理勉強会資料

1

ゆるぎー 勉強会 第2回

構成管理入門

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

ゆるぎー 勉強会 第2回

1 2 3 4 5アジェンダ

▌自己紹介▌1  はじめに▌2  構成管理入門▌3  現状よく利用されている Subversion▌4  これから利用されるであろう Git▌5  終わりに

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved. 2

ゆるぎー 勉強会 第2回

1 2 3 4 5自己紹介

高安 厚思

▌活動領域・キーワード▌20年にわたり、ソフトウエアエンジニアリングを適用したシステム開発

やコンサルティングに携わる。▌最新技術を適切に利用した、柔軟なシステム構成の構築、品質管理を中心

として技術マネージメントなどを主要テーマとして活動。▌開発方法論、アーキテクチャ設計コンサルティング、システム全体設計を

得意分野とする。▌東京電機大学非常勤講師、 SQuBOK 設計開発領域 検討委員、 ITSS-DS

検討委員▌資格

▌ネットワークスペシャリスト▌アプリケーションエンジニア(現 システムアーキテクト)▌プロジェクトマネージャ▌IT ストラテジスト▌MCSE▌MCSD

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved. 3

ゆるぎー 勉強会 第2回

1 2 3 4 5対外活動

最近の著書、訳書▌「システム設計の謎を解く(ソフトバンク)」▌「 Struts による Web アプリケーション スーパーサンプル(ソフトバンク)」▌「 Seasar 入門 [ (ソフトバンク)」▌「 Java ルールブック(エクスメディア)▌「 IT アーキテクトのためのシステム設計実践ガイド アーキテクチャ編(日経

BP )」など。

連載記事執筆▌日経 SYSTEMS 誌「 Web アーキテクチャ再入門」

講演▌SODEC  ミッションクリティカル開発▌日本テクノセンター セミナー講師▌UML Forum 講師▌日経 BP 社  IT アーキテクトのためのシステム設計フォーラム 特別講演 講師▌Developers Summit 2013   Summer

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved. 4

ゆるぎー 勉強会 第2回

5

1 2 3 4 5カバレッジの話

▌おーくぼさん、てらひでさんと違って、深夜アニメカバレッジ率0 %です。

▌NMB48  カバレッジ率は 100%8 枚シングル x タイプ A 、 B 、 C 、劇場版 =32 枚1 枚アルバム x タイプ A 、 B 、 C 、劇場版 =4 枚

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

http://www.nmb48.com/discography/ から引用

6

ゆるぎー 勉強会 第2回

1  はじめに

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

ゆるぎー 勉強会 第2回

7

1 2 3 4 5開発者の嗜み

▌仕事で開発をおこなう方は以下の様なことは必ずできてください。▌できない方もいるかもしれませんが、これから覚えていきましょう!

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

単体テスト技法・手法

構成管理手法

Eclipseなどの IDEの利用方法

Redmineなどの ITSの利用方法

8

ゆるぎー 勉強会 第2回

2 構成管理入門

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

ゆるぎー 勉強会 第2回

9

1 2 3 4 5構成管理とは?

▌対象物の構成要素を管理し、構成要素として何があり、いつ変更されていて、その時どういう状態だったかを確認できること。

▌厳密に言うと、 H/W や OS 、パッチなどを管理する構成管理もあるため、ソフトウェア構成管理( Software Configuration Management/SCM )が正しい名称となります。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

ゆるぎー 勉強会 第2回

10

1 2 3 4 5構成管理ができていると?

▌文書・ソースコードの状態を表示する▌文書・ソースコードのアクセス制御▌文書・ソースコードの変更情報(いつ、誰が、どのように変更した

か)がわかる▌障害発生時に障害を起こした環境を再現できる▌変更内容をどのタイミングにも戻せる▌変更理由と変更内容がわかる

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

ツールで出来る部分とプロセスで実現する部分がある。そこの見極めは大事

ゆるぎー 勉強会 第2回

1 2 3 4 5変更管理プロセス(参考)

▌構成管理プロセスとはどういうものでしょうか?参考までに見てみましょう。

変更要求

要件変更管理

トレーサビリティ管理

バージョン管理変更要求の

分析

影響の評価

変更諾否の決定

プロジェクト計画の変更

変更管理プロセス

提出された要件変更要求

影響分析結果

構成管理

リリース管理

ゆるぎー 勉強会 第2回

12

1 2 3 4 5構成管理の基礎知識 構成管理アイテム

▌構成管理対象を構成管理アイテムと呼びます。▌この構成管理アイテムを識別するのは大事なことです。

(管理不要のものもあるので)

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

基本設計書

機能設計書画面設計書

データ設計書

成果物

成果物の構成要素

ゆるぎー 勉強会 第2回

13

1 2 3 4 5構成管理の基礎知識 リビジョン・バージョン

▌構成管理アイテムそれぞれの履歴をリビジョンと呼びます。▌構成管理アイテムのリリース単位の履歴をバージョンと呼びます。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

1.0 1.1 1.2 1.3

Data.java

1.0 1.1 1.2

MainModule.java

1.0 1.1 1.2

1.4

dao.sql

Data.java Data.java Data.java Data.java

MainModule.java MainModule.java

dao.sql dao.sql

HEAD

Ver0.1という名前をつける(バージョン名)

複数の構成管理アイテム

リビジョン管理

バージョン(リビジョンの組合せ、構成)

ゆるぎー 勉強会 第2回

14

1 2 3 4 5構成管理の基礎知識 ワークスペース

▌開発者として構成管理に関わるのはここからです。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

リポジトリ

ワークスペース

ワークスペース

ワークスペース

構成管理アイテムを変更する担当者

チェックアウト

チェックイン(コミット)

ゆるぎー 勉強会 第2回

15

1 2 3 4 5構成管理の基礎知識 ブランチ

▌並行開発を行う場合に、変更が混ざらないように変更履歴を分けて管理する。主たる変更履歴をトランクと呼び、並行で管理する履歴をブランチと呼ぶ。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved

Data.java Data.java Data.java

1.0 1.1 1.2

Data.java

B1.1

Data.java

B1.2

トランク

ブランチ

お互いに影響しあわない

ゆるぎー 勉強会 第2回

16

1 2 3 4 5構成管理ツールを利用するために

▌構成管理ツールを利用するにあたり、知っておきたい概念がいくつかあります。この概念と各ツールの操作方法を結び付けておくと、わかりやすいでしょう。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

チェックイン・チェックアウト

バージョン登録・ブランチ作成

変更履歴確認(ファイル・内容単位)

ファイルの移動(リネーム)・削除方法

更新・マージ方法

17

ゆるぎー 勉強会 第2回

3  現状よく利用されているSubversion

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

ゆるぎー 勉強会 第2回

18

1 2 3 4 5Apache Subversion

▌Apache HTTPD のサーバとして利用できるクライアントサーバ型のバージョン管理システム

▌現状、一番よく利用されている。その反面、クライアントサーバ型ゆえの課題もある。

▌すべてのファイルについてコミット番号でのリビジョンを持っている。ゆえに、その番号によって、そのときの断面を切り出すことができるのが特徴。

▌ロックによる競合回避もできるが、多くの場合競合を許し、後から更新(コミット)する時にマージ作業をおこなう。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

ゆるぎー 勉強会 第2回

19

1 2 3 4 5チェックアウト

▌リポジトリからチェックアウトするのが最初の一手。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

チェックアウトするディレクトリで右クリック チェックアウトするディレクトリで右クリック

ここに先ほどの URL

svn co http://www.yurugee.com/svn/scm/

ゆるぎー 勉強会 第2回

20

1 2 3 4 5チェックイン(コミット)

▌ファイルを修正し、リポジトリに反映した場合はチェックイン(コミット)をおこなう。

▌自動的に走査して、追加のファイルを見つけてくれるが必要に応じて、Add する。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

コミットしたいディレクトリで右クリック

svn ci –m “ログメッセージ”

コミットメッセージを記述してコミット。

ゆるぎー 勉強会 第2回

21

1 2 3 4 5更新について

▌他の担当者が更新した内容を取り込むために、 svn update などをおこなう。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

更新したいディレクトリで右クリック

ゆるぎー 勉強会 第2回

22

1 2 3 4 5移動(リネーム)・削除について

▌バージョン管理ツールでこれらの操作をする場合、バージョン管理ツールの機能を利用する必要がある。

▌TortoiseSVN ではファイルを移動する場合、右クリックで移動させ、コンテキストメニューを利用する

▌削除する場合も svn delete や TortoiseSVN のコンテキストメニューで削除する。

▌単純に変更を取り消して、リポジトリに戻したい場合は Revert を利用する。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

ゆるぎー 勉強会 第2回

23

1 2 3 4 5変更履歴の取得方法

▌各フォルダやファイルの変更を追跡するには、 svn log や svn blame を利用する。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

履歴を見たいファイルで右クリック

24

ゆるぎー 勉強会 第2回

4  これから利用されるであろう Git

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

ゆるぎー 勉強会 第2回

25

1 2 3 4 5Git とは

▌クライアントサーバ型だった Subvesrion とは異なり、分散サーバ型のバージョン管理方式を持つのが Git です。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

リポジトリ

ワークスペース

ワークスペース

ワークスペース

構成管理アイテムを変更する担当者

チェックアウト

チェックイン(コミット)

マスタリポジトリ

プル

プッシュ

ゆるぎー 勉強会 第2回

26

1 2 3 4 5クローン(リポジトリの作成)

▌マスタリポジトリからチェックアウトするのが最初の一手。▌Git では、それを Clone (複製と呼びます)

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

複製を作るディレクトリで右クリック

ここに先ほどの URL

git clone http://www.yurugee.com/git/scm/

ゆるぎー 勉強会 第2回

27

1 2 3 4 5チェックイン(コミット)

▌ファイルを修正し、リポジトリに反映した場合はチェックイン(コミット)をおこなう。

▌自動的に走査して、追加のファイルを見つけてくれるが必要に応じて、 Add する。

▌Git の場合、リポジトリにコミットしているだけで、マスタリポジトリに反映されていない。例えばデモ環境の www.yurugee.comのリポジトリには反映されていない。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

git commit -a

ゆるぎー 勉強会 第2回

28

1 2 3 4 5プッシュ(コミット)

▌リポジトリからマスタリポジトリへの反映をプッシュと呼ぶ

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

git push

コミットメッセージを記述してコミット(コミットしてプッシュ)。TortiseGitの場合、同時に実行します。

ゆるぎー 勉強会 第2回

29

1 2 3 4 5更新について

▌マスタからリポジトリに更新する場合、 git pull などとしてマスタの変更をリポジトリに反映する。

▌リポジトリからワークスペースを更新する場合は git update として反映させる。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

更新したいディレクトリで右クリック

ゆるぎー 勉強会 第2回

30

1 2 3 4 5変更履歴の取得方法

▌各フォルダやファイルの変更を追跡するには、 git log や git blameを利用する。

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

SVNの延長線上で Gitを説明しました。本当はブランチの考え方やコミットの考え方が若干異なり、 Gitは高機能ですが、まずはこの基本を押さえましょう!

31

ゆるぎー 勉強会 第2回

5  終わりに

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.

ゆるぎー 勉強会 第2回

32

1 2 3 4 5構成管理は結構難しい!

▌でも、基本的なことは結構簡単。▌まずは、開発者あるいはデザイナーとして作成したものを正しく、

構成管理の仕組みに載せられるようにできるようにしましょう!

Copyright (C) 2013   Atsushi Takayasu All Rights Reserved.