Customizable Software Architecture – Approaches overview

  • All in One and feature toggles
    • Challenges: if much customization is needed
  • Branching/Forking of whole product
    • Challenges: merging with main branch in post-delivery
  • Entity-Attribute-Value-Model (EAV) for database as addition
  • Plugin Architecture
    • Challenges: “Points of Customization” (aka Extension Points) in the main product
  • Extension Approach (inheritance)
    • Separation of main product and customer-specific

Evaluation

All in One Branching Plugins Extension
Architecture Independence + +
Business logic customization + + ~
UI customization + + ~ +
Performance effects + + + +
Complexity long term ~ ~
Scalability + +

References