2005-01-01から1年間の記事一覧

Analyzing the History and Lifetime of Case Studies in Software Design Technologies

英語タイトルの意図するのは、ソフトウェア設計に関わる技術の有効性を評価・検証・比較する時に用いられるケーススタディや例題の歴史や寿命を分析しよう、という感じ。 ここでいう、ソフトウェア設計技術ってのは、プログラミング言語であったり、パターン…

Characterizing Modules from Structure Evolution Perspective

英語あってるのか不明。意図は、モジュール構造の進化の視点から、モジュールの種類を特徴づけよう、ということ。 ここでいうモジュールは、クラスとかアスペクトとか、ソフトウェアを構成する基本的な単位。 個々のモジュールは、変化 or 進化していく。ソ…

Bad Design is Good Design?

何がよい設計なのかは、議論がわかれるところ。一つ言えるのは、よい設計というのは、与えられた道具 or 言語やコンセプトに依存する。たとえば、オブジェクト指向設計の視点では、Observer パターンは、よい設計だといえる。というのも、通常、Observer以外…

Contextual Polymorphism?

最もよく知られているポリモーフィズムの形は、オブジェクト指向のもの。この場合、メソッドの振る舞いは、どのオブジェクトかに依存して決まる。最近、Mezini らの Caesar 言語によって、AOP 言語における新しいポリモーフィズムの形が提案されている。簡単…

Crosscutting in Advice/Pointcut Binding

AOP の本来の動機は、従来のモジュール化の方法(手続き型、オブジェクト指向、etc)では発生してしまう Crosscutting な要求をよりうまくクリーンモジュール化しようということ。 でも、アドバイスとポイントカットの定義自体にも、Crosscutting っぽいのが…

Aspectual Polymorphism

まだまだマイナな単語だと思うけど「Aspectual Polymorphism」についての覚書(なので or なのだけど、読者を限定した書き方になってしまうかも&用語とか適当に使う)。いつかどこかにちゃんとした形でまとめるかもしれないけど。"Polymorphism" という用語…

Library based Refactoring

ソフトウェア開発の世界は、ダイナミックっぽくて、日々様々な新しいツールや便利ライブラリが提案されていると思う。リファクタリングコミュニティは、このダイナミックっぷりについていけているか? 言い換えると 特定のライブラリを用いることによる、リ…

Inner Advice

AOP

微妙なアイデアだけど、メソッド内でアドバイスを定義できるとしたら? public class MyClass { public void method() { { methodA(); methodB(); } after() : call( void method*() ) { // ログとか } before() : call( void method*() ) { // ログとか } }…

Design Patterns and Evolution Scenarios

特定のデザインパターンになった後に、どんな要件があって、その要件はそのパターンにどう影響する? 例: Observer 新しい状態変化のメソッドの追加(setX(int), setY(int) --> setX(int), setY(int), setColor(Color)) ConcreteObserver の追加 新しい Obs…

Rethinking ObserverProtocol

AspectJ でデザインパターンの実装というと一番有名なのは Observer パターンだと思う。Hannemann らの提案した再利用可能な Observer パターンの ObserverProtocol が一番脚光を浴びているきがする。 でも、どのくらいこの ObserverProtocol が有効なんだろ…

AOP の貢献?

AOP

AOP が貢献したことって何だろう? 多くの人は、プログラミングに直接影響を与えるような部分を強調するかもしれない。たとえば、横断的関心事をうまくモジュールできるようになったとか。 でも、最近僕が感じているのは、もっと精神的というか意識的という…

Refactoring with Bad Design or Natural Design Evolution

Refactoring for Bad Design? 英語は良く分からないけど、、、リファクタリングの話。 Natural Design Evolution は、わざわざうそ臭い英語で書いてみたけど、設計の自然な進化、という雰囲気。 いつ(あるいは、どのような動機で)リファクタリングを適用 …