覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

「CODE COMPLETE 完全なプログラミングを目指して(下)」 第20章 ソフトウェア品質

「CODE COMPLETE 完全なプログラミングを目指して(下)」 の 第20章 ソフトウェア品質 で気になった部分の抜粋です


ソフトウェアの品質改善技術

  • 組織によっては、その場しのぎのプログラミングが横行している。ボロボロのコードをまき散らし、プログラムを素早く完成させるGloba Garyタイプのプログラマの方が、すばらしいプログラムを書き、正しく動くことを確認してからリリースするHigh-Quality Henryタイプのプログラマよりも褒められる。このような組織では、プログラマが品質を最優先事項と考えないのは当然だ。

  • 開発中のソフトウェアの技術的な特性を制御するのがガイドラインである。

  • ソフトウェアエンジニアリングプロセスの管理の一つに、「最も価値の低い」段階で問題を特定するということがある。つまり投資が少なく、問題を修正するためのコストが最も少ない段階で問題を特定するのである。

開発プロセス

  • ソフトウェアの品質向上を妨げる重大な障害の1つは、変更が管理されていないことである。

  • 評価によって品質保証計画が成功したかどうかが明らかとなり、プロセスを既定の方法で調整し、改善の余地があるかどうかを確かめることができる。

  • 複数のケーススタディでプロトタイピング方式と従来どおり仕様から順に開発する方式とを比較した調査結果がある。この結果からプロトタイピングの方が優れた設計を生み、ユーザーのニーズをよく見たし、保守性を向上させることがわかっている。

目標の設定

  • プログラマは指定された目標に取り組むが、それには目標が何かを知らされていなければならない。


ソフトウェア品質改善技術の相対的な効果

  • ソフトウェアの欠陥検出のもっとも一般的な方法である単体テストと統合テストの欠陥検出率の標準値は30~35%に過ぎない。
    • プロジェクトの開発者が欠陥の排除率をどうしても引き上げたいのなら、様々な方法を組み合わせる必要があることが強くうかがえる。

欠陥検出のコスト

  • ほとんどの研究でインスペクションはテストよりも欠陥検出のコストが低いという結果が出ている。

欠陥修正のコスト

  • 欠陥がシステムに長くとどまればとどまるほど、それを排除するコストは高くなる、したがって、欠陥を早期に発見する検出テクニックには修正コストを抑える働きがある。

ソフトウェア品質の原則

  • ソフトウェア品質とは、品質を改善すると開発コストが低くなることである
  • コーディングのやり直しにかかる時間を減らすことが、生産性と品質を向上させる最善策なのである。
  • ほとんどのプロジェクトで最も時間のかかるアクティビティは、正しく動作しないコードのデバッグと修正である。デバッグとそれに伴うリファクタリングなどの修正作業は、従来の単純なソフトウェア開発サイクルにおいて約50%の時間を占める。エラーを予防してデバッグを減らせば、生産性は向上する。したがって、開発スケジュールを短縮する最も明らかな方法とは、製品の品質を向上させ、ソフトウェアのデバッグや作業のやり残しにかかる時間を減らすことである。



関連エントリ