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

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

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

2013-04-15 20:06:39 | 開発ネタ
こんなような話は、何回も書いているけど、
最近、ソフトウェア工学ネタで、見てくれる人が多くなった。
なので、もしかすると、見てない人がいるかもしれないので、
また、取り上げてみる。




■全体の流れと、今日の説明範囲

そもそもUMLだと、「詳細設計書」は、書かなくないか?
http://blog.goo.ne.jp/xmldtp/e/147b230c186e8b5a3d5092cb0c50ecf9

に書いた。
(以下太字が書いたところ。なお、今回は、番号を振っている)

いい、いくよ!付いてきてね!!

(1)ユースケースに対して、そのアクティビティを書いて、
   要求を明示するよねえ
    →ユースケース図、アクティビティ図

(2)そのアクティビティに対し、入出力を明示し
   (ここが入出力設計、UI)

(3)その入出力を元に(正規化とか)、クラスをつくるよねえ
   →クラス図(ER図に相当する)

(4)その後、MVCアーキテクチャを採用したとすると、
   なんかのフレームワークを決めて、

(5)アクティビティ図の入出力に対する部分がViewとなり、
   クラス図(ER図に相当する)ところが、モデル(DAO)になり
   アクティビティは、Viewを受ける部分にあたるので、コントローラーとなる。
    →コントローラーが
       クラスとなるか(Struts,Actionクラス)
       メソッドとなるか(CakePHP,Zendなど)
     は、フレームワークやアーキテクチャによる
   これで、アーキテクチャに基づいたクラス、メソッド割がきまる。

(6)そして、クラスから、何を呼び出すかという、呼び出し関係と
   メッセージ(引数)を、シーケンス図に描き、

(7)状態遷移は、遷移図(ステートマシン図)に書ける


これを、Astahでやると、どうなるかについて書く。

また、詳細設計に相当するところはどこに書いて、
どの後どうするかについても、書いてみたい・・・

が、長くなるので今日は、(1)、(2)くらいまで




■御題。

 アンケートサイトを作り、集計するとする。
 アンケートの内容は、以下のとおり


・緊急アンケート
・問1
 あなたは、卵かけご飯を食べたことがありますか
   A:ある
   B:ない → 問4へ、進んでください

・問2
 あなたは、卵かけご飯は、危険な食べ物だと思いますか?
   A:思う
   B:思わない

・問3
  以下の記事を読んでください

日本の「卵かけ御飯」が「絶対に危険な食べ物」に選ばれる…中国
http://blog.livedoor.jp/dqnplus/archives/1758248.html

 あなたは、卵かけご飯は、危険な食べ物だと思いますか?
   A:思う
   B:思わない

・問4 あなたの性別について答えてください
   A:男
   B:女
   C:その他

・問5 あなたの年齢層について答えてください
   A:10歳未満
   B:10代
   C:20代
   D:30代
   E:40代
   F:50代
   G:60代
   H:70歳以上


結果は、以下のように表示する

問1~問4まで:円グラフ
問5:棒グラフ

さらに、問3、問4については、思う、思わないをクロス集計




■まず、このシステムでしたいことと、それに関する人物
 (ステークホルダー)をユースケースで書く

 このシステム(アンケート)は、アンケートに回答してもらって、
集計する。当然回答する人と、集計する人がいる。
それを、ユースケースに書く。

なかんじ




■そのユースケースごとに、アクティビティを書く

 ユースケースは、2つ上がった
   ユースケース回答、
   ユースケース集計

 このユースケースごとに、ステークホルダーである登場人物が、どんな手順で
なにをするかを、アクティビティ図に描く。
 ステークホルダー(集計する人、回答する人)は、それぞれ、レーンになる。
 また、後作業のため、システムも入れておこう。
 こんなかんじ。

<<アンケート回答>>


<<アンケート集計>>





■そのアクティビティ図に入出力画面とかを入れる

 アクティビティ図に入出力画面やDBのデータ、帳票などを入れる。
 入れ方だが、

    ステークホルダーから、システムにいくには、
      何らかのイベントを起こすはずである=ボタンなど
      多くの場合、データを保存する

    システムからステークホルダーに行くときは、
      画面表示、帳票表示など、何らかのデバイスへの出力をするのが普通
      出力するため、データを入力することが多い

  これをもとに、オブジェクトノードを追加する。

<<アンケート回答>>


<<アンケート集計>>




■次回は・・・

 このオブジェクトノードをクラスにしていく。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« FPGAと3Dプリンターで、カ... | トップ | グーグルに差し止め命令 検... »
最新の画像もっと見る

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