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

アプリケーションソフトウェアあるいはアプリケーションソフトは、ある特定の機能や目的のために開発・使用されるソフトウェアで、コンピュータの操作自体のためのものではないもの。たとえば、ワープロソフト、表計算ソフトウェア、イラスト作成用ソフトウェア、写真加工用ソフトウェアなど。アプリケーションプログラムともいい、コンピュータ・プログラムの一種である。アプリケーションとも呼ばれ。「アプリケーション」は「応用」という意味なので日本語では「応用ソフト」とも呼ぶ。日本語ではアプリとも略される。「アプリ」という略称の用例は1980年代から存在するgroup="注釈"。マイクロソフトもWindows 10あたりから、アプリケーションソフトのことをアプリと呼ぶようになった。

1. 概要
-----

アプリケーション・ソフトウェアという用語・概念と対比されている用語・概念というのは「システムソフトウェア」であり、システムソフトウェアのほうは、計算機のきわめて基本的な機能や資源を管理・提供する役割のソフトウェアであり、譬えて言えば「裏方的な存在」である。

アプリケーションソフトウェアの例としては、たとえば一般的な事務所での基本的な事務作業を支援する分野では、ワープロソフト、表計算ソフト、プレゼンテーションソフトウェア、データベース管理システム  などが挙げられ、その他の分野では、映像・音声などを再生するためのメディアプレーヤー、ペイントソフト、画像編集ソフトウェア、動画編集ソフトウェア、ゲームソフト...と、現在では網羅的に列挙することは困難なくらい膨大な種類のアプリケーション・ソフトウェアがある。特にスマートフォンが登場し、スマートフォン上で動くアプリが流通するようになってからは、数もジャンルの数も爆発的に増えてきており、最初はそれぞれ数百個程度の数で始まったのに、2020年時点で、Android上で動きGoogle Play Storeで流通しているアプリは約256万、iPhone上で動くアプリは約185万という状況である。ジャンルも、個人が仕事抜きで、きわめて私的に使うようなものの比率が圧倒的に増えてきている。→#モバイルアプリケーション

テキストを操作するアプリケーションもあれば、数式、グラフィックス、あるいはこれらの組合せを操作するアプリケーションもある。ワードプロセッサのように特定の作業に特化することで強力な計算能力を提供するものもあれば、個々の作業をこなす能力は低くても、いくつかのアプリケーションを統合したソフトウェアもある。

組み込みシステムやデジタル腕時計、簡易的なゲーム機などでは、アプリケーションソフトウェアとシステムソフトウェアは利用者から見て区別できない場合がある。例えば、ビデオテープレコーダ、DVDプレイヤー、電子レンジなどの制御は、アプリケーションソフトウェアとシステムソフトウェアの組み合わせによって実現されることがあるが、そのような機器内部の組み合わせは、利用者には区別することができない。また、アプリケーションとシステムソフトウェアを分けずに作成されている場合も有る。

なお、世の中の多くの人が共通的に利用できるものとして、汎用化して売り出したものをパッケージソフトウェアと呼ぶ。会計処理や給与計算、製造業・小売業などの多くの分野に対して、業務用や会計用、人事や査定用のパッケージソフトウェアが販売されている。

近年のパッケージソフトウェアには、Jakarta EEとApache Strutsを利用した、ウェブアプリケーションサーバ上で稼働するものがある。2000年代初期より、iアプリなど、携帯電話上で動くアプリケーションソフトウェアも登場した。

制作方法アプリケーション・ソフトウェアの制作というのは、近年では一般に統合開発環境を使って行われている。このアプリケーションを作成するソフトウェアもアプリケーションの一種でもある。→#アプリケーションソフトウェアの制作

1.1. 用語論
--------

OSとの線引きオペレーティングシステムなどのシステムソフトウェアとアプリケーションソフトウェアの境界は様々であり、OSの製造者によって異なる。利用者の間でも境界をどう見なすか判断が分かれることがあり、自分が利用しているOSの製造者と同じ考えを採ろうとする人もいるが、OSの製造者ごとに見解が異なるので人々の間でも見解が異なるという結果になり、またOSのインストールパッケージに含まれる物をアプリケーションとするのかしないのか、小規模なソフトウェアもアプリケーションとするのかしないのか、シェルをアプリケーションとするのかしないのか、などは、しばしば議論の元となる。

コンテンツとの関連コンテンツは広義には全ての具体化されたソフトウェアを含むことがあるが、アプリケーションソフトウェアと対比される場合には、該当ソフトウェアが作製、編集、出力、管理する対象物を指す。多くはコンテンツ自体がデジタルデータである。例えば、画像処理ソフトウェアはアプリケーションソフトウェアであり、作製・編集されたデジタル画像をコンテンツと称する。

該当ソフトウェアがコンテンツと称し、実行ファイル形式で出力する場合もある。また、開発環境と呼ばれるアプリケーションからはコンテンツとしてアプリケーションが出力される。

2. 分類
-----

さまざまな分類法がある。

たとえばコンピュータなどの種類で分類して、スーパーコンピュータ用 / メインフレーム用 / 汎用PC用 / スマートフォン・タブレット用 、Gガイド番組表、Netflix、OfficeSuit、PlayStore、YouTube、アルバム、カメラ、カレンダー、緊急速報メール、ドライブ、マップ、プライムビデオ ....

これでも実際のリストのまだ一部にすぎないが、ともかくこのように、スマートフォンのアプリでは、1980年代や1990年代にアプリケーションソフトウェアを分類していた時の、オーソドックスなカテゴリ枠ではもはや簡単に分類することができないような種類のアプリケーションが多数出現してきている。

さらにAndroidフォンだと、Google Play Storeに掲載されている250万種類以上のアプリケーションから自由に選んで、ダウンロードおよびインストールして使うことができる。しかも、一部に広告が少し表示されることを我慢すれば、ほとんどが無料である。開発者によっては、広告表示も一切無しで、アプリケーションを無料で人々に公開している。

3. 携帯電話用アプリケーション
----------------

携帯電話用のアプリは携帯アプリと呼ばれていた。

4. コンテンツ開発ソフトウェア
----------------

コンテンツ開発ソフトウェア  とは、他者に発信するための印刷コンテンツや電子コンテンツを制作するためのソフトウェア。グラフィックアート、電子出版、マルチメディア開発などが含まれる。

3DCGソフトウェア
アニメーションソフトウェア
グラフィックアートソフトウェア
画像編集 - ペイントソフト、ドローソフト
ビデオ編集ソフトウェア
サウンド編集ソフトウェア
ミュージックシーケンサー - 楽譜作成ソフトウェア
ハイパーメディア編集ソフトウェア - Webオーサリングツール

5. コンテンツアクセス・ソフトウェア
-------------------

コンテンツ・アクセス・ソフトウェア  は、基本的には編集することなくコンテンツにアクセスするソフトウェアだが、コンテンツ編集機能を持つ場合もある。デジタルエンターテイメントの消費を目的としたり、デジタルコンテンツを出版するのに使われることもある。

電子メディアアクセス - ウェブブラウザ、メディアプレーヤー、プレゼンテーションソフトウェア
娯楽/エンターテイメント - バーチャルペット、スクリーンセーバー、コンピュータゲーム

6. 教育ソフトウェア
-----------

教育ソフトウェア  は、コンテンツアクセスと似ているが、教材を提示するだけでなくテストを課すことで学習状況を管理する点が特徴的である。また、グループウェア的要素を持つことが多い。

コンピュータ支援教育、eラーニング、CBT
エデュテイメント - タイピングソフト

7. プロダクティビティ・スイート
-----------------

複数のアプリケーションがひとまとまりにされたもの、一種のパッケージに同梱されたような状態になったものを、アプリケーションスイート  と呼ぶことがある。例としては、ワードプロセッサや表計算ソフトなどを同梱した、Microsoft OfficeとOpenOffice.orgが挙げられる。スイート内の各アプリケーションの特徴としては、操作のユーザインタフェースに一貫性があり、表計算ソフトで作成したスプレッドシートをワードプロセッサの文書内に埋め込むなど、相互のデータのやりとりが考慮されていることが挙げられる。

8. インフォメーションワーカー向けソフトウェア
------------------------

インフォメーション・ワーカー・ソフトウェア  とは、組織内の個々のプロジェクトで、個人が情報を生成し管理するニーズに対応したソフトウェア。例えば、時間管理、資源管理、ドキュメンテーションツール、解析ツール、グループウェアなどがある。ワードプロセッサ、表計算ソフト、電子メールクライアントやブログクライアント、個人情報管理システム、各種メディアエディタなどは、様々なインフォメーションワーカーの仕事で使われる。

時間/資源管理 - 会計ソフト、プロジェクトマネジメントソフト
データ管理 - コンタクト管理、表計算ソフト、データベース管理システム 
ドキュメンテーション - ワードプロセッサ、DTP、作図ソフトウェア、プレゼンテーションソフトウェア
解析ソフトウェア - 数式処理システム、数値解析、
グループウェア - 電子メール、ブログ、ウィキ
財務ソフトウェア - 株式取引用ソフトウェアなど
企業向けウィキ

9. 企業ソフトウェア
-----------

企業ソフトウェア  は、組織のプロセスやデータフローのニーズに対応したもので、大規模な分散環境であることが多い。例えば、財務管理、顧客関係管理 、サプライチェーン・マネジメント  などがある。部門ソフトウェア  は企業ソフトウェアの一種であり、大きな組織内のより小さな部分を扱う。例えば、出張旅費管理、ITヘルプデスクなどがそれに当たる。

デジタルダッシュボード

10. 企業基盤ソフトウェア
--------------

企業基盤ソフトウェア  とは、企業ソフトウェアシステムをサポートするために必要な共通機能を提供するものを指す。例えば、データベース、メールサーバ、ネットワーク管理、セキュリティ管理などがある。

ビジネスワークフローソフトウェア
データベース管理システム 
デジタル資産管理  ソフトウェア
文書管理システム
地理情報システム

11. シミュレーションソフトウェア
------------------

シミュレーションソフトウェア は、シミュレーションするためのソフトウェア。使用目的は多種多様であり、予報、予測、研究、訓練、娯楽など。航空工学での航空機の流体力学的分析、天体物理学での利用、気象予報全般、気象現象の予測、気候変動の長期予測・研究、応用化学、製薬、マクロ経済やミクロ経済の予測、交通量の予測、感染症が社会や集団に属する人々の間で相互に感染してゆく過程や程度の予測...等々、現代では数えきれないほどのシミュレーションが行われている。たとえばここ数十年の精度の高い気象予報というのは、スーパーコンピューター上で走るシミュレーションソフトウェアの上で、架空の大気空間と地表などを多数のマス目で区切り、各マスの気温、気圧、水蒸気量、風向、風の強さ、日照...等々に関するデータを設定し、その膨大な量のデータに対して膨大な量の演算を高速に行い、各マス内の変化と周辺のマス目への影響など、相互作用を、細かい時間に分割して計算することで実現できている。1950年代や1960年代のようにコンピュータシミュレーション抜きの手法、つまりわずかなデータを用いて人の頭脳で大まかな推論や経験や勘で行っては、優秀な予報官ですら、気象予報のおよそ数割から半分強ほどがハズレになってしまう。

現代では、各分野ごとに、さまざまなシミュレーションソフトウェアが開発されている。具体的なシミュレーション・ソフトウェアについては:en:List of computer simulation softwareが参照可であり、各ソフトの特徴や使用分野も分かる。シミュレーションソフトの英語版の記事も読め、日本語版の記事へとリンクも張られているものもある。

なお訓練目的のシミュレーションソフトウェアなどもある

またゲーム形式に仕立てたシミュレーションゲームもPlayStationなど市販のゲームコンソールやPCなどで動くので、ゲーム愛好者たちにさかんに利用されている。

12. エンジニアリングソフトウェア
------------------

エンジニアリングソフトウェア  は、各種製品開発に使われる。

ハードウェアエンジニアリング - CAE、CAD、有限要素法解析ソフトウェア
ソフトウェアエンジニアリング - コンピュータ言語処理系/エディタ/コンパイラなど、統合開発環境 

13. マネジメントソフトウェア
----------------

英語：Management software は、各種管理に使われる。

プロジェクトマネジメント -
ワークマネジメント -

14. スーパーコンピュータ用アプリケーションソフトウェア
-----------------------------

15. アプリケーションソフトウェアの制作
---------------------

近年では一般に、アプリケーションソフトウェアは統合開発環境を使って制作されている。IDEというのは、プログラマがソースコードを記述する「エディタ」、ソースコードから実行プログラムを生成する「コンパイラ」、コードの不具合を発見・修正するための「デバッガ」など、プログラム開発のためのソフトウェア群をひとまとめにしたもののことである。

無料のものもあり、有料のものもある。複数のプラットフォーム向けに使えるIDEもある。特定のプラットフォーム専用のものもある。

ものすごく原始的で単純なソフトウェアならば、テキストエディタだけでも書くことは一応でき、コンピュータの歴史の初期にはそうしたやりかたが行われることは多々あったわけで、今日でも初心者に対するプログラミング講習の「最初の一歩」だけは、あえてそうした段階を一度踏ませることでコンピュータ内部で行われていることの現実を初心者にも理解してもらうという手順がとられることも多いが、今日では、その次の段階以降の「アプリケーション・ソフトウェア」と呼ぶにふさわしいくらいの機能を持ったソフトウェアを制作する場合は、基本的に統合開発環境を使って制作するものだと考えてよい。

WindowsやMac,Linuxなど一般的なファイルからOSに読み込まれ実行される形式のOSであれば、上記開発環境で作成されたファイルを実行できる。

15.1. Androidアプリの場合
-------------------

Androidアプリ、つまりAndroid上で動くアプリの開発環境としては、たとえば以下のような選択肢がある。

Android Studio
Eclipse
Titanium Mobile
Visual Studio + Xamarin
Unity開発に使われるプログラミング言語は、主にJavaやPythonなど。

15.2. iOSアプリの場合
---------------

iOS上で動くアプリの開発環境は、

Xcode開発に使われる言語は、Swift、Objective-Cなど。

15.3. Windowsアプリケーションの場合
------------------------

Microsoft Windowsの上で動くアプリケーションの制作を行う開発環境としては、たとえば以下のような選択肢がある。

Visual Studio言語の選択肢としては、C++、C#、Visual Basic、F#、Python、Node.js、HTML/JavaScript、TypeScriptといったところである。
Eclipse

16. 脚注
------

16.1. 注釈
--------

16.2. 出典
--------

17. 関連項目
--------

システムソフトウェア
オペレーティングシステム
ミドルウェア
パッケージソフトウェア
デスクトップアプリケーション
ウェブアプリケーション
ホストアプリケーション
携帯アプリ、スマートフォン#アプリケーション、モバイルアプリケーション
ビジネスソフトウェア
ワープロソフト
禁則処理
クリップボード
クリップアート
マクロ言語
表計算ソフト
プレゼンテーションソフト
グラフィックソフト
オーサリングツール