山崎@東工大です。
> > 最初の時点でこの部分の分析を深く行う必要があるという認識があれば問題を
> > 回避できたのですが、その判断を助ける「前兆現象」「不吉な臭い」を捉える
> > 方法が整理されていれば、経験の浅い人でも正しい判断を下せる機会が増える
> > と思います。
>
> これらはパターンカタログの様に整理されていれば誰でも判断を下せるものなの
> でしょうか?
> もちろん、方法が整理されていた方が良い結果に繋がるとは思いますが、私はこ
> れら正しい判断を下すには経験を積むことが必要なものと考えています。
パターンカタログにまで整理した形には出来ないでしょうね。だから「不吉な
臭い」と書いたのですが。どちらにしても「誰でも」というわけにはいかない
でしょう。経験を積んだ方がいいに決まっています。ただ、敷居を下げる役割
は期待できるのではないでしょうか。
> というのは、整理する視点が難しく、誰でも分かる視点で整理すると量が膨大に
> なり、抽象度を上げて量を減らすと経験の浅い人には伝わらないのかもしれない
> と思うからです。
> # 勝手な思い込みなのかもしれませんけど。
確かに整理する視点が難しく重要であると思います。ここで僕がヒントではな
いかと感じているのは、ごうぎさんのおっしゃった
> OOで設計した場合、1:9(あるいは2:8)の1(あるは2)の部分が、9(あるいは8)に
> 影響を与えます
という言葉です。つまり、クラス間の依存関係を少し眺めれば、ある程度推測
できるのではないかと思いつきました。確かに他からの依存が大きいクラスを
変更すると影響が大きいのは明らかです。
一連の処理を分割した例でこのことを確かめてみますと、、、
話を単純にするために処理を2つに分割することにします。クラスとしては
Preprocessor と Postprocessor、中間結果を表す Intermediary、そして テ
ストケース PreprocessorTest と PostprocessorTest があります。当然のこ
とながら Intermediary 以外のクラスは Intermediary に依存します。特にテ
ストケースは、記述の方法が Intermediary に強く依存し、他のクラスと比べ
て記述量が増加する可能性が高いわけですから、Intermediary を変更すると、
テストケースを大幅に変更しなければならないということが言えるわけです。
後から考えれば非常に当たり前な結論ですね。
山崎 進 --- yamazaki@....jp
東京工業大学数理計算科学専攻柴山研