ソフトウェア開発
中心となる活動
開発プロセス
要求
アーキテクチャ
設計
エンジニアリング
実装
テスト
デバッグ
デプロイメント
メンテナンス
パラダイムとモデル
アジャイル
クリーンルーム
反復
ソフトウェアプロトタイピング
スパイラル
Vモデル
ウォーターフォール
方法論とフレームワーク
ASD
ソフトウェア工学(ソフトウェアこうがく、英語: software engineering)はソフトウェアを対象とした工学である。すなわち、有用なソフトウェアが持つ特性・構造を探り、その構築・維持・管理に有用なプロセスを見出す学問である。 ソフトウェア工学はソフトウェアの開発・運用・保守に関して体系的・定量的にその応用を考察する分野である[1]。ソフトウェア工学は「工学」であり、ソフトウェアの信頼性・保守性・開発効率の向上などを目的とする[2]。 ソフトウェア工学には、設計法と生産法の2領域がある。設計法はソフトウェア構造(ソフトウェアアーキテクチャ)を扱う。ソフトウェア生産法はソフトウェアライフサイクルプロセスを扱う。これら二つの領域は利点と制約の面で相互関係がある。 ソフトウェア工学には、要求分析、ソフトウェア設計、プログラミング、ソフトウェアテスト、ソフトウェア保守といった作業に関する知識・ツール・手法が含まれる[3]。ソフトウェア工学に関連する学問分野として、コンピュータ科学、コンピュータ工学、経営管理論、数学、プロジェクトマネジメント (ソフトウェアプロジェクト管理) 、品質管理、人間工学、システム工学がある[4]。また、他分野とクロスオーバーしていたり、もしくはソフトウェア工学の1分野だったものが独立して別分野を形成したり(例:データベース設計)、別分野で培われた技術や概念がソフトウェア工学の対象となることもある(例:オブジェクト指向技術)。
概要