1人オブジェクト指向勉強会
第1章 ソフトウェアの品質
Hagihara Ryosuke
( @raryosu )
2017.12.01
はじめに
はじめに
本スライドは, @raryosu が
バートランド・メイヤー著

“オブジェクト指向入門 第2版” (翔泳社, 2007)
を読みながら,

オブジェクト指向への理解を深めるためのものです.
ひたすら読みながら内容をまとめていきます.
いつ終わるかな.
ソフトウェアの品質とは
ソフトウェアの品質
ユーザが認識できる性質外的品質要因
ex: スピード・使いやすさ
内的品質要因
ex: モジュール性・可読性
その他の性質
ソフトウェアの品質
外的品質要因
内的品質要因
設計者やプログラマが保証する必要がある
外的品質を保証するために重要
最終的に問題になる!!
ユーザにとっては内部のことより興味がある
ソフトウェアの品質
内的品質要因は
外的品質要因を保証する手段に過ぎない
全体を見失ってしまわないように注意!
外的品質要因
外的品質要因
① 正確さ
② 頑丈さ
③ 拡張性
④ 再利用性
⑤ 互換性
⑥ 効率性
⑦ 可搬性
⑧ 使いやすさ
⑨ 機能性
⑩ 適時性
⑪ その他の品質要因
① 正確さ correctness
すべきことをシステムが適切に実行すること
正確さは第1の要件である.
① 正確さ correctness
正確さの保証 ⇒ 前提条件依存
システムは複数のレイヤの上に成り立っている
① 正確さ correctness
高水準言語Xによる実装の正確さはアプリケーションシステム
コンパイラ
OS
ハードウェア
コンパイラの実装が正確である前提
「より下の層が正しい」という前提のもとで
個々の層が正しいことを保証する!
① 正確さ correctness
型付けと表明 などの技法により
最初から正確なソフトウェアの構築を支援できる
typing assertion
※後述
その成果を確認する手段として
「デバッグ」と「テスト」は欠かせない
② 頑丈さ robustness
頑丈さは,正確さを補完するものである.
② 頑丈さ robustness
頑丈さ
仕様
正確さ
仕様に記述されている場合のシステムの振る舞い正確さ
仕様以外のところで起きることについての特徴頑丈さ
② 頑丈さ robustness
頑丈さは,正確さに比べ「曖昧」な概念
② 頑丈さ robustness
仕様に明示的に記述されないケースは常にある
破壊的なイベントを引き起こさないようにする
適切なエラーメッセージを出力し,実行をきれいに終了させる
気配りのグレードダウン
graceful degradation

1人オブジェクト指向勉強会 第1章 ソフトウェアの品質