プロジェクトで修正/仕様変更が“迷宮”入りする理由
ソフトウェア開発を行ううえで、設計書やソースコードのバージョンをきちんと管理することは非常に重要です。構成管理(ファイル管理)を行っていないプロジェクトでは、例えば次のような問題が発生します。
- 2人以上の開発者が同時に成果物を編集した場合、後に編集を始めた開発者がすでに編集を行った開発者の編集内容を上書きしてしまう。結果として、修正したはずのバグや変更したはずの仕様が、設計書やソースコードに反映漏れするという事態が発生
- 設計書やソースコードのレビューを行って修正したはいいが、どこをどう修正したのか分かりにくく、レビュー内容の反映の確認を行っても修正漏れや修正誤りに気が付かない
- ソースコードを変更すると、動かなくなってしまった。正しく動作していたときのソースコードを確認しようとしても、どのバージョンが正しく動作していたのか分からない
上記のような問題のため、ソフトウェアの故障の修正漏れ、仕様変更漏れによる品質の低下、低下した品質を取り戻すための追加試験やレビューによる生産性の低下につながります。
本稿では、上記のような問題を解決し、バージョン管理を簡単に行ってくれるオープンソースの「Subversion」(以下、SVN)とSVNをEclipseから利用するための「Subversive」プラグインを紹介し、Tracとの連携方法も解説します。
構成管理ツールの台頭
大昔のソフトウェア開発では、共有フォルダなどを利用し、フォルダ管理者などを置いて人手で管理を行っていました(大昔といっても現在でもフォルダ管理のプロジェクトは多いですが……)。しかし最近では、CVS(Concurrent Version System)やVSS(Microsoft Visual Source Safe)などの構成管理ソフトウェアの登場で、これらの状況は劇的に改善されました。
構成管理ソフトウェアを使うと、成果物は「リポジトリ」と呼ばれるデータベース上で集中管理されます。開発者は成果物を編集して、変更点を記述したコメントを添えてリポジトリへ反映(コミット)するだけで、自動的に成果物の変更履歴を取ることができます。また、複数の開発者が同時に成果物を編集した際の変更の反映漏れを防ぐことができます。
構成管理ツールの2つのタイプ
構成管理ソフトウェアには、2つのタイプがあります。CVSに代表される複数の開発者による同時編集を許し、競合が起こった部分を開発者が主導で修正していく「共有モデル」と、VSSに代表されるファイルにロックを掛け、1人しか編集できないようにする「ロックモデル」です(VSSの最新版では、共有モデルも選択できます)。
共有モデルは、「編集の競合が発生した場合修正に手間が掛かる」「ExcelやWordなどのバイナリファイルが扱いづらい」という問題があり、ロックモデルは、「ある開発者がファイルのロックを取得したままの状態のとき、ほかの開発者がファイルを編集できない」という問題がありました。
そしてSVNへ
SVNは、CVSの欠点を解消したバージョン管理システムとして開発、公開されました。SVNは次のような特徴を持っています。
- 成果物をリポジトリ(成果物のバージョンを管理するデータベース)で管理
- HTTP/HTTPSプロトコルを利用してリポジトリへアクセスできるため、ファイアウォールなどでポートが制御されている環境でも利用しやすい
- ファイルごとに「共有ロック」「排他ロック」を指定でき、ソースコードのような共有モデルが向いている成果物は共有ロックモデルで、ExcelやWordの設計書など、ロックモデルが向いている成果物はロックモデルで利用できる
- リポジトリ全体を「リビジョン」と呼ばれるバージョン番号で管理している。複数のファイルにまたがる変更を1つの変更として扱うことができ、個々のファイルの変更履歴ではなく、バグ修正、機能追加など、意味を持つ変更のまとまりとして、変更履歴を追っていくことができる
- 「TortoiseSVN」を利用すると、ExcelやWordなどの差分も見ることができる
- オープンソースソフトウェアとして開発され、無償で利用でき、多数のオープンソースプロジェクトで利用され、実績は折り紙付き
- 「CollabNet Subversion」「Trac Lightning」を利用することにより、簡単にリポジトリを設置できる
ソフトウェア構成管理ツールとしては、以前はCVSが利用されることが多かったのですが、最近はSVNが利用されるようになってきています。最新のSubverison 1.5では、複数のブランチを管理する際に「マージトラッキング」機能が追加されたり、大規模な開発に便利な「ライトスルーキャッシュ」機能などが追加され、さらなる高機能化が進んでいます。
また、SVNと連携できるITS(Issue Tracking System、課題やバグを管理するためのシステム)も増えてきていて、コミットログを関連するタスクやバグに簡単にひも付けることも可能です(参考:Mylyn&Tracでリズムに乗ってタスクを大掃除♪)。
コラム 「プログラマー以外も必見! 文書の構成管理もできる」
ソフトウェア構成管理ツールを利用して、ソースコードや設定ファイルを管理しているプロジェクトは多いですが、ExcelやWordなどの設計書を管理しているプロジェクトは非常に少ないです。まだまだ、共有ファイルサーバで管理しているプロジェクトも多いです。そういうプロジェクトでは、図2のようなフォルダをよく見掛けます。
さて、図2の画面設計書の最新版はどれでしょうか。
- ユーザ管理画面設計書.xlsx
- ユーザ管理画面設計書_20081022.xlsx
- ユーザ管理画面設計書_最新.xlsx
上記3つのどれかが最新のような気はしますが、本当にどれが最新かはフォルダ管理者(もしくは、この成果物を編集している開発者)に問い合わせないと分かりません。
SVNを利用すると、このような設計書もきちんと構成管理できます。また、Windowsのエクスプローラに統合して利用できるSVNクライアントである「TortoiseSVN」を利用すると、ExcelやWordの差分も簡単に確認できます(図3)。
この差分表示機能は、レビュー後に設計書を修正した場合、レビューで指摘した点がきちんと修正されているかどうか確認したり、仕様変更があった場合、仕様変更点を確認するのに便利です。
ソースコードや設定ファイルだけではなく、ぜひ設計書もSVNで管理してみましょう。
次ページでは、SubersiveとTrac Lightningをインストールして、使い始めましょう。
Copyright © ITmedia, Inc. All Rights Reserved.