[[1976__ITCO__Software Engineering]] > The practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them. --- [Software engineering - Wikipedia](https://en.wikipedia.org/wiki/Software_engineering) > **ソフトウェア・エンジニアリングとは**、[ソフトウェア開発に対する](https://en.wikipedia.org/wiki/Software_development "Software development") [工学的](https://en.wikipedia.org/wiki/Engineering "Engineering")アプローチである。実践者である**ソフトウェア・エンジニアは**、[エンジニアリング設計プロセスを](https://en.wikipedia.org/wiki/Engineering_design_process "Engineering design process")適用して[ソフトウェアを](https://en.wikipedia.org/wiki/Software "Software")開発する。 --- [[モダン・ソフトウェアエンジニアリング]]に次のように定義されている。 > 第1章 プログラミングからソフトウェアエンジニアリングへ p.14 > ソフトウェアエンジニアリングの定義は専門家のあいだでもよく議論になるが、我々の考えを以下に示そう。 > ソフトウェアエンジニアリングとは、ソフトウェアシステムの開発、テスト、デプロイ、 運用、保守において、体系的で規律のある定量可能なアプローチを適用するものである。 > 「体系的で規律のある定量可能なアプローチ」とは、プロジェクトが違っても再現性と一貫性があり、継続的に改善されることを意味する。これは、作業方法に何らかの説明が伴うとい うことであり、それによって自動化が可能となっている。ソフトウェアエンジニアリングには、 ユーザーやステークホルダーが必要とするものを理解し、プログラマーが理解できる明確な要求に変換することも含まれる。ソフトウェアの構築とテストに必要な技術を理解することも含 まれる。ソフトウェアの各パーツが他のパーツと連携してゴールを達成できるように、ソー シャルスキルを持つチームが協力して作業する必要がある。つまり、ソフトウェアエンジニアリングには、個人と個人が協力してソフトウェアを進化させ、何らかのゴールを達成すること も含まれている。 Engineeringの定義は[[工学|Engineering]]を参照すること。