nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

ソフトウェア設計全般

はじめに

ソフトウェア設計全般について学習する記事です。

UMLモデリング

凝集度をチェックしましょう

凝集度とは、情報工学においてモジュール内のソースコードが特定の機能を提供すべく如何に協調しているかを表す度合いです。

凝集度の高いモジュールは * 堅牢性が高い * 信頼性が高い * 再利用性が高い * コードを読みやすい

凝集度の低いモジュールは * 保守しにくい * 評価しにくい * 再利用しにくい * コードを読みにくい

凝集度は次の場合に低下します * クラスの責任範囲(メソッド群)に共通性がほとんどない * メソッドが様々なことを行い、しばしば粒度の粗いデータや全く関係のないデータ群を扱う

凝集度が低い(弱い)場合の欠点は次の通りである: * モジュール群を理解することが難しくなる * システムの保守が難しくなる。ある論理的修正が複数のモジュールにまたがって影響する可能性が増すためである * モジュールの再利用が難しくなる。凝集度の低いモジュールの提供するAPIには一貫性がないことが多いため

凝集度を上げるポイント

  • クラスの関連を見直す (クラスとクラスとの関連の線が複雑になっていませんか?)
  • クラス名・メンバ変数・メンバメソッドの見直し

  • 凝集度と結合度:このコードのどこが悪いのか?

可変性分析

PL開発におけるコア資産のメンテナンス性は、可変性を如何にうまく捉えるかによって大きく変わります。

なぜなら、開発する資産がスコープに含まれる製品に対して柔軟に対応できるためには、それらの製品間の差異、すなわち可変性を考慮した設計・実装を行う必要があるため、その入力として可変性が適切に分析されている必要があるからです。

ゆえにPL開発では、対象とする製品群に存在する可変性を特定・管理することが極めて重要なのです。通常はPLスコープを決定した後に、以下の順序で可変性の分析を行います。

  1. 可変性の特定
  2. 可変パターンの分析(モデル化)

  3. 可変性の分析

参考リンク