ソフトウェア
【英】software
ソフトウェアとは、情報システムを構成する要素で、プログラムのこと、あるいは、物理的な要素であるハードウェアを除いた無形の要素すべての総称である。
ソフトウェアは、多くの場合、コンピュータプログラムと同じ意味で用いられる。ハードウェアと対比する目的でソフトウェアの語が用いられ、プログラムに類する対象を広く含む。おおむね、ハードウェア装置との仲介を受け持つデバイスドライバ、アプリケーション用のAPIを通じてシステムの利用環境を提供するオペレーティングシステム(OS)、エンドユーザーが直接利用するアプリケーションソフトウェア、OSとアプリケーションソフトウェアの中間層で各種のユーティリティ的な機能を提供するミドルウェア、開発者が利用するユーティリティやツール類、などに分類することができる。
また、より広い意味で、ハードウェア以外の、情報システムを動かすために利用されるあらゆる無形の要素を指してソフトウェアと呼ぶ場合もある。この場合は特にソフトウェアのために用意された文書も含むことが多い。例としては、開発時に用いられる要求定義書、外部設計書、内部設計書、試験仕様書、試験結果報告書などから、利用時に用いられる操作マニュアルあるいはユーザーマニュアル、各種の設定説明書などがある。これらの文書は、プログラムの運用場面で実際に使っていく上で不可欠なものであり、また、プログラムのライフサイクルを見据えた時に、開発時の文書もまた必要であることから、ソフトウェア全体を構成する要素として認められるようになってきたものである。
プログラムとしてのソフトウェアは、規模の増大とともに、それをどのように構成・構築していくかということが重要な問題となってきている。プログラム言語のパラダイム論として、Smalltalkなどのオブジェクト指向、Prologなどの論理プログラミング、Haskelなどの関数型プログラミングなどの比較研究がある。アプリケーションのレベルで、ソフトウェアのパターンを論じる「デザインパターン」は、建築の分野にヒントを得て一定の地位を築いている。また、システム構築の確実性を確保する「形式手法」なども注目されている。大規模な業務システム分野では疎結合のコンポーネントを用いてモジュラーな開発を実現するSOA(サービス指向アーキテクチャ)が登場している。また、より設計レベルに重点を置き、実装工程をできるだけ自動化するモデルドリブンな開発手法も重要性を増している。
ソフトウェアに関する学問として、ソフトウェアサイエンスとソフトウェア工学を挙げることができる。ソフトウェアサイエンスは、プログラムの基礎を論ずるもので、数学基礎論や、コンパイラ理論、アルゴリズム論などの研究が行われている。ソフトウェア工学は、ソフトウェアの実用的な構築のためのノウハウを研究するもので、実用的なシステムの構築方法、各種の開発手法、生産性の研究、規模や工数の推定などが行われている。
プログラムの元となるテキストはソースコードと呼ばれる。GNUプロジェクトによって推進されている、ソースコードを全てオープンにし、全ての人がアクセスできることを保証しようという運動は、コンピュータ業界とプログラマに大きな影響を与えている。全てオープンとなっているソフトウェアはオープンソースソフトウェア(OSS)と呼ばれる。現在では、多くのOSSのプロジェクトが展開している。
ソフトウェア
ソフトウェア

ソフトウェア(英: 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条関係)。
脚注
出典
- ^ - ソフトウェア(大辞林、ブリタニカ国際大百科事典)
- ^ “ソフトウエア・通信業界とは - 就活準備 - マイナビ2025”. job.mynavi.jp. 2024年2月9日閲覧。
- ^ software..(n.d.). Dictionary.com Unabridged (v 1.1). 2007年4月13日閲覧, from Dictionary.com website: http://dictionary.reference.com/browse/software
- ^ Hally, Mike (2005:79). Electronic brains/Stories from the dawn of the computer age. British Broadcasting Corporation and Granta Books, London. ISBN 1-86207-663-4.
- ^ "デジタルデータでは、ほぼ完全な複製を、追加的費用すなわち限界費用がほぼゼロで行うことが可能である。" (2)2つ目のキーワード:限界費用 of 総務省. (2019). 情報通信白書 令和元年版.
- ^ 「メディアリテラシ」(Computer Science Library 15)p36 植田祐子・増永良文著 サイエンス社 2013年8月10日初版発行
- ^ 2003年の「基本情報技術者テキスト No.1 コンピュータシステム」の139、140ページにおいては、これを「言語プロセッサ」としてOSの構成要素に含めていた。
- ^ 地理 統計要覧 2014年版 ISBN 978-4-8176-0382-1 P,104
関連項目
- コンピューティング
- Software as a Service
- プログラミング言語
- ソフトウェア開発工程
- ソフトウェア工学
- クローズドソース
- 運用制約
- コンピュータシステム
- ソフトウェアのリグレッション
- ゲームソフト
- 製造物責任法
外部リンク
「Software」に関係したコラム
-
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)でティックを表示する方法を紹介します。▼MT4のティック機能を使う方法MT4のメニューから「表示」、「気配値表示」を選...
FXのチャート分析ソフトMT4でケルトナーチャネルズを使うには
ケルトナーチャネルズ(Keltner channels)とは、為替レートの過熱度を表すボラティリティを元に考案されたテクニカル指標です。ケルトナーチャネルズでは、3本のラインによって構成されていて、上...
FXのチャート分析ソフトMT4のインディケーターで矢印を表示するには
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)にはさまざまなインディケーターが用意されています。インディケーターは、売買のエントリーポイントを見つける手段の1つとし...
-
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)のマルチタイムフレーム(Multi time frame、MTF)とは、1つのチャート画面に他の時間足のチャートを表示...
-
FX(外国為替証拠金取引)のティックをエクセルで表示する方法を紹介します。必要なソフトウェアは、Microsoft Excel(エクセル)とMT4(Meta Trader 4)です。Microsoft...
FXのチャート分析ソフトMT4で10分足や2時間足などを表示するには
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)では、次の時間足の表示ができます。ティック1分足5分足15分足30分足1時間足4時間足日足週足MT4では、10分足や1...
- Softwareのページへのリンク