ソフトウェア工学4 ディペンダブルプログラミング (dependable programming)

前回

 

 

issunno-koin.hateblo.jp

 

ディペンダブルプログラミング(dependable programmin)

 

・故障の回避や耐故障性に効果のある言語要
素やプログラミング技術を採用
情報隠蔽
オブジェクト指向の考え方(カプセル化
– データの予期しない参照・変更を防止
・安全指向プログラミング
– 簡潔なプログラムスタイル・スタイルの標準化
• 標準の例:MISRA-Cなど
– エラー状態を招きやすい言語要素を回避

 l浮動小数点(誤差の問題)
 lポインタ(別名参照の問題,領域チェックの問題)
 l動的メモリ確保(解放忘れの問題)
 l並行性(デッドロック・リソース競合)
 l再帰(故障の検出が難しくなる)
 l割り込み(クリティカルな処理の中断)
 l継承(特に動的束縛使用でコード理解の問題)
 l別名(解放した参照先の再参照など)
 l不定長配列(バッファオーバフローの問題)
 lデフォルト入力処理(処理系の予期しない欠陥)

– 例外処理

 

ソースコードインスペクション

ソースコードを検査(目視など)し,プログラムスタイルに違反するエラーの元凶となる部分を検出する。自動化ツールによる支援も利用可能だが、一般に検出結果の抑制と選択が課題。最後に一遍に使うのではなく、こまめに使うとよい。