この投稿では、組込みソフトウェア(SW)関数仕様書について説明します。
SW関数仕様書は、SW開発において個々の関数の設計内容を記述する文書です。この仕様書には、関数の目的、入出力パラメータ、前提条件、処理内容、戻り値、例外処理などが明確に記載されており、実装者が正確にコーディングを行うための指針となります。
また、SW関数仕様書はチーム内での情報共有やレビュー、後工程でのテスト設計、保守時の理解にも活用されるため、単なるコーディング指示書にとどまらず、SWの品質と生産性を支える重要なドキュメントです。
仕様書と実装の整合性を保つことが信頼性のある開発に不可欠であり、設計・実装・テストの各フェーズで仕様書を適切に更新・管理することが求められます。
SW関数仕様書の作成
SW関数仕様書の作成は、A-SPICEを例にすると「SWE.1 SW要求分析」や「SWE.2 SWアーキテクチャ設計」の結果から「SWE.3 SW詳細設計およびINIT構築」で作成します。

SW関数仕様項目
SW関数仕様書の項目は、下表の通りです。
SWE | 仕様項目 | 概要 |
---|---|---|
2 or 3 | SW関数分類 | SW関数分類: SWコンポーネント(SWC), UNIT, 割込み, ライブラリ, マクロ |
2 | 所属するSWC名 | UNITの場合、所属するSWC名 |
2 | SW状態 | SWCのSW状態(UNITの場合、所属するSWCを継承) |
2 | SWレイヤー | SWCのSWレイヤー(UNITの場合、所属するSWCを継承) |
2 | 処理タイミング | SWCの処理タイミング(周期、イベント)(UNITの場合、所属するSWCを継承) |
2 | 処理優先順位 | SWCの割込み優先順位またはTask/Threadの優先順位(UNITの場合、所属するSWCを継承) |
2 | コール元関数名 | UNITの場合、コール元関数名 |
2 | コール順番 | UNITの場合、SWC内でのコール順番 |
2 or 3 | SW関数型 | SW関数型 |
2 or 3 | INPUT引数 | 型、ラベル名、LSB、単位 |
2 or 3 | OUTPUT引数 | 型、ラベル名、LSB、単位 |
2 or 3 | Return | 型、ラベル名、LSB、単位 |
2 or 3 | 処理概要 | SW関数の処理概要 |
2 or 3 | 処理詳細 | 1) 関数入力 |
2 or 3 | 2) 事前処理 | |
2 or 3 | 3) 条件判定 | |
2 or 3 | 4) 条件毎の演算やLowレイヤーの関数コール | |
2 or 3 | 5) 事後処理 | |
2 or 3 | 6) 関数出力 | |
1 or 3 | ROM定数 | 型、ラベル名、LSB、単位, 値 (値の計算式) |
2 or 3 | マクロ定数(#define) | 型、ラベル名、LSB、単位, 値 (値の計算式) |
3 | ローカル変数 | 型、ラベル名、LSB、単位, 初期値 |
3 | 静的変数 | 型、ラベル名、LSB、単位, 初期値 |
2 or 3 | グローバル | 型、ラベル名、LSB、単位, 初期値 |