ソフトウェア

ソフトウェア（英: software）は、コンピューター分野でハードウェア（物理的な機械）と対比される用語で、何らかの処理を行うコンピュータ・プログラムや、更には関連する文書などを指す。ソフトウェアは、一般的にはワープロソフトなど特定の作業や業務を目的としたアプリケーションソフトウェア（応用ソフトウェア、アプリ）と、ハードウェアの管理や基本的な処理をアプリケーションソフトウェアやユーザーに提供するオペレーティングシステム (OS) などのシステムソフトウェアに分類される。

ハードウェアの対比語としてのソフトウェア

「ソフトウェア」は「ハードウェア」の対比語であり、コンピュータの分野以外でも、物理的な装置の対比語として使われている。
DVDなどで物理的な記録メディアに対する映像や音楽等のコンテンツ、組織・都市・軍事などで施設・設備・車両などに対する規則・運用・教育などを意味する。
ある機能をもつソフトウェアに対して、「ソフトウェア」という言葉が接頭辞・形容詞的に用いられることがある。エンコードをするソフトウェアを「ソフトウェアエンコーダ」、DVDを再生するソフトウェアを「ソフトウェアDVDプレーヤー」と呼ぶことがある。情報を処理する（DVD再生の場合は、DVDに収録されたデジタル画像データを可視化する）際に、専用のハードウェア（DVD再生機）で処理されるか、パーソナルコンピュータなどの汎用的なコンピュータ上のソフトウェアで処理されるかを区別するためである。

コンピュータハードウェアとの関係

LSIなどを例にとると、LSIの物理的な回路そのものはハードウェアであり、その回路によって表現される処理手順はソフトウェアと考えられる。
一般的なソフトウェアは、補助記憶装置の中に機械語として記録されている。なお機械語は中央処理装置（CPU）の製品種別ごとに異なっている。ソフトウェアの利用時には補助記憶装置の内容が主記憶装置に読み込まれた後、中央処理装置において、データの移動、計算、制御フローなどの処理が実行される。これにより機械語は、コンピュータの状態を次々と変化させる。従ってソフトウェアは、ハードウェアの状態を変化させる命令列と考えられる。
記憶装置に異なる命令群を読み込んで計算を制御する概念は階差機関の一部としてチャールズ・バベッジが考案した。これら、ほとんどの近代ソフトウェアの基礎となる理論はアラン・チューリングの1935年の論文 Computable numbers with an application to the Entscheidungsproblem で初めて提唱された。
ソフトウェアの表現である機械語は、中央処理装置への命令となる2進数の値から構成されている。機械語の種類には、記憶装置間でのデータの移動や、条件による処理の分岐命令、演算などがある。これらを組み合わせて、1つずつ順に演算が実行される逐次処理や、条件つきで実行される処理、繰り返し実行されるループ処理などが実現される。一連の命令列をひとまとめにしたものをサブルーチンと呼び、他のサブルーチンを「呼び出す」命令もある。
例えば、メニューから 「コピー」 というエントリを選択したとき、ソフトウェアがどのように機能するか考えてみよう。この場合、条件付き命令列が実行され、メモリ上の「文書」領域にあるデータからテキストが、一般に「クリップボード」と呼ばれる中間的記憶領域にコピーされる。別のメニューエントリである 「貼り付け」 が選ばれると、ソフトウェアはクリップボードから特定の領域にテキストをコピーする命令列を実行する。
中央処理装置が複数あるシステムでは、命令列は複数同時並行的に実行できる（マルチプロセッシング）。

システムソフトウェア

コンピュータのハードウェアを管理・制御するなど、コンピュータの稼動自体に必要となるソフトウェアである。
典型的なシステムソフトウェアとして、オペレーティングシステム (OS) があり、様々なソフトウェア処理のプロセスに対し、CPUやメモリの割り当てを管理したり、記憶装置にデータファイルを正しく読み書きできるようにするなど、さまざまな処理を行っている。キーボードやマウスなどの入力機器からの信号を、後述のアプリケーションソフトウェアに通知したり、アプリケーションソフトウェアの要求に応じて、画面への図形や文字の表示を行うのも、オペレーティングシステムの機能である。
パーソナルコンピュータをはじめとする、家庭用のコンピュータ機器では、これらのソフトウェアは購入時にコンピュータ本体に同梱あるいはプリインストールされていることが多い。
そのほか、オペレーティングシステムでは提供されない機能のうち、さまざまなアプリケーションソフトウェアで利用される一般性のある機能を提供するものを、ミドルウェアという。

アプリケーションソフトウェア

アプリケーションソフトウェアは、利用者の目的に応じた機能を提供するソフトウェアである。
一般事務で利用されるワープロや表計算ソフトウェアを初め、娯楽を目的としたゲームソフトや、工場の作業を自動化するファクトリーオートメーション、事務手続きや経営を管理するためのビジネスソフトウェア、その他、教育や医療などあらゆる目的に応じてソフトウェアが開発されている。ソフトウェアの開発自体に使われるプログラミングツールもある。
これらのアプリケーションソフトウェアは、既製品をパッケージソフトウェアなどのかたちで購入するほか、利用者自身が、目的を果たすソフトウェアを開発する場合もある。
大規模なものでは銀行の預貯金口座を管理する勘定系システムやJRの「みどりの窓口」で使われるマルスなどのオンラインシステムを始め、販売や営業、生産などの各種業務管理システムなどの個別開発のソフト群（各企業内でのコンピュータシステム（情報システム）の一部を形成する）から、小は表計算ソフトのテンプレート、ワープロソフトのマクロ、科学技術シミュレーション、グラフィックスやアニメーションのためのスクリプトなどが含まれる。電子メールフィルタなども一種のユーザー作成ソフトウェアである。ユーザーは自身の作成したこれらのソフトウェアの重要性に気づいていないことが多い。ユーザー作成ソフトウェアが購入されたアプリケーションソフトウェアとうまく統合されていると、多くのユーザーはその区別ができない。

組み込みシステム

特定の機能を実現するために家電製品や機械等に組み込まれるコンピュータシステムのこと。
ソフトウェアは、明らかにコンピュータとわかるもの以外に、様々な機器に搭載されて稼働している。
近年では、家庭用機器の高機能化に伴い、携帯電話やゲーム機をはじめとし、その他多くの電化製品や自動車などの機能を実現するために必要不可欠なものとなっている。

品質

ソフトウェアの品質としては、利用者や開発者の立場から、様々な尺度が考えられる。

資産としてのソフトウェア

ソフトウェアは法律上、知的財産として扱われ、著作権法や特許法によって保護される。

一般的には著作者がそのソフトウェアの利用範囲を明確にした利用許諾契約書を用意しており、ソフトウェアの利用者はこれに合意しなければならない。この契約内容の一部を、ソフトウェアライセンスという。著作権者が利用許諾契約書を用意していない場合は著作権法の範囲での利用が可能である。

また、コンピュータを利用する発明ついて特許権が認められる場合がある。
その他、日本の使用者からみると、会計処理上（税法上）は、無形固定資産として扱われる。減価償却期間は5年間での定額償却である。

医療用ソフトウェアの規制

「医薬品、医療機器等の品質、有効性及び安全性の確保等に関する法律（略称:医薬品医療機器等法、薬機法、旧称：薬事法）」により、疾病診断用プログラム、疾病治療用プログラム、疾病予防用プログラム、および、それらを記録した記録媒体についても、副作用又は機能の障害が生じた場合において、人の生命及び健康に影響を与えるおそれがある場合には、医療機器として制限を受ける。これは、医療機器のIT化に伴って、医療的な効果を謳うソフトウェア単体についても他の医療機器と同様の規制が必要になったためである（医薬品医療機器等法第23条の2関係、医薬品医療機器等法第39条関係）。