アプリケーション ライフサイクルの管理
システム構築を成功させるには、開発プロセスだけではなく、アプリケーション ライフサイクル全体を考慮しなければなりません。
たとえば展開/運用を考えずに設計したような場合、実際に運用を開始しようとした時点で問題が発生してしまい、最悪の場合、設計し直し、作り直し、という大きなコストを支払わらなければならなくなる可能性もあります。
つまり、開発以外の設計や展開/運用にも適切な計画や準備が必要だということです。
アプリケーション ライフサイクルを包括的に管理する必要があるのです。
これを実現するのが、Visual Studio Team System 2008 というアプリケーション ライフサイクル マネジメント (ALM) ソリューションです。
そこで、Visual Studio Team System 2008 については本ドキュメントの冒頭でも簡単に紹介しましたが、本章ではその内容についてもう少し詳しくご紹介します。
Visual Studio Team System 2008 とは?
Visual Studio Team System 2008 は、「設計」「開発」「テスト」「展開/運用」という一連のアプリケーション ライフサイクル全体を支援する開発環境です。
アプリケーション ライフサイクルを支援するVisual Studio Team System 2008
主なエディションには次の 4 つがあり、それぞれアプリケーション ライフサイクルの各フェーズに対応しています。
| Visual Studio Team System 2008 Architecture Edition |
| Visual Studio Team System 2008 Development Edition |
| Visual Studio Team System 2008 Test Edition |
| Visual Studio Team System 2008 Database Edition |
名前からもわかるように、Architecture Edition は「展開/運用」を想定した「設計」フェーズを、Development Edition は「開発」フェーズを、Test Edition は「テスト」フェーズを主にサポートしています。
Database Edition は、データベースの「設計」〜「開発」フェーズをサポートします。
各フェーズの担当者は、フェーズごとに明確に分けられている場合もあるでしょうが、「開発」を行った人が「テスト」にも従事したりと、複数の役割を持つこともあるでしょう。
そのような場合には、これら 4 つのエディションの機能を 1 つにまとめた Team Suite ( チーム スイート) が便利です。
| Visual Studio Team System 2008 Team Suite |
また、Test Edition と Team Suite においては「テスト」フェーズにおいて、Web サイトの負荷テストなどが行える ”ロード テスト” 機能を提供していますが、この機能を拡張し、大規模な負荷テストを実施するために利用いただける「Test Load Agent」という追加のソフトウェアも提供しています。
| Visual Studio Team System 2008 Test Load Agent Visual Studio Team System 2008 Test Edition もしくは Team Suite と 組み合わせて利用するソフトウェア |
このように Visual Studio Team System 2008 では、アプリケーション ライフサイクルの各フェーズで必要となる機能を提供しています。
Team Foundation Server とは?
Visual Studio Team System 2008 の良さは、これだけではありません。
"Team System" という名前が示すとおり、チームのメンバが共同で効率よく作業さるために必要な機能も揃っているのです。
その機能の中心となるのが Team Foundation Server です。
| Visual Studio Team System 2008 Team Foundation Server |
Team Foundation Server はアプリケーション ライフサイクルの中で取り交わされるさまざまな情報を集中管理するためのチーム開発用サーバーです。
以下では、この Team Foundation Server の機能についてご紹介しましょう。
Team Foundation Server の 6 つの機能
Visual Studio Team System 2008 と Team Foundation Server の関係をまとめたのが、次の図です。
Visual Studio Team System 2008 と Team Foundation Server の関係
この図を見るとわかるように、Team Foundation Server が持つ機能は大きく分けて 6 つあります。
以下ではそれぞれの機能について簡単に紹介します。
(1) プロジェクト管理
チームでアプリケーション開発を協調的に進めていくには、チーム内のメンバが一定のルールに従う必要があります。
たとえば、Visual C#/Visual Basic などの書き方を定めるコーディング規約や、開発の進め方を定義する開発プロセスなどです。
Team Foundation Server では、このようなルールに関する情報を着実に共有し、ルールに沿った開発を効率的に推進するためのプロジェクト管理機能が備わっています。
具体的にはアジャイル開発プロセスや CMMI (Capability Maturity Model Integration) などの開発プロセス テンプレートを選択することで、その開発プロセスに必要な標準的なひな形のドキュメント群が提供されます。
これらのドキュメントは、Visual Studio Team System 2008 の [チーム エクスプローラ] ウィンドウや、後述のプロジェクト ポータルから参照/編集できます。
開発プロセスや各種ドキュメントが
提供されるプロジェクト管理機能
(2) 作業項目管理
Team Foundation Server では、このようは作業の割り当てや追跡を行うための作業項目管理機能が搭載されています。
作業項目情報の登録や検索は Visual Studio Team System 2008 の [チーム エクスプローラ] ウィンドウから容易に行えます。
このように普段の開発環境から作業項目を直接参照/ 編集できることは、開発者にとって有益です。
さらに、Microsoft Office system (Excel および Microsoft® Office Project) も使え、各作業の進捗状況などを自動的に収集し計算する機能も持っています。
したがって、プロジェクトマネージャは使い慣れたアプリケーションを使って各開発者の担当作業項目をリアルタイムに管理することができます。
開発環境から参照/編集できる作業項目管理機能
(3) 変更管理
複数の開発者が同じソース コードを編集するチーム開発では、開発環境によるソース コードの管理機能は欠かせません。
また、ソース コードは時間と共に刻々と変化するものなので、その変更を絶えず記録するためのバージョン管理の機能も欠かせないでしょう。
Team Foundation Server では、安定性の高い SQL Server データベースを基盤にした変更管理機能を提供しています。
この機能には Visual Studio Team System 2008 からシームレスにアクセスできます。
また、ソースコードのチェックイン時に、ポリシーを設定することができます。
たとえば、チェックイン時に自動的に単体テストが実行され、そのテストをパスしないとチェックインすることができないポリシーや、特定の作業項目と関連付け、履歴をとらないとチェックインできないなど、品質の向上やコンプライアンスへの対応などにも有効な機能を持っています。
開発環境からシームレスに操作できる変更管理機能
(4) 自動ビルド
アプリケーション開発においては、「不具合の解消が遅くなればなるほど、開発コストが肥大化する」といわれています。
そのため、不具合ができるだけ早く見つかるように、日常的にアプリケーション全体のビルドとテストを行うべきです。
これを実現する自動ビルド機能が、Team Foundation Server には搭載されています。
前述した手順で「単体テスト」を作成し、自動ビルド機能で自動実行することで、問題を早期に発見、解決することできます。
これにより、アプリケーションの品質を高く保つことが可能になります。
夜間に無人のビルドとテストなどを
実現する自動ビルド機能
(5) プロジェクト ポータル
Team Foundation Server では各メンバとの情報共有に役立つプロジェクト ポータル (SharePoint Services) が作成されます。
これはチーム開発のポータル サイトです。
前述のプロジェクト管理機能の情報や、後述のレポーティング機能の情報もここで参照/編集できます。
なお、同様の情報は、Visual Studio Team System 2008 の [チーム エクスプローラ] ウィンドウからでもアクセスできます。
すべての開発チーム メンバのポータル
となるプロジェクト ポータル
(6) レポーティング
プロジェクト マネージャにとって、アプリケーションの開発を滞りなく進めることは至上命題です。
そのためには、常に作業状況やバグ状況、テスト状況を把握しなければなりません。
これを支援するレポーティング機能 (SQL Server Reporting Services) が Team Foundation Server には搭載されています。
プロジェクトの進行や品質を管理
できるレポーティング機能
以上の 6 つの機能が示す作業は、開発チームの規模が大きくなればなるほど必要になるでしょう。
Team Foundation Server をアプリケーション開発の中心に導入することで、これらの準備にかかる初期コストや、開発コスト、管理コストを効果的に低減できるようになります。