C# と .NET Framework 4 を主にWindows Formのアプリケーション開発について

2010年8月18日

MSF for CMMI ProcessTemplate比較 (3) MSF for CMMI ProcessTemplate比較 (3)

前回はWork Item Trackingの概要を確認しました
今回からは、プロセス テンプレート内の作業項目個別にv4.2とv5.0の差分を確認していきます。

まず、バグ作業項目について詳細を比較してみます。

 

v5.0の作業項目一覧:
image

v4.2の作業項目一覧:
image

v4.2に含まれている作業項目定義のファイル名(xxx.xml)は、v5.0になっても同じでした。

バグ(Bug.xml)

説明が変更されています。
何の情報が含まれているか→この作業項目で何をするか(できるか)に説明が変わり、使用者にとってわかりやすい情報になっています。
(でも「トラックする」って・・・せめて追跡するとか)

v5.0 必要な動作と実際の動作との相違点を記述し、障害を修正するために行った作業をトラックし、修正を検証します。
v4.2 バグの解決、およびその解決策の検証作業をトラックするための情報を含んでいます。

・・・余談ですが・・・

ヘルプとかで、ただ単に画面の説明が書かれていて、使い方が分からないものが結構あります。たとえば、[クリア]ボタンの説明で、”情報をクリアします” とか記述されていたり。「それぐらいは解る!!」とか突っ込み入れてしまいます。

何を消すことが出来るか、もしくは消されないかを調べたいからヘルプを引いているのにね。 テクニカル ライタの方頑張ってください。チョットした努力でサポートセンタの苦労が軽減するかも。

PTEを使用した場合の作業項目の編集画面:

image

フィールドのv4.2 → v5.0の差分
(各フィールドに付いている説明文の相違は省略します)

コア フィールド

  • 担当者(System.AssignedTo)
    RULESに<ALLOWEXISTINGVALUE/>が追加されている。
    GUIではわからない syncnamechanges="true" が追加されている。
    これは、人名のカスタム フィールドの同期の有効化(MSDN)で説明されている人名のActiveDirecotryとの自動同期を指定する属性です。
    TFS2008からのアップグレードを行った場合、この属性は自動付加されないため手動で行う必要がある。属性の追加はGUIではなく、コンソールからwitadminコマンドを使用して実行する必要がある。方法→MSDN
  • 変更者(System.ChangedBy)
    RULESに<ALLOWEXISTINGVALUE/>が追加されている。
    担当者と同様に自動付加されない syncnamechanges=”true”が追加されている。

  • 作成者(System.CreatedBy)
    RULESに<ALLOWEXISTINGVALUE/>が追加されている。
    担当者と同様に自動付加されない syncnamechanges=”true”が追加されている。

コモン フィールド

  • 懸案事項(Microsoft.VSTS.Common.Issue)
    懸案事項として作業項目を設定するなどの、作業項目をハイライトするために使用されていた項目だが、削除されている
  • アクティブ化した人(Microsoft.VSTS.Common.ActivatedBy)
    RULESに<ALLOWEXISTINGVALUE/>が追加されている。
    担当者と同様に自動付加されない syncnamechanges=”true”が追加されている。
  • 解決者(Microsoft.VSTS.Common.ResolvedBy)
    RULESに<ALLOWEXISTINGVALUE/>が追加されている。
    担当者と同様に自動付加されない syncnamechanges=”true”が追加されている。
  • 解決理由(Microsoft.VSTS.Common.ResolvedReason)
    新規フィールド
    バグが解決された理由を選択するフィールド。以下の候補から選べる。
    ”仕様”、”再現不可能”、”延期”、”重複”、”修正済み”、”廃止”
  • 終了者(Microsoft.VSTS.Common.ClosedBy)
    RULESに<ALLOWEXISTINGVALUE/>が追加されている。
    担当者と同様に自動付加されない syncnamechanges=”true”が追加されている。
  • 優先度(Microsoft.VSTS.Common.Priority)
    値が変更されている

    従来1~3の値範囲だったが、v5では、1~4の範囲変更されている。
    デフォルト値も3だったが、2に変更されている。
    また、説明に基準が追記されている。
    ビジネス上の重要度。1= 要修正、4= 重要ではない。
  • トリアージ(Microsoft.VSTS.Common.Triage)
    選択候補の1つの文字列が変更されている
    従来 ”情報取得済み” だったが、v5では、"受信した情報"に変更されている。
  • 深刻度(Microsoft.VSTS.Common.Severity)
    値が変更されている
    従来の文字列の前に数値が付加されている。
    ”致命的”→”1 - 致命的”、”高”→”2 - 高”、”中”→”3 - 中”、”低”→”4 - 低”。
    デフォルト値も”低”から”中”に変わっている。

    私の場合これは変更してほしくなかった。外部のバグ トラッキング システムとインテグレーションしているため、プログラム変更が必要となってしまう。
    他の整合が取れればv4.2と同じ値に変更する方法で逃げられるかもしれない。
  • スタック順位(Microsoft.VSTS.Common.StackRank)
    新規フィールド。Double型。
    値の小さいスタック順位の項目を最初に処理します。トリアージにより設定します。

    優先度だけでは作業順を決められないために追加された項目想像している。

テスト インテグレーション フィールド

まるっきり変更されている
v4.2にあった テスト名(Microsoft.VSTS.Test.TestName)テスト ID(Microsoft.VSTS.Test.TestId)テスト パス(Microsoft.VSTS.Test.TestPath)は削除されている。

  • システム情報(Microsoft.VSTS.TCM.SystemInfo)
    新規フィールド。HTML型。
    テストによって自動的に提供されるテスト コンテキスト。
    チームビルドと統合された自動テストでバグを検出した際に設定されるフィールドか?
    (現在詳細は不明)
  • ステップの再現(Microsoft.VSTS.TCM.ReproSteps)
    新規フィールド。HTML型。
    バグの確認方法。必要な動作と実際の動作の対比で終わります。
    予測できない動作の再現に必要な手順。
    (現在詳細は不明)

ビルド インテグレーション フィールド

  • 発見されたビルド(Microsoft.VSTS.Build.FoundIn)
    助言値が変更されている
    ”なし”→”<なし>”
  • 統合ビルド(Microsoft.VSTS.Build.IntegrationBuild)
    助言値が変更されている
    ”なし”→”<なし>”

スケジュール フィールド(旧 MSF for CMMI PI Fields含む)

  • 最初の見積もり(Microsoft.VSTS.Scheduling.OriginalEstimate)
    新規フィールド。Double型。
    このバグを修正するために必要な作業単位の最初の見積もり。
    見積もりと実績の差を後で集計できるようになる。
  • 見積もり(Microsoft.VSTS.CMMI.Estimate)
    削除されている。Double型。
    従来作業の見積もり(人時)を入れていた項目であるが、廃止されたようだ。
    代わりに上記新フィールド「最初の見積もり」を使用する事になる。
  • 残存作業(Microsoft.VSTS.Scheduling.RemainingWork)
    実績作業(Microsoft.VSTS.Scheduling.CompletedWork)
    基準作業(Microsoft.VSTS.Scheduling.BaselineWork)

    削除されている。Double型。
    バグを解決するための残存時間の見積もり (人時)等、工数管理の実績を入れていた項目だがv5.0のテンプレート内には含まれていない。
    MSDNの説明:工数、スケジュール、および目標の日付 (CMMI)には含まれているため、フィールド定義はTFS内に残っていると思われる。この記事では、[詳細] タブの [作業 (時間)]に含まれているような記述であるが、テンプレートを見る限り[詳細]タブ内には存在していない。(実際にプロジェクトを作成してもない)
    テンプレートに自分で追加の必要があるのか、工数管理の設定のようなカスタマイズがあるのかは不明。

ワークフローの相違点

v5.0のワークフロー:

image 

v4.2のワークフロー:

image

主な変更点

  • 終了に遷移したとき
    従来 ”担当者” が空に設定されていたが、残るようになった。
    ”終了者” に終了を設定した人が設定されるようになった。
  • アクティブから終了への遷移が廃止
    従来は修正しない場合(仕様・再現しない等)はアクティブから終了に遷移の際に理由を選択していた。v5では、解決済みに理由を選択して遷移させる。同時にMicrosoft.VSTS.Common.ResolvedReason属性に解決理由が設定される。
  • 解決済みからアクティブへの遷移したとき
    System.AssignedTo(担当者)にMicrosoft.VSTS.Common.ResolvedBy(解決者)の値が設定される。

レイアウトの変更点

PTEのプレビューでの確認(見た目なので基本部のみ比較)

v5.0のプレビュー:

v5.0のプレビュー

v4.2のプレビュー:

v4.2のプレビュー

  • 計画部分が真ん中に集まって見やすくなった感じはする。
  • プレビューではわからないが、HTML型の場合多少リッチな編集画面になる。

 

意外に見た目以上に変更点があり。
TFSと外部システムを連携させている場合、フィールドの値が変更されていたり、スケジュール関連のフィールドがなくなっている等の問題がある。
スケジュール部分のフィールドについては、MS-Projectとの連携と併せて別途調べたいと思う。

2010年8月13日

TFS 2010 Power ToolsのPTEの問題 TFS 2010 Power ToolsのPTEの問題

TFS 2010 Power Toolsで拡張された機能(PTE)記事で紹介してProcess Template Editorですが、TFS 2008に付属のMSF for CMMI v4.2のWork Itemを開くとエラーが発生します。

 

バグ作業項目を開いた時のエラー メッセージです。

image

Visual Studioの “エラー一覧” を開くと次のようなメッセージが表示されます。

image

エラー    1    Unsupported version '1.4.0.0', can only support '2.0.0.0'.    H:\LiveMeshSync\Win7\PrivateShare\Dev\TFSテンプレート\2008\MSF for CMMI Process Improvement - v4.2\WorkItem Tracking\TypeDefinitions\Bug.wit    1    40    その他のファイル

Bug.witを開いて確認すると、1.4.0.0の記述のあるdslVersionの部分を言っているようです。

<?xml version="1.0" encoding="utf-8"?><workItemType dslVersion="1.4.0.0" Name="バグ" source=

 

TFS2008をTFS2010に移行するアップグレード手順はあるので、MSF for CMMI v4.2(若しくはそのカスタム)を2010に移行することはできるはず。(実験済)

ただし、v4.2のテンプレートで新規プロジェクトがエラーになった気がする。

v4.2のカスタマイズしたテンプレートをTFS2010にアップロードはできたが(気がしてるだけ?)、v5.0のテンプレートに乗り換えるのは必須になるのかも知れない。

以降、MSF for CMMI v4.2のテンプレートに関しては TFS 2008 Power Tools のPTEを使う事にする。

注記

  • バグ以外の作業項目は2010のPTEで開く事が出来る。
    もしかしたら、私の環境が変なのかもしれない。

MSF for CMMI ProcessTemplate比較 (2) MSF for CMMI ProcessTemplate比較 (2)

前記事では、PTEでプロセス テンプレートを開く方法と"Methodologyの違い"を確認しました。
今回は "Work Item Tracking" の違いを確認します。

 

Type Definitions

"Type Definitions" は作業項目の種類を定義する部分です。

上がv4.2、下がv5.0です。

v4.2

v5.0

2つの作業項目が追加されています。

  • テスト ケース
  • 共有ステップ

個々の作業項目の違いについては、後で詳しく調べます。

 

Categoriesタブ

TFS 2010で追加された概念です。

image

image

 

MSDNの説明ページ「カテゴリへの作業項目の種類のグループ化」によると、

  • 作業項目の種類の名前はさまざまで、ロケールに依存します。作業項目の種類にカテゴリを割り当てると、複数の異なるアプリケーションが簡単にカテゴリ内のすべての作業項目の種類にアクセスでき、また既定の作業項目の種類を適用できます。

  • 類似した機能を実行するカスタムの作業項目の種類を作成すると、追跡に便利な場合があります。たとえば、コード障害を追跡するために、3 つの作業項目の種類を使用するとします。この場合、名前、形式、およびフィールドが異なっていても、すべての作業項目の種類がバグ カテゴリとしてタグ付けされたカテゴリに属すことができます。

  • カテゴリの既定の作業項目の種類を定義しておくことで、Microsoft テスト マネージャー などの他の Team Foundation クライアントで作業しているときに、フィールドを正しく設定できます。カテゴリに対して定義されている既定の作業項目を選択することで、既定のコンテンツを使用して他の多くのフィールドを自動設定できます。

のように説明されています。

たとえばワークフローの異なるバグ項目があった場合、カスタム作業項目を作成する必要があります。作業項目を分けた際にバグの一覧を作成したいときにチームクエリの作成が面倒でしたが、「カテゴリでグルーピングすることで簡単になりますよ」という事らしい。

 

Default Work Itemsタブ

チームプロジェクトが作成されたときに自動的に追加される作業項目の一覧です。
Categoriesと逆でv5では空になっています。

v4.2

v5.0

初期作業項目は、はっきり言って邪魔だったので無くなってOK。

初めてTFSでプロジェクトを作成したときに、この初期作業項目の内容を理解するのに時間がかかった。しかも、MSF for CMMIテンプレートではGUIで作業項目を削除できないので個別に"終了"ステータスに設定する作業がまた面倒でした。

 

Link Typesタブ

TFS 2010で追加された概念です。

v4.2

v5.0

MSDN「リンクの種類を使用して作業項目を関連付ける方法のカスタマイズ」によると、

プロジェクト追跡の要件を満たすために、既存のリンクの種類をカスタマイズしたり、新しいリンクの種類を作成したりできます。リンクの種類は、作業項目間の関係を作成するために使用します。次のいずれかの理由でリンクの種類の変更または作成が必要になることがあります。

  • チームの名前付け規則を合致させるために使用されているリンク ラベルを変更する。

  • チームのプロセスに固有の特定の関係を追跡するためにリンクの種類を追加する。

...です。

要するに、親子関係や関連情報等の関連付けを作業項目に持たせるための定義です。
また、作業項目の順序(先・後)を定義できますから、MS-Projectと連携してくれると効果的ですよね(連携してくれるか別途調査予定)。

MSDN「プロジェクトを効果的に追跡するためのリンクの種類の選択」にもっと分かりやすい説明があります。

 

Queriesタブ

チームクエリの初期設定です。

v4.2

image

TFS 2010ではクエリをフォルダ構造で分類することが出来るようになってます。
分類分けされて初期クエリの数も増えています。特にテスト関連の作業項目用のクエリが追加されています。

 

MSF for CMMI ProcessTemplate比較 (1) MSF for CMMI ProcessTemplate比較 (1)

前記事に引き続いて、TFS 2008と2010の ”MSF for CMMI Process Improvement” テンプレートの違いを確認します。

前記事ではフォルダ構成を見ましたが、今回は PTE に各テンプレートを読み込んで比較します。
(v4.2のプロセステンプレートも問題なく読み込めるようです)

ちなみにPTEはプロセステンプレートのカスタマイズに使うツールで、TFS 2010 Power Toolsに含まれてます。プロセステンプレートを開くには、TFSからローカルディスクにプロセステンプレートをダウンロードする必要があります。

 

プロセステンプレートのダウンロード方法

プロセステンプレートをダウンロードするには、Visual Studio 2010のメニューバー<チーム>→<チーム プロジェクト コレクションの設定>→<プロセス テンプレート マネージャ>を実行します。

プロセス テンプレート マネージャのダイアログで、”MSF for CMMI Process Improvement v5.0” を選択して[ダウンロード]ボタンを押します。

 

プロセステンプレートをPTEで開く

VS 2010のメニューバー<ツール>→<Process Editor>→<Process Templates>→<Open Process Template>を実行します。

ファイル セレクション ボックスで、先にダウンロードしたフォルダの直下にある “ProcessTemplate.xml” を開きます。

 

Methodologyの違い

v4.2が上でv5.0が下です。

image  image

v5.0になってNameからハイフンが抜けているのと、説明が簡素化されています。

Plug-insは、フォルダ構成とほぼ同じなので次の3つが増えています。

  • Lab(ラボ プロセステンプレート)
  • Test Management(テスト プロセステンプレート)
  • Build(ビルド プロセステンプレート)

Groupsタブも同様です。

image

image

ここは大きな問題は無さそうです。

 

MSF for CMMI Process Improvement - v4.2とv5.0 MSF for CMMI Process Improvement - v4.2とv5.0

Team Foundation Server 2008に付属しているプロセステンプレートMSF for CMMI Process Improvement - v4.2が、Team Foundation Server 2010 では v5.0になってます。

日本語で両者の差を解説されているページが残念ながら見つかりません。
(どなたかご存知の方いらっしゃいましたら、英語でも良いのでコメントお願いします)

TFS 2008でMSF for CMMIプロセステンプレートをカスタマイズしていたので、v5.0の新しいテンプレートに同様のカスタマイズを行うか(行えるかどうか)の判断のため調査しています。

フォルダ構成

まずは、TFSからそれぞれのテンプレートをダウンロードしてみました。

v4.2のフォルダ構成が左、v5.0が右です。

 v4.2のフォルダ構成 v5.0のフォルダ構成

v5.0には次のフォルダが追加されています。

  • Lab(ラボ プロセステンプレート)
  • Test Management(テスト プロセステンプレート)
  • Build(ビルド プロセステンプレート)

v5.0で削除されているテンプレートは無いようです。とりあえず大きい括りでは一安心。

実際のところPTE上の比較と、実際のXMLファイルの比較を行わないといけない。

今後さらに詳しく調査していきます。(このページにリンクを追加していきます)

2010年5月 3日

TFS 2010 Power Toolsで拡張された機能(PTE) TFS 2010 Power Toolsで拡張された機能(PTE)

前記事「TFS 2010 Power Toolsが公開 」ではTFS 2010 Power Toolsで削除された機能を一覧しました。今回は、変更・拡張された機能のうち、Process Template Editioを見てみます。
(ネタ元:bharry's WebLog - TFS 2010 Power Tools have released

 

プロセス テンプレート エディタ (PTE)

プロセス テンプレート エディタ(Process Template Editor)は、Team Project の管理方法を決める”プロセス テンプレート”を編集するGUIツールです。

プロセステンプレート自体は多数のファイル(その殆どはXML等のテキストファイル)から構成されているため、直接編集することは不可能ではありません。ただ構造が複雑ですから、PTEを使うのが最も簡単です。(過去にはいくつかツールがありましたが、PTEに集約されました。)

TFSを初めて使うのであれば、プロセス テンプレートの編集は後回しにして「Microsoft Solutions Framework (MSF) for Agile Software Development」と「MSF for Capability Maturity Model Integration (CMMI) Process Improvement」の両方のプロジェクトを作成して、いろいろ実験した方が良いと思います。

”MSF for Agile と MSF for CMMI の主な違いとワークフロー状態の主な違い”については、MSDNに日本語ドキュメント「プロセス テンプレートの選択」に書かれています。

個人的にはパッケージプロダクト開発のために、CMMIをカスタマイズして使用しています。小規模な単独カスタムプロジェクトの場合はAgileを使うのもありかも。
CMMIテンプレートは作業項目の削除がGUIではできなくなっています。

基準とするテンプレートが決まったら、ギャップ部分をPTEでカスタマイズします。

最初は作業アイテムにプロパティを追加して、Visual Studio上のGUIで編集できるようにするところから始めます。プロセス テンプレートを編集すればワークフローも変更可能ですが十分に検討・テストをする必要があります。データが蓄積されたプロジェクトのテンプレートを変更することは可能ですが保証されません。

 

TFPT 2010 PTEの変更点

TFPT 2010で最も力を入れたのはPTEのようです。

Team Foundation Server 2010で追加された全ての機能をサポートする事と、158個のバグ修正が行われています。

次のリストは変更点の一覧:

  • リンク型のサポート
  • 作業項目型(作業項目タイプ)カテゴリのサポート
  • クエリフォルダのサポート
  • 新しい作業項目用のコントロールの追加
    ラベル・リンクラベル・新しいリンクコントロール
  • ビルドの追加ラボテンプレート設定のサポート
  • パーミッション編集のサポート
    対象:ソースコントロール・ビルド・ラボ・クエリとクエリフォルダ
  • 158個のバグ修正

 

リンク型

TFS 2010で追加されている新しい作業項目のデータ型。
MSDNマガジン 2009/Octの記事「作業項目のカスタマイズ」の”Team System 2010”章に説明がありました。(”リリースでは変更されているかも”の注意書き付き)

Team Foundation Server の以前のリリースでは、作業項目をリンクするという考え方をサポートしています。作業項目を別の作業項目にリンクすると、双方向性の関係を構築することになります。すべての作業項目を任意の作業項目にリンクできます。この機能は便利ではありますが、親子関係を構築できません。また、Microsoft Project でタスクを管理する際のごく一般的手順として、タスクの優先順位を定義できることが必要になるでしょう。さいわいなことに、2010 リリースではこのような分野の問題に対処されています。新しいリンクのセマンティクスをサポートするために、マイクロソフトは作業項目のクエリに新たに 2 つの種類を追加しました。それが作業項目と直接リンク (リンク クエリ)、および作業項目ツリー (ツリー クエリ) です。新たに作業項目のクエリを作成する際、これら 2 つの新しい種類を選択できます。あるいは、以前のリリースで標準のクエリの種類だった作業項目のフラット リストも選択できます。

 

寝ても覚めても.NET(?)さんの記事「作業項目のリンクタイプ」にもっと具体的な説明がありました。

確かに、TFSとMS-Projectとの連携では、サマリータスクをTFSと連携しないようにしたりと不整合を回避してやる必要がありました。Project連携は改善されているかな(?)

 

作業項目型(作業項目タイプ)カテゴリ

MSDN「プロジェクトの追跡データ、フォーム、ワークフロー、その他のオブジェクトのカスタマイズ」に簡単な説明がありました。

カテゴリでは、複数の作業項目の種類が類似の作業項目を追跡しているが、異なる名前で参照されている場合に、それらの作業項目の種類のグループを定義します。カテゴリは、クエリの実行、レポートの生成、および特定のインスタンスへの既定の作業項目の種類の設定に便利です。

いまいち何の事言っているのか分かりません。
(理解できて有用なら追記します。)

TFS 2010 Power Toolsが公開 TFS 2010 Power Toolsが公開

2010/4/27付でTeam Foundation Server Power Toolsがリリースされてます。

Team Foundation Server Power Tools (TFPT)は、Team Foudation Serverに便利な機能を追加する必携モジュールです。 TFS 2010対応版が出て本当に良かった(笑)。

bharry's WebLog image

日本語版は無く英語版だけですが、主に管理者用なので十分使えます。
Team Foundation Serverの運用・管理を楽にしてくれますので必ずインストールしてます。

 

入手方法

マイクロソフトのサイトからダウンロードできます。

 

削除された機能

Team Foundation Server 2010からは多くの機能が削除されたようです。
理由は「TFS 2010製品自体に組み込まれたから」。

詳細はまだ確認していませんが、tfpt コマンドに含まれていた機能が削除リストに含まれている。 定時処理に組み込まれるような機能はなさそうに見える。
tfptコマンドを使って自動処理を行っているなら、移行前に確認しておく必要がありそう。

次のリストがtfptからTFSに移された機能の一覧:
※リスト中の ‘tfpt’ は、Power Toolsに含まれているコンソール アプリケーションです。

  • ビルド通知 機能(Build Notifications)
    Team Explorer 2010の BuildNotification.exeとして製品に組み込まれた。
    image 
    Team Explorer 2010をインストールすると、スタートメニューに追加されます。
  • TFSユーザ(TFS Users)
    ユーザ名の変更は自動処理されるため不必要になった。強化したユーザ管理機能のため “tfsconfig identities” を出荷。
  • tfpt ロールバックコマンド(tfpt Rollback command)
    “tf rollback” として製品に組み込み。
  • tfpt 履歴コマンド(tfpt History command)
    Tem Explorer 2010に分岐を追う能力が付加された。
  • tfpt 作業アイテム破棄コマンド(tfpt DestroyWI command)
    witadmin destroywi として製品に組み込み。
    (チームプロジェクトをCMMIテンプレートで作った場合、作業アイテムを削除する唯一の方法でした。)
  • tfpt 作業アイテム種別破棄コマンド(tfpt DestroyWITD command)
    witadmin destroywitd として製品に組み込み。
  • tfpt TweakUI command
    製品に組み込まれた。
  • tfpt グローバルリスト破棄コマンド(tfpt Destroygl)
    witadmin destroygloballist として製品に組み込み。
  • tfpt ドキュメントURL変更コマンド(tfpt ChangedocUrl)
    Project/Excel addinとして製品に組み込み。
  • tfpt ワークスペースコマンド(tfpt Workspace command)
    tf workspace が追加された。

 

追加された機能と変更点

TFPT 2010では、大きい機能追加は無く、主にバグ修正と少しの機能拡張が行われています。

機能拡張部分については次回以降!