ソフトウェア開発とは?ソフトウェアの種類や開発の流れを解説
COLUMN
最終更新日:2023年06月05日 / 投稿日:2022年12月13日
ソフトウェア開発は、プログラマーやシステムエンジニアの代表的な仕事です。しかし、ITやプログラミングについて十分なスキルを有している方を除き、「ソフトウェア開発とはどういうことなのか」「難しそう」と考える方は多いのではないでしょうか。
そこで今回は、ソフトウェア開発の概要やハードウェアとの違いから、ソフトウェア開発の種類、必要な人員、流れまでを詳しく紹介します。今回の内容を参考に、ぜひソフトウェア開発に関する基本知識を身につけてください。
1. ソフトウェア開発とは?
ソフトウェア開発とは、顧客やユーザーのニーズを踏まえ、ソフトウェア製品の作成・展開・リリース・サポートをする一連のプロセスのことです。
そもそも「ソフトウェア(Software)」とは、コンピューターを動作させるための命令を出すプログラムを指します。例えば、人々が普段から使用する下記のものは、すべてソフトウェアの1つです。
- 表計算ソフトの「Excel」
- 文章作成ソフトの「Word」
- Webブラウザの「Google Chrome」
- コミュニケーションアプリの「LINE」
一般的に、これらのソフトウェアを製品として提供するまでのプロセス・活動をソフトウェア開発といいます。ソフトウェア開発は、主にプログラマーやシステムエンジニアによって行われます。
1-1. ソフトウェアとハードウェアの違い
ソフトウェアと似た名称であり、IT関連の知識がない方からよく混同されやすいものが「ハードウェア(Hardware)」です。ハードウェアとは、ソフトウェアとは違って目に見える機器・デバイスを指します。例えば、下記のようなものがハードウェアにあたります。
- PC本体
- スマートフォン
- マウス
- キーボード
- ゲーム機器
- プリンター など
ハードウェアは、人間の体に例えるならいわゆる腕や足といったパーツとなります。人間の腕や足は、神経を伝って脳からの指示を受けなければ動かすことができません。したがって、これらのハードウェアもハードウェア単体では動かず、ソフトウェアと組み合わせて初めて動くようになります。
1-2. ソフトウェアの種類
ソフトウェアには、大きく分けて4つの種類があります。それぞれの種類と概要は、下記の通りです。
● アプリケーションソフトウェア
アプリケーションソフトウェアとは、パソコン・スマートフォンのオペレーティングシステム上で動作するソフトウェアのことです。表計算ソフトやメールアプリなど、「ソフト」や「アプリ」と呼ばれているものの多くはこのアプリケーションソフトウェアとなっています。
● オペレーティングシステム
オペレーティングシステムとは、コンピューター上のオペレーション(運転・操作・運用)を司るソフトウェアのことです。ハードウェアとアプリケーションソフトウェアが動作するための環境を構築・管理するソフトウェアであり、「OS」と略されています。
● ミドルウェア
ミドルウェアとは、アプリケーションソフトウェアとオペレーティングシステムを繋げ、かつ特定の機能に特化して両者を補助するという役割をもったソフトウェアのことです。一般的に、専門性の高い機能が1つの機能管理パッケージとしてまとめられており、ソフトウェア開発・システム開発の手間の軽減にも役立ちます。
● ファームウェア
ファームウェアとは、ハードウェアのあらゆるシステム・機能を制御することを目的に、機器やデバイスに内蔵されているソフトウェアのことです。ROMやフラッシュメモリーといった記憶装置にあらかじめ書き込まれた状態で出荷されます。
2. ソフトウェア開発に必要な人員は?
ソフトウェア開発にメインで携わる職種は、エンジニア・プログラマー・営業が挙げられます。それぞれの職種がどのように活躍するかを、以下に詳しく紹介します。
営業 |
---|
ソフトウェア開発と聞くと、エンジニアやプログラマーといった職業を真っ先に思い浮かべるという方も多くいます。しかし、営業職がクライアントからの案件を受注しなければ、ソフトウェア開発は始まりません。したがって、営業職はソフトウェア開発に欠かせない職種といえます。 ソフトウェア開発において、営業職には主に「パッケージ営業」「受託開発営業」の2つのタイプがあるのが特徴です。パッケージ営業は自社が販売するソフトウェアの営業・販売を、そして受託開発営業は顧客のニーズや要望を取り入れた独自ソフトウェアの営業・販売を行います。 |
エンジニア |
---|
ソフトウェア開発において、エンジニアは主に顧客からのヒアリングやシステムの要件定義から設計までを行います。場合によっては、システム設計までではなく開発テスト・リリースまでを担当するケースもあります。 エンジニアは、顧客との打ち合わせを経てニーズを汲み取り、社内の人間との調整や企画提案を行いながら要望通りのプログラムを実現します。そのため、エンジニアには高いコミュニケーションスキル・プログラミングスキルが求められます。 |
プログラマー |
---|
ソフトウェア開発において、プログラマーは主にシステムエンジニアが作成した設計書にもとづいて、プログラミングを実施する役割を果たします。プログラムを作成した後は、設計書通りに動作するかのソフトウェアテストも実施することが基本です。 いわば、エンジニアがソフトウェア開発の「設計担当」で、プログラマーは「開発担当」といえるでしょう。エンジニアよりもさらに高度なプログラミングスキルが求められます。 |
3. ソフトウェア開発の流れ
ソフトウェアの主な開発プロセスは、「要件定義→設計→プログラミング→テスト→リリース→保守」となります。ここでは、ソフトウェア開発の流れと方法・ポイントをステップごとに解説します。
STEP1:要件定義 | ソフトウェア開発において、案件受注やヒアリング・提案が終わった後、最初に行う重要な開発工程が要件定義です。 要件定義は、システム化する業務や必要となる機能・性能を明確にし、成果物として「要件定義書」に落とし込んでいきます。 要件定義書には、実現性や予算といった観点から解決策として盛り込まれなかった仕様についても記載することが基本です。 |
---|
STEP2:設計 | 要件定義が終わったら、次は設計の工程に入ります。 設計では、要件定義書にもとづいてソフトウェア開発の仕様や全体像を決定します。ユーザー視点で仕様を決める「外部設計(基本設計)」と、実装時に正常に動作するかを検討する「内部設計(詳細設計)」に分け、それぞれ具体的な項目を用いてシステムの構想を検討することが基本です。 |
---|
STEP3:プログラミング | ソフトウェア開発の全体像が決定できたら、要件定義書や仕様書にもとづいて実際にプログラマーがプログラムの記述を行います。 プログラミングで使用する言語は、デバイスや製品の特徴によって異なります。 |
---|
STEP4:テスト | プログラミングが完了し、システムがある程度完成できたら、次にテストを行います。 テストは、主に問題なく動作するか・顧客の要望通りとなっているかといった部分を確認します。まずはモジュールごとの「単体テスト」を実施し、問題なければシステム全体の動作を確認するため「結合テスト」を行うことが基本です。 また、要望通りの仕様を満たすかどうかを確認する「システムテスト」や、実際の使用環境における動作を確認する「運用テスト」も行い、不備がないかを徹底的にチェックします。 |
---|
STEP5:リリース | 各種テストを行った後は、ソフトウェアをリリースし、顧客に納品します。 リリースしたソフトウェアを顧客に納品する際は、開発段階で作成した運用マニュアルやシステムの設計書なども一緒に渡すことが基本です。 場合によっては、顧客がスムーズに製品を使いこなせるようにするためにも、オペレーションや操作説明などのサポートを行うケースもあります。 |
---|
STEP6:保守 | 製品をリリース・納品した後は、システム障害発生時のサポートやメンテナンス対応を行います。特に、安定稼働するまでの一定期間は不具合への積極的な対応を心がけなければなりません。 また、製品を納品した後も、顧客から要望があった場合は製品の機能追加開発に対応する場合もあることを覚えておきましょう。 |
---|
まとめ
ソフトウェア開発とは、顧客やユーザーのニーズを踏まえ、ソフトウェア製品の作成・展開・リリース・サポートをする一連のプロセスを指します。そもそもソフトウェアとは、コンピューターを動作させるための命令を出すプログラムのことです。一般的にソフトウェア開発会社では主にプログラマーやエンジニアが「アプリケーションソフトウェア」の開発を行います。
ソフトウェア開発の主な流れは、「要件定義→設計→プログラミング→テスト→リリース→保守」となります。ソフトウェア製品をリリース・納品して終わりではなく、その後の保守・点検や機能追加開発が必要となることも覚えておきましょう。