Characterizing Modules from Structure Evolution Perspective

英語あってるのか不明。

意図は、モジュール構造の進化の視点から、モジュールの種類を特徴づけよう、ということ。


ここでいうモジュールは、クラスとかアスペクトとか、ソフトウェアを構成する基本的な単位。


個々のモジュールは、変化 or 進化していく。ソフトウェアの要求に対応していく過程で、あるクラスは、新しいメソッドが追加されるかもしれないし、あるいは、新しい継承階層の一部になるかもしれない。または、リファクタリングを通して、特定のデザインパターンが適用された状態になるかもしれない。


しかし、すべてのモジュールが、同じ進化の過程を同じ可能性で通るわけではない。


たとえば、XxxUtils とかいう static なメソッドを集めたクラスが、Observer のロールを将来的に行うようになるとは考えがたい。


つまり、あるモジュールがどのような進化の過程を通るのかには、ある種の特徴があると考えられる。または、進化の過程自体が繰り返し起こるパターンになるかもしれない、と考えることもできる。


もちろん、実践的な視点からの疑問は「なぜ、そのようにしてモジュールを特徴付ける必要があるのか?」 ということ。


この疑問への回答は、まだ考え中。


関連文献

Joseph (Yossi) Gil and Itay Maman.

Micro Patterns in Java Code.

OOPSLA'05.

http://www.cs.technion.ac.il/~imaman/

Danny Dig and Ralph Johnson.

The Role of Refactorings in API Evolution.

ICSM'05.

https://netfiles.uiuc.edu/dig/www/research.html

最近のソフトウェア進化研究の概要を知りたいなら、たとえば:

Tudor Gîrba

Modeling History to Understand Software Evolution.

Ph.D. thesis, University of Berne, November 2005.

http://www.iam.unibe.ch/~scg/cgi-bin/oobib.cgi?query=Girb05d&abstract=yes

T. Mens, M. Wermelinger, S. Ducasse, S. Demeyer, R. Hirschfeld and M. Jazayeri.

Challenges in Software Evolution.

8th International Worshop on Principles of Software Evolution.

http://w3.umh.ac.be/~infofs/preprints/index.php?page=author_info&ID=5