岳史Tweet要求や要素の複雑な関係をモデリングツールによってモデリングの効率が上がる例を、1つ紹介します。第1回で説明したように、SysMLでは、「要求*1」を、図の中で要素(もの)として表現し、要求間の関係や、要求とほかの要素との関係を、見えるかたちで表現します。実際の現場では「要件」など、ほかの言葉で表現する場合もあります。本記事では、SysMLの定義に従って「要求」に統一します。UMLでは、要求について定義していません。このため、要求は、文章や表などの形式で表現/管理するよりほかありません。要求とモデルとの整合性/関係性を簡単に把握するための仕組みがないのです*2。例外的に、機能的な要求だけは、ユースケース要素としてユースケース図で表現します。Architectには、数年前から、要求を要素として扱うことのできる仕組みがあります。Architectの独自拡張です。SysMLは、UMLと異なり、要求間の関係などを図の中で定義/確認できますが、注意しなかればならない点もあります。それは、要求間の関係や、要求と要素との関係が、「1対1」ではなく「多対多(n対n)」である、ということです。多対多であるため、このような複雑な関係をどのように定義するか、あるいはどのように確認するか、ということが、効率的な作業を行う上で重要です。Architectのようなモデリング・ツールを使うと、この問題も解決できます。要求や要素の複雑な関係を、効率的に定義/確認できます。1対1の関係を定義/確認する際には、前述した「クイックリンク」の機能を利用できます。多対多の関係を定義/確認するためには、"関係マトリックス"の機能を利用します。関係マトリックスでは、マトリックスの行と列に要求や要素を配置し、その関係の有無を確認できます。マトリックスの上に、関係を追加することもできます。全体として関係に抜けや漏れがないかどうかを確認しながら、必要に応じて関係の追加/削除を行い、作業を進められます。マトリックス上に追加した関係は、ほかの既存の図にも自動的に反映されます。要求のモデリングでは、要求や要素の関係を定義/確認できることに加えて、「ある特定の要求がどの要求と関係があるのか」、「特定の要求はどの要素によって実現されるのか」といった依存関係を追跡する「トレーサビリティ」の確保が重要です。Architectでは、トレーサビリティのための専用のウインドウを用意しています。これを使うことで、例えば、以下のような依存/影響範囲を容易に確認できるようになります。ある特定の要求に変更があった場合に、どの要求に影響するのかある特定の要求に変更があった場合に、どのブロックに影響するのか(どのブロックを見直さなければならないのか)もしこのブロックの機能が実現できないとすれば、どの要求が実現できないのか(影響があるのか)要求と要素には多対多の関係があり、要求間にも多対多の関係があります。1つの要求は、複数の図に配置される可能性があります。「要求とブロックの割り当ての関係を表現するための要求図」と、「要求間の包含/影響関係を示すための要求図」の両方に、1つの要求が配置されることがあります。このような場合には、その要求が矛盾なく定義されていることや、全体として整合性が確保できていることを確認するため、複数の図にわたって関係を確認する必要があります。モデリング・ツールを使えば、「どの図で要求が利用されているか」を簡単に確認できます。「この要求と関係のある要素全部の図」のような図を、いつでも簡単に、好きなだけ作成できます。要求や要素の関係が複雑な場合や、多くの図に要求が配置されている場合に、分析用に一時的な図を作成して確認/分析すると効果的です*3。Architectの場合、「関係する要素の追加」機能が該当します。次ページでは、SysML専用の機能を紹介します。ジャパン株式会社の代表取締役。Architect」を日本市場に向けて販売するほか、要求管理ツール「RaQuest」、ソフトウェア資産の再利用支援ツール「ARCSeeker」を自社開発し、世界中に販売している。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。「コンテナ」の概要を知る2020/2/21設計/手法/テスト技術解説データ中心設計(DOA)に基づいたデータモデリング2020/2/20クラウド技術解説Rancherコードリーディング入門(3/3)2020/2/19開発ツールイベントGitHub、エンタープライズ向けのイベントを国内で開催。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。