意識することで、保守しやすいプログラムになります。「凝集度」は「モジュール強度」とも呼ばれています。「ひとつのモジュール(関数やファイル)は、単一目的であること」です。凝集度は高い⇔低いという尺度で論じられ、書籍などでは7段階での解説をよく見かけます。下の図にある通り、1.機能的、2.逐次的、3.通信的、4.手順的、5.一次的、6.論理的、7.偶発的、というような7段階です。(書籍により、言い回しがとこなります)重要なのは、7段階のレベルを覚えることではなく、凝集度の本質を理解することです。「ひとつのデータでの機能の集まり」が凝集度が高く、「複数のデータがひとつのモジュールに入っている」のは凝集度が低い、という構図です。(前回コラムの「リファクタリング」ともつながります。ひとつのモジュール内にセンサーからの入力値とアクチュエータへの出力値が存在している場合です。「一筆書き」とも呼んでいます。5.一時的あるタイミングでの処理を、ひとつのモジュール内部で行うと凝集度は低くなります。初期化モジュール、が典型例です。初期化モジュールで、センサーを初期化して、状態変数を初期化して、アクチュエータを初期化して・・・、と列挙すると、凝集度が低くなります。「筐体のカバーが空いた」というイベントに対処するモジュールも同様です。センサーを止めて、状態変数を止めて、・・・。「調停モジュール」なんていう名称になると、ほぼそれは「一時的凝集度」と言えるでしょう。何をしているか分からないモジュールになってしまいます。「凝集度」を知らずに、良い設計はできないでしょう。周りのメンバーが誰も知らなかった、というプロジェクトは、ほぼ混とんとしているのではないでしょうか。関連記事お勧めのスキルパス典型的なスキルパスを紹介します。1年目か2年目までで、まず設計図の読み書きと、ソースコードの改善方法を習得します。分析設計工程からプログラミングするまでの流れを理解します。「リファクタリング」という言葉は、それなりに知っているエンジニアも多いですが、リファクタリングの方法を知らない場面をよく見かけます。[...]主なセミナービースラッシュの主なセミナーを紹介します。左下から右上へのラインが、プロダクト設計力セミナーです。[...]この投稿へのコメントコメントはありません。コメントをキャンセルメールアドレスが公開されることはありません。date*スパム対策上、日本語が含まれない投稿は無視されます。この投稿へのトラックバックトラックバックはありません。