ソフトウェア工学
ソフトウェア工学(ソフトウェアこうがく、Software engineering)は、コンピュータのソフトウェアを開発方法を研究対象とする情報工学の一分野である。コンピュータが発明されてから、多くのソフトウェアが開発され、またいくつもの開発方法が考え出されてきた。
(具体的には、高度かつ安全なコンピュータのソフトウエアを短期間で設計するための研究などを行なう。難易度の高い大規模ソフトウェアの開発に焦点を当てることが多い。)
他の工学分野と同様、ソフトウェア工学でも、その第一の目的は、いわゆる「複雑さの制御」である。 (大規模ソフトウェアでは、プログラムの規模による複雑さだけでなく、それを使用する人間の利害関係の複雑さも考慮しなければならない。)
ソフトウェア工学の成果は、ソフトウェア開発方法論にまとめられることがある。よく知られている開発方法論として、次が挙げられる。 構造化技法 オブジェクト指向方法論 エクストリーム・プログラミング
ソフトウェア工学では、通常、開発対象となるソフトウェアの開発を思いついた時点から、実際に動くソフトウェアが完成し、使用されるまでを、いくつかのフェーズに分けて考察する。これらフェーズごとに典型的な課題が存在し、課題に立ち向かう方法を明確にしようとする。
開発フェーズ
開発フェーズは、次のように分けられることが多い。用語は開発方法論ごとにさまざまである。;要求分析: 着想したソフトウェアがどのような機能を持つべきかを検討し、必要に応じて文書化する。 ;設計: 機能がソフトウェアとしてどのように実装されるべきかを検討し、必要に応じて仕様化する。 ;コーディング: 仕様に従ってプログラムを書く。 ;テスト: 作成されたプログラムが機能的な要求を満たしていることを実証する。 ;運用・保守: ソフトウェアを使用したり、新たな要求に応じて機能を追加・変更する。
おもな研究分野
プログラム意味論 ソフトウエア検証論 ソフトウエア開発環境
ソフトウェア開発方法
構造化プログラミング オブジェクト指向 デザインパターン アスペクト指向プログラミング
この記事はスタブ(書きかけ)です。この記事を加筆して下さる協力者を求めています。