階層に基づく分類では、ソフトウェアは機能を提供する相手の階層によって分類される。提供相手はエンドユーザー(人間)からアプリケーションソフトウェアまで様々である。
システムソフトウェア詳細は「システムソフトウェア」を参照
コンピュータのハードウェアを管理・制御するなど、コンピュータの稼動自体に必要となるソフトウェアである。典型的なシステムソフトウェアとして、オペレーティングシステム (OS) があり、様々なソフトウェア処理のプロセスに対し、CPUやメモリの割り当てを管理したり、記憶装置にデータファイルを正しく読み書きできるようにするなど、さまざまな処理を行っている。キーボードやマウスなどの入力機器からの信号を、後述のアプリケーションソフトウェアに通知したり、アプリケーションソフトウェアの要求に応じて、画面への図形や文字の表示を行うのも、オペレーティングシステムの機能である。
パーソナルコンピュータをはじめとする、家庭用のコンピュータ機器では、これらのソフトウェアは購入時にコンピュータ本体に同梱あるいはプリインストールされていることが多い。
そのほか、オペレーティングシステムでは提供されない機能のうち、さまざまなアプリケーションソフトウェアで利用される一般性のある機能を提供するものを、ミドルウェアという。
アプリケーションソフトウェア詳細は「アプリケーションソフトウェア」を参照
アプリケーションソフトウェアは、利用者の目的に応じた機能を提供するソフトウェアである。
一般事務で利用されるワープロや表計算ソフトウェアを初め、娯楽を目的としたゲームソフトや、工場の作業を自動化するファクトリーオートメーション、事務手続きや経営を管理するためのビジネスソフトウェア、ブラウザ、教育や医療などあらゆる目的に応じてソフトウェアが開発されている。ソフトウェアの開発自体に使われるプログラミングツール[6]もある。
これらのアプリケーションソフトウェアは、既製品をパッケージソフトウェアなどのかたちで購入するほか、利用者自身が、目的を果たすソフトウェアを開発する場合もある。大規模なものでは銀行の預貯金口座を管理する勘定系システムやJRの「みどりの窓口」で使われるマルスなどのオンラインシステムを始め、販売や営業、生産などの各種業務管理システムなどの個別開発のソフト群(各企業内でのコンピュータシステム(情報システム)の一部を形成する)から、小は表計算ソフトのテンプレート、ワープロソフトのマクロ、科学技術シミュレーション、グラフィックスやアニメーションのためのスクリプトなどが含まれる。電子メールフィルタなども一種のユーザー作成ソフトウェアである。ユーザーは自身の作成したこれらのソフトウェアの重要性に気づいていないことが多い。ユーザー作成ソフトウェアが購入されたアプリケーションソフトウェアとうまく統合されていると、多くのユーザーはその区別ができない。 ハードウェアに基づく分類ではソフトウェアが機能するハードウェアによって分類される。ハードウェアには特定機能のみを提供する組み込みシステムから汎用計算をサポートするパーソナルコンピュータまで様々である。 特定の機能を実現するために家電製品や機械等に組み込まれるコンピュータシステムのこと。ソフトウェアは、明らかにコンピュータとわかるもの以外に、様々な機器に搭載されて稼働している。近年では、家庭用機器の高機能化に伴い、携帯電話やゲーム機をはじめ、多くの電化製品や自動車などの機能を実現するために必要不可欠なものとなっている。
ハードウェア
組み込みシステム詳細は「組み込みシステム」を参照
コンピュータハードウェアとの関係