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

アプリケーションソフトウェア（application software, 応用ソフトウェア）は、アプリケーション（応用）プログラムともいい、ワープロや表計算などといった、コンピュータを「応用」する目的に応じた、コンピュータ・プログラムである。なお、それに対してシステムプログラムは、アプリケーションプログラムに対して処理実行のための計算機資源を抽象化して提供する、などのインフラとしての役割のプログラムであり、ユーザーが要求する情報処理を直接実行するものではなく、ユーザーが普段は意識することはない裏方的な存在がシステムプログラムである。 アプリケーションソフトウェアの例として、一般的な事務作業を支援するワードプロセッサ、表計算ソフト、データベース管理システム (DBMS) や、映像や音声を再生するためのメディアプレーヤーなどが挙げられる。 複数のアプリケーションがパッケージとして同梱されたものをアプリケーションスイート (application suite) と呼ぶことがある。例として、ワードプロセッサや表計算ソフトなどを同梱した、Microsoft OfficeとOpenOffice.orgが挙げられる。スイート内の各アプリケーションの特徴として、操作のユーザインタフェースに一貫性があり、表計算ソフトで作成したスプレッドシートをワードプロセッサの文書内に埋め込むなど、相互のデータのやりとりが考慮されていることが挙げられる。 組み込みシステムやデジタル腕時計、簡易的なゲーム機などでは、アプリケーションソフトウェアとシステムソフトウェアは利用者から見て区別できない場合がある。例えば、ビデオテープレコーダ、DVDプレイヤー、電子レンジなどの制御は、アプリケーションソフトウェアとシステムソフトウェアの組み合わせによって実現されることがあるが、そのような機器内部の組み合わせは、利用者には区別することができない。また、アプリケーションとシステムソフトウェアを分けずに作成されている場合も有る。 アプリケーションソフトウェアは、目的に応じて、利用者が自作することがある。身近な例としては、スプレッドシートのテンプレート、ワードプロセッサのマクロ、科学的シミュレーション/グラフィックス/アニメーションなどのスクリプトなどが挙げられる。電子メールのフィルタも自作ソフトウェアの一種と言える。 一方、世の中の多くの人が共通的に利用できるものとして、汎用化して売り出したものをパッケージソフトウェアと呼ぶ。会計処理や給与計算、製造業・小売業などの多くの分野に対して、業務用や会計用、人事や査定用のパッケージソフトウェアが販売されている。 近年のパッケージソフトウェアには、Java EEとApache Strutsを利用した、ウェブアプリケーションサーバ上で稼働するものがある。2000年代初期より、iアプリなど、携帯電話上で動くアプリケーションソフトウェアも登場した。 オペレーティングシステムなどのシステムソフトウェアとアプリケーションソフトウェアの境界は明確ではなく、しばしば議論の元となる。 コンピュータ科学的には、プロセッサのユーザモードで動くプログラムか、OSなど特権モードで動くプログラムか、といった議論は可能だが（CPUモードの記事などを参照）、コンパイラとワープロの間のどこに境界線があるか、などというような話は議論のしようがなく、そもそも意味がある議論ではない。 テキストを操作するアプリケーションもあれば、数式、グラフィックス、あるいはこれらの組合せを操作するアプリケーションもある。ワードプロセッサのように特定の作業に特化することで強力な計算能力を提供するものもあれば、個々の作業をこなす能力は低くても、いくつかのアプリケーションを統合したソフトウェアもある。 コンテンツは広義には全ての具体化されたソフトウェアを含むことがあるが、アプリケーションソフトウェアと対比される場合には、該当ソフトウェアが作製、編集、出力、管理する対象物を指す。多くはコンテンツ自体がデジタルデータである。例えば、画像処理ソフトウェアはアプリケーションソフトウェアであり、作製・編集されたデジタル画像をコンテンツと称する。 企業ソフトウェア (enterprise software) は、組織のプロセスやデータフローのニーズに対応したもので、大規模な分散環境であることが多い。例えば、財務管理、顧客関係管理 (CRM)、サプライチェーン・マネジメント (SCM) などがある。部門ソフトウェア (departmental software) は企業ソフトウェアの一種であり、大きな組織内のより小さな部分を扱う。例えば、出張旅費管理、ITヘルプデスクなどがそれに当たる。 デジタルダッシュボード 企業基盤ソフトウェア (enterprise infrastructure software) とは、企業ソフトウェアシステムをサポートするために必要な共通機能を提供するものを指す。例えば、データベース、メールサーバ、ネットワーク管理、セキュリティ管理などがある。 ビジネスワークフローソフトウェア データベース管理システム (DBMS) デジタル資産管理 (DAM) ソフトウェア 文書管理システム 地理情報システム インフォメーション・ワーカー・ソフトウェア (information worker software) とは、組織内の個々のプロジェクトで、個人が情報を生成し管理するニーズに対応したソフトウェア。例えば、時間管理、資源管理、ドキュメンテーションツール、解析ツール、グループウェアなどがある。ワードプロセッサ、表計算ソフト、電子メールクライアントやブログクライアント、個人情報管理システム、各種メディアエディタなどは、様々なインフォメーションワーカーの仕事で使われる。 時間/資源管理 - 会計ソフト、プロジェクトマネジメントソフト データ管理 - コンタクト管理、表計算ソフト、データベース管理システム (DBMS)（個人用） ドキュメンテーション - ワードプロセッサ、DTP、作図ソフトウェア、プレゼンテーションソフトウェア 解析ソフトウェア - 数式処理システム、数値解析、統計ソフトウェア グループウェア - 電子メール、ブログ、ウィキ 財務ソフトウェア - 株式取引用ソフトウェアなど コンテンツ・アクセス・ソフトウェア (contents access software) は、基本的には編集することなくコンテンツにアクセスするソフトウェアだが、コンテンツ編集機能を持つ場合もある。デジタルエンターテイメントの消費を目的としたり、デジタルコンテンツを出版するのに使われることもある。 電子メディアアクセス - ウェブブラウザ、メディアプレーヤー、プレゼンテーションソフトウェア 娯楽/エンターテイメント - バーチャルペット、スクリーンセーバー、コンピュータゲーム 教育ソフトウェア (educational software) は、コンテンツアクセスと似ているが、教材を提示するだけでなくテストを課すことで学習状況を管理する点が特徴的である。また、グループウェア的要素を持つことが多い。 コンピュータ支援教育、eラーニング、CBT エデュテイメント - タイピングソフト シミュレーションソフトウェア (simulation software) は、研究/訓練/娯楽などの目的で物理的システムや抽象的システムをシミュレーションするソフトウェア。 計算科学におけるシミュレーション 社会科学におけるシミュレーション 訓練目的のシミュレーション - フライトシミュレーション、ドライビングシミュレーター シミュレーションゲーム コンテンツ開発ソフトウェア (contents development software) とは、他者に発信するための印刷コンテンツや電子コンテンツを制作するためのソフトウェア。グラフィックアート、電子出版、マルチメディア開発などが含まれる。 3DCGソフトウェア アニメーションソフトウェア グラフィックアートソフトウェア 画像編集 - ペイントソフト、ドローソフト ビデオ編集ソフトウェア サウンド編集ソフトウェア ミュージックシーケンサー - 楽譜作成ソフトウェア ハイパーメディア編集ソフトウェア - Webオーサリングツール エンジニアリングソフトウェア (engineering software) は、各種製品開発に使われる。 ハードウェアエンジニアリング - CAE、CAD、有限要素法解析ソフトウェア ソフトウェアエンジニアリング - コンピュータ言語処理系/エディタ/コンパイラなど、統合開発環境 (IDE) ^ Ceruzzi, Paul E. (1998). A History of Modern Computing. Cambridge, Mass.: MIT Press. ISBN 0262032554. システムソフトウェア オペレーティングシステム ミドルウェア パッケージソフトウェア デスクトップアプリケーション ウェブアプリケーション ホストアプリケーション 携帯アプリ、スマートフォン#アプリケーション、モバイルアプリケーション ビジネスソフトウェア