AOBA's Information Processing Education
1998/05/10
注意1:このページは、回線を切断した後でゆっくりご覧になってください(テキストを印刷する場合は、その取り扱いに注意してくださるようお願いします)。
注意2:背景が白地の画面を長時間見つめていると頭が痛くなってしまいますので、ここは背景をグレーにしています。
先週はオペレーティングシステムについて説明しました。今週はソフトウェア全体の分類について説明します。
以下の図を見てください。これは、機能に着目してソフトウェアを分類した図です。
![]()
まずソフトウェアは、システムソフトウェアと応用ソフトウェアに分類することができます。
システムソフトウェアとは、ハードウェアの機能を効率的に活用し、コンピュータの利用を容易にさせる機能を持つソフトウェアの総称です。
この説明だけを見ると、先週説明したオペレーティングシステムとあまり変わりはないように思えます。確かに、オペレーティングシステムはシステムソフトウェアの一部です。
しかしシステムソフトウェアはミドルウェアをも含み、もう少し広い範囲のソフトウェアを指します。ミドルウェアについてはこのページの後の方で説明しましょう。ここでは、システムソフトウェアは基本ソフトウェアとミドルソフトウェアの総称である、と覚えておいてください。次に基本ソフトウェア(広義のOS)ですが、これは制御プログラム(狭義のOS)と言語プロセッサとサービスプログラム(ユーティリティプログラム)を総称する用語です(合わせた機能を持つのではなく、あくまで総称する用語ですよ)。
前2者については先週および先先週で説明したので省略しますが、サービスプログラムについて弱冠の補足をします。サービスプログラム(ユーティリティプログラム)とは、様々な分野に共通した基本的な処理を支援するプログラムです。これは主にコンピュータメーカが提供します。とは言っても何のことやら分かりませんね。ここでは、パソコンのことは忘れてください。
汎用コンピュータでは一般に、コンピュータの直接のユーザ(使う人)はソフトウェア開発者(というかアプリケーションソフトの開発者)です。そして、ソフトウェア開発を行うに当たって定型的な処理や作業があるのですが、これを支援するのがサービスプログラムです。
例えば、プログラムを組むには絶対と言ってよいほど(テキスト)エディタが必要です。これはそのコンピュータのユーザ(アプリケーションソフト開発者)にとって(分野に関係なく)共通的に必要なプログラムです。
パソコンの世界とは異なり、汎用コンピュータはコンピュータが異なれば同じソフトは動作しません。だからそのエディタは当該コンピュータでしか動作しないのです。だから、予めコンピュータメーカがエディタを作っておき、コンピュータを提供する時に(OSらと含め)それと込みで提供します。このようなソフトウェアがサービスプログラム、と言えばちょっとは分かってもらえたでしょうか。
サービスプログラムはエディタの他に、分類併合プログラム(ソート/マージプログラム),システム生成プログラム,ファイル変換プログラム,ライブラリ管理プログラム,連携編集プログラム等があります。これを一つ一つ説明する訳にはいかないので、キーワードだけざっと眺めておいてください。次に応用ソフトウェアの説明に移ります。
応用ソフトウェア(アプリケーションソフトウェア)とは、利用者の目的に応じた処理を行うソフトウェアの総称です。ここでの利用者とは開発者ではなく、一般のユーザを指します。つまり、コンピュータを使って実際の業務を処理するソフトウェアが応用ソフトウェアです。
応用ソフトウェアはさらに、個別応用ソフトウェアと共通応用ソフトウェアとに分類することができます。
個別応用ソフトウェアとは、その適用業務が限定され、各業務固有の処理を行う応用ソフトウェアのことをいいます(オーダーメイド的な性格を持つ)。例えば、JRのみどりの窓口で動作する予約システムや、あるコンビニで動作するPOSシステム(販売時点情報システム)がこれにあたります。
対する共通応用ソフトウェア(アプリケーションパッケージ)とは、多様な業種や業務に適用できる応用ソフトウェアです(既製品的な性格を持つ)。例えば、CADシステムなどがこれにあたります。(注1)POS(Point Of Sales)システム
販売時点情報システムの名称の通り、商品を販売した後すぐにその情報を処理するシステムのことをいいます。コンビニで見られるように、情報の入力は、ほとんどの場合バーコードで行われます。
(注2)CAD(Computer Aided Design)システム
コンピュータを利用して設計や製図を行うことをCADといいますが、これを支援するシステムがCADシステムです(ただし、製品設計における詳細設計を支援するシステムだけをCADシステムと言う場合もあります)。こういった応用ソフトウェアの開発者は、対象とする業務について詳しく知っていなければなりません。そうでないと、本当に使えるプログラムにならないからです。実際、応用ソフトウェアの開発者は、対象業務についてよく理解しています(?)。
一方、そういった開発者であってもコンピュータソフトを開発する技術者である限り、コンピュータのこともよく知っていなければソフトウェアは開発できません。ところがこれが結構つらいのです。
例えば、ある文字列をファイルに出力するとします。これはパソコンでは簡単ですが、汎用コンピュータでは何も(プログラムの)サポートがないと(そんなことは有り得ませんが)めちゃくちゃ面倒な処理になります。もしそうならば、チャネルと呼ばれるハードウェアを操作するために、制御プログラムに対して特殊な命令(スーパバイザコール)を発行するようなプログラムを書かなければなりません。
応用ソフトウェアの開発者は神様ではないのですから、対象とする業務の知識から制御プログラムに至るまで、広範囲に渡って知っている訳はありません(中にはいると思いますが....)。そこでミドルウェアの登場です。ミドルウェアとは、応用ソフトウェアと制御プログラムの開きを埋め、応用ソフトウェアの開発者の負担を軽くする目的を果たすソフトウェアです。具体的には、DBMSとか通信管理システムとかグラフィック処理(以上すべて説明は省略)といったソフトウェアがミドルウェアとなります。
(注)文字列をファイルに出力するのが面倒と言いましたが、これはあくまでもミドルウェアのイメージを理解してもらうために出した例です。汎用コンピュータであっても、この程度の処理ならば言語レベルでサポートしていますので簡単に行えます。
以上、機能に着目してソフトウェアを分類しました。一方、このような機能とは関係なしに、ソフトウェアパッケージと呼ばれるソフトウェアがあります。
ソフトウェアパッケージとは、その利用者が不特定多数のソフトウェアのことをいいます。例えばパソコンショップで販売しているパソコン用ソフトがこれにあたります。しかし、ソフトウェアには様々な種類がありますね。でもこれは今現在の分類であって、10年も経てばまた別の分類が発生するのはまちがいありません。それだけコンピュータは進歩し続けるということでしょうか。
ではまた来週。