Applistar

2. 2 システムレベル設計

TOP > 2 オブジェクト指向要求分析と設計工程 > 2. 2 システムレベル設計
  2. 2 システムレベル設計  

2. 2. 1 設計問題の分析

設計問題を分散オブジェクト間の通信問題とみることができます。ここでは、

  • 要求された機能をいかに分散配置するか
  • 高性能CPUコア上のプロセス、または、ハードウェアで実現するか

などを分析する必要があります。 また、 分散オブジェクト間の通信の設計は重要な問題です。

  • どのようなプロトコルを使うか
  • 分散オブジェクトの実現方法
    • RTOS上のSW部品として実現
    • HW部品として実現

など検討して、設計を進めなければなりません。

2. 2. 2 UMLを使って要求仕様の分析を行う

UMLは、 オブジェクト指向の考えが ソフトウェアに入り、ソフトウェアの設計方法が構造化設計 から大きくオブジェクト分析を中心とした 方法に変わる中で生まれました。 ソフトウェア工学上の知見を集大成し、 オブジェクト指向ソフトウェア開発手法としてUMLが定着しつつあります。 リアルタイム・組込みシステム向けのUMLシステムも提供されつつ あります。また、 UMLから組込みシステム向け開発プロセス定義の取り組み も始まりました。

UMLをSoC設計に使う利点を以下にあげます。

  • システム要求分析に使える
    • ユースケース、シナリオ、シーケンスチャート
  • 図を用いたシステム定義のため、コミュニケーションがとりやすい
  • ソフトウェアとハードウェアの双方の仕様定義に統一した方法がつかえる
  • 抽象化したモデルでの検討で実装が明確にならない段階から使用できる

特にシーケンスチャートは、HW部品、SW部品間の連携を表す チャートとして、SoC設計にも有効に利用できます。

簡単な例として、SW部品、RTOS、BUS、HW部品の連携を シーケンスチャートとして表わした例を下記に示します。

2. 2. 3 SystemCによる、SW部品、RTOS、BUS、HW部品のモデル化

システムの検証は、早期に、実行可能なモデル(Executable Model)を 記述し、シミュレーションを行いながら確認することが大切です。 これにより、仕様の見落としなどを早期に無くすこと可能になります。

従来は、ハードウェアの設計が完了してから、ソフトウェアの 開発に着手していたため、設計期間の長期化しがちでした。

最近、注目をあびている設計手法として、ソフトウェア/ハードウェアの 協調設計・協調検証を用いた設計手法です。

最近、C++をベースにしたハードウェア記述言語である、SystemCは このような目的に適した言語として注目されています。

SystemCではco-routineという手法で並列処理プロセスを モデル化する機能を持っています。 以下にSystemCでの並列処理プロセスのシーケンス 概念図を示します。

SystemCではsc_moduleの中で定義されたSC_THREADプロセスは wait文を実行するたびにSystemCカーネルに実行の制御を 移します。

この機能を使い、HW部品やRTOSなどの並行プロセスをモデル化 することが可能となります。

  2. 2 システムレベル設計  
TOP > 2 オブジェクト指向要求分析と設計工程 > 2. 2 システムレベル設計