自分の理解を深めるために投稿します。
第1章:ソフトウェアコンストラクションへようこそ
ソフトウェアコンストラクションとは
ソフトウェア開発のためのアクティビティはたくさんある!
コンストラクションに関わるものを上から並べると、
- コーディングとデバッグ(これがコンストラクションのほとんど)
- 詳細設計
- コンストラクション計画
- 単体テスト
- 統合
- 統合テスト
(以降はコンストラクション以外の重要なアクティビティ)
- ソフトウェアアーキテクチャ
- システムテスト
- 要求開発
- 保守
- 課題定義
詳細なアクティビティはこの後の章で説明していく
コンストラクションは決して機械的ではなく、優れた想像力と判断力を必要とする
「コンストラクション = プログラミング」という一般的な言葉の意味合いで捉えるといいかもしれない
なぜソフトウェアコンストラクションは重要か
以下がその理由である
- (時間的に)ソフトウェア開発の大部分を占める
- ソフトウェア開発の中心的なアクティビティである
- 他のプロセスはコンストラクションの準備や確認のために存在するイメージ(要求仕様書やシステムテストなど)
- コンストラクションに集中することで、個々のプログラマの生産性は驚くほど向上する
- コンストラクションにおける生産性には10~20倍の開きがある!
- 優れたプログラマが取り入れているテクニックを取り入れれば、生産性の向上につながる(この本の目指すところ)
- 成果物であるソースコードは、ソフトウェアを正確に書き表した唯一のドキュメントである
- 必ず実行される唯一のアクティビティである
まとめ
- コンストラクションの品質は、ソフトウェアの品質を大きく左右する
- コンストラクションの方法をどれだけ理解しているかが、どれだけ優秀なプログラマであるかを決める(これがこの本のテーマ)