基本設計とは?必要性と作り方などをご紹介
基本設計とは情報システムを作る工程の一つで、情報システム全体を機能単位に分割して、それぞれの機能がどういうものか、どういうことができるものか、機能同士がどうつながるのか決めていく作業です。 この記事では、基本的な設計、プロセス、およびその作成方法について簡単に学習します。
2021年05月20日

基本設計とは情報システムを作る工程の一つで、情報システム全体を機能単位に分割して、それぞれの機能がどういうものか、どういうことができるものか、機能同士がどうつながるのか決めていく作業です。 この記事では、基本的な設計、プロセス、およびその作成方法について簡単に学習します。
基本設計とは情報システムを作る工程の一つで、情報システム全体を機能単位に分割して、それぞれの機能がどういうものか、どういうことができるものか、機能同士がどうつながるのか決めていく作業です。基本設計を行うタイミングは、要件定義の後、詳細設計の前になります。
今回記事では、基本設計、とはどういうものかを、プロセス、およびその作成方法について簡単に学習します。
1. 基本設計とは
基本設計とは、製品の基本的な設計。また、製品開発において基本的な設計を策定する工程。構成や仕様、機能などの概要をまとめたものを意味する場合と、中枢や基盤の設計を意味する場合があります。
システム開発の基本設計、情報システムやソフトウェアの受託開発の場合は、要件定義と詳細設計の中間で、対象物の機能や構成などの大枠や基本的な仕様を決める工程を意味します。
顧客が必要としている事項をまとめた要件定義書などを元に、どのようなシステムを開発すればこれを満たすことが出来るかを検討し、機器やソフトウェアの構成、実装すべき機能、画面や帳票など操作や入出力に関する事項、生成・保管されるデータの概要など、システムの基礎的な仕様をまとめます。
成果物として基本設計書などの文書や図版などが一式作成されることが多く、これを元に各部の詳細や実装方式などを策定する詳細設計などを行います。
2. 基本設計の必要性
基本設計にはアイデアと現実の間の架け橋です。 ブループリントは、オペレーターがジョブまたは構造の構造を実行するために必要な手順を知るのに役立ちます。 タスクを実行する前に、基本的な設計を行う必要があります。それは、ほぼプロジェクトの設計、つまりアクションです。
システムを家と比較すると、基本設計は基礎を構築する段階であり、レイアウトを作成します。基礎は確実であり、新しい家は将来しっかりと持続可能な方法で構築できます。
初期の基本設計は、方向性を形成し、詳細な設計手順と実際のアプリケーションのためにタスクと物事を一般化するのに役立ちます。
3. 基本設計に必要な視点とは?
要件定義を経て、基本設計フェーズに入っていきます。ここではどういった視点を持つべきなのでしょうか。
3.1. 要件定義との整合性
基本設計で決めた事柄は、その後の全フェーズに絡んできます。
完成品が要件定義の内容とかけ離れていては本末転倒となってしまうでしょう。
詳細設計に入る前の基本設計で、「要件定義の項目を満たしているか」を注意深くチェックする必要があります。
3.2. 実現可能なシステムとなっているか?
要件定義でヒアリングした内容を設計書に落とし込んでいくのが基本設計フェーズです。
クライアントにとっての「理想」を明確にできても、実際のシステム開発でそれを「現実」にできなくては意味がありません。
クライアントの希望はできる限り盛り込むべきですが、システムとして実現できるかどうかの線引きはしっかりと行うべきでしょう。
仕様書を作成する段階から、この点について意識しておくことが大切です。
3.3. クライアントにとって分かりやすくなっているか?
基本設計はシステム開発の根幹を固めていく作業であるため、クライアント側も気になるところです。
開発工程がかなり進んだ後で「自分たちの希望とかけ離れている」と指摘した場合、修正にはかなりの手間が掛かってしまいます。
開発側だけでなく、顧客側にも大きな損害が出てしまうことでしょう。
基本設計フェーズの段階でも、クライアントと綿密な意思疎通を図っていくことが大切です。
4. 基本設計の主な項目
基本設計は、実際にシステムの仕様を決定する段階です。要件定義で決定したシステムの機能要件や非機能要件、制約条件、外部とのやり取りなどをより具体的な仕様にすることで、実際にプログラム可能な形にします。基本設計は五つの主な項目に分かれています。
4.1. 要件定義
要件定義のフェーズでは、発注元であるクライアントの希望をまとめていきます。
「どういう機能を持った新システムを求めているのか」をヒアリングするため、コミュニケーション能力が大事になってくるのが特徴です。
4.2. 基本設計
要件定義で決まった内容を振り返りつつ、開発するシステムの全体像・概要についてまとめていくフェーズです。
顧客の目で見える部分の工程を設定していくことから、「外部設計」とも呼ばれます。
「プログラムをどのように配置するかを検討する段階」と捉えても良いでしょう。
4.3. 詳細設計
基本設計では、システムをモジュール単位で分割し、各モジュールや使用するデータベースの設計を行います。具体的には、データの入出力、データベース同士のデータの受け渡し、ユーザーによる操作、帳票の出力などです。
また、画面のレイアウト、操作方法、帳票類の書式など、システムの使いやすさやユーザー満足度につながるインターフェース部分の仕様を決めるのも機能設計の役割です。
4.4. プログラム実装・単体テスト
基本設計・詳細設計で生まれた設計書(ドキュメント)をもとに、エンジニアがプログラム作成を行なっていきます。
上の設計フェーズで生産された設計書通りに実装されていくため、設計書の質はとても重要です。
全ての完成を待ってからのテストだと細かい修正に対応できないため、実装と並行して「単体テスト」も適宜行われます。
4.5. 結合テスト
単体テストがクリアできたら、設計書通りにプログラムが組まれているかを検証します。
不備のあった箇所は適宜修正していくことになります。
結合テストの後に「受入テスト」を行い、問題点がなければクライアントに納品して完了です。
5. 基本設計の作り方
5.1. 業務フローの明確化
クライアント(ユーザー)が実際に行う業務内容を想定し、その流れを図で表現していきます。
縦軸に管轄部署・横軸に時間を設け、1つずつ流れに沿って記述していきます。
例えば商品発注システムのフローを説明する場合、「申込情報を取得」→「得た情報を入力」→「内容の確認」→「発注」といった具合です。
業務フローはシンプル・明確であることが望ましいとされています。複雑化しすぎるとクライアントが理解しにくいだけでなく、システムとしての実現も難易度は高くなってしまいます。
5.2. システム構成図を作る
システムの構造がパーツで構成され、それらが互いにどのように関連しているかを説明します。
まず、システムにおける、ハードウェア・ソフトウェア・ネットワークなどの構成図をそれぞれ作成する必要があります。
ソフトウェア構成では使用OSやミドルウェアの詳細等、ハードウェア構成ではルータやスイッチ等を明確に記述していきます。
5.3. 機能一覧表の作成
機能一覧とは、システム化の対象を明確に表す資料です。プロジェクトの初期段階では機能の洗い出しが完璧にはできませんが、全体ボリュームを把握する必要があるので、作成する必要があります。
満たすべき機能要件を一覧化することで、開発担当のエンジニアが作業内容を把握しやすくなります。
見積範囲の明確化や、契約時には開発範囲の明確化にも利用できます。また、機能ごとの進捗管理を行う場合な活用されますどにも。
5.4. 非機能要件もまとめる
クライアントの業務内容に直接は影響しない非機能要件についても、基本設計書でまとめていきます。
そのシステムを継続的に使用することになる側にとっては、セキュリティ面・スピード面なども大切な要素です。
6. 基本設計書の必要なポイント
6.1. ドキュメントは作りすぎない
基本設計によって「基本設計書」が作られますが、ドキュメントを生産し過ぎてしまうことにも注意が必要です。全ての書類がしっかりとメンテナンスされているなら問題ありませんが、誤った情報が含まれていると開発フローに支障を来します。
そのため、求められるのはドキュメントの質であり、量ではありません。どの程度生産するかはクライアントとの折衝で判断していくべきでしょう。
6.2. 図表や数式表現をうまく使う
基本設計書は、顧客・エンジニア問わず多くの関係者が目にすることになるドキュメントです。文章ばかりだと理解に苦労するほか、仕様に誤解が生じてしまうことも考えられます。
開発を担うエンジニアにとっては、テキストよりも数式表現を使ったほうが作業する上でも負担が減るでしょう。
6.3. 設計する側にも技術力は求められる
基本設計書は、後工程のエンジニアが実装を行なう際に欠かせない書類です。なので、技術者がそれを利用するという前提で作成していくことになります。設計側にもある程度の技術力は必要です。上流工程を担うのは主にSEですが、SEも社内研修でIT技術の習得を行なう場合が殆どです。要件定義をメインに行うエンジニアはある意味「コンサル 」といえるものの、エンジニア要素もやはり関係してくることになります。
7. さいごに
基本設計は、情報システムのあるべき姿をベンダの言葉で作り上げてまとめる、とても大事な工程です。基本設計がお客様と合意されれば、お客様はそれが実現されるものと期待しながら、情報システムが出来上がるのを待ちます。基本設計は、お客様とベンダとの間での最後の約束ごとだと言ってもいいでしょう。
基本設計が上手くいくかは、基本設計を行う担当者の実力とスキルと意識の持ち方次第です。方法論はそれを補うものでしかありません。基本設計のレビューを行うチームやプロジェクトやベンダの総合力も問われます。また、基本設計ができる要員がいるかどうかが、情報システム構築の成否を分けるのです。
現在、私たちハチネット企業のエンジニアは、高い技術を持つだけでなく、お客様と日本語で直接にコミュニケーションをとることができます。そのため、書類面やお客様の希望で100%日本語をドキュメントの処理ができます。
私たちハチネットは、常に品質製品と顧客の満足度を重視している。ハチネットのサービスを選択すれば、製品が実装されてから納品されるまで安心できると信じます。
オフショア開発をご検討されている方々はぜひ一度ご相談ください。
※以下通り弊社の連絡先
アカウントマネージャー: クアン(日本語・英語対応可)
電話番号: (+84)2462 900 388
お電話でのご相談/お申し込み等、お気軽にご連絡くださいませ。
- オフショア開発
- エンジニア人材派遣
- ラボ開発
- ソフトウェアテスト
電話番号: (+84)2462 900 388
メール: contact@hachinet.com
お電話でのご相談/お申し込み等、お気軽にご連絡くださいませ。
無料見積もりはこちらから
Tags
ご質問がある場合、またはハチネットに協力する場合
こちらに情報を残してください。折り返しご連絡いたします。
関連記事

APサーバーとは?仕組みとリクエストの流れをやさしく解説
現代のWebアプリやシステム開発において、「APサーバー(アプリケーションサーバー)」の理解は欠かせません。特に、ユーザーの操作に応じて動的に処理を行う仕組みの中核を担っているのがこのAPサーバーです。しかし、「Webサーバーとの違いがよくわからない」「どんな役割を果たしているのかイメージしにくい」という方も多いのではないでしょうか。この記事では、APサーバーの基本からその仕組み、リクエストの流れまでをわかりやすく解説し、アプリケーション開発やシステム設計に役立つ知識を提供します。

アプリケーションサーバーとは?代表的な例と仕組み・役割をわかりやすく解説
現代のソフトウェア開発において欠かせない存在であるアプリケーションサーバー。 しかし、「Webサーバーと何が違うの?」「Javaアプリケーションにしか使えないの?」といった疑問を持つ方も多いのではないでしょうか? 本記事では、アプリケーションサーバーの基本から仕組み、代表的な製品例、さらにはクラウド時代における役割の変化までを、現場目線でわかりやすく解説します。

APサーバーとは?Webサーバーとの違いと連携の仕組みを徹底解説
現代のWebシステムは、高速かつ柔軟な対応が求められています。その中核を担うのが「APサーバー(アプリケーションサーバー)」です。しかし、「Webサーバーとどう違うの?」「両者は何をしているのか?」といった疑問を持つ方も多いでしょう。 この記事では、WebサーバーとAPサーバーの仕組み・違い・連携の流れを、初心者にも分かりやすく、かつ現場で役立つレベルまで解説します。

APサーバーとは?基本からメリット・注意点までわかりやすく解説
「APサーバー(アプリケーションサーバー)」という言葉を聞いたことがあっても、実際にその役割やWebサーバーとの違いまで正しく理解している方は少ないかもしれません。 本記事では、APサーバーの基礎知識から、具体的な機能、導入するメリット、さらには利用時に注意すべきポイントまで、システム開発者・インフラエンジニア・IT初学者向けに丁寧に解説します。

Spring Bootで結合テストを書く:実践的な例とベストプラクティス
現代のアジャイル開発やDevOpsにおいて、品質を担保しながらスピーディに機能をリリースするためには、自動化されたテスト戦略の構築が不可欠です。特にSpring Bootのようなエンタープライズ向けフレームワークでは、単体テストだけでなく、結合テストによってモジュール間の連携や実際のデータベースとのやり取りまで網羅することで、より現実的な不具合を早期に検出できます。本記事では、Spring Boot環境における結合テストの基本から実践的なコード例、そして効率的にテストを設計・実行するためのベストプラクティスまでを、現場で役立つ視点から詳しく解説します。

アジャイル開発における単体テスト・結合テストの役割と実践ポイント
アジャイル開発が主流となった現代において、「迅速なリリース」と「高品質の両立」は多くの開発チームにとって大きな課題となっています。その中で、単体テストと結合テストは、単なる品質チェックの手段ではなく、開発プロセスに深く組み込まれた“価値提供の仕組み”として重要な役割を担っています。本記事では、アジャイル開発におけるテストの具体的な実践ポイントや自動化戦略を通じて、開発スピードと品質保証を両立させる方法を詳しく解説します。

結合テストのツール完全比較:Postman・REST‑assured・TestContainersなどの活用ガイド
現代のソフトウェア開発において、APIやマイクロサービスの普及に伴い、「結合テスト」の重要性がますます高まっています。単体テストだけでは検出できない、複数のコンポーネント間の相互作用や、実際のインフラに近い動作を検証するためには、信頼性の高い結合テストが不可欠です。しかし、結合テストには学習コストや実装負担も伴うため、自社のプロジェクトやチーム構成に最適なツールを選定することが成功の鍵を握ります。本記事では、Postman、REST-assured、TestContainers をはじめとした主要な結合テストツールを比較し、それぞれの特徴・メリット・適用シーンを解説します。

【2025年最新版】単体テストに最適な単体テストフレームワークトップ5
2025年現在、ソフトウェア開発において単体テスト(Unit Test)の重要性はこれまで以上に高まっています。CI/CD や DevOps の普及により、バグの早期発見、コードの品質向上、チーム全体の信頼性を高めるために、テスト自動化は欠かせない存在となりました。 本記事では、2025年最新版として、フロントエンド・バックエンド・フルスタックに対応するおすすめの単体テストフレームワークトップ5をご紹介します。それぞれの特徴や選定理由、用途別の選び方も解説しているので、ぜひ自分の開発スタイルに合ったフレームワークを見つけてください。

【徹底解説】単体テストと結合テストの両方が必要な理由とは?
ソフトウェア開発において「テスト」は品質を守るための重要な工程ですが、「単体テストさえやっていれば十分」「結合テストだけでカバーできる」と考えていませんか?実際には、それぞれのテストには明確な役割と限界があり、片方だけでは不具合の見落としや品質低下を引き起こすリスクがあります。本記事では、単体テストと結合テストの基本をおさらいしながら、なぜ両方をバランス良く実施する必要があるのかを、実例やテスト戦略の観点からわかりやすく解説します。

現場で使える!単体テスト・結合テストの実践チェックリスト|品質を守るための確認ポイント
ソフトウェア開発において、品質の要となるのが「テスト工程」です。中でも、複数のモジュールやシステム同士が正しく連携するかを検証する「結合テスト」は、リリース前のバグを未然に防ぐために欠かせない重要なフェーズです。しかし現場では、時間や工数の制約から確認漏れが発生しやすく、想定外の不具合につながるケースも少なくありません。そこで本記事では、テストの抜け漏れを防ぎ、品質を安定させるために、単体テストと結合テストそれぞれで現場で“本当に使える”チェックリストを詳しく解説します。開発者、テスト担当者、プロジェクトマネージャーの方にも役立つ実践的な内容となっていますので、ぜひ最後までご覧ください。

なぜ単体テストが必要なのか?バグを未然に防ぐ開発手法とは
「単体テスト(ユニットテスト)って本当に必要なの?」 「テストを書く時間がないし、動いてるから問題ないでしょ?」 そんな疑問や思い込みを持っている開発者は、意外と多いのではないでしょうか。 しかし、単体テストはソフトウェア開発における“安全ネット”であり、プロジェクト全体の品質と生産性を左右する重要な存在です。 この記事では、単体テストの定義から、なぜ必要なのか、どのようにバグを未然に防げるのかまで、実践的かつ最新の視点で徹底解説します。

テストケースとは?単体テスト・結合テストにおける良いテストケース設計の基本と実践ポイント
テスト自動化が進む現代において、単体テストや結合テストの成否を左右するのは「良いテストケース」です。数だけ増やせばよいわけではなく、無駄を省いて抜け漏れなく品質を保証できる設計が求められます。本記事では「テストケースとは何か?」から実際の設計手法、単体・結合テストでの注意点まで、わかりやすく解説します。

単体テストと結合テストの違いとは?目的・特徴・使い分けを徹底解説
ソフトウェア開発におけるテスト工程は、システムの品質・安定性を担保する上で欠かせない要素です。なかでも「単体テスト(ユニットテスト)」と「結合テスト(インテグレーションテスト)」は、最も基本的でありながら、理解が不十分なまま導入されるケースも少なくありません。 「単体テストだけで十分では?」 「結合テストをどう設計すればいいのか分からない…」 そんな声に応えるべく、本記事では2つのテストの違いとその活用法を詳しく解説します。

結合テストとは?仕組み・種類・手順・注意点を完全解説!
システム開発におけるテスト工程の中でも、「結合テスト(Integration Test)」は品質を左右する重要なステップです。どれほど単体で完璧に動くプログラムでも、複数のモジュールが連携したときに思わぬ不具合が起こることは少なくありません。たとえば、ユーザー登録機能が正常に動いていても、その後の通知処理やDB保存が失敗すれば、全体としては「使えない機能」と判断されてしまいます。本記事では、IT現場で頻繁に登場する結合テストについて、その定義・仕組み・種類・やり方・注意点をわかりやすく解説し、どのように効率よく、正確に結合テストを行うべきかを実務経験に基づいてご紹介します。

単体テストとは?仕組み・種類・やり方・自動化まで徹底解説
ソフトウェア開発の現場において、品質を確保するために不可欠なのが「テスト」です。中でも、最も基本でありながら効果的なのが単体テスト(ユニットテスト)です。関数やメソッド単位で動作を検証するこの工程は、不具合の早期発見や保守性の向上に大きく貢献します。本記事では、単体テストの定義から仕組み、種類、具体的なやり方、自動化の方法、さらに注意点までもとに体系的に解説します。

ITにおける設計書とは?重要性と開発成功のポイントを解説
システム開発において、「設計書」は単なる技術文書ではなく、プロジェクト全体の品質・効率・リスク管理を左右する極めて重要なドキュメントです。特に複数人・多職種が関わる現代の開発環境では、認識のズレを防ぎ、スムーズな実装・テスト・保守を実現するために、設計書の有無とその質がプロジェクトの成否を決定づけると言っても過言ではありません。本記事では、設計書とは何か?という基本から、種類・重要性・作成時のポイント、さらに現場で求められる実践的な運用法までをわかりやすく解説します。

設計書とは?基本設計書・詳細設計書の書き方、現場で使えるテンプレート構成を徹底解説!【保存版】
システム開発において、「設計書」はただのドキュメントではなく、開発チーム全体をつなぐ“共通言語”として非常に重要な役割を果たします。要件を満たしたシステムを効率よく、かつ高品質に構築するためには、基本設計書と詳細設計書を正しく作成・活用することが不可欠です。しかし、現場では「どこまで書けばいいのか」「何を含めるべきか」に悩む声も少なくありません。本記事では、設計書の基本構成から具体的な書き方、各項目のポイントまでわかりやすく解説していきます。