連載

Visual Studio 2005 Team System概要

第1回 Visual Studio 2005 Team Systemとは何か?

デジタルアドバンテージ
2004/10/16
Page1 Page2

Visual Studio 2005 Team Systemの詳細

 VS2005TSに含まれる各機能(ツール)について、構成図を上から順にもう少し詳しく見ていこう。

■SOAベースの分散システム・デザイナ

 Team Architectに含まれる3つの「モデリング」機能に対するツールは、総称して「分散システム・デザイナ(Distributed System Designers)」と呼ばれる。これは「Whitehorse」という開発コード名で呼ばれていたもので、分散システムの設計に使用するものである。

Visual Studio 2005 Team Systemの機能構成図(上部分)

 分散システムというとかなりの大規模システムを想像するかもしれないが、ここで「分散システム」というキーワードが使われている理由は、そのツールがSOA(Service Oriented Architecture:サービス指向アーキテクチャ)に基づいているためである。現在マイクロソフトに限らず、多くのベンダや企業が新しいシステムの構築手法としてSOAを提唱している。SOAは簡単にいうと、システムを独立した1つの「サービス」として構築することにより、システム間の接続性やシステムの再利用性を高めようというものだ。そしてサービスを適切に組み合わせて利用することにより、システムを構築したり、あるいは別のサービスを構築したりする。このように、SOAの考え方に基づいてシステムを設計すれば、それは必然的に分散システムになるといえる。

 Team DeveloperとTeam Testに含まれる各機能については、開発者にとっては比較的なじみの深いものであろう。これらには、VS.NET 2003用に現在でもマイクロソフトのサイトから入手可能なツールも含まれている。例えば「静的コード分析」に対応した「FxCop」というツールは、マイクロソフトが運営するGotDotNetのページからダウンロードしてVS.NET 2003でも利用可能だ。

■クラス・モデリングとVisio/UMLモデリング

 次の部分に進もう。「単体テスト」と「コード・カバレッジ」についても開発者にとってはおなじみのものなので、今回では解説を省略する。これらのテストの実施にはデベロッパーとテスターとの密なやりとりが必要となるため、図では2つの分類にまたがっている。

Visual Studio 2005 Team Systemの機能構成図(中部分)

 Team ArchitectとTeam Developerにまたがる「クラス・モデリング」は、クラスを設計するためのものだ。具体的には、次回以降で解説予定の「クラス・デザイナ」により、UMLでいうところのクラス図を設計することになる(ただし形式はUMLそのものではなく、.NET用に独自に拡張されている)。もはやこの種のツールとしては当たり前となりつつあるが、クラス・デザイナと、それによって出力されるコードは完全に同期が取られる(クラス図の変更はコードに直ちに反映され、コードの変更もクラス図に直ちに反映される)。

 クラス図以外のUMLモデリングについては、引き続きVisioを活用することになるようだ。ただしこれはUML 1.xについてであり、UML 2.xについてはVS2005ではサポートされない。VS2005では、SDM(System Definition Model)と呼ばれるXMLベースのモデリング言語によりシステムをモデリングする。SDMをビジュアルに編集するツールの1つが、上述した分散システム・デザイナである。

 UMLに対するマイクロソフトのスタンスは非常に気になる点であるが、簡単にいってしまうと、UMLは開発者に広く認知されており汎用的であるが、実システム、特にSOAベースの分散システムを正確かつストレートに表現するには使えない、ということのようだ。

■Team FoundationクライアントとTeam Foundation

 構成図の下層部分に位置するのは、Team Foundationクライアントである。これはアーキテクト、デベロッパー、テスターの各チームに共通した機能である。

Visual Studio 2005 Team Systemの機能構成図(下部分)

 そして、そのサーバとなるものがVS2005TSとは別製品として提供予定の「Team Foundation」である。これにはTeam Foundationサーバが含まれており、各チームからのプロジェクトに関する成果物や報告を一元的に管理する。

 図中には「ワーク・アイテム」という用語が出てくるが、これは各チームのメンバーに割り当てられる個々の作業の単位である。ワーク・アイテムには、「要求」「タスク」「問題」「バグ」といったさまざまな種類のものが用意されており(カスタマイズ可能)、その状態遷移が設定されることにより、ワーク・アイテムのワークフローが決定される。非常に大ざっぱにいえば、こういったワーク・アイテムの集合がVS2005TSにおける開発プロセスとなる。

 実際の開発プロジェクトでは、まず事前に定義された開発プロセス(カスタマイズ可能)を選択し、そこで定められたワーク・アイテムのフローや、ポリシー、プロセスのガイド(手順書)などに従いながら開発を進めることになる。

 ワーク・アイテムはバグのトラッキングなどにも使用される。例えば、テスト担当者は見つかったバグに関してワーク・アイテムを登録し、開発者に割り当てることができる。開発者はこのワーク・アイテムを受け取り、バグを修正して、ワーク・アイテムを更新する。このとき開発者が修正したコードは「変更管理」機能により、Team Foundationのソース・コード管理機能を用いてチェックインする(そしてこの作業もワーク・アイテムに関連付けることができる)。もちろん、これらすべての作業はVS2005上で可能だ。

 ソース・コード管理については、マイクロソフトは現行製品としてVisual SourceSafe 6.0を提供しており、その後継としてVisual SourceSafe 2005を準備している。しかし、Team Foundationには、Visual SourceSafe 2005の機能がほとんど含まれ、ストレージとしてSQL Server 2005を利用するソース・コード管理機能が統合されている。

Team Systemの意義

 以上、ツールの集合体としてVS2005TS全体を簡単に見てきた。冒頭で述べたとおり、各工程においては、現時点でもすでにさまざまなツールが各ベンダより提供されており、Visual Studioに統合可能である。しかし一連のツールがただそろっているだけではツール間のギャップが生まれるだけで、大規模な企業システム構築にかかるコストと時間を削減することはできない。各チームが利用するツールが真に統合・連携していることが重要である。

 ツールの連携は、チーム間のコミュニケーションともいえる。システムの規模が大きくなってくるとプロジェクトでチームを編成するのは当たり前のことであり、チーム間でコミュニケーションが必要なことも当然である。問題はいかにスムーズにそれを行えるかということだ。

 VS2005TSでは、各チームにツールを提供し、それをバックボーンとなるTeam Foundationにより密に統合することでこの問題を改善しようとしている。

 これまでは開発者のためのツールだったVisual Studioの適用範囲は、VS2005TSにより大幅に広がることになる。これは余談になるが、1つの不安は、Team Foundationも含め、実績もなく新しいツールがどこまで使えるものなのかという疑問である。しかし、それらツールの多くは、長年マイクロソフトが自社内で使っていたものをベースとしているとのことである。.NET FrameworkやVisual Studio、Windows OSなどの超大規模なソフトウェアを、マイクロソフトはどうやってチーム開発し、どうやってテストし、またどんな開発プロセスを使って開発しているのだろうと考えたことはないだろうか。その答えがVS2005TSであるといえるだろう。そういう意味では、VS2005TSはすでに十分な実績を持っている。

 さて次回では、実際にVS2005TS Beta1 Refreshを使いながら、Team Architectの主機能である分散システム・デザイナやクラス・デザイナについて見ていく予定だ。End of Article


 INDEX
  Visual Studio 2005 Team System概要
  第1回 Visual Studio 2005 Team Systemとは何か?
    1.Visual Studio 2005の製品ラインアップとTeam Systemの機能構成
  2.Visual Studio 2005 Team Systemの詳細
 
インデックス・ページヘ  「Visual Studio 2005 Team System概要」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間