Traceability of modelby SparxSystems Japan

モデルの追跡 (トレーサビリティ) 機能ガイド(2022/04/12 最終更新)

モデルの追跡 (トレーサビリティ) 機能ガイド

目次
1.はじめに .............................................................................................................................. 3
2. モデルの追跡 ..................................................................................................................... 3
3. 要求を表現する方法について ............................................................................................ 4
3.1. Enterprise Architect 独自の要求要素を利用する ...................................................... 4
3.2. ユースケース要素を利用する ..................................................................................... 5
3.3. SysML の要求要素を利用する .................................................................................... 5
3.4. USDM を利用する....................................................................................................... 6
4. 要素間の関係の定義 .......................................................................................................... 7
4.1. 図で関係を定義する.................................................................................................... 84.2. 関係マトリックスで関係を定義する .......................................................................... 84.3. 拡張マトリックスアドイン......................................................................................... 95. 関係の追跡 ........................................................................................................................ 115.1. 関係マトリックスの利用 ........................................................................................... 115.2. 単一の要素の追跡 ..................................................................................................... 135.3. 影響範囲を図で確認.................................................................................................. 15
5.4. 要素間の関係を一括確認 .......................................................................................... 186. まとめ .............................................................................................................................. 20

Copyright (c) 2004-2022 Sparx Systems Japan2モデルの追跡 (トレーサビリティ) 機能ガイド

1.はじめにこのドキュメントは、設計モデルにおける追跡(トレーサビリティ)の確保と参照について、Enterprise Architect を利用して効率的に行うために役立つ機能を紹介しています。なお、
このドキュメントの内容は UML を想定していますが、SysML など他の記法でもこのドキュメントで紹介する機能を利用できます。

2. モデルの追跡
UML を利用したソフトウェアの設計開発において重要なことのひとつとして、モデル内の一貫性・整合性を保つことが挙げられます。ソフトウェアには多くの要求がありますが、その要求を過不足なく確実に満たすソフトウェアを作成しなければなりません。この、ソフトウェアの要求を満たすことを確認し続けることはとても重要です。
実際には、要求が設計開発の途中で変更されることが少なからずあります。変更される理由はさまざまですが、要求に変更があった場合に、実装レベルでのクラスの範囲まで影響範囲を容易に確認することができれば、要求の変更による影響範囲や対応工数の目処をつけることができます。また、要求に対する変更依頼があった場合に、事前に影響範囲を確認することができれば、依頼を受けるかどうかの判断材料にすることも可能です。
重要なことは、このような変更が発生する状況で、設計モデルの内容を追跡し、影響範囲を把握できるようになっていることです。つまり、トレーサビリティ(追跡可能性)が確保されていることが重要です。
モデルの内容が追跡可能な状況になっていない場合、つまり単なる絵の集合であるような場合には、以下のような問題が発生する可能性があります。
・ 要求の変更に対する修正漏れが発生する・ 上位と下位の設計内容が一致していない・ 仕様(UML/SysML などのモデル)の内部に矛盾が残る

このドキュメントでは、上記のような問題の解決を効率的に行うために、EnterpriseArchitect を利用する方法を提案しています。

Copyright (c) 2004-2022 Sparx Systems Japan3

モデルの追跡 (トレーサビリティ) 機能ガイド

3. 要求を表現する方法について要求と設計要素を結びつけるためには、何らかの形で個々の要求を Enterprise Architect内の要素として定義する必要があります。そこで、Enterprise Architect において要求を表現することのできるいくつかの方法について説明します。

3.1. Enterprise Architect独自の要求要素を利用する
要求要素は、ツールボックスの「拡張」グループ内の「要求」グループにあります。要
求要素は、ソフトウェアに対する要求項目になります。例えば、次のような形になります。
REQ001- 利用者を認証し、正当な利用者のみが利用できる

この例のように、要求を区別するための ID を付加するのもよいでしょう。この ID 付加
は、「自動カウンター」機能を利用すると便利です。

なお、要求を効率的に管理するためには、スパークスシステムズジャパンが提供する要求管理ツール RaQuest の併用をお勧めいたします。RaQuest を利用すると、要求項目についてこのドキュメントで説明している追跡の設定の多くを簡単に、そして効率的に行うことができます。さらに、要求管理を前提とした RaQuest 独自の機能を利用することで、より厳密な要求の管理を行うことも可能です。さらに、要求項目と UML などのモデルの要素を容易に関連づけ、管理することが可能です。
RaQuest についての概要は以下の Web サイトをご覧ください。
https://www.raquest.jp/
RaQuest で要求項目を作成すると、Enterprise Architect で上記の要求要素を作成するのと同じように要求要素として保持されます。つまり、Enterprise Architect で要求要素を利用して要求を定義する代わりに、RaQuest を利用して効率的に要求の定義・管理を行うことができます。また、ID の採番ルールを高度にカスタマイズしたり、独自の属性(プロパティ)の追加・管理などを効率よく行ったりすることができます。

Copyright (c) 2004-2022 Sparx Systems Japan4

モデルの追跡 (トレーサビリティ) 機能ガイド

3.2. ユースケース要素を利用する
多くの UML の解説書籍では、最初にユースケース図の説明があります。ユースケースは対象のソフトウェアシステムの機能的要求を振る舞いとして表現したものです。

ログインするユースケースの具体的な内容をユースケース記述(ユースケースシナリオ)として記載する場合には、「シナリオエディタ」で記述する方法があります。

なお、上記のように文章として記述する以外に、アクティビティ図を利用してシナリオの内容を表現するなど、いくつかの方法があります。
以下の「ユースケースシナリオの書き方」ページもご覧ください。
https://www.sparxsystems.jp/products/EA/tech/UCScenario.htm

3.3. SysMLの要求要素を利用する
SysML には、対象のシステムの要求を定義・表現するための「要求図」があります。この要求図に要求要素として配置することで、要求を定義することもできます。

Copyright (c) 2004-2022 Sparx Systems Japan5

モデルの追跡 (トレーサビリティ) 機能ガイド«req u irem en t»
利用可能な人id = "REQ001"
text = "利用者を 認証し 、 正当な利用者のみが利用でき る こと"

3.4. USDMを利用する
要 求 を 定 義 す る 方 法 と し て 最 近 注 目 さ れ て い る 記 法 と し て 、 USDM (UniversalSpecification Describing Manner) があります。USDM は Excel を利用して表現することが多くありますが、Enterprise Architect の「USDM アドイン」を利用して、EnterpriseArchitect 内で要求・仕様を視覚的に定義できます。定義した内容を Excel 形式で出力したり、Excel で編集した内容を反映させたりすることもできます。
次の図は、Enterprise Architect で表現した場合の一例です。
(MAL01)
受信した電子メールをキーワード検索したい(MAL01-01)
いくつかのキーワードを組み合わ...

(MAL01-01-01)
検索したキーワードを入力できる(MAL01-01-02)
複数のキーワードをANDとORで繋ぐこと...

(MAL01-01-03)
指定されたメール文の中の文字列...

(MAL01-01-04)
1つのメールでのキーワー
ドの指...

(MAL01-02)「受信したメール」にキーワード...

このような形式で表現した内容についても Enterprise Architect 内部では要素として保持されていますので、設計要素との結びつけが可能になります。
USDM アドインについては、以下のページをご覧下さい。
https://www.sparxsystems.jp/products/EA/tech/USDM.htm

Copyright (c) 2004-2022 Sparx Systems Japan

6

モデルの追跡 (トレーサビリティ) 機能ガイド

4. 要素間の関係の定義
3 章で説明した方法のいずれかで要求を明確に定義した後には、要求と設計要素間の関係や設計要素同士の間の関係を定義していきます。この関係を定義するには、「追跡」の関係を利用することをお勧めしています。
「追跡」はステレオタイプ<<trace>>がついた「抽象化」という種類の接続です。
「追跡」の関係を利用する一つのメリットは、Enterprise Architect の「クイックリンク」の機能を効率的に活用できる面です。
「追跡」の関係は、どの要素間に対しても常にクイックリンク機能の候補に表示されます。

(クラス要素からユースケース要素に対して追跡関係を定義する際にクイックリンク機能を利用する例)
なお、「追跡」以外の種類の関係を利用することもあります。例えば、要求要素とそれ以外の要素の間については、「実現」の接続を利用するという方法もあります。これは、その接続の名前の通り、「要求を実現する」ということを示しています。RaQuest で要求と設計要素との間に関係を作成した場合には、実現の接続で結ばれます。
その他、SysML の場合で要求要素と他の要素との関係を表現する際には、充足(satisfy)など SysML で定義される種類の関係を利用します。

Copyright (c) 2004-2022 Sparx Systems Japan

7

モデルの追跡 (トレーサビリティ) 機能ガイド

4.1. 図で関係を定義する
それでは、このような関係を実際に定義する一例を紹介いたします。ここでは、要求要素と、その要求を実現する責務のあるクラス要素を結び付ける場合を想定します。
まず、対応を定義するためのダイアグラムを作成します。ダイアグラムの種類は、シーケンス図以外であればどの種類の図でも構いません。作成する位置は、要求要素が含まれるパッケージでもよいですし、対応を定義するための専用のパッケージを作成し、その中にダイアグラムを追加するという方法でもよいでしょう。
次に、作成したダイアグラムを表示し、対象の要求要素とクラス要素をプロジェクトブラウザからドラッグ&ドロップで配置します。その後、関係するクラス要素(下流の要素・実装に近い要素)から要求要素(上流の要素・要求に近い要素)に、「追跡」の関係を設定します。
アカウント

REQ011 - ユーザーア
カウントを管理«trace»+++++

名前: String
クローズ済み: Boolean
メールアドレス: String
請求先住所: String
配達先住所: String++++++

アカウントクローズを記録(): void
アカウント詳細を取得(): void
アカウント詳細を読込(): void
ユーザーを認証する(String, String)
新規アカウント作成(): void
新規アカウント詳細を登録(): void

このようにダイアグラムに要素を配置して結ぶ方法は直感的で分かりやすいですが、要素の数が増えてきた場合に効率が下がります。そこで、後ほど説明する関係マトリックスの機能を利用して、マトリックス(表)形式で関係を設定することが一般的です。

4.2. 関係マトリックスで関係を定義する
関係を定義する別の方法として、「関係マトリックス」機能があります。この機能は、縦横に指定したパッケージ・要素間の関係をマトリックス(格子形式)で表示できます。関係マトリックスは、「モデル」リボン内の「トレーサビリティ」パネルにある「関係マトリックス」ボタンを押すと表示できます。

Copyright (c) 2004-2022 Sparx Systems Japan8

モデルの追跡 (トレーサビリティ) 機能ガイド

次の例は、マトリックスの表示の例です。

なお、この関係マトリックスの機能では、セルを右クリックして「接続の新規作成」を選択することで、表示対象の種類の関係を追加することができます。これにより、先ほど説明した、ダイアグラム内に要素を配置して関係を構築する方法の他に、この関係マトリックス内で関係を定義することも可能です。
対象のパッケージを指定する場合には、「ソース」あるいは「ターゲット」の欄の右端にある「...」ボタンで指定します。プロジェクトブラウザから対象のパッケージを「ソース」あるいは「ターゲット」の領域にドロップして指定することもできます。
関係マトリックスの内容は、印刷したり CSV 形式で出力したりすることができます。
(ただし、出力した CSV ファイルを編集し、逆に読み込んで関係マトリックスに反映することはできません。)

4.3. 拡張マトリックスアドイン
4.2 章で紹介した関係マトリックスの機能は、Enterprise Architect の標準機能です。実際に設計の現場でトレーサビリティの定義・確保のためにはこの機能が重要な位置づけになりますが、一方で効率的な解析のためには機能が不足している面もあります。実際に、お客様からのさまざまなご要望がスパークスシステムズ ジャパンのサポートに届いています。

Copyright (c) 2004-2022 Sparx Systems Japan9

モデルの追跡 (トレーサビリティ) 機能ガイド

これらのご要望は開発元に随時フィードバックしていますが、現時点では残念ながらそのご要望が反映されておりません。そのため、日本のお客様の実際の現場からのご要望を元に、スパークスシステムズ ジャパンで独自のアドイン「拡張マトリックスアドイン」を作成しました。このアドインは、Enterprise Architect の標準機能の関係マトリックスの上位互換の機能という位置づけです。
このアドインの外見および主な特徴は次の図をご覧ください。

このアドインは「動作期間限定アドイン」です。サポートが有効な期間中は無料で利用できます。
アドインの詳細とダウンロードは、下記ページをご覧ください。
https://www.sparxsystems.jp/products/EA/tech/MatrixEX.htm
標準のマトリックス機能を利用することもできますが、その標準機能では不足する点や効率が悪い点を拡張マトリックスアドインでは対応しています。拡張マトリックスアドイ
ンを利用することを強くお勧めします。

Copyright (c) 2004-2022 Sparx Systems Japan10

モデルの追跡 (トレーサビリティ) 機能ガイド

5. 関係の追跡
ここでは、4 章で定義した関係を分析・追跡するための方法を紹介します。

5.1. 関係マトリックスの利用
4.2 章で説明した関係マトリックスや 4.3 章で紹介した拡張マトリックスアドインは、関係の定義だけでなく、関係の把握や追跡にも利用できます。
なお、関係マトリックスでは Excel のような表計算ツールが持つような高度なフィルタ・ソートやオートフィルタの機能は搭載していません。CSV ファイルとして出力することで、表計算ツールが持つ機能を活用して、追跡の関係が定義されていない要素を発見するなどの作業を効率化することができるでしょう。
拡張マトリックスアドインは、CSV の他、Excel・RTF・画像などさまざまな形式での出力が可能です。
拡張マトリックスアドインは、対象の要素がどの図に配置されているかを知る方法としても活用できます。標準のアドインとは異なり、ターゲット側の対象としてダイアグラムを指定することができます。この設定の場合には、ソース側のそれぞれの要素がどの図で利用されているかを把握することができます。

Copyright (c) 2004-2022 Sparx Systems Japan11

モデルの追跡 (トレーサビリティ) 機能ガイド

図を対象に指定可能

図に配置されているかどうかが把握できる(ダブルクリックで図を開いて要素の位置を表示))

それぞれのセルをダブルクリックすると、そのダイアグラムが開き、対象の要素にカーソルがあたりますので利用状況の詳細を把握できます。また、拡張マトリックスの場合には、要素そのものの利用だけでなく、分類子や型としての利用も表示されます。例えば、SysML のブロック要素がアクティビティ図のレーンの型として利用されている場合も検出・移動することができます。
さらに、「利用されているダイアグラム」アドインも組み合わせることで、以下のように便利なトレーサビリティ確認環境を構築できます。モデルブラウザやダイアグラム内で要素を選択すると、その要素の行や列が拡張マトリックス内でハイライトされます。それと同時に、利用されているダイアグラムアドインは選択されている要素についての利用状況を表示し、トレーサビリティサブウィンドウでは他の要素とのつながりを表示します。

Copyright (c) 2004-2022 Sparx Systems Japan12

モデルの追跡 (トレーサビリティ) 機能ガイド

このように、アドインを連携させることで、標準機能では実現できない便利な環境の構築が可能となりますので、ぜひ無料のアドインも活用してください。

5.2. 単一の要素の追跡
次に、特定の要素を選択して、その要素に関係する項目を確認する方法を紹介します。
具体的な例としては、要求項目を選択して、その項目に関係するクラス要素を確認したり、逆にクラス要素を選択して、そのクラス要素に関係する要求項目を確認したりする、などがあります。
ここで利用する機能は、「トレーサビリティサブウィンドウ」あるいは「トレーサビリティマップアドイン」です。トレーサビリティサブウィンドウは「モデル」リボン内の「トレーサビリティ」パネルにある「ウィンドウ」ボタンを押すと表示できます。
この状態で、ダイアグラムあるいはプロジェクトブラウザ内の要素を選択してください。
次の図のように、選択した要素を中心に階層的な関係が表示されます。

Copyright (c) 2004-2022 Sparx Systems Japan13

モデルの追跡 (トレーサビリティ) 機能ガイド(トレーサビリティサブウィンドウ上部にあるツールバーで、追跡する接続の種類を指定できます。左から 4 番目のボタンを押すと表示される一覧で、対象の接続の種類を指定してください。なお、「追跡」の関係を対象にする場合には、「依存・追跡」を有効にしてください。不要な関係を無効にすることで、調査したい内容に絞り込むことができます。)
関係があるということは、このユースケース要素は、これらの要求のいずれかが変更になる場合には影響を受けるということになります。また、もしこの要素からつながる下流の設計・実装に問題があった場合には、このサブウィンドウに表示されている要求にも影響がある可能性があることもわかります。
トレーサビリティマップアドインは、トレーサビリティサブウィンドウと基本的には同じ機能を持ちますが、表現方法が異なります。
https://www.sparxsystems.jp/products/EA/tech/TraceabilityMap.htm

Copyright (c) 2004-2022 Sparx Systems Japan14

モデルの追跡 (トレーサビリティ) 機能ガイド

トレーサビリティマップアドインでは、要素の前後関係が図として可視化されますので、関係の把握が容易です。また、拡張マトリックスアドインと同様に、Enterprise Architect
標準のトレーサビリティサブウィンドウについての、現場での不満点や改善案・機能追加要望などを反映していますので、トレーサビリティマップアドインを利用することをお勧めします。
トレーサビリティマップアドインで表示されている内容は、画像として保存したり印刷したりすることができます。右クリックメニューから機能を呼び出すことができます。
なお、トレーサビリティマップアドインも「動作期間限定アドイン」です。サポートが有効な期間中は無料で利用できます。

5.3. 影響範囲を図で確認
単一の要素の影響範囲については、5.2 章のトレーサビリティサブウィンドウやトレーサビリティマップアドインが便利です。ただし、このサブウィンドウは、モデル内を探索する場合には効率的ですが、何かの記録として追跡関係の情報を保管する目的には適しません。
このような場合には、影響範囲図を作成することをお勧めします。

Copyright (c) 2004-2022 Sparx Systems Japan15

モデルの追跡 (トレーサビリティ) 機能ガイド

なお、UML や Enterprise Architect のダイアグラム(図)の種類として、影響範囲図という名前の図があるわけではありません。「カスタム図」を利用することが多くありますが、ダイアグラムの種類は何でも構いません。
(ただし、シーケンス図は利用できません。)
そのダイアグラムに、追跡したい要素をプロジェクトブラウザからドロップし、配置します。ここでは、下記のようにクラス要素を対象にします。

次に、この要素を右クリックし、「関係する要素の追加」を実行します。すると、「関係する要素の追加」画面が表示されます。

Copyright (c) 2004-2022 Sparx Systems Japan16

モデルの追跡 (トレーサビリティ) 機能ガイド

ここでは、次の 3 点の指定が必要です。
・ 探索範囲この項目は、何階層まで関係をたどるか、を指定します。追跡の関係が階層構造になっている場合には、その階層を表示できるだけの数値を指定します。不明な場合には、とりあえず既定値の 1 のまま実行してみることをお勧めします。
・ 接続の種類
追跡の接続のみをたどりたい場合など、接続の種類を指定する必要がある場合には、対象外の接続のチェックを外します。何も変更しない場合には全ての種類が対象になります。
・ 接続の方向
このドキュメントの方法の場合、上流(要求要素側)から下流に向かって関係をたどりたい場合には「対象の要素が元側」を、下流(実装クラス側)から上流に向かって関係をたどりたい場合には「対象の要素が先側」を指定してください。両方を対象にする
場合には「<全て>」を選択します。
その他にも設定項目がありますので、必要に応じて設定します。実行すると、右クリックした要素を、開いているダイアグラムに追加配置します。

Copyright (c) 2004-2022 Sparx Systems Japan17

モデルの追跡 (トレーサビリティ) 機能ガイド

貸出内容を印刷する利用者情報を削除
する

図書の貸出処理をする

図書の返却処理をする(from ユースケース分
析)(from ユースケース分
析)(from ユースケース分析)(from ユースケース分
析)«trace»«trace»«trace»«trace»

永続データ::貸出記録-

貸出日: date/返却予定日: date«trace»

詳細DB設計::貸出記録テーブル*PK 貸出記録ID: INTEGER
FK 利用者ID: INTEGER
貸出日: DATE
返却予定日: DATE++«FK» FK_貸出記録_利用者(INTEGER)«PK» PK_貸出記録(INTEGER)

このように、特定の要素に影響する要素を、図として表示できます。あとは、この内容を印刷したり、Word 等に貼り付けて資料として活用したりすることができます。また、このようにして自動配置された要素を右クリックして「関係する要素の追加」を実行することで、興味がある方向に、関係する要素をさらに追加は位置することもできます。
この影響範囲図は、作成時の内容が表示され、要素間の関係が変わった場合に自動的に更新されるわけではありません。そのため、一時的な利用方法を想定しています。上記のように印刷や画像としての利用が終われば図のみを削除し、また必要になれば新規に図を作成して対象の要素を配置し、「関係する要素の追加」機能を再度実行します。

5.4. 要素間の関係を一括確認
ここまで紹介した機能で、マトリックス形式を利用して 2 つのグループ間の関係の把握および、マップ形式を利用して特定の 1 要素に関する影響の把握が可能になります。しかし、実際にモデルを利用して設計を行うと、より複雑な関係について、一括で確認したい状況が発生します。
この状況への対応機能は Enterprise Architect の標準機能には搭載していません。スパー

Copyright (c) 2004-2022 Sparx Systems Japan18

モデルの追跡 (トレーサビリティ) 機能ガイド

クスシステムズ ジャパンでは「トレーサビリティ表出力アドイン」を提供しています。
https://www.sparxsystems.jp/products/EA/tech/TraceabilityTable.htm
このアドインは、指定した条件を満たすモデル内の要素および接続について、Excel ある
いは Enterprise Architect の表要素として出力します。次の例をご覧ください。

この例では、上部にある要求要素 – ブロック要素 – ブロック要素 という 3 つの要素間の関係をモデル全体から抽出し、表として表示します。抽出する際には、名前などいくつかの条件を指定して絞り込むことができます。また、表に表示する内容についてもカスタマイズすることができます。Enterprise Architect の検索機能とは異なり、抽出条件自体もモデルとして定義する点も特徴です。
このアドインにより、モデルを構築した後に、指定した条件を満たす関係および要素を抽出し、漏れ抜け・重複・矛盾などがないかどうかを効率的に把握することができます。

Copyright (c) 2004-2022 Sparx Systems Japan19

モデルの追跡 (トレーサビリティ) 機能ガイド

6. まとめ
このようにして、モデル内の要素間の関係を定義してトレーサビリティを確保することで、変更発生時にモデル内での変更漏れを防ぎ、一貫性・整合性のある設計開発を行うことができます。
この方法で最も重要な点は、もれなく「追跡」の関係を構築することにあります。この関係の構築に漏れがある場合には追跡することはできませんので、それぞれのフェーズ(要求分析・ユースケース分析等)において確実に関係を設定するようにしてください。

Copyright (c) 2004-2022 Sparx Systems Japan20