システム設計 – 基本設計編

基本設計とは「ウォーターフォール型開発」において、要件定義を終えた後におこなう設計工程のことです。
ウォーターフォール型開発は、
| 要件定義 | ユーザーの要求を整理し実装する機能や性能・工程を決める | 
| 基本設計 | 要件定義でまとめた内容をどのように作成していくかを決める | 
| 詳細設計 | 基本設計で定めた動きをどのように実現していくかを決める | 
| 開発 | プログラマーによりプログラムを実装する | 
| 単体テスト | 作成したプログラムが、正しく機能するかテストする | 
| 結合テスト | 複数のプログラムを組み合わせ、正しく機能するかテストする | 
| 運用テスト | 完成したシステムが、実際の業務に使用できるかテストする | 
の工程で実施していきます。
基本設計はシステムの全体像を考えていくための設計
基本設計では下記のようなことを実施していきます。
システムの全体像を考える
どんな機能が必要で、どのような業務を誰がどのように実施しているのか
それにともなってデータの流れがどうなっていくのかというようなことをまずは、決めていきます。
そのためのドキュメントとして、
- 機能一覧
 - 業務フロー図
 - ユースケース図
 - データフロー図
 - 入出力関連図
 
などを作成してまとめていきます。
画面、帳票の設計
画面にどんな項目を表示するのか、どんな入力をして、どんなアクションが必要なのか、それを画面と画面でどう連携していくのか、画面に表示する項目の定義、ボタンを押した時の処理の内容を決めていきます。
帳票については、業務の内容や利用する用途によって、どのタイミングでどのような内容の帳票を出力するか項目の定義とどのタイミングでどこから出力するかを定義します。
そのためのドキュメントとして、
- 画面一覧
 - 画面レイアウト
 - 画面入出力項目一覧
 - 画面アクション定義
 - 帳票一覧
 - 帳票概要
 - 帳票レイアウト
 - 帳票出力項目一覧
 
などを作成してまとめていきます。
バッチの設計
データの集計処理やバックアップなど、リアルタイムに処理を実施しなくても良いものもあります。そのようなものは、時間を決めて一括で処理をするようにしていきます。
基本設計では、どのような処理をバッチで実行した方がいいのか、それをどのタイミングでどのように処理していくのがいいのかを決めていきます。
そのためのドキュメントとして、
- バッチ処理一覧
 - バッチ処理フロー
 - バッチ処理定義
 
などを作成してまとめていきます。
データベース設計
データをどのように持つかを決めていきます。
各機能でどのようにデータを保持していくか、どのような項目が必要か、各データの関連性はどうなのか、どの機能から参照され、更新されていくのかなどを決めていきます。
そのためのドキュメントとして、
- テーブル一覧表
 - テーブル設計書
 - ER図
 - CRUD図
 
などを作成してまとめていきます。
基本設計で大切なこと
1. システムの全体像を明確にすること
基本設計では、「全体感」が必要になります。
システムの視点であれば、各機能の全体的な流れの把握、ユースケースや業務フローを用いて、システムを利用する機能に抜け漏れがないか。
顧客の視点であれば、機能を利用する「営業の視点」「経理の視点」「運用する人の視点」でこのシステムを利用する場合に使い勝手がいいのか。
開発の視点であれば、今後開発していく「詳細設計」「開発」「テスト」「システム構築」「保守」で必要となる要素に抜け漏れがないのか。
いろいろな観点で、全体的に整合性がとれて、利用できるものになっているかが重要になります。
2. 要件定義で決めた内容をどう実現すべきか明確にすること
要件定義でやるべきこと/やらなくていいことを明確にして、基本設計は、やるべきことをどう実現するかを定義します。
要件定義は、システムを発注する側が必要な要素をまとめたものであり、それをシステムとしてどう実現するかを決めるのが基本設計になり、ここがずれていると、後工程の作業もずれ、スケジュール品質に大きな影響を与えることになります。
3. 情報を整理して丁寧に資料を作成すること
要件定義、基本設計は、少数のメンバーで実施して、そこ以降の工程では、人数を増やして開発を進めていきます。
途中から参画するメンバーとの情報の共有は、プロジェクト成功の大きな鍵となります。各メンバー間での情報量の格差やズレがないことが大切です。
経緯やポイントなど丁寧に資料に記載して、インプット時に説明するようにすることが重要になります。
ファブリカコミュニケーションズで働いてみませんか?
あったらいいな、をカタチに。人々を幸せにする革新的なサービスを、私たちと一緒に創っていくメンバーを募集しています。
ファブリカコミュニケーションズの社員は「全員がクリエイター」。アイデアの発信に社歴や部署の垣根はありません。
“自分から発信できる人に、どんどんチャンスが与えられる“そんな環境で活躍してみませんか?ご興味のある方は、以下の採用ページをご覧ください。


