SysMLを利用可能なモデリング・ツール「Enterprise Architect」
要求や要素の複雑な関係をモデリング
ツールによってモデリングの効率が上がる例を、1つ紹介します。
第1回で説明したように、SysMLでは、「要求*1」を、図の中で要素(もの)として表現し、要求間の関係や、要求とほかの要素との関係を、見えるかたちで表現します。
- [*1] 実際の現場では「要件」など、ほかの言葉で表現する場合もあります。本記事では、SysMLの定義に従って「要求」に統一します。
一方、UMLでは、要求について定義していません。このため、要求は、文章や表などの形式で表現/管理するよりほかありません。要求とモデルとの整合性/関係性を簡単に把握するための仕組みがないのです*2。例外的に、機能的な要求だけは、ユースケース要素としてユースケース図で表現します。
- [*2] Enterprise Architectには、数年前から、要求を要素として扱うことのできる仕組みがあります。これは、UMLの標準ではなく、Enterprise Architectの独自拡張です。
SysMLは、UMLと異なり、要求間の関係などを図の中で定義/確認できますが、注意しなかればならない点もあります。それは、要求間の関係や、要求と要素との関係が、「1対1」ではなく「多対多(n対n)」である、ということです。多対多であるため、このような複雑な関係をどのように定義するか、あるいはどのように確認するか、ということが、効率的な作業を行う上で重要です。
Enterprise Architectのようなモデリング・ツールを使うと、この問題も解決できます。要求や要素の複雑な関係を、効率的に定義/確認できます。
1対1の関係を定義/確認する際には、前述した「クイックリンク」の機能を利用できます。一方、多対多の関係を定義/確認するためには、"関係マトリックス"の機能を利用します。
関係マトリックスでは、マトリックスの行と列に要求や要素を配置し、その関係の有無を確認できます。マトリックスの上に、関係を追加することもできます。全体として関係に抜けや漏れがないかどうかを確認しながら、必要に応じて関係の追加/削除を行い、作業を進められます。マトリックス上に追加した関係は、ほかの既存の図にも自動的に反映されます。
要求のモデリングでは、要求や要素の関係を定義/確認できることに加えて、「ある特定の要求がどの要求と関係があるのか」、「特定の要求はどの要素によって実現されるのか」といった依存関係を追跡する「トレーサビリティ」の確保が重要です。
Enterprise Architectでは、トレーサビリティのための専用のウインドウを用意しています。これを使うことで、例えば、以下のような依存/影響範囲を容易に確認できるようになります。
- ある特定の要求に変更があった場合に、どの要求に影響するのか
- ある特定の要求に変更があった場合に、どのブロックに影響するのか(どのブロックを見直さなければならないのか)
- もしこのブロックの機能が実現できないとすれば、どの要求が実現できないのか(影響があるのか)
要求と要素には多対多の関係があり、要求間にも多対多の関係があります。つまり、1つの要求は、複数の図に配置される可能性があります。
例えば、「要求とブロックの割り当ての関係を表現するための要求図」と、「要求間の包含/影響関係を示すための要求図」の両方に、1つの要求が配置されることがあります。
このような場合には、その要求が矛盾なく定義されていることや、全体として整合性が確保できていることを確認するため、複数の図にわたって関係を確認する必要があります。
モデリング・ツールを使えば、「どの図で要求が利用されているか」を簡単に確認できます。さらに、「この要求と関係のある要素全部の図」のような図を、いつでも簡単に、好きなだけ作成できます。要求や要素の関係が複雑な場合や、多くの図に要求が配置されている場合に、分析用に一時的な図を作成して確認/分析すると効果的です*3。
- [*3] Enterprise Architectの場合、「関係する要素の追加」機能が該当します。
次ページでは、SysML専用の機能を紹介します。