シーケンス図生成機能の概要

<< 目次を表示 >>

ページ位置:  プログラムの動作解析 > 動作の記録 >

シーケンス図生成機能の概要

この章では、シーケンス図の自動生成機能について説明します。

 

 

詳細:

項目

利用方法

利用方法

プログラムの動作解析機能を利用すると、シーケンス図を自動生成することができます。下の例のダイアグラムは、書籍の価格を計算するプログラムを対象にシーケンス図を生成した結果です。

このダイアグラムではアプリケーションの実行結果の流れ・どの関数が呼ばれたか・送信されたメッセージ・クラス間の関係・関数で渡された値を把握することができます。これにより、対象のシステムの動作を理解することが容易になります。

下の例では、最初のループは4回実行され、4つの書籍が書籍データベースに追加されたことが分かります。メッセージの矢印は情報の流れを示し、また状態の変化も知ることができます。

 

 

記録機能はどのようにして利用しますか?

  • 記録するためのマーカーを配置します。マーカーは、情報を記録したいメソッドに配置します。

 

Javaのコールスタックは、想定している範囲を超えて広がることがあります。記録の範囲を制限する方法は?

  • 記録機能は、ツールバーで設定されたフレーム数か、モデルに保存されたマーカーセットに関連付けられたフレーム数で制限できます。

変更不要

シーケンス図の自動生成においては、対象のプログラムに何らかの処理やマクロなどを追加する必要はありません。作成したプログラムのそのままで、動作を可視化できます。

利用例

例えば、非常に大きなサーバーアプリケーションがあるとします。対象のプログラムをほとんど理解しておらず、モデルもほとんどない場合に、プロファイラで動作を把握するという方法があります。プログラムを使用しながらプロファイラを実行すると、表示されるエントリポイントやコールグラフからプログラムのどのあたりが利用されているのかを素早く特定することができます。このような知識を持つことで、対象部分を絞りこみ、記録機能で実際の動作を記録する方法があります。

ソースコードがあれば、対象のメソッドに記録するためのマーカーを配置します。同時に複数のメソッドに複数のマーカーを置くことはお勧めしません。経験上、内容が複雑になり理解しづらい情報となりやすいです。マーカーを配置する位置は、画面があるプログラムの場合やビジネスユースケースがある場合では、最も関係すると思われるメッセージのイベントハンドラに配置することから始めるとよいです。ユーティリティ関数を調査している場合は、マーカーを開始位置かその近くに設定します。

サービス・デーモン・バッチプロセスについては、興味のある動作ごとにプログラムを一度プロファイリングし、その内容から領域を絞り込んで調査するとよいでしょう。

ヒント

デバッグの前に、ブレークポイントとマーカーの一覧を確認し、それぞれのブレークポイントとマーカーがどのような動作なのかを確認しておくと良いでしょう。

対象

  • Microsoft Native C, C++, VB
    Windows アプリケーション, Window サービス, コンソールアプリケ-ション, COM サービス, IIS ISAPI モジュール, 過去互換環境 など
  • Microsoft .NET
    ASP.NET, Windows Presentation Foundation (WPF), Windows フォーム, ワークフローサービス, デバイス, エミュレータなど
  • Java
    アプリケーション, アプレット, サーブレット, ビーン
  • Android
    Androidデバッグブリッジを利用・エミュレータ
  • PHP
    Webサイトスクリプト
  • GDB
    Windows / Linux 間での実行

 

 

参照: