このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

*目次 [#o9cc6a97]

#contents

*はじめに [#q745158a]

 一般にOSなどを''システムパッケージ''、OS上で実行されるゲームソフトなどを''アプリケーションパッケージ''という。

 ソフトウェアは、ハードウェアを稼働させるための''システムソフトウェア''とユーザーが利用するための''応用ソフトウェア''に大別される。応用ソフトウェアと基本ソフトウェアの間に、''ミドルウェア''があることを覚えておこう。

#img(http://security2600.sakura.ne.jp/main2/image1/middle.jpg)
#img(,clear)

 階層構造にすると上位になるほどハードウェアの影響が少ない。階層構造の利点は、上位の層はすぐ下の層だけを気にすればよいことである。例えばステレオのプラグに[[ウォークマン]]の[[ヘッドホン]]を繋ぐとする。このときプラグの大きさが合わないので接続できない。そこで間に変換プラグをはさむことで接続できる。ヘッドホンから見れば、変換プラグに合っていればよく、ステレオのプラグの大きさは関係ないことになるわけだ。

 ソフトウェアの階層構造の具体的な利点を紹介する。データベースや通信機能などを独立させることにより、移植((異なるコンピュータや異なるOS用にソフトウェア(プログラム)を書き換えること。))に伴なう修正作業をミドルウェアで吸収でき、応用ソフトウェアの変更をしなくてすむ。

-システムソフトウェア
--基本ソフトウェア(広義の[[OS]])
---制御プログラム(狭義のOS):基本通信制御を含む。
---[[言語プロセッサ]]
---サービスプログラム(ユーティリティ)
--ミドルウェア
---データベース管理システム
---通信管理システム:[[LAN]]制御を含む。
---ソフトウェア開発支援ツール:[[CASEツール]]を含む。
---EUCツール
---運用管理ツール
-応用ソフトウェア
--共通応用ソフトウェア
---CAD
---CAIオーサリングシステム
---エキスパートシステムシェル
---機械翻訳
---OR、統計処理(LP、シミュレーション、多変量解析など)
---科学技術計算ライブラリ
---特殊問題向き言語
--個別応用ソフトウェア
---各種業務固有のアプリケーション

*システムソフトウェア(system software) [#n1c89123]

 ハードウェアを制御し、効率的にコンピュータを活用するためのソフトウェア。

**基本ソフトウェア(Operating System:OS) [#j0403fcd]

 ハードウェアの基本的な制御を行い、ハードウェアの資源を有効活用するとともに、ユーザーの使い勝手をよくするためのソフトウェア。広義にはオペレーティングシステム(OS)を示す。

 基本ソフトウェアには、さらに制御プログラム(狭義のOS)、言語処理プロセッサ、サービスプログラム(ユーティリティソフトウェア)がある。


**ミドルウェア(middleware) [#v16c0f6a]

 基本ソフトウェアと応用ソフトウェアの中間に位置し、多くのユーザーが共通して使用するソフトウェアのこと。OS上で動作し、アプリケーションソフトに対してOSよりも高度で具体的な機能を提供する。

-OSとアプリケーションの中間に位置する
--OSの機能を利用するには、[[スーパーバイザーコール]](システムコール)を利用する。しかし、システムコールを利用するには、OSやハードウェアの高度な知識を必要とする。そのため、システムコールを直接利用したアプリケーションの作成は難しい。そこで、システムコールの難しい部分を隠蔽することで、高度なスキルを要求せずにOSの機能を利用できる仕組みを提供するソフトウェアがミドルウェアである。
-多様な利用分野に共通する基本機能を実現する
--例えば、DBMSは高度なアルゴリズムによるファイル入出力やログの保存などの機能を持っている。これはDBMSを利用するアプリケーションにとっては共通の機能であるので、これを括り出してミドルウェアとする。
--他にもトランザクション制御など、アプリケーションが直接実装すると開発規模の肥大や品質の低下を招くような場面で共通部分を括り出して、ミドルウェアとする場合がある。


例:

-データベースを管理する[[DBMS]]
-トランザクション処理を管理する[[TPモニタ]]
-システム開発を支援する[[CASEツール]]

*応用ソフトウェア(application software) [#i08fed92]

 ユーザーの利用目的に応じて作られたソフトウェア。アプリケーションソフトウェアとも呼ばれる。

**共通応用ソフトウェア [#d76f4620]

 多くの分野で共通して利用できる汎用的なソフトウェア。個々のユーザーが同じソフトウェアを共通利用できるので、一般にソフトウェアパッケージにされ市販されている。

例:

-ワープロソフト
-表計算ソフト
-プレゼンテーションソフト
-オーサリングソフト

**個別応用ソフトウェア [#vcc8b65e]

 ソフトウェアパッケージされた共通応用ソフトウェアでは十分な作業が行えない場合に、個々の業務ニーズに応じて開発したソフトウェアのこと。

例:

-販売管理ソフト
-財務管理ソフト
-営業支援ソフト


*参考文献 [#fceb4599]

-『実践コンピュータシステム』
-『平成16年度【秋期】基本情報技術者合格教本』
-『1週間で分かる基本情報技術者集中ゼミ【午前編】 2006春秋』