開発方法論のまとめ 3

先ほどの続きです。


●外部設計(UI・SS)

 要求仕様書で、業務プロセス(アクティビティ)レベルにまで落としました。
 落としてなかったら、落としてください。

 そうすると、アクティビティ1個に対しては、

   入力があって、
   それを処理して
   出力する

 という形になっています(入力がなかったり、出力がなかったりすることはあると思います)

 まず、アクティビティに対する入出力を決めてください。

 たいてい、入出力は、こんなものになります。

   ・画面
   ・帳票
   ・ファイル・データベース
   ・通信ネットワーク(インターネット)

 これらのフォーマットや遷移を定義していくのが、ユーザーインターフェース定義(UI)になります。

 具体的には
   ・画面は、画面定義書に
      どのような画面から、どのような画面に遷移するかという画面遷移図
      各画面のレイアウト図

   ・帳票は帳票レイアウト図を書きます

   ・ファイルやDBの定義書としては
      全体像として、テーブル一覧ないしはER図
      それと各項目ごとの定義
    をかきます。

   ・通信フォーマットは
      各通信のレイアウト
      通信の遷移をシーケンス図や状態遷移(図・表)で、

 を書きます。
 このほか、コード定義やエラーメッセージを定義する場合もあります。

        • -

 つぎに、構造設計(SS)です。
 現在は、とくに画面を使う場合、そのモデルというのがあります。
 おおくはMVCモデル(モデル、ビュー、コントロール)の3層構造を使います

 そして、MVCを用いる場合、フレームワークというプログラムを作る枠組みがいろいろありますので、
 どのフレームワークを使うかを決定します。

 現在、有名なフレームワークとしては
  Javaだと、struts,spring,Seasar2など
  PHPだとCakePHP,Zend,Symfonyなど
  PythonだとDjangonado
    :
    :
といろいろあります。これを決めてしまうと、おおよそどんな画面をつくって、どんなコントローラーをつくって、どんなエンティティをつくるかというのが決まってしまいます。

      • -

 どう決まるのかというのを、ICONIXという方法論で見てみます。

 ICONIXを使う場合、以下の手順で書きます

1.ユースケース(アクティビティでもいいけど)にUI(=画面・帳票など)があるなら、
  ユースケースごとに、Viewクラスを規定します

2.概念モデルをもとに、テーブルを作成し、テーブルをもとに、エンティティクラスを発生させます
  これをエンティティクラスとします。

3.1のViewクラスに対応するコントロールクラスを発生させ、そのコントロールクラスが、
  2のエンティティクラスを操作するものとします。

4.ここまでのViewクラス、コントロールクラス、エンティティクラスを書きます

5.ユースケースシナリオに沿って、4の各クラスに対し、処理順番を書いていきます
  →それをコミュニケーション図にまとめます。

6.先ほどいった、フレームワークを決定します。

7.そして、5の各クラスをフレームワークに対応させます。

 富士通の場合、UIとSSの図は規定されています。
 そうでない場合は、UMLを使って表現したりします。


つかれた。やすむ。
ここまであっぷ。