netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2004-04-23 古い日記からの変換データ ▲
_ The Darwin Award ▲
リアルタイム UML 第2版 p.270 に記載されている「自動車が時速300参る(時速480km程度)で走行することはありません.[注6]」のネタの出所をつい調べてしまった.
http://www.darwinawards.com/darwin/index_darwin1994.html
_ 読書 ▲
研究室に置いてあった「リアルタイムUML第2版」(翔泳社)を読んでみた.ちなみに原著は:Real-Time UML, Second EditionDeveloping Efficient Objects for Embedded Systems.
リアルタイムシステムだから,何か特別なことでも入るかと思ったら,意外とそうでもなかった.(実時間に関する情報が UML 上に埋め込まれているくらいか)
とりあえず,何となく忘れそうになってたことをいくつか再確認.
- オブジェクトのクラスがオブジェクトの債務を規定できるのは,それらのオブジェクトがすべて同じコンテキストで同じように使われる場合のみ
- ひとつのオブジェクトが複数のインタフェースを備えることもある(ソースコード上では区別は付かない場合もあるかもしれないが)……実は自動で分割できると嬉しいかな.嬉しくないかな.
- アクティブオブジェクトとパッシブオブジェクトアクティブなほうは,自律的でイベントを発生させたり,システムの全体を構成する役割を持つパッシブのほうは,クライアントにサービスを提供する
- オブジェクトは債務を果たさなくてはならない.そのために必要な情報を持たなくてはならない.
- 継承による拡張と特化 拡張 = 新しい振る舞いを追加する 特化 = 親クラスの振る舞いを置き換える(ただし Liskov の置換原理は守る)
- アーキテクチャ設計とは,システムを構成するための戦略の決定.たとえばオブジェクトをレイヤ形式で配置するとか,オブジェクト間の接続をオブジェクトブローカーに任せるとか.
- メカニズム設計:コラボレーション(一連の協調動作を行うオブジェクト群)の設計.ただし,同じロールを担当する交換可能なクラスが複数存在するとき,それはパターンとなる.少数のスコープに限定されたパターンをメカニズムと呼ぶ.メカニズム設計として,オブジェクトがどのように協調するかを決定する.
- 詳細設計:データ構造の決定,精度や値域の確定,アルゴリズムの決定.関連,操作,可視性の決定,例外の決定(誰が送出し,誰が捕捉するか).
2006-04-23 ▲
_ [hyCalendar] 参照ファイルのバグというか仕様の穴 ▲
個別にテスト可能なモジュールを切り出すためのリファクタリング作業を続けているのですが,参照ファイル(他のファイルの内容を一緒に表示する)機能で,同じファイルを何個でも参照リストに追加できてしまうことが判明しました.
ファイルオブジェクトを検索するためのIDがファイル名で決まらないのはうれしくないので,参照リストには1つのファイルは1回だけしか登場できないように変更します.
_ 引越しに向けた本の処分 ▲
書籍のうち,要らないものを人に渡して回っただけともいう.
TRPG系ではMERPとLotR,バトルテック,それからRPG研で作ったものなど,小説はアン・マキャフリィ,ひかわ玲子,J.R.R.トールキンの作品の一部を残して放棄.
プログラミング関連では,意識的に残したのは,まつもとゆきひろさんのRuby本や結城浩さんの「プログラマの数学」.どちらも,オブジェクト指向とか数学とか,基本的な考え方を再確認するのに役立つ(と私が思っている)本.その他には,たびたびお世話になっているBertland Meyer の「オブジェクト指向入門」,Andrew Hunt と David Thomas の「達人プログラマー」あたり.