ソフトウェア(英: Software)とは、コンピュータシステム上で何らかの作業を行うプログラム群、プロシージャ群、それらに関する文書を指す用語である[1]。物理的装置であるハードウェアと対比させて言うときに使う。プログラムとほぼ同義だが範囲は更に広い。ソフトとも呼ばれる。
携帯アフィリエイト、モバイルアフィリエイト
ソフトウェアには、ワープロソフトのように生産的な仕事を行うためのアプリケーションソフトウェア、アプリケーションソフトウェアに必要なサービスを提供するハードウェアとのインタフェースとなるオペレーティングシステムのようなシステムソフトウェア、分散システムを制御・管理するミドルウェアなどがある。
大森マンション、大田区マンション
目次 [非表示]
1 語用論
セミナー
2 コンピュータハードウェアとの関係
3 分類
4 プログラムとライブラリ
5 階層
6 ソフトウェア作成
リフォームマンション
7 操作(演算)
8 品質と信頼性
9 ライセンス
高速バス
10 特許
11 ユーザーの倫理と権利
12 関連項目
13 脚注
データ復旧
14 外部リンク
[編集] 語用論
日本では、ハードウェアと対比する用法が転じ、映像や音楽等のコンテンツ(映画、ドラマなどの作品をビデオテープやDVDなどの記録メディアに収録したもの)もソフトウェアと呼ぶ。類似の用法は欧米にもある[2]。
渋谷 賃貸
ある機能をもつソフトウェアに対して、「ソフトウェア」という言葉が接頭辞・形容詞的に用いられることがある。エンコードをするソフトウェアを「ソフトウェアエンコーダ」、DVDを再生するソフトウェアを「ソフトウェアDVDプレーヤー」と呼ぶことがある。情報を処理する際に、当該情報専門の単体のハードウェアで処理されるか、汎用コンピュータ(PC等)用のソフトウェアで処理されるかを区別するためである。
クレジットカード 現金化、ショッピング枠現金化
[編集] コンピュータハードウェアとの関係
詳細はハードウェアを参照
ソフトウェアは、物理的なハードウェアと対比した言葉であり、LSIなどの電子回路そのものは、コンピュータに処理をさせる手順を記述していても、物理的な物であるのでソフトウェアとは呼ばない。ハードウェアでありソフトウェアでもある中間的な存在として、ファームウェアがある。コンピュータにおいて、ソフトウェアはRAMにロードされ、CPUで実行される。最も低いレベルでは、ソフトウェアは特定のプロセッサに固有の機械語で構成されている。機械語はプロセッサへの命令となる2進数の値から構成されていて、それによってコンピュータの状態を次々と変化させる。従ってソフトウェアは、コンピュータハードウェアの状態を変化させる命令列である。通常、機械語よりも人間が使いやすい高級言語で書かれる。高級言語はコンパイラかインタプリタによって機械語のコードに変換される。他にも機械語とほぼ一対一に対応したアセンブリ言語があり、アセンブリ言語で書かれたソフトウェアはアセンブラによって機械語に変換される。
SSL
ほとんどのコンピュータはオペレーティングシステムと呼ばれる特別なソフトウェアプログラムでリアルタイムに機械が制御される。ソフトウェアの他の形態にはプログラム言語のアセンブラおよびコンパイラ、企業および家庭向けアプリケーションソフトウェア(分類を参照)がある。
1957年にJohn W. Tukeyがこの意味で「ソフトウェア」という用語を最初に使用した[3]。情報工学およびソフトウェア工学では、ソフトウェアはコンピュータシステム、プログラム、データにより処理される情報全般やあらゆる「機械装置以外のもの」を示す。記憶装置に異なる命令群を読み込んで計算を制御する概念は階差機関の一部としてチャールズ・バベッジが考案した。これがほとんどの近代ソフトウェアの基礎となる理論はアラン・チューリングの1935年の論文 Computable numbers with an application to the Entscheidungsproblem で初めて提唱された[4]。
[編集] 分類
一般のコンピュータシステムでは、ソフトウェアを3つの階層、システムソフトウェア、プログラミングツール、アプリケーションソフトウェアに分けるが、その境界はあいまいである。
システムソフトウェア
ハードウェアやシステムが動作するのを助ける。システムソフトウェアは、システムに使われているハードウェアの詳細(メモリ、通信、プリンタ、リーダー、ディスプレイ、キーボードなど)を抽象化し、アプリケーションが詳細に煩わされないようにすることを目的としている。具体的には以下のようなものがある。
ファームウェア - Basic Input/Output System (BIOS) など。
基本ソフトウェア - オペレーティングシステム、デバイスドライバ、ウィンドウシステム、ユーティリティソフトウェア、各種サーバ
ミドルウェア
プログラミングツール
プログラマがプログラムを書くのを補助するツール群。統合開発環境 (IDE) はそのようなツールを統合したソフトウェアである。
テキストエディタ
コンパイラ、インタプリタ、リンケージエディタ、デバッガ
アプリケーションソフトウェア
特定のタスク(群)を実施するためのソフトウェア。企業活動での利用が大きな部分を占めるが、およそ人間のあらゆる活動には、それに対応したアプリケーションソフトウェアが存在する。
ファクトリーオートメーション
ビジネスソフトウェア
教育ソフトウェア
医療ソフトウェア
データベース
パソコンゲーム
ブログパーツ
[編集] プログラムとライブラリ
プログラムは単体ではタスクを完遂できないこともある。特にソフトウェアライブラリが必要な場合が多い。ライブラリは単独では機能せず、スタンドアローンのプログラムから使われるソフトウェアコンポーネントを集めたものである。従って、プログラムに他の多くのプログラムでも共通に使える標準的ルーチンがあれば、それらをライブラリとして抽出できる。ライブラリには、何らかのイベントによって起動されるスタンドアローン型プログラムが含まれていることもあるし、何らかの機能(コンピュータ内の様々な雑事)を実行して呼び出し元にはデータを返さないものもある。
[編集] 階層
1980年代以降、アプリケーションソフトウェアは大量生産されたパッケージ品として小売店で販売されるようになった。ソフトウェアアーキテクチャも参照
ユーザーの見方はプログラマとは異なる。(組み込みシステム、アナログコンピュータ、スーパーコンピュータなどとは対照的な)一般のコンピュータのユーザーは、ソフトウェアを3つの階層(プラットフォームソフトウェア、アプリケーションソフトウェア、ユーザー作成ソフトウェア)として見ている。
プラットフォームソフトウェア
プラットフォームには、ファームウェア、デバイスドライバ、オペレーティングシステム、GUIなどが含まれ、ユーザーがコンピュータや周辺機器とやり取りすることを可能にする。コンピュータ本体に同梱あるいはプリインストールされていることが多い。パーソナルコンピュータの場合、プラットフォームソフトウェアをユーザーが置換することも可能である。
アプリケーションソフトウェア
エンドユーザーがソフトウェアと言ったときに想定しているのがアプリケーションソフトウェアである。典型例としてはオフィススイートやパソコンゲームがある。一般にハードウェアとは別に購入される。コンピュータ本体に同梱されることもあるが、独立したアプリケーションとして機能するという事実に変わりはない。アプリケーションは一般にオペレーティングシステムとは独立したソフトウェアであるが、特定プラットフォーム向けに作られることも多い。データベースもコンパイラもその他の「システムソフトウェア」も、エンドユーザーの観点ではアプリケーションと見なされることが多い。
ユーザー作成ソフトウェア
ユーザーが特定のニーズに合うように作成するソフトウェア。表計算ソフトのテンプレート、ワープロソフトのマクロ、科学技術シミュレーション、グラフィックスやアニメーションのためのスクリプトなどが含まれる。電子メールフィルタなども一種のユーザー作成ソフトウェアである。ユーザーは自身の作成したこれらのソフトウェアの重要性に気づいていないことが多い。ユーザー作成ソフトウェアが購入されたアプリケーションソフトウェアとうまく統合されていると、多くのユーザーはその区別ができない。