ソフトウェアとは?
IT用語は意味を正しく理解することが大切です。まずはソフトウェアとは何かについて解説します。ソフトウェアの定義やハードウェア、アプリケーションとの違いについて説明します。
ソフトウェアの定義
ソフトウェアとは、コンピュータに搭載されるプログラムのことを指します。パソコンをはじめスマホや家電製品、カーナビなどには多くのプログラムが組み込まれています。ソフトウェアがないとパソコンは何もできず、電源もつけられない状態です。
ソフトウェアはハードウェアに対する人間の動作を読み取り、所定の動作を行っています。
ハードウェアとの違い
ハードウェアはコンピュータの構成する物理的な部品のことを指します。具体的には、キーボード・マウス・パソコン本体などが該当します。また、パソコン内部のCPUやメモリ、ドライブなどもハードウェアに該当するでしょう。つまり、ハードウェアとはコンピュータの実際に触れる部分を指します。
ソフトウェアは大きく4種類に分けられる
ソフトウェアは大きく分けて、OS・アプリケーションソフトウェア・ミドルウェア・ファームウェアの4種類があります。それぞれの種類の意味や用途について解説します。
OS
OSはOperating Systemの略であり、コンピュータのオペレーションを担当するソフトウェアのことです。OSの役割の例としては、ハードウェアとソフトウェアの仲介を行う、が挙げられます。たとえば、キーボードによって打った文字はOSによってソフトウェアに繋がり、エディタなどの画面に表示されます。
OSがないと、基本的にコンピュータは何もすることができないため、パソコンを購入する場合は通常OSがあらかじめインストールされています。パソコンのOSの種類としてはWindows・Mac・Linuxなどが挙げられ、それぞれ性能が異なります。
また、パソコンだけでなく、スマホにもOSは搭載されており、AndroidやiOSなどが代表例として挙げられます。
アプリケーションソフトウェア
アプリケーションソフトウェアとはユーザに対して機能を提供するソフトウェアのことです。Word・Excel・Webブラウザ・メールソフトなどは、すべてアプリケーションに該当します。アプリケーションケーションはOSという土台の上で動作しており、OSがインストールされていないと使うことはできません。
アプリケーションにはWebアプリ・スマホアプリ・デスクトップアプリなどさまざまな種類があり、それぞれ使い方が異なります。たとえば、Webアプリはパソコンをインターネットに接続することで利用が可能になり、デスクトップアプリはパソコンにアプリをインターネットすることで利用できます。
ミドルウェア
ミドルウェアとは、OSやアプリケーションソフト同士をつなげるためのソフトウェアです。アプリケーションが正常に動作するように補助を行います。ミドルウェアがないと、ミドルウェアが提供していた機能をソフトウェアを開発する度に一緒に作成しないといけなくなり手間がかかってしまいます。
たとえば、Webサーバもミドルウェアの1種と言えます。WebサーバーはユーザがWebアプリを利用する際に、ブラウザとWebアプリの間で仲介役を担い、ユーザが指定するWebサイトを表示できるようにしています。
ファームウェア
ファームウェアとは、パソコンやスマホ、ゲーム機など電子機器全般に組み込まれたハードウェアを制御するためのソフトウェアです。たとえば、パソコンを起動する際にもファームウェアがハードウェアの制御を行い、電源が正常に付くようにしています。
ソフトウェアの利用形態
ソフトウェアは中には外部に無料で公開されており、一般の方でも自由にダウンロードして使えるものもあります。しかし無料であっても利用に制限がある場合もあり、利用する際には注意が必要です。ソフトウェアの利用形態は大きく次の4種類に分けられます。
オープンソース
オープンソースとは誰でも無料で利用でき、かつ機能を勝手に変更したり再配布したり自由に行えるソフトウェアのことです。文字通りソースコードが外部にオープンになっており、誰でも自由に見ることができます。
オープンソースの場合誰でも自由に改良できるため、コミュニティ内でどんどん機能を進化させていくソフトウェアも多くあります。たとえば代表的なOSのLinuxもオープンソースであり、多くの人がLinuxディストリビューションを開発しています。
フリーウェア
フリーウェアは誰でも無料で利用できるソフトウェアのことです。ただしオープンソースとは異なり、改良や再配布などは認められていない場合もあります。また、ソースコードが公開されているとは限らないため、脆弱性がないかの確認などは行えない可能性もあります。
フリーウェアの例としては、企業が自社製品の宣言用とした無料の簡易ソフトや、個人が趣味で開発したソフトなどが挙げられます。
シェアウェア
シェアウェアとは、あらかじめ決められた期間のみ無料で利用できるソフトウェアを指します。一定期間は無料で利用できるものの、それ以上使う場合は月額利用料などが発生します。
企業側がシェアウェアを提供する理由としては、無料でも使えるようにすることでユーザの購入ハードルを下げる、などが挙げられるでしょう。
私有ソフトウェア
私有ソフトウェアとはメーカー企業が有料で販売しているソフトウェアのことです。私有ソフトウェアを利用するには、購入時にライセンス料を支払ったり月額料金を支払ったりする必要があるため、有料な分フリーウェアよりも機能性が優れていることが多いです。
また、メーカーのサポート対象となっており、保守対応などを請け負っている場合も多くあります。
ソフトウェアを開発する流れ
最後に、ソフトウェアを開発する流れについてまとめました。プログラマーやシステムエンジニアといったIT関係の仕事を目指す方なら、開発の流れについて知っておきましょう。
また、ソフトウェア開発を開発企業に依頼したい方も、開発の流れをあらかじめ知っておくことで打ち合わせがスムーズに進むメリットがあります。
要件定義
ソフトウェアを開発する場合、まずは開発を依頼したユーザからどのようなソフトウェアが欲しいのかヒアリングを行います。ソフトウェアに必要な機能をまとめていき、ソフトウェアの全体像のイメージをユーザと開発企業とで共有するのが要件定義の目的です。
要件定義をしっかり行うことで、ソフトウェアの質を高めることが可能です。逆に、要件定義が曖昧だと顧客が求めていないソフトウェアを開発してしまう場合があり、顧客からの信頼の低下や開発工数の追加などにつながる恐れがあります。
設計
続いて、要件定義を元にソフトウェアの設計を行います。家を建てる際は必ず建築士が家の設計書を作成しますが、同じようにソフトウェア開発でもシステムエンジニアが設計書を作成します。
まず、ソフトウェアの各画面にどのような機能を追加するか、外部設計を行います。次に、各画面の機能を実現するために必要な、データ生成や更新処理などの内部機能の設計を行います。
ソフトウェアの設計を設計書にまとめたら、ユーザに1度確認を取ることが多く、ユーザの許可が降りれば開発作業へと進んでいきます。
開発
続いて、実際にソフトウェアの開発を行うフェーズに入ります。プログラミング言語を使って、設計書通りにソースコードを記述していきます。単に設計書通りに組み立てるだけでなく、ソースコードの可読性や処理効率の良さなども重視して開発を進めます。
開発に使うプログラミング言語はソフトウェアの種類によって異なります、WebアプリはPHPやPythonなどが使われ、スマホアプリならJavaやKotlinなどの言語が使われます。要件定義および設計ではシステムエンジニアが中心に作業を行いますが、開発作業は主にプログラマーが担当します。
テスト
ソフトウェアの開発が完了したら、設計書通りに問題なく動作するかテストを行います。プログラムのソースコードは1文字でも間違えると正しく動作することができないため、テスト作業は時間をかけて行われます。
特に、家電製品に組み込まれるソフトウェアなどは、バグなどがあると製品を回収しなくてはいけない場合もあるため、特に入念に行われることが多いです。
ソフトウェアのテストを行う場合、まずは小さい単位でチェックを行い、徐々に大きい単位でチェックを行う場合が多いです。たとえば最初は1つのプログラムごとにテストを行い、最終的にはすべてのプログラムを統合し、実際にユーザ目線に立って正常に動くか確認を行います。
リリース
テストを繰り返し、問題なければリリースを行います。リリース方法はソフトウェアの種類によって異なります。WebアプリならWebサーバ上へのアップロードが必要ですし、デスクトップアプリならユーザの環境下でも正しく動作するか確認を行う必要があります。
リリース後、問題なくソフトウェアが使えることが確認できれば終了です。この後は、ソフトウェアが正常に稼働し続けられるように、定期メンテナンスやログの確認などを行います。
ソフトウェアに対する正しい理解を持とう
本記事ではソフトウェアとは何かについて解説しました。ソフトウェアの種類や利用形態、開発の流れなどがお分かりいただけたかと思います。IT用語は意味がややこしいものも多くありますので、しっかり定義を理解することが重要です。
本記事がソフトウェアについて知見を深めたい方にとって有意義なものとなれば幸いです。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから