このページの本文へ

意外とハードルは低かった!Visual Studioで始めるALM 第3回

「マイクロソフト ソリューションセミナー」レポート

ALMを実践するTeam Foundation Serverの機能とは?

2011年12月08日 09時00分更新

文● 塩田紳二 写真●曽根田元

  • この記事をはてなブックマークに追加
  • 本文印刷

今回は、日本マイクロソフトが主催した「アプリケーション・ライフサイクルマネジメント(ALM)」のセミナーをレポートしよう。本セミナーは「マイクロソフト ソリューション セミナー」の一環で、毎月1回開発環境や開発ツールなどをテーマにしたセミナーが定期開催されている。

11月18日に日本マイクロソフト品川本社で開催されたALMのセミナー。講師はクリエ・イルミネートの中原幹雄氏が務めた

Visual Studio 2010とTeam Foundation Server 2010

 セミナーのタイトルは、「Visual Studio 2010とTeam Foundation Server 2010を活用した開発生産性の向上」であり、Visual Studio 2010の導入からALMの活用までを含むものだ。内容はALMに関するものだが、必ずしも開発者だけでなく、開発環境の構築に携わったり、そうしたシステム選択の決定権を持つ人も対象となっている。

 セミナーは、Visual Studio 2010とVisual Studio Team Foundation Server 2010の位置づけの解説から始まった。Visual Studio 2010は、モバイルデバイスのアプリケーション開発から、Windowsデスクトップアプリケーション、サーバーやWeb、そしてクラウドアプリケーションまでの開発で、設計からテストまでが可能な統合開発環境だ。

 一方、Team Foundation Server 2010は「効率的な開発を行なうためのチーム開発環境」であり、「プロジェクト管理」、「バージョン管理」、「自動ビルド」、「ポータルサイト」、「レポート」の5つの機能があるという(図1)。

図1 Team Foundation Serverを使うことでプロジェクト管理が行なえ、成果物管理のためのバージョン管理、進捗管理のためのレポート機能が利用できる。また、ポータルサイトでプロジェクト内の情報共有が、自動ビルドによるコードの自動チェックなどが可能になる

 Team Foundation Server 2010は、Visual Studioに加え、マイクロソフトの各種開発関連ツールやオフィスソフト(ProjectやExcel)とも連携可能だという。さらに、オープンソース系で広く使われている開発環境である「Eclipse」とも連携が可能で、これは「Team Explorer Everywhere」と呼ばれる(図2)。

図2 Team Foundation Server 2010は、マイクロソフト製品だけでなく、Eclipseからも利用可能であり、AntやMaven2といったオープンソース系のビルドツールも利用可能だ

 また、ALMでも重要となるテストに関しては、テスト全般の管理を行なう「Test Manager 2010」に加え、仮想マシンによる動作環境を管理する「Visual Studio Lab Management 2010」が紹介された。Visual Studio Lab Management 2010は、アプリケーションの動作テスト環境を仮想マシンとして多数作成し、マイクロソフトの管理製品「System Center Virtual Machine Manager(SCVMM)」を併用して、テスト環境を管理するシステムだ。新旧のWindowsやサービスパックの有無、併用するアプリケーションや設定などをさまざまに変えた環境を利用したテストを自動化できるというメリットがある。

Team Foundation Server 2010によるALM

 続いて、Team Foundation ServerとALMの解説だ。ソフトウェア開発プロジェクトの管理には、「進捗管理」と「成果物管理」があり、Team Foundation Serverは、双方の管理をサポートするという(図3)。

図3 開発プロジェクトの管理には、進捗管理と成果物の管理の大きく2つがある

 これまでのTeam Foundation Serverでは、ひとまとまりの開発工程(イテレーション)と、それをまとめた「チームプロジェクト」がプロジェクト管理の基本単位となっていた。一方、今回のTeam Foundation Server 2010では、さらに複数のチームプロジェクトをまとめた「チームプロジェクトコレクション」が加わっており、より大規模な開発にも対応できるという。

 Team Foundation Serverは、マイクロソフト社内でのツールとして開発され、同社の製品開発に使われてきたという経緯がある。大規模なソフトウェア開発を行なうマイクロソフトならではの、新機能ともいえるだろう。

 また、チームプロジェクトを定義するために「プロジェクトテンプレート」が用意されている。「MSF(Microsoft Solutions Framework)」は、マイクロソフト推奨のプロジェクト管理のガイドラインをベースにしたテンプレートだ。

 ここでは、アジャイル開発プロセスとそこで使われる用語を簡単に整理した。

 要件定義から開発、テスト、障害管理までをイテレーションと定義し「イテレーション=繰り返し」とした。ALMでは、これを繰り返し行なうことになるからだ。このイテレーションについては、「開発フェーズ」などと呼ばれることもある。単一または複数のイテレーションにプロジェクト管理を加えたものがチームプロジェクトであり、Team Foundation Server 2010は、こうしたアジャイル開発プロセスもカバーする。

 ALMのうち進捗の管理は、Team Foundation Server 2010が生成する各種のレポート(図4)によって可能になる。単一作業の進捗状況やビルドの品質状況、バグの発生、収束状況などをグラフ化してくれる。これにより、プロジェクトの進捗状況を視覚的に把握できるのだ。

図4 Team Foundation Server 2010のレポート機能により、状況を視覚的に把握でき、プロジェクト管理者の作業を軽減する

 また、現在、多くの開発現場で利用されているExcelによる進捗、タスクの管理に対応しているのもの特徴だ。Team Foundation Serverと通信して、さまざまな情報を取り込む専用のExcelテンプレートが用意されており、これを使うことで、従来通り、使い慣れたExcelでの管理が行なえる。Excel上でリソース割り当てなどを変更し、これをTeam Foundation Server側へ反映させることも可能だ。

 Team Foundation Serverの特徴に「トレーサビリティ」がある(図5)。作業は、タスクや要件として定義され、ソースコードはバージョン管理される。また、自動ビルドなどの結果は、自動的に記録されていく。こうした記録を一元管理しているため、プロジェクトマネージャは、現在のコードの状況を把握できるだけでなく、いつから、どの部分に問題があるのかといったことを素早く把握できるわけだ。

図5 Team Foundation Server 2010は多くの情報を一元管理しており、プロジェクトのさまざまな事象を追跡できる

 Team Foundation Serverの主要機能の1つであるソースコードのバージョン管理には、開発者がソースコードをチェックインした時に、定義されたチェックインポリシーにより自動的にテストなどが行なわれる機能がある。また、自動ビルドにより、ビルドエラーがあれば、「チェックインを禁止する」といった指定も行なえる。この機能がTeam Foundation Serverでは強化されており、「シェルブ」と呼ばれる場所が用意される。開発途中でまだチェックインは行なえないが他の開発者にも見せたいというソースコードは、一時的にシェルブに置いておけるのだ。

 自動ビルドを利用することで、管理されているソースコードが常にビルド可能(少なくとも致命的なエラーが出ない)ことを保証でき、検証範囲を狭めることが可能になる(図6)。Team Foundation Serverでは、チェックインのたびにビルドを行なう「継続的インテグレーション」だけでなく、デイリービルドやマイルストーンビルドといった自動作業をサポートしている。

図6 自動ビルドとそれに含まれるテスト、コード分析などにより、ソースコード管理にチェックインされるコード品質を一定以上とすることが可能

 ソフトウェアの開発では、本質的な作業だけでなく、単純なミスなどによる手戻り時間が生じることが少なくない。Team Foundation Serverでは、仕様を外れるコードのチェックインを阻止でき、品質の低いコードにより他のモジュールに影響を与えるといった問題が発生しにくくなり、無駄な時間の発生を抑えることが可能になる。

 Visual Studio 2010とTeam Foundation Server 2010を組み合わせた環境では、自動UIテストなどの自動化機能や問題再現のためのツールが利用できる。テストの自動化が行なえるだけでなく、テスト作業と開発作業の分離も可能だ(図7)。このため、開発段階で結合テストやシステムテストの設計を行ない、コーディング後のテストは実施だけにする「Wモデル」との相性がよい。また、テストプロセスも一元管理できる。

図7 Team Foundation Server 2010では、テストの自動化だけでなく、テストの結果や経過の記録なども行なえ、障害の再現や状況の把握が簡単になる。これによりテスト担当者はテストに、開発者はコードに専念することが可能になる

 Visual Studio 2010は、コード分析や三層レイヤ(ユーザーインターフェイス、ロジック、データベース)のテストも可能で、パフォーマンス分析も可能だ。また、Visual Studioシリーズとしてこれまで広く使われてきた実績があり、.NETフレームワークには高いセキュリティ機構が組み込まれている。このため、アプリケーションの品質を包括的に高めることが可能なのだという。

 Visual Studio 2010とTeam Foundation Server 2010であれば、開発だけでなく、多くのメンバーがかかわるプロジェクトの管理を「進捗」と「成果物」の両面で実施できる。また、これに加えてテストの自動化や自動ビルドの結果など、テスト作業の情報も統合して管理できるため、ソフトウェア品質を確保が可能となっている。これにより、ALMを実践することが可能となるわけだ。ALMを自動で行なえるわけではないが、多くのことをTeam Foundation Server 2010に情報を集中させて管理することで、メンバーの作業負担を減らし、結果的に効率を上げることが可能となるわけだ。

 ●

 ここで紹介した内容はセミナーのごく一部であり、会場ではVisual Studio 2010を活用したソフトウェア品質確保の手法、Team Foundation Server 2010のデモなど、さまざまな解説が行なわれた。日本マイクロソフトは、今回と同じセミナーを12月14日の午前10時より品川本社ビルで開催する。ALMの実践について半日で聞くことができる貴重な機会であり、開発者だけでなく開発環境の構築、さらにそうしたシステム選択の決定権を持つ人、Visual Studio 2010やTeam Foundation Serverの利用経験がない人にとっても役に立つ内容となっているので、興味のある方はぜひ参加してほしい。参加費は無料で、同社Webページから申し込み可能だ。

 また同社では、2012年1月以降も毎月1回程度の間隔で、開発者向けのソリューションセミナーを開催する。セミナー紹介のWebページで順次紹介されるのでチェックしてほしい。

 最後に、今回の講師は、株式会社クリエ・イルミネートの中原幹雄氏であった。同社は開発関連のトレーニング専門企業でマイクロソフト・パートナーでもある。

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード