基本設計とは?必要性と作り方などをご紹介
基本設計とは情報システムを作る工程の一つで、情報システム全体を機能単位に分割して、それぞれの機能がどういうものか、どういうことができるものか、機能同士がどうつながるのか決めていく作業です。 この記事では、基本的な設計、プロセス、およびその作成方法について簡単に学習します。
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
ご質問がある場合、またはハチネットに協力する場合
こちらに情報を残してください。折り返しご連絡いたします。
関連記事

デスクトップアプリのパフォーマンス改善&デバッグ徹底解説|初心者でも実践できる!
デスクトップアプリは、インターネット環境に左右されずに動作し、業務や開発ツールなどで今なお高い需要を誇っています。しかし、せっかく作ったアプリも、動作が重かったりエラーが多かったりすると、ユーザーから敬遠されてしまうことも…。そこで本記事では、デスクトップアプリのパフォーマンス改善とデバッグの基本テクニックを、初心者にも分かりやすく解説します。開発の途中で「なんか動きがモッサリする…」「エラーの原因が分からない…」と感じたことがある方は、ぜひ参考にしてみてください!

デスクトップアプリ開発とクロスプラットフォーム対応:QtとFlutter Desktopの魅力とは?
スマートフォン全盛の時代とはいえ、デスクトップアプリは今なお多くの分野で重要な役割を担っています。業務効率化や高機能な操作が求められる現場では、キーボードとマウスを活かせるデスクトップ環境が欠かせません。そして、最近注目されているのが「クロスプラットフォーム対応」という考え方。一つのコードでWindows・macOS・Linuxに対応できる技術として、QtやFlutter Desktopが急速に広がっています。本記事では、詳しく解説していきます。

【初心者向け】デスクトップアプリ開発を始めよう!WPF入門でネイティブアプリにチャレンジ!
日々進化するIT業界の中で、デスクトップアプリは今もなお、多くの現場で必要とされる重要な存在です。業務アプリやツール開発においては、安定性やパフォーマンスの観点からネイティブアプリが選ばれることが多く、その中でもWPF(Windows Presentation Foundation)は、Microsoftが提供する強力なフレームワークとして広く使われています。本記事では、これからデスクトップアプリ開発を始めたい方、あるいはWPFについて興味を持っている方に向けて、WPFの特徴や開発手順、実際のサンプルまでをわかりやすく解説していきます。「WPFって難しそう…」と思っていた方も、この記事を読めばきっと「やってみたい!」に変わるはずです。

初心者でもわかる!デスクトップアプリ開発に必要な基礎知識と最新トレンド
近年、Webアプリやモバイルアプリが注目を集めていますが、実は「デスクトップアプリ」もいまだに多くの場面で使われており、特に業務系システムや高性能ツールの開発では欠かせない存在です。「アプリを作ってみたいけど、Web?デスクトップ?何が違うの?」と迷っている方も多いのではないでしょうか。本記事では、アプリ開発をこれから学びたい初心者の方に向けて、デスクトップアプリの基本から、開発に必要なスキルやツール、今後のトレンドまで、わかりやすく丁寧に解説していきます。

【2025年最新版】デスクトップアプリ開発とは?初心者からプロまで知っておくべき知識まとめ【パート2】
前回のパート1では、デスクトップアプリの特徴や代表的な開発言語・プラットフォーム等について紹介しました。今回はその続編として、開発に必要なツール・プロジェクトの進め方・キャリアパス・学習ステップなど、より実践的な内容を掘り下げて解説します。「実際に作ってみたい」「将来の仕事に活かしたい」と考えている方にとって、役立つ情報が満載です。ぜひ最後まで読んで、自分に合った学び方を見つけてください!

【2025年最新版】デスクトップアプリ開発とは?初心者からプロまで知っておくべき知識まとめ【パート1】
デスクトップアプリは、安定性や処理速度、オフライン対応など、Webアプリにはない強みを持つ重要なソフトウェア形態です。まずは、「デスクトップアプリ開発とは何か?」という基本から始めて、開発対象としてよく使われるWindows・macOS・Linuxといった主要プラットフォーム、そしてそれぞれに適した開発言語(C#、Swift、Java、Electronなど)や技術の特徴をわかりやすく整理していきます。また、実際にアプリを作る上で欠かせない、プログラミング力・UI/UX設計・デバッグスキルといった、必要なスキルセットについても具体的にご紹介します。

初心者にデスクトップアプリ開発におすすめのフレームワーク
最近はスマホアプリやWebアプリが主流ですが、デスクトップアプリの需要は今でも根強く存在しています。特にオフラインで使える業務ツールや高性能なアプリケーションには欠かせません。しかも、今では初心者でも扱いやすい開発フレームワークが多数登場しており、「自分だけのアプリを作ってみたい!」という夢が現実になりやすい時代です。本記事では、これからデスクトップアプリ開発を始めたい人向けに、分かりやすくて実践的なおすすめフレームワークを厳選してご紹介します。

デスクトップアプリとは?Webアプリとの違い・特徴・メリットを初心者向けに解説
パソコンで使うアプリと聞くと、「どれも同じじゃないの?」と思う方も多いかもしれません。しかし、実は大きく分けて「デスクトップアプリ」と「Webアプリ」の2種類があり、それぞれ使い方や仕組みがまったく異なります。この記事では、IT初心者の方にもわかりやすく、両者の違いと特徴を比較しながら解説していきます。用途や目的に応じてどちらを選ぶべきか、納得のいく判断材料を得られるはずです。

デスクトップアプリとは?開発のメリットをわかりやすく解説
現代のビジネスや日常の中で活用されているアプリケーションには、Webアプリと並んで「デスクトップアプリ」の存在があります。クラウドやモバイルが主流の時代においても、デスクトップアプリはその高い処理性能と安定性から、業務ソフトやクリエイティブツールを中心に根強い需要を持ち続けています。本記事では、「デスクトップアプリとは何か?」という基本から、Webアプリとの違いや活用メリット、開発言語や最新トレンドまで、IT初心者の方にもわかりやすく丁寧に解説します。これからアプリ開発を考えている方、アーキテクチャ選定に悩んでいる方にとって、きっと役立つ内容となっています。

APサーバーの構築と設定の基本|初心者でも失敗しないステップバイステップガイド
現代のWebシステムにおいて、ユーザーの操作に応じて処理を行う「APサーバー(アプリケーションサーバー)」は、なくてはならない存在です。特にJavaベースのシステム開発や業務アプリケーションにおいては、TomcatやWildFlyなどのAPサーバーを適切に構築・設定することが、システム全体のパフォーマンスや信頼性に直結します。本記事では、初心者にもわかりやすく、APサーバーの基本から構築手順、設定のポイント、運用のコツまでを、実践的かつ丁寧に解説していきます。

APサーバーの構築と設定の基本をわかりやすく解説!
現代のWebサービスにおいて、「APサーバー(アプリケーションサーバー)」は、単なる裏方ではなく、ユーザー体験やビジネス成果を左右する“心臓部”とも言える存在です。フロントエンドの操作がいくらスムーズでも、APサーバーの処理が遅かったり不安定だったりすれば、ユーザーはすぐに離脱してしまいます。本記事では、そんなAPサーバーの基本を、初心者にもわかりやすく、かつ実務で使える知識として丁寧に解説します。Webサーバーとの違いから構築手順、設定のコツ、よく使われるツールまで、あなたの開発現場で「すぐに役立つ」情報を詰め込みました。これからインフラやバックエンドの理解を深めたい方は、ぜひ最後まで読んでみてください!

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環境における結合テストの基本から実践的なコード例、そして効率的にテストを設計・実行するためのベストプラクティスまでを、現場で役立つ視点から詳しく解説します。

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