netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2006-06-11 [長年日記] ▲
_ [Java] dW のコード品質測定の記事 ▲
コード品質を追求する: ソフトウェア設計者にとってのコード品質というのが出ていた.
遠心性結合(Ce)と求心性結合(Ca)って,最初何のことか分からなかったが,そのパッケージが持つ依存関係の fan-out と fan-in の数らしい.fan-out が多いほど不安定になるから, Ce / (Ca + Ce) で不安定性を計測する.
一方で,パッケージ内の抽象クラスの割合が「抽象度」となる.パッケージの抽象度と不安定性のバランスは,抽象度+不安定性 = 1 の直線からの距離で判断できるらしい.
本当にバランスが良いか悪いかは分からないが,一般的に,抽象クラスほど安定しているはずだし,直観にはわりと合致する基準な気がする.パッケージ単位の結合度は,計算しようと思えば import 文を grep するだけでもかなり近似値が出せると思うので,使いやすいメトリクスだといえそう.
誰からも使われないパッケージは不安定性1となるのが,ふと「別に依存パッケージが少ないんだから気にせずどんどん変更できる」という意味かなとも思ってしまった.本文の解説によると,依存するばかりだと変更の波及を受けやすいから不安定という普通の定義らしい.