連載:VSTSで開発プロジェクトはこう変わる

第1回 Team Systemはココがうれしい

日立システムアンドサービス 酒井 達明
2006/03/08
Page1 Page2 Page3

Visual Studio 2005 Team Systemで提供される機能

 ここまで、VSTSで提供される機能を活用することで、ソフトウェア開発の現場にどのようなインパクトがもたらされるのかについて述べてきた。この章では、VSTSの3つのエディションの個々の機能を検証しながら、どのようなシーンでどのような使い方をすべきかを紹介しよう。

■Team Edition for Software Architects

 アーキテクト向けスイートであるTeam Edition for Software Architects(以下、For Architectsと略す)はVS 2005 Professional Editionの機能に加え、「Connected System」を構成するアプリケーション・ブロックの論理的な構成やその配置プラン、そしてアプリケーション・ブロック自身および配置に関する制約を定義する機能を提供している。

 ここで、注目すべきキーワードは“Connected System”である。つまりは、多階層モデルの分散アプリケーションや、複数のアプリケーション・サービスを連携して新たなアプリケーション機能を創出するような形態のアプリケーションがこの機能のターゲットである。

 逆に、Connected System以外のアプリケーション設計、例えば1バイナリで構成され、スタンド・アローンで動作するようなアプリケーションの設計にFor Architectsを適用してもあまり意味がない。これは、そのようなシステムでは外部に対するネットワークやセキュリティ上の制約は発生しないし、サーバへのアプリケーションの配置を事細かに定義する必要もないためである。

 For Architectでは、Connected Systemの設計に必要な以下のような種類のダイアグラム(図)を作成することができる。

ダイアグラムの種類 役割
アプリケーション・ダイアグラム アプリケーション・ブロックの論理的な配置を定義するダイアグラム
論理データセンター・ダイアグラム アプリケーションを展開するデータセンターに関して、配置ゾーンやサーバの配置を定義するダイアグラム
システム・ダイアグラム アプリケーションの論理的なシステム境界および関連を定義するダイアグラム
配置ダイアグラム 論理データセンターに対し、アプリケーション・ブロックを配置し、アプリケーション・ダイアグラムおよび論理データセンター・ダイアグラムでそれぞれ定義された制約の整合性を検証するダイアグラム
Team Edition for Software Architectsで作成可能な4つのダイアグラム
For Architectsにはこれら4つのダイアグラムを作成するためのデザイナが含まれている。

 この中で、主要となるダイアグラムはアプリケーション・ダイアグラムと論理データセンター・ダイアグラムである。

■アプリケーション・ダイアグラム

 For Architectで分散アプリケーションの設計を始めるには、まず論理的なアプリケーション構成を記述するアプリケーション・ダイアグラムを作成する。

 ちなみに、このダイアグラムにたどり着くまでの設計、例えば要件定義やドメイン分析などの設計は、従来どおりVisioなどのほかのツールに頼るしかない。その点が、現行のバージョンに対して抱く不満点の1つである。

 とはいうものの、アプリケーションを構成する各アプリケーション・ブロックの関連を視覚的に表現できる機能は、いままでにはない機能であることは確かである。なおかつ、単に関連を図式化するだけでなくアプリケーションおよびエンドポイントに対する制約やインターフェイスの詳細を定義できる点がうれしい。


アプリケーション・ダイアグラムにおけるWebサービスの詳細情報定義
このダイアログでは、アプリケーションを構成する各アプリケーション・ブロックの関連を定義する。アプリケーションおよびエンドポイントに対する制約やインターフェイスの詳細も定義できる。上の図は、アプリケーション・ブロックの1つであるWebサービスのインターフェイス(Webメソッド)について、詳細を定義しているところ。
  Webメソッドを定義するWebサービス・エンドポイント。
  Webメソッドの詳細情報(型やパラメータなどの定義)。

 この図のように、あらかじめサービスのインターフェイスを詳細に定義しておくことで、それぞれのアプリケーション・ブロックを地理的に分散したチームで開発した場合でも、インターフェイスの不一致に起因する問題の発生を予防することが可能である。

 そのほかに、アプリケーション・ダイアグラムではアプリケーションを実行するOSの種類、エディション、サービスパック(Service Pack:SP)のバージョンや、.NET Frameworkのバージョンなどの制約を定義することが可能である。また、エンドポイントの制約においては、エンドポイントの利用するプロトコルやポートの制約を定義することが可能である。

 また、アプリケーション・ダイアグラムのエディタからは、アプリケーション・ブロックに関連付けられたプロジェクト・テンプレートを生成することが可能である。これによって、ここで定義されたWebメソッドのスケルトンが、クラス定義にあらかじめ含まれた形でプロジェクトが生成される。

 そして、いったんプロジェクト・テンプレートが作成されると、以降アプリケーション・ダイアグラムと生成されたプロジェクト内のコードは同期が取られる。

 これは一見便利な機能であるが、プログラマーが勝手に追加したWebメソッドがアプリケーション・ダイアグラムに反映されることにもなるため、アーキテクトの意図が開発側の都合で曲げられてしまう危険性があることは否めない。その点は多少の改善が必要であろう。

■論理データセンター・ダイアグラム

 一方、論理データセンター・ダイアグラムは、論理的なサーバ構成を定義するダイアグラムである。このダイアグラムでは主に、ゾーンおよび論理サーバの制約を定義する。

 例えば、論理サーバでホスティング可能なアプリケーションの種類や論理サーバのOSの制約などを定義することが可能である。


論理データセンター・ダイアグラムにおけるOSの制約設定
このダイアグラムでは、論理的なサーバ構成を定義する。上の図は、あるサーバ上でホストするOS(Windows)の制約条件を設定しているところ。
  OSの種別。
  OSのエディション。
  適用されるべきサービスパックのバージョン。

■配置ダイアグラムによる制約の検証

 これらのダイアグラムで定義されたさまざまな制約を検証するために、配置ダイアグラムを利用して「配置の定義」を実行する。これは、アプリケーション・ダイアグラムで定義したアプリケーション・ブロックを論理データセンター上に配置し、制約の矛盾などがないかを検証する目的で利用する。

 例えば、アプリケーションがセキュリティ上の理由で使用を推奨しないポートを利用しようとしていないか、アプリケーションとサーバ間でOSのバージョンや認証の方式に矛盾はないかなどを検証することが可能である。


配置ダイアグラムによる制約事項の検証
配置ダイアグラムでは論理データセンター・ダイアグラムで定義したサーバ上にアプリケーション・ダイアグラムで定義したアプリケーション・ブロックを配置していく。これにより両者の制約に矛盾がないかを検証できる。
  検証エラーの発生したダイアグラムに[×]マークが表示される。

 これらのダイアグラムで定義された制約をXML形式で出力することが可能である。このXMLで定義された制約は、Dynamic Systems Initiative(DSI)*を通じて実際のサーバ設定に反映させることが可能である。しかし、サポートされているサーバ製品はまだ数少なく、この機能が本領を発揮するのはまだ少し先といえよう。

* DSIはマイクロソフトが提供する、分散システムを設計、展開、管理、運用する際の作業を簡素化および自動化するソリューション。


 INDEX
  Visual Studio Team Systemで開発プロジェクトはこう変わる
  第1回 Visual Studio 2005 Team Systemはココがうれしい
    1.Visual Studio 2005 Team Systemとは何か?
  2.Team Edition for Software Architects
    3.Team Edition for Software Developers/Team Edition for Software Testers
 
インデックス・ページヘ  「Visual Studio 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 記事ランキング

本日 月間