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