Index: [Article Count Order] [Thread]

Date:  Fri, 8 Sep 2000 14:21:25 +0900
From:  firo <firo@....jp>
Subject:  [XP-jp:00850] Re: VXP ストーリー1のまとめ
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <00Sep8.142244jst.115206@....jp>
References:  <B5D7FB6F.3362%khosokawa@....com>
Posted:  Fri, 8 Sep 2000 14:22:40 +0900
X-Mail-Count: 00850

矢崎です。


Kaoru Hosokawa wrote:

> ホソカワです。
>
> ストーリー1は、やまのさんの案[XP-jp:00748]を採用し、下記のタスクにわける事
> にします。
>
> 1. Mailerがメール本文とメール設定ファイルを取得する。
>
> 2. メール設定ファイルをパースし、配送先のアドレス等をメモリ上に保存する。
>
> 3. Mailerは、Mailインスタンスをnewし、本文および配送先アドレスを
>    Mailインスタンスにセットする。
>
> 4. Mailer は、Mail インスタンスを配送エージェントクラスにわたし、配送を
>    依頼する。
>
> 5. 配送エージェントクラスは sendmail を起動する。
>
>

確認ですが、私は、これら全てを1タスクと考えています。

それで、もう少しクラスが見える形で流れを考えてみました。
#変形ですがCRCをやったつもり、、

そこで、、、、
 これを1タスクと取り扱ってよいか?
 流れは以下でよいか?

ご意見ください。

流れが固まればペアにはいりたいと思っています。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Mailerのmain(String args[])
 1.標準入力よりメール本文を取得する
 2.引数よりメール設定ファイルの名前を受け取る
 3.メール設定ファイルの名前を引数に、Config(設定ファイル)を
   new

Configのコンストラクタ(String fileName)
 1.fileNameで指定されているファイルからメール設定情報を取得
  し、内容を解析し、インスタンス変数にいれておく
 2.return

Mailerのmain(String args[])
 4.Mailを引数なしでnew
 5.Mailインスタンスに対して、setMailText(標準入力から得た本文)

MailのsetMailText(String text) 
 1.textの内容を解析し、Subject、差出人、その他ヘッダ情報、本
 文等、それぞれインスタンス変数にいれる
 2.return

Mailerのmain(String args[])
 6.Configからメンバリストのファイル名を取得する
   getListFileName()

Configの各getListFileName()
 1.変数にいれてあるメンバリストファイル名をreturn。

Mailerのmain(String args[])
 7.MemberListをnew。引数はメンバリストファイル名。

MemberListのコンストラクタ
 1.引数で取得したファイルを読み込み、Memberインスタンスを
  必要な数だけnewし、自分のコレクション変数にいれておく。
 
Mailerのmain(String args[])
 8.MemberAuthorizationをnew。引数はMemberList。
 [XP-jp:00826]参考
 9.Mailから、差出人のアドレスを取得。aMail.getFromAddress()

MailのgetFromAddress()
 1.差出人のアドレスをreturn

Mailerのmain(String args[])
 10.aMemberAuthorization.verify(差出人のアドレス)
 [XP-jp:00826]参考
 11.メンバ以外からのメールであれば、ここで処理終了 

Mailerのmain(String args[])
 12.Configから必要情報を取り出す。**[XP-jp:00804]参考
   1)aConfig.getToAddress() /*変換前の共通の送り先アドレス*/
   2)aConfig.getMlCount()
   3)aConfig.getMlName()
   4)aConfig.getMlServer()
   5)aConfig.getMlInfo()

Configの各getXXX()
 1.それぞれインスタンス変数の値を(必要なら加工して)return。

Mailerのmain(String args[])
 13.Configから取得した情報をMailインスタンスにセット
   1)aMail.setToAddress(toAddress)
   2)aMail.getMlCount(count)
   3)aMail.setMlName(name)
   4)aMail.setMlServer(serverName)
   5)aMail.setMlInfo(mlInfo)

Mailの各setXXX(xxx)  
 1.引数で受け取った情報をそれぞれ用の変数にセット

Mailerのmain(String args[])
 14.new DeliveryAgent()

DeliveryuAgentのコンストラクタ()
 1.インスタンスができるだけ

Mailerのmain(String args[])
 15.Mailインスタンスを引数にDeliveryAgentのsendMailをcall

DeliveryAgentのsendMail(Mail)
 1.引数で受け取ったMailインスタンスから、メール全文(ヘッダ
 と本文)をテキストで受け取る

MailのgetMailText()
 1.インスタンス変数の情報を使って、メール全文を整形し、
 return。

DeliveryuAgentのsendMail(Mail)
 2.sendmailを起動
 3.sendmailの標準入力に、メール全文を流す  

   #sendmailへの受け渡しのところ、自信なし!


--
矢崎博英  firo@....jp