要件定義の不安をなくす。要件定義の不安をなくす。ユニファのバックエンド分割に学ぶイノベーションメタバース開発に必要な技術の基本知識をおさらい。Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。け機能では、具体的な機能を見ていきます。Developers(以下、VSTD)という製品が提供されていました。Edition(以下、VSTS-DE)が提供されています。VSTS-DEに用意されている主要機能は以下の3つです。動的コード分析この主要3機能というくくりはVSTDのときと変わりありません。これらのそれぞれに機能の強化や新機能の追加を行ったものがVSTS-DEになります。このため、VSTDのときに覚えたことやノウハウが無駄になることはありません。本稿では、変更・追加された点に焦点を絞りますので既存の機能については以下の記事をご覧ください。Editionでも利用可能になり、より利用者のすそ野が広がっています。このことも大きな変更点ではありますが、ここでは、単体テスト機能そのものの強化ポイントを確認します。列挙すると次のようなポイントがあります。Basicでは「VSCodeGenAccessors.vb」)というファイルが作成されていました(プライベートアクセッサと呼ばれます)。中身には、リフレクションを利用してプライベートコードを呼び出すためのコードが生成されていましたが、VSTS2008ではこの代わりにクラスごとに「.accessor」というファイルが生成されます。図3:プライベートアクセッサファイルこの変更により、プライベートアクセッサの中身を自分で編集できなくなった不便さはありますが、パフォーマンスの改善が図られているようです。単体テストは通常、これから自分が作成するソースコードがある前提で作成するものですが、既存のソースコードがないアセンブリからでも単体テストが作成できるようになっています。単体テストの作成時に(次の図4に示す画面)、アセンブリの追加を選択して単体テストを作成したいアセンブリを選択すると、ソースコードから構築されるのと同じツリー構造を表示させることができます。ソースから構築されるツリーのルートにはプロジェクトのアイコンが表示され、これによって見た目の区別が行われています。図4:アセンブリからの単体テストコード生成データバインディングに関しては、VSTDのときから利用できましたが、今回からはウィザード形式でデータソース(データベースやCSVファイルなど)を選択して設定できるようになり、より簡単にデータドリブンテストが実施できるようになっています。設定は、テストビューウィンドウなどでテストケースを選択した際に表示されるプロパティウィンドウで行うことができます。静的コード分析機能VSTDでは静的コード分析はマネージコード部分に限ればFxCopという解析ツールが用意されているだけでした。VSTS-DEでは、FxCopのルールの強化に加え、コードメトリクス分析機能が追加されています。FxCopでは、規則(検証内容の集合)のセットに変更はありませんが、規則に含まれる規約(実際に検証を行うための定義情報)は、WPFなど最新のテクノロジーへの対応や、より細かい設定ができるようになどの変更が行われ、200種類以上の追加が行われています。一般的に「規則が大幅に追加されました」という場合には、「それぞれの規則に含まれる規約が大幅に追加されました」というのが正しい表現になりますので注意してください。次の図6に示すコード分析の設定画面に、「生成されたコードから結果を表示しない」というチェックボックスが追加されているのも新しい点です。Studioが生成したソースコードを分析対象から外すことができるようになったため、従来よりもより重要な警告を発見しやすくなっています。図6:コード分析の設定画面コードメトリクスは、ソースコードをクラス単位、メソッド単位で解析し、その構造の内容を数値で示すための機能です。VSTS-DEのコードメトリクス機能では以下の5つの指標を得ることができます。保守容易性インデックス少し補足をすると、サイクロマティック複雑度とは、メソッド内の実行経路数を示すための尺度で、条件分岐の数と複雑度を元に計算される数値です。VSTS-DE以外の品質検査系ツールにおいてもコードメトリクス機能がある場合には上記の上4つの情報を得る機能は大抵揃えているのではないかと思います。保守容易性インデックスはMicrosoftが自社内の調査において独自に設定したもので、さまざまな情報から決定される数値となっています。その他のデータは数値が低いほど成績が良いのに対し、保守容易性インデックスは数値が高いほど成績が良いという判断になりますので注意してください。次の図7はコードメトリクス分析を行い、上記5つのデータが表示されている画面です。動的コード分析機能はVSTDまでと同様にパフォーマンスプロファイラ機能が用意されています。大きな括りとしての変化はありませんが、パフォーマンスプロファイラは以下にあげるような機能強化が図られています。従来は、パフォーマンスプロファイリングは32ビットOS上で実行される32ビットアプリケーションのみをサポートしていましたが、VSTS-DEからは64ビットOS上で実行される32/64ビットアプリケーションをサポートするようになりました。ホットパス分析のホットパスとは、パフォーマンスの影響が最も大きい処理順(トレース)を示すもので、これによりボトルネックなどパフォーマンスの影響となっている部分をより視覚的に確認することができます。分析対象としてWCFを利用しているアプリケーションも対象とすることができるようになっています。分析を行う際には、Windowsのパフォーマンスカウンタの収集などを指定して、レポート分析に役立てることもできます。パフォーマンスプロファイリング実行後は、従来よりも効率的にレポートの分析が行われ、結果も見やすくなっています。過去のレポートと比較できるようになり、以前の分析結果に基づく変更がパフォーマンスにどのように影響を及ぼしているかを簡単に確認できるようになっています。NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。