IPA 独立行政法人 情報処理推進機構
SEC ソフトウェア高信頼化センター
Information-technology Promotion Agency, Japan
組込みシステム開発技術リファレンス
ESxRシリーズ
概要紹介
(ET-WEST 2013)2013年6月13日~14日
SEC
製品仕様
ハードウェア
仕 様
設 計
実 装
テスト
ソフトウェア
仕 様
設 計
実 装
テスト
システムインテグレーション
システムテスト
仕様の誤り
ソフト開発
過程での
誤り
ハード開発
過程での
誤り
ソフト&ハード
不整合
テストの漏れ
組込みシステムのトラブルが発生する原因
相互依存
仕様確定前
に設計開始
HW、SW
コンカレント開発
新規HW、SW
組合せ
幅広い利用者層
多様な使用環境
SEC
急速な規模拡大 ⇒ 大規模プロジェクト化
• どのような作業をどのように進めるか
• どのような手法をどのように利用するか
組込みシステムの安心・安全を目指して
ES
x
R
:
Embedded System development exemplar Reference
組込みシステム開発技術リファレンス
組込みシステム開発
QCD目標達成の難しさが増している
IPAの対応
(拠点分散、インターフェース増、コミュニケーション問題・・・)
実用的見地から
SEC
ESxRの位置づけ
要求仕様書の評価指標
ソースコードの品質評価
テスト作業の評価指標
設計書の評価指標
コーディング
要求定義
ESQR(品質作り込みガイド)
マ
ネ
ー
経
営
者
アーキテクチャ設計
単体テスト
ソフトウェア詳細設計
結合・統合テスト
システムの品質評価指標
システムテスト
ESPR(プロセスガイド)
How
What
ESCR(コーディング作法ガイド)
【品質指標】
【プロセス定義】
開
発
担
当
マネジメント指針
ESDR(設計ガイド)
テスト事例集
バグ管理手法
SEC
▌
組込みシステム開発技術リファレンス
ESxR
シリーズ
開発プロセスガイド
ESPR
(Embedded System development Process Reference guide)プロジェクトマネジメントガイド
ESMR
(計画書編)
(Embedded System development Management Reference guide)
コーディング作法ガイド
ESCR
(
C
言語編
/C++
言
語編)
(Embedded System development
Coding Reference guide)
品質作り込みガイド
ESQR
(Embedded System development
Quality Reference guide)
プロジェクト計画立案
トレーニングガイド
ESMG
(Embedded System development
Management planning training Guide)
設計ガイド
ESDR
(Embedded System development Design Reference guide)
組込みソフトウェア開発に
おける品質向上の勧め
[テスト編~事例集~
]
(Recommendations for Improvement of Quality of Embedded Software Development guide[w/Practical Testing Examples])
組込みソフトウェア開発に
おける品質向上の勧め
[バグ管理手法編
]
(Recommendations for Improvement of Quality of Embedded Software Development guide)
SEC
組込みソフトウェアの実装品質
「品質の作り込み」を意識しないコーディング
経験・スキルが伝承されず活かされない
組込みソフトウェアのコーディング品質向上のノウハウを整理
信頼性,保守性,移植性,効率性の4視点から例を含めて整理
具体的なコーデイング例を提示
C言語記述に関する品質を意識した「書き方」を規定
C++言語特有のオブジェクト指向的な言語要素に関する作法・
ルールを追加 (クラス・継承・例外 など)
ESCR
(Embedded System development Coding Reference guide)
SEC版 組込みソフトウェア開発コーディング作法ガイド
特徴
実装品質の確保
(問題を起こし易い記述、他人が読みにくい記述・・・)
C++英語版リリース(2013年3月)
C英語版リリース(2012年4月)
SEC
ESCRの作法・ルールの分類
19
23
59
26
44
129
51
合計
0
1
2
2
0
4
1
資源や時間の効率を考慮した書き方にする
効 率 性
11
1
3
0
0
3
3
1
移植性に問題の有るコードは局所化する
10
2
5
7
1
4
12
5
コンパイラに依存しない書き方にする
移 植 性
9
2
2
3
0
1
4
2
試験しやすくなる書き方をする
8
3
7
5
2
13
20
7
統一した書き方にする
7
5
1
9
0
2
11
4
プログラムはシンプルに書く
6
0
0
2
1
3
6
2
修正し間違えないような書き方にする
5
2
3
17
2
10
29
12
他人が読むことを意識する
保守性
4
1
0
7
4
1
12
6
信頼性
3
2
1
6
8
7
21
8
データは範囲,大きさ,内部表現に気を付けて利用する
信頼性
2
1
0
1
6
0
3
17
2
10
29
12
保 守 性
4
1
0
7
4
1
12
6
動作が保証された書き方にする
3
2
1
6
8
7
21
8
2
1
0
1
6
0
7
3
領域は初期化し大きさに気を付けて利用する
信 頼 性
1
選
規文
無印
●
○
作法
数
規約化
選択指針
ルール
数
詳細
作 法 概 要
品質概念
信 頼 性
信 頼 性
保 守 性
保 守 性
保 守 性
保 守 性
移 植 性
SEC
ESCR-サンプル
(作法→詳細→ルール階層化)
品質概念
作法概要
参照ルール 選択指針
作法詳細
ルール番号
規約化
適合例
不適合例
SEC
組込みソフトウェアの開発プロセス
開発プロセスの整備・徹底が困難
実態に合わず守れないプロセス
(組込み向け標準プロセスがない、ハードウェア開発プロセス
との連携が必須)
組込みソフトウェアに適した開発プロセスを整備
品質確保に必要な
手順/作業
を抽出・整理
開発作業の
入力・処理・出力
の整備
ドキュメントテンプレート
を提供
作業に結びつく
具体的ノウハウ
整理
ISO/IEC 12207,15288など
国際標準
に準拠
ESPR
(Embedded System development Process Reference guide)
SEC版 組込みソフトウェア開発プロセス標準
特徴
開発プロセスの整備
SEC
ESPR-サンプル
(入力・処理・出力の整備)
出力
タスク構成
入力
SEC
開発計画の充実
組込みソフトウェアの開発管理
ソフトウェア開発管理リスクの増大
⇒見積りの難しさ、最適な人材配置の難しさ、
複雑なモジュール統合
(根拠の薄い計画、プロジェクト運営のもたつき、非効率な開発・・・)
組込みソフトウェア開発プロジェクトの開発計画書作成指針を整理
QCDそれぞれの視点からの多面的な計画立案を指向
計画書に盛り込む具体的な要素を詳細に規定
計画立案上注意すべき事項を整理
計画書テンプレートを準備
ESMR
(Embedded System development Management Reference guide)
SEC
版
組込みソフトウェア開発プロジェクトマネジメントガイド
SEC
SEC
計画書作成の実践トレーニング
組込みソフトウェア向け
『プロジェクト計画立案トレーニングガイド』
プロジェクト計画の立案手順を知る
~組込みソフトウェア業界の計画立案ノウハウを集大成~
・ESMR計画書編に続く、計画書作成の実践トレーニングガイド
・計画段階での必要事項検討が不十分(書き方がわからない他)
・プロマネ、PJメンバー、管理者等様々なPJ関係者を想定
(Embedded System eXercise Guide)
SEC
○計画立案時に
検討すべき事項を詳細化
○トレーニングを意識した
立案手順
と
記述する具体的文書
を提示
必要な
技法・手法
を解説。
○開発事例を基に、全項目に亘っての
立案過程
および
立案結果
としての計画書を添付
ESMGの特徴
経験者の頭の中の論理展開を詳細化
テーマ ⇒ 項目 ⇒ ステップ ⇒ Check
「自動改札機搭載ソフトウェア」のプロジェクト計画書
参照入力物の取得から計画書記述まで
規模見積もり、工数算出方法などの解説
SEC
品質の可視化
組込みソフトウェアの品質管理
品質問題による対策費の増大
ネットワーク社会の中で,より広範囲に多大な影響
を及ぼすケースが増加
組込みソフトウェアの定量的品質管理の進め方、
品質向上の際の参考とすべき数値指標を整備
エンドユーザから求められる品質レベルを定義
プロジェクトの特性を考慮した指標値補正
プロセス/プロダクトの品質指標(26種)の定義
品質指標値の参考値を提示
ESQR
(Embedded System development Quality Reference guide)
SEC版 組込みソフトウェア開発向け 品質作り込みガイド
特徴
(場当たり的対応、後追いの品質確保・・・)
Embedded System development Quality Reference