一般にOSなどをシステムパッケージ、OS上で実行されるゲームソフトなどをアプリケーションパッケージという。ソフトウェアは、ハードウェアを稼働させるためのシステムソフトウェアとユーザーが利用するための応用ソフトウェアに大別される。応用ソフトウェアと基本ソフトウェアの間に、ミドルウェアがあることを覚えておこう。階層構造にすると上位になるほどハードウェアの影響が少ない。階層構造の利点は、上位の層はすぐ下の層だけを気にすればよいことである。ステレオのプラグにウォークマンのヘッドホンを繋ぐとする。このときプラグの大きさが合わないので接続できない。そこで間に変換プラグをはさむことで接続できる。ヘッドホンから見れば、変換プラグに合っていればよく、ステレオのプラグの大きさは関係ないことになるわけだ。ソフトウェアの階層構造の具体的な利点を紹介する。データベースや通信機能などを独立させることにより、移植*1に伴なう修正作業をミドルウェアで吸収でき、応用ソフトウェアの変更をしなくてすむ。システムソフトウェア基本ソフトウェア(広義のOS)制御プログラム(狭義のOS):基本通信制御を含む。言語プロセッササービスプログラム(ユーティリティ)ミドルウェアデータベース管理システム通信管理システム:LAN制御を含む。ソフトウェア開発支援ツール:CASEツールを含む。†ハードウェアを制御し、効率的にコンピュータを活用するためのソフトウェア。†ハードウェアの基本的な制御を行い、ハードウェアの資源を有効活用するとともに、ユーザーの使い勝手をよくするためのソフトウェア。広義にはオペレーティングシステム(OS)を示す。基本ソフトウェアには、さらに制御プログラム(狭義のOS)、言語処理プロセッサ、サービスプログラム(ユーティリティソフトウェア)がある。基本ソフトウェアと応用ソフトウェアの中間に位置し、多くのユーザーが共通して使用するソフトウェアのこと。OS上で動作し、アプリケーションソフトに対してOSよりも高度で具体的な機能を提供する。OSとアプリケーションの中間に位置するOSの機能を利用するには、スーパーバイザーコール(システムコール)を利用する。システムコールを利用するには、OSやハードウェアの高度な知識を必要とする。そのため、システムコールを直接利用したアプリケーションの作成は難しい。そこで、システムコールの難しい部分を隠蔽することで、高度なスキルを要求せずにOSの機能を利用できる仕組みを提供するソフトウェアがミドルウェアである。多様な利用分野に共通する基本機能を実現する例えば、DBMSは高度なアルゴリズムによるファイル入出力やログの保存などの機能を持っている。これはDBMSを利用するアプリケーションにとっては共通の機能であるので、これを括り出してミドルウェアとする。他にもトランザクション制御など、アプリケーションが直接実装すると開発規模の肥大や品質の低下を招くような場面で共通部分を括り出して、ミドルウェアとする場合がある。†ユーザーの利用目的に応じて作られたソフトウェア。アプリケーションソフトウェアとも呼ばれる。多くの分野で共通して利用できる汎用的なソフトウェア。個々のユーザーが同じソフトウェアを共通利用できるので、一般にソフトウェアパッケージにされ市販されている。†ソフトウェアパッケージされた共通応用ソフトウェアでは十分な作業が行えない場合に、個々の業務ニーズに応じて開発したソフトウェアのこと。異なるコンピュータや異なるOS用にソフトウェア(プログラム)を書き換えること。TPモニタ(4647d)。