- 更新日 2024.01.30
- カテゴリー システム開発
システム構築とは?システム開発との違い・流れ・工程や構築方法を徹底解説【2024年最新版】
「システム構築とシステム開発、似ているようだけど違いがあるのだろうか?」これまでシステム開発プロジェクトに携わってこなかった企業担当者の方であれば、以下のことを知りたいはず。
・システム構築とは?システム開発となにが違う?
・システム構築の流れは?具体的な構築工程を知りたい
・システム構築にはどんな手法がある?
そこで本記事では、システム構築とはなにか?システム開発とのニュアンスの違いや構築の流れ・工程を解説!どのようなシステム構築方法があるか?開発手法の種類による違いも紹介します。
※開発パートナーとしてタッグの組める優秀なシステム開発会社を探している方は、システム幹事にご相談ください。専任のアドバイザーが最適な開発会社をご紹介します。相談料などは一切かかりませんので、お気軽にお問い合わせください。
システム構築とは
システム構築とは、アプリケーションやサーバ、ネットワーク、クライアント端末などのシステムを構成するソフトウェア・ハードウェアを調達し、運用できる状態にセットアップを済ませること。たとえば、デザイナーがPhotoshopを購入してMacにインストールし、ペンタブレットやプリンターをセットアップすることも、業務環境を整えるための「システム構築」といえます。
ただし、一般的に「システム構築」といった場合、企画から設計・プログラミング・テストまでのソフトウェア開発、ソフトウェアの稼働に必要なハードウェアの調達を含みます。さらに、最終的にシステムとして運用できる状態までにセットアップすることまで意味します。
システム開発との違い
このことからもわかるように、一般的に使われているシステム構築という言葉は、システム開発とほぼ同じ意味を持つと考えておけば間違いありません。
「構築」「開発」それぞれの言葉の持つ本来の意味が異なるため、下記のように分ける場合も。
・企画からテストまでのソフトウェア開発を「狭義のシステム開発」
・ハードウェアの調達・セットアップを「狭義のシステム構築」
本記事では、システム開発とほぼ同じ意味を持つものとして、システム構築の解説を進めます。
システム構築の流れ・工程
システム構築では、運用できる状態にソフトウェア・ハードウェアをセットアップするまでに、さまざまな工程を経る必要があります。日本で最も採用されているシステム開発手法、ウォーターフォール型を例に、以下からシステム構築の流れ、具体的な工程を解説していきましょう。ウォーターフォール型とは、開発プロセス全体を複数工程に分割し、時系列に沿って各工程を順番に進めていくシステム開発手法のことです。
※ウォーターフォール型開発について詳しく知りたい方は、以下の記事もご参考ください。
関連記事:ウォーターフォール型システム開発とは?開発工程・メリット・アジャイル型との違いを解説!
ウォーターフォール型での各工程の流れは「要件定義」>「基本設計」>「詳細設計」>「開発(プログラミング)」>「単体テスト」>「結合テスト」>「総合テスト」>「システム導入」となることが一般的です。
要求定義・RFPの作成
要求定義
システム構築における要求定義とは、構築するシステムに「どのようなこと求めるのか?」を明確に定義する工程のこと。システム構築の目的・ゴールを達成するため、システムを活用して「業務をどのように処理するか」「顧客にどのようなサービスを提供するか」一つひとつ具体化していく作業です。例えば「○名が同時にアクセスして××を1秒以内に並列処理できるシステム」「○○ボタンをクリックすると、××と△△を処理できる機能」といった概要を決めていきます。
そのためには、現状の業務課題を洗い出して理想とのギャップを埋める「業務設計」、あるいは顧客のニーズを分析して高付加価値を提供する「サービス設計」が必要。つまり、要求定義は、システム構築を依頼する側の企業が責任を持つべき工程です。
※システム開発の要求定義についてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:システム開発における要求定義の重要性|要件定義との違いや要求定義の実態・改善ポイントを解説!
定義されたシステムの要求は、「RFP」という成果物ドキュメントとしてまとめられます。
RFP(Request For Proposal):提案依頼書
要求定義でまとめられるRFP(Request For Proposal)とは、提案依頼書のこと。文字通り、受託する側のシステム開発会社に対し「こういうシステムを構築したいため、実現するための提案をしてください」とアイデアを募るためのドキュメントです。RFPを作成すれば、各開発会社からの提案内容を比較しやすくなります。
RFPは、候補となる3〜4社程度のシステム開発会社に提出し、各社から提案・見積もりを募ることが一般的。RFPに記載される主な内容は以下の通りです。
構築したいシステムの概要・自社情報 |
提案依頼内容(提案・回答の欲しい事項) |
現状の課題 |
会社・組織情報 |
システム構築の目的 |
提案するシステムの概要・構成 |
システム構築の具体的な目標・ゴール |
プロジェクトの体制・スケジュール |
システム構築プロジェクトの依頼範囲 |
サポート体制・運用方法 |
システム構築プロジェクトの方針 |
納品物一覧・ドキュメントサンプル |
会社情報 |
概算費用 |
システム構成・機器情報(リプレイス案件の場合) |
制約事項 |
契約内容 |
RFPを作成すれば、システム開発会社に「なぜ開発するのか」を漏れなく伝えて共有できます。
※RFPについてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:RFPとは?システム開発の質を高める提案依頼書の作り方を解説!【サンプルあり】
依頼先の選定・契約
RFPに対するシステム開発会社からの回答が出揃ったところで、最も満足できる提案をしてくれた1社を選定し、システム構築の業務委託契約を締結します。
もちろん、RFPを送りつけて相手の回答を待つだけではいけません。優良なシステム開発会社を選定するためには、担当者・プロジェクトマネージャーとの相性や、対応・レスポンスの早さ・丁寧さなどを見極めることが重要。直接コンタクトを取り、できれば対面で直接提案・見積もりを依頼するのがおすすめです。
ではRFPは必要ないのか?といえば、そういうわけではありません。RFPには「提案・見積もりの前提となる要求事項を統一できる」「依頼先とのやりとりを効率化できる」メリットがあるからです。前提条件が統一されていれば、不明点に関する質問を減らせて、各社から集まった提案・見積もりを比較しやすくなります。契約内容が自社に不利になるようなリスクも減らせるでしょう。
開発会社と契約書を交わす際には、多段階契約か一括契約のどちらの契約方法か、成果物は何か、成果物の所有権・知的財産権はどうなっているかなど、契約内容を十分に確認する必要があります。十分に確認しきれていないと、開発会社と揉めたり、元々望んでいたシステムが完成しないなどのトラブルが生じる恐れがあります。
※システム開発の契約についてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:システム開発の契約とは?契約形態・契約書の注意点を解説!
要件定義
依頼先の選定・契約が済んだ段階で、システム構築の工程は要件定義へと進みます。要件定義(Requirments Difinition)とは、RFPで定義された要求を「どのようにシステムで実現するのか?」必要なソフトウェア・ハードウェア・機能・性能などの要件を定義していく工程のことです。
要件定義をしっかり固めないと、以下のような問題につながります。
・開発工程で想定以上に時間がかかる
・作ったものの役に立たなかった
・無駄に高機能になって予算オーバーになる
要件定義は、受託側のシステム開発会社が中心となって策定していく工程ですが、依頼側企業が積極的に関わっていくべき工程でもあります。なぜなら、利用する側が求める要求を、作る側が技術的・予算的なことを含め、どうシステムで実現していくかを策定する作業が要件定義だからです。
発注者側・委託側双方の異なる視点からシステムを見たときに生じる「認識のズレ」をすり合わせ、プロジェクトの方向性を統一することがシステム構築を成功させるポイント。そのためには、依頼側・受託側で打ち合わせ・ドラフトを重ねながら、成果物ドキュメントである「要件定義書」を作成しなければなりません。
※システム開発の要件定義についてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:システム開発の要件定義とは?受託開発における重要性や進め方を解説!
ハードウェアの選定・調達計画
要件定義フェーズでは、システムの方向性である「システム要件」、必要な機能である「機能要件」のほか、それ以外でシステムに求められる要件「非機能要件」を定義します。非機能要件には、構築するシステムの「可用性」「性能・拡張性」「運用・保守性」「セキュリティ」などが含まれます。
これらを実現するために必要なハードウェアを選定し、どのタイミングでなにが必要なのかの調達計画を策定するのも、要件定義の要素です。
基本設計
システム構築における基本設計とは、要件定義書をもとに構築対象となるシステム・ソフトウェアの機能・構成など、基本的な仕様・システムの骨組みを策定する工程のこと。システムの外側から見える部分を設計していくフェーズでもあることから、「外部設計」と呼ばれることもあります。
構築するシステムの基本仕様を策定する基本設計フェーズは、依頼側企業が構築工程に関われる最後のチャンス。要件定義と同様、積極的に関わっていく姿勢が成功へのポイント。基本設計は、発注者にシステムの完成イメージを提示する役割と、開発者にシステム構築方法を提示する役割を担う重要な工程です。
基本設計フェーズでは、画面レイアウト・遷移などの「インターフェース」や「データベース」「帳票」「ファイル」「バッチ」などが設計され、成果物ドキュメントとなる「基本設計書」にまとめられます。
※システム開発の基本設計についてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:システム開発の基本設計とは?その位置付け・重要性・発注者としての関わり方を解説!
詳細設計
詳細設計とは、基本設計書をもとにシステム・ソフトウェアの機能それぞれの内部仕様を詳細に定義する工程のこと。システムを内部から見た部分を設計することから、「内部設計」と呼ばれることもあります。
詳細設計の役割は、基本設計書の基本仕様の機能・ビジネスロジック(ビジネス・業務に関する固有のルール・ワークフローなどがシステム・ソフトウェアに反映されたもの)を整理し、開発時の生産性・保守時の効率性を高めること。整理した機能・ビジネスロジックをシステムのどこにどのように実装していくか割り振り、プログラマーの指示書「詳細設計書」にまとめていきます。
※システム開発の詳細設計について詳しく知りたい方は、以下の記事もご参考ください。
関連記事:システム開発の詳細設計とは?プロジェクトの位置付け・役割をわかりやすく解説!
プログラミング・実装
システム構築におけるプログラミング・実装とは、詳細設計フェーズで整理・分割・割り振られた機能・ビジネスロジックを、詳細設計図をもとにプログラミング・実装していく工程のことです。一般的には、分解されたモジュール単位でプログラミングを進め、モジュールを結合して機能に、機能を結合してシステムへと仕上げていきます。
※システム開発で利用される主要言語について詳しく知りたい方は、以下の記事もご参考ください。
関連記事:システム開発の主要言語を解説!業務アプリケーションによく使われている言語は?
単体テスト・結合テスト・総合テスト
システム開発における単体テスト・結合テスト・総合テストとは、納品前のシステムに不具合やバグがないかをステップごとにテストして確認していく工程のこと。
開発したプログラム・システムが問題なく動作するか、不具合がないかをチェックして修正します。リリース前にテストをしないと、本格的に運用をはじめてから不具合が発覚するなどの事態になりかねません。
詳細設計で分解されたモジュールが「詳細設計書」通り動作するかをチェックするのが単体テスト、モジュール結合して「基本設計書」通り動作するかをチェックするのが結合テスト、システムに組み上げて「要件定義書」通り動作するかをチェックするのが総合テストです。
※システム開発のテスト工程について詳しく知りたい方は、以下の記事もご参考ください。
関連記事:システム開発のテスト工程を徹底解説!システムテストと受け入れテストの違いは?
納品・構築・受入テスト・検収
総合テストをクリアしたソフトウェアは、ハードウェアとともに指定の場所に納品し、システムとして構築されます。納品・構築されたシステムは、「要求定義書・RFP」通りに動作するか、受入テストが実施され、問題がなければ検収となります。
検収中に問題が見つかった場合、システム開発会社と協議したうえで、システムの不具合を改修してから改めて検査し、問題が解決された時点で検収書を提出します。検収後にシステムの不具合が見つかった場合、請負契約によるシステム開発であれば、問題発見から1年以内であれば開発会社に改修を要求できます。
※システム開発の検収についてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:システム開発の検収トラブルを防ぐには?検収方法・契約内容・よくある疑問を解説!
システム構築後の運用・保守
検収を経てシステム構築が完了しても、プロジェクトが終了したわけではありません。システムは構築することが目的ではなく、活用することこそが目的でありゴールだからです。構築したシステムには、ユーザーの利便性を確保するために、サービスローンチ・リリース後の安定的な稼働が絶対のためにも、継続的な運用・保守が欠かせないのです。
・システム運用:システムを監視・運用していくこと
・システム保守:障害が発生した際にトラブルの原因を究明しシステムを復旧・修正すること
システムを構成するソフトウェア・ハードウェアに問題が発生しないか監視します。また、システム責任者と連携して障害の原因を特定し、早急にシステムを復旧させるよう運用します。
運用・保守は依頼側企業が責任を持つべき工程ではありますが、システム開発会社と運用・保守契約を結んで代行してもらう場合も少なくありません。また、システムの操作マニュアル制作、システムを使う従業員の教育など、システムの活用に向けた定着支援をシステム開発会社が担当することもあります。
※システム運用・保守についてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:システム運用とは?開発との関係・保守との違い・重要性・作業内容を解説!
※開発パートナーとしてタッグの組める優秀なシステム開発会社を探している方は、システム幹事にご相談ください。専任のアドバイザーが最適な開発会社をご紹介します。相談料などは一切かかりませんので、お気軽にお問い合わせください。
システム構築の方法・開発手法の種類
ここまでで、ウォーターフォール型システム開発を例に、システム構築の流れ・具体的な工程を解説してきました。ただし、プログラムの開発手法にはいくつかの種類があり、種類に応じてシステム構築の工程も異なります。
以下から、4種類に分類できる主なプログラム開発手法と、それに応じて変化するシステム構築の流れ・工程を簡単に解説していきます。
ウォーターフォール
ウォーターフォール(Waterfall)型開発モデルとは、文字通り、水が上流から下流に流れるように、決められた作業工程を一つひとつ順番に遂行していくプログラム開発手法のこと。本文内でも解説したように、具体的なシステム構築工程は「要求定義」>「要件定義」>「基本・詳細設計」>「プログラミング」>「テスト」>「構築」となります。
ウォーターフォール型の特徴は、上流の工程を100%完了させてから下流の工程に移ること。また、プログラミングから設計に戻るといった「工程の逆戻り・手戻り」が、基本的に想定されていないこと。必要な機能や要件が明確であるプロジェクト、予算・納期が明確なプロジェクトに適した開発モデルです。
※ウォーターフォール型開発について詳しく知りたい方は、以下の記事もご参考ください。
関連記事:ウォーターフォール型システム開発とは?開発工程・メリット・アジャイル型との違いを解説!
アジャイル
アジャイル(ajile)型開発モデルとは、「俊敏な・機敏な」開発を実現するため、システム全体を細かい機能に分割し、優先度の高い機能から構築・リリースを繰り返していく開発手法。
アジャイル型では、まずおおまかなシステム要件・仕様を策定し、1〜4週間程度で実装できる単位に機能を分割します。分割された機能は、優先度の高い順に「計画」>「設計」>「プログラミング」>「テスト」>「リリース」>「レビュー」を1つのサイクルとした「イテレーション(反復)」を繰り返し、システムの完成が目指されます。
つまり、アジャイル型開発モデルでは、イテレーションごとにシステム構築が実行され、完成までにそれが繰り返されると考えればいいでしょう。
クライアントやユーザーのレビューを次のイテレーションに活かせるアジャイル型は、スモールスタートさせて市場の反応を見ながら成長を狙う新規事業、サービス開発などのプロジェクトに適した開発モデルです。
※アジャイル型システム開発についてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:アジャイル開発とは?メリット・デメリット、発注側の注意点を解説
プロトタイプ
プロトタイプ(prototype)型開発モデルとは、文字通り、制作されたプロトタイプをテスト・レビューしながら、リリースに向けて完成度を高めていくプログラム開発手法のこと。システム構築工程は「要求定義」>「要件定義」>「設計」>「プロトタイプ開発」>「テスト・レビュー」>「プロトタイプの修正」>「本開発」>「構築」となります。
基本的にウォーターフォールと似た構築工程となりますが、本開発に入る前に試作品を作ることがプロトタイプの特徴。そのため、要件定義・設計といった上流工程を厳密に決め込みません。仕様・要件のブレやすい「新たな事業・サービス立ち上げ」時のシステム開発プロジェクトに適した開発モデルです。
※プロトタイプ型システム開発について詳しく知りたい方は、以下の記事もご参考ください。
関連記事:システム開発におけるプロトタイプとは?注目される理由・概要・メリットを解説!
スパイラル
スパイラル(Spiral)型開発モデルとは、要件定義以降の「設計」>「構築」>「テスト」>「評価・改善」を1つのサイクルと捉え、ループ線を描くように反復してシステムを完成させるプログラム開発手法のこと。重要な機能から改善を繰り返しながら完成を目指す手法です。
具体的には、要件定義で仕様書を作成したうえで、システム全体をいくつかのサブシステム(機能)に分割し、開発に取りかかる順番を決めます。開発される機能は設計以降のループでプロトタイプが作成・レビューされ、フィードバックは次のループの工学的評価に活用されます。このことからもわかるように、スパイラル型はウォーターフォール型とアジャイル型のメリットを組み合わせ、弱点を補完しようとするプログラム開発手法です。
要求のクリティカルな業務システムなど、プロダクトのクオリティを重視する比較的予算の潤沢なプロジェクトに最適なプログラム開発手法です。ただし、対応できるシステム開発会社はそれほど多くありません。
※スパイラル型システム開発について詳しく知りたい方は、以下の記事もご参考ください。
関連記事:スパイラル型システム開発の特徴・メリット・デメリットは?アジャイル・プロトタイプとの違いも解説!
システム構築まとめ
システム構築とシステム開発はなにが違うのか?知りたい方に向け、本記事では、システム構築の意味・概要、システム開発とのニュアンスの違いや構築の流れ・工程などを解説するとともに、どのようなシステム構築方法があるのか?開発手法の種類による違いも紹介してきました。
開発手法の違いに関わらず、システム構築で重要なポイントは、目的・方向性のベクトルを合わせられる優良なシステム開発会社を選定すること。そのためには、要求定義・RFPでシステム構築の前提条件を明確にし、金額だけではない対応力・提案力・相性を見極める必要があります。
※開発パートナーとしてタッグの組める優秀なシステム開発会社を探している方は、システム幹事にご相談ください。専任のアドバイザーが最適な開発会社をご紹介します。相談料などは一切かかりませんので、お気軽にお問い合わせください。
コンサルタントのご紹介
岩田
専任のコンサルタントが、
お客様の予算と目的を丁寧にヒアリング。
最適な会社をピックアップ・ご紹介させていただきます!
初心者の方でも安心してご相談いただけます。
Q. システム構築とは何ですか?
システム構築とは、システムを構成するソフトウェア・ハードウェアを調達し、運用できる状態にセットアップを済ませることです。企画から設計・プログラミング・テストまでのソフトウェア開発や、ソフトウェアの稼働に必要なハードウェアの調達業務も含まれます。
Q. システム構築とは?
システム構築とは「アプリケーションやサーバ、ネットワーク、クライアント端末などのシステムを構成するソフトウェア・ハードウェアを調達し、運用できる状態にセットアップを済ませること」です。詳細は記事内で紹介していますので、ぜひご覧ください。
この記事を書いた人
梓澤 昌敏
専門分野: 音楽・映像制作、オウンドメディア、ビジネス
音楽・映像制作の現場を経て、スタジオ構築側の業界へ。マネージャー・コンサルタントとして制作現場の構築に携わる一方、自社オウンドメディアの立ち上げを含むマーケティングも担当してきました。現在アメリカ在住。作曲を含む音楽制作も提供しています。
このライターの記事一覧