netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2003-08-23 古い日記からの変換データ [長年日記] ▲
_ 論文 ▲
Exception Handling in Object Oriented SystemsECOOP2003 の Workshop の文献を消化,その2.
Johannes Siedersleben:Errors and Exceptions -- Rights and Responsibilities
概要は次の通り.
みんな例外を正しく使っていない.一番よいもので,ある種のロギングという程度で,何もしないものも多い.
コンポーネントが何をしてよいか分からない(Emergency)ときに例外を使うべきである.また,これらの例外はできるだけ早く検出するべきである.
アプリケーションエラーは,場合の数が限定されるので,動作の失敗を返すだけなら,戻り値でよい.戻り値で返せないときだけ例外を使う.また,アプリケーション関連の例外だけは直接の呼び出し主が捕まえ,外へ出してはいけない.(戻り値の一種という以上の意味を持たせてはいけない)
Emergency 例外のチェックを行わないコンポーネント群をRisk Community というかたまりで考える.ある Risk Community へは,Safety Facade という例外を吸収する Facade オブジェクトを介してアクセスする.(Facade は Emergency 例外 -- RuntimeException -- を吸収する)
事前・事後条件について,事前条件は,呼び出し側と呼び出される側とどちらが働くかの取り決めで,失敗した場合は ViolatedPreconditionException を生成すると良い.事後条件は誤った実装による戻り値から呼び出し側を守るためにあり,事前条件と役割が異なる.
例外を扱う10個のルール:
1. Emergency とアプリケーションエラーは区別する.
2. Emergency はできるだけ早く捕まえる.
3. 事前条件が違反された場合は呼び出しを失敗させる.
4. 入力パラメータは,通常は null でないと仮定する.
5. Risk Community は Safety Facade を介してアクセスされる.
6. Emergency を捕らえるのは Safety Facade に任せる.
7. Safety Facade は,事前条件違反以外のすべての例外を捕まえる.
8. アプリケーションエラーは,できるだけ戻り値で表現する.そうでない場合,Checked Exception を使う.
9. アプリケーションエラーはすぐに捕まえる.
10. 制御フローを扱うために必要でない限り,例外クラスを勝手に作らない.
_ 論文 ▲
Exception Handling in Object Oriented SystemsECOOP2003 の Workshop での論文を消化.
Ricardo Mendonca da Silva, Paulo Asterio de C. Guerra and Cecilia M. F. Rubira:"Component Integration using Composition Contracts with Exception Handling"
Computational Layer, Coordination Layer, Application Layer と三階層に分けて,Computational Layer にコンポーネントを置いて,そのサービスを Coordination Layer にあるComposition Connector が連結し,処理を行う.で,クライアントコンポーネントはApplication Layer に置かれる.
ここで,Composition Connector はComposition Contract Component を使って構成されるらしい.Contract をコンポーネントで表現してるとこが新しいのかな?と,ちょっと良く分からないが.
2003-08-21 古い日記からの変換データ [長年日記] ▲
_ IE ▲
セキュリティホールに伴う WindowsUpdate が2つばかり出てるのだが,bMobile ではダウンロードするのが大変なので出張が終わるまで見送る.研究室のマシンも,いつもならリモートデスクトップ~とか使うところだが,こっちも bMobile では手が出ない(たぶん).
_ OO2003 ▲
発表が無事終了.IBMの方に興味を持っていただけたので,名刺だけいただいて,後でメールでツールのURLを投げることに.
懇親会で,名前だけは知っていたhttp://dolphin.c.u-tokyo.ac.jp/~kazu0/ の作者の人に会う.実は同い年でびっくり.一杉さんらと AOSD-JP (?) メーリングリストを発足させよう,ということで合意を取った.実はこれが最大の成果かもしれない :-)とりあえず,用語(Crosscutting Concerns など)の和訳を統一できたらいいなぁ,などと思う.こういうのは一人ではできないし.
東工大の千葉先生の Join Point = 結節点,というのは初めて聴いたけど,何となく正しいような気がする.
2003-08-20 古い日記からの変換データ [長年日記] ▲
_ OO2003 ▲
OO2003本会議1日目.基調講演は Bertland Meyer で,Trusted Component という話.よいコンポーネントとは何か,とか色々.
午後から,Web アプリケーションのセッションに参加.・フレームワークを作ってやると再利用性が上がる.・デバイスごとのページを,設計時に生成しておくのではなく, 実行時に生成することで管理が楽になる.・デバイスごとのページを,デバイス非依存モデルから デバイス依存モデルへ,と落としていく.・みんな Struts を使っている.というような感じだった.
さらに,パターン系の人々のパネルディスカッションに参加.建築でのデザインパターンとの対比が面白かった.家のユースケースとして雨風をしのぐ,というのは書けるけど明るさがどうこう,というのは実は書けないとか,パターンランゲージはGUIデザイナのためだけのものではないとか,ソフトウェアのほうが,建築よりも分析と設計の間のギャップが大きいとか,システムに対する要望を一貫して保持するコーディネータが必要だとか,建築の世界では実はデザインパターンというのは意外と少数派だったりとか,ソフトウェアで使ってる人のほうが知識の整理に使えるとか色々な考えを持っているとか,色々な話がぽんぽんと飛び出してた.話に乗ってる人々,みんなすごいなぁと感心.
_ OO2003 ▲
初日は Meyer による Eiffel チュートリアル.ツールのインタフェースがちょっと格好よかった."Multiple inheritance is easy" とかあっさり言うあたりがすごいかも.AOP については,「アーキテクチャをいじらずに,外側から(ソフトウェアを良く知ってる人が)ソフトウェアを改変するもの」という感じの認識らしい.アスペクトがいっぱいあると保守しにくそうと思っている様子.純粋にオブジェクトだけで頑張るタイプの人なんだろうか.
アスペクト指向といえば,福岡工大の趙先生に,研究室の名前とAOPやってます,というだけで名前を当てられてしまった.実は密かに有名だったりするんだろうか?
2003-08-18 古い日記からの変換データ [長年日記] ▲
_ bun45 ▲
まったく最近進展(状況の変化)がないので,bun45 サーバ管理関連の残りの課題を整理する. ・次期管理者探し・文学部統合サーバへの移行はどうなった? という二点.前回,ディレクトリ構造の改変をして/usr/local/cgi 以下 => /home/httpd/cgi-bin/seiyousi/util /home/httpd/html 以下 => /home/httpd/html/seiyousi /home/httpd/cgi-bin 以下 => /home/httpd/cgi-bin/seiyousiと変えたので,統合サーバへはファイルコピーだけでいける……はずなのだが.サーバ移行の話はどうなったのだろう. ディレクトリの置換作業は,次のように実現.手抜きだなー.
sed s/\/usr\/local\/cgi/\/home\/httpd\/cgi-bin\/seiyousi\/util/g