ウィリアムのいたずらの開発?日記

ウィリアムのいたずらがコンピューター関係(本家廃止後はその他も)について思ったことを好き勝手に書いているブログです。

Astah*で、上流から、下流まで、トレーサビリティをもって開発する方法(6)

2013-04-24 12:22:21 | 開発ネタ

Astah*で、上流から、下流まで、トレーサビリティをもって開発する方法(5)
http://blog.goo.ne.jp/xmldtp/e/b805f9f2daa234e99474b532ce819e1c


の続きです。
いま、クラス図はこんなかんじ

で、前回は、画面遷移を書きました。今回は、モデル部分を入れます。




■モデル作成手順

・まず、図にセッションを入れます。

・昨日決めた、画面遷移に基づいて、画面から、コントローラーを呼び出し、
 コントローラーにきたら、画面の値を
   セッションに入れるか
   モデルに渡すか
 考えます(両方の場合もあります)
 そして、モデルを呼び出した場合、わたってきた値を、
   画面にセットするか
   セッションに入れるか
 考えます。
 これを、全画面遷移し終わるまで、繰り返します。

・その際、モデルを呼び出すには、基本的に
    セッションに入っている値
    呼び出したコントローラーに対応する画面
    他モデルの値(ただし、その前に呼び出されていること)
 のはずです。
 また、画面にセットする値も
    セッションに入っている値
    呼び出したコントローラーに対応する画面
    呼び出したモデルの値
 のはずです。

・モデルが大きかったら、正規化します。

・Partsとして定義した、データの一部分は、モデル上にあるかないか、
 確認します。多くの場合は、正規化した一部になっています
 →モデル上になくても良い




■今回のケース

・セッションを作ります。


・画面に沿って、画面のデータを
   セッションに入れるか、
   モデルに入れるか、考えます。

 問1画面の「次へ」で
  アンケート回答管理コントローラーの「問1次へ」にはいります。
  回答実行で登録したいので、
    「問1画面」のデータ「問1」は、セッションに入れます。

 同様に、
   問2画面の「次へ」で問2をセッションに、
   問3画面の「次へ」で問3をセッションに、
 入れます。

 問4・5画面の「回答実行」で
   セッションに入っている「問1、問2、問3」と、
   画面項目4、5を元に、アンケート回答データに「追加」します

・ここまでの操作で、図のようになります。

・集計画面に関しては、
 「集計開始」で、アンケート回答データを「検索」して、結果を処理加工し、
 それを「集計結果表示画面」に渡します。
 「アンケート回答データ」に「検索」を追加しました。

・今回は、正規化しなくてもいいかな・・という感じなので、これでやめときます。




■アレンジ(テーラリング)

 なお、今回は、正規化しない状態のモデル(Xと記す)と、
  正規化したモデル(xと記す)を作成し、
 モデルXから、xを呼び出すカタチにしていますが、

 モデルXを消去し、コントローラーから、xを呼び出す形にしても、
 もちろんいいです。

 また、
   モデルXと、コントローラーのメソッドを一致させたり、
   モデルXと、コントローラーのクラスを一致させたり
 するほうほうもあります。さまざまです。
 好きにアレンジしていいと思います。




■注意点

 例えば今回の場合、問1、問2、問3、問4・5と進む画面遷移を
中心に話していますが、問1、問4・5と進む遷移もあります。
 このとき、問2、問3をどうするか?という問題があります。
 もし、問2、問3をクリアし忘れると、前のデータが入ったまま
更新してしまったり、無設定のまま更新してしまったりします。

 更新のメソッドを、問1、問2、問3、問4・5用と、問1、問4・5に
分けたり、問1をセッションにセットするときに、問2、3をクリアしたりと、
方法はいろいろあると思いますが、なんらかの対策を刷る必要はあります。

 このように、複数の画面遷移をする場合、妥当な値がすべてセットされているか、
確認する必要があります。




これで、Astah*でのモデル化は終わりました。
あとは、実装に入っていきます。

この記事についてブログを書く
« 「ニューヨークの工科大学が... | トップ | PressmanのSoftware Engineer... »
最近の画像もっと見る

開発ネタ」カテゴリの最新記事