goo blog サービス終了のお知らせ 

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

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

astah*を使って、ICONIX風一気通貫システム開発 その4:ロバストネス分析

2010-11-26 14:01:36 | そのほか

 「astah*を使って、開発の要求仕様から、プログラム作成までを、トレーサビリティを保って、どのように開発するかを書いてみる」という、このシリーズ、以下の手順で説明する予定ですが、

(1)作るべきもののユースケースを書く
(2)ユースケースシナリオを書く
(3)ロバストネス分析
(4)バウンダリ(画面)、エンティティ(テーブル等)の属性を埋めていく
(5)バウンダリの項目を元に、画面構成を考える。
(6)(必要があれば)エンティティを正規化して、ER図にする
(7)フレームワークを決定する
(8)画面クラスをソースコードに書き直す
(9)エンティティをDBのテーブルと、DAOに書き直す
(10)コントローラーを書き直す

前回、(2)をやったので、今回は、「(3)ロバストネス分析」について。




■ロバストネス分析とは

 ロバストネス分析の説明は、ここにあるとおり。
 つまり、MVCみたいに、システムを

  バウンダリ:ユーザーとの入出力
  コントロール:バウンダリとエンティティをつなぎ処理する
  エンティティ:保存すべきデータを管理しておく

の3つにわけます。

 このバウンダリ、コントロール、エンティティは、3つの層と考えられ、
  ・同じ層の間
  ・お隣さんとの層の間
 とは、やりとりできますが、
  ・間を離れた層の間
 では、やりとり「できません」

 つまり、バウンダリから、エンティティには、アクセス「できません」

 これを、コミュニケーション図という形にまとめるのが、バウンダリ分析です。かんたんにいっちゃうと・・・




■本日のミッション

 したがって、今日やるべき、ミッションは、前に書いたユースケース

 とユースケースシナリオをもとに、バウンダリ分析をして、

 なコミュニケーション図を作ることです(上記例は受注のみ)。




■作り方

(1)ユースケース図は、コンピューターに「処理させたいこと」を書いているはずです。
   ってことは、これは、処理=コントロールになります。
   ってことで、各ユースケースを「~処理」という形にして、
   迷わずコントロールにしましょう。


   例:ユースケース:受注する→受注処理(コントロール)


(2)ユースケースシナリオを見てください。それに、画面入力・画面出力はありますか?
   あれば、「~画面」として、バウンダリを書きましょう(~はユースケース名)
   帳票も出力するのであれば、帳票のバウンダリも作ります。
   
   例:ユースケース:受注する→受注画面(バウンダリ)

(3)引き続き、ユースケースシナリオを見てください。

   画面から入力されたもの+保存されているデータを元に、
   何らかの処理をして、
   画面、帳票、保存すべきデータに出力

   しているはずです。このとき、保存されている、すべきデータがエンティティとなります。
   エンティティはたいてい名詞ですが、名詞が全てではなく、
   ひとつひとつが区別して、管理できるものです。

   なにかと、一緒になっていているようなものは、属性です
 (「なにか」が、エンティティかも?)

   ってことで、ユースケースシナリオの名詞に着目し、
     ・保存すべきデータで
     ・ひとつひとつ区別でき、管理すべきもの
   をエンティティとしてあげて、記述します

   なお、処理をしたり、保存しなくてよいデータを作成している場合、
   それはコントロールです
     他のユースケース名でなく(コントロールになることなく)、
     重要で、かつ独立したものは、コントロールとして挙げておいていいです。
     →挙げなくてもいいです。当コントロールクラスのメソッドにしますから・・・


(4)今書いた、コントロール、バウンダリ、エンティティに線を引きます。
   バウンダリ - コントロール - エンティティ1
                  - エンティティ2
                     :

   のような感じで、線が引かれると思います。


(5)メッセージを記入します。
   ユースケースシナリオが、ここに書くことを意識している場合は、
   たぶん、ユースケース1つ1つをぺたぺた貼ればいい感じだと思います
   (Enterprise Architectのシナリオなどの場合)

こんでできあがり。



 受注画面とか、めちゃくちゃ大雑把!と思うかもしれないけど、
とりあえず、これでいい。次回、詳しく書きます。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Z その1 | トップ | 新人に、OSIの7層を1時間で... »
最新の画像もっと見る

そのほか」カテゴリの最新記事