再利用・リリース等価の原則(Reuse-Release Equivalence Principle: REP)
1. 原則
コンポーネントの再利用単位とリリース単位は等価でなくてはならない
- 再利用されるコンポーネントは、リリースされる単位と一致している必要がある
2. 根拠
再利用性向上
- コンポーネントがリリース単位で管理されることで、再利用者はバージョン管理や依存関係を容易に把握し、安心して利用することができる
保守性向上
- 変更や修正がリリース単位で行われるため、影響範囲が明確になり、保守性が向上する
依存関係の明確化
- リリース単位が明確になることで、コンポーネント間の依存関係を適切に管理できる
一貫性の維持
- コンポーネントを構成するクラスやモジュールは、すべて再利用可能か、すべて再利用不可能のどちらかにすることで一貫性を保てる
3. 指針
コンポーネントの設計
- 再利用単位とリリース単位が一致するよう、関連性の高いクラスやモジュールをグループ化する
依存関係の明確化
- コンポーネント間の依存関係を明確にし、ドキュメント化/設定ファイル化する
コンポーネントの凝集
- コンポーネント内のクラスやモジュールは、すべて再利用できるものか、すべて再利用できないもののどちらかにする
4. 注意事項
過度な分割
- 過度にコンポーネントを分割すると、管理コストが増加し、逆に再利用性が低下するリスクがある
依存関係の複雑化
- 安易なコンポーネントの分割は、依存関係を複雑にし、システムの理解や保守を困難にするリスクがある
柔軟性の欠如
- 厳密にこの原則に沿いすぎると、柔軟なシステムの変更に対応できなくなるリスクがある
他の原則とのバランス
- この原則は、他のコンポーネント設計原則(共通閉鎖の原則、共通再利用の原則など)と合わせて考慮される必要がある
参考資料