ソフトウェア

ソフトウェア（英: software）は、コンピューター分野でハードウェア（物理的な機械）と対比される用語で、何らかの処理を行うコンピュータ・プログラムや、さらには関連する文書などを指す。 「ソフトウェア」は「ハードウェア」の対比語であり、コンピュータの分野以外でも、物理的な装置の対比語として使われている。 DVDなどで物理的な記録メディアに対する映像（動画）や音楽等のコンテンツ、組織・都市・軍事などで施設・設備・車両などに対する規則・運用・教育などを意味する。 ある機能をもつソフトウェアに対して、「ソフトウェア」という言葉が接頭辞・形容詞的に用いられることがある。エンコードをするソフトウェアを「ソフトウェアエンコーダ」、DVDを再生するソフトウェアを「ソフトウェアDVDプレーヤー」と呼ぶことがある。情報を処理する（DVD再生の場合は、DVDに収録されたデジタル画像データを可視化する）際に、専用のハードウェア（DVD再生機）で処理されるか、パーソナルコンピュータなどの汎用的なコンピュータ上のソフトウェアで処理されるかを区別するためである。 ソフトウェアはコストゼロで複製できる。すなわちソフトウェア量産の限界費用は0である。 これはソフトウェアがデジタルデータの一種であることに由来する。デジタルデータはゼロコストで複製（コピー・アンド・ペースト）が可能であるため、ソフトウェアもゼロコストで複製できる。同じ大根を1本、車を1台、マッサージを1回追加で生産するには少なくないコストが発生するため、複製コストゼロはソフトウェアがもつ著しい特徴の1つである。 ソフトウェアは、一般的にはワープロソフトなど特定の作業や業務を目的としたアプリケーションソフトウェア（応用ソフトウェア、アプリ）と、ハードウェアの管理や基本的な処理をアプリケーションソフトウェアやユーザーに提供するオペレーティングシステム (OS) などのシステムソフトウェアに分類される。 階層に基づく分類では、ソフトウェアは機能を提供する相手の階層によって分類される。提供相手はエンドユーザー（人間）からアプリケーションソフトウェアまで様々である。 コンピュータのハードウェアを管理・制御するなど、コンピュータの稼動自体に必要となるソフトウェアである。 典型的なシステムソフトウェアとして、オペレーティングシステム (OS) があり、様々なソフトウェア処理のプロセスに対し、CPUやメモリの割り当てを管理したり、記憶装置にデータファイルを正しく読み書きできるようにするなど、さまざまな処理を行っている。キーボードやマウスなどの入力機器からの信号を、後述のアプリケーションソフトウェアに通知したり、アプリケーションソフトウェアの要求に応じて、画面への図形や文字の表示を行うのも、オペレーティングシステムの機能である。 パーソナルコンピュータをはじめとする、家庭用のコンピュータ機器では、これらのソフトウェアは購入時にコンピュータ本体に同梱あるいはプリインストールされていることが多い。 そのほか、オペレーティングシステムでは提供されない機能のうち、さまざまなアプリケーションソフトウェアで利用される一般性のある機能を提供するものを、ミドルウェアという。 アプリケーションソフトウェアは、利用者の目的に応じた機能を提供するソフトウェアである。 一般事務で利用されるワープロや表計算ソフトウェアを初め、娯楽を目的としたゲームソフトや、工場の作業を自動化するファクトリーオートメーション、事務手続きや経営を管理するためのビジネスソフトウェア、ブラウザ、教育や医療などあらゆる目的に応じてソフトウェアが開発されている。ソフトウェアの開発自体に使われるプログラミングツールもある。 これらのアプリケーションソフトウェアは、既製品をパッケージソフトウェアなどのかたちで購入するほか、利用者自身が、目的を果たすソフトウェアを開発する場合もある。 大規模なものでは銀行の預貯金口座を管理する勘定系システムやJRの「みどりの窓口」で使われるマルスなどのオンラインシステムを始め、販売や営業、生産などの各種業務管理システムなどの個別開発のソフト群（各企業内でのコンピュータシステム（情報システム）の一部を形成する）から、小は表計算ソフトのテンプレート、ワープロソフトのマクロ、科学技術シミュレーション、グラフィックスやアニメーションのためのスクリプトなどが含まれる。電子メールフィルタなども一種のユーザー作成ソフトウェアである。ユーザーは自身の作成したこれらのソフトウェアの重要性に気づいていないことが多い。ユーザー作成ソフトウェアが購入されたアプリケーションソフトウェアとうまく統合されていると、多くのユーザーはその区別ができない。 ハードウェアに基づく分類ではソフトウェアが機能するハードウェアによって分類される。ハードウェアには特定機能のみを提供する組み込みシステムから汎用計算をサポートするパーソナルコンピュータまで様々である。 特定の機能を実現するために家電製品や機械等に組み込まれるコンピュータシステムのこと。 ソフトウェアは、明らかにコンピュータとわかるもの以外に、様々な機器に搭載されて稼働している。 近年では、家庭用機器の高機能化に伴い、携帯電話やゲーム機をはじめ、多くの電化製品や自動車などの機能を実現するために必要不可欠なものとなっている。 LSIなどを例にとると、LSIの物理的な回路そのものはハードウェアであり、その回路によって表現される処理手順はソフトウェアと考えられる。 一般的なソフトウェアは、補助記憶装置の中に機械語として記録されている。なお機械語は中央処理装置（CPU）の製品種別ごとに異なっている。ソフトウェアの利用時には補助記憶装置の内容が主記憶装置に読み込まれた後、中央処理装置において、データの移動、計算、制御フローなどの処理が実行される。これにより機械語は、コンピュータの状態を次々と変化させる。従ってソフトウェアは、ハードウェアの状態を変化させる命令列と考えられる。 記憶装置に異なる命令群を読み込んで計算を制御する概念は階差機関の一部としてチャールズ・バベッジが考案した。これら、ほとんどの近代ソフトウェアの基礎となる理論はアラン・チューリングの1935年の論文 Computable numbers with an application to the Entscheidungsproblem で初めて提唱された。 ソフトウェアの表現である機械語は、中央処理装置への命令となる2進数の値から構成されている。機械語の種類には、記憶装置間でのデータの移動や、条件による処理の分岐命令、演算などがある。これらを組み合わせて、1つずつ順に演算が実行される逐次処理や、条件つきで実行される処理、繰り返し実行されるループ処理などが実現される。一連の命令列をひとまとめにしたものをサブルーチンと呼び、他のサブルーチンを「呼び出す」命令もある。 例えば、メニューから 「コピー」 というエントリを選択したとき、ソフトウェアがどのように機能するか考えてみよう。この場合、条件付き命令列が実行され、メモリ上の「文書」領域にあるデータからテキストが、一般に「クリップボード」と呼ばれる中間的記憶領域にコピーされる。別のメニューエントリである 「貼り付け」 が選ばれると、ソフトウェアはクリップボードから特定の領域にテキストをコピーする命令列を実行する。 中央処理装置が複数あるシステムでは、命令列は複数同時並行的に実行できる（マルチプロセッシング）。 ソフトウェアの品質としては、利用者や開発者の立場から、様々な尺度が考えられる。 ソフトウェアは法律上、知的財産として扱われ、著作権法や特許法によって保護される。 一般的には著作者がそのソフトウェアの利用範囲を明確にした利用許諾契約書を用意しており、ソフトウェアの利用者はこれに合意しなければ利用できない。この契約事項または合意事項を、ソフトウェアライセンスという。著作権者が利用許諾契約書を用意していない場合は著作権法の範囲での利用が可能である。 また、コンピュータを利用する発明について特許権が認められる場合がある。 その他、日本の使用者からみると、会計処理上（税法上）は、無形固定資産として扱われる。減価償却期間は5年間での定額償却である。 「医薬品、医療機器等の品質、有効性及び安全性の確保等に関する法律（略称:医薬品医療機器等法、薬機法、旧称：薬事法）」により、疾病診断用プログラム、疾病治療用プログラム、疾病予防用プログラム、および、それらを記録した記録媒体についても、副作用又は機能の障害が生じた場合において、人の生命及び健康に影響を与えるおそれがある場合には、医療機器として制限を受ける。これは、医療機器のIT化に伴って、医療的な効果を謳うソフトウェア単体についても他の医療機器と同様の規制が必要になったためである（医薬品医療機器等法第23条の2関係、医薬品医療機器等法第39条関係）。 ソフトウェア開発を主な事業としている企業であっても、製品をパッケージ等の形でユーザーにライセンス販売しているのは一部である。 ライセンス販売以外のソフトウェアビジネスとして、以下のような形態がある。 技術・役務の提供 ITコンサルティングや技術者派遣など、顧客が主体となっているソフトウェア開発に参加して、ソフトウェア開発技術や労働力を販売するビジネス。 ソフトウェアサービスの提供 ソフトウェアや情報システム等を自社で稼働させ、顧客がシステムを利用することによって、売上を上げるビジネス。SaaSやクラウドコンピューティングのようにシステム利用者が直接使用料を支払う形式のほか、ネットショッピング等のシステムを、出品者に利用させて手数料を課金する方式や、ソーシャル・ネットワーキング・サービスやウェブサイト検索エンジンを無償で提供し、システムの一部分に表示させる広告を販売するなどの方法で収益を上げる形式もある。 ソフトウェアを組み込んだ機器や製品の販売 スマートフォンやネットワーク機器など、高度なソフトウェアを搭載した機器や製品を販売するビジネス。 また、インターネット上で無償で公開されているオープンソースソフトウェアの開発に協力し、成果を自社のサービスなどに組み込むことが広く行われている。 2011年における企業別のソフトウェア売上高は以下の通りである。