組み込みソフトウェアの方式設計基礎

概要

 ソフトウェア開発は、方式設計工程、詳細設計工程などの段階を踏んで設計が行われる。本講座では、方式設計工程において、どのようなことを設計として考えるべきか基本を学習する。また、具体的な演習を通して、組込みソフトウェアの特徴的な設計のポイントを習得する。

目標

  1. 組込みソフトウェアの特徴を捉えた、アーキテクチャ設計の理解する
  2. 組込みソフトウェア方式設計における、タスク構造を抽出する作業手順を修得する

対象者

  • 初~中級・組込みソフトウェア開発者の方
  • 開発経験2年以上、詳細設計~実装の経験があること

前提知識

  •  リアルタイムシステムの基本知識がある
  • C/C++言語プログラムをテスト及びデバッグした経験がある
  • C/C++言語プログラムを作成した経験がある
  • プログラム設計の経験がある
  • UMLの図面を読むことができる

研修内容

演習題材:自動販売機システム

 第1日
  1. 組込みソフトウェア方式設計の特徴 
    1. 開発プロセスにおけるソフトウェア方式設計
    2. リアルタイム・システムの特徴
  2. ソフトウェア・アーキテクチャを考える
    1. ソフトウェア・アーキテクチャとは
    2. アーキテクチャを表すモデル
      • a. 機能モデル
      • b. 構造モデル
      • c. 振る舞いモデル
  3. アーキテクチャを読む
    1. 構造と、機能モデルの連携
    2. 良い構造モデルを考える
  4. アーキテクチャ(機能・構造)を設計する
    1. アーキテクチャの形
      • a. アーキテクチャパターン
      • b. ハードウェア依存部の分離
    2. サブシステムに分割する
  5. サブシステムを設計する
 第2日
  1. アーキテクチャ(振る舞い)を設計する
    1. サブシステム間の相互作用
      • a. シーケンス図
      • b. コミュニケーション図
    2. 状態モデルを設計する
  2. 振る舞いを設計する
  3. タスク分割を設計する
    1. 時間制約を考慮する
    2. 並行性を検討する
      • a. 同期・非同期
      • b. 処理の優先度
  4. タスク分割を設計する
    1. タスク分割の方針
      • a.動的な単位の分類
      • b.タスク分割の原則
    2. 並行性を検討する
    3. リアルタイム性を検討する
  5. 振り返り