ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

「標準ソフトウエア工学教科書」を作ってみたいと思います その15 3.3

2011-10-24 10:38:47 | 土日シリーズ
土日ではなくなってしまいましたが(^^;)

土日シリーズ「標準ソフトウエア工学教科書」を作ってみたいと思います

今回は、外部設計です。




■3.3 外部設計

 前回、要求分析で要求をだしたので、次に、この要求を満たすシステムを設計していきます。
 設計については、ここで、2つに分けて考えます。

  1.ユーザーや外部システム等(ユースケースのアクター)で見える部分。
    →インターフェース、特にユーザーインターフェース(UI)

  2.ユーザーや外部システム等(ユースケースのアクター)で見えない部分

 1は外部に見えるところなので、外部設計、2は、内部部分なので、内部設計となります。
 今回は、このうち、外部設計について行います。

------

 外部設計に関して、一番大きな部分は、
   1.ユーザーとのインターフェースを決める、ユーザーインターフェース
   2.他システムがアクセスするDB、ファイル部分
   3.Webサービス等の場合、通信部分のインターフェース(引数と返り)
   4.2.3の基本となるコード化

 画面メッセージを分ける場合もありますけど、それは、1に含まれると、ここでは考えましょう。
 2に関して、先ほどの説明だと、他に見えるところだけでもいいのでは?と思うかもしれませんが、このテーブルは見えて、あのテーブルは外部に出さないので、設計しないとなると、検証できなくなってくるので、この場合、外に見えるか否かにかかわらず、全体を設計します。

 なお、ユーザーインターフェースとの矛盾をチェックするために、仮に他システムがDB、ファイルにアクセスしないとしても、外部設計でDB、ファイル設計するのが普通だと思います。

 なお、4のコード化設計は行うのですが、1、2をしているときに自動的に出来てしまうので、意識して行うのは、1のUI、2のDB,ファイル定義で、最近のWebサービスにおいて、3を考えるという形です。
 なお、以降面倒なので、DB,ファイル設計と書かずに、DB設計としてしまいます。

--------------

 では、UI,DBをどのように設計していくかですが、まず、前提について、確認してみます。
 前提として、要求仕様では、こんなことをしているのでした。

(1)プロジェクトの目的と、プロジェクトマネージャーは決まっている状態で、

(2)えらい人からえらくない人へ、仕事を分割していく
   →その仕事の範囲をざっくりと図や文にまとめる

(3)最終的に、仕事を受け持つ担当者に行き着く
   担当者のやるべきことを、入力と出力に着目して、記述する
   →機能要求

(4)機能要求以外(非機能要求)を何らかの方法で、えいやときめる(^^;)

(5)機能要求、非機能要求を要求仕様書という形でまとめる


つまり、(3)の段階で、入力と出力は、決まっているはずです。
なので、この入出力を検討します。

(あ)(3)の入出力を、画面、帳票、DBなど、メディアごとに分ける。

(い)画面について
    (い-1)画面全体のルックアンドフィールを決める
       →全体的な画面イメージ
        (背景、大きなレイアウト、ナビゲーション等)

    (いー2)(あ)で抽出した画面を、1画面にするか、複数のものを
         まとめるかなど考慮して、画面割りをきめる。

    (い-3)画面をどのように遷移させていくか、画面遷移をきめる
           →追加する画面が出てくるかも

    (い-4)各画面の画面レイアウトを決める

    (い-5)い-3、い-4をまとめて、画面定義書とする
        つまり、画面定義書は、画面遷移図と画面レイアウトからなる

    (い-6)お客さんにチェックしてもらって、承認を得る


(う)DBについて
    (う-1)どのようなテーブルがいるか決める
       →正規化したりして

    (う-2)テーブルの項目などを決める

    (うー3)テーブルの妥当性を確認する
        ・入力したデータで、必要なものは保存されているか
        ・容量などの見積もりで、無茶はないか?

 帳票に関しては(い)の画面を帳票にかえて読み替えてください。ただし帳票遷移はありえないので、そこは無視します(い-3はない)
 Webサービスに関しては、(う)のテーブルをサービスに読み替えてください。
     

(え:成果物)結果として、画面定義書、DB定義書、帳票定義書、サービス定義書ができます。

------------

 Webアプリケーションの場合、画面をHTMLで記述しておくと、レイアウトは画面イメージを貼るだけだし、お客さんと確認するとき、ブラウザを使ってプレゼンできます(=プロトタイプになる)。
 このHTMLで画面をつくるということが、後工程でとても楽になることなのですが、
 それは、後工程の話としておいておきます。

 上記のやり方だと、画面・帳票のレイアウト、遷移に関しては、この外部設計の段階で確定し、DBはおおよそ決まります(内部設計や実装で変更もありえる)。

 ただし、画面設計はそこまでやらないという考えもあります。
 項目をこの段階では確定させない(確定できない)という考え方で、その場合、画面定義書は、内部設計でつくられます。
 が、この方法の場合、お客さんに見せるのがもっと後になり、画面が内部設計中に動くので、内部設計にダイナミックな修正が入ります。これを嫌う場合、ここ(=外部設計)で大まかに確定してしまいます。



この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 「標準ソフトウエア工学教科... | トップ | PMBOKのお勉強 その3... »
最新の画像もっと見る

土日シリーズ」カテゴリの最新記事