やぼったい開発 > ウォータフォールモデルによる開発手法の基礎 > 基本設計(BD)

基本設計(BD)

--

作成方針

・サービス仕様書や 要求仕様書から設計方針を組み立てる。
※サービス仕様書:お客様の要求業務内容。
  要求仕様書:お客様から求められている業務に対応する機能。
全体の流れは
サービス仕様書(or 要求定義書(RFP)) → (BI書) → BD書 → FD書
となる。

・FD書を意識する。
  • 業務からその実現を満たす機能群への設計を意識する。

作成内容

要求された業務内容を漏れなく設計し、BD書に記載する。
  • ただし、BD工程なので BD関係項目以外は記載しなくていい。
  • 記載しなくても最低限、要求されている項目は、どういう方針で今後設計するかまとめておく必要がある。

明確にしておくべき、メインポイント

おさえるポイントは 業務を把握し、データ構造(開発システムレベルのBDの粒度)を明確にし 外接IFとのやりとり内容を整理すること。

業務(運用も含む)とデータ構造がわかれば、BDの粒度での状態遷移が明確になる。

これがあやふやなままであると、サービス・インの時まで問題を抱えることになるし、途中で気づくタイミングはない。

機能配置、機能関連図、サーバ構成図

基本機能(大機能)、コンポーネントとして、どこに何を載せるか決めておく。サーバ型の開発は確実にこの作業が必要だが、組み込み系はもっとあっさりとしているのでそれほど難しくないかもしれない。

環境

その他、サーバ、ネットワーク機器、ミドルウェア、OSなども決めておく必要がある。どのサーバにコンポーネントを載せて、どういう機能がどういう通信(http, oracle, ftp, など)するかを決めておく。
ある程度は 経験だけでなく、カンと度胸が必要かもしれない。
またミドルウェアのApacheや Oracle DBなどの製品のバージョン、JDK関係のバージョンが必要となるし、 Cを使うのであれば 使用するCPUやコンパイラのバージョンも明確に決めておいた方が良い。

日本語の文字コードも決めておく。最近はUTF-8で一本化できるので問題にならないはず。

バージョンは2,3年も使うシステムであればもちろんリプレースする可能性は多いにある。


性能要件、耐障害性

どれくらいの処理をこなせるかの検討が必要。 例えば、お客さんの想定アクセス数を元に、 3秒以内のレスポンスが要件だとすれば、それを満たすために、各基本機能はどういう性能を満たすかを明確にする。その時、CPU速度、メモリサイズ、NW帯域等の選定を行う。
(現場で使える性能マネジメント - 第2回 「応答一律3秒」という性能要件はやめよう:ITpro)


また、保存データ予測サイズ等を計算し、DB設計、ディスクサイズ決定をおこなう。 (運用を活用・意識して、サービスイン後に拡張する(CPUやディスクのスケールアップ、)というパターンもあり)

例えばサーバ開発の場合、LB構成によりスケールアップがしやすいが、開発の難易度は上がる。単純なクールスタンバイであれば、クラスタ構成にするとNWの設計やアプリーケーションの設計が多少楽になる。

セキュリティ要件

外部とアクセスする Webサーバであったり、お客様の情報を扱うサービスであったり、コンテンツを扱う場合は特に重要。
セキュアな Web サーバーの構築と運用


暗号化や、各Webセキュリティ スキルが必要。

またhttpsを LBで行うのか apacheで行うのかなどを検討する。もちろん apacheのほうが安いが性能は出ない。

情報処理推進機構:情報セキュリティ:暗号技術/情報処理推進機構:情報セキュリティ : 電子政府推奨暗号の仕様書

環境差異

あと重要なのは、商用時の各環境と開発時の環境の差異を整理しておくこと。
環境を揃えておくことのメリットとしては、全て理論的にチェックしさらに管理するよりも、ミスを見つけられるように環境自体揃えるほうが確実になるからだ。

その他の決定しておくべきポイント


他拠点など直接開発しないが、連携する部分(インタフェース、システム要件など)を決めて記載する。
  • BD書に直接 I/F(インタフェース)を盛り込まなくても最低限 どんなI/Fがあるか決めておく必要がある。
  • プロジェクトによっては BD,FDの間で I/F仕様書を作成することもある。
その他に、リリースについて仕方/影響/調整拠点を整理しておく必要もあるし、DBやデータの移行、試験前の動作確認も計画として決めておく必要がある

またある程度性能指標のもととなる指標値を共有しておく必要がある。
Webのポータルアクセス数など

出来れば 品質レベルとしてのSLAも決定しておきたい。
どこまで、品質を高めるのか、担保するのかは工数にダイレクトに跳ね返ってくる内容であるので、意外と重要。その上お客さんの印象にとても影響する。

類似コンテンツ


他の開発手法(スクラム、アジャイル、エクストリーム)


NEXT > 機能設計

BD工程 (yahoo検索)