添付ファイルの追加

ログイン済のユーザのみが添付ファイルをアップロード出来ます。

添付ファイル一覧

Kind Attachment Name Size Version Date Modified Author Change note
png
biz_anal_class.png 30.2 kB 1 13-3-2012 00:42 ytp
png
biz_desi_class.png 53.5 kB 1 13-3-2012 00:42 ytp
png
biz_object.png 38.0 kB 1 10-3-2012 20:22 ytp
png
biz_repo_seq.png 24.6 kB 1 11-3-2012 17:51 ytp
png
report_layout.png 6.1 kB 1 11-3-2012 18:57 ytp

This page (revision-31) was last changed on 25-7-2014 20:59 by ytp

This page was created on 04-1-2012 01:02 by ytp

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 1 removed one line
★このページは書きかけです。
At line 3 added one line
\\
At line 8 changed 3 lines
*入荷状態(未入荷/一部入荷/入荷済み のいずれか)
*複数の商品の明細(商品名、入荷予定個数、単価)
商品が入荷した場合のため、
*入荷状態(未入荷/一部入荷/入荷済 のいずれか)
*複数の商品の明細(商品名、個数)
商品それぞれが入荷した場合のために次の情報も必要となる。\\
At line 13 changed 6 lines
も必要となる。\\
上記は、商品ごとに分納が可能である前提とする。(商品Aは届いたが、商品Bは未入荷)\\
その上で、
*上記伝票を記入するための画面機能が必要である。
*ある日に届いた商品の全明細を表示する画面機能も必要となる。
画面機能を持つ部分は一つのクラスとして設計して(省略して)構わない。\\
上記は、商品ごとに分納が可能である。(商品Aは届いたが、商品Bは未入荷)\\
その上で次の機能が必要となる。
*全入荷伝票を検索・一覧表示する画面機能
*入荷伝票を登録するための画面機能
*ある日に届いた商品の全明細を表示する画面機能
*ある日に届いた商品の全明細を表示する帳票機能
上記前提で次のものを記述しなさい。\\
#分析クラス図
#設計クラス図
#ある日に届いた商品の全明細を表示する帳票機能のシーケンス図
ただし、画面あるいは帳票の機能部分はそれぞれ一つのクラスとして省略設計して構わない。\\
At line 22 changed one line
[scenario_obj.png]\\
オブジェクト図を描く時のコツは、複数あり得るオブジェクトは必ず複数描くことです。以下の例で言えば、
*入荷伝票
*商品
がそれです。\\
[biz_object.png]
At line 24 changed 2 lines
!!分析設計モデル
続いて、クラス名だけのクラス図を描いてみます。\\
!!分析クラス図
続いて、クラス名だけのクラス図を描いてみます。[クラスにするもの]の説明を参考にして、
*入荷明細クラス
を忘れないように定義します。分析をする際に見落としがちな点は次です。\\
#採番する際に伝票番号一覧が必要となる
#伝票入荷状態と明細入荷状態は異なるクラスである
#入荷明細一覧画面は入荷伝票ではなく入荷明細一覧を扱う
特に3は大切です。入荷明細一覧画面は入荷伝票が何であるか関係なく入荷明細を一覧表示する必要があります。入荷明細一覧クラスが無いと、一覧というデータ構造(同じオブジェクトが複数ある形)に対する処理が複数箇所に分散して実装されてしまい保守性が下がります。\\
尚、図中に青色を付けてあるのが画面・帳票機能のクラスです。\\
[biz_anal_class.png]
At line 27 changed 2 lines
!!設計モデル
分析モデルを洗練し、処理を記述します。\\
!!設計クラス図
続いて属性と処理を記述し、分析クラス図を洗練して設計クラス図を仕上げます。\\
尚、次のような帳票を出力する前提で処理を定義しました。\\
\\
[report_layout.png]\\
下の図が設計クラス図です。分析クラス図を描く段階で一覧系のクラスさえ見逃さなければそれほど難しくないことが判ると思います。\\
[biz_desi_class.png]\\
いくつかポイントを挙げます。\\
*入荷伝票クラスと入荷明細一覧クラスの「次の明細を返す」
上記は、一覧系のクラスに必ず必要なメソッドです。Gofのデザインパターンの中の「Iterator(イテレータ)パターン」と同様です。※\\
*伝票番号一覧クラスの「最近採番値」
上記は、直近の伝票番号を記録するための属性です。\\
*日付クラスの「日付の文字列を返す」
上記は、"2012年03月02日"というような文字列を返すメソッドです。帳票だけではなく、画面やバッチ機能でも利用します。\\
*個数クラスの「単位付き個数を返す」
上記は、"123個"というような文字列を返すメソッドです。帳票だけではなく、画面やバッチ機能でも利用します。\\
\\
%%sup ※Iteratorパターンには他に、
*次の明細は存在するか
というメソッドが必要ですが、ここでは省略しています。/%\\
!!ある日に届いた商品の全明細を表示する帳票機能のシーケンス図
設計クラス図で定義したメソッドを組み合わせてシーケンス図にします。\\
ループしながら入荷明細を取得して、それぞれの値を出力する動きになります。\\
[biz_repo_seq.png]\\
\\
慣れないうちは、シーケンス図を描きながら設計クラス図を考えても構いません。両者を行ったり来たりしながら仕上げていきます。\\
慣れてくれば、クラス図に定義したメソッドに不足が無いのかをシーケンス図を使って確認するような作業になっていきます。\\
つまり、シーケンス図はクラス図の作成や説明を補足する意味合いが強いため、全てのシーケンス図を記述する必要は必ずしもありません。\\
!!まとめ
*業務モデルを作成する際にはまず実例を考える(オブジェクト図)
*分析段階から一山クラス(一覧系クラス)を忘れない
!!コラム
実際の業務のモデルを作成する際も、原則を忘れなければ難しくないことを理解してもらえたのではないかと思います。特に、\\
*一山クラス(一覧系クラス)
*小粒クラス(日付、個数など)
の2つを見逃さなければ、従来から存在する正規化手法の延長線上にあるという考えで概ね間違っていません。\\
これまで皆さんが携わってきたシステムを題材にして、分析クラス図を描いてみることをお薦めします。\\
\\
次: [インタフェースとは何か]
Version Date Modified Size Author Changes ... Change note
31 25-7-2014 20:59 2.216 kB ytp to previous
30 23-5-2014 17:56 2.219 kB ytp to previous | to last
29 11-3-2012 23:20 2.216 kB ytp to previous | to last
28 11-3-2012 22:59 2.208 kB ytp to previous | to last
27 11-3-2012 22:56 2.207 kB ytp to previous | to last
26 11-3-2012 22:55 2.2 kB ytp to previous | to last
25 11-3-2012 22:54 2.2 kB ytp to previous | to last
24 11-3-2012 19:49 2.197 kB ytp to previous | to last
23 11-3-2012 19:14 1.924 kB ytp to previous | to last
22 11-3-2012 18:11 1.881 kB ytp to previous | to last
21 11-3-2012 17:48 1.482 kB ytp to previous | to last
« This page (revision-31) was last changed on 25-7-2014 20:59 by ytp