ソフトウェア開発の工程|手法ごとにやるべきことを詳しく解説【2024年最新版】

ソフトウェア開発の工程|手法ごとにやるべきことを詳しく解説

本記事は、自社でソフトウェア開発を内製する方、システム開発会社に委託を検討している方に向けた内容です。

近年、IT化が進んでおり、企業内の業務を効率化するためのソフトウェア開発が増加しています。しかしソフトウェア開発を検討しているシステム担当者からは、以下のような悩みをよく聞きます。

  • ソフトウェア開発の工程を知りたい
  • ソフトウェア開発を外注したい
  • どれくらい工程を把握する必要があるか知りたい

結論から申し上げると、自社でソフトウェアを開発する際も、システム開発会社へ外注する場合も、ソフトウェア開発の工程の把握は欠かせません。共通認識を持ちながら開発工程を踏めるため、理想のソフトウェアを開発しやすくなります。

そこで本記事では、ソフトウェア開発工程を手法ごとに解説します。

※ソフトウェア開発の工程を理解したが、自社のみで進めるのが不安ならシステム幹事にご相談ください。予算や目的をヒアリングし、最適な会社を紹介します。相談料も紹介料も一切かかりません。

【無料】ソフトウェア開発について教えてもらう

ソフトウェア開発に役立つ記事もご覧ください ソフトウェア開発の基礎知識をおさらい!代表的な手法や費用相場まで解説

目次
  1. 1. ソフトウェア開発工程を把握しておくべき理由
    1. 1-1. 効率的に計画を立てられる
    2. 1-2. 作業の抜け漏れをなくせる
    3. 1-3. 円滑に開発を進められる
  2. 2. ソフトウェア開発のプロセスモデル
    1. 2-1. ウォーターフォール型
    2. 2-2. アジャイル型
    3. 2-3. プロトタイプ型
  3. 3. ソフトウェア開発の工程(ウォーターフォール型/アジャイル型)
    1. 3-1. ベンダー選定
    2. 3-2. 要件定義
    3. 3-3. 設計
    4. 3-4. プログラミング
    5. 3-5. テスト・リリース
    6. 3-6. 運用・保守
  4. 4. ソフトウェア開発の工程(プロトタイプ型)
    1. 4-1. 要件定義
    2. 4-2. 設計
    3. 4-3. プロトタイプ開発
    4. 4-4. 評価・修正
    5. 4-5. 本番開発・リリース
    6. 4-6. 運用・保守
  5. 5. ソフトウェア開発工程ごとの成果物
  6. 6. ソフトウェア開発の費用相場
  7. 7. ソフトウェア開発工程【まとめ】

ソフトウェア開発工程を把握しておくべき理由

ソフトウェア開発工程を把握しておくべき理由

はじめてのソフトウェアの開発時には、何から着手した方がいいか迷われる担当者は少なくないでしょう。

手法は多くありますが、まずは急に手を動かすのではなく、工程の全体感を把握することが重要です。それによって、以下のメリットを得ることができます。

効率的に計画を立てられる

ソフトウェア開発工程を把握する第一のメリットは、一から開発計画を立てる必要がなく、作業内容はもちろん、スケジュールや人員などの調整を効率的に行えることです。開発工程に必要とする作業を当てはめていけるためです。

作業の抜け漏れをなくせる

事前にやるべきことが明確になるため、作業の抜け漏れに早い段階で対応することもできます。開発中に足りない作業が発生すると、後戻りして対応しなければならずスケジュールが遅延することも起こり得ます。作業の抜け漏れをできるだけ事前に防げると、計画通りにソフトウェア開発を進めやすくなるでしょう。

円滑に開発を進められる

開発工程でやるべきことが定められていると、円滑に開発を進められます。メンバー間で共通の認識を持てるため、認識の違いをなくせるからです。開発メンバーが工程ごとの作業内容や進捗具合を把握しやすくなり、分担作業が行いやすくなります。

また、開発工程の把握は、自社だけでなく、外注する際にも活用可能です。システム開発会社と共通認識を持っていると、コミュニケーションが取りやすくなるため、発注者とシステム開発会社の双方が協力してソフトウェア開発を行えます。

【無料】ソフトウェア開発について相談する

ソフトウェア開発のプロセスモデル

ソフトウェア開発のプロセスモデル

ここからは実際に、ソフトウェア開発のプロセスモデルを解説します。ソフトウェア開発工程は、プロセスモデルごとに異なるので、それぞれの特徴を把握しましょう。

ウォーターフォール型

ウォーターフォールとは「滝、落水」を意味する単語です。ウォーターフォール型開発は、要件定義や設計などの工程を順番通りに進めるプロセスです。具体的には「要件定義→設計→プログラミング→テスト」といった流れで行います。

ウォーターフォール型の場合

ウォーターフォール型は、要件定義で開発プロジェクト全体のスケジュールや人員などの計画を立てます。1つの工程が完了しなければ、次のステップに進めないため作業分担や進捗管理がしやすく、品質を保ちやすくなっています

ただし、完了した工程への後戻りは想定していません。途中で仕様変更や修正などが発生すると、スケジュールや予算に影響が出る可能性があります。

関連記事ウォーターフォール開発とは?開発工程・メリット・向いているプロジェクトも解説!

アジャイル型

アジャイル型は、ソフトウェアを機能ごとに細分化し、優先順位が高い順に「企画」「設計」「実装」「テスト」を繰り返してリリースするプロセスです。

AI開発にはアジャイル型がフィットする

1つの機能を1〜4週間程度で区切り、部分的に完成させながらソフトウェアを開発していきます。各機能を並行して開発するため、ウォーターフォール型よりも納期の短縮が可能です。

また、ソフトウェアを部分的に開発するので、全体を完成させなくても、機能の動作を確認できます。ユーザーからの要件変更に対応しやすく、柔軟な開発を行えます。

関連記事アジャイル開発とは?メリット・デメリット、発注側の注意点を解説

プロトタイプ型

プロトタイプ型は、事前に試作品を開発し、ユーザーやクライアントの確認・評価を受けながら開発を進めるプロセスです。具体的には「試作品作成→テスト・評価→修正→本番開発→リリース」といった流れで進めます。

プロトタイプ型

プロトタイプ型は、開発の早い段階で試作品を作成し、レビューと修正を繰り返すことで関係者間の認識の違いを少なくできます。試作品の段階でメンバー間やシステム開発会社間の認識のズレをなくせると、本番開発で要件変更や機能追加などの手戻りの発生を削減可能です。

ただし、試作品といえども、開発には大きな手間がかかるため、コストが増加し開発期間が長くなる傾向にあります。

関連記事システム開発におけるプロトタイプとは?注目される理由・概要・メリットを解説!

【無料】ソフトウェア開発について相談する

ソフトウェア開発の工程(ウォーターフォール型/アジャイル型)

ソフトウェア開発の工程(ウォーターフォール型/アジャイル型)

ここからは、ウォーターフォール型とアジャイル型による代表的なソフトウェア開発工程をより細かく紹介します。

ベンダー選定

ソフトウェア開発をシステム開発会社に委託する場合、ベンダー選定が必要です。ベンダー選定をする際は、複数社から見積もりを取得し、料金や開発期間、サービス内容などを比較した上で決定しましょう。

要件定義

要件定義は、ソフトウェア開発で必要な機能や仕様、スケジュール、人員などを明確にする工程です。

▼項目例

  • 開発の目的
  • 必要な機能
  • 仕様
  • ターゲット
  • スケジュール
  • 人員
  • 開発方法

要件定義は、ソフトウェア開発の全体像やゴールをイメージしやすくするための重要な工程です。

全体の企画書のようなもので、プロジェクトの成功・失敗に影響するといっても過言ではないでしょう。

設計

設計は「基本設計」「詳細設計」の2種類に分けられます。

1.基本設計

基本設計は外部設計とも呼ばれており、ユーザーから見える部分の設計です。要件定義の後に行う工程であり、ソフトウェアに実装する機能を明確化・具体化する工程です。具体的には画面デザインや機能の洗い出しなど、仕様を大枠で策定していきます。

基本設計は、開発者以外が見てもわかるように作成する必要があります。開発を委託する場合、システム開発会社が作成してくれるので、的確なフィードバックを行う準備をしましょう。

2.詳細設計

基本設計は内部設計とも呼ばれており、プログラマー向けにシステム内部の設計図を作る工程です。機能の実装方法やエラー発生時の対応など、ユーザーからは見えにくい部分の設計となります。プログラマーが詳細設計書を見ただけで、ソフトウェアのプログラミングを行えるようにします。

システム開発会社に委託する場合は、発注者側に開示されることは多くないため、詳細の内容を理解しなくても問題はありません

プログラミング

設計が完了したら、エンジニアによるプログラミング(実装)を行います。あらかじめ明確にしたプログラミング言語でコーディングし、ソフトウェアを作り上げます。

システムの種類ごとの開発言語一覧は以下のとおりです。

システムの種類

使われる言語

基幹システム

Java、C++

Windows

C#

ゲーム

C#

ECサイト

ASP、HTML/CSS、JavaScript、PHP、Ruby

会計ソフト

ASP

SNS

HTML/CSS、JavaScript、PHP、Ruby

動画サイト

JavaScript

チャット

JavaScript

ブログ

HTML/CSS、PHP、Ruby

掲示板

PHP

大規模サイト

Java

システム開発会社に委託する場合、発注者側はプログラミングの詳しい知識は不要です。発注者側がプログラミングの知識があると、システム開発会社とのコミュニケーションが取りやすくなります。

テスト・リリース

テストは、バグや欠陥などがないか、ソフトウェアの動作を検証する工程です。ユーザーが実際に利用する前にエラーを可能な限りなくすことが大きな目的です。そのためテストは必ず複数人・複数環境で実施しましょう。

ソフトウェアの動作テストには、以下の種類があります。

テストの種類

概要

単体テスト

画面や機能ごとの動作検証

結合テスト

他の機能やシステムと連携させる動作検証

総合テスト

本運用を想定したシステム全体の動作検証

受け入れテスト

要求通りの機能・操作性になっているかの検証

テスト工程でバグや欠陥を発見した場合は、修正スケジュールを敷いた上で、開発メンバーにて修正・再テストを行います。問題が発見されなければ、実際にソフトウェアをリリースします。

運用・保守

ソフトウェアは開発して終わりではなく、安定稼動するように運用・保守を行う必要があります。

  • 運用:継続的に稼動するように管理・監視すること
  • 保守:ソフトウェア不具合発生時の復旧・修正すること

ソフトウェアの運用では、突然不具合が発生する可能性があります。運用・保守の体制を整えておくと、万が一エラーが発生しても素早い対応が可能です。エラー時の復旧時間が短いと、ユーザーからの満足度が高まります。

また、ソフトウェアの運用・保守には専門知識が必要です。ソフトウェア開発の委託先に運用・保守も依頼すると、外注先を選定する手間を省けます。

【無料】ソフトウェア開発について相談する

ソフトウェア開発の工程(プロトタイプ型)

ソフトウェア開発の工程(プロトタイプ型)

プロトタイプ型のソフトウェア開発の工程を紹介します。

要件定義

ウォーターフォール型/アジャイル型と同様に、ソフトウェア開発の目的や機能を明確にします。試作品での検証が必要な項目を洗い出しておくと、スムーズに開発を進められます。

設計

要件定義に基づいてソフトウェアの設計を行います。試作品は細部まで開発しないので、厳密な設定は不要なこともあります。開発時に認識齟齬が起きると問題が生じかねないソフトウェアの大枠を定義しましょう。

プロトタイプ開発

設計図をもとにプロトタイプの開発を進めます。メイン機能や検証が必要な機能を実装し、ソフトウェアを細部まで開発せず、スピード感を意識しましょう。

評価・修正

プロトタイプ開発後は、ユーザーや発注者に共有し、実際に利用してもらいます。評価・レビューを受けて、修正を繰り返していきます。修正回数はプロジェクト次第です。

プロトタイプ開発の評価・修正が完了したら、改善点を反映した修正済みのプロトタイプをもとに、本番開発に向けて具体的な要件や設計を固めていきます。

本番開発・リリース

本番開発では、ソフトウェアを細部まで開発していきます。開発が完了したら、再度テストを行って、ソフトウェアが問題なく動作したらリリースしましょう。

運用・保守

ソフトウェアのリリース後は、他の開発プロセスと同様に安定稼動するための運用・保守を行います。課題・不具合の修正や機能追加、ソフトウェアのアップデートなどの対応をしましょう。

※ソフトウェア開発の工程を理解したが、自社のみで進めるのが不安ならシステム幹事にご相談ください。予算や目的をヒアリングし、最適な会社を紹介します。相談料も紹介料も一切かかりません。

【無料】ソフトウェア開発について教えてもらう

ソフトウェア開発工程ごとの成果物

ソフトウェア開発工程を委託する場合でも、プロセスごとに以下のような成果物があります。

システム開発の工程

成果物

企画・見積もり

見積もり・提案書

要件定義

要件定義書

基本設計

基本設計書

詳細設計

詳細設計書

単体テスト

単体テスト実施報告書

結合テスト

結合テスト実施報告書

総合テスト

総合テスト実施報告書

受け入れテスト

検収書

各工程で開発会社から確認を求められるので、スムーズに確認作業を進められるように把握しておきましょう。

【無料】ソフトウェア開発について相談する

ソフトウェア開発の費用相場

最後に、ソフトウェア開発を外注する場合の費用相場をお伝えします。開発規模やスケジュールによって一概にはいえませんが、おおよそ以下が水準と考えられています。

ソフトウェア

費用相場

基幹システム(勤怠管理システム)

10万前後〜500万円以上

業務支援システム(顧客管理システム)

5万前後〜400万円以上

Webシステム(ECサイト)

50万〜1,000万円以上

学習アプリ

50~300万円

コミュニティアプリ

100~500万円

ライブ配信アプリ

120~2,300万円

ECアプリ

200~300万円

SNS位置情報系アプリ

300万円~

マッチングアプリ

400~1,500万円

ゲームアプリ

800万円~

フリマアプリ

1,000万円~

ソフトウェア開発の費用は、エンジニア・プログラマーの人件費と諸経費(機材の設備費、ソフトのライセンス料など)で決まります。ソフトウェアに実装する機能が複雑になるほど、開発期間が長くなるので、必要が高くなることを覚えておきましょう。

【無料】ソフトウェア開発について相談する

ソフトウェア開発工程【まとめ】

ソフトウェア開発工程は「ウォーターフォール型/アジャイル型」「プロトタイプ型」によって流れが異なります。ソフトウェア開発プロジェクトに応じて、開発手法が異なるので、あらかじめ開発工程を把握しておくとスムーズな開発が可能です。

また、ソフトウェア開発工程を知っていれば、メンバー間で共通認識を持てます。作業の抜け漏れを防げたり、円滑に開発を進められたりします。

ただし、ソフトウェア開発には専門知識が必要なため、自社だけで対応するのが不安な方は、システム幹事にご相談ください。予算や目的をヒアリングし、最適な会社を紹介します。相談料も紹介料も一切かかりません。

コンサルタントのご紹介 システム幹事 コンサルタント 岩田真 岩田 専任のコンサルタントが、
お客様の予算と目的を丁寧にヒアリング。
最適な会社をピックアップ・ご紹介させていただきます!
初心者の方でも安心してご相談いただけます。

【無料】ソフトウェア開発について教えてもらう

Q. ソフトウェア開発の工程には何がある?

ソフトウェア開発の工程として、主に「ベンダー選定」「要件定義」「設計」等が挙げられます。その他の工程は記事内で紹介していますので、ぜひご覧ください。

Q. ソフトウェア開発の費用相場は?

ソフトウェア開発の費用相場はエンジニア・プログラマーの人件費と諸経費(機材の設備費、ソフトのライセンス料など)で決まります。ソフトウェアに実装する機能が複雑になるほど、開発期間が長くなります。詳しくは記事をご覧ください。