« USDMで仕様書を書いてみた | トップページ | WHATで考える練習 »

2011年4月17日 (日)

掲載落ちコラム:モジュール品質

Interface連載の「モジュール品質を知る」の回、ページの関係上で載せられなかったコラムがあります。せっかくですので、ここで公開しちゃいます。pen


~~ コラム:馬具取のつぶやき ~~
物造くんの大講演会(モジュール品質としての凝集度・結合度の解説)へのおつきあい,野比さんも読者のみなさんもお疲れさまでした.
モジュール品質は,話を聞けばなるほどと思うものの,実際に自分の設計で考えようとすると雲をつかむようなところがあります.そういう意味で野比さんの感想『わかったような気がしますが、モヤモヤした状態で~』は,誰にでもあてはまるのでないでしょうか.

まず大切なことは,モジュールの分割や組み合わせ方には良い悪いがある,難しい言い方をすると,品質を伴うということを知ることです.そして,良さの尺度には凝集度と結合度というものがあることです.
これを知っているだけで,知らないのに比べて設計に雲泥の差が出ます.その意味で,野比さんはすでに一歩スキルアップしているのです.

次には,1テーマに絞ってモジュール品質をよくしてみることに挑戦してみましょう.
たとえば結合度において,グローバル変数で結合させている方は多いのではないでしょうか.これを次の設計では,「完全グローバル変数レス」で行ってみるのは,よいテーマです.変数へのアクセスタイムが問題になるようなことは実際にはまれですし,グローバル変数をなくす設計をすることで,副次的にモジュール分割をよりよい方向に進めることができることでしょう.
~~~~~~~~~~~~~~~~


「完全グローバル変数レス」に一気に挑むのは、少々ハードルが高いですね。最初は、自分の担当範囲で一つ、二つ、選んでグローバルからの解消を試みてみましょう。
その際は、次のことを考えてみてください。

 (1) その変数の意味はなに?
    → たまに、デバッグ時の確認用に作られた変数などが残っています。
      それらは、削除してしまいましょう!

 (2) 何のためにグローバルに置かれているの?
    → どうしても、グローバルにする必要はあるのか。
       理由が説明できなければ、グローバルレスにチャレンジ!

 (3) その変数に、もっとも強いかかわりを持っている処理はどれ?
   → 強いかかわりを持つ処理があれば... 
        その処理の管理下に変数を置く。
      複数箇所から、同等のかかわりの強さで使用されていれば...
        変数の管理処理を置く。

以上のようなステップで、検討し、変更をしてみましょう。


ここで一つ注意!!

変更結果が元通り動くかどうかのテストが、絶対・絶対・絶対に必要ですsign03
グローバル変数に絡んでいたモジュールのテスト方法を予め確認しておきます。それから、修正を行うようにしましょう。これは、鉄則です。「このぐらい大丈夫...」 という安易な気持ちがデグレードにつながります。このちょっとひと手間を惜しまずに、チャクチャクと改善ステップ踏みましょうね。

いいコード残して、いいソフト屋になる。
後で振り返ると、その道のりが、結構自分の自信になりますよ。きっとgood

※ 関連記事: Interface 2011年4月号
          Interface 2011年5月号

« USDMで仕様書を書いてみた | トップページ | WHATで考える練習 »

Interface記事」カテゴリの記事

ソフトウェア開発」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571478/51410416

この記事へのトラックバック一覧です: 掲載落ちコラム:モジュール品質:

« USDMで仕様書を書いてみた | トップページ | WHATで考える練習 »