architectural mismatch : why reuse is so hard .
Foundations for the study of software architecture