パート2:現場に応じたカスタマイズを体感する

このパートでは、様々な業務に対応できる Next Design のカスタマイズ性と拡張性を確認して、Next Design のコンセプトにある「現場にフィットする設計ツール」を体感してみましょう。
ここではサンプルにある組込みソフト開発を題材にしていますが、一般的なV字工程に沿ったサンプルを自分たちの開発に合わせてカスタマイズすることで、組込みソフト開発以外の業務にも応用できます。

所要時間の目安は約30分です。

1. プロファイルと対象工程をみてみましょう

対象工程の全体像を確認する

手順1~4の動画:対象工程の全体像を確認する
別ウィンドウで開く
対象工程のクラス図
別ウィンドウで開く
手順5の動画:モデル追加時の対象工程候補を確認する
別ウィンドウで開く

実施内容

Next Design では、設計で扱う情報の種類や構造を「プロファイル」として定義します。組込みソフト開発ベースパッケージには、一般的な組込みソフト開発のV字工程に沿ったプロファイルがあらかじめ用意されています。

ここでは、プロファイルナビゲータから [[クラス図]対象工程] を開き、パッケージに定義されている工程の全体像を確認します。

手順

  1. Next Design でサンプルプロジェクト [組込みソフト開発] を開きます。
  2. ナビゲータをプロファイルナビゲータに切り替えます。
  3. プロファイルナビゲータで次のクラス図をダブルクリックして開きます。

    [クラス図]対象工程

  4. クラス図に、要求分析・設計工程とテスト工程がV字工程に沿って定義されていることを確認します。

    要求分析・設計工程には、次の工程が定義されています。

    • システム要求分析
    • ソフトウェア要求分析
    • ソフトウェアアーキテクチャ設計
    • ソフトウェアコンポーネント設計

    テスト工程には、次の工程が定義されています。

    • ソフトウェアコンポーネントテスト
    • ソフトウェア統合テスト
    • ソフトウェアテスト
  5. モデルナビゲータに戻り、プロジェクトルートのモデル追加時に、クラス図で確認した各工程が選択肢として表示されることを確認します。

ゴール

組込みソフト開発ベースパッケージには、一般的なV字工程に沿ったプロファイルがあらかじめ用意されており、パッケージを導入するだけでソフトウェア開発のモデルを作成できることを理解できます。

2. 対象工程を絞ってみましょう

利用する工程だけに限定する

実施内容

実際の開発では、プロジェクトによって Next Design を適用する範囲が異なります。組込みソフト開発ベースパッケージのプロファイルをカスタマイズすれば、モデル追加時の選択肢を、プロジェクトで利用する工程だけに限定できます。

ここでは、上流工程を含む最小限のV字工程を想定し、適用する工程を次の4つに絞ります。

  • ソフトウェア要求分析
  • ソフトウェアアーキテクチャ設計
  • ソフトウェア統合テスト
  • ソフトウェアテスト

手順

  1. プロファイルナビゲータに切り替えて、次のクラス図を開きます。

    [クラス図]対象工程

  2. クラス図で、今回の適用範囲に含めない次の工程から、削除する工程を1つずつ選択します。
    • システム要求分析
    • ソフトウェアコンポーネント設計
    • ソフトウェアコンポーネントテスト
  3. 選択した工程を右クリックし、コンテキストメニューから [モデルから削除] を実行します。
  4. ダイアログが表示されたら [一括で削除] をクリックします。
  5. 手順2~4を繰り返して、適用範囲に含めない3工程を削除します。
  6. [[クラス図]対象工程] に、次の4工程だけが残っていることを確認します。
    • ソフトウェア要求分析
    • ソフトウェアアーキテクチャ設計
    • ソフトウェア統合テスト
    • ソフトウェアテスト
  7. モデルナビゲータに戻り、プロジェクトルートでモデルを追加するときの選択肢が、残した4工程だけになっていることを確認します。

ゴール

標準パッケージのプロファイルをベースに、プロジェクトの適用範囲に合わせて必要な工程だけを残すことで、自分たちの開発プロセスに合わせてテーラリングできることを理解できます。

この手順については、組込みソフト開発ベースパッケージのマニュアルにも記載してあります。

3. 必要な設計データを追加してみましょう

設計根拠を記録できるようにする

手順1~4の動画:設計根拠フィールドを追加する
別ウィンドウで開く
設計根拠フィールドを追加した状態
別ウィンドウで開く
手順5~7の動画:設計根拠ビューを追加する
別ウィンドウで開く
設計根拠ビューを追加した状態
別ウィンドウで開く

実施内容

標準パッケージに定義されている設計情報をベースに、自分たちの開発で必要となる情報を追加できます。

ここでは、設計データを追加する代表例として、ソフトウェアコンポーネントごとに、インタフェース設計などの設計根拠を書き留められるように、リッチテキスト型の [設計根拠] フィールドと、それを編集するためのフォームビューを追加します。

手順

  1. プロファイルナビゲータに切り替えて、ツリーの中から次のクラスを選択します。

    組込みソフト開発 > ソフトウェアアーキテクチャ設計 > ソフトウェアコンポーネント

  2. リボンの [表示] > [ペイン] > [インスペクタ] をクリックして、画面右側に詳細を設定するためのインスペクタを表示します。
  3. リボンの [プロファイル] > [表示] > [関連するクラス図] から、次のクラス図を開きます。

    [クラス図]ソフトウェアアーキテクチャ設計

  4. [ソフトウェアコンポーネント] クラスに、次のフィールドを追加します。

    クラス図上で [ソフトウェアコンポーネント] クラスが選択されていることを確認し、画面右側のインスペクタに表示されている [フィールド] の一覧から [+] アイコンをクリックして、次のように画面入力します。

    表示名: 設計根拠
    フィールド名: 設計根拠
    データ型: リッチテキスト型
    すべてのフォームに対応するコントロールを追加する: オフ

    [OK] ボタンを押下すると、 [ソフトウェアコンポーネント] クラスに [設計根拠] フィールドが追加されます。

  5. 続けて、追加した [設計根拠] フィールドを表示・編集するためのビューを追加します。

    まず、モデルナビゲータに戻り、対象となる [ソフトウェアコンポーネント] モデルの一つを開きます。ここでは、次のモデルを開きます。

    組込みソフト開発 / ソフトウェアアーキテクチャ設計 / ADAS ECU コンポーネント統合 / APPレイヤ / 車速偏差算出

  6. リボンの [プロファイル] > [ビュー定義] > [新しいビュー] > [ドキュメント] をクリックして、次のように画面入力します。

    表示名: 設計根拠
    ビュー名: 設計根拠

    [OK] ボタンを押下すると、ビューの選択肢に [設計根拠] が追加され、切り替えできるようになります。

  7. 新しく追加した [設計根拠] ビューに、先ほど追加した [設計根拠] フィールドを配置します。

    ビューのタイトル部分を右クリックして、コンテキストメニューから [プロファイル] > [既存フィールドを追加] をクリックして、[フィールド] の選択肢から [設計根拠] フィールドを選択します。

    [OK] ボタンを押下すると、[設計根拠] ビューに [設計根拠] フィールドが追加されます。

  8. [設計根拠] ビューはすべての [ソフトウェアコンポーネント] モデルに共通で追加されるため、どのモデルでも設計根拠を記録できるようになります。

ゴール

既存のクラスにフィールドとビューを追加することで、自分たちの開発で必要な設計情報をモデルの一部として管理できることを理解できます。

この手順については、組込みソフト開発ベースパッケージのマニュアルにも記載してあります。

設計データ全体のメタモデルをみる

設計データ全体のメタモデルを表すクラス図
別ウィンドウで開く

実施内容

Next Design で扱う設計データの全体構造を「メタモデル」と呼びます。そのメタモデルの構造はクラス図形式で確認したり、その構造を自分たちの開発に合わせてカスタマイズしたりできます。

ここでは、サンプルで定義されているメタモデルの一部を確認してみます。

手順

  1. Next Design のスタート画面からサンプルプロジェクト [組込みソフト開発] を開きなおします。
  2. ナビゲータをプロファイルナビゲータに切り替えます。
  3. プロファイルナビゲータで次のクラス図をダブルクリックして開き、設計データの全体構造などを確認します。
    クラス図 説明
    [クラス図]全体構造 V字工程ごとの設計データの主要構造と関連性を表すクラス図
    [クラス図]トレース関連図 工程間のトレース情報の関連性を表すクラス図
    ソフトウェアアーキテクチャ設計 > [クラス図]ソフトウェアアーキテクチャ設計 ソフトウェアアーキテクチャ設計工程で扱う設計データの構造と関連性を表すクラス図

ゴール

Next Design で扱う設計データの構造がメタモデルとして定義されており、その構造をプロファイルに含まれているクラス図で確認できることを理解できます。

4. エクステンションによる拡張性を体感してみましょう

影響範囲を自動で抽出する

別ウィンドウで開く

実施内容

組込みソフト開発ベースパッケージには、モデルを活用して定型作業を自動化するエクステンションが含まれています。

ここでは、静的構造図上のインタフェースやコンポーネントから関連先を判別する [IFの影響箇所を抽出] を実行し、設計情報がモデルとして一元管理されていることで、変更時の影響範囲を自動的に抽出できることを体験します。

手順

  1. モデルナビゲータで、[ソフトウェアアーキテクチャ設計グループ] または [ソフトウェアコンポーネント] のモデルを選択します。

    たとえば、次のモデルを選択します。

    組込みソフト開発 / ソフトウェアアーキテクチャ設計 / ADAS ECU コンポーネント統合

  2. メインエディタのビューを [静的構造図] に切り替えます。
  3. 静的構造図上で、影響範囲を確認したいインタフェースまたはコンポーネントを1つ選択します。
  4. リボンの [設計支援] > [影響分析] > [IFの影響箇所を抽出] をクリックします。
  5. エクステンションによってインタフェースの関連先が判別され、影響範囲を確認できることを確認します。

ゴール

設計情報をモデルとして管理することで、モデル間の関連をたどる調査をエクステンションで自動化でき、変更時の影響範囲を効率よく確認できることを理解できます。

エクステンションのソースコードをみてみる

実施内容

組込みソフト開発ベースパッケージに含まれるエクステンションは、C#版とPython版のソースコードが公開されています。ソースコードを実装例として参照したり、それをベースに自分たちの業務に合わせて拡張したりできます。

ここでは、公開されているソースコードとパッケージに含まれる自動化機能を確認し、Next Design をプログラミングによって拡張できることを理解します。

手順

  1. GitHub.com で公開されている組込みソフト開発ベースパッケージのエクステンションソースコードを確認します。

    先ほど実行したエクステンション機能の [IFの影響箇所を抽出] に対応するソースコードは、次のリンク先で確認できます。

  2. 組込みソフト開発ベースパッケージには、影響範囲の自動抽出以外にも、次のような定型作業を自動化するエクステンションが含まれています。
    • ソフトウェア要求モデルの一括作成
    • テスト結果モデルの一括作成
    • IDの連続再付番
    • 影響範囲の自動抽出
    • テスト結果の自動集計

    これらのソースコードも次のリンク先から確認できます。

ゴール

標準パッケージのエクステンション機能を利用するだけでなく、公開されているC#版またはPython版のソースコードを参考にすることで、自分たちの業務に合わせたカスタマイズすることができ、次のような定型作業の自動化を実現できる拡張性を備えていることを理解できます。

エクステンションによる定型作業自動化の例:

  • 設計ルールとの整合チェック
  • テスト用データ生成
  • 外部ツールとの連携など

Next Design の要点を整理してみましょう!