複数の開発者でソフトウェア開発を円滑に進めるには?特集・Visual Studioによるチーム開発(2/3 ページ)

» 2012年02月01日 00時00分 公開
[太田 寛,@IT MONOist]

Visual Studioによるチーム開発実践

 最初のポイント「1.各開発者が担当するソースコードの独立性が高いこと」は、開発ツールがどうのこうのというよりも、“設計の良しあしの問題”です……といってしまうとここで話が終わってしまうので、まずは、Visual Studioが想定する開発対象の構造を図に示します。


開発対象の構造 図2 Visual Studioが想定する開発対象の構造

 Visual Studioでは、“プロジェクト”という単位で、システムを構成する個々の部品を開発できます。図のように、システム全体に対応する1つのソリューションと、個々の部品にそれぞれ対応するプロジェクトで構成されます。各プロジェクトは1人の開発者が担当するか、最低限1つのファイルを1人の開発者が担当するという開発体制がよいでしょう。

開発対象の分割と担当 図3 開発対象の分割と担当

 ETロボコンの場合、部品のプロジェクトは、クラス図やコンポーネント図に描かれたパッケージと1対1で対応させるのがよいでしょう。また、ロボットと通信するPC側のプログラムは、同じソリューションのプロジェクト(C#やVBなども可)を追加するか、別のソリューションを作成して管理します。さらに、ロボット上で動作するプログラムと同じソリューションに、PC上のエミュレーションテストプロジェクトを追加して管理するのもよいでしょう。

 開発対象の分割は、実は非常に重要です。分割の良しあしによって、開発効率に何倍もの差が出てきます。これは“設計の良しあしの問題”です。開発作業を進めるに当たり、あるプロジェクトに対する修正が別の特定のプロジェクトの作業に頻繁に影響を及ぼすような場合は、分割の境界を見直した方がよいでしょう。

 さて、先に挙げた、残りの2つのポイントですが、こちらは、Visual Studioの製品ファミリの、その名も「Team Foundation Server(以下、TFS)」という製品の機能を使えば、容易に実現が可能です。

 TFSは、Visual Studioとシームレスに連携して利用できるチーム開発支援環境です。開発成果物のバージョン管理はもとより、構成管理、要求管理、計画進捗、テストや障害管理、開発プロセスの定義やビルドサーバなど、チーム開発に必要なさまざまな作業を支援します。TFSはサーバであり、開発者が使う個々のVisual Studioはクライアントとして動作します。なお、TFSは、MSDN Subscriptionの「Visual Studio 2010 Professional Edition(有償版)」以上のエディションに同梱されています。TFSの詳細は、http://www.microsoft.com/visualstudio/en-us/visual-studio-11を参考にしてください。

Team Foundation Serverと各担当者の開発環境 図4 Team Foundation Serverと各担当者の開発環境

 実際にTFSを使うには、サーバ上でのTFSのセットアップ作業などが必要であり、手間もかかるので、本稿では読者の皆さんが手軽に試せるよう、

CodePlex(http://www.codeplex.com/)

で公開されているオープンソース開発用サイトを例に説明します。自前のサーバをセットアップせずに使えるクラウド版のサービスも試行が始まっています。詳しくは、http://blogs.msdn.com/b/bharry/archive/2011/09/14/team-foundation-server-on-windows-azure.aspxをご覧ください。

 CodePlexでは、膨大な数のさまざまなオープンソースプロジェクトが公開されていて、各プロジェクトはTFSの上で管理されています。CodePlexで提供されている機能がTFSの全ての機能というわけではないのですが、TFSがどんなものかを試してみたい方は、CodePlexを使ってみてください。CodePlexの使い方については、筆者のブログ「CodePlexを使ってみよう」を参考にしてください。

※補足:ETロボコンは、ソフトウェア開発のスキルアップを目的に制御の設計内容を競う競技でもあります。そのため、作成したソースコードを公開して、いろいろな人にソースコードを見てもらい、コメントをもらうのも開発力アップにつながるのではないか? と、筆者は思っています。


Copyright © ITmedia, Inc. All Rights Reserved.