工学(Engineering)とは、主に数学、化学、物理をベースとする自然科学などの知識を応用して、実用的な技術発見や製品開発などを研究対象とする学問の総称です。
工学と対照的には、理学(Science)、医学(Medicine)、農学(Agriculture)などの分類があります。
工学の分類
工学には様々な分類がありますが、以下はその代表的な一部です。
- 建築工学
- 機械工学
- システム工学
- 情報工学
- 電子工学
- 鉄道工学
- コンピュータ工学
工学の共通点
工学の共通点としては、以下のような作業を共有していることです。
- モデリング
なにが問題で,どんなものを作るべきかを明確にするため、対象領域を分析して,モデル化する技術が重要です - 仕様
工学はきちんとした仕様を明確しなければなりません - 成果物
工学はなんらかの成果物を作成しています - 設計
工学の核は設計技術です。 - 検証
成果物が仕様に満たしているかどうかを検証しなければなりません
ソフトウェア工学
ソフトウェア工学(Software Engineering)とは、ソフトウェア開発を研究対象とする工学で、ソフトウェアを効率的に設計、開発するための手法に関する学問、もしくはそのための技術のことをいいます。
情報システムとは
ソフトウェア業界の仕事は、情報システム開発が大半を占めているため、ここで情報システムのことを特別に取り上げて説明します。
情報システム(Information System)とは、情報を適切に保存・管理・流通するための仕組みやシステムのことです。言葉の意味からすれば、コンピュータを使わなければならないことはないですが、現代ではほとんどの場合、情報システムは「コンピュータ情報システム」の略として用いられています。
情報システムは、ハードウェア、ネットワーク、ソフトウェアを組み合わせて構成されたシステムであるため、ソフトウェアを含めているイメージですが、情報システム構築時は、構成要素のハードウェアは調達するものであり、開発する必要なのはソフトウェア部分のみですので、情報システムの開発=情報システムにおけるソフトウェアシステム開発として、ソフトウェア工学の最も重要な一大分野になっております。
ソフトウェアのライフサイクル
全てのソフトウェアにはライフサイクルがあります。
ほとんどの場合、ソフトウェアは、「企画」→「開発」→「運用」→「廃棄」からなるライフサイクルをたどると考えれ、ソフトウェア工学の研究対象は主にそのなかの「開発」になります。 ソフトウェアにはリニュアルやバージョンアップがよくあるものですが、ライフサイクルからみれば、新旧バージョンを別々のソフトウェアととらえることができます。
ソフトウェアの品質
ソフトウェアの品質特性は大きく6つに分類され、それぞれの英語の頭文字をとってFRUEMP特性とも呼ばれています。- 機能性
必要な機能を満たしているかということです。 - 信頼性
指定された条件の下で正しく動くかということです。 - 使用性
使いやすさを表します。 - 効率性
スピードとサイズに関する性能です。 - 保守性
修正のしやすさです。 - 移植性
実行する環境の移行のしやすさを表します。
プロジェクト管理
ソフトウェアプロジェクト管理 (Software Project Management) は、ソフトウェアプロジェクトを計画し導く技術です。
プロジェクト管理の一分野として、ソフトウェアを開発するための組織、チーム、個人のあり方、つまり人間の問題を取り扱うため、「もの」が取り扱う対象のソフトウェア工学の分野には分類されません。